summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/kingpin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/kingpin.cpp')
-rw-r--r--src/mame/drivers/kingpin.cpp70
1 files changed, 45 insertions, 25 deletions
diff --git a/src/mame/drivers/kingpin.cpp b/src/mame/drivers/kingpin.cpp
index 6e5d81c58ac..851efc743ed 100644
--- a/src/mame/drivers/kingpin.cpp
+++ b/src/mame/drivers/kingpin.cpp
@@ -45,21 +45,24 @@ class kingpin_state : public driver_device
{
public:
kingpin_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_audiocpu(*this, "audiocpu"),
- m_soundlatch(*this, "soundlatch")
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_audiocpu(*this, "audiocpu")
+ , m_soundlatch(*this, "soundlatch")
{ }
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_audiocpu;
- required_device<generic_latch_8_device> m_soundlatch;
-
DECLARE_WRITE8_MEMBER(sound_nmi_w);
void kingpin(machine_config &config);
void kingpin_io_map(address_map &map);
void kingpin_program_map(address_map &map);
void kingpin_sound_map(address_map &map);
+ void dealracl(machine_config &config);
+ void dealracl_program_map(address_map &map);
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+ required_device<generic_latch_8_device> m_soundlatch;
};
@@ -75,6 +78,11 @@ ADDRESS_MAP_START(kingpin_state::kingpin_program_map)
AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
+ADDRESS_MAP_START(kingpin_state::dealracl_program_map)
+ AM_RANGE(0x0000, 0x4fff) AM_ROM
+ AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram")
+ADDRESS_MAP_END
+
ADDRESS_MAP_START(kingpin_state::kingpin_io_map)
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
@@ -172,6 +180,12 @@ MACHINE_CONFIG_START(kingpin_state::kingpin)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
+MACHINE_CONFIG_START(kingpin_state::dealracl)
+ kingpin(config);
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(dealracl_program_map)
+MACHINE_CONFIG_END
+
ROM_START( kingpin )
@@ -250,22 +264,25 @@ All ROMs have unknown locations. There were no identifying ROM stickers on them
and their locations were not recorded before removal from the PCB.
There are no bi-polar PROMs on the PCB so they are probably missing. */
-// Requires RAM at Cxxx
-// Possible bad dumps. @12CB, jump to E612
+// Does continual writes to i/o 70 and 80.
-ROM_START( dealracl ) // ROMs were unlabeled, so they might be ordered wrong. 10 and 14 are identical?
+/* Bad dumps: 11a is a redump of 11, but they both have strange bytes. Both included if anyone wants to investigate.
+ It's possible other roms could be bad too.
+ At 12CB is a jump to E612, which has nothing there. Changed to 1612 which at least *seems* more sensible. */
+
+
+ROM_START( dealracl ) // ROMs were unlabeled, so they might be ordered wrong.
ROM_REGION( 0xe000, "maincpu", 0 )
- ROM_LOAD( "1", 0x0000, 0x0800, CRC(6191abc7) SHA1(2decc88be89f081043c7a2604d7b17dc6b72f49a) ) // 0
- ROM_LOAD( "10", 0x0800, 0x0800, CRC(10b9bafd) SHA1(efda9245d9bba7cc7c97d411757b7a0a87e65e12) )//800
- ROM_LOAD( "15", 0x1000, 0x0800, CRC(3f5d55b5) SHA1(5c2e7d11fb26aaf4759751e9c00003f070df648b) )//1000
- ROM_LOAD( "8", 0x1800, 0x0800, CRC(9f1621f8) SHA1(164e117479edfe478942054378e78125f40fe4f7) )//1800
- ROM_LOAD( "7", 0x2000, 0x0800, CRC(8c491dd0) SHA1(9e77d50198e93d243d5a06893d3a29fc43f21b7d) )//2000
- ROM_LOAD( "14", 0x2800, 0x0800, CRC(10b9bafd) SHA1(efda9245d9bba7cc7c97d411757b7a0a87e65e12) )//same as 800
- ROM_LOAD( "6", 0x3000, 0x0800, CRC(72dedb38) SHA1(d1e12b3d8b1c2170100802e6071df59fc72a211f) )//correct?
- ROM_LOAD( "2", 0x3800, 0x0800, CRC(f21652fb) SHA1(2f5d6bccc570425440d6ca4712ce0d8814bdada5) )//correct?
- ROM_LOAD( "12", 0x4000, 0x0800, CRC(4534cb68) SHA1(235aa0864762da86c30d6f6d64acb593873a8a12) )//4000
- ROM_LOAD( "11", 0x4800, 0x0800, CRC(91a12c65) SHA1(d6c24888937c01ebbc96e28cdd9bee83ad01a1cd) )//almost same as 1000
- ROM_LOAD( "13", 0x5000, 0x0800, CRC(626fea42) SHA1(ed7727231b4bcb63928efb105ede9f42aee4c2df) )
+ ROM_LOAD( "1", 0x0000, 0x0800, CRC(6191abc7) SHA1(2decc88be89f081043c7a2604d7b17dc6b72f49a) )
+ ROM_LOAD( "10", 0x0800, 0x0800, CRC(10b9bafd) SHA1(efda9245d9bba7cc7c97d411757b7a0a87e65e12) )
+ ROM_LOAD( "11a", 0x1000, 0x0800, BAD_DUMP CRC(3f5d55b5) SHA1(5c2e7d11fb26aaf4759751e9c00003f070df648b) )
+ ROM_FILL(0x12CD, 1 , 0x16)
+ ROM_LOAD( "8", 0x1800, 0x0800, CRC(9f1621f8) SHA1(164e117479edfe478942054378e78125f40fe4f7) )
+ ROM_LOAD( "7", 0x2000, 0x0800, CRC(8c491dd0) SHA1(9e77d50198e93d243d5a06893d3a29fc43f21b7d) )
+ ROM_LOAD( "13", 0x2800, 0x0800, CRC(626fea42) SHA1(ed7727231b4bcb63928efb105ede9f42aee4c2df) )
+ ROM_LOAD( "6", 0x3000, 0x0800, CRC(72dedb38) SHA1(d1e12b3d8b1c2170100802e6071df59fc72a211f) )
+ ROM_LOAD( "2", 0x3800, 0x0800, CRC(f21652fb) SHA1(2f5d6bccc570425440d6ca4712ce0d8814bdada5) )
+ ROM_LOAD( "12", 0x4000, 0x0800, CRC(4534cb68) SHA1(235aa0864762da86c30d6f6d64acb593873a8a12) )
ROM_REGION( 0x2000, "audiocpu", 0 )
ROM_LOAD( "5", 0x0000, 0x0800, CRC(0d77ffb4) SHA1(519a1c9efdbafa545640c9a124d81bbfa6fc0791) )
@@ -278,10 +295,13 @@ ROM_START( dealracl ) // ROMs were unlabeled, so they might be ordered wrong. 10
ROM_REGION( 0x40, "user1", 0 ) // not dumped for this PCB
ROM_LOAD( "n82s123n.u29", 0x00, 0x20, NO_DUMP ) //CRC(ce8b1a6f) SHA1(9b8f564efa4efea867884970f4a5850d598bc7a7) )
ROM_LOAD( "n82s123n.u43", 0x20, 0x20, NO_DUMP ) //CRC(55569a2a) SHA1(5b0482546161c9d14a7d2c719d40774539cb41ca) )
+
+ ROM_REGION( 0x800, "user2", 0 )
+ ROM_LOAD( "11", 0x0000, 0x0800, BAD_DUMP CRC(91a12c65) SHA1(d6c24888937c01ebbc96e28cdd9bee83ad01a1cd) )
ROM_END
-GAME( 1983, kingpin, 0, kingpin, kingpin, kingpin_state, 0, 0, "ACL Manufacturing", "Kingpin", 0 )
-GAME( 1983, maxideal, 0, kingpin, kingpin, kingpin_state, 0, 0, "ACL Manufacturing", "Maxi-Dealer", 0 )
-GAME( 1981, dealracl, 0, kingpin, kingpin, kingpin_state, 0, 0, "ACL Manufacturing", "The Dealer", MACHINE_NOT_WORKING )
+GAME( 1983, kingpin, 0, kingpin, kingpin, kingpin_state, 0, 0, "ACL Manufacturing", "Kingpin", 0 )
+GAME( 1983, maxideal, 0, kingpin, kingpin, kingpin_state, 0, 0, "ACL Manufacturing", "Maxi-Dealer", 0 )
+GAME( 1981, dealracl, 0, dealracl, kingpin, kingpin_state, 0, 0, "ACL Manufacturing", "The Dealer (ACL)", MACHINE_NOT_WORKING )