diff --git a/src/mame/drivers/merits.cpp b/src/mame/drivers/merits.cpp index e36d29e17a6..71c32dec4a6 100644 --- a/src/mame/drivers/merits.cpp +++ b/src/mame/drivers/merits.cpp @@ -5,7 +5,7 @@ Skeleton driver for Merit Scorpion darts machines Hardware overview: - Main CPU: Dallas DS80C3202-UM or compatible + Main CPU: Dallas DS80C3202-UM or compatible (80C31 on older models) Sound: DAC? NVRAM: Dallas DS1220Y-120 or compatible Other: Dallas DS1232 MicroMonitor @@ -21,6 +21,7 @@ #include "sound/dac.h" #include "speaker.h" +namespace { class merits_state : public driver_device { @@ -32,6 +33,7 @@ public: } void scrpiond(machine_config &config); + void scrpiondold(machine_config &config); private: void mem_map(address_map &map); @@ -58,6 +60,25 @@ void merits_state::io_map(address_map &map) } static INPUT_PORTS_START(scrpiond) + PORT_START("DSW1") + PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") + PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2") + PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3") + PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4") + PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW1:5") + PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW1:6") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8") + + PORT_START("DSW2") + PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") + PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2") + PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3") + PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4") + PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW1:5") + PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW1:6") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8") INPUT_PORTS_END void merits_state::scrpiond(machine_config &config) @@ -69,6 +90,15 @@ void merits_state::scrpiond(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // DS1220Y } +void merits_state::scrpiondold(machine_config &config) +{ + I80C31(config, m_maincpu, 12_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &merits_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &merits_state::io_map); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // DS1220Y +} + ROM_START(scrpiond) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "27c512.u7", 0x00000, 0x10000, CRC(06cdf965) SHA1(4cdac131063fc0dd954eaaee2ae40d5731f83469) ) @@ -79,6 +109,15 @@ ROM_START(scrpionda) ROM_LOAD( "4978-22_u7-r5_c1997_mii.u7", 0x00000, 0x10000, CRC(e647a17e) SHA1(4a7b9e2af3656a1b6f4ffd8c17b68eec5c534776) ) ROM_END +// Old PCB model, i80C31 instead of 80C32. The DS1204U-3 socket is still unpopulated. Other PCB components stays the same. +ROM_START(scrpiondb) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD( "4778-02_u7-r02_c1994_mii.u7", 0x00000, 0x10000, CRC(57a5083d) SHA1(edb94dbb9e040e960c45406b082ede133574351a) ) +ROM_END -GAME(1999, scrpiond, 0, scrpiond, scrpiond, merits_state, empty_init, ROT0, "Merit", "Scorpion (Jun 15, 1999)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1997, scrpionda, scrpiond, scrpiond, scrpiond, merits_state, empty_init, ROT0, "Merit", "Scorpion (Oct 01, 1997)", MACHINE_IS_SKELETON_MECHANICAL) +} // Anonymous namespace + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +GAME(1999, scrpiond, 0, scrpiond, scrpiond, merits_state, empty_init, ROT0, "Merit", "Scorpion (Jun 15, 1999)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1997, scrpionda, scrpiond, scrpiond, scrpiond, merits_state, empty_init, ROT0, "Merit", "Scorpion (Oct 01, 1997)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1993, scrpiondb, scrpiond, scrpiondold, scrpiond, merits_state, empty_init, ROT0, "Merit", "Scorpion (Dec 24, 1993)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index f730ada3627..d901110484e 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -22872,8 +22872,9 @@ realbroda // (c) 1995 Merit spitboss // (c) 1988 Merit @source:merits.cpp -scrpiond // -scrpionda // +scrpiond // (c) 1999 Merit Industries, Inc. +scrpionda // (c) 1997 Merit Industries, Inc. +scrpiondb // (c) 1993 Merit Industries, Inc. @source:meritsdx.cpp scrpndx //