Skip to content

Commit

Permalink
QA cleanups for various PC-based Arcade skeleton drivers (#10830)
Browse files Browse the repository at this point in the history
New clones marked not working
-----------------------------
Hydro Thunder (1.01b) [archive.org]
Hydro Thunder (1.00d) [archive.org]

- gaelco/gaelcopc.cpp: add an alternate BIOS set for tokyocop [Gerald (COY), The Dumping Union]

- misc/neomania.cpp, misc/playcenter.cpp, pc/quakeat.cpp, midway/midqslvr.cpp, misc/comebaby.cpp, unico/unianapc.cpp: demote HDD images to BAD_DUMP having bad chs geometries.

- funworld/photoplys.cpp, funworld/photoplysx.cpp, ice/frenzyxprss.cpp ,misc/bntyhunt.cpp, misc/cavepc.cpp, misc/chameleonrx1.cpp, misc/ez2d.cpp, misc/gfamily.cpp, misc/globalvr.cpp, misc/neomania.cpp, misc/odyssey.cpp, misc/playcenter.cpp, misc/radikaldarts.cpp, misc/rawthrillspc.cpp, misc/rfslotspcpent.cpp, misc/silverball.cpp, misc/skopro.cpp, misc/startouch.cpp, misc/xtom3d.cpp, namco/rbowlorama.cpp, pc/quakeat.cpp, pinball/newcanasta.cpp, taito/taitotx.cpp, unico/unianapc.cpp, midway/midqslvr.cpp, misc/comebaby.cpp: rearrange driver base setup and QA notes, for future conversion to PCI drivers.
  • Loading branch information
angelosa committed Jan 19, 2023
1 parent 8256d66 commit c1636c4
Show file tree
Hide file tree
Showing 33 changed files with 793 additions and 1,013 deletions.
40 changes: 6 additions & 34 deletions src/mame/funworld/photoplys.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ Motherboard 6WEV0:
CPU: Intel CELERON FV524RX366 128 SL36C
RAM: 64MB
PCB: Intel FW82801AA, IT8888F PCI-to-ISA Bridge, CMI8738 audio
PCB: Intel FW82801AA (ICH), IT8888F PCI-to-ISA Bridge, CMI8738 audio
I/O: Winbond W83977, Winbond W83627HF
BIOS: Intel N82802AB
BIOS: Intel N82802AB (FWH)
Dongle: Parallel port + keyboard DIN (uses both ports) with a SX28AC/DP MCU (Parallax, Ubicom, etc.). On some versions there's also a SEEPROM (93C46LN, etc.).
Net: Optional Ethernet PCI card with RTL8139C
*/

#include "emu.h"
#include "cpu/i386/i386.h"
#include "screen.h"
#include "machine/pci.h"

namespace {

Expand All @@ -31,27 +31,12 @@ class photoplays_state : public driver_device

void photoplays(machine_config &config);

protected:
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;

private:
required_device<cpu_device> m_maincpu;

uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void photoplays_map(address_map &map);
};

void photoplays_state::video_start()
{
}

uint32_t photoplays_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}

void photoplays_state::photoplays_map(address_map &map)
{
}
Expand All @@ -60,27 +45,14 @@ static INPUT_PORTS_START( photoplays )
INPUT_PORTS_END


void photoplays_state::machine_start()
{
}

void photoplays_state::machine_reset()
{
}

void photoplays_state::photoplays(machine_config &config)
{
// Basic machine hardware
PENTIUM2(config, m_maincpu, 366'000'000); // Actually an Intel CELERON FV524RX366 128 SL36C
m_maincpu->set_addrmap(AS_PROGRAM, &photoplays_state::photoplays_map);
m_maincpu->set_disable();

// Video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(640, 480);
screen.set_visarea(0, 640-1, 0, 480-1);
screen.set_screen_update(FUNC(photoplays_state::screen_update));
PCI_ROOT(config, "pci", 0);
// ...
}

/***************************************************************************
Expand Down
45 changes: 9 additions & 36 deletions src/mame/funworld/photoplysx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ A single wrong login attempt locks the token.

#include "emu.h"
#include "cpu/i386/i386.h"
#include "screen.h"
#include "machine/pci.h"

namespace {

Expand All @@ -40,56 +40,29 @@ class photoplaysx_state : public driver_device

void photoplaysx(machine_config &config);

protected:
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;

private:
required_device<cpu_device> m_maincpu;

uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void photoplaysx_map(address_map &map);
};

void photoplaysx_state::video_start()
{
}

uint32_t photoplaysx_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}

void photoplaysx_state::photoplaysx_map(address_map &map)
{
map(0x00000000, 0x0009ffff).ram();
map(0x000e0000, 0x000fffff).rom().region("bios", 0x60000);
map(0xfff80000, 0xffffffff).rom().region("bios", 0);
}

static INPUT_PORTS_START( photoplaysx )
INPUT_PORTS_END


void photoplaysx_state::machine_start()
{
}

void photoplaysx_state::machine_reset()
{
}

void photoplaysx_state::photoplaysx(machine_config &config)
{
// Basic machine hardware
PENTIUM4(config, m_maincpu, 100000000); // Actually an Intel CELERON 2 GHz / 128 / 400 (SL6VR)
PENTIUM4(config, m_maincpu, 100'000'000); // Actually an Intel CELERON 2 GHz / 128 / 400 (SL6VR)
m_maincpu->set_addrmap(AS_PROGRAM, &photoplaysx_state::photoplaysx_map);

// Video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(640, 480);
screen.set_visarea(0, 640-1, 0, 480-1);
screen.set_screen_update(FUNC(photoplaysx_state::screen_update));
PCI_ROOT(config, "pci", 0);
// ...
}

/***************************************************************************
Expand All @@ -99,7 +72,7 @@ void photoplaysx_state::photoplaysx(machine_config &config)
***************************************************************************/

ROM_START( photopsxsp )
ROM_REGION(0x80000, "bios", 0)
ROM_REGION32_LE(0x80000, "bios", 0)
ROM_LOAD("photoplay_bios_pm49fl004t.bin", 0x00000, 0x80000, CRC(50bf84fe) SHA1(d0afe83b57f822d4fdb96dc1e0c6eedeccbfce7b) ) // 03/11/2009-I865G-6A79AD4EC-00

ROM_REGION(0xe540, "dongle", 0)
Expand All @@ -112,7 +85,7 @@ ROM_START( photopsxsp )
ROM_END

ROM_START( photopsxusp )
ROM_REGION(0x80000, "bios", 0)
ROM_REGION32_LE(0x80000, "bios", 0)
ROM_LOAD("photoplay_bios_pm49fl004t.bin", 0x00000, 0x80000, CRC(50bf84fe) SHA1(d0afe83b57f822d4fdb96dc1e0c6eedeccbfce7b) ) // 03/11/2009-I865G-6A79AD4EC-00

ROM_REGION(0xe540, "dongle", 0)
Expand Down
88 changes: 44 additions & 44 deletions src/mame/gaelco/gaelcopc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,22 @@
/* Gaelco PC based hardware
TODO:
- tokyocop can't be emulated without proper mb bios
- Implement all of the components listed below, notice that we need to consolidate
PCI individual interfaces before even attempting to emulate this;
- Analyze OS images;
- Reportedly requires a special monitor with a very specific refresh rate (very Gaelco like),
likely gonna play with monitor DDC;
Custom motherboard with
82815
82801
82562 (LAN)
Intel 82815 (host + bridge + AGP devices)
Intel 82801 (PCI 2.3 + integrated LAN + IDE + USB 2.0 + AC'97 + LPC +
ACPI 2.0 + Flash BIOS control + SMBus + GPIO)
Intel 82562 (LAN)
RTM 560-25R (Audio)
TI4200 128Mb AGP
nVidia GeForce 4 TI4200 128Mb AGP
256 Mb PC133
Pentium 4 (??? XXXXMhz)
Pentium 4 (??? XXXXMhz), <- contradicts 82815 datasheet and an internal BIOS string at $ce (Socket 370),
expect Celeron or Pentium 3 at very least.
I/O Board with Altera Flex EPF15K50EQC240-3
Expand All @@ -26,8 +32,7 @@ motherboard bioses.

#include "emu.h"
#include "cpu/i386/i386.h"
#include "emupal.h"
#include "screen.h"
#include "machine/pci.h"


namespace {
Expand All @@ -43,30 +48,18 @@ class gaelcopc_state : public driver_device
void gaelcopc(machine_config &config);

private:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);

void gaelcopc_map(address_map &map);

// devices
required_device<cpu_device> m_maincpu;

// driver_device overrides
virtual void video_start() override;
required_device<pentium3_device> m_maincpu;
};


void gaelcopc_state::video_start()
{
}

uint32_t gaelcopc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}

void gaelcopc_state::gaelcopc_map(address_map &map)
{
map(0x00000000, 0x0001ffff).rom();
map(0x00000000, 0x0009ffff).ram();
map(0x000e0000, 0x000fffff).rom().region("bios", 0x60000);
map(0xfff80000, 0xffffffff).rom().region("bios", 0);
}

static INPUT_PORTS_START( gaelcopc )
Expand All @@ -76,25 +69,25 @@ INPUT_PORTS_END
void gaelcopc_state::gaelcopc(machine_config &config)
{
/* basic machine hardware */
PENTIUM(config, m_maincpu, 2000000000); /* Pentium4? */
m_maincpu->set_addrmap(AS_PROGRAM, &gaelcopc_state::gaelcopc_map);

/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_screen_update(FUNC(gaelcopc_state::screen_update));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(64*8, 32*8);
screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
screen.set_palette("palette");

PALETTE(config, "palette").set_entries(0x100);
// bios mentions Socket 370, so at very least a Celeron or a Pentium 3 class CPU
// TODO: lowered rate for debugging aid, needs a slot option anyway
PENTIUM3(config, m_maincpu, 100'000'000);
m_maincpu->set_addrmap(AS_PROGRAM, &gaelcopc_state::gaelcopc_map); // TODO: remove me

PCI_ROOT(config, "pci", 0);
// ...
}

// TODO: All of the provided BIOSes just have different ACFG table configs at $10000, investigate

ROM_START(tokyocop)
ROM_REGION32_LE(0x80000, "maincpu", 0) /* motherboard bios */
ROM_LOAD("al1.u10", 0x000000, 0x80000, CRC(e426e030) SHA1(52bdb6d46c12150077169ac3add8c450326ad4af) )
ROM_REGION32_LE(0x80000, "bios", 0) /* motherboard bios */
// $40 Award 6.00 PG 12/19/2002
// $7413c Intel 815 Hardware version v0.0 08/13/1999
ROM_SYSTEM_BIOS(0, "default", "v0.0 08/13/1999")
ROMX_LOAD("al1.u10", 0x000000, 0x80000, CRC(e426e030) SHA1(52bdb6d46c12150077169ac3add8c450326ad4af), ROM_BIOS(0) )
ROM_SYSTEM_BIOS(1, "alt_acfg", "v0.0 08/13/1999 (alt ACFG)")
ROMX_LOAD("al1 49lf004a.u10", 0x00000, 0x80000, CRC(db8e4a37) SHA1(9ef4bf1d72955a89e7dc9b984e76ce86c824b461), ROM_BIOS(1) )

/* Dumper's note: The drive was ordered from Gaelco and they used a 250 GB drive that apparently used to have something
else on it because when I ripped the entire drive and compressed it, the compressed image was 30 GB which is too much for me
Expand All @@ -106,31 +99,38 @@ tested working on the real hardware. It uses the same hardware and bios as the k
ROM_END

ROM_START(tokyocopk)
ROM_REGION32_LE(0x80000, "maincpu", 0) /* motherboard bios */
ROM_REGION32_LE(0x80000, "bios", 0) /* motherboard bios */
// $40 6.00 PG 12/19/2002
// $7413c v0.0 08/13/1999
ROM_LOAD("al1.u10", 0x000000, 0x80000, CRC(e426e030) SHA1(52bdb6d46c12150077169ac3add8c450326ad4af) )

DISK_REGION( "disks" ) // Maxtor 2F040J0310613 VAM051JJ0
DISK_IMAGE( "tokyocopk", 0, SHA1(3805e41903719d8ed163f9879db65e71aba2e3e7) )
ROM_END

ROM_START(tokyocopi)
ROM_REGION32_LE(0x80000, "maincpu", 0) /* motherboard bios */
ROM_LOAD("tokyocopi.pcbios", 0x000000, 0x80000, NO_DUMP )
ROM_REGION32_LE(0x80000, "bios", 0) /* motherboard bios */
// Not specifically provided, assume "works right" with same BIOS.
ROM_LOAD("al1.u10", 0x000000, 0x80000, CRC(e426e030) SHA1(52bdb6d46c12150077169ac3add8c450326ad4af) )

DISK_REGION( "disks" )
DISK_IMAGE( "tokyocopi", 0, SHA1(a3cf011c8ef8ec80724c28e1534191b40ae8515d) )
ROM_END

ROM_START(rriders)
ROM_REGION32_LE(0x80000, "maincpu", 0) /* motherboard bios */
ROM_REGION32_LE(0x80000, "bios", 0) /* motherboard bios */
// $40 6.00 PG 12/19/2002
// $7413c v0.0 08/13/1999
ROM_LOAD("22-03.u10", 0x000000, 0x80000, CRC(0ccae12f) SHA1(a8878fa73d5a4f5e9b6e3f35994fddea08cd3c2d) )

DISK_REGION( "disks" ) // 250 MB compact flash card
DISK_IMAGE( "rriders", 0, SHA1(46e10517ee1b383e03c88cac67a54318c227e3e1) )
ROM_END

ROM_START(tuningrc)
ROM_REGION32_LE(0x80000, "maincpu", 0) /* motherboard bios */
ROM_REGION32_LE(0x80000, "bios", 0) /* motherboard bios */
// $40 6.00 PG 12/19/2002
// $7413c v0.0 08/13/1999
ROM_LOAD("310j.u10", 0x000000, 0x80000, CRC(70b0797a) SHA1(696f602e83359d5d36798d4d2962ee85171e3622) )

DISK_REGION( "disks" ) // Hitachi HDS728080PLAT20 ATA/IDE
Expand Down
Loading

0 comments on commit c1636c4

Please sign in to comment.