diff options
186 files changed, 21873 insertions, 18756 deletions
diff --git a/docs/source/usingmame/usingmame.rst b/docs/source/usingmame/usingmame.rst index 8c42b9fe5c9..2050ae5e499 100644 --- a/docs/source/usingmame/usingmame.rst +++ b/docs/source/usingmame/usingmame.rst @@ -66,5 +66,7 @@ gives you a (quite long) list of available configuration options for MAME. These creates a brand new **mame.ini** file, with default configuration settings. Notice that mame.ini is basically a plain text file, hence you can open it with any text editor (e.g. Notepad, Emacs or TextEdit) and configure every option you need. However, no particular tweaks are needed to start, so you can basically leave most of the options unaltered. +If you execute **mame64 -createconfig** when you already have an existing mame.ini from a previous MAME version, MAME automatically updates the pre-existing mame.ini by copying changed options into it. -Once you are more confident with MAME options, you may want to configure a bit more your setup. In this case, keep in mind the order in which options are read; see :ref:`advanced-multi-CFG` for details.
\ No newline at end of file + +Once you are more confident with MAME options, you may want to configure a bit more your setup. In this case, keep in mind the order in which options are read; see :ref:`advanced-multi-CFG` for details. diff --git a/hash/ibm5170.xml b/hash/ibm5170.xml index 10d7feb450d..778245fd389 100644 --- a/hash/ibm5170.xml +++ b/hash/ibm5170.xml @@ -1378,6 +1378,204 @@ Missing files come here </part> </software> + <!-- IBM Extended Density Format not supported --> + <software name="pcdos7fr" cloneof="pcdos7" supported="no"> + <description>PC DOS 7.0 (French)</description> + <year>1995</year> + <publisher>IBM</publisher> + <part name="flop1" interface="floppy_3_5"> + <dataarea name="flop" size = "1474560"> + <rom name="Disk01fr.img" size="1474560" crc="1189b720" sha1="4571f7b487b9676f098f537b1c13db315f3a81c4" offset="0"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk02fr.xdf" size="1884160" crc="3c718740" sha1="d1892229006391e6f3e10b3506bc81ba0f38e85e" offset="0"/> + </dataarea> + </part> + <part name="flop3" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk03fr.xdf" size="1884160" crc="6e5eacee" sha1="1af82dc8a2878b52cab145f13c6ccd326edac17b" offset="0"/> + </dataarea> + </part> + <part name="flop4" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk04fr.xdf" size="1884160" crc="60196253" sha1="4115dcc740b45c18ed936819fa70ca0f712c0438" offset="0"/> + </dataarea> + </part> + <part name="flop5" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk05fr.xdf" size="1884160" crc="2e8322e4" sha1="08ca6edd8b12e57cda39e80ee60c9e5f955dca4c" offset="0"/> + </dataarea> + </part> + </software> + + <!-- IBM Extended Density Format not supported --> + <software name="pcdos7ja" cloneof="pcdos7" supported="no"> + <description>PC DOS 7.0 (Japanese)</description> + <year>1995</year> + <publisher>IBM</publisher> + <info name="version" value="J7.0/V" /> + <part name="flop1" interface="floppy_3_5"> + <dataarea name="flop" size = "1474560"> + <rom name="Disk01ja.img" size="1474560" crc="912ae95f" sha1="d4c2d5e4a1f8bc99bc8d19aa5eca63f55847e8a3" offset="0"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk02ja.xdf" size="1884160" crc="433075f1" sha1="6438e4fb5da243d432721ea317c53c9f2c9ce73f" offset="0"/> + </dataarea> + </part> + <part name="flop3" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk03ja.xdf" size="1884160" crc="078a3589" sha1="1f93e8540086ccdfba076ee5d2040914013aa6a8" offset="0"/> + </dataarea> + </part> + <part name="flop4" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk04ja.xdf" size="1884160" crc="9ae2ff38" sha1="0b3ea36035a138e0a2b3c98f58b89ba8168292c6" offset="0"/> + </dataarea> + </part> + <part name="flop5" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk05ja.xdf" size="1884160" crc="d9e3e5d2" sha1="7d4db930ebf5a9377045dbf229e661481b8d64bf" offset="0"/> + </dataarea> + </part> + <part name="flop6" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk06ja.xdf" size="1884160" crc="a66d2c31" sha1="ebf79d56e050365226fadf86dcbcb3d331d471e5" offset="0"/> + </dataarea> + </part> + <part name="flop7" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk07ja.xdf" size="1884160" crc="ef5a8f77" sha1="4ca4f6abba4811007b2b4973dc5a3f9d6c09bcdb" offset="0"/> + </dataarea> + </part> + <part name="flop8" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk08ja.xdf" size="1884160" crc="a8b54837" sha1="aad9a3ac9e0b063431d1fc074eb5eb88c12da616" offset="0"/> + </dataarea> + </part> + <part name="flop9" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk09ja.xdf" size="1884160" crc="522de6b7" sha1="0a57dee3b2c6c066edabfa808626784c26480f8d" offset="0"/> + </dataarea> + </part> + </software> + + <!-- IBM Extended Density Format not supported --> + <software name="pcdos7ko" cloneof="pcdos7" supported="no"> + <description>PC DOS 7.0 (Korean)</description> + <year>1995</year> + <publisher>IBM</publisher> + <info name="version" value="H7.0, Revision 0" /> + <part name="flop1" interface="floppy_3_5"> + <dataarea name="flop" size = "1474560"> + <rom name="Disk01ko.img" size="1474560" crc="8a26619d" sha1="3b8b1f99fd95d528fbe8c2362e0f093d7553c7c4" offset="0"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk02ko.xdf" size="1884160" crc="c8141e01" sha1="566bfcae495d953a9a755a98b3dc5b09d8d67ff3" offset="0"/> + </dataarea> + </part> + <part name="flop3" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk03ko.xdf" size="1884160" crc="c510e5f3" sha1="528e1002d1d925567014542593dd5d9e8c06db7d" offset="0"/> + </dataarea> + </part> + <part name="flop4" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk04ko.xdf" size="1884160" crc="cc29107b" sha1="78b4fb3cf1cce436117ca2004d4b0810faea200d" offset="0"/> + </dataarea> + </part> + <part name="flop5" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk05ko.xdf" size="1884160" crc="6604e2d2" sha1="767752cc417f3753f8f67d30fe09d477a1cf160a" offset="0"/> + </dataarea> + </part> + <part name="flop6" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk06ko.xdf" size="1884160" crc="268d64a3" sha1="9d7d4539465b3d9a230383bc3db14cb9d4f00fd8" offset="0"/> + </dataarea> + </part> + <part name="flop7" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk07ko.xdf" size="1884160" crc="6dccc9c6" sha1="76fcfaa60159e3d4e1d31460d7f479a473d481e8" offset="0"/> + </dataarea> + </part> + <part name="flop8" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk08ko.xdf" size="1884160" crc="e425f087" sha1="ed795942e8905d20c668c99b7272574c2de3eae1" offset="0"/> + </dataarea> + </part> + </software> + + <!-- IBM Extended Density Format not supported --> + <software name="pcdos7ru" cloneof="pcdos7" supported="no"> + <description>PC DOS 7.0 (Russian)</description> + <year>1995</year> + <publisher>IBM</publisher> + <info name="version" value="7.0, Revision 0" /> + <part name="flop1" interface="floppy_3_5"> + <dataarea name="flop" size = "1474560"> + <rom name="Disk01ru.img" size="1474560" crc="bc896ba2" sha1="7b46b003c1053f66b5795b929b9499d5ff64ce1a" offset="0"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk02ru.xdf" size="1884160" crc="1d639788" sha1="90eb1b68716cc4e7e2a3fe16f0b9320f0921361f" offset="0"/> + </dataarea> + </part> + <part name="flop3" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk03ru.xdf" size="1884160" crc="beb30c08" sha1="c4ff5ea400c40586ae02e47791aca8afa5e3243e" offset="0"/> + </dataarea> + </part> + <part name="flop4" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk04ru.xdf" size="1884160" crc="3ba3f9e4" sha1="b8c34b66c5c15004ec0979e305390e0bd204ad11" offset="0"/> + </dataarea> + </part> + <part name="flop5" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk05ru.xdf" size="1884160" crc="1cea4b53" sha1="1fea56f56cd8620e244633d359f3041c9304a8a7" offset="0"/> + </dataarea> + </part> + </software> + + <!-- IBM Extended Density Format not supported --> + <software name="pcdos7engb" cloneof="pcdos7" supported="no"> + <description>PC DOS 7.0 (UK English)</description> + <year>1995</year> + <publisher>IBM</publisher> + <part name="flop1" interface="floppy_3_5"> + <dataarea name="flop" size = "1474560"> + <rom name="Disk01en-GB.img" size="1474560" crc="783911fd" sha1="50def639e87e68ea9445f441197adff105930ac5" offset="0"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk02en-GB.xdf" size="1884160" crc="c9d8011d" sha1="f340232d6df47635d9482a0c7e92e8b2ae3cb9ae" offset="0"/> + </dataarea> + </part> + <part name="flop3" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk03en-GB.xdf" size="1884160" crc="5f3cb76c" sha1="84dcb7af204ef93086ff0e6dc9ff7f804a7f3ce8" offset="0"/> + </dataarea> + </part> + <part name="flop4" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk04en-GB.xdf" size="1884160" crc="0efde128" sha1="9e1e5e0f2edcead15ae136eae6bee218f7aba5d5" offset="0"/> + </dataarea> + </part> + <part name="flop5" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk05en-GB.xdf" size="1884160" crc="f16ee7c7" sha1="0324ce2ff00f08ff582a1f81dafb7d0b859a46f0" offset="0"/> + </dataarea> + </part> + </software> + <software name="pcdos2k"> <description>IBM PC DOS 2000</description> <year>1998</year> @@ -1576,6 +1774,59 @@ Missing files come here </part> </software> + <!-- IBM Extended Density Format not supported --> + <software name="pcdos2kzhs" cloneof="pcdos2k" supported="no"> + <description>IBM PC DOS 2000 (Simplified Chinese)</description> + <year>1998</year> + <publisher>IBM</publisher> + <info name="version" value="7.00, Revision 1" /> + <part name="flop1" interface="floppy_3_5"> + <dataarea name="flop" size = "1474560"> + <rom name="Disk01zh-Hans.img" size="1474560" crc="e9a01d5c" sha1="e58c85870e5e95190515fcc76a2a78f90bd13f81" offset="0"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk02zh-Hans.xdf" size="1884160" crc="2e85a011" sha1="d5ca3c422a6964d4cce4e7135ff54d2d71dba80a" offset="0"/> + </dataarea> + </part> + <part name="flop3" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk03zh-Hans.xdf" size="1884160" crc="a914947c" sha1="3c15a15aa9995964f00b48f76ae0140187ff4aea" offset="0"/> + </dataarea> + </part> + <part name="flop4" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk04zh-Hans.xdf" size="1884160" crc="2d3555c6" sha1="5a4bc701b141a50db3ff090a4b5438c799c77b71" offset="0"/> + </dataarea> + </part> + <part name="flop5" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk05zh-Hans.xdf" size="1884160" crc="6bc1b58f" sha1="13db259ad90fcef3f8d19f0f4aa2c41da63237ca" offset="0"/> + </dataarea> + </part> + <part name="flop6" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk06zh-Hans.xdf" size="1884160" crc="8abfe174" sha1="13770e75992274be525fad48b2db91a67dc74262" offset="0"/> + </dataarea> + </part> + <part name="flop7" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk07zh-Hans.xdf" size="1884160" crc="1a16a40e" sha1="67c5d7b8174abaf7691a68438a43013c1595f2c0" offset="0"/> + </dataarea> + </part> + <part name="flop8" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk08zh-Hans.xdf" size="1884160" crc="6763b25c" sha1="631632510f05f0c3c59315d835a4fdc9e717c6a7" offset="0"/> + </dataarea> + </part> + <part name="flop9" interface="floppy_3_5"> + <dataarea name="flop" size = "1884160"> + <rom name="Disk09zh-Hans.xdf" size="1884160" crc="97657c9a" sha1="1595d85dbc8d72bdadc1cf3bf960018340d094db" offset="0"/> + </dataarea> + </part> + </software> + <software name="pcdos2ksv" cloneof="pcdos2k"> <description>IBM PC DOS 2000 (Swedish)</description> <year>1998</year> diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 7ae85734f1e..fcc279fee3d 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -3087,3 +3087,23 @@ if (BUSES["PC1512"]~=null) then MAME_DIR .. "src/devices/bus/pc1512/mouse.h", } end + +--------------------------------------------------- +-- +--@src/devices/bus/cbus/pc9801_cbus.h,BUSES["CBUS"] = true +--------------------------------------------------- + +if (BUSES["CBUS"]~=null) then + files { + MAME_DIR .. "src/devices/bus/cbus/pc9801_26.cpp", + MAME_DIR .. "src/devices/bus/cbus/pc9801_26.h", + MAME_DIR .. "src/devices/bus/cbus/pc9801_86.cpp", + MAME_DIR .. "src/devices/bus/cbus/pc9801_86.h", + MAME_DIR .. "src/devices/bus/cbus/pc9801_118.cpp", + MAME_DIR .. "src/devices/bus/cbus/pc9801_118.h", + MAME_DIR .. "src/devices/bus/cbus/mpu_pc98.cpp", + MAME_DIR .. "src/devices/bus/cbus/mpu_pc98.h", + MAME_DIR .. "src/devices/bus/cbus/pc9801_cbus.cpp", + MAME_DIR .. "src/devices/bus/cbus/pc9801_cbus.h", + } +end diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua index 2684a186546..468c2da140b 100644 --- a/scripts/src/cpu.lua +++ b/scripts/src/cpu.lua @@ -770,19 +770,19 @@ if (CPUS["IE15"]~=null or _OPTIONS["with-tools"]) then end -------------------------------------------------- --- Intel 4004 ---@src/devices/cpu/i4004/i4004.h,CPUS["I4004"] = true +-- Intel MCS-40 +--@src/devices/cpu/mcs40/mcs40.h,CPUS["MCS40"] = true -------------------------------------------------- -if (CPUS["I4004"]~=null) then +if (CPUS["MCS40"]~=null) then files { - MAME_DIR .. "src/devices/cpu/i4004/i4004.cpp", - MAME_DIR .. "src/devices/cpu/i4004/i4004.h", + MAME_DIR .. "src/devices/cpu/mcs40/mcs40.cpp", + MAME_DIR .. "src/devices/cpu/mcs40/mcs40.h", } end -if (CPUS["I4004"]~=null or _OPTIONS["with-tools"]) then - table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i4004/4004dasm.cpp") +if (CPUS["MCS40"]~=null or _OPTIONS["with-tools"]) then + table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mcs40/mcs40dasm.cpp") end -------------------------------------------------- diff --git a/scripts/src/mame/frontend.lua b/scripts/src/mame/frontend.lua index 9e0144916a4..ac2746d1429 100644 --- a/scripts/src/mame/frontend.lua +++ b/scripts/src/mame/frontend.lua @@ -159,6 +159,8 @@ files { MAME_DIR .. "src/frontend/mame/ui/sndmenu.cpp", MAME_DIR .. "src/frontend/mame/ui/sndmenu.h", MAME_DIR .. "src/frontend/mame/ui/starimg.ipp", + MAME_DIR .. "src/frontend/mame/ui/state.cpp", + MAME_DIR .. "src/frontend/mame/ui/state.h", MAME_DIR .. "src/frontend/mame/ui/toolbar.ipp", MAME_DIR .. "src/frontend/mame/ui/utils.cpp", MAME_DIR .. "src/frontend/mame/ui/utils.h", diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 94b6ac67eb3..d60498ba70d 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -103,7 +103,7 @@ CPUS["MINX"] = true CPUS["SSEM"] = true CPUS["AVR8"] = true --CPUS["TMS1000"] = true -CPUS["I4004"] = true +CPUS["MCS40"] = true CPUS["SUPERFX"] = true CPUS["Z8"] = true CPUS["I8008"] = true @@ -1263,23 +1263,23 @@ createMAMEProjects(_target, _subtarget, "barcrest") files { MAME_DIR .. "src/mame/drivers/mpu2.cpp", MAME_DIR .. "src/mame/drivers/mpu3.cpp", - MAME_DIR .. "src/mame/drivers/mpu4.cpp", - MAME_DIR .. "src/mame/drivers/mpu4sw.hxx", - MAME_DIR .. "src/mame/drivers/mpu4.hxx", + MAME_DIR .. "src/mame/machine/mpu4.cpp", MAME_DIR .. "src/mame/includes/mpu4.h", - MAME_DIR .. "src/mame/drivers/mpu4mod2sw.hxx", - MAME_DIR .. "src/mame/drivers/mpu4mod4yam.hxx", - MAME_DIR .. "src/mame/drivers/mpu4plasma.cpp", + MAME_DIR .. "src/mame/drivers/mpu4.cpp", + MAME_DIR .. "src/mame/drivers/mpu4avan.cpp", + MAME_DIR .. "src/mame/drivers/mpu4bwb.cpp", + MAME_DIR .. "src/mame/drivers/mpu4concept.cpp", + MAME_DIR .. "src/mame/drivers/mpu4crystal.cpp", MAME_DIR .. "src/mame/drivers/mpu4dealem.cpp", + MAME_DIR .. "src/mame/drivers/mpu4empire.cpp", + MAME_DIR .. "src/mame/drivers/mpu4mdm.cpp", + MAME_DIR .. "src/mame/drivers/mpu4misc.cpp", + MAME_DIR .. "src/mame/drivers/mpu4mod2sw.cpp", + MAME_DIR .. "src/mame/drivers/mpu4mod4yam.cpp", + MAME_DIR .. "src/mame/drivers/mpu4plasma.cpp", + MAME_DIR .. "src/mame/drivers/mpu4sw.cpp", + MAME_DIR .. "src/mame/drivers/mpu4union.cpp", MAME_DIR .. "src/mame/drivers/mpu4vid.cpp", - MAME_DIR .. "src/mame/drivers/mpu4avan.hxx", - MAME_DIR .. "src/mame/drivers/mpu4union.hxx", - MAME_DIR .. "src/mame/drivers/mpu4concept.hxx", - MAME_DIR .. "src/mame/drivers/mpu4empire.hxx", - MAME_DIR .. "src/mame/drivers/mpu4mdm.hxx", - MAME_DIR .. "src/mame/drivers/mpu4crystal.hxx", - MAME_DIR .. "src/mame/drivers/mpu4bwb.hxx", - MAME_DIR .. "src/mame/drivers/mpu4misc.hxx", MAME_DIR .. "src/mame/drivers/mpu5.cpp", MAME_DIR .. "src/mame/drivers/mpu5.hxx", } @@ -2792,7 +2792,6 @@ createMAMEProjects(_target, _subtarget, "neogeo") files { MAME_DIR .. "src/mame/drivers/neogeo.cpp", MAME_DIR .. "src/mame/includes/neogeo.h", - MAME_DIR .. "src/mame/drivers/neodriv.hxx", MAME_DIR .. "src/mame/video/neogeo.cpp", MAME_DIR .. "src/mame/drivers/neopcb.cpp", MAME_DIR .. "src/mame/video/neogeo_spr.cpp", diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index ee6edf37da8..b5aa206d074 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -103,7 +103,7 @@ CPUS["MINX"] = true CPUS["SSEM"] = true CPUS["AVR8"] = true CPUS["TMS1000"] = true -CPUS["I4004"] = true +CPUS["MCS40"] = true CPUS["SUPERFX"] = true CPUS["Z8"] = true CPUS["I8008"] = true @@ -636,6 +636,7 @@ BUSES["BW2"] = true BUSES["C64"] = true BUSES["CBM2"] = true BUSES["CBMIEC"] = true +BUSES["CBUS"] = true BUSES["CENTRONICS"] = true BUSES["CGENIE_EXPANSION"] = true BUSES["CGENIE_PARALLEL"] = true @@ -2116,6 +2117,7 @@ createMESSProjects(_target, _subtarget, "intel") files { MAME_DIR .. "src/mame/drivers/basic52.cpp", MAME_DIR .. "src/mame/drivers/imds.cpp", + MAME_DIR .. "src/mame/drivers/intellec4.cpp", MAME_DIR .. "src/mame/drivers/ipc.cpp", MAME_DIR .. "src/mame/drivers/ipds.cpp", MAME_DIR .. "src/mame/drivers/isbc.cpp", @@ -2382,14 +2384,6 @@ files { MAME_DIR .. "src/mame/drivers/pc88va.cpp", MAME_DIR .. "src/mame/drivers/pc100.cpp", MAME_DIR .. "src/mame/drivers/pc9801.cpp", - MAME_DIR .. "src/mame/machine/pc9801_26.cpp", - MAME_DIR .. "src/mame/machine/pc9801_26.h", - MAME_DIR .. "src/mame/machine/pc9801_86.cpp", - MAME_DIR .. "src/mame/machine/pc9801_86.h", - MAME_DIR .. "src/mame/machine/pc9801_118.cpp", - MAME_DIR .. "src/mame/machine/pc9801_118.h", - MAME_DIR .. "src/mame/machine/pc9801_cbus.cpp", - MAME_DIR .. "src/mame/machine/pc9801_cbus.h", MAME_DIR .. "src/mame/machine/pc9801_kbd.cpp", MAME_DIR .. "src/mame/machine/pc9801_kbd.h", MAME_DIR .. "src/mame/machine/pc9801_cd.cpp", diff --git a/src/devices/bus/cbus/mpu_pc98.cpp b/src/devices/bus/cbus/mpu_pc98.cpp new file mode 100644 index 00000000000..c471f3169d2 --- /dev/null +++ b/src/devices/bus/cbus/mpu_pc98.cpp @@ -0,0 +1,83 @@ +// license:BSD-3-Clause +// copyright-holders:R. Belmont,Kevin Horton +/*************************************************************************** + + MPU-401 MIDI device interface + +***************************************************************************/ + +#include "emu.h" +#include "mpu_pc98.h" +#include "machine/pic8259.h" + +#define MPU_CORE_TAG "mpu401" + + +/* +DIP-SWs +1-2-3-4 + 0xc0d0 + 1 0xc4d0 + 1 0xc8d0 +... +1 0xe0d0 (default) +... +1 1 1 1 0xfcd0 + +5-6-7-8 +1 irq12 + 1 irq6 (default) + 1 irq5 + 1 irq3 +*/ + +WRITE_LINE_MEMBER( mpu_pc98_device::mpu_irq_out ) +{ +} + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE(MPU_PC98, mpu_pc98_device, "mpu_pc98", "Roland MPU-401 MIDI Interface (CBUS)") + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( mpu_pc98_device::device_add_mconfig ) + MCFG_MPU401_ADD(MPU_CORE_TAG, WRITELINE(mpu_pc98_device, mpu_irq_out)) +MACHINE_CONFIG_END + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +mpu_pc98_device::mpu_pc98_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, MPU_PC98, tag, owner, clock) + , m_mpu401(*this, MPU_CORE_TAG) +{ +} + +DEVICE_ADDRESS_MAP_START(map, 16, mpu_pc98_device) + AM_RANGE(0, 3) AM_DEVREADWRITE8(MPU_CORE_TAG, mpu401_device, mpu_r, mpu_w, 0xff) +ADDRESS_MAP_END + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void mpu_pc98_device::device_start() +{ + address_space &iospace = machine().firstcpu->space(AS_IO); + iospace.install_device(0xe0d0, 0xe0d3, *this, &mpu_pc98_device::map, 16, 0xffffffffffffffffU >> (64 - iospace.data_width())); +} + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void mpu_pc98_device::device_reset() +{ +} diff --git a/src/devices/bus/cbus/mpu_pc98.h b/src/devices/bus/cbus/mpu_pc98.h new file mode 100644 index 00000000000..2131f0e94b5 --- /dev/null +++ b/src/devices/bus/cbus/mpu_pc98.h @@ -0,0 +1,42 @@ +// license:BSD-3-Clause +// copyright-holders:R. Belmont,Kevin Horton +#ifndef MAME_BUS_CBUS_MPU401_H +#define MAME_BUS_CBUS_MPU401_H + +#pragma once + +#include "bus/cbus/pc9801_cbus.h" +#include "machine/mpu401.h" + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> isa8_mpu401_device + +class mpu_pc98_device : public device_t +{ +public: + // construction/destruction + mpu_pc98_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_ADDRESS_MAP(map, 8); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + +private: + // called back by the MPU401 core to set the IRQ line state + DECLARE_WRITE_LINE_MEMBER(mpu_irq_out); + + required_device<mpu401_device> m_mpu401; +}; + + +// device type definition +DECLARE_DEVICE_TYPE(MPU_PC98, mpu_pc98_device) + +#endif // MAME_BUS_CBUS_MPU401_H diff --git a/src/mame/machine/pc9801_118.cpp b/src/devices/bus/cbus/pc9801_118.cpp index 1681dfe5df4..d28ab186c2c 100644 --- a/src/mame/machine/pc9801_118.cpp +++ b/src/devices/bus/cbus/pc9801_118.cpp @@ -13,7 +13,7 @@ ***************************************************************************/ #include "emu.h" -#include "machine/pc9801_118.h" +#include "bus/cbus/pc9801_118.h" #include "machine/pic8259.h" #include "sound/2608intf.h" diff --git a/src/mame/machine/pc9801_118.h b/src/devices/bus/cbus/pc9801_118.h index f9f66be540b..fd71c27c3bb 100644 --- a/src/mame/machine/pc9801_118.h +++ b/src/devices/bus/cbus/pc9801_118.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef MAME_MACHINE_PC9801_118_H -#define MAME_MACHINE_PC9801_118_H +#ifndef MAME_BUS_CBUS_PC9801_118_H +#define MAME_BUS_CBUS_PC9801_118_H #pragma once @@ -68,4 +68,4 @@ DECLARE_DEVICE_TYPE(PC9801_118, pc9801_118_device) -#endif // MAME_MACHINE_PC9801_118_H +#endif // MAME_BUS_CBUS_PC9801_118_H diff --git a/src/mame/machine/pc9801_26.cpp b/src/devices/bus/cbus/pc9801_26.cpp index ab509584137..7b16eea2d65 100644 --- a/src/mame/machine/pc9801_26.cpp +++ b/src/devices/bus/cbus/pc9801_26.cpp @@ -12,7 +12,7 @@ ***************************************************************************/ #include "emu.h" -#include "machine/pc9801_26.h" +#include "bus/cbus/pc9801_26.h" #include "machine/pic8259.h" #include "sound/2203intf.h" diff --git a/src/mame/machine/pc9801_26.h b/src/devices/bus/cbus/pc9801_26.h index 67dbbf18c1a..a006daf9bac 100644 --- a/src/mame/machine/pc9801_26.h +++ b/src/devices/bus/cbus/pc9801_26.h @@ -6,8 +6,8 @@ Template for skeleton device ***************************************************************************/ -#ifndef MAME_MACHINE_PC9801_26_H -#define MAME_MACHINE_PC9801_26_H +#ifndef MAME_BUS_CBUS_PC9801_26_H +#define MAME_BUS_CBUS_PC9801_26_H #pragma once @@ -64,4 +64,4 @@ DECLARE_DEVICE_TYPE(PC9801_26, pc9801_26_device) -#endif // MAME_MACHINE_PC9801_26_H +#endif // MAME_BUS_CBUS_PC9801_26_H diff --git a/src/mame/machine/pc9801_86.cpp b/src/devices/bus/cbus/pc9801_86.cpp index 29f94f2fa4c..547ddb634a6 100644 --- a/src/mame/machine/pc9801_86.cpp +++ b/src/devices/bus/cbus/pc9801_86.cpp @@ -16,7 +16,7 @@ ***************************************************************************/ #include "emu.h" -#include "machine/pc9801_86.h" +#include "bus/cbus/pc9801_86.h" #include "sound/volt_reg.h" #include "speaker.h" diff --git a/src/mame/machine/pc9801_86.h b/src/devices/bus/cbus/pc9801_86.h index 4bb8de0701e..29d2e79c071 100644 --- a/src/mame/machine/pc9801_86.h +++ b/src/devices/bus/cbus/pc9801_86.h @@ -6,8 +6,8 @@ ***************************************************************************/ -#ifndef MAME_MACHINE_PC9801_86_H -#define MAME_MACHINE_PC9801_86_H +#ifndef MAME_BUS_CBUS_PC9801_86_H +#define MAME_BUS_CBUS_PC9801_86_H #pragma once @@ -77,4 +77,4 @@ DECLARE_DEVICE_TYPE(PC9801_86, pc9801_86_device) -#endif // MAME_MACHINE_PC9801_86_H +#endif // MAME_BUS_CBUS_PC9801_86_H diff --git a/src/mame/machine/pc9801_cbus.cpp b/src/devices/bus/cbus/pc9801_cbus.cpp index 06af21561d3..06af21561d3 100644 --- a/src/mame/machine/pc9801_cbus.cpp +++ b/src/devices/bus/cbus/pc9801_cbus.cpp diff --git a/src/mame/machine/pc9801_cbus.h b/src/devices/bus/cbus/pc9801_cbus.h index 1b1084d8961..1b1084d8961 100644 --- a/src/mame/machine/pc9801_cbus.h +++ b/src/devices/bus/cbus/pc9801_cbus.h diff --git a/src/devices/bus/lpci/i82371sb.cpp b/src/devices/bus/lpci/i82371sb.cpp index 4b3744721df..3ea30c60061 100644 --- a/src/devices/bus/lpci/i82371sb.cpp +++ b/src/devices/bus/lpci/i82371sb.cpp @@ -30,6 +30,7 @@ DEFINE_DEVICE_TYPE(I82371SB, i82371sb_device, "i82371sb", "Intel 82371SB") i82371sb_device::i82371sb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : southbridge_device(mconfig, I82371SB, tag, owner, clock) , pci_device_interface( mconfig, *this ) + , m_boot_state_hook(*this) { } @@ -147,6 +148,7 @@ void i82371sb_device::pci_write(pci_bus_device *pcibus, int function, int offset void i82371sb_device::device_start() { southbridge_device::device_start(); + m_boot_state_hook.resolve_safe(); /* setup save states */ save_item(NAME(m_regs)); } @@ -179,3 +181,8 @@ void i82371sb_device::device_reset() m_regs[2][0x08] = 0x0c030000; m_regs[2][0x0c] = 0x00000000; } + +void i82371sb_device::port80_debug_write(uint8_t value) +{ + m_boot_state_hook((offs_t)0, value); +}
\ No newline at end of file diff --git a/src/devices/bus/lpci/i82371sb.h b/src/devices/bus/lpci/i82371sb.h index c9d71a817b7..e4add02c206 100644 --- a/src/devices/bus/lpci/i82371sb.h +++ b/src/devices/bus/lpci/i82371sb.h @@ -24,6 +24,8 @@ public: // construction/destruction i82371sb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + template <class Object> static devcb_base &set_boot_state_hook(device_t &device, Object &&cb) { return downcast<i82371sb_device &>(device).m_boot_state_hook.set_callback(std::forward<Object>(cb)); } + virtual uint32_t pci_read(pci_bus_device *pcibus, int function, int offset, uint32_t mem_mask) override; virtual void pci_write(pci_bus_device *pcibus, int function, int offset, uint32_t data, uint32_t mem_mask) override; @@ -31,6 +33,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void port80_debug_write(uint8_t value) override; uint32_t pci_isa_r(device_t *busdevice, int offset, uint32_t mem_mask); void pci_isa_w(device_t *busdevice, int offset, uint32_t data, uint32_t mem_mask); @@ -42,10 +45,14 @@ protected: void pci_usb_w(device_t *busdevice, int offset, uint32_t data, uint32_t mem_mask); private: uint32_t m_regs[3][0x400/4]; + devcb_write8 m_boot_state_hook; }; // device type definition extern const device_type I82371SB; DECLARE_DEVICE_TYPE(I82371SB, i82371sb_device) +#define MCFG_I82371SB_BOOT_STATE_HOOK(_devcb) \ + devcb = &i82371sb_device::set_boot_state_hook(*device, DEVCB_##_devcb); + #endif // MAME_BUS_LPCI_I82371SB_H diff --git a/src/devices/bus/lpci/i82439tx.cpp b/src/devices/bus/lpci/i82439tx.cpp index b4bebc8e233..39750f7cd7f 100644 --- a/src/devices/bus/lpci/i82439tx.cpp +++ b/src/devices/bus/lpci/i82439tx.cpp @@ -88,6 +88,10 @@ uint32_t i82439tx_device::pci_read(pci_bus_device *pcibus, int function, int off case 0x44: /* reserved */ case 0x48: /* reserved */ case 0x4C: /* reserved */ + logerror("i82439tx_pci_read(): Unemulated PCI read 0x%02X, returning 0\n", offset); + result = 0; + break; + case 0x50: case 0x54: case 0x58: @@ -167,12 +171,47 @@ void i82439tx_device::pci_write(pci_bus_device *pcibus, int function, int offset /* read only */ break; + case 0x58: + if ((mem_mask & 0x0000f000)) + i82439tx_configure_memory(data >> 12, 0xf0000, 0xfffff); + if ((mem_mask & 0x000f0000)) + i82439tx_configure_memory(data >> 16, 0xc0000, 0xc3fff); + if ((mem_mask & 0x00f00000)) + i82439tx_configure_memory(data >> 20, 0xc4000, 0xc7fff); + if ((mem_mask & 0x0f000000)) + i82439tx_configure_memory(data >> 24, 0xc8000, 0xccfff); + if ((mem_mask & 0xf0000000)) + i82439tx_configure_memory(data >> 28, 0xcc000, 0xcffff); + COMBINE_DATA(&m_regs[(offset - 0x50) / 4]); + break; + + case 0x5C: + if ((mem_mask & 0x0000000f)) + i82439tx_configure_memory(data >> 0, 0xd0000, 0xd3fff); + if ((mem_mask & 0x000000f0)) + i82439tx_configure_memory(data >> 4, 0xd4000, 0xd7fff); + if ((mem_mask & 0x00000f00)) + i82439tx_configure_memory(data >> 8, 0xd8000, 0xdbfff); + if ((mem_mask & 0x0000f000)) + i82439tx_configure_memory(data >> 12, 0xdc000, 0xdffff); + if ((mem_mask & 0x000f0000)) + i82439tx_configure_memory(data >> 16, 0xe0000, 0xe3fff); + if ((mem_mask & 0x00f00000)) + i82439tx_configure_memory(data >> 20, 0xe4000, 0xe7fff); + if ((mem_mask & 0x0f000000)) + i82439tx_configure_memory(data >> 24, 0xe8000, 0xecfff); + if ((mem_mask & 0xf0000000)) + i82439tx_configure_memory(data >> 28, 0xec000, 0xeffff); + COMBINE_DATA(&m_regs[(offset - 0x50) / 4]); + break; + case 0x04: /* PCI command register */ case 0x0C: + logerror("i82439tx_pci_write(): Unemulated PCI write 0x%02X = 0x%04X\n", offset, data); + break; + case 0x50: case 0x54: - case 0x58: - case 0x5C: case 0x60: case 0x64: case 0x68: @@ -213,41 +252,6 @@ void i82439tx_device::pci_write(pci_bus_device *pcibus, int function, int offset case 0xF4: case 0xF8: case 0xFC: - switch(offset) - { - case 0x58: - if ((mem_mask & 0x0000f000)) - i82439tx_configure_memory(data >> 12, 0xf0000, 0xfffff); - if ((mem_mask & 0x000f0000)) - i82439tx_configure_memory(data >> 16, 0xc0000, 0xc3fff); - if ((mem_mask & 0x00f00000)) - i82439tx_configure_memory(data >> 20, 0xc4000, 0xc7fff); - if ((mem_mask & 0x0f000000)) - i82439tx_configure_memory(data >> 24, 0xc8000, 0xccfff); - if ((mem_mask & 0xf0000000)) - i82439tx_configure_memory(data >> 28, 0xcc000, 0xcffff); - break; - - case 0x5C: - if ((mem_mask & 0x0000000f)) - i82439tx_configure_memory(data >> 0, 0xd0000, 0xd3fff); - if ((mem_mask & 0x000000f0)) - i82439tx_configure_memory(data >> 4, 0xd4000, 0xd7fff); - if ((mem_mask & 0x00000f00)) - i82439tx_configure_memory(data >> 8, 0xd8000, 0xdbfff); - if ((mem_mask & 0x0000f000)) - i82439tx_configure_memory(data >> 12, 0xdc000, 0xdffff); - if ((mem_mask & 0x000f0000)) - i82439tx_configure_memory(data >> 16, 0xe0000, 0xe3fff); - if ((mem_mask & 0x00f00000)) - i82439tx_configure_memory(data >> 20, 0xe4000, 0xe7fff); - if ((mem_mask & 0x0f000000)) - i82439tx_configure_memory(data >> 24, 0xe8000, 0xecfff); - if ((mem_mask & 0xf0000000)) - i82439tx_configure_memory(data >> 28, 0xec000, 0xeffff); - break; - } - assert(((offset - 0x50) / 4) >= 0 && ((offset - 0x50) / 4) < ARRAY_LENGTH(m_regs)); COMBINE_DATA(&m_regs[(offset - 0x50) / 4]); break; diff --git a/src/devices/bus/lpci/southbridge.cpp b/src/devices/bus/lpci/southbridge.cpp index 969a2b8c71b..70bff510211 100644 --- a/src/devices/bus/lpci/southbridge.cpp +++ b/src/devices/bus/lpci/southbridge.cpp @@ -297,6 +297,8 @@ WRITE8_MEMBER( southbridge_device::at_page8_w ) { m_at_pages[offset % 0x10] = data; + if (offset == 0) + port80_debug_write(data); switch(offset % 8) { case 1: diff --git a/src/devices/bus/lpci/southbridge.h b/src/devices/bus/lpci/southbridge.h index 586a5ae30ca..142fcc0f98b 100644 --- a/src/devices/bus/lpci/southbridge.h +++ b/src/devices/bus/lpci/southbridge.h @@ -50,6 +50,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void port80_debug_write(uint8_t value) {} required_device<cpu_device> m_maincpu; required_device<pic8259_device> m_pic8259_master; diff --git a/src/devices/bus/ti99/hexbus/hexbus.cpp b/src/devices/bus/ti99/hexbus/hexbus.cpp index 92251f423b2..d8c315057c7 100644 --- a/src/devices/bus/ti99/hexbus/hexbus.cpp +++ b/src/devices/bus/ti99/hexbus/hexbus.cpp @@ -88,15 +88,42 @@ Usage in MAME ------------- - Single device usage: mame <driver> -hexbus <device> - Multiple device usage: - mame <driver> -hexbus chain -hexbus:chain:1 <device> ... -hexbus:chain:4 <device> + Usually the device offers an own hexbus socket, so we can chain devices: - We currently assume a maximum length of 4 devices which can be increased - if desired. The chain positions should be used starting from 1 with no - gaps, but this is not enforced. + mame <driver> -hexbus <device1> -hexbus:<device1>:hexbus <device2> ... + + The direction towards the console is named "inbound" in the implementation, + while the direction towards the end of the chain is named "outbound". + + Implementation + -------------- + + All lines (ADB0-3, HSK*, BAV*) are pull-down outputs with open collectors, + and at the same time also inputs. + + The challenge, compared to other daisy-chained buses, is that the Hexbus + is nondirectional. Writing on the bus is sensed by all devices in either + direction. Also, reading from the bus is the product of all active output + buffers. With no active device, the bus lines are pulled high. + + Every Hexbus device has an interface "device_ti_hexbus_interface" which + allows it to plug into a preceding Hexbus socket. + + Since the signal propagation is the same for all devices, there is a + parent class "hexbus_chained_device" that calculates the current levels + for all bus lines by fetching all values from the attached devices, ANDing + them, and propagating them again. This must be done in both directions. + + Reading is simpler, because we assume that changes can only be done by + writing to the bus. + + The "hexbus_chained_device" implements the "device_ti_hexbus_interface" + and holds references to up to two Hexbus instances, one for each direction. + The computer console will not offer an inbound Hexbus connection, only + an outbound one, and possibly there is some device that must be connected + at the end, without further outbound connections. References ---------- @@ -118,163 +145,162 @@ // Hexbus instance DEFINE_DEVICE_TYPE_NS(TI_HEXBUS, bus::ti99::hexbus, hexbus_device, "ti_hexbus", "Hexbus") -// Hexbus daisy chain -DEFINE_DEVICE_TYPE_NS(TI_HEXBUS_CHAIN, bus::ti99::hexbus, hexbus_chain_device, "ti_hexbus_chain", "Hexbus chain") - -// Single slot of the Hexbus -DEFINE_DEVICE_TYPE_NS(TI_HEXBUS_SLOT, bus::ti99::hexbus, hexbus_slot_device, "ti_hexbus_slot", "Hexbus position") - namespace bus { namespace ti99 { namespace hexbus { -enum -{ - NOTCONN = -1 -}; - hexbus_device::hexbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, TI_HEXBUS, tag, owner, clock), device_slot_interface(mconfig, *this), - m_master(nullptr), - m_slave(nullptr) + m_next_dev(nullptr) { } void hexbus_device::device_start() { + m_next_dev = dynamic_cast<device_ti_hexbus_interface *>(get_card_device()); } -void hexbus_device::device_config_complete() +/* + Write to the hexbus. If the write operation comes from the plugged device, + this is an inbound write; otherwise, the write comes from the owner of the + hexbus connector, which means an outbound write. +*/ +void hexbus_device::write(int dir, uint8_t data) { - m_slave = dynamic_cast<device_ti_hexbus_interface*>(subdevices().first()); - if (m_slave != nullptr) - m_slave->set_hexbus(this); + if (dir == INBOUND) + m_chain_element->bus_write(INBOUND, data); + else + { + // Is there another Hexbus device? + if (m_next_dev != nullptr) + m_next_dev->bus_write(OUTBOUND, data); + } } -void hexbus_device::send() +/* + Read from the hexbus. If the read operation comes from the plugged device, + this is an inbound read; otherwise, the read comes from the owner of the + hexbus connector, which means an outbound read. +*/ +uint8_t hexbus_device::read(int dir) { - uint8_t sum = m_master->get_value(); - if (m_slave != nullptr) + // Default is: all lines pulled up + uint8_t value = 0xff; + + if (dir == INBOUND) + value = m_chain_element->bus_read(INBOUND); + else { - sum &= m_slave->get_value(); - m_slave->receive(sum); + // Is there another Hexbus device? + if (m_next_dev != nullptr) + value = m_next_dev->bus_read(OUTBOUND); } - m_master->receive(sum); + return value; } // ------------------------------------------------------------------------ -hexbus_chain_device::hexbus_chain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TI_HEXBUS_CHAIN, tag, owner, clock), +hexbus_chained_device::hexbus_chained_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock): + device_t(mconfig, type, tag, owner, clock), device_ti_hexbus_interface(mconfig, *this) { + m_hexbus_inbound = dynamic_cast<hexbus_device *>(owner); + m_myvalue = 0xff; } -uint8_t hexbus_chain_device::get_value() +void hexbus_chained_device::device_start() { - uint8_t sum = 0xff; + m_hexbus_outbound = static_cast<hexbus_device*>(subdevice("hexbus")); - // Do the wired AND - for (device_t &child : subdevices()) - { - hexbus_slot_device* slot = downcast<hexbus_slot_device *>(&child); - sum &= slot->get_value(); - } - - return sum; + // Establish callback for inbound propagations + m_hexbus_outbound->set_chain_element(this); } -void hexbus_chain_device::receive(uint8_t value) +/* + Called from the Hexbus user, that is, the device that subclasses + hexbus_chained_device, like the HX5102 +*/ +void hexbus_chained_device::hexbus_write(uint8_t data) { - // Propagate - for (device_t &child : subdevices()) - { - hexbus_slot_device* slot = downcast<hexbus_slot_device *>(&child); - slot->receive(value); - } -} + m_myvalue = data; -void hexbus_chain_device::device_start() -{ -} + uint8_t inbound_value = 0xff; + uint8_t outbound_value = 0xff; -SLOT_INTERFACE_START( ti_hexbus_chain_slot ) -// SLOT_INTERFACE("hx5102", TI_HX5102) // not an option yet -SLOT_INTERFACE_END + // Determine the current bus level from the values of the + // other devices left and right from us + if (m_hexbus_inbound != nullptr) + inbound_value = m_hexbus_inbound->read(INBOUND); -MACHINE_CONFIG_MEMBER( hexbus_chain_device::device_add_mconfig ) - MCFG_HEXBUS_SLOT_ADD( "1", ti_hexbus_chain_slot ) - MCFG_HEXBUS_SLOT_ADD( "2", ti_hexbus_chain_slot ) - MCFG_HEXBUS_SLOT_ADD( "3", ti_hexbus_chain_slot ) - MCFG_HEXBUS_SLOT_ADD( "4", ti_hexbus_chain_slot ) -MACHINE_CONFIG_END + if (m_hexbus_outbound != nullptr) + outbound_value = m_hexbus_outbound->read(OUTBOUND); -// ------------------------------------------------------------------------ + // What is the new bus level? + uint8_t newvalue = inbound_value & outbound_value & m_myvalue; -int hexbus_slot_device::get_index_from_tagname() -{ - const char *mytag = tag(); - int maxlen = strlen(mytag); - int i; - for (i=maxlen-1; i >=0; i--) - if (mytag[i] < 48 || mytag[i] > 57) break; + // If it changed, propagate to both directions. + if (newvalue != m_current_bus_value) + { + hexbus_value_changed(newvalue); + m_current_bus_value = newvalue; - return atoi(mytag+i+1); -} + if (m_hexbus_inbound != nullptr) + m_hexbus_inbound->write(INBOUND, m_current_bus_value); -hexbus_slot_device::hexbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, TI_HEXBUS_SLOT, tag, owner, clock), - device_slot_interface(mconfig, *this), - m_hexbdev(nullptr) -{ + if (m_hexbus_outbound != nullptr) + m_hexbus_outbound->write(OUTBOUND, m_current_bus_value); + } } -/* Called from the Hexbus instance */ -int hexbus_slot_device::get_index() +/* + Called from the Hexbus user, that is, the device that subclasses + hexbus_chained_device, like the HX5102 +*/ +uint8_t hexbus_chained_device::hexbus_read() { - if (m_hexbdev == nullptr) return NOTCONN; - return get_index_from_tagname(); + return m_current_bus_value; } -uint8_t hexbus_slot_device::get_value() +/* + Called from another hexbus device on the bus +*/ +uint8_t hexbus_chained_device::bus_read(int dir) { - return (m_hexbdev != nullptr)? m_hexbdev->get_value() : 0xff; -} + uint8_t tmpvalue = 0xff; + hexbus_device* hexbuscont = (dir == INBOUND)? m_hexbus_inbound : m_hexbus_outbound; -void hexbus_slot_device::receive(uint8_t value) -{ - if (m_hexbdev != nullptr) - m_hexbdev->receive(value); -} + if (hexbuscont != nullptr) + tmpvalue = hexbuscont->read(dir); -void hexbus_slot_device::device_start() -{ + return m_myvalue & tmpvalue; } -void hexbus_slot_device::device_config_complete() +/* + Called from another hexbus device on the bus +*/ +void hexbus_chained_device::bus_write(int dir, uint8_t data) { - m_hexbus = dynamic_cast<hexbus_device*>(owner()); - m_hexbdev = dynamic_cast<device_ti_hexbus_interface *>(subdevices().first()); -} + hexbus_device* hexbuscont = (dir == INBOUND)? m_hexbus_inbound : m_hexbus_outbound; -// ------------------------------------------------------------------------ + // Notify device + if (data != m_current_bus_value) + hexbus_value_changed(data); -void device_ti_hexbus_interface::interface_config_complete() -{ - m_hexbus = dynamic_cast<hexbus_device*>(device().owner()); -} + m_current_bus_value = data; -void device_ti_hexbus_interface::hexbus_send(uint8_t value) -{ - m_value = value; - m_hexbus->send(); + // Propagate + if (hexbuscont != nullptr) + hexbuscont->write(dir, data); } +MACHINE_CONFIG_MEMBER( hexbus_chained_device::device_add_mconfig ) + MCFG_HEXBUS_ADD("hexbus") +MACHINE_CONFIG_END + // ------------------------------------------------------------------------ } } } // end namespace bus::ti99::hexbus SLOT_INTERFACE_START( ti_hexbus_conn ) -// SLOT_INTERFACE("hx5102", TI_HX5102) // not an option yet - SLOT_INTERFACE("chain", TI_HEXBUS_CHAIN) + SLOT_INTERFACE("hx5102", TI_HX5102) SLOT_INTERFACE_END diff --git a/src/devices/bus/ti99/hexbus/hexbus.h b/src/devices/bus/ti99/hexbus/hexbus.h index 6718a79768f..5c9f62274c2 100644 --- a/src/devices/bus/ti99/hexbus/hexbus.h +++ b/src/devices/bus/ti99/hexbus/hexbus.h @@ -21,119 +21,104 @@ namespace bus { namespace ti99 { namespace hexbus { enum { - MAX_DEVICES = 4 + INBOUND = 0, + OUTBOUND = 1 }; class hexbus_device; +class hexbus_chained_device; /******************************************************************** - Common parent class of all devices attached to the hexbus port + Interface for a device that connects to the Hexbus ********************************************************************/ + class device_ti_hexbus_interface : public device_slot_card_interface { - friend class hexbus_device; - friend class hexbus_slot_device; +public: + virtual uint8_t bus_read(int dir) =0; + virtual void bus_write(int dir, uint8_t data) =0; protected: - using device_slot_card_interface::device_slot_card_interface; - void hexbus_send(uint8_t value); - uint8_t hexbus_receive() { return m_busvalue; } - - virtual void receive(uint8_t value) { m_busvalue = value; } - virtual uint8_t get_value() { return m_value; } - - virtual void interface_config_complete() override; - hexbus_device *m_hexbus; // Link to the Hexbus - -private: - void set_hexbus(hexbus_device* hexbus) { m_hexbus = hexbus; } - uint8_t m_value; - uint8_t m_busvalue; + device_ti_hexbus_interface(const machine_config &mconfig, device_t &device) : + device_slot_card_interface(mconfig, device) { } }; -// ------------------------------------------------------------------------ - -class hexbus_device : public device_t, public device_slot_interface +/******************************************************************** + Common parent class of all devices attached to the hexbus port + This class implements the signal propagation in both directions +********************************************************************/ +class hexbus_chained_device : public device_t, public device_ti_hexbus_interface { - friend class device_ti_hexbus_interface; + friend class hexbus_device; public: - hexbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void connect_master(device_ti_hexbus_interface *masterdev) { m_master = masterdev; } + hexbus_chained_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_start() override; protected: - void device_start() override; - void device_config_complete() override; + virtual void device_add_mconfig(machine_config &config) override; -private: - device_ti_hexbus_interface *m_master; - device_ti_hexbus_interface *m_slave; + // Link to the inbound Hexbus (if not null, see Oso chip) + hexbus_device *m_hexbus_inbound; - // Called from a slot, samples all values from the devices, and propagates - // the logical product to all connected devices - void send(); -}; + // Link to the outbound Hexbus (if not null) + hexbus_device *m_hexbus_outbound; + // Common AND of all private values + uint8_t m_current_bus_value; -// ------------------------------------------------------------------------ + // From device_ti_hexbus_interface + virtual uint8_t bus_read(int dir) override; + virtual void bus_write(int dir, uint8_t data) override; -class hexbus_chain_device : public device_t, public device_ti_hexbus_interface -{ -public: - hexbus_chain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void device_add_mconfig(machine_config &config) override; + // Methods to be used from subclasses + void hexbus_write(uint8_t data); + uint8_t hexbus_read(); + + // For interrupts + virtual void hexbus_value_changed(uint8_t data) { }; private: - void device_start() override; - void receive(uint8_t value) override; - uint8_t get_value() override; + uint8_t m_myvalue; }; // ------------------------------------------------------------------------ -class hexbus_slot_device : public device_t, public device_slot_interface -{ - friend class hexbus_attached_device; - friend class hexbus_chain_device; +/******************************************************************** + Connector to the Hexbus, offers a slot for Hexbus-chained devices +********************************************************************/ +class hexbus_device : public device_t, public device_slot_interface +{ public: - hexbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + hexbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // Called from the hexbus (direction to attached device) - void receive(uint8_t value); + // Used to establish the reverse link (inbound) + void set_chain_element(hexbus_chained_device* chain) { m_chain_element = chain; } - // Called from the hexbus - uint8_t get_value(); + // Read and write operations on the bus + uint8_t read(int dir); + void write(int dir, uint8_t data); protected: void device_start() override; - void device_config_complete() override; - - // Called from the Hexbus instance - int get_index(); + device_ti_hexbus_interface *m_next_dev; private: - int get_index_from_tagname(); - - device_ti_hexbus_interface* m_hexbdev; - hexbus_device* m_hexbus; + // owner of this Hexbus socket; may be the owning component or another + // component in the device hierarchy (see TI-99/8 where it belongs to Oso, + // but the Hexbus is a subdevice of the driver itself) + hexbus_chained_device* m_chain_element; }; - #define MCFG_HEXBUS_ADD( _tag ) \ MCFG_DEVICE_ADD(_tag, TI_HEXBUS, 0) \ MCFG_DEVICE_SLOT_INTERFACE( ti_hexbus_conn, nullptr, false) -#define MCFG_HEXBUS_SLOT_ADD(_tag, _slot_intf) \ - MCFG_DEVICE_ADD(_tag, TI_HEXBUS_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, nullptr, false) - } } } // end namespace bus::ti99::hexbus SLOT_INTERFACE_EXTERN( ti_hexbus_conn ); -DECLARE_DEVICE_TYPE_NS(TI_HEXBUS, bus::ti99::hexbus, hexbus_device) -DECLARE_DEVICE_TYPE_NS(TI_HEXBUS_CHAIN, bus::ti99::hexbus, hexbus_chain_device) -DECLARE_DEVICE_TYPE_NS(TI_HEXBUS_SLOT, bus::ti99::hexbus, hexbus_slot_device) +DECLARE_DEVICE_TYPE_NS(TI_HEXBUS, bus::ti99::hexbus, hexbus_device) #endif // MAME_BUS_TI99_HEXBUS_HEXBUS_H diff --git a/src/devices/bus/ti99/hexbus/hx5102.cpp b/src/devices/bus/ti99/hexbus/hx5102.cpp index e95c31c8d1e..e1bfb5fcbfa 100644 --- a/src/devices/bus/ti99/hexbus/hx5102.cpp +++ b/src/devices/bus/ti99/hexbus/hx5102.cpp @@ -15,18 +15,20 @@ #include "emu.h" #include "hx5102.h" +#define TRACE_HEXBUS 0 + DEFINE_DEVICE_TYPE_NS(TI_HX5102, bus::ti99::hexbus, hx5102_device, "ti_hx5102", "TI Hexbus Floppy") namespace bus { namespace ti99 { namespace hexbus { hx5102_device::hx5102_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock): - device_t(mconfig, TI_HX5102, tag, owner, clock), - device_ti_hexbus_interface(mconfig, *this) + hexbus_chained_device(mconfig, TI_HX5102, tag, owner, clock) { } -void hx5102_device::device_start() +void hx5102_device::hexbus_value_changed(uint8_t data) { + if (TRACE_HEXBUS) logerror("Hexbus value changed to %02x\n", data); } } } } // end namespace bus::ti99::hexbus diff --git a/src/devices/bus/ti99/hexbus/hx5102.h b/src/devices/bus/ti99/hexbus/hx5102.h index 6eb2837ad1b..c384305a9fd 100644 --- a/src/devices/bus/ti99/hexbus/hx5102.h +++ b/src/devices/bus/ti99/hexbus/hx5102.h @@ -21,12 +21,11 @@ namespace bus { namespace ti99 { namespace hexbus { -class hx5102_device : public device_t, public device_ti_hexbus_interface +class hx5102_device : public hexbus_chained_device { public: hx5102_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - void device_start() override; + void hexbus_value_changed(uint8_t data) override; }; } } } // end namespace bus::ti99::hexbus diff --git a/src/devices/bus/ti99/internal/998board.cpp b/src/devices/bus/ti99/internal/998board.cpp index 28e01049671..a89353051e9 100644 --- a/src/devices/bus/ti99/internal/998board.cpp +++ b/src/devices/bus/ti99/internal/998board.cpp @@ -2228,13 +2228,14 @@ enum }; oso_device::oso_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, TI99_OSO, tag, owner, clock), - bus::ti99::hexbus::device_ti_hexbus_interface(mconfig, *this), + bus::ti99::hexbus::hexbus_chained_device(mconfig, TI99_OSO, tag, owner, clock), m_data(0), m_status(0), m_control(0), m_xmit(0) { + m_hexbus_inbound = nullptr; + m_hexbus_outbound = nullptr; } READ8_MEMBER( oso_device::read ) @@ -2276,6 +2277,7 @@ WRITE8_MEMBER( oso_device::write ) // write 5FF8: write transmit register if (TRACE_OSO) logerror("Write transmit register %02x\n", data); m_xmit = data; + hexbus_write(data); // We set the status register directly in order to prevent lock-ups // until we have a complete Hexbus implementation m_status |= HSKWT; @@ -2292,13 +2294,20 @@ WRITE8_MEMBER( oso_device::write ) } } +void oso_device::hexbus_value_changed(uint8_t data) +{ + if (TRACE_OSO) logerror("Hexbus value changed to %02x\n", data); +} + void oso_device::device_start() { logerror("Starting\n"); m_status = m_xmit = m_control = m_data = 0; - m_hexbus = downcast<bus::ti99::hexbus::hexbus_device*>(machine().device(TI_HEXBUS_TAG)); - m_hexbus->connect_master(this); + m_hexbus_outbound = dynamic_cast<bus::ti99::hexbus::hexbus_device*>(machine().device(TI_HEXBUS_TAG)); + + // Establish callback + m_hexbus_outbound->set_chain_element(this); save_item(NAME(m_data)); save_item(NAME(m_status)); diff --git a/src/devices/bus/ti99/internal/998board.h b/src/devices/bus/ti99/internal/998board.h index 45b154a590b..a0d09062a54 100644 --- a/src/devices/bus/ti99/internal/998board.h +++ b/src/devices/bus/ti99/internal/998board.h @@ -422,7 +422,7 @@ private: /* Custom chip: OSO */ -class oso_device : public device_t, public bus::ti99::hexbus::device_ti_hexbus_interface +class oso_device : public bus::ti99::hexbus::hexbus_chained_device { public: oso_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -430,13 +430,13 @@ public: DECLARE_WRITE8_MEMBER( write ); void device_start() override; + void hexbus_value_changed(uint8_t data) override; + private: uint8_t m_data; uint8_t m_status; uint8_t m_control; uint8_t m_xmit; - - bus::ti99::hexbus::hexbus_device* m_hexbus; }; class mainboard8_device : public device_t diff --git a/src/devices/cpu/i4004/4004dasm.cpp b/src/devices/cpu/i4004/4004dasm.cpp deleted file mode 100644 index 09cef4a9873..00000000000 --- a/src/devices/cpu/i4004/4004dasm.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Miodrag Milanovic -/***************************************************************************** - * - * 4004dasm.c - * - * Intel 4004 CPU Disassembly - * - *****************************************************************************/ - -#include "emu.h" - -#define OP(A) oprom[(A) - PC] -#define ARG(A) opram[(A) - PC] - -CPU_DISASSEMBLE(i4004) -{ - uint32_t flags = 0; - uint8_t op; - unsigned PC = pc; - uint16_t page = PC & 0x0f00; - switch (op = OP(pc++)) - { - case 0x00: util::stream_format(stream, "nop"); break; - case 0x11: util::stream_format(stream, "jnt $%03x",page | ARG(pc)); pc++; break; - case 0x12: util::stream_format(stream, "jc $%03x",page | ARG(pc)); pc++; break; - case 0x14: util::stream_format(stream, "jz $%03x",page | ARG(pc)); pc++; break; - case 0x19: util::stream_format(stream, "jt $%03x",page | ARG(pc)); pc++; break; - case 0x1a: util::stream_format(stream, "jnc $%03x",page | ARG(pc)); pc++; break; - case 0x1c: util::stream_format(stream, "jnz $%03x",page | ARG(pc)); pc++; break; - case 0x10: case 0x13: case 0x15: case 0x16: - case 0x17: case 0x18: case 0x1b: case 0x1d: - case 0x1e: case 0x1f: - util::stream_format(stream, "jcn $%01x,$%03x",op & 0x0f,page | ARG(pc)); pc++; break; - case 0x20: case 0x22: case 0x24: case 0x26: - case 0x28: case 0x2a: case 0x2c: case 0x2e: - util::stream_format(stream, "fim $%01x,$%02x",op & 0x0f,OP(pc)); pc++; break; - case 0x21: case 0x23: case 0x25: case 0x27: - case 0x29: case 0x2b: case 0x2d: case 0x2f: - util::stream_format(stream, "src $%01x",(op & 0x0f)-1); break; - case 0x30: case 0x32: case 0x34: case 0x36: - case 0x38: case 0x3a: case 0x3c: case 0x3e: - util::stream_format(stream, "fin $%01x",op & 0x0f); break; - case 0x31: case 0x33: case 0x35: case 0x37: - case 0x39: case 0x3b: case 0x3d: case 0x3f: - util::stream_format(stream, "jin $%01x",(op & 0x0f)-1); break; - case 0x40: case 0x41: case 0x42: case 0x43: - case 0x44: case 0x45: case 0x46: case 0x47: - case 0x48: case 0x49: case 0x4a: case 0x4b: - case 0x4c: case 0x4d: case 0x4e: case 0x4f: - util::stream_format(stream, "jun $%01x%02x",op & 0x0f,ARG(pc)); pc++; break; - case 0x50: case 0x51: case 0x52: case 0x53: - case 0x54: case 0x55: case 0x56: case 0x57: - case 0x58: case 0x59: case 0x5a: case 0x5b: - case 0x5c: case 0x5d: case 0x5e: case 0x5f: - util::stream_format(stream, "jms $%01x%02x",op & 0x0f,ARG(pc)); pc++; break; - case 0x60: case 0x61: case 0x62: case 0x63: - case 0x64: case 0x65: case 0x66: case 0x67: - case 0x68: case 0x69: case 0x6a: case 0x6b: - case 0x6c: case 0x6d: case 0x6e: case 0x6f: - util::stream_format(stream, "inc $%01x",op & 0x0f); break; - case 0x70: case 0x71: case 0x72: case 0x73: - case 0x74: case 0x75: case 0x76: case 0x77: - case 0x78: case 0x79: case 0x7a: case 0x7b: - case 0x7c: case 0x7d: case 0x7e: case 0x7f: - util::stream_format(stream, "isz $%01x,%03x",op & 0x0f,page | ARG(pc)); pc++; break; - case 0x80: case 0x81: case 0x82: case 0x83: - case 0x84: case 0x85: case 0x86: case 0x87: - case 0x88: case 0x89: case 0x8a: case 0x8b: - case 0x8c: case 0x8d: case 0x8e: case 0x8f: - util::stream_format(stream, "add $%01x",op & 0x0f); break; - case 0x90: case 0x91: case 0x92: case 0x93: - case 0x94: case 0x95: case 0x96: case 0x97: - case 0x98: case 0x99: case 0x9a: case 0x9b: - case 0x9c: case 0x9d: case 0x9e: case 0x9f: - util::stream_format(stream, "sub $%01x",op & 0x0f); break; - case 0xa0: case 0xa1: case 0xa2: case 0xa3: - case 0xa4: case 0xa5: case 0xa6: case 0xa7: - case 0xa8: case 0xa9: case 0xaa: case 0xab: - case 0xac: case 0xad: case 0xae: case 0xaf: - util::stream_format(stream, "ld $%01x",op & 0x0f); break; - case 0xb0: case 0xb1: case 0xb2: case 0xb3: - case 0xb4: case 0xb5: case 0xb6: case 0xb7: - case 0xb8: case 0xb9: case 0xba: case 0xbb: - case 0xbc: case 0xbd: case 0xbe: case 0xbf: - util::stream_format(stream, "xch $%01x",op & 0x0f); break; - case 0xc0: case 0xc1: case 0xc2: case 0xc3: - case 0xc4: case 0xc5: case 0xc6: case 0xc7: - case 0xc8: case 0xc9: case 0xca: case 0xcb: - case 0xcc: case 0xcd: case 0xce: case 0xcf: - util::stream_format(stream, "bbl $%01x",op & 0x0f); break; - case 0xd0: case 0xd1: case 0xd2: case 0xd3: - case 0xd4: case 0xd5: case 0xd6: case 0xd7: - case 0xd8: case 0xd9: case 0xda: case 0xdb: - case 0xdc: case 0xdd: case 0xde: case 0xdf: - util::stream_format(stream, "ldm $%01x",op & 0x0f); break; - - case 0xe0: util::stream_format(stream, "wrm"); break; - case 0xe1: util::stream_format(stream, "wmp"); break; - case 0xe2: util::stream_format(stream, "wrr"); break; - case 0xe3: util::stream_format(stream, "wpm"); break; - case 0xe4: util::stream_format(stream, "wr0"); break; - case 0xe5: util::stream_format(stream, "wr1"); break; - case 0xe6: util::stream_format(stream, "wr2"); break; - case 0xe7: util::stream_format(stream, "wr3"); break; - case 0xe8: util::stream_format(stream, "sbm"); break; - case 0xe9: util::stream_format(stream, "rdm"); break; - case 0xea: util::stream_format(stream, "rdr"); break; - case 0xeb: util::stream_format(stream, "adm"); break; - case 0xec: util::stream_format(stream, "rd0"); break; - case 0xed: util::stream_format(stream, "rd1"); break; - case 0xee: util::stream_format(stream, "rd2"); break; - case 0xef: util::stream_format(stream, "rd3"); break; - - case 0xf0: util::stream_format(stream, "clb"); break; - case 0xf1: util::stream_format(stream, "clc"); break; - case 0xf2: util::stream_format(stream, "iac"); break; - case 0xf3: util::stream_format(stream, "cmc"); break; - case 0xf4: util::stream_format(stream, "cma"); break; - case 0xf5: util::stream_format(stream, "ral"); break; - case 0xf6: util::stream_format(stream, "rar"); break; - case 0xf7: util::stream_format(stream, "tcc"); break; - case 0xf8: util::stream_format(stream, "dac"); break; - case 0xf9: util::stream_format(stream, "tcs"); break; - case 0xfa: util::stream_format(stream, "stc"); break; - case 0xfb: util::stream_format(stream, "daa"); break; - case 0xfc: util::stream_format(stream, "kbp"); break; - case 0xfd: util::stream_format(stream, "dcl"); break; - - default : util::stream_format(stream, "illegal"); break; - } - return (pc - PC) | flags | DASMFLAG_SUPPORTED; -} diff --git a/src/devices/cpu/i4004/i4004.cpp b/src/devices/cpu/i4004/i4004.cpp deleted file mode 100644 index 782e59d6d84..00000000000 --- a/src/devices/cpu/i4004/i4004.cpp +++ /dev/null @@ -1,529 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Miodrag Milanovic -/***************************************************************************** - * - * i4004.c - * - * Intel 4004 CPU - * - *****************************************************************************/ -#include "emu.h" -#include "i4004.h" -#include "debugger.h" - - -static const uint8_t kbp_table[] = { 0x00,0x01,0x02,0x0f,0x03,0x0f,0x0f,0x0f,0x04,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f }; - - -/*************************************************************************** - MACROS -***************************************************************************/ -#define GET_PC (m_ADDR[m_pc_pos]) - - -DEFINE_DEVICE_TYPE(I4004, i4004_cpu_device, "i4004", "Intel 4004") - - -i4004_cpu_device::i4004_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, I4004, tag, owner, clock) - , m_program_config("program", ENDIANNESS_LITTLE, 8, 12, 0) - , m_io_config("io", ENDIANNESS_LITTLE, 8, 6, 0) - , m_data_config("data", ENDIANNESS_LITTLE, 8, 12, 0), m_A(0), m_C(0), m_TEST(0), m_flags(0), m_program(nullptr), m_direct(nullptr), m_data(nullptr), m_io(nullptr), m_icount(0), m_pc_pos(0), m_addr_mask(0) -{ - m_program_config.m_is_octal = true; - m_io_config.m_is_octal = true; - m_data_config.m_is_octal = true; -} - - -uint8_t i4004_cpu_device::ROP() -{ - uint8_t retVal = m_direct->read_byte(GET_PC.w.l); - GET_PC.w.l = (GET_PC.w.l + 1) & 0x0fff; - m_PC = GET_PC; - return retVal; -} - -uint8_t i4004_cpu_device::READ_ROM() -{ - return m_direct->read_byte((GET_PC.w.l & 0x0f00) | m_R[0]); -} - -void i4004_cpu_device::WPM() -{ - uint8_t t = (m_program->read_byte(m_RAM.d) << 4) | m_A; - m_program->write_byte((GET_PC.w.l & 0x0f00) | m_RAM.d, t); -} - - -uint8_t i4004_cpu_device::ARG() -{ - uint8_t retVal = m_direct->read_byte(GET_PC.w.l); - GET_PC.w.l = (GET_PC.w.l + 1) & 0x0fff; - m_PC = GET_PC; - return retVal; -} - -uint8_t i4004_cpu_device::RM() -{ - return m_data->read_byte(m_RAM.d) & 0x0f; -} - -uint8_t i4004_cpu_device::RMS(uint32_t a) -{ - return m_data->read_byte((m_RAM.d & 0xff0) + a) >> 4; -} - -void i4004_cpu_device::WM(uint8_t v) -{ - uint8_t t = m_data->read_byte(m_RAM.d); - m_data->write_byte(m_RAM.d, (t & 0xf0) | v); -} - - -void i4004_cpu_device::WMP(uint8_t v) -{ - m_io->write_byte((m_RAM.d >> 6) | 0x10, v & 0x0f); -} - -void i4004_cpu_device::WMS(uint32_t a, uint8_t v) -{ - uint8_t t = m_data->read_byte((m_RAM.d & 0xff0) + a); - m_data->write_byte((m_RAM.d & 0xff0) + a, (t & 0x0f) | (v<<4)); -} - -uint8_t i4004_cpu_device::RIO() -{ - return m_io->read_byte(m_RAM.b.l >> 4) & 0x0f; -} - -void i4004_cpu_device::WIO(uint8_t v) -{ - m_io->write_byte(m_RAM.b.l >> 4, v & 0x0f); -} - -uint8_t i4004_cpu_device::GET_REG(uint8_t num) -{ - uint8_t r = m_R[num>>1]; - if (num & 1) { - return r & 0x0f; - } else { - return (r >> 4) & 0x0f; - } -} - -void i4004_cpu_device::SET_REG(uint8_t num, uint8_t val) -{ - if (num & 1) { - m_R[num>>1] = (m_R[num>>1] & 0xf0) + (val & 0x0f); - } else { - m_R[num>>1] = (m_R[num>>1] & 0x0f) + ((val & 0x0f) << 4); - } -} - -void i4004_cpu_device::PUSH_STACK() -{ - m_pc_pos = (m_pc_pos + 1) & m_addr_mask; -} - -void i4004_cpu_device::POP_STACK() -{ - m_ADDR[m_pc_pos].d = 0; - m_pc_pos = (m_pc_pos - 1) & m_addr_mask; -} - -void i4004_cpu_device::set_test(uint8_t val) -{ - m_TEST = val; -} - -void i4004_cpu_device::execute_one(int opcode) -{ - m_icount -= 8; - switch (opcode) - { - case 0x00: /* NOP */ - /* no op */ - break; - case 0x10: case 0x11: case 0x12: case 0x13: - case 0x14: case 0x15: case 0x16: case 0x17: - case 0x18: case 0x19: case 0x1a: case 0x1b: - case 0x1c: case 0x1d: case 0x1e: case 0x1f: /* JCN */ - { - uint8_t arg = ARG(); - - uint8_t C1 = BIT(opcode,3); - uint8_t C2 = BIT(opcode,2); - uint8_t C3 = BIT(opcode,1); - uint8_t C4 = BIT(opcode,0); - uint8_t JUMP = (((m_A == 0) ? 1 : 0) & C2) | ((m_C) & C3) | ((m_TEST ^ 1) & C4); - m_icount -= 8; - - if(((C1 ^ 1) & JUMP) | (C1 & (JUMP ^ 1))) { - GET_PC.w.l = (GET_PC.w.l & 0x0f00) | arg; - m_PC = GET_PC; - } - } - break; - case 0x20: case 0x22: case 0x24: case 0x26: - case 0x28: case 0x2a: case 0x2c: case 0x2e: /* FIM */ - m_icount -= 8; - m_R[(opcode & 0x0f)>>1] = ROP(); - break; - case 0x21: case 0x23: case 0x25: case 0x27: - case 0x29: case 0x2b: case 0x2d: case 0x2f: /* SRC */ - m_RAM.b.l = m_R[(opcode & 0x0f)>>1]; - break; - case 0x30: case 0x32: case 0x34: case 0x36: - case 0x38: case 0x3a: case 0x3c: case 0x3e: /* FIN */ - m_icount -= 8; - m_R[(opcode & 0x0f)>>1] = READ_ROM(); - break; - case 0x31: case 0x33: case 0x35: case 0x37: - case 0x39: case 0x3b: case 0x3d: case 0x3f: /* JIN */ - GET_PC.w.l = (GET_PC.w.l & 0x0f00) | m_R[(opcode & 0x0f)>>1]; - m_PC = GET_PC; - break; - case 0x40: case 0x41: case 0x42: case 0x43: - case 0x44: case 0x45: case 0x46: case 0x47: - case 0x48: case 0x49: case 0x4a: case 0x4b: - case 0x4c: case 0x4d: case 0x4e: case 0x4f: /* JUN */ - m_icount -= 8; - GET_PC.w.l = ((opcode & 0x0f) << 8) | ARG(); - m_PC = GET_PC; - break; - case 0x50: case 0x51: case 0x52: case 0x53: - case 0x54: case 0x55: case 0x56: case 0x57: - case 0x58: case 0x59: case 0x5a: case 0x5b: - case 0x5c: case 0x5d: case 0x5e: case 0x5f: /* JMS */ - { - uint16_t newPC = ((opcode & 0x0f) << 8) | ARG(); - m_icount -= 8; - PUSH_STACK(); - GET_PC.w.l = newPC; - m_PC = GET_PC; - } - break; - case 0x60: case 0x61: case 0x62: case 0x63: - case 0x64: case 0x65: case 0x66: case 0x67: - case 0x68: case 0x69: case 0x6a: case 0x6b: - case 0x6c: case 0x6d: case 0x6e: case 0x6f: /* INC */ - SET_REG(opcode & 0x0f, GET_REG(opcode & 0x0f) + 1); - break; - case 0x70: case 0x71: case 0x72: case 0x73: - case 0x74: case 0x75: case 0x76: case 0x77: - case 0x78: case 0x79: case 0x7a: case 0x7b: - case 0x7c: case 0x7d: case 0x7e: case 0x7f: /* ISZ */ - { - uint8_t val = (GET_REG(opcode & 0x0f) + 1) & 0xf; - uint16_t addr = ARG(); - m_icount -= 8; - SET_REG(opcode & 0x0f, val); - if (val!=0) { - GET_PC.w.l = (GET_PC.w.l & 0x0f00) | addr; - } - m_PC = GET_PC; - } - break; - case 0x80: case 0x81: case 0x82: case 0x83: - case 0x84: case 0x85: case 0x86: case 0x87: - case 0x88: case 0x89: case 0x8a: case 0x8b: - case 0x8c: case 0x8d: case 0x8e: case 0x8f: /* ADD */ - { - uint8_t acc = m_A + GET_REG(opcode & 0x0f) + m_C; - m_A = acc & 0x0f; - m_C = (acc >> 4) & 1; - } - break; - case 0x90: case 0x91: case 0x92: case 0x93: - case 0x94: case 0x95: case 0x96: case 0x97: - case 0x98: case 0x99: case 0x9a: case 0x9b: - case 0x9c: case 0x9d: case 0x9e: case 0x9f: /* SUB */ - { - uint8_t acc = m_A + (GET_REG(opcode & 0x0f) ^ 0x0f) + (m_C ^ 1); - m_A = acc & 0x0f; - m_C = (acc >> 4) & 1; - } - break; - case 0xa0: case 0xa1: case 0xa2: case 0xa3: - case 0xa4: case 0xa5: case 0xa6: case 0xa7: - case 0xa8: case 0xa9: case 0xaa: case 0xab: - case 0xac: case 0xad: case 0xae: case 0xaf: /* LD */ - m_A = GET_REG(opcode & 0x0f); - break; - case 0xb0: case 0xb1: case 0xb2: case 0xb3: - case 0xb4: case 0xb5: case 0xb6: case 0xb7: - case 0xb8: case 0xb9: case 0xba: case 0xbb: - case 0xbc: case 0xbd: case 0xbe: case 0xbf: /* XCH */ - { - uint8_t temp = m_A; - m_A = GET_REG(opcode & 0x0f); - SET_REG(opcode & 0x0f, temp); - } - break; - case 0xc0: case 0xc1: case 0xc2: case 0xc3: - case 0xc4: case 0xc5: case 0xc6: case 0xc7: - case 0xc8: case 0xc9: case 0xca: case 0xcb: - case 0xcc: case 0xcd: case 0xce: case 0xcf: /* BBL */ - POP_STACK(); - m_A = opcode & 0x0f; - m_PC = GET_PC; - break; - case 0xd0: case 0xd1: case 0xd2: case 0xd3: - case 0xd4: case 0xd5: case 0xd6: case 0xd7: - case 0xd8: case 0xd9: case 0xda: case 0xdb: - case 0xdc: case 0xdd: case 0xde: case 0xdf: /* LDM */ - m_A = opcode & 0x0f; - break; - case 0xe0: /* WRM */ - WM(m_A); - break; - case 0xe1: /* WMP */ - WMP(m_A); - break; - case 0xe2: /* WRR */ - WIO(m_A); - break; - case 0xe3: /* WPM */ - WPM(); - break; - case 0xe4: /* WR0 */ - WMS(0,m_A); - break; - case 0xe5: /* WR1 */ - WMS(1,m_A); - break; - case 0xe6: /* WR2 */ - WMS(2,m_A); - break; - case 0xe7: /* WR3 */ - WMS(3,m_A); - break; - case 0xe8: /* SBM */ - m_A = m_A + (RM() ^ 0x0f) + (m_C ^ 1); - m_C = m_A >> 4; - m_A &= 0x0f; - break; - case 0xe9: /* RDM */ - m_A = RM(); - break; - case 0xea: /* RDR */ - m_A = RIO(); - break; - case 0xeb: /* ADM */ - m_A += RM() + m_C; - m_C = m_A >> 4; - m_A &= 0x0f; - break; - case 0xec: /* RD0 */ - m_A = RMS(0); - break; - case 0xed: /* RD1 */ - m_A = RMS(1); - break; - case 0xee: /* RD2 */ - m_A = RMS(2); - break; - case 0xef: /* RD3 */ - m_A = RMS(3); - break; - - case 0xf0: /* CLB */ - m_A = 0; - m_C = 0; - break; - case 0xf1: /* CLC */ - m_C = 0; - break; - case 0xf2: /* IAC */ - m_A += 1; - m_C = m_A >> 4; - m_A &= 0x0f; - break; - case 0xf3: /* CMC */ - m_C ^= 1; - break; - case 0xf4: /* CMA */ - m_A ^= 0x0f; - break; - case 0xf5: /* RAL */ - m_A = (m_A << 1) | m_C; - m_C = m_A >> 4; - m_A &= 0x0f; - break; - case 0xf6: /* RAR */ - { - uint8_t c = m_A & 1; - m_A = (m_A >> 1) | (m_C << 3); - m_C = c; - } - break; - case 0xf7: /* TCC */ - m_A = m_C; - m_C = 0; - break; - case 0xf8: /* DAC */ - m_A = m_A + 0x0f; - m_C = m_A >> 4; - m_A &= 0x0f; - break; - case 0xf9: /* TCS */ - m_A = m_C ? 10 : 9; - m_C = 0; - break; - case 0xfa: /* STC */ - m_C = 1; - break; - case 0xfb: /* DAA */ - if (m_C || (m_A > 9)) { - m_A += 6; - } - if (m_A > 0x0f) { - // it is unaffected if it is in range - m_C = 1; - } - m_A &= 0x0f; - break; - case 0xfc: /* KBP */ - m_A = kbp_table[m_A]; - break; - case 0xfd: /* DCL */ - m_RAM.b.h = m_A; - break; - } -} - - -/*************************************************************************** - COMMON EXECUTION -***************************************************************************/ - -void i4004_cpu_device::execute_run() -{ - do - { - debugger_instruction_hook(this, GET_PC.d); - execute_one(ROP()); - - } while (m_icount > 0); -} - -/*************************************************************************** - CORE INITIALIZATION -***************************************************************************/ - -void i4004_cpu_device::device_start() -{ - /* set up the state table */ - { - state_add(I4004_PC, "PC", m_PC.w.l).mask(0x0fff); - state_add(STATE_GENPC, "GENPC", m_PC.w.l).mask(0x0fff).noshow(); - state_add(STATE_GENPCBASE,"CURPC", m_PC.w.l).mask(0x0fff).noshow(); - state_add(STATE_GENFLAGS, "GENFLAGS", m_flags).mask(0x0f).callimport().callexport().noshow().formatstr("%4s"); - state_add(I4004_A, "A", m_A).mask(0x0f); - - for (int regnum = 0; regnum < 8; regnum++) - { - state_add(I4004_R01 + regnum, string_format("R%X%X", regnum * 2, regnum * 2 + 1).c_str(), m_R[regnum]); - } - - for (int addrnum = 0; addrnum < 4; addrnum++) - { - state_add(I4004_ADDR1 + addrnum, string_format("ADDR%d", addrnum + 1).c_str(), m_ADDR[addrnum].w.l).mask(0xfff); - } - - state_add(I4004_RAM, "RAM", m_RAM.w.l).mask(0x0fff); - } - - m_program = &space(AS_PROGRAM); - m_direct = &m_program->direct(); - m_data = &space(AS_DATA); - m_io = &space(AS_IO); - - save_item(NAME(m_PC)); - save_item(NAME(m_A)); - save_item(NAME(m_C)); - save_item(NAME(m_TEST)); - save_item(NAME(m_pc_pos)); - save_item(NAME(m_ADDR[0])); - save_item(NAME(m_ADDR[1])); - save_item(NAME(m_ADDR[2])); - save_item(NAME(m_ADDR[3])); - save_item(NAME(m_R[0])); - save_item(NAME(m_R[1])); - save_item(NAME(m_R[2])); - save_item(NAME(m_R[3])); - save_item(NAME(m_R[4])); - save_item(NAME(m_R[5])); - save_item(NAME(m_R[6])); - save_item(NAME(m_R[7])); - save_item(NAME(m_RAM)); - - m_icountptr = &m_icount; -} - - -/*************************************************************************** - COMMON RESET -***************************************************************************/ - -void i4004_cpu_device::device_reset() -{ - m_addr_mask = 3; - m_C = 0; - m_pc_pos = 0; - m_A = 0; - memset(m_R,0,8); - memset(m_ADDR,0,sizeof(m_ADDR)); - m_RAM.d = 0; - m_PC = GET_PC; - -} - - - -/*************************************************************************** - COMMON STATE IMPORT/EXPORT -***************************************************************************/ - -void i4004_cpu_device::state_import(const device_state_entry &entry) -{ - switch (entry.index()) - { - case STATE_GENFLAGS: - m_C = (m_flags >> 1) & 1; - m_TEST = (m_flags >> 0) & 1; - break; - } -} - -void i4004_cpu_device::state_export(const device_state_entry &entry) -{ - switch (entry.index()) - { - case STATE_GENFLAGS: - m_flags = ((m_A == 0) ? 0x04 : 0x00) | - (m_C ? 0x02 : 0x00) | - (m_TEST ? 0x01 : 0x00); - break; - } -} - -void i4004_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const -{ - switch (entry.index()) - { - case STATE_GENFLAGS: - str = string_format(".%c%c%c", - (m_A==0) ? 'Z':'.', - m_C ? 'C':'.', - m_TEST ? 'T':'.'); - break; - } -} - -offs_t i4004_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) -{ - extern CPU_DISASSEMBLE( i4004 ); - return CPU_DISASSEMBLE_NAME(i4004)(this, stream, pc, oprom, opram, options); -} diff --git a/src/devices/cpu/i4004/i4004.h b/src/devices/cpu/i4004/i4004.h deleted file mode 100644 index 42dd51cd0ca..00000000000 --- a/src/devices/cpu/i4004/i4004.h +++ /dev/null @@ -1,107 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Miodrag Milanovic -#ifndef MAME_CPU_I4004_I4004_H -#define MAME_CPU_I4004_I4004_H - -#pragma once - - -/*************************************************************************** - CONSTANTS -***************************************************************************/ - -enum -{ - I4004_PC, - I4004_A, - I4004_R01, I4004_R23, I4004_R45, I4004_R67, I4004_R89, I4004_RAB, I4004_RCD, I4004_REF, - I4004_ADDR1,I4004_ADDR2,I4004_ADDR3,I4004_ADDR4,I4004_RAM -}; - -/*************************************************************************** - TYPE DEFINITIONS -***************************************************************************/ - -class i4004_cpu_device : public cpu_device -{ -public: - // construction/destruction - i4004_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock); - - void set_test(uint8_t val); - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // device_execute_interface overrides - virtual uint32_t execute_min_cycles() const override { return 8; } - virtual uint32_t execute_max_cycles() const override { return 16; } - virtual void execute_run() override; - - // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override - { - switch (spacenum) - { - case AS_PROGRAM: return &m_program_config; - case AS_IO: return &m_io_config; - case AS_DATA: return &m_data_config; - default: return nullptr; - } - } - - // device_state_interface overrides - virtual void state_import(const device_state_entry &entry) override; - virtual void state_export(const device_state_entry &entry) override; - virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; - - // device_disasm_interface overrides - virtual uint32_t disasm_min_opcode_bytes() const override { return 1; } - virtual uint32_t disasm_max_opcode_bytes() const override { return 2; } - virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; - - uint8_t ROP(); - uint8_t READ_ROM(); - void WPM(); - uint8_t ARG(); - uint8_t RM(); - uint8_t RMS(uint32_t a); - void WM(uint8_t v); - void WMP(uint8_t v); - void WMS(uint32_t a, uint8_t v); - uint8_t RIO(); - void WIO(uint8_t v); - uint8_t GET_REG(uint8_t num); - void SET_REG(uint8_t num, uint8_t val); - void PUSH_STACK(); - void POP_STACK(); - void execute_one(int opcode); - - address_space_config m_program_config; - address_space_config m_io_config; - address_space_config m_data_config; - - uint8_t m_A; // Accumulator - uint8_t m_R[8]; - PAIR m_ADDR[4]; // Address registers - PAIR m_RAM; - uint8_t m_C; // Carry flag - uint8_t m_TEST; // Test PIN status - PAIR m_PC; // It is in fact one of ADDR regs - uint8_t m_flags; // used for I/O only - - address_space *m_program; - direct_read_data *m_direct; - address_space *m_data; - address_space *m_io; - int m_icount; - int m_pc_pos; // PC position in ADDR - int m_addr_mask; -}; - - -DECLARE_DEVICE_TYPE(I4004, i4004_cpu_device) - -#endif // MAME_CPU_I4004_I4004_H diff --git a/src/devices/cpu/mb88xx/mb88xx.cpp b/src/devices/cpu/mb88xx/mb88xx.cpp index 24a2943e518..864ac02d184 100644 --- a/src/devices/cpu/mb88xx/mb88xx.cpp +++ b/src/devices/cpu/mb88xx/mb88xx.cpp @@ -20,7 +20,6 @@ #include "debugger.h" -DEFINE_DEVICE_TYPE(MB88, mb88_cpu_device, "mb88xx", "MB88xx"); DEFINE_DEVICE_TYPE(MB88201, mb88201_cpu_device, "mb88201", "MB88201") DEFINE_DEVICE_TYPE(MB88202, mb88202_cpu_device, "mb88202", "MB88202") DEFINE_DEVICE_TYPE(MB8841, mb8841_cpu_device, "mb8841", "MB8841") @@ -52,9 +51,6 @@ DEFINE_DEVICE_TYPE(MB8844, mb8844_cpu_device, "mb8844", "MB8844") #define RDMEM(a) (m_data->read_byte(a)) #define WRMEM(a,v) (m_data->write_byte((a), (v))) -#define READPORT(a) (m_io->read_byte(a)) -#define WRITEPORT(a,v) (m_io->write_byte((a), (v))) - #define TEST_ST() (m_st & 1) #define TEST_ZF() (m_zf & 1) #define TEST_CF() (m_cf & 1) @@ -109,22 +105,18 @@ static ADDRESS_MAP_START(data_7bit, AS_DATA, 8, mb88_cpu_device) ADDRESS_MAP_END -mb88_cpu_device::mb88_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, MB88, tag, owner, clock) - , m_program_config("program", ENDIANNESS_BIG, 8, 11, 0) - , m_data_config("data", ENDIANNESS_BIG, 8, 7, 0) - , m_io_config("io", ENDIANNESS_BIG, 8, 3, 0) - , m_PLA(nullptr) -{ -} - - mb88_cpu_device::mb88_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int data_width) : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 8, program_width, 0, (program_width == 9) ? ADDRESS_MAP_NAME(program_9bit) : (program_width == 10) ? ADDRESS_MAP_NAME(program_10bit) : ADDRESS_MAP_NAME(program_11bit)) , m_data_config("data", ENDIANNESS_BIG, 8, data_width, 0, (data_width == 4) ? ADDRESS_MAP_NAME(data_4bit) : (data_width == 5) ? ADDRESS_MAP_NAME(data_5bit) : (data_width == 6) ? ADDRESS_MAP_NAME(data_6bit) : ADDRESS_MAP_NAME(data_7bit)) - , m_io_config("io", ENDIANNESS_BIG, 8, 3, 0) , m_PLA(nullptr) + , m_read_k(*this) + , m_write_o(*this) + , m_write_p(*this) + , m_read_r{{*this}, {*this}, {*this}, {*this}} + , m_write_r{{*this}, {*this}, {*this}, {*this}} + , m_read_si(*this) + , m_write_so(*this) { } @@ -179,7 +171,16 @@ void mb88_cpu_device::device_start() m_program = &space(AS_PROGRAM); m_direct = &m_program->direct(); m_data = &space(AS_DATA); - m_io = &space(AS_IO); + + m_read_k.resolve_safe(0); + m_write_o.resolve_safe(); + m_write_p.resolve_safe(); + for (auto &cb : m_read_r) + cb.resolve_safe(0); + for (auto &cb : m_write_r) + cb.resolve_safe(); + m_read_si.resolve_safe(0); + m_write_so.resolve_safe(); m_serial = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mb88_cpu_device::serial_timer), this)); @@ -332,7 +333,7 @@ TIMER_CALLBACK_MEMBER( mb88_cpu_device::serial_timer ) the program can write to S and recover the value even if serial is enabled */ if (!m_sf) { - m_SB = (m_SB >> 1) | (READPORT(MB88_PORTSI) ? 8 : 0); + m_SB = (m_SB >> 1) | (m_read_si() ? 8 : 0); if (m_SBcount >= 4) { @@ -479,18 +480,18 @@ void mb88_cpu_device::execute_run() break; case 0x01: /* outO ZCS:...*/ - WRITEPORT( MB88_PORTO, pla( m_A,TEST_CF()) ); + m_write_o(pla(m_A, TEST_CF())); m_st = 1; break; case 0x02: /* outP ZCS:... */ - WRITEPORT( MB88_PORTP, m_A ); + m_write_p(m_A); m_st = 1; break; case 0x03: /* outR ZCS:... */ arg = m_Y; - WRITEPORT( MB88_PORTR0+(arg&3), m_A ); + m_write_r[arg & 3](m_A); m_st = 1; break; @@ -592,14 +593,14 @@ void mb88_cpu_device::execute_run() break; case 0x12: /* inK ZCS:x.. */ - m_A = READPORT( MB88_PORTK ) & 0x0f; + m_A = m_read_k() & 0x0f; UPDATE_ZF(m_A); m_st = 1; break; case 0x13: /* inR ZCS:x.. */ arg = m_Y; - m_A = READPORT( MB88_PORTR0+(arg&3) ) & 0x0f; + m_A = m_read_r[arg & 3]() & 0x0f; UPDATE_ZF(m_A); m_st = 1; break; @@ -690,8 +691,8 @@ void mb88_cpu_device::execute_run() break; case 0x20: /* setR ZCS:... */ - arg = READPORT( MB88_PORTR0+(m_Y/4) ); - WRITEPORT( MB88_PORTR0+(m_Y/4), arg | ( 1 << (m_Y%4) ) ); + arg = m_read_r[m_Y/4](); + m_write_r[m_Y/4](arg | (1 << (m_Y%4))); m_st = 1; break; @@ -701,8 +702,8 @@ void mb88_cpu_device::execute_run() break; case 0x22: /* rstR ZCS:... */ - arg = READPORT( MB88_PORTR0+(m_Y/4) ); - WRITEPORT( MB88_PORTR0+(m_Y/4), arg & ~( 1 << (m_Y%4) ) ); + arg = m_read_r[m_Y/4](); + m_write_r[m_Y/4](arg & ~(1 << (m_Y%4))); m_st = 1; break; @@ -712,7 +713,7 @@ void mb88_cpu_device::execute_run() break; case 0x24: /* tstr ZCS:..x */ - arg = READPORT( MB88_PORTR0+(m_Y/4) ); + arg = m_read_r[m_Y/4](); m_st = ( arg & ( 1 << (m_Y%4) ) ) ? 0 : 1; break; @@ -834,21 +835,21 @@ void mb88_cpu_device::execute_run() break; case 0x40: case 0x41: case 0x42: case 0x43: /* setD ZCS:... */ - arg = READPORT(MB88_PORTR0); + arg = m_read_r[0](); arg |= (1 << (opcode&3)); - WRITEPORT(MB88_PORTR0,arg); + m_write_r[0](arg); m_st = 1; break; case 0x44: case 0x45: case 0x46: case 0x47: /* rstD ZCS:... */ - arg = READPORT(MB88_PORTR0); + arg = m_read_r[0](); arg &= ~(1 << (opcode&3)); - WRITEPORT(MB88_PORTR0,arg); + m_write_r[0](arg); m_st = 1; break; case 0x48: case 0x49: case 0x4a: case 0x4b: /* tstD ZCS:..x */ - arg = READPORT(MB88_PORTR2); + arg = m_read_r[2](); m_st = (arg & (1 << (opcode&3))) ? 0 : 1; break; diff --git a/src/devices/cpu/mb88xx/mb88xx.h b/src/devices/cpu/mb88xx/mb88xx.h index b44a93709cc..25264d3db5d 100644 --- a/src/devices/cpu/mb88xx/mb88xx.h +++ b/src/devices/cpu/mb88xx/mb88xx.h @@ -7,6 +7,39 @@ Written by Ernesto Corvi +**************************************************************************** + ___________ ___________ + EX 1 |] | 42 Vcc EX 1 |] | 28 Vcc + X 2 |] | 41 K3 X 2 |] | 27 K3 + _RESET 3 |] | 40 K2 _RESET 3 |] | 26 K2 + _IRQ 4 |] | 39 K1 O0 4 |] | 25 K1 + SO 5 |] | 38 K0 O1 5 |] | 24 K0 + SI 6 |] | 37 R15 O2 6 |] | 23 R10/_IRQ + _SC/_TO 7 |] | 36 R14 O3 7 |] MB8842 | 22 R9/_TC + _TC 8 |] | 35 R13 O4 8 |] MB8844 | 21 R8 + P0 9 |] | 34 R12 O5 9 |] | 20 R7 + P1 10 |] MB8841 | 33 R11 O6 10 |] | 19 R6 + P2 11 |] MB8843 | 32 R10 O7 11 |] | 18 R5 + P3 12 |] | 31 R9 R0 12 |] | 17 R4 + O0 13 |] | 30 R8 R1 13 |] | 16 R3 + O1 14 |] | 29 R7 Vss 14 |]__________| 15 R2 + O2 15 |] | 28 R6 + O3 16 |] | 27 R5 + O4 17 |] | 26 R4 + O5 18 |] | 25 R3 + O6 19 |] | 24 R2 + O7 20 |] | 23 R1 + Vss 21 |]__________| 22 R0 + ___ ___ + R6 1 | \_/ | 16 Vcc + R7 2 | | 15 _RESET + R8 3 | | 14 R5 + R9 4 | MB88201 | 13 R4 + R10/START 5 | MB88202 | 12 R3 + R11/X 6 | | 11 R2 + EX 7 | | 10 R1 + Vss 8 |_________| 9 R0 + ***************************************************************************/ #ifndef MAME_CPU_MB88XX_MB88XX_H @@ -16,20 +49,56 @@ /*************************************************************************** - PORT ENUMERATION + PORT CONFIGURATION ***************************************************************************/ -enum -{ - MB88_PORTK = 0, /* input only, 4 bits */ - MB88_PORTO, /* output only, PLA function output */ - MB88_PORTP, /* 4 bits */ - MB88_PORTR0, /* R0-R3, 4 bits */ - MB88_PORTR1, /* R4-R7, 4 bits */ - MB88_PORTR2, /* R8-R11, 4 bits */ - MB88_PORTR3, /* R12-R15, 4 bits */ - MB88_PORTSI /* SI, 1 bit */ -}; +// K (K3-K0): input-only port +#define MCFG_MB88XX_READ_K_CB(_devcb) \ + devcb = &mb88_cpu_device::set_read_k_callback(*device, DEVCB_##_devcb); + +// O (O7-O4 = OH, O3-O0 = OL): output through PLA +#define MCFG_MB88XX_WRITE_O_CB(_devcb) \ + devcb = &mb88_cpu_device::set_write_o_callback(*device, DEVCB_##_devcb); + +// P (P3-P0): output-only port +#define MCFG_MB88XX_WRITE_P_CB(_devcb) \ + devcb = &mb88_cpu_device::set_write_p_callback(*device, DEVCB_##_devcb); + +// R0 (R3-R0): input/output port +#define MCFG_MB88XX_READ_R0_CB(_devcb) \ + devcb = &mb88_cpu_device::set_read_r_callback(*device, 0, DEVCB_##_devcb); +#define MCFG_MB88XX_WRITE_R0_CB(_devcb) \ + devcb = &mb88_cpu_device::set_write_r_callback(*device, 0, DEVCB_##_devcb); + +// R1 (R7-R4): input/output port +#define MCFG_MB88XX_READ_R1_CB(_devcb) \ + devcb = &mb88_cpu_device::set_read_r_callback(*device, 1, DEVCB_##_devcb); +#define MCFG_MB88XX_WRITE_R1_CB(_devcb) \ + devcb = &mb88_cpu_device::set_write_r_callback(*device, 1, DEVCB_##_devcb); + +// R2 (R11-R8): input/output port +#define MCFG_MB88XX_READ_R2_CB(_devcb) \ + devcb = &mb88_cpu_device::set_read_r_callback(*device, 2, DEVCB_##_devcb); +#define MCFG_MB88XX_WRITE_R2_CB(_devcb) \ + devcb = &mb88_cpu_device::set_write_r_callback(*device, 2, DEVCB_##_devcb); + +// R3 (R15-R12): input/output port +#define MCFG_MB88XX_READ_R3_CB(_devcb) \ + devcb = &mb88_cpu_device::set_read_r_callback(*device, 3, DEVCB_##_devcb); +#define MCFG_MB88XX_WRITE_R3_CB(_devcb) \ + devcb = &mb88_cpu_device::set_write_r_callback(*device, 3, DEVCB_##_devcb); + +// SI: serial input +#define MCFG_MB88XX_READ_SI_CB(_devcb) \ + devcb = &mb88_cpu_device::set_read_si_callback(*device, DEVCB_##_devcb); + +// SO: serial output +#define MCFG_MB88XX_WRITE_SO_CB(_devcb) \ + devcb = &mb88_cpu_device::set_write_so_callback(*device, DEVCB_##_devcb); + +// Configure 32 byte PLA; if nullptr (default) assume direct output +#define MCFG_MB88XX_OUTPUT_PLA(_pla) \ + mb88_cpu_device::set_pla(*device, _pla); /*************************************************************************** REGISTER ENUMERATION @@ -56,17 +125,17 @@ enum CPU_DISASSEMBLE( mb88 ); -// Configure 32 byte PLA, if nullptr (default) assume direct output */ -#define MCFG_MB88_PLA(_pla) mb88_cpu_device::set_pla(*device, _pla); - - class mb88_cpu_device : public cpu_device { public: - // construction/destruction - mb88_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // static configuration helpers + template <class Object> static devcb_base &set_read_k_callback(device_t &device, Object &&cb) { return downcast<mb88_cpu_device &>(device).m_read_k.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_write_o_callback(device_t &device, Object &&cb) { return downcast<mb88_cpu_device &>(device).m_write_o.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_write_p_callback(device_t &device, Object &&cb) { return downcast<mb88_cpu_device &>(device).m_write_p.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_read_r_callback(device_t &device, int n, Object &&cb) { assert(n >= 0 && n < 4); return downcast<mb88_cpu_device &>(device).m_read_r[n].set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_write_r_callback(device_t &device, int n, Object &&cb) { assert(n >= 0 && n < 4); return downcast<mb88_cpu_device &>(device).m_write_r[n].set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_read_si_callback(device_t &device, Object &&cb) { return downcast<mb88_cpu_device &>(device).m_read_si.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_write_so_callback(device_t &device, Object &&cb) { return downcast<mb88_cpu_device &>(device).m_write_so.set_callback(std::forward<Object>(cb)); } static void set_pla(device_t &device, uint8_t *pla) { downcast<mb88_cpu_device &>(device).m_PLA = pla; } DECLARE_WRITE_LINE_MEMBER( clock_w ); @@ -88,7 +157,7 @@ protected: virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 6); } // device_memory_interface overrides - virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_DATA) ? &m_data_config : (spacenum == AS_IO) ? &m_io_config : nullptr; } + virtual const address_space_config *memory_space_config(address_spacenum spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_DATA) ? &m_data_config : nullptr; } // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -103,7 +172,6 @@ protected: private: address_space_config m_program_config; address_space_config m_data_config; - address_space_config m_io_config; uint8_t m_PC; /* Program Counter: 6 bits */ uint8_t m_PA; /* Page Address: 4 bits */ @@ -133,8 +201,15 @@ private: uint16_t m_SBcount; /* number of bits received */ emu_timer *m_serial; - /* PLA configuration */ + /* PLA configuration and port callbacks */ uint8_t * m_PLA; + devcb_read8 m_read_k; + devcb_write8 m_write_o; + devcb_write8 m_write_p; + devcb_read8 m_read_r[4]; + devcb_write8 m_write_r[4]; + devcb_read_line m_read_si; + devcb_write_line m_write_so; /* IRQ handling */ uint8_t m_pending_interrupt; @@ -142,7 +217,6 @@ private: address_space *m_program; direct_read_data *m_direct; address_space *m_data; - address_space *m_io; int m_icount; // For the debugger @@ -206,7 +280,6 @@ public: }; -DECLARE_DEVICE_TYPE(MB88, mb88_cpu_device) DECLARE_DEVICE_TYPE(MB88201, mb88201_cpu_device) DECLARE_DEVICE_TYPE(MB88202, mb88202_cpu_device) DECLARE_DEVICE_TYPE(MB8841, mb8841_cpu_device) diff --git a/src/devices/cpu/mcs40/mcs40.cpp b/src/devices/cpu/mcs40/mcs40.cpp new file mode 100644 index 00000000000..f8ee59f686c --- /dev/null +++ b/src/devices/cpu/mcs40/mcs40.cpp @@ -0,0 +1,1021 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb +/***************************************************************************** + * + * i4004.cpp + * + * Intel MCS-40 CPU family + * + *****************************************************************************/ +#include "emu.h" +#include "mcs40.h" +#include "debugger.h" + + +/* +MCS-40 uses an unusual scheme for memory. RAMs contain four registers, +each of which has 16 memory characters and 4 status characters (all +characters are 4 bits wide). We represent a register as 16 bytes, +storing memory characters in the low nybbles and status characters in +the high nybbles of the first four bytes. This necessitates a +read/modify/write on each write, as MAME doesn't cater for nybble lane +select. + +I/O is similarly unusual. It's assumed that there's one 4-bit I/O port +per 256 bytes of ROM. The upper four bits of RC select the ROM I/O port +for WRR and RDR instructions (along with the selected ROM bank for the +4040). It's assumed that there's one output-only port per RAM. The +upper two bits of RC along with the lower three bits of CR select the +RAM output port for WMP instructions. This isn't too bad, but it's +complicated by the GPIO peripherals. These chips respond to WRR/RDR, +but can be wired to the CM-RAM lines, so they can be selected by the +combination of the lower three bits of RC along with the upper four bits +of RC. On top of this, the 4289 latches the entire RC value on its A +outputs at X1, allowing for a flat 8-bit I/O space using the WRR/RDR +instructions, as well as having CM lines for devices selection. This +means we need 12 bits to represent the entire range of possibilities +using the WRR/RDR instructions. At this point, we're placing the +ROM/RAM select in bit 12, CR in bits 11-8, and RC in bits 7-0. Ideally +we'd be able to put the RAM output ports in a separate address space, +but we're already running out. + + CR RC +4001: 0 B--- RRRR---- +4002: 1 -CCC RR------ +4207: 0 BCCC 11PP---- +4209: 0 BCCC 11PP---- +4211: 0 BCCC 11PP---- +4289: 0 B--- AAAAAAAA +4308: 0 B--- RRPP---- + +TODO: WPM, HLT, BBS, EIN, DIN, RPM instructions +TODO: 4040 halt/interrupt support +TODO: expose 4289 lines +TODO: expose data bus +*/ + + +ALLOW_SAVE_TYPE(mcs40_cpu_device_base::phase); +ALLOW_SAVE_TYPE(mcs40_cpu_device_base::cycle); + + +DEFINE_DEVICE_TYPE(I4004, i4004_cpu_device, "i4004", "Intel 4004") +DEFINE_DEVICE_TYPE(I4040, i4040_cpu_device, "i4040", "Intel 4040") + + +mcs40_cpu_device_base::mcs40_cpu_device_base( + const machine_config &mconfig, + device_type type, + const char *tag, + device_t *owner, + uint32_t clock, + bool extended_cm, + unsigned rom_width, + unsigned stack_ptr_mask, + unsigned index_reg_cnt, + unsigned cr_mask) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 8, rom_width, 0) + , m_data_config("data", ENDIANNESS_LITTLE, 8, 11, 0) + , m_io_config("io", ENDIANNESS_LITTLE, 8, 13, 0) + , m_program(nullptr), m_data(nullptr), m_io(nullptr), m_direct(nullptr) + , m_sync_cb(*this) + , m_cm_rom_cb{ { *this }, { *this } } + , m_cm_ram_cb{ { *this }, { *this }, { *this }, { *this }, } + , m_cy_cb(*this) + , m_extended_cm(extended_cm) + , m_stack_ptr_mask(stack_ptr_mask), m_index_reg_cnt(index_reg_cnt), m_cr_mask(cr_mask) + , m_pc_mask((1U << rom_width) - 1) + , m_phase(phase::A1), m_cycle(cycle::OP) + , m_rom_addr(0U), m_opr(0U), m_opa(0U), m_arg(0U) + , m_a(0U), m_c(0U) + , m_addr_stack(), m_stack_ptr(0U) + , m_index_regs(), m_index_reg_bank(0U) + , m_cr(0U), m_pending_cr3(0U), m_latched_rc(0U), m_new_rc(0U), m_src(0U), m_rc_pending(false) + , m_test(CLEAR_LINE) + , m_cm_rom(0U), m_cm_ram(0U), m_cy(0U) + , m_pc(0U), m_pcbase(0U), m_genflags(0U) +{ + assert((16U == index_reg_cnt) || (24U == index_reg_cnt)); +} + + +/*********************************************************************** + device_t implementation +***********************************************************************/ + +void mcs40_cpu_device_base::device_start() +{ + m_icountptr = &m_icount; + + m_program = &space(AS_PROGRAM); + m_data = &space(AS_DATA); + m_io = &space(AS_IO); + m_direct = &m_program->direct(); + + m_sync_cb.resolve_safe(); + m_cm_rom_cb[0].resolve_safe(); + m_cm_rom_cb[1].resolve_safe(); + m_cm_ram_cb[0].resolve_safe(); + m_cm_ram_cb[1].resolve_safe(); + m_cm_ram_cb[2].resolve_safe(); + m_cm_ram_cb[3].resolve_safe(); + m_cy_cb.resolve_safe(); + + m_rom_addr = 0U; + m_opr = m_opa = m_arg = 0U; + + m_a = m_c = 0U; + + m_addr_stack.reset(new u16[m_stack_ptr_mask + 1]); + std::fill(&m_addr_stack[0], &m_addr_stack[m_stack_ptr_mask + 1], 0U); + m_stack_ptr = 0U; + + m_index_regs.reset(new u8[m_index_reg_cnt >> 1]); + std::fill(&m_index_regs[0], &m_index_regs[m_index_reg_cnt >> 1], 0U); + + m_latched_rc = m_new_rc = m_src = 0U; + + m_test = CLEAR_LINE; + m_cm_rom = 0x03U; + m_cm_ram = 0x0fU; + m_cy = 0x00U; + + m_pc = m_pcbase = 0U; + m_genflags = 0U; + + state_add(STATE_GENPC, "PC", m_pc).mask(m_pc_mask).callimport().callexport(); + state_add(STATE_GENPCBASE, "CURPC", m_pcbase).mask(m_pc_mask).noshow(); + state_add(STATE_GENFLAGS, "GENFLAGS", m_genflags).mask(0x07U).noshow().callimport().callexport().formatstr("%3s"); + state_add(I4004_A, "A", m_a).mask(0x0fU); + for (unsigned i = 0; (m_index_reg_cnt >> 1) > i; ++i) + { + state_add( + I4004_R01 + i, + string_format("R%X%X%s", (i << 1) & 0x0fU, ((i << 1) + 1) & 0x0fU, BIT(i, 3) ? "*" : "").c_str(), + m_index_regs[i]); + } + for (unsigned i = 0; m_stack_ptr_mask >= i; ++i) + state_add(I4004_ADDR0 + i, string_format("ADDR%d", i).c_str(), m_addr_stack[i]).mask(0x0fff); + state_add(I4004_CR, "CR", m_cr).mask(m_cr_mask); + state_add(I4004_RC, "RC", m_latched_rc); + state_add(I4004_RCN, "RC'", m_new_rc); + // TODO: export SRC for 4040 + // TODO: export register bank for 4040 + + save_item(NAME(m_phase)); + save_item(NAME(m_cycle)); + save_item(NAME(m_rom_addr)); + save_item(NAME(m_opr)); + save_item(NAME(m_opa)); + save_item(NAME(m_arg)); + save_item(NAME(m_a)); + save_item(NAME(m_c)); + save_pointer(NAME(m_addr_stack.get()), m_stack_ptr_mask + 1); + save_item(NAME(m_stack_ptr)); + save_pointer(NAME(m_index_regs.get()), m_index_reg_cnt >> 1); + save_item(NAME(m_index_reg_bank)); + save_item(NAME(m_cr)); + save_item(NAME(m_pending_cr3)); + save_item(NAME(m_latched_rc)); + save_item(NAME(m_new_rc)); + save_item(NAME(m_src)); + save_item(NAME(m_rc_pending)); + save_item(NAME(m_test)); + save_item(NAME(m_cm_ram)); + save_item(NAME(m_cm_rom)); + save_item(NAME(m_cy)); + save_item(NAME(m_pcbase)); +} + +void mcs40_cpu_device_base::device_reset() +{ + m_phase = phase::A1; + m_cycle = cycle::OP; + + m_rom_addr = 0U; + pc() = 0U; + + m_c = 0U; + + m_index_reg_bank = 0U; + + m_cr = 0U; + m_pending_cr3 = 0U; + m_rc_pending = false; + + update_cm_rom(0x03U); + update_cm_ram(0x0fU); + + // TODO: it actually takes multiple cycles with reset asserted for everything to get cleared + m_a = m_c = 0U; + std::fill(&m_addr_stack[0], &m_addr_stack[m_stack_ptr_mask + 1], 0U); + std::fill(&m_index_regs[0], &m_index_regs[m_index_reg_cnt >> 1], 0U); +} + + +/*********************************************************************** + device_execute_interface implementation +***********************************************************************/ + +void mcs40_cpu_device_base::execute_run() +{ + static constexpr u8 cm_ram_table[8] = { 0x0eU, 0x0dU, 0x0bU, 0x07U, 0x09U, 0x05U, 0x03U, 0x01U }; + while (m_icount > 0) + { + switch (m_phase) + { + case phase::A1: + m_pending_cr3 = (m_pending_cr3 << 1) | BIT(m_cr, 3); + m_cr = (m_cr & 0x07U) | (m_pending_cr3 & 0x08U); + if (cycle::OP == m_cycle) + { + m_pcbase = rom_bank() | m_rom_addr; + if (machine().debug_flags & DEBUG_FLAG_ENABLED) + debugger_instruction_hook(this, pc()); + } + m_sync_cb(1); + // low nybble of ROM address is output here + // STOPACK is asserted here + m_phase = phase::A2; + break; + case phase::A2: + // mid nybble of ROM address is output here + m_phase = phase::A3; + break; + case phase::A3: + // high nybble of ROM address is output here + update_cm_rom(BIT(m_cr, 3) ? 0x01U : 0x02U); + m_phase = phase::M1; + break; + case phase::M1: + // OPR is read here + { + if (!m_extended_cm || (cycle::OP != m_cycle)) + update_cm_rom(0x03); + else + update_cm_ram(cm_ram_table[m_cr & 0x07U]); + // TODO: split this up into two nybble reads - MAME doesn't support this + u8 const read = m_direct->read_byte(rom_bank() | m_rom_addr); + if (cycle::OP == m_cycle) + { + m_opr = read >> 4; + m_opa = read & 0x0f; + m_io_pending = is_io_op(m_opr); + } + else + { + m_arg = read; + } + } + m_phase = phase::M2; + break; + case phase::M2: + // OPA is read here + if (m_io_pending) + { + update_cm_rom(BIT(m_cr, 3) ? 0x01U : 0x02U); + update_cm_ram(cm_ram_table[m_cr & 0x07U]); + } + if (cycle::IN != m_cycle) + m_rom_addr = pc() = (pc() + 1) & 0x0fff; + m_phase = phase::X1; + break; + case phase::X1: + // A or OPA is output here + update_cy(m_c); + update_cm_rom(0x03U); + update_cm_ram(0x0fU); + if (cycle::OP == m_cycle) + { + m_cycle = do_cycle1(m_opr, m_opa); + } + else + { + do_cycle2(m_opr, m_opa, m_arg); + m_cycle = cycle::OP; + } + m_phase = phase::X2; + break; + case phase::X2: + if (m_io_pending) + { + assert(phase::X2 == m_phase); + assert(m_latched_rc == m_new_rc); + assert(!m_rc_pending); + do_io(m_opr, m_opa); + m_io_pending = false; + } + if (m_rc_pending) + { + update_cm_rom(BIT(m_cr, 3) ? 0x01U : 0x02U); + update_cm_ram(cm_ram_table[m_cr & 0x07U]); + m_latched_rc = (m_latched_rc & 0x0fU) | (m_new_rc & 0xf0U); + } + else + { + assert(m_latched_rc == m_new_rc); + } + m_phase = phase::X3; + break; + case phase::X3: + m_sync_cb(0); + update_cm_rom(0x03U); + update_cm_ram(0x0fU); + if (m_rc_pending) + { + m_latched_rc = (m_latched_rc & 0xf0U) | (m_new_rc & 0x0fU); + m_rc_pending = false; + } + else + { + assert(m_latched_rc == m_new_rc); + } + m_phase = phase::A1; + break; + } + --m_icount; + } +} + + +/*********************************************************************** + device_memory_interface implementation +***********************************************************************/ + +address_space_config const *mcs40_cpu_device_base::memory_space_config(address_spacenum spacenum) const +{ + switch (spacenum) + { + case AS_PROGRAM: return &m_program_config; + case AS_DATA: return &m_data_config; + case AS_IO: return &m_io_config; + default: return nullptr; + } +} + + +/*********************************************************************** + device_state_interface implementation +***********************************************************************/ + +void mcs40_cpu_device_base::state_import(device_state_entry const &entry) +{ + switch (entry.index()) + { + case STATE_GENPC: + pc() = m_pc_mask & m_pc & 0x0fffU; + if (BIT(m_pc, 12)) + m_cr |= 0x08; + else + m_cr &= 0x07; + m_rom_bank = m_pc_mask & m_pc & 0xf000U; + if ((cycle::OP == m_cycle) && (phase::M1 > m_phase)) + { + m_rom_addr = pc(); + m_pcbase = m_pc; + } + break; + case STATE_GENFLAGS: + m_c = BIT(m_genflags, 1); + m_test = BIT(m_genflags, 0) ? ASSERT_LINE : CLEAR_LINE; + break; + } +} + +void mcs40_cpu_device_base::state_export(device_state_entry const &entry) +{ + switch (entry.index()) + { + case STATE_GENPC: + m_pc = rom_bank() | pc(); + break; + case STATE_GENFLAGS: + m_genflags = (m_a ? 0x00 : 0x04) | (m_c ? 0x02 : 0x00) | ((CLEAR_LINE != m_test) ? 0x01 : 0x00); + break; + } +} + +void mcs40_cpu_device_base::state_string_export(device_state_entry const &entry, std::string &str) const +{ + switch (entry.index()) + { + case STATE_GENFLAGS: + str = util::string_format("%c%c%c", m_a ? '.' : 'Z', m_c ? 'C' : '.', (CLEAR_LINE != m_test) ? 'T' : '.'); + break; + } +} + + +/*********************************************************************** + device_disasm_interface implementation +***********************************************************************/ + +u32 mcs40_cpu_device_base::disasm_min_opcode_bytes() const +{ + return 1U; +} + +u32 mcs40_cpu_device_base::disasm_max_opcode_bytes() const +{ + return 2U; +} + + +/*********************************************************************** + register access +***********************************************************************/ + +inline u8 mcs40_cpu_device_base::get_a() const +{ + return m_a; +} + +inline u8 mcs40_cpu_device_base::get_c() const +{ + return m_c; +} + +inline void mcs40_cpu_device_base::set_a(u8 val) +{ + m_a = val & 0x0fU; +} + +inline void mcs40_cpu_device_base::set_c(u8 val) +{ + m_c = val & 0x01U; +} + +inline void mcs40_cpu_device_base::set_a_c(u8 val) +{ + m_a = val & 0x0fU; + m_c = BIT(val, 4); +} + +inline void mcs40_cpu_device_base::set_pc(u16 addr, u16 mask) +{ + set_rom_addr(pc() = (addr & mask) | (pc() & ~mask), 0x0fffU); +} + +inline void mcs40_cpu_device_base::push_pc() +{ + m_stack_ptr = (m_stack_ptr + 1) & m_stack_ptr_mask; +} + +inline void mcs40_cpu_device_base::pop_pc() +{ + m_stack_ptr = (m_stack_ptr - 1) & m_stack_ptr_mask; + set_rom_addr(pc(), 0x0fffU); +} + +inline u8 &mcs40_cpu_device_base::index_reg_pair(unsigned n) +{ + return m_index_regs[(BIT(n, 2) ? 0 : m_index_reg_bank) | (n & 0x7U)]; +} + +inline u8 mcs40_cpu_device_base::get_index_reg(unsigned n) +{ + return (index_reg_pair(n >> 1) >> (BIT(n, 0) ? 0 : 4)) & 0x0fU; +} + +inline void mcs40_cpu_device_base::set_index_reg(unsigned n, u8 val) +{ + u8 ®_pair(index_reg_pair(n >> 1)); + bool const lsn(BIT(n, 0)); + reg_pair = (reg_pair & (lsn ? 0xf0U : 0x0fU)) | ((val & 0x0fU) << (lsn ? 0 : 4)); +} + +inline void mcs40_cpu_device_base::set_index_reg_bank(u8 val) +{ + m_index_reg_bank = BIT(val, 0) << 3; +} + + +/*********************************************************************** + register access +***********************************************************************/ + +inline void mcs40_cpu_device_base::set_rom_addr(u16 addr, u16 mask) +{ + m_rom_addr = (addr & mask) | (m_rom_addr & ~mask); +} + +inline u8 mcs40_cpu_device_base::get_cr() +{ + return m_cr; +} + +inline void mcs40_cpu_device_base::set_cr(u8 val, u8 mask) +{ + m_cr = (val & mask) | (m_cr & ~mask); +} + +inline void mcs40_cpu_device_base::set_pending_rom_bank(u8 val) +{ + m_pending_cr3 = (m_pending_cr3 & 0x0eU) | (val & 0x01U); +} + +inline void mcs40_cpu_device_base::set_rc(u8 val) +{ + m_rc_pending = true; + m_new_rc = val; + m_src = val; // TODO: lock out during interrupt processing +} + +inline u8 mcs40_cpu_device_base::read_memory() +{ + return m_data->read_byte((u16(m_cr & 0x7U) << 8) | m_latched_rc) & 0x0fU; +} + +inline void mcs40_cpu_device_base::write_memory(u8 val) +{ + u16 const addr((u16(m_cr & 0x7U) << 8) | m_latched_rc); + m_data->write_byte(addr, (m_data->read_byte(addr) & 0xf0U) | (val & 0x0fU)); +} + +inline u8 mcs40_cpu_device_base::read_status() +{ + u16 const addr((((u16(m_cr) << 8) | m_latched_rc) & 0x07f0U) | (m_opa & 0x0003U)); + return (m_data->read_byte(addr) >> 4) & 0x0fU; +} + +inline void mcs40_cpu_device_base::write_status(u8 val) +{ + u16 const addr((((u16(m_cr) << 8) | m_latched_rc) & 0x07f0U) | (m_opa & 0x0003U)); + m_data->write_byte(addr, (m_data->read_byte(addr) & 0x0fU) | (val << 4)); +} + +inline u8 mcs40_cpu_device_base::read_rom_port() +{ + return m_io->read_byte((u16(m_cr) << 8) | m_latched_rc) & 0x0fU; +} + +inline void mcs40_cpu_device_base::write_rom_port(u8 val) +{ + m_io->write_byte((u16(m_cr) << 8) | m_latched_rc, val & 0x0fU); +} + +inline void mcs40_cpu_device_base::write_memory_port(u8 val) +{ + m_io->write_byte(0x1000U | (u16(m_cr) << 8) | m_latched_rc, val & 0x0fU); +} + + +/*********************************************************************** + input lines +***********************************************************************/ + +inline bool mcs40_cpu_device_base::get_test() +{ + bool const result(CLEAR_LINE != m_test); + if (ASSERT_LINE != m_test) + m_test = CLEAR_LINE; + return result; +} + +inline void mcs40_cpu_device_base::set_test(int state) +{ + m_test = ((ASSERT_LINE == state) || (HOLD_LINE == state)) ? state : CLEAR_LINE; +} + + +/*********************************************************************** + internal helpers +***********************************************************************/ + +inline void mcs40_cpu_device_base::update_cm_rom(u8 val) +{ + u8 const diff(val ^ m_cm_rom); + m_cm_rom = val; + if (BIT(diff, 0)) + m_cm_rom_cb[0](BIT(val, 0)); + if (BIT(diff, 1)) + m_cm_rom_cb[1](BIT(val, 1)); +} + +inline void mcs40_cpu_device_base::update_cm_ram(u8 val) +{ + u8 const diff(val ^ m_cm_ram); + m_cm_ram = val; + if (BIT(diff, 0)) + m_cm_ram_cb[0](BIT(val, 0)); + if (BIT(diff, 1)) + m_cm_ram_cb[1](BIT(val, 1)); + if (BIT(diff, 2)) + m_cm_ram_cb[2](BIT(val, 2)); + if (BIT(diff, 3)) + m_cm_ram_cb[3](BIT(val, 3)); +} + +inline void mcs40_cpu_device_base::update_cy(u8 val) +{ + u8 const diff(val ^ m_cy); + if (BIT(diff, 0)) + m_cy_cb(BIT(val, 0)); +} + + + +i4004_cpu_device::i4004_cpu_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) + : mcs40_cpu_device_base(mconfig, I4004, tag, owner, clock, false, 12U, 0x3U, 16U, 0x7U) +{ +} + + +/*********************************************************************** + device_execute_interface implementation +***********************************************************************/ + +u32 i4004_cpu_device::execute_input_lines() const +{ + return 1U; +} + +void i4004_cpu_device::execute_set_input(int inputnum, int state) +{ + switch (inputnum) + { + case I4004_TEST_LINE: + set_test(state); + break; + default: + mcs40_cpu_device_base::execute_set_input(inputnum, state); + } +} + + +/*********************************************************************** + device_disasm_interface implementation +***********************************************************************/ + +offs_t i4004_cpu_device::disasm_disassemble( + std::ostream &stream, + offs_t pc, + uint8_t const *oprom, + uint8_t const *opram, + uint32_t options) +{ + extern CPU_DISASSEMBLE(i4004); + return CPU_DISASSEMBLE_NAME(i4004)(this, stream, pc, oprom, opram, options); +} + + +/*********************************************************************** + mcs40_cpu_device_base implementation +***********************************************************************/ + +bool i4004_cpu_device::is_io_op(u8 opr) +{ + return 0x0e == opr; +} + +i4004_cpu_device::cycle i4004_cpu_device::do_cycle1(u8 opr, u8 opa) +{ + static constexpr uint8_t kbp_table[] = { 0x0, 0x1, 0x2, 0xf, 0x3, 0xf, 0xf, 0xf, 0x4, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf }; + + switch (opr) + { + case 0x0: + switch (opa) + { + case 0x0: // NOP + return cycle::OP; + default: + break; + } + break; + + case 0x1: // JCN + case 0x4: // JUN + case 0x5: // JMS + case 0x7: // ISZ + return cycle::IM; + + case 0x2: + if (BIT(opa, 0)) + { + // SRC + set_rc(index_reg_pair(opa >> 1)); + return cycle::OP; + } + else + { + // FIM + return cycle::IM; + } + + case 0x3: + if (BIT(opa, 0)) + { + // JIN + set_pc(index_reg_pair(opa >> 1), 0x00ffU); + return cycle::OP; + } + else + { + // FIN + set_rom_addr(index_reg_pair(0), 0x00ffU); + return cycle::IN; + } + + case 0x6: // INC + set_index_reg(opa, get_index_reg(opa) + 1U); + return cycle::OP; + + case 0x8: // ADD + set_a_c(get_a() + get_index_reg(opa) + get_c()); + return cycle::OP; + + case 0x9: // SUB + set_a_c(get_a() + (get_index_reg(opa) ^ 0x0fU) + (get_c() ^ 0x01U)); + return cycle::OP; + + case 0xa: // LD + set_a(get_index_reg(opa)); + return cycle::OP; + + case 0xb: // XCH + { + u8 const val = get_a(); + set_a(get_index_reg(opa)); + set_index_reg(opa, val); + } + return cycle::OP; + + case 0xc: // BBL + pop_pc(); + set_a(opa); + return cycle::OP; + + case 0xd: // LDM + set_a(opa); + return cycle::OP; + + case 0xe: // WRM/WMP/WRR/WPM/WR0/WR1/WR2/WR3/SBM/RDM/RDR/ADM/RD0/RD1/RD2/RD3 + return cycle::OP; + + case 0xf: + switch (opa) + { + case 0x0: // CLB + set_a(0U); + set_c(0U); + return cycle::OP; + case 0x1: // CLC + set_c(0U); + return cycle::OP; + case 0x2: // IAC + set_a_c(get_a() + 1U); + return cycle::OP; + case 0x3: // CMC + set_c(get_c() ^ 0x01U); + return cycle::OP; + case 0x4: // CMA + set_a(get_a() ^ 0x0fU); + return cycle::OP; + case 0x5: // RAL + set_a_c((get_a() << 1) | get_c()); + return cycle::OP; + case 0x6: // RAR + { + u8 const c(BIT(get_a(), 0)); + set_a((get_a() >> 1) | (get_c() << 3)); + set_c(c); + } + return cycle::OP; + case 0x7: // TCC + set_a(get_c()); + set_c(0U); + return cycle::OP; + case 0x8: // DAC + set_a_c(get_a() + 0x0fU); + return cycle::OP; + case 0x9: // TCS + set_a(9U + get_c()); + set_c(0U); + return cycle::OP; + case 0xa: // STC + set_c(1U); + return cycle::OP; + case 0xb: // DAA + if (get_c() || (9U < get_a())) + { + u8 const val(get_a() + 6U); + set_a(val); + if (BIT(val, 4)) + set_c(1U); + } + return cycle::OP; + case 0xc: // KBP + set_a(kbp_table[get_a()]); + return cycle::OP; + case 0xd: // DCL + set_cr(get_a(), 0x07U); + return cycle::OP; + default: + break; + } + break; + + default: // something is badly wrong if we get here + throw false; + } + + logerror("MCS-40: unhandled instruction OPR=%X OPA=%X\n", opr, opa); + return cycle::OP; +} + +void i4004_cpu_device::do_cycle2(u8 opr, u8 opa, u8 arg) +{ + switch (opr) + { + case 0x1: // JCN + { + // FIXME: on which cycle is TEST sampled? + // order of expression is important because of how HOLD_LINE is consumed for TEST input + bool const jump((BIT(opa, 0) && !get_test()) || (BIT(opa, 1) && get_c()) || (BIT(opa, 2) && !get_a())); + if (bool(BIT(opa, 3)) != jump) + set_pc(arg, 0x00ff); + } + break; + + case 0x2: // FIM + assert(!BIT(opa, 0)); + index_reg_pair(opa >> 1) = arg; + break; + + case 0x3: // FIN + assert(BIT(opa, 0)); + index_reg_pair(opa >> 1) = arg; + break; + + case 0x4: // JUN + set_pc((u16(opa) << 8) | arg, 0x0fffU); + break; + + case 0x5: // JMS + push_pc(); + set_pc((u16(opa) << 8) | arg, 0x0fffU); + break; + + case 0x7: // ISZ + { + u8 const val((get_index_reg(opa) + 1U) & 0x0fU); + set_index_reg(opa, val); + if (val) + set_pc(arg, 0x00ffU); + } + break; + + default: // something is badly wrong if we get here + throw false; + } +} + +void i4004_cpu_device::do_io(u8 opr, u8 opa) +{ + assert(0xe == opr); + switch (opa) + { + case 0x0: // WRM + write_memory(get_a()); + break; + case 0x1: // WMP + write_memory_port(get_a()); + break; + case 0x2: // WRR + write_rom_port(get_a()); + break; + case 0x4: // WR0 + case 0x5: // WR1 + case 0x6: // WR2 + case 0x7: // WR3 + write_status(get_a()); + break; + case 0x8: // SBM + set_a_c(get_a() + (read_memory() ^ 0x0fU) + (get_c() ^ 0x01U)); + break; + case 0x9: // RDM + set_a(read_memory()); + break; + case 0xa: // RDR + set_a(read_rom_port()); + break; + case 0xb: // ADM + set_a_c(get_a() + read_memory() + get_c()); + break; + case 0xc: // RD0 + case 0xd: // RD1 + case 0xe: // RD2 + case 0xf: // RD3 + set_a(read_status()); + break; + default: + logerror("MCS-40: unhandled instruction OPR=%X OPA=%X\n", opr, opa); + } +} + + + +i4040_cpu_device::i4040_cpu_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock) + : i4004_cpu_device(mconfig, I4040, tag, owner, clock, true, 13U, 0x7U, 24U, 0xfU) +{ +} + + +/*********************************************************************** + device_disasm_interface implementation +***********************************************************************/ + +offs_t i4040_cpu_device::disasm_disassemble( + std::ostream &stream, + offs_t pc, + uint8_t const *oprom, + uint8_t const *opram, + uint32_t options) +{ + extern CPU_DISASSEMBLE(i4040); + return CPU_DISASSEMBLE_NAME(i4040)(this, stream, pc, oprom, opram, options); +} + + +/*********************************************************************** + mcs40_cpu_device_base implementation +***********************************************************************/ + +i4040_cpu_device::cycle i4040_cpu_device::do_cycle1(u8 opr, u8 opa) +{ + switch (opr) + { + case 0x0: + switch (opa) + { + case 0x3: // LCR + set_a(get_cr()); + break; + case 0x4: // OR4 + case 0x5: // OR5 + set_a(get_a() | get_index_reg(4U | BIT(opa, 0))); + return cycle::OP; + case 0x6: // AN6 + case 0x7: // AN7 + set_a(get_a() & get_index_reg(6U | BIT(opa, 0))); + return cycle::OP; + case 0x8: // DB0 + case 0x9: // DB1 + set_pending_rom_bank(BIT(opa, 0)); + return cycle::OP; + case 0xa: // SB0 + case 0xb: // SB1 + set_index_reg_bank(BIT(opa, 0)); + return cycle::OP; + default: + break; + } + break; + default: + break; + } + return i4004_cpu_device::do_cycle1(opr, opa); +} + + +#if 0 +void i4004_cpu_device::WPM() +{ + uint8_t t = (m_program->read_byte(m_RAM.d) << 4) | m_A; + m_program->write_byte((GET_PC.w.l & 0x0f00) | m_RAM.d, t); +} + + +void i4004_cpu_device::execute_one(unsigned opcode) +{ + m_icount -= 8; + switch ((opcode >> 4) & 0x0f) + { + case 0xe: + switch (opcode & 0x0f) + { + case 0x3: WPM(); break; // WPM + } + return; + } +} + + +void i4040_cpu_device::execute_one(unsigned opcode) +{ + switch (opcode) + { + case 0x01: // HLT + case 0x02: // BBS + case 0x0a: // SB0 + case 0x0b: // SB1 + case 0x0c: // EIN + case 0x0d: // DIN + case 0x0e: // RPM + default: + i4004_cpu_device::execute_one(opcode); + } +} +#endif diff --git a/src/devices/cpu/mcs40/mcs40.h b/src/devices/cpu/mcs40/mcs40.h new file mode 100644 index 00000000000..fe7c9e3352e --- /dev/null +++ b/src/devices/cpu/mcs40/mcs40.h @@ -0,0 +1,307 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb +#ifndef MAME_CPU_I4004_I4004_H +#define MAME_CPU_I4004_I4004_H + +#pragma once + + +/*********************************************************************** + CONSTANTS +***********************************************************************/ + +enum +{ + I4004_A = 1, + I4004_R01, I4004_R23, I4004_R45, I4004_R67, I4004_R89, I4004_RAB, I4004_RCD, I4004_REF, + I4040_RGH, I4040_RIJ, I4040_RKL, I4040_RMN, + I4004_ADDR0, I4004_ADDR1, I4004_ADDR2, I4004_ADDR3, + I4040_ADDR4, I4040_ADDR5, I4040_ADDR6, I4040_ADDR7, + I4004_CR, I4004_RC, I4004_RCN, + I4040_SRC +}; + +enum +{ + I4004_TEST_LINE = 0, + + I4040_TEST_LINE = I4004_TEST_LINE, + I4040_INT_LINE = 1, + I4040_STP_LINE = 2 +}; + + + +/*********************************************************************** + CONFIGURATION MACROS +***********************************************************************/ + +#define MCFG_I4004_SYNC_CB(obj) \ + devcb = &i4004_cpu_device::set_sync_cb(*device, DEVCB_##obj); + +#define MCFG_I4004_CM_ROM_CB(obj) \ + devcb = &i4004_cpu_device::set_cm_rom_cb(*device, DEVCB_##obj); + +#define MCFG_I4004_CM_RAM0_CB(obj) \ + devcb = &i4004_cpu_device::set_cm_ram_cb<0>(*device, DEVCB_##obj); + +#define MCFG_I4004_CM_RAM1_CB(obj) \ + devcb = &i4004_cpu_device::set_cm_ram_cb<1>(*device, DEVCB_##obj); + +#define MCFG_I4004_CM_RAM2_CB(obj) \ + devcb = &i4004_cpu_device::set_cm_ram_cb<2>(*device, DEVCB_##obj); + +#define MCFG_I4004_CM_RAM3_CB(obj) \ + devcb = &i4004_cpu_device::set_cm_ram_cb<3>(*device, DEVCB_##obj); + + +#define MCFG_I4040_SYNC_CB(obj) \ + devcb = &i4040_cpu_device::set_sync_cb(*device, DEVCB_##obj); + +#define MCFG_I4040_CM_ROM0_CB(obj) \ + devcb = &i4040_cpu_device::set_cm_rom_cb<0>(*device, DEVCB_##obj); + +#define MCFG_I4040_CM_ROM1_CB(obj) \ + devcb = &i4040_cpu_device::set_cm_rom_cb<1>(*device, DEVCB_##obj); + +#define MCFG_I4040_CM_RAM0_CB(obj) \ + devcb = &i4040_cpu_device::set_cm_ram_cb<0>(*device, DEVCB_##obj); + +#define MCFG_I4040_CM_RAM1_CB(obj) \ + devcb = &i4040_cpu_device::set_cm_ram_cb<1>(*device, DEVCB_##obj); + +#define MCFG_I4040_CM_RAM2_CB(obj) \ + devcb = &i4040_cpu_device::set_cm_ram_cb<2>(*device, DEVCB_##obj); + +#define MCFG_I4040_CM_RAM3_CB(obj) \ + devcb = &i4040_cpu_device::set_cm_ram_cb<3>(*device, DEVCB_##obj); + +#define MCFG_I4040_CY_CB(obj) \ + devcb = &i4040_cpu_device::set_cy_cb(*device, DEVCB_##obj); + + + +/*********************************************************************** + TYPE DEFINITIONS +***********************************************************************/ + +class mcs40_cpu_device_base : public cpu_device +{ +protected: + enum class cycle { OP, IM, IN }; + + mcs40_cpu_device_base( + machine_config const &mconfig, + device_type type, + char const *tag, + device_t *owner, + uint32_t clock, + bool extended_cm, + unsigned rom_width, + unsigned stack_ptr_mask, + unsigned index_reg_cnt, + unsigned cr_mask); + + // device_t implementation + void device_start() override; + void device_reset() override; + + // device_execute_interface implementation + virtual void execute_run() override; + + // device_memory_interface configuration + virtual address_space_config const *memory_space_config(address_spacenum spacenum) const override; + + // device_state_interface implementation + virtual void state_import(device_state_entry const &entry) override; + virtual void state_export(device_state_entry const &entry) override; + virtual void state_string_export(device_state_entry const &entry, std::string &str) const override; + + // device_disasm_interface implementation + virtual u32 disasm_min_opcode_bytes() const override; + virtual u32 disasm_max_opcode_bytes() const override; + + // instruction execution + virtual bool is_io_op(u8 opr) = 0; + virtual cycle do_cycle1(u8 opr, u8 opa) = 0; + virtual void do_cycle2(u8 opr, u8 opa, u8 arg) = 0; + virtual void do_io(u8 opr, u8 opa) = 0; + + // register access + u8 get_a() const; + u8 get_c() const; + void set_a(u8 val); + void set_c(u8 val); + void set_a_c(u8 val); + void set_pc(u16 addr, u16 mask); + void push_pc(); + void pop_pc(); + u8 &index_reg_pair(unsigned n); + u8 get_index_reg(unsigned n); + void set_index_reg(unsigned n, u8 val); + void set_index_reg_bank(u8 val); + + // I/O control + void set_rom_addr(u16 addr, u16 mask); + u8 get_cr(); + void set_cr(u8 val, u8 mask); + void set_pending_rom_bank(u8 val); + void set_rc(u8 val); + u8 read_memory(); + void write_memory(u8 val); + u8 read_status(); + void write_status(u8 val); + u8 read_rom_port(); + void write_rom_port(u8 val); + void write_memory_port(u8 val); + + // input lines + bool get_test(); + void set_test(int state); + + // configuration helpers + template <typename Obj> devcb_base &set_sync_cb(Obj &&cb) + { return m_sync_cb.set_callback(std::forward<Obj>(cb)); } + template <unsigned N, typename Obj> devcb_base &set_cm_rom_cb(Obj &&cb) + { return m_cm_rom_cb[N].set_callback(std::forward<Obj>(cb)); } + template <unsigned N, typename Obj> devcb_base &set_cm_ram_cb(Obj &&cb) + { return m_cm_ram_cb[N].set_callback(std::forward<Obj>(cb)); } + template <typename Obj> devcb_base &set_cy_cb(Obj &&cb) + { return m_cy_cb.set_callback(std::forward<Obj>(cb)); } + +private: + enum class phase { A1, A2, A3, M1, M2, X1, X2, X3 }; + + // internal helpers + u16 &pc() { return m_addr_stack[m_stack_ptr]; } + u16 rom_bank() const { return BIT(m_cr, 3) ? 0x1000U : 0x0000U; } + void update_cm_rom(u8 val); + void update_cm_ram(u8 val); + void update_cy(u8 val); + + // address spaces + address_space_config m_program_config, m_data_config, m_io_config; + address_space *m_program, *m_data, *m_io; + direct_read_data *m_direct; + + // output callbacks + devcb_write_line m_sync_cb; + devcb_write_line m_cm_rom_cb[2], m_cm_ram_cb[4]; + devcb_write_line m_cy_cb; + + // configuration + bool const m_extended_cm; + u8 const m_stack_ptr_mask; + u8 const m_index_reg_cnt; + u8 const m_cr_mask; + u16 const m_pc_mask; + + // machine/instruction phase + int m_icount; + phase m_phase; + cycle m_cycle; + bool m_io_pending; + + // instruction ROM fetch/decode + u16 m_rom_bank, m_rom_addr; + u8 m_opr, m_opa, m_arg; + + // ALU registers + u8 m_a, m_c; + + // address stack + std::unique_ptr<u16 []> m_addr_stack; + u8 m_stack_ptr; + + // index registers + std::unique_ptr<u8 []> m_index_regs; + u8 m_index_reg_bank; + + // RAM/I/O control + u8 m_cr, m_pending_cr3, m_latched_rc, m_new_rc, m_src; + bool m_rc_pending; + + // input/output lines + int m_test; + u8 m_cm_rom, m_cm_ram, m_cy; + + // state export/import + u16 m_pc, m_pcbase; + u8 m_genflags; +}; + + +class i4004_cpu_device : public mcs40_cpu_device_base +{ +public: + // configuration helpers + template <typename Obj> static devcb_base &set_sync_cb(device_t &device, Obj &&cb) + { return downcast<i4004_cpu_device &>(device).set_sync_cb(std::forward<Obj>(cb)); } + template <typename Obj> static devcb_base &set_cm_rom_cb(device_t &device, Obj &&cb) + { return downcast<i4004_cpu_device &>(device).set_cm_rom_cb<0>(std::forward<Obj>(cb)); } + template <unsigned N, typename Obj> static devcb_base &set_cm_ram_cb(device_t &device, Obj &&cb) + { return downcast<i4004_cpu_device &>(device).set_cm_ram_cb<N>(std::forward<Obj>(cb)); } + + i4004_cpu_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); + +protected: + using mcs40_cpu_device_base::mcs40_cpu_device_base; + + // device_execute_interface implementation + u32 execute_input_lines() const override; + virtual void execute_set_input(int inputnum, int state) override; + + // device_disasm_interface implementation + virtual offs_t disasm_disassemble( + std::ostream &stream, + offs_t pc, + uint8_t const *oprom, + uint8_t const *opram, + uint32_t options) override; + + // mcs40_cpu_device_base implementation + virtual bool is_io_op(u8 opr) override; + virtual cycle do_cycle1(u8 opr, u8 opa) override; + virtual void do_cycle2(u8 opr, u8 opa, u8 arg) override; + virtual void do_io(u8 opr, u8 opa) override; +}; + + +class i4040_cpu_device : public i4004_cpu_device +{ +public: + // configuration helpers + template <typename Obj> static devcb_base &set_sync_cb(device_t &device, Obj &&cb) + { return downcast<i4040_cpu_device &>(device).set_sync_cb(std::forward<Obj>(cb)); } + template <unsigned N, typename Obj> static devcb_base &set_cm_rom_cb(device_t &device, Obj &&cb) + { return downcast<i4040_cpu_device &>(device).set_cm_rom_cb<N>(std::forward<Obj>(cb)); } + template <unsigned N, typename Obj> static devcb_base &set_cm_ram_cb(device_t &device, Obj &&cb) + { return downcast<i4040_cpu_device &>(device).set_cm_ram_cb<N>(std::forward<Obj>(cb)); } + template <typename Obj> static devcb_base &set_cy_cb(device_t &device, Obj &&cb) + { return downcast<i4040_cpu_device &>(device).set_cy_cb(std::forward<Obj>(cb)); } + + i4040_cpu_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); + +protected: + // device_disasm_interface implementation + virtual offs_t disasm_disassemble( + std::ostream &stream, + offs_t pc, + uint8_t const *oprom, + uint8_t const *opram, + uint32_t options) override; + + // mcs40_cpu_device_base implementation + virtual cycle do_cycle1(u8 opr, u8 opa) override; +}; + + + +/*********************************************************************** + DEVICE TYPE DECLARATIONS +***********************************************************************/ + +DECLARE_DEVICE_TYPE(I4004, i4004_cpu_device) +DECLARE_DEVICE_TYPE(I4040, i4040_cpu_device) + +#endif // MAME_CPU_I4004_I4004_H diff --git a/src/devices/cpu/mcs40/mcs40dasm.cpp b/src/devices/cpu/mcs40/mcs40dasm.cpp new file mode 100644 index 00000000000..7e3f3d68a44 --- /dev/null +++ b/src/devices/cpu/mcs40/mcs40dasm.cpp @@ -0,0 +1,189 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb +/***************************************************************************** + * + * 4004dasm.cpp + * + * Intel MCS-40 CPU Disassembly + * + *****************************************************************************/ + +#include "emu.h" + +namespace { + +enum class format +{ + ILL, + SIMPLE, + IMM4, + REG, + REGPAGE, + PAIR, + PAIRIMM, + ABS, + PAGE, + COND +}; + +enum class level +{ + I4004, + I4040 +}; + +struct op +{ + format m_format; + level m_level; + char const *m_name; +}; + +#define OP(fmt, lvl, name) { format::fmt, level::lvl, #name } + +op const f_ops[256] = { + OP(SIMPLE, I4004, nop), OP(SIMPLE, I4040, hlt), OP(SIMPLE, I4040, bbs), OP(SIMPLE, I4040, lcr), + OP(SIMPLE, I4040, or4), OP(SIMPLE, I4040, or5), OP(SIMPLE, I4040, an6), OP(SIMPLE, I4040, an7), + OP(SIMPLE, I4040, db0), OP(SIMPLE, I4040, db1), OP(SIMPLE, I4040, sb0), OP(SIMPLE, I4040, sb1), + OP(SIMPLE, I4040, ein), OP(SIMPLE, I4040, din), OP(SIMPLE, I4040, rpm), OP(ILL, I4004, ill), + + OP(COND, I4004, jcn), OP(PAGE, I4004, jnt), OP(PAGE, I4004, jc ), OP(COND, I4004, jcn), + OP(PAGE, I4004, jz ), OP(COND, I4004, jcn), OP(COND, I4004, jcn), OP(COND, I4004, jcn), + OP(COND, I4004, jcn), OP(PAGE, I4004, jt), OP(PAGE, I4004, jnc), OP(COND, I4004, jcn), + OP(PAGE, I4004, jnz), OP(COND, I4004, jcn), OP(COND, I4004, jcn), OP(COND, I4004, jcn), + + OP(PAIRIMM, I4004, fim), OP(PAIR, I4004, src), OP(PAIRIMM, I4004, fim), OP(PAIR, I4004, src), + OP(PAIRIMM, I4004, fim), OP(PAIR, I4004, src), OP(PAIRIMM, I4004, fim), OP(PAIR, I4004, src), + OP(PAIRIMM, I4004, fim), OP(PAIR, I4004, src), OP(PAIRIMM, I4004, fim), OP(PAIR, I4004, src), + OP(PAIRIMM, I4004, fim), OP(PAIR, I4004, src), OP(PAIRIMM, I4004, fim), OP(PAIR, I4004, src), + + OP(PAIR, I4004, fin), OP(PAIR, I4004, jin), OP(PAIR, I4004, fin), OP(PAIR, I4004, jin), + OP(PAIR, I4004, fin), OP(PAIR, I4004, jin), OP(PAIR, I4004, fin), OP(PAIR, I4004, jin), + OP(PAIR, I4004, fin), OP(PAIR, I4004, jin), OP(PAIR, I4004, fin), OP(PAIR, I4004, jin), + OP(PAIR, I4004, fin), OP(PAIR, I4004, jin), OP(PAIR, I4004, fin), OP(PAIR, I4004, jin), + + OP(ABS, I4004, jun), OP(ABS, I4004, jun), OP(ABS, I4004, jun), OP(ABS, I4004, jun), + OP(ABS, I4004, jun), OP(ABS, I4004, jun), OP(ABS, I4004, jun), OP(ABS, I4004, jun), + OP(ABS, I4004, jun), OP(ABS, I4004, jun), OP(ABS, I4004, jun), OP(ABS, I4004, jun), + OP(ABS, I4004, jun), OP(ABS, I4004, jun), OP(ABS, I4004, jun), OP(ABS, I4004, jun), + + OP(ABS, I4004, jms), OP(ABS, I4004, jms), OP(ABS, I4004, jms), OP(ABS, I4004, jms), + OP(ABS, I4004, jms), OP(ABS, I4004, jms), OP(ABS, I4004, jms), OP(ABS, I4004, jms), + OP(ABS, I4004, jms), OP(ABS, I4004, jms), OP(ABS, I4004, jms), OP(ABS, I4004, jms), + OP(ABS, I4004, jms), OP(ABS, I4004, jms), OP(ABS, I4004, jms), OP(ABS, I4004, jms), + + OP(REG, I4004, inc), OP(REG, I4004, inc), OP(REG, I4004, inc), OP(REG, I4004, inc), + OP(REG, I4004, inc), OP(REG, I4004, inc), OP(REG, I4004, inc), OP(REG, I4004, inc), + OP(REG, I4004, inc), OP(REG, I4004, inc), OP(REG, I4004, inc), OP(REG, I4004, inc), + OP(REG, I4004, inc), OP(REG, I4004, inc), OP(REG, I4004, inc), OP(REG, I4004, inc), + + OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), + OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), + OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), + OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), OP(REGPAGE, I4004, isz), + + OP(REG, I4004, add), OP(REG, I4004, add), OP(REG, I4004, add), OP(REG, I4004, add), + OP(REG, I4004, add), OP(REG, I4004, add), OP(REG, I4004, add), OP(REG, I4004, add), + OP(REG, I4004, add), OP(REG, I4004, add), OP(REG, I4004, add), OP(REG, I4004, add), + OP(REG, I4004, add), OP(REG, I4004, add), OP(REG, I4004, add), OP(REG, I4004, add), + + OP(REG, I4004, sub), OP(REG, I4004, sub), OP(REG, I4004, sub), OP(REG, I4004, sub), + OP(REG, I4004, sub), OP(REG, I4004, sub), OP(REG, I4004, sub), OP(REG, I4004, sub), + OP(REG, I4004, sub), OP(REG, I4004, sub), OP(REG, I4004, sub), OP(REG, I4004, sub), + OP(REG, I4004, sub), OP(REG, I4004, sub), OP(REG, I4004, sub), OP(REG, I4004, sub), + + OP(REG, I4004, ld ), OP(REG, I4004, ld ), OP(REG, I4004, ld ), OP(REG, I4004, ld ), + OP(REG, I4004, ld ), OP(REG, I4004, ld ), OP(REG, I4004, ld ), OP(REG, I4004, ld ), + OP(REG, I4004, ld ), OP(REG, I4004, ld ), OP(REG, I4004, ld ), OP(REG, I4004, ld ), + OP(REG, I4004, ld ), OP(REG, I4004, ld ), OP(REG, I4004, ld ), OP(REG, I4004, ld ), + + OP(REG, I4004, xch), OP(REG, I4004, xch), OP(REG, I4004, xch), OP(REG, I4004, xch), + OP(REG, I4004, xch), OP(REG, I4004, xch), OP(REG, I4004, xch), OP(REG, I4004, xch), + OP(REG, I4004, xch), OP(REG, I4004, xch), OP(REG, I4004, xch), OP(REG, I4004, xch), + OP(REG, I4004, xch), OP(REG, I4004, xch), OP(REG, I4004, xch), OP(REG, I4004, xch), + + OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), + OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), + OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), + OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), OP(IMM4, I4004, bbl), + + OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), + OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), + OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), + OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), OP(IMM4, I4004, ldm), + + OP(SIMPLE, I4004, wrm), OP(SIMPLE, I4004, wmp), OP(SIMPLE, I4004, wrr), OP(SIMPLE, I4004, wpm), + OP(SIMPLE, I4004, wr0), OP(SIMPLE, I4004, wr1), OP(SIMPLE, I4004, wr2), OP(SIMPLE, I4004, wr3), + OP(SIMPLE, I4004, sbm), OP(SIMPLE, I4004, rdm), OP(SIMPLE, I4004, rdr), OP(SIMPLE, I4004, adm), + OP(SIMPLE, I4004, rd0), OP(SIMPLE, I4004, rd1), OP(SIMPLE, I4004, rd2), OP(SIMPLE, I4004, rd3), + + OP(SIMPLE, I4004, clb), OP(SIMPLE, I4004, clc), OP(SIMPLE, I4004, iac), OP(SIMPLE, I4004, cmc), + OP(SIMPLE, I4004, cma), OP(SIMPLE, I4004, ral), OP(SIMPLE, I4004, rar), OP(SIMPLE, I4004, tcc), + OP(SIMPLE, I4004, dac), OP(SIMPLE, I4004, tcs), OP(SIMPLE, I4004, stc), OP(SIMPLE, I4004, daa), + OP(SIMPLE, I4004, kbp), OP(SIMPLE, I4004, dcl), OP(ILL, I4004, ill), OP(ILL, I4004, ill) }; + +offs_t disassemble( + cpu_device *device, + std::ostream &stream, + offs_t pc, + u8 const *oprom, + u8 const *opram, + int options, + level lvl, + unsigned pcmask) +{ + offs_t npc(pc + 1); + u8 const opcode(oprom[0]); + op const &desc(f_ops[(f_ops[opcode].m_level > lvl) ? 0xffU : opcode]); + + switch (desc.m_format) + { + case format::ILL: + util::stream_format(stream, "%-3s $%02x", desc.m_name, opcode); + break; + case format::SIMPLE: + util::stream_format(stream, "%s", desc.m_name); + break; + case format::IMM4: + case format::REG: + util::stream_format(stream, "%-3s $%01x", desc.m_name, opcode & 0x0fU); + break; + case format::REGPAGE: + case format::COND: + npc++; + util::stream_format(stream, "%-3s $%01x,$%03x", desc.m_name, opcode & 0x0fU, opram[1] | (npc & 0x0f00U)); + break; + case format::PAIR: + util::stream_format(stream, "%-3s $%01x", desc.m_name, opcode & 0x0eU); + break; + case format::PAIRIMM: + npc++; + util::stream_format(stream, "%-3s $%01x,$%02x", desc.m_name, opcode & 0x0eU, opram[1]); + break; + case format::ABS: + npc++; + util::stream_format(stream, "%-3s $%03x", desc.m_name, ((u16(opcode) & 0x0fU) << 8) | opram[1]); + break; + case format::PAGE: + npc++; + util::stream_format(stream, "%-3s $%03x", desc.m_name, opram[1] | (npc & 0x0f00U)); + break; + } + + offs_t flags(0U); + if (format::ILL != desc.m_format) + { + if (0x50U == (opcode & 0xf0U)) // JMS + flags = DASMFLAG_STEP_OVER; + else if ((0xc0 == (opcode & 0xf0)) || (0x02 == opcode)) // BBL/BBS + flags = DASMFLAG_STEP_OUT; + } + + return (npc - pc) | flags | DASMFLAG_SUPPORTED; +} + +} // anonymous namespace + + +CPU_DISASSEMBLE(i4004) { return disassemble(device, stream, pc, oprom, opram, options, level::I4004, 0x0fffU); } +CPU_DISASSEMBLE(i4040) { return disassemble(device, stream, pc, oprom, opram, options, level::I4040, 0x1fffU); } diff --git a/src/devices/cpu/sm510/sm500.h b/src/devices/cpu/sm510/sm500.h index 6c6e7e7cecd..a7b9b336220 100644 --- a/src/devices/cpu/sm510/sm500.h +++ b/src/devices/cpu/sm510/sm500.h @@ -16,7 +16,7 @@ // I/O ports setup -// LCD segment outputs: H1/2 as a4, O group as a0-a3, O data as d0-d3 +// LCD segment outputs: H1/2 as a0, O group as a1-a4, O data as d0-d3 #define MCFG_SM500_WRITE_O_CB(_devcb) \ devcb = &sm500_device::set_write_o_callback(*device, DEVCB_##_devcb); @@ -83,7 +83,7 @@ public: template <class Object> static devcb_base &set_write_o_callback(device_t &device, Object &&cb) { return downcast<sm500_device &>(device).m_write_o.set_callback(std::forward<Object>(cb)); } protected: - sm500_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_mask, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + sm500_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_pins, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); virtual void device_start() override; virtual void device_reset() override; @@ -99,7 +99,7 @@ protected: devcb_write8 m_write_o; virtual void lcd_update() override; - int m_o_mask; // number of 4-bit O pins minus 1 + int m_o_pins; // number of 4-bit O pins u8 m_ox[9]; // W' latch, max 9 u8 m_o[9]; // W latch u8 m_cn; @@ -111,7 +111,7 @@ protected: void shift_w(); u8 get_digit(); - void set_su(u8 su) { m_stack[0] = (m_stack[0] & ~0x3c0) | (su << 6); } + void set_su(u8 su) { m_stack[0] = (m_stack[0] & ~0x3c0) | (su << 6 & 0x3c0); } u8 get_su() { return m_stack[0] >> 6 & 0xf; } virtual int get_trs_field() { return 0; } @@ -153,7 +153,7 @@ public: sm5a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); protected: - sm5a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_mask, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + sm5a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_pins, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override; virtual void execute_one() override; diff --git a/src/devices/cpu/sm510/sm500core.cpp b/src/devices/cpu/sm510/sm500core.cpp index 5bea8ab978f..daf60275680 100644 --- a/src/devices/cpu/sm510/sm500core.cpp +++ b/src/devices/cpu/sm510/sm500core.cpp @@ -7,8 +7,7 @@ TODO: - EXKSA, EXKFA opcodes - SM500 data book suggests that R1 divider output is selectable, but how? - - unknown which H/O pin is which W output, guessed for now - - ACL doesn't work right? + - unknown which O group is which W output, guessed for now (segments and H should be ok) */ @@ -36,18 +35,26 @@ ADDRESS_MAP_END // device definitions sm500_device::sm500_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm500_device(mconfig, SM500, tag, owner, clock, 1 /* stack levels */, 6 /* o mask */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1_2k), 6 /* data width */, ADDRESS_MAP_NAME(data_4x10x4)) + : sm500_device(mconfig, SM500, tag, owner, clock, 1 /* stack levels */, 7 /* o group pins */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1_2k), 6 /* data width */, ADDRESS_MAP_NAME(data_4x10x4)) { } -sm500_device::sm500_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_mask, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) +sm500_device::sm500_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_pins, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) : sm510_base_device(mconfig, type, tag, owner, clock, stack_levels, prgwidth, program, datawidth, data), m_write_o(*this), - m_o_mask(o_mask) + m_o_pins(o_pins) { } +// disasm +offs_t sm500_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) +{ + extern CPU_DISASSEMBLE(sm500); + return CPU_DISASSEMBLE_NAME(sm500)(this, stream, pc, oprom, opram, options); +} + + //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- @@ -91,6 +98,7 @@ void sm500_device::device_reset() sm510_base_device::device_reset(); // SM500 specific + push_stack(); op_idiv(); m_1s = true; m_cb = 0; @@ -100,15 +108,6 @@ void sm500_device::device_reset() -// disasm -offs_t sm500_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) -{ - extern CPU_DISASSEMBLE(sm500); - return CPU_DISASSEMBLE_NAME(sm500)(this, stream, pc, oprom, opram, options); -} - - - //------------------------------------------------- // lcd driver //------------------------------------------------- @@ -118,11 +117,11 @@ void sm500_device::lcd_update() // 2 columns for (int h = 0; h < 2; h++) { - for (int o = 0; o <= m_o_mask; o++) + for (int o = 0; o < m_o_pins; o++) { // 4 segments per group - u8 seg = h ? m_o[o] : m_ox[o]; - m_write_o(h << 4 | o, m_bp ? seg : 0, 0xff); + u8 seg = h ? m_ox[o] : m_o[o]; + m_write_o(o << 1 | h, m_bp ? seg : 0, 0xff); } } } diff --git a/src/devices/cpu/sm510/sm500op.cpp b/src/devices/cpu/sm510/sm500op.cpp index 01b5a127faf..8993259b460 100644 --- a/src/devices/cpu/sm510/sm500op.cpp +++ b/src/devices/cpu/sm510/sm500op.cpp @@ -12,7 +12,7 @@ void sm500_device::shift_w() { // shifts internal W' latches - for (int i = 0; i < m_o_mask; i++) + for (int i = 0; i < (m_o_pins-1); i++) m_ox[i] = m_ox[i + 1]; } @@ -37,9 +37,8 @@ u8 sm500_device::get_digit() void sm500_device::op_lb() { // LB x: load BM/BL with 4-bit immediate value (partial) - // BL bit 2 is clearned, bit 3 is param bit 2|3 - m_bm = (m_op & 3); - m_bl = ((m_op << 1 | m_op) & 8) | (m_op >> 2 & 3); + m_bm = m_op & 3; + m_bl = (m_op >> 2 & 3) | ((m_op & 0xc) ? 8 : 0); } void sm500_device::op_incb() @@ -122,43 +121,43 @@ void sm500_device::op_atbp() void sm500_device::op_ptw() { // PTW: partial transfer W' to W - m_o[m_o_mask] = m_ox[m_o_mask]; - m_o[m_o_mask-1] = m_ox[m_o_mask-1]; + m_o[m_o_pins-1] = m_ox[m_o_pins-1]; + m_o[m_o_pins-2] = m_ox[m_o_pins-2]; } void sm500_device::op_tw() { // TW: transfer W' to W - for (int i = 0; i <= m_o_mask; i++) + for (int i = 0; i < m_o_pins; i++) m_o[i] = m_ox[i]; } void sm500_device::op_pdtw() { // PDTW: partial shift digit into W' - m_ox[m_o_mask-1] = m_ox[m_o_mask]; - m_ox[m_o_mask] = get_digit(); + m_ox[m_o_pins-2] = m_ox[m_o_pins-1]; + m_ox[m_o_pins-1] = get_digit(); } void sm500_device::op_dtw() { // DTW: shift digit into W' shift_w(); - m_ox[m_o_mask] = get_digit(); + m_ox[m_o_pins-1] = get_digit(); } void sm500_device::op_wr() { // WR: shift ACC into W', reset last bit shift_w(); - m_ox[m_o_mask] = m_acc & 7; + m_ox[m_o_pins-1] = m_acc & 7; } void sm500_device::op_ws() { // WR: shift ACC into W', set last bit shift_w(); - m_ox[m_o_mask] = m_acc | 8; + m_ox[m_o_pins-1] = m_acc | 8; } diff --git a/src/devices/cpu/sm510/sm5acore.cpp b/src/devices/cpu/sm510/sm5acore.cpp index 02ab41f3213..1fd23887227 100644 --- a/src/devices/cpu/sm510/sm5acore.cpp +++ b/src/devices/cpu/sm510/sm5acore.cpp @@ -23,36 +23,41 @@ DEFINE_DEVICE_TYPE(KB1013VK12, kb1013vk12_device, "kb1013vk1_2", "KB1013VK1-2") // internal memory maps static ADDRESS_MAP_START(program_1_8k, AS_PROGRAM, 8, sm510_base_device) AM_RANGE(0x000, 0x6ff) AM_ROM - AM_RANGE(0x700, 0x73f) AM_MIRROR(0x0c0) AM_ROM + AM_RANGE(0x700, 0x73f) AM_ROM AM_MIRROR(0x0c0) ADDRESS_MAP_END static ADDRESS_MAP_START(data_5x13x4, AS_DATA, 8, sm510_base_device) - AM_RANGE(0x00, 0x0c) AM_RAM - AM_RANGE(0x10, 0x1c) AM_RAM - AM_RANGE(0x20, 0x2c) AM_RAM - AM_RANGE(0x30, 0x3c) AM_RAM - AM_RANGE(0x40, 0x4c) AM_MIRROR(0x30) AM_RAM + AM_RANGE(0x00, 0x0b) AM_RAM + AM_RANGE(0x0c, 0x0c) AM_RAM AM_MIRROR(0x03) + AM_RANGE(0x10, 0x1b) AM_RAM + AM_RANGE(0x1c, 0x1c) AM_RAM AM_MIRROR(0x03) + AM_RANGE(0x20, 0x2b) AM_RAM + AM_RANGE(0x2c, 0x2c) AM_RAM AM_MIRROR(0x03) + AM_RANGE(0x30, 0x3b) AM_RAM + AM_RANGE(0x3c, 0x3c) AM_RAM AM_MIRROR(0x03) + AM_RANGE(0x40, 0x4b) AM_RAM AM_MIRROR(0x30) + AM_RANGE(0x4c, 0x4c) AM_RAM AM_MIRROR(0x33) ADDRESS_MAP_END // device definitions sm5a_device::sm5a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm5a_device(mconfig, SM5A, tag, owner, clock, 1 /* stack levels */, 8 /* o mask */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1_8k), 7 /* data width */, ADDRESS_MAP_NAME(data_5x13x4)) + : sm5a_device(mconfig, SM5A, tag, owner, clock, 1 /* stack levels */, 9 /* o group pins */, 11 /* prg width */, ADDRESS_MAP_NAME(program_1_8k), 7 /* data width */, ADDRESS_MAP_NAME(data_5x13x4)) { } -sm5a_device::sm5a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_mask, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) - : sm500_device(mconfig, type, tag, owner, clock, stack_levels, o_mask, prgwidth, program, datawidth, data) +sm5a_device::sm5a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int stack_levels, int o_pins, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) + : sm500_device(mconfig, type, tag, owner, clock, stack_levels, o_pins, prgwidth, program, datawidth, data) { } sm5l_device::sm5l_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm5a_device(mconfig, SM5L, tag, owner, clock, 1, 8, 11, ADDRESS_MAP_NAME(program_1_8k), 7, ADDRESS_MAP_NAME(data_5x13x4)) + : sm5a_device(mconfig, SM5L, tag, owner, clock, 1, 9, 11, ADDRESS_MAP_NAME(program_1_8k), 7, ADDRESS_MAP_NAME(data_5x13x4)) { } kb1013vk12_device::kb1013vk12_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : sm5a_device(mconfig, KB1013VK12, tag, owner, clock, 1, 8, 11, ADDRESS_MAP_NAME(program_1_8k), 7, ADDRESS_MAP_NAME(data_5x13x4)) + : sm5a_device(mconfig, KB1013VK12, tag, owner, clock, 1, 9, 11, ADDRESS_MAP_NAME(program_1_8k), 7, ADDRESS_MAP_NAME(data_5x13x4)) { } diff --git a/src/devices/cpu/z8/z8.cpp b/src/devices/cpu/z8/z8.cpp index 1211bb566da..5d4b63f1096 100644 --- a/src/devices/cpu/z8/z8.cpp +++ b/src/devices/cpu/z8/z8.cpp @@ -174,7 +174,8 @@ z8_device::z8_device(const machine_config &mconfig, device_type type, const char : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_LITTLE, 8, 16, 0, (size == 4) ? ADDRESS_MAP_NAME(program_4kb) : ADDRESS_MAP_NAME(program_2kb)) , m_data_config("data", ENDIANNESS_LITTLE, 8, 16, 0) - , m_io_config("io", ENDIANNESS_LITTLE, 8, 2, 0) + , m_input_cb{{*this}, {*this}, {*this}, {*this}} + , m_output_cb{{*this}, {*this}, {*this}, {*this}} { } @@ -242,7 +243,7 @@ uint8_t z8_device::register_read(uint8_t offset) if (!(P3M & Z8_P3M_P0_STROBED)) { - if (mask) m_input[offset] = m_io->read_byte(offset); + if (mask) m_input[offset] = m_input_cb[0](0, mask); } data |= m_input[offset] & mask; @@ -258,7 +259,7 @@ uint8_t z8_device::register_read(uint8_t offset) if ((P3M & Z8_P3M_P33_P34_MASK) != Z8_P3M_P33_P34_DAV1_RDY1) { - if (mask) m_input[offset] = m_io->read_byte(offset); + if (mask) m_input[offset] = m_input_cb[1](0, mask); } data |= m_input[offset] & mask; @@ -269,7 +270,7 @@ uint8_t z8_device::register_read(uint8_t offset) if (!(P3M & Z8_P3M_P2_STROBED)) { - if (mask) m_input[offset] = m_io->read_byte(offset); + if (mask) m_input[offset] = m_input_cb[2](0, mask); } data = (m_input[offset] & mask) | (m_output[offset] & ~mask); @@ -282,7 +283,7 @@ uint8_t z8_device::register_read(uint8_t offset) mask = 0x0f; } - if (mask) m_input[offset] = m_io->read_byte(offset); + if (mask) m_input[offset] = m_input_cb[3](0, mask); data = (m_input[offset] & mask) | (m_output[offset] & ~mask); break; @@ -327,19 +328,19 @@ void z8_device::register_write(uint8_t offset, uint8_t data) m_output[offset] = data; if ((P01M & Z8_P01M_P0L_MODE_MASK) == Z8_P01M_P0L_MODE_OUTPUT) mask |= 0x0f; if ((P01M & Z8_P01M_P0H_MODE_MASK) == Z8_P01M_P0H_MODE_OUTPUT) mask |= 0xf0; - if (mask) m_io->write_byte(offset, data & mask); + if (mask) m_output_cb[0](0, data & mask, mask); break; case Z8_REGISTER_P1: m_output[offset] = data; if ((P01M & Z8_P01M_P1_MODE_MASK) == Z8_P01M_P1_MODE_OUTPUT) mask = 0xff; - if (mask) m_io->write_byte(offset, data & mask); + if (mask) m_output_cb[1](0, data & mask, mask); break; case Z8_REGISTER_P2: m_output[offset] = data; mask = m_r[Z8_REGISTER_P2M] ^ 0xff; - if (mask) m_io->write_byte(offset, data & mask); + if (mask) m_output_cb[2](0, data & mask, mask); break; case Z8_REGISTER_P3: @@ -351,7 +352,7 @@ void z8_device::register_write(uint8_t offset, uint8_t data) mask = 0xf0; } - if (mask) m_io->write_byte(offset, data & mask); + if (mask) m_output_cb[3](0, data & mask, mask); break; case Z8_REGISTER_SIO: @@ -666,6 +667,11 @@ TIMER_CALLBACK_MEMBER( z8_device::t1_tick ) void z8_device::device_start() { + for (auto &cb : m_input_cb) + cb.resolve_safe(0xff); + for (auto &cb : m_output_cb) + cb.resolve_safe(); + /* set up the state table */ { state_add(Z8_PC, "PC", m_pc); @@ -674,9 +680,18 @@ void z8_device::device_start() state_add(Z8_SP, "SP", m_fake_sp).callimport().callexport(); state_add(STATE_GENSP, "GENSP", m_fake_sp).callimport().callexport().noshow(); state_add(Z8_RP, "RP", m_r[Z8_REGISTER_RP]); + state_add(STATE_GENFLAGS, "GENFLAGS", m_r[Z8_REGISTER_FLAGS]).noshow().formatstr("%6s"); + state_add(Z8_IMR, "IMR", m_r[Z8_REGISTER_IMR]); + state_add(Z8_IRQ, "IRQ", m_r[Z8_REGISTER_IRQ]); + state_add(Z8_IPR, "IPR", m_r[Z8_REGISTER_IPR]); + state_add(Z8_P01M, "P01M", m_r[Z8_REGISTER_P01M]); + state_add(Z8_P3M, "P3M", m_r[Z8_REGISTER_P3M]); + state_add(Z8_P2M, "P2M", m_r[Z8_REGISTER_P2M]); + state_add(Z8_PRE0, "PRE0", m_r[Z8_REGISTER_PRE0]); state_add(Z8_T0, "T0", m_t0); + state_add(Z8_PRE1, "PRE1", m_r[Z8_REGISTER_PRE1]); state_add(Z8_T1, "T1", m_t1); - state_add(STATE_GENFLAGS, "GENFLAGS", m_r[Z8_REGISTER_FLAGS]).noshow().formatstr("%6s"); + state_add(Z8_TMR, "TMR", m_r[Z8_REGISTER_TMR]); for (int regnum = 0; regnum < 16; regnum++) state_add(Z8_R0 + regnum, string_format("R%d", regnum).c_str(), m_fake_r[regnum]).callimport().callexport(); @@ -686,7 +701,6 @@ void z8_device::device_start() m_program = &space(AS_PROGRAM); m_direct = &m_program->direct(); m_data = &space(AS_DATA); - m_io = &space(AS_IO); /* allocate timers */ m_t0_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(z8_device::t0_tick), this)); @@ -732,7 +746,7 @@ void z8_device::execute_run() debugger_instruction_hook(this, m_pc); /* TODO: sample interrupts */ - m_input[3] = m_io->read_byte(3); + m_input[3] = m_input_cb[3](); /* fetch opcode */ opcode = fetch(); @@ -755,8 +769,8 @@ void z8_device::device_reset() m_pc = 0x000c; register_write(Z8_REGISTER_TMR, 0x00); - register_write(Z8_REGISTER_PRE1, register_read(Z8_REGISTER_PRE1) & 0xfc); - register_write(Z8_REGISTER_PRE0, register_read(Z8_REGISTER_PRE0) & 0xfe); + register_write(Z8_REGISTER_PRE1, PRE1 & 0xfc); + register_write(Z8_REGISTER_PRE0, PRE0 & 0xfe); register_write(Z8_REGISTER_P2M, 0xff); register_write(Z8_REGISTER_P3M, 0x00); register_write(Z8_REGISTER_P01M, 0x4d); diff --git a/src/devices/cpu/z8/z8.h b/src/devices/cpu/z8/z8.h index b2c47421fe5..e8485a65b12 100644 --- a/src/devices/cpu/z8/z8.h +++ b/src/devices/cpu/z8/z8.h @@ -12,17 +12,60 @@ #pragma once -enum -{ - Z8_PC, Z8_SP, Z8_RP, Z8_T0, Z8_T1, +#define MCFG_Z8_PORT_P0_READ_CB(_devcb) \ + devcb = &z8_device::set_input_cb(*device, 0, DEVCB_##_devcb); + +#define MCFG_Z8_PORT_P1_READ_CB(_devcb) \ + devcb = &z8_device::set_input_cb(*device, 1, DEVCB_##_devcb); + +#define MCFG_Z8_PORT_P2_READ_CB(_devcb) \ + devcb = &z8_device::set_input_cb(*device, 2, DEVCB_##_devcb); + +#define MCFG_Z8_PORT_P3_READ_CB(_devcb) \ + devcb = &z8_device::set_input_cb(*device, 3, DEVCB_##_devcb); - Z8_R0, Z8_R1, Z8_R2, Z8_R3, Z8_R4, Z8_R5, Z8_R6, Z8_R7, Z8_R8, Z8_R9, Z8_R10, Z8_R11, Z8_R12, Z8_R13, Z8_R14, Z8_R15 -}; + +#define MCFG_Z8_PORT_P0_WRITE_CB(_devcb) \ + devcb = &z8_device::set_output_cb(*device, 0, DEVCB_##_devcb); + +#define MCFG_Z8_PORT_P1_WRITE_CB(_devcb) \ + devcb = &z8_device::set_output_cb(*device, 1, DEVCB_##_devcb); + +#define MCFG_Z8_PORT_P2_WRITE_CB(_devcb) \ + devcb = &z8_device::set_output_cb(*device, 2, DEVCB_##_devcb); + +#define MCFG_Z8_PORT_P3_WRITE_CB(_devcb) \ + devcb = &z8_device::set_output_cb(*device, 3, DEVCB_##_devcb); class z8_device : public cpu_device { +public: + // static configuration + template<class Object> + static devcb_base &set_input_cb(device_t &device, int port, Object &&object) + { + assert(port >= 0 && port < 4); + return downcast<z8_device &>(device).m_input_cb[port].set_callback(std::forward<Object>(object)); + } + template<class Object> + static devcb_base &set_output_cb(device_t &device, int port, Object &&object) + { + assert(port >= 0 && port < 4); + return downcast<z8_device &>(device).m_output_cb[port].set_callback(std::forward<Object>(object)); + } + protected: + enum + { + Z8_PC, Z8_SP, Z8_RP, + Z8_IMR, Z8_IRQ, Z8_IPR, + Z8_P01M, Z8_P3M, Z8_P2M, + Z8_PRE0, Z8_T0, Z8_PRE1, Z8_T1, Z8_TMR, + + Z8_R0, Z8_R1, Z8_R2, Z8_R3, Z8_R4, Z8_R5, Z8_R6, Z8_R7, Z8_R8, Z8_R9, Z8_R10, Z8_R11, Z8_R12, Z8_R13, Z8_R14, Z8_R15 + }; + // construction/destruction z8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int size); @@ -46,7 +89,6 @@ protected: { case AS_PROGRAM: return &m_program_config; case AS_DATA: return &m_data_config; - case AS_IO: return &m_io_config; default: return nullptr; } return nullptr; @@ -66,12 +108,14 @@ protected: private: address_space_config m_program_config; address_space_config m_data_config; - address_space_config m_io_config; address_space *m_program; direct_read_data *m_direct; address_space *m_data; - address_space *m_io; + + // callbacks + devcb_read8 m_input_cb[4]; + devcb_write8 m_output_cb[4]; /* registers */ uint16_t m_pc; /* program counter */ diff --git a/src/devices/cpu/z8/z8dasm.cpp b/src/devices/cpu/z8/z8dasm.cpp index 80f23fc312f..0414a45af80 100644 --- a/src/devices/cpu/z8/z8dasm.cpp +++ b/src/devices/cpu/z8/z8dasm.cpp @@ -153,7 +153,7 @@ CPU_DISASSEMBLE(z8) case 0x2f: illegal; break; case 0x30: mnemonic("JP"); arg_IRR(B0); bytes(2); break; - case 0x31: mnemonic("SRP"); arg_IM(*oprom++); break; + case 0x31: mnemonic("SRP"); arg_IM(B0); bytes(2); break; case 0x32: mnemonic("SBC"); arg_r(B0H); arg_r(B0L); bytes(2); break; case 0x33: mnemonic("SBC"); arg_r(B0H); arg_Ir(B0L); bytes(2); break; case 0x34: mnemonic("SBC"); arg_R(B1); arg_R(B0); bytes(3); break; @@ -237,7 +237,7 @@ CPU_DISASSEMBLE(z8) case 0x7e: mnemonic("INC"); arg_r(OPH); break; case 0x7f: illegal; /* mnemonic("HALT"); */ break; - case 0x80: mnemonic("DECW"); arg_RR(*oprom++); break; + case 0x80: mnemonic("DECW"); arg_RR(B0); bytes(2); break; case 0x81: mnemonic("DECW"); arg_IR(B0); bytes(2); break; case 0x82: mnemonic("LDE"); arg_r(B0H); arg_Irr(B0L); bytes(2); break; case 0x83: mnemonic("LDEI"); arg_Ir(B0H); arg_Irr(B0L); bytes(2); break; diff --git a/src/devices/machine/6821pia.cpp b/src/devices/machine/6821pia.cpp index 5b8dcbe03f0..9d3167506d3 100644 --- a/src/devices/machine/6821pia.cpp +++ b/src/devices/machine/6821pia.cpp @@ -15,21 +15,13 @@ #define LOG_GENERAL 0x01 #define LOG_SETUP 0x02 -#define LOG_PRINTF 0x04 #define LOG_CA1 0x08 -#define VERBOSE 0 //(LOG_PRINTF | LOG_SETUP | LOG_GENERAL) +//#define VERBOSE (LOG_SETUP | LOG_GENERAL) -#define LOGMASK(mask, ...) do { if (VERBOSE & mask) logerror(__VA_ARGS__); } while (0) -#define LOGLEVEL(mask, level, ...) do { if ((VERBOSE & mask) >= level) logerror(__VA_ARGS__); } while (0) - -#define LOG(...) LOGMASK(LOG_GENERAL, __VA_ARGS__) -#define LOGSETUP(...) LOGMASK(LOG_SETUP, __VA_ARGS__) -#define LOGCA1(...) LOGMASK(LOG_CA1, __VA_ARGS__) - -#if VERBOSE & LOG_PRINTF -#define logerror printf -#endif +#include "logmacro.h" +#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__) +#define LOGCA1(...) LOGMASKED(LOG_CA1, __VA_ARGS__) #define PIA_IRQ1 (0x80) #define PIA_IRQ2 (0x40) @@ -239,7 +231,7 @@ uint8_t pia6821_device::get_in_a_value() if (!m_logged_port_a_not_connected && (m_ddr_a != 0xff)) { - logerror("PIA #%s: Warning! No port A read handler. Assuming pins 0x%02X not connected\n", tag(), m_ddr_a ^ 0xff); + logerror("Warning! No port A read handler. Assuming pins 0x%02X not connected\n", m_ddr_a ^ 0xff); m_logged_port_a_not_connected = true; } } @@ -288,7 +280,7 @@ uint8_t pia6821_device::get_in_b_value() { if (!m_logged_port_b_not_connected && (m_ddr_b != 0xff)) { - logerror("PIA #%s: Error! No port B read handler. Three-state pins 0x%02X are undefined\n", tag(), m_ddr_b ^ 0xff); + logerror("Error! No port B read handler. Three-state pins 0x%02X are undefined\n", m_ddr_b ^ 0xff); m_logged_port_b_not_connected = true; } @@ -358,7 +350,7 @@ void pia6821_device::set_out_ca2(int data) { if (m_out_ca2_needs_pulled) { - logerror("PIA #%s: Warning! No port CA2 write handler. Previous value has been lost!\n", tag()); + logerror("Warning! No port CA2 write handler. Previous value has been lost!\n"); } m_out_ca2_needs_pulled = true; @@ -389,7 +381,7 @@ void pia6821_device::set_out_cb2(int data) { if (m_out_cb2_needs_pulled) { - logerror("PIA #%s: Warning! No port CB2 write handler. Previous value has been lost!\n", tag()); + logerror("Warning! No port CB2 write handler. Previous value has been lost!\n"); } m_out_cb2_needs_pulled = true; @@ -424,7 +416,7 @@ uint8_t pia6821_device::port_a_r() } } - LOG("PIA #%s: port A read = %02X\n", tag(), ret); + LOG("PIA port A read = %02X\n", ret); return ret; } @@ -438,7 +430,7 @@ uint8_t pia6821_device::ddr_a_r() { uint8_t ret = m_ddr_a; - LOG("PIA #%s: DDR A read = %02X\n", tag(), ret); + LOG("PIA DDR A read = %02X\n", ret); return ret; } @@ -466,7 +458,7 @@ uint8_t pia6821_device::port_b_r() m_irq_b2 = false; update_interrupts(); - LOG("PIA #%s: port B read = %02X\n", tag(), ret); + LOG("PIA port B read = %02X\n", ret); return ret; } @@ -480,7 +472,7 @@ uint8_t pia6821_device::ddr_b_r() { uint8_t ret = m_ddr_b; - LOG("PIA #%s: DDR B read = %02X\n", tag(), ret); + LOG("PIA DDR B read = %02X\n", ret); return ret; } @@ -501,7 +493,7 @@ uint8_t pia6821_device::control_a_r() } else if(!m_logged_ca1_not_connected && (!m_in_ca1_pushed)) { - logerror("PIA #%s: Warning! No CA1 read handler. Assuming pin not connected\n", tag()); + logerror("Warning! No CA1 read handler. Assuming pin not connected\n"); m_logged_ca1_not_connected = true; } @@ -511,7 +503,7 @@ uint8_t pia6821_device::control_a_r() } else if ( !m_logged_ca2_not_connected && c2_input(m_ctl_a) && !m_in_ca2_pushed) { - logerror("PIA #%s: Warning! No CA2 read handler. Assuming pin not connected\n", tag()); + logerror("Warning! No CA2 read handler. Assuming pin not connected\n"); m_logged_ca2_not_connected = true; } @@ -529,7 +521,7 @@ uint8_t pia6821_device::control_a_r() ret |= PIA_IRQ2; } - LOG("PIA #%s: control A read = %02X\n", tag(), ret); + LOG("PIA control A read = %02X\n", ret); return ret; } @@ -550,13 +542,13 @@ uint8_t pia6821_device::control_b_r() } else if(!m_logged_cb1_not_connected && !m_in_cb1_pushed) { - logerror("PIA #%s: Error! no CB1 read handler. Three-state pin is undefined\n", tag()); + logerror("Error! no CB1 read handler. Three-state pin is undefined\n"); m_logged_cb1_not_connected = true; } if(!m_logged_cb2_not_connected && c2_input(m_ctl_b) && !m_in_cb2_pushed) { - logerror("PIA #%s: Error! Three-state pin is undefined\n", tag()); + logerror("Error! Three-state pin is undefined\n"); m_logged_cb2_not_connected = true; } @@ -574,7 +566,7 @@ uint8_t pia6821_device::control_b_r() ret |= PIA_IRQ2; } - LOG("PIA #%s: control B read = %02X\n", tag(), ret); + LOG("PIA control B read = %02X\n", ret); return ret; } @@ -636,7 +628,7 @@ void pia6821_device::send_to_out_a_func(const char* message) // input pins are pulled high uint8_t data = get_out_a_value(); - LOG("PIA #%s: %s = %02X\n", tag(), message, data); + LOG("PIA %s = %02X\n", message, data); if(!m_out_a_handler.isnull()) { @@ -646,7 +638,7 @@ void pia6821_device::send_to_out_a_func(const char* message) { if(m_out_a_needs_pulled) { - logerror("PIA #%s: Warning! No port A write handler. Previous value has been lost!\n", tag()); + logerror("Warning! No port A write handler. Previous value has been lost!\n"); } m_out_a_needs_pulled = true; @@ -663,7 +655,7 @@ void pia6821_device::send_to_out_b_func(const char* message) // input pins are high-impedance - we just send them as zeros for backwards compatibility uint8_t data = get_out_b_value(); - LOG("PIA #%s: %s = %02X\n", tag(), message, data); + LOG("PIA %s = %02X\n", message, data); if(!m_out_b_handler.isnull()) { @@ -673,7 +665,7 @@ void pia6821_device::send_to_out_b_func(const char* message) { if(m_out_b_needs_pulled) { - logerror("PIA #%s: Warning! No port B write handler. Previous value has been lost!\n", tag()); + logerror("Warning! No port B write handler. Previous value has been lost!\n"); } m_out_b_needs_pulled = true; @@ -702,15 +694,15 @@ void pia6821_device::ddr_a_w(uint8_t data) { if(data == 0x00) { - LOG("PIA #%s: DDR A write = %02X (input mode)\n", tag(), data); + LOGSETUP("PIA DDR A write = %02X (input mode)\n", data); } else if(data == 0xff) { - LOG("PIA #%s: DDR A write = %02X (output mode)\n", tag(), data); + LOGSETUP("PIA DDR A write = %02X (output mode)\n", data); } else { - LOG("PIA #%s: DDR A write = %02X (mixed mode)\n", tag(), data); + LOGSETUP("PIA DDR A write = %02X (mixed mode)\n", data); } if(m_ddr_a != data) @@ -757,15 +749,15 @@ void pia6821_device::ddr_b_w(uint8_t data) { if (data == 0x00) { - LOG("PIA #%s: DDR B write = %02X (input mode)\n", tag(), data); + LOGSETUP("PIA DDR B write = %02X (input mode)\n", data); } else if (data == 0xff) { - LOG("PIA #%s: DDR B write = %02X (output mode)\n", tag(), data); + LOGSETUP("PIA DDR B write = %02X (output mode)\n", data); } else { - LOG("PIA #%s: DDR B write = %02X (mixed mode)\n", tag(), data); + LOGSETUP("PIA DDR B write = %02X (mixed mode)\n", data); } if(m_ddr_b != data) @@ -787,7 +779,7 @@ void pia6821_device::control_a_w(uint8_t data) // bit 7 and 6 are read only data &= 0x3f; - LOG("PIA #%s: control A write = %02X\n", tag(), data); + LOGSETUP("PIA control A write = %02X\n", data); // update the control register m_ctl_a = data; @@ -827,7 +819,7 @@ void pia6821_device::control_b_w(uint8_t data) // bit 7 and 6 are read only data &= 0x3f; - LOG("PIA #%s: control B write = %02X\n", tag(), data); + LOGSETUP("PIA control B write = %02X\n", data); // update the control register m_ctl_b = data; @@ -900,7 +892,7 @@ void pia6821_device::set_a_input(uint8_t data, uint8_t z_mask) { assert_always(m_in_a_handler.isnull(), "pia6821_porta_w() called when in_a_func implemented"); - LOG("PIA #%s: set input port A = %02X\n", tag(), data); + LOG("Set PIA input port A = %02X\n", data); m_in_a = data; m_port_a_z_mask = z_mask; @@ -936,12 +928,12 @@ uint8_t pia6821_device::a_output() WRITE_LINE_MEMBER( pia6821_device::ca1_w ) { - LOGCA1("PIA #%s: set input CA1 = %d\n", tag(), state); + LOGCA1("Set PIA input CA1 = %d\n", state); // the new state has caused a transition if((m_in_ca1 != state) && ((state && c1_low_to_high(m_ctl_a)) || (!state && c1_high_to_low(m_ctl_a)))) { - LOGCA1("PIA #%s: CA1 triggering\n", tag()); + LOGCA1("CA1 triggering\n"); // mark the IRQ m_irq_a1 = true; @@ -968,12 +960,12 @@ WRITE_LINE_MEMBER( pia6821_device::ca1_w ) WRITE_LINE_MEMBER( pia6821_device::ca2_w ) { - LOG("PIA #%s: set input CA2 = %d\n", tag(), state); + LOG("Set PIA input CA2 = %d\n", state); // if input mode and the new state has caused a transition if(c2_input(m_ctl_a) && (m_in_ca2 != state) && ((state && c2_low_to_high(m_ctl_a)) || (!state && c2_high_to_low(m_ctl_a)))) { - LOG("PIA #%s: CA2 triggering\n", tag()); + LOG("CA2 triggering\n"); // mark the IRQ m_irq_a2 = true; @@ -1023,7 +1015,7 @@ void pia6821_device::portb_w(uint8_t data) { assert_always(m_in_b_handler.isnull(), "pia_set_input_b() called when in_b_func implemented"); - LOG("PIA #%s: set input port B = %02X\n", tag(), data); + LOG("Set PIA input port B = %02X\n", data); m_in_b = data; m_in_b_pushed = true; @@ -1048,12 +1040,12 @@ uint8_t pia6821_device::b_output() WRITE_LINE_MEMBER( pia6821_device::cb1_w ) { - LOG("PIA #%s: set input CB1 = %d\n", tag(), state); + LOG("Set PIA input CB1 = %d\n", state); // the new state has caused a transition if((m_in_cb1 != state) && ((state && c1_low_to_high(m_ctl_b)) || (!state && c1_high_to_low(m_ctl_b)))) { - LOG("PIA #%s: CB1 triggering\n", tag()); + LOG("CB1 triggering\n"); // mark the IRQ m_irq_b1 = 1; @@ -1079,14 +1071,14 @@ WRITE_LINE_MEMBER( pia6821_device::cb1_w ) WRITE_LINE_MEMBER( pia6821_device::cb2_w ) { - LOG("PIA #%s: set input CB2 = %d\n", tag(), state); + LOG("Set PIA input CB2 = %d\n", state); // if input mode and the new state has caused a transition if (c2_input(m_ctl_b) && (m_in_cb2 != state) && ((state && c2_low_to_high(m_ctl_b)) || (!state && c2_high_to_low(m_ctl_b)))) { - LOG("PIA #%s: CB2 triggering\n", tag()); + LOG("CB2 triggering\n"); // mark the IRQ m_irq_b2 = 1; diff --git a/src/devices/sound/namco.cpp b/src/devices/sound/namco.cpp index 42427ad4573..363b03d21f0 100644 --- a/src/devices/sound/namco.cpp +++ b/src/devices/sound/namco.cpp @@ -88,33 +88,20 @@ namco_cus30_device::namco_cus30_device(const machine_config &mconfig, const char void namco_audio_device::device_start() { sound_channel *voice; - int clock_multiple; /* extract globals from the interface */ m_last_channel = m_channel_list + m_voices; m_soundregs = auto_alloc_array_clear(machine(), uint8_t, 0x400); - /* adjust internal clock */ - m_namco_clock = clock(); - for (clock_multiple = 0; m_namco_clock < INTERNAL_RATE; clock_multiple++) - m_namco_clock *= 2; - - m_f_fracbits = clock_multiple + 15; - - /* adjust output clock */ - m_sample_rate = m_namco_clock; - - logerror("Namco: freq fractional bits = %d: internal freq = %d, output freq = %d\n", m_f_fracbits, m_namco_clock, m_sample_rate); - /* build the waveform table */ build_decoded_waveform(m_wave_ptr); /* get stream channels */ if (m_stereo) - m_stream = machine().sound().stream_alloc(*this, 0, 2, m_sample_rate); + m_stream = machine().sound().stream_alloc(*this, 0, 2, 192000); else - m_stream = machine().sound().stream_alloc(*this, 0, 1, m_sample_rate); + m_stream = machine().sound().stream_alloc(*this, 0, 1, 192000); /* start with sound enabled, many games don't have a sound enable register */ m_sound_enable = 1; @@ -158,6 +145,25 @@ void namco_audio_device::device_start() } +void namco_audio_device::device_clock_changed() +{ + int clock_multiple; + + /* adjust internal clock */ + m_namco_clock = clock(); + for (clock_multiple = 0; m_namco_clock < INTERNAL_RATE; clock_multiple++) + m_namco_clock *= 2; + + m_f_fracbits = clock_multiple + 15; + + /* adjust output clock */ + m_sample_rate = m_namco_clock; + + logerror("Namco: freq fractional bits = %d: internal freq = %d, output freq = %d\n", m_f_fracbits, m_namco_clock, m_sample_rate); + + m_stream->set_sample_rate(m_sample_rate); +} + /* update the decoded waveform data */ void namco_audio_device::update_namco_waveform(int offset, uint8_t data) diff --git a/src/devices/sound/namco.h b/src/devices/sound/namco.h index 0bb8a614300..82df64bdc24 100644 --- a/src/devices/sound/namco.h +++ b/src/devices/sound/namco.h @@ -43,6 +43,7 @@ protected: // device-level overrides virtual void device_start() override; + virtual void device_clock_changed() override; // internal state diff --git a/src/devices/sound/okim6258.cpp b/src/devices/sound/okim6258.cpp index ac82ea267d9..491229a4e81 100644 --- a/src/devices/sound/okim6258.cpp +++ b/src/devices/sound/okim6258.cpp @@ -50,8 +50,7 @@ okim6258_device::okim6258_device(const machine_config &mconfig, const char *tag, : device_t(mconfig, OKIM6258, tag, owner, clock), device_sound_interface(mconfig, *this), m_status(0), - m_master_clock(0), - m_divider(0), + m_divider(512), m_adpcm_type(0), m_data_in(0), m_nibble_shift(0), @@ -112,8 +111,6 @@ void okim6258_device::device_start() { compute_tables(); - m_master_clock = clock(); - m_divider = dividers[m_start_divider]; m_stream = stream_alloc(0, 1, clock()/m_divider); @@ -189,7 +186,6 @@ void okim6258_device::sound_stream_update(sound_stream &stream, stream_sample_t void okim6258_device::state_save_register() { save_item(NAME(m_status)); - save_item(NAME(m_master_clock)); save_item(NAME(m_divider)); save_item(NAME(m_data_in)); save_item(NAME(m_nibble_shift)); @@ -231,10 +227,8 @@ int16_t okim6258_device::clock_adpcm(uint8_t nibble) void okim6258_device::set_divider(int val) { - int divider = dividers[val]; - m_divider = dividers[val]; - m_stream->set_sample_rate(m_master_clock / divider); + notify_clock_changed(); } @@ -244,10 +238,9 @@ void okim6258_device::set_divider(int val) ***********************************************************************************************/ -void okim6258_device::set_clock(int val) +void okim6258_device::device_clock_changed() { - m_master_clock = val; - m_stream->set_sample_rate(m_master_clock / m_divider); + m_stream->set_sample_rate(clock() / m_divider); } @@ -259,7 +252,7 @@ void okim6258_device::set_clock(int val) int okim6258_device::get_vclk() { - return (m_master_clock / m_divider); + return (clock() / m_divider); } diff --git a/src/devices/sound/okim6258.h b/src/devices/sound/okim6258.h index 65313d8480d..ebaa9ed1559 100644 --- a/src/devices/sound/okim6258.h +++ b/src/devices/sound/okim6258.h @@ -58,13 +58,13 @@ public: DECLARE_WRITE8_MEMBER( ctrl_w ); void set_divider(int val); - void set_clock(int val); int get_vclk(); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_clock_changed() override; // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; @@ -75,7 +75,6 @@ private: uint8_t m_status; - uint32_t m_master_clock; /* master clock frequency */ uint32_t m_start_divider; uint32_t m_divider; /* master clock divider */ uint8_t m_adpcm_type; /* 3/4 bit ADPCM select */ diff --git a/src/devices/sound/okim6376.cpp b/src/devices/sound/okim6376.cpp index 17adf11b49f..0446cf50eb4 100644 --- a/src/devices/sound/okim6376.cpp +++ b/src/devices/sound/okim6376.cpp @@ -120,8 +120,7 @@ okim6376_device::okim6376_device(const machine_config &mconfig, const char *tag, m_latch(0), //m_stage[OKIM6376_VOICES], m_stream(nullptr), - m_master_clock(0), - m_divisor(0), + m_divisor(8), m_channel(0), m_nar(0), m_nartimer(0), @@ -148,7 +147,6 @@ void okim6376_device::device_start() m_stage[0] = 0; m_stage[1] = 0; m_latch = 0; - m_master_clock = clock(); m_divisor = divisor_table[0]; m_nar = 1; m_nartimer = 0; @@ -359,7 +357,7 @@ void okim6376_device::generate_adpcm(struct ADPCMVoice *voice, int16_t *buffer, void okim6376_device::postload() { - set_frequency(m_master_clock); + notify_clock_changed(); } void okim6376_device::adpcm_state_save_register(struct ADPCMVoice *voice, int index) @@ -395,13 +393,11 @@ void okim6376_device::okim6376_state_save_register() save_item(NAME(m_st_update)); save_item(NAME(m_ch2)); save_item(NAME(m_ch2_update)); - save_item(NAME(m_master_clock)); } -void okim6376_device::set_frequency(int frequency) +void okim6376_device::device_clock_changed() { - m_master_clock = frequency; - m_stream->set_sample_rate(m_master_clock / m_divisor); + m_stream->set_sample_rate(clock() / m_divisor); } diff --git a/src/devices/sound/okim6376.h b/src/devices/sound/okim6376.h index 7fe83bbf5a5..52760be23ca 100644 --- a/src/devices/sound/okim6376.h +++ b/src/devices/sound/okim6376.h @@ -21,12 +21,11 @@ public: DECLARE_READ_LINE_MEMBER( busy_r ); DECLARE_READ_LINE_MEMBER( nar_r ); - void set_frequency(int frequency); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_clock_changed() override; // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; @@ -58,7 +57,6 @@ private: int32_t m_latch; /* Command data is held before transferring to either channel */ uint8_t m_stage[OKIM6376_VOICES];/* If a sample is playing, flag that we have a command staged */ sound_stream *m_stream; /* which stream are we playing on? */ - uint32_t m_master_clock; /* master clock frequency */ uint8_t m_divisor; /* can be 8,10,16, and is read out of ROM data */ uint8_t m_channel; uint8_t m_nar; /* Next Address Ready */ diff --git a/src/devices/sound/tms5110.cpp b/src/devices/sound/tms5110.cpp index 09334d0f4bd..5f7ee0bddb0 100644 --- a/src/devices/sound/tms5110.cpp +++ b/src/devices/sound/tms5110.cpp @@ -1249,14 +1249,12 @@ void tms5110_device::sound_stream_update(sound_stream &stream, stream_sample_t * /****************************************************************************** tms5110_set_frequency -- adjusts the playback frequency - TODO: kill this function; we should be adjusting the tms51xx device clock itself, - not setting it here! ******************************************************************************/ -void tms5110_device::set_frequency(int frequency) +void tms5110_device::device_clock_changed() { - m_stream->set_sample_rate(frequency / 80); + m_stream->set_sample_rate(clock() / 80); } diff --git a/src/devices/sound/tms5110.h b/src/devices/sound/tms5110.h index 76f5c38ed51..89daa0637a7 100644 --- a/src/devices/sound/tms5110.h +++ b/src/devices/sound/tms5110.h @@ -65,14 +65,13 @@ public: // it is not related at all to the speech generation and conflicts with the new ROM controller interface. DECLARE_READ_LINE_MEMBER( romclk_hack_r ); - void set_frequency(int frequency); - protected: tms5110_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int variant); // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_clock_changed() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; diff --git a/src/devices/sound/tms5220.cpp b/src/devices/sound/tms5220.cpp index e538b630f95..32052853a2a 100644 --- a/src/devices/sound/tms5220.cpp +++ b/src/devices/sound/tms5220.cpp @@ -1674,7 +1674,6 @@ void tms5220_device::device_start() default: fatalerror("Unknown variant in tms5220_set_variant\n"); } - m_clock = clock(); /* resolve callbacks */ m_irq_handler.resolve(); @@ -1858,7 +1857,7 @@ WRITE_LINE_MEMBER( tms5220_device::rsq_w ) m_io_ready = 0; update_ready_state(); /* How long does /READY stay inactive, when /RS is pulled low? I believe its almost always ~16 clocks (25 usec at 800khz as shown on the datasheet) */ - m_timer_io_ready->adjust(attotime::from_hz(clock()/16), 1); // this should take around 10-16 (closer to ~11?) cycles to complete + m_timer_io_ready->adjust(clocks_to_attotime(16), 1); // this should take around 10-16 (closer to ~11?) cycles to complete } } } @@ -1920,7 +1919,7 @@ WRITE_LINE_MEMBER( tms5220_device::wsq_w ) SET RATE (5220C and CD2501ECD only): ? cycles (probably ~16) */ // TODO: actually HANDLE the timing differences! currently just assuming always 16 cycles - m_timer_io_ready->adjust(attotime::from_hz(clock()/16), 1); // this should take around 10-16 (closer to ~15) cycles to complete for fifo writes, TODO: but actually depends on what command is written if in command mode + m_timer_io_ready->adjust(clocks_to_attotime(16), 1); // this should take around 10-16 (closer to ~15) cycles to complete for fifo writes, TODO: but actually depends on what command is written if in command mode } } } @@ -1979,7 +1978,7 @@ WRITE8_MEMBER( tms5220_device::combined_rsq_wsq_w ) SET RATE (5220C and CD2501ECD only): ? cycles (probably ~16) */ // TODO: actually HANDLE the timing differences! currently just assuming always 16 cycles - m_timer_io_ready->adjust(attotime::from_hz(clock()/16), 1); // this should take around 10-16 (closer to ~15) cycles to complete for fifo writes, TODO: but actually depends on what command is written if in command mode + m_timer_io_ready->adjust(clocks_to_attotime(16), 1); // this should take around 10-16 (closer to ~15) cycles to complete for fifo writes, TODO: but actually depends on what command is written if in command mode return; case 1: // /RS active, /WS not /* check for falling or rising edge */ @@ -1992,7 +1991,7 @@ WRITE8_MEMBER( tms5220_device::combined_rsq_wsq_w ) m_io_ready = 0; update_ready_state(); /* How long does /READY stay inactive, when /RS is pulled low? I believe its almost always ~16 clocks (25 usec at 800khz as shown on the datasheet) */ - m_timer_io_ready->adjust(attotime::from_hz(clock()/16), 1); // this should take around 10-16 (closer to ~11?) cycles to complete + m_timer_io_ready->adjust(clocks_to_attotime(16), 1); // this should take around 10-16 (closer to ~11?) cycles to complete return; } } @@ -2081,18 +2080,15 @@ READ_LINE_MEMBER( tms5220_device::readyq_r ) /********************************************************************************************** - tms5220_time_to_ready -- return the time in seconds until the ready line is asserted + tms5220_time_to_ready -- return the time until the ready line is asserted ***********************************************************************************************/ -double tms5220_device::time_to_ready() +attotime tms5220_device::time_to_ready() { - double cycles; - /* bring up to date first */ m_stream->update(); - cycles = cycles_to_ready(); - return cycles * 80.0 / m_clock; + return clocks_to_attotime(cycles_to_ready() * 80); } @@ -2151,10 +2147,9 @@ void tms5220_device::sound_stream_update(sound_stream &stream, stream_sample_t * ***********************************************************************************************/ -void tms5220_device::set_frequency(int frequency) +void tms5220_device::device_clock_changed() { - m_stream->set_sample_rate(frequency / 80); - m_clock = frequency; + m_stream->set_sample_rate(clock() / 80); } diff --git a/src/devices/sound/tms5220.h b/src/devices/sound/tms5220.h index 96f5dc9b738..9f3c93eef75 100644 --- a/src/devices/sound/tms5220.h +++ b/src/devices/sound/tms5220.h @@ -87,9 +87,7 @@ public: READ_LINE_MEMBER( readyq_r ); READ_LINE_MEMBER( intq_r ); - double time_to_ready(); - - void set_frequency(int frequency); + attotime time_to_ready(); protected: tms5220_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int variant); @@ -97,6 +95,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_clock_changed() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -248,7 +247,6 @@ private: uint8_t m_write_latch; sound_stream *m_stream; - int m_clock; emu_timer *m_timer_io_ready; /* callbacks */ diff --git a/src/devices/sound/ym2151.cpp b/src/devices/sound/ym2151.cpp index a86227af86b..3e5df2b1914 100644 --- a/src/devices/sound/ym2151.cpp +++ b/src/devices/sound/ym2151.cpp @@ -382,25 +382,28 @@ void ym2151_device::init_tables() } } + /* calculate noise periods table */ + for (int i=0; i<32; i++) + { + int j = (i!=31 ? i : 30); /* rate 30 and 31 are the same */ + j = 32-j; + j = (65536.0 / (double)(j*32.0)); /* number of samples per one shift of the shift register */ + noise_tab[i] = j * 64; /* number of chip clock cycles per one shift */ + } +} + +void ym2151_device::calculate_timers() +{ /* calculate timers' deltas */ for (int i=0; i<1024; i++) { /* ASG 980324: changed to compute both tim_A_tab and timer_A_time */ - timer_A_time[i] = attotime::from_hz(clock()) * (64 * (1024 - i)); + timer_A_time[i] = clocks_to_attotime(64 * (1024 - i)); } for (int i=0; i<256; i++) { /* ASG 980324: changed to compute both tim_B_tab and timer_B_time */ - timer_B_time[i] = attotime::from_hz(clock()) * (1024 * (256 - i)); - } - - /* calculate noise periods table */ - for (int i=0; i<32; i++) - { - int j = (i!=31 ? i : 30); /* rate 30 and 31 are the same */ - j = 32-j; - j = (65536.0 / (double)(j*32.0)); /* number of samples per one shift of the shift register */ - noise_tab[i] = j * 64; /* number of chip clock cycles per one shift */ + timer_B_time[i] = clocks_to_attotime(1024 * (256 - i)); } } @@ -1020,6 +1023,12 @@ void ym2151_device::device_start() save_item(NAME(connect)); } +void ym2151_device::device_clock_changed() +{ + m_stream->set_sample_rate(clock() / 64); + calculate_timers(); +} + int ym2151_device::op_calc(YM2151Operator * OP, unsigned int env, signed int pm) { diff --git a/src/devices/sound/ym2151.h b/src/devices/sound/ym2151.h index 57b1efb80eb..9ca2f41f4e4 100644 --- a/src/devices/sound/ym2151.h +++ b/src/devices/sound/ym2151.h @@ -81,6 +81,7 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void device_post_load() override; + virtual void device_clock_changed() override; // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; @@ -259,6 +260,7 @@ private: devcb_write8 m_portwritehandler; void init_tables(); + void calculate_timers(); void envelope_KONKOFF(YM2151Operator * op, int v); void set_connect(YM2151Operator *om1, int cha, int v); void advance(); diff --git a/src/devices/sound/ymf271.cpp b/src/devices/sound/ymf271.cpp index aeae81a9f49..f36cfd83972 100644 --- a/src/devices/sound/ymf271.cpp +++ b/src/devices/sound/ymf271.cpp @@ -1276,7 +1276,7 @@ void ymf271_device::device_timer(emu_timer &timer, device_timer_id id, int param } // reload timer - m_timA->adjust(attotime::from_hz(m_clock) * (384 * 4 * (256 - m_timerA)), 0); + m_timA->adjust(clocks_to_attotime(384 * 4 * (256 - m_timerA)), 0); break; case 1: @@ -1292,7 +1292,7 @@ void ymf271_device::device_timer(emu_timer &timer, device_timer_id id, int param } // reload timer - m_timB->adjust(attotime::from_hz(m_clock) * (384 * 16 * (256 - m_timerB)), 0); + m_timB->adjust(clocks_to_attotime(384 * 16 * (256 - m_timerB)), 0); break; default: @@ -1357,14 +1357,14 @@ void ymf271_device::ymf271_write_timer(uint8_t address, uint8_t data) // timer A load if (~m_enable & data & 1) { - attotime period = attotime::from_hz(m_clock) * (384 * 4 * (256 - m_timerA)); + attotime period = clocks_to_attotime(384 * 4 * (256 - m_timerA)); m_timA->adjust((data & 1) ? period : attotime::never, 0); } // timer B load if (~m_enable & data & 2) { - attotime period = attotime::from_hz(m_clock) * (384 * 16 * (256 - m_timerB)); + attotime period = clocks_to_attotime(384 * 16 * (256 - m_timerB)); m_timB->adjust((data & 2) ? period : attotime::never, 0); } @@ -1603,20 +1603,23 @@ void ymf271_device::init_tables() double db = 0.75 * (double)i; m_lut_total_level[i] = (int)(65536.0 / pow(10.0, db / 20.0)); } +} +void ymf271_device::calculate_clock_correction() +{ // timing may use a non-standard XTAL - double clock_correction = (double)(STD_CLOCK) / (double)(m_clock); - for (i = 0; i < 256; i++) + double clock_correction = (clock() != 0) ? (double)(STD_CLOCK) / (double)clock() : 0.0; + for (int i = 0; i < 256; i++) { m_lut_lfo[i] = LFO_frequency_table[i] * clock_correction; } - for (i = 0; i < 64; i++) + for (int i = 0; i < 64; i++) { // attack/release rate in number of samples m_lut_ar[i] = (ARTime[i] * clock_correction * 44100.0) / 1000.0; } - for (i = 0; i < 64; i++) + for (int i = 0; i < 64; i++) { // decay rate in number of samples m_lut_dc[i] = (DCTime[i] * clock_correction * 44100.0) / 1000.0; @@ -1701,8 +1704,6 @@ void ymf271_device::init_state() void ymf271_device::device_start() { - m_clock = clock(); - m_timA = timer_alloc(0); m_timB = timer_alloc(1); @@ -1744,7 +1745,18 @@ void ymf271_device::device_reset() m_irq_handler(0); } -DEFINE_DEVICE_TYPE(YMF271, ymf271_device, "ymf271", "Yamaha YMF271") +//------------------------------------------------- +// device_clock_changed - called whenever the +// clock is updated +//------------------------------------------------- + +void ymf271_device::device_clock_changed() +{ + m_stream->set_sample_rate(clock() / 384); + calculate_clock_correction(); +} + +DEFINE_DEVICE_TYPE(YMF271, ymf271_device, "ymf271", "Yamaha YMF271 OPX") ymf271_device::ymf271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, YMF271, tag, owner, clock) @@ -1759,7 +1771,6 @@ ymf271_device::ymf271_device(const machine_config &mconfig, const char *tag, dev , m_ext_readlatch(0) , m_mem_base(*this, DEVICE_SELF) , m_mem_size(0) - , m_clock(0) , m_timA(nullptr) , m_timB(nullptr) , m_stream(nullptr) diff --git a/src/devices/sound/ymf271.h b/src/devices/sound/ymf271.h index aab5763f597..b9302f8f082 100644 --- a/src/devices/sound/ymf271.h +++ b/src/devices/sound/ymf271.h @@ -33,6 +33,7 @@ protected: virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_clock_changed() override; // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; @@ -98,6 +99,7 @@ private: void init_state(); void init_tables(); + void calculate_clock_correction(); void calculate_step(YMF271Slot *slot); void update_envelope(YMF271Slot *slot); void init_envelope(YMF271Slot *slot); @@ -147,7 +149,6 @@ private: optional_region_ptr<uint8_t> m_mem_base; uint32_t m_mem_size; - uint32_t m_clock; emu_timer *m_timA; emu_timer *m_timB; diff --git a/src/devices/sound/ymz280b.cpp b/src/devices/sound/ymz280b.cpp index 5bbbc07205b..c9523dcf2b2 100644 --- a/src/devices/sound/ymz280b.cpp +++ b/src/devices/sound/ymz280b.cpp @@ -687,6 +687,13 @@ void ymz280b_device::device_timer(emu_timer &timer, device_timer_id id, int para } +void ymz280b_device::device_clock_changed() +{ + m_master_clock = (double)clock() / 384.0; + m_stream->set_sample_rate(INTERNAL_SAMPLE_RATE); +} + + /********************************************************************************************** write_to_register -- handle a write to the current register diff --git a/src/devices/sound/ymz280b.h b/src/devices/sound/ymz280b.h index 7891fd21807..0cba025384f 100644 --- a/src/devices/sound/ymz280b.h +++ b/src/devices/sound/ymz280b.h @@ -43,6 +43,7 @@ protected: virtual void device_post_load() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_clock_changed() override; // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; diff --git a/src/emu/debug/debugcpu.cpp b/src/emu/debug/debugcpu.cpp index 084372a4b25..012dd917a40 100644 --- a/src/emu/debug/debugcpu.cpp +++ b/src/emu/debug/debugcpu.cpp @@ -705,7 +705,7 @@ u64 debugger_cpu::read_opcode(address_space &space, offs_t address, int size) { device_memory_interface &memory = space.device().memory(); - u64 result = ~u64(0) & (~u64(0) >> (64 - 8*size)), result2; + u64 result = ~u64(0) & (~u64(0) >> (64 - 8*size)); /* keep in logical range */ address &= space.logbytemask(); @@ -729,104 +729,25 @@ u64 debugger_cpu::read_opcode(address_space &space, offs_t address, int size) /* keep in physical range */ address &= space.bytemask(); - offs_t addrxor = 0; - switch (space.data_width() / 8 * 10 + size) - { - /* dump opcodes in bytes from a byte-sized bus */ - case 11: - break; - - /* dump opcodes in bytes from a word-sized bus */ - case 21: - addrxor = (space.endianness() == ENDIANNESS_LITTLE) ? BYTE_XOR_LE(0) : BYTE_XOR_BE(0); - break; - - /* dump opcodes in words from a word-sized bus */ - case 22: - break; - - /* dump opcodes in bytes from a dword-sized bus */ - case 41: - addrxor = (space.endianness() == ENDIANNESS_LITTLE) ? BYTE4_XOR_LE(0) : BYTE4_XOR_BE(0); - break; - - /* dump opcodes in words from a dword-sized bus */ - case 42: - addrxor = (space.endianness() == ENDIANNESS_LITTLE) ? WORD_XOR_LE(0) : WORD_XOR_BE(0); - break; - - /* dump opcodes in dwords from a dword-sized bus */ - case 44: - break; - - /* dump opcodes in bytes from a qword-sized bus */ - case 81: - addrxor = (space.endianness() == ENDIANNESS_LITTLE) ? BYTE8_XOR_LE(0) : BYTE8_XOR_BE(0); - break; - - /* dump opcodes in words from a qword-sized bus */ - case 82: - addrxor = (space.endianness() == ENDIANNESS_LITTLE) ? WORD2_XOR_LE(0) : WORD2_XOR_BE(0); - break; - - /* dump opcodes in dwords from a qword-sized bus */ - case 84: - addrxor = (space.endianness() == ENDIANNESS_LITTLE) ? DWORD_XOR_LE(0) : DWORD_XOR_BE(0); - break; - - /* dump opcodes in qwords from a qword-sized bus */ - case 88: - case 86: // sharc case, 48-bits opcodes - break; - - default: - fatalerror("read_opcode: unknown type = %d\n", space.data_width() / 8 * 10 + size); - } /* switch off the size and handle unaligned accesses */ switch (size) { case 1: - result = space.direct().read_byte(address, addrxor); + result = space.read_byte(address); break; case 2: - result = space.direct().read_word(address & ~1, addrxor); - if (!WORD_ALIGNED(address)) - { - result2 = space.direct().read_word((address & ~1) + 2, addrxor); - if (space.endianness() == ENDIANNESS_LITTLE) - result = (result >> (8 * (address & 1))) | (result2 << (16 - 8 * (address & 1))); - else - result = (result << (8 * (address & 1))) | (result2 >> (16 - 8 * (address & 1))); - result &= 0xffff; - } + result = space.read_word_unaligned(address); break; case 4: - result = space.direct().read_dword(address & ~3, addrxor); - if (!DWORD_ALIGNED(address)) - { - result2 = space.direct().read_dword((address & ~3) + 4, addrxor); - if (space.endianness() == ENDIANNESS_LITTLE) - result = (result >> (8 * (address & 3))) | (result2 << (32 - 8 * (address & 3))); - else - result = (result << (8 * (address & 3))) | (result2 >> (32 - 8 * (address & 3))); - result &= 0xffffffff; - } + result = space.read_dword_unaligned(address); break; - case 8: case 6: - result = space.direct().read_qword(address & ~7, addrxor); - if (!QWORD_ALIGNED(address)) - { - result2 = space.direct().read_qword((address & ~7) + 8, addrxor); - if (space.endianness() == ENDIANNESS_LITTLE) - result = (result >> (8 * (address & 7))) | (result2 << (64 - 8 * (address & 7))); - else - result = (result << (8 * (address & 7))) | (result2 >> (64 - 8 * (address & 7))); - } + case 8: + result = space.read_qword_unaligned(address); break; } diff --git a/src/emu/debug/dvdisasm.cpp b/src/emu/debug/dvdisasm.cpp index c06dd6cfac6..1a8331f28aa 100644 --- a/src/emu/debug/dvdisasm.cpp +++ b/src/emu/debug/dvdisasm.cpp @@ -170,8 +170,8 @@ void debug_view_disasm::view_char(int chval) offs_t pc = source.m_space.address_to_byte(source.device()->safe_pcbase()) & source.m_space.logbytemask(); // figure out which row the pc is on - for (unsigned int curline = 0; curline < m_byteaddress.size(); curline++) - if (m_byteaddress[curline] == pc) + for (unsigned int curline = 0; curline < m_dasm.size(); curline++) + if (m_dasm[curline].m_byteaddress == pc) m_cursor.y = curline; break; } @@ -307,25 +307,19 @@ offs_t debug_view_disasm::find_pc_backwards(offs_t targetpc, int numinstrs) // values //------------------------------------------------- -void debug_view_disasm::generate_bytes(offs_t pcbyte, int numbytes, int minbytes, int maxchars, bool encrypted) +std::string debug_view_disasm::generate_bytes(offs_t pcbyte, int numbytes, int granularity, bool encrypted) { const debug_view_disasm_source &source = downcast<const debug_view_disasm_source &>(*m_source); const int char_num = source.m_space.is_octal() ? 3 : 2; - const int base = m_dasm.tellp(); + std::ostringstream ostr; - // output the first value - int offset = 0; - if (maxchars >= char_num * minbytes) - offset += util::stream_format(m_dasm, source.m_space.is_octal() ? "%0*o" : "%0*X", minbytes * char_num, machine().debugger().cpu().read_opcode(source.m_decrypted_space, pcbyte, minbytes)); - - // output subsequent values - int byte; - for (byte = minbytes; byte < numbytes && offset + 1 + char_num * minbytes < maxchars; byte += minbytes) - offset += util::stream_format(m_dasm, source.m_space.is_octal() ? " %0*o" : " %0*X", minbytes * char_num, machine().debugger().cpu().read_opcode(encrypted ? source.m_space : source.m_decrypted_space, pcbyte + byte, minbytes)); + for (int byte = 0; byte < numbytes; byte += granularity) { + if (byte) + ostr << ' '; + util::stream_format(ostr, source.m_space.is_octal() ? "%0*o" : "%0*X", granularity * char_num, machine().debugger().cpu().read_opcode(encrypted ? source.m_space : source.m_decrypted_space, pcbyte + byte, granularity)); + } - // if we ran out of room, indicate more - if ((byte < numbytes) && (byte != minbytes) && (maxchars > 3)) - m_dasm.seekp(base + maxchars - 4) << "..."; + return ostr.str(); } @@ -338,7 +332,6 @@ bool debug_view_disasm::recompute(offs_t pc, int startline, int lines) { auto dis = machine().disable_side_effect(); - util::ovectorstream buffer; bool changed = false; const debug_view_disasm_source &source = downcast<const debug_view_disasm_source &>(*m_source); const int char_num = source.m_space.is_octal() ? 3 : 2; @@ -367,13 +360,11 @@ bool debug_view_disasm::recompute(offs_t pc, int startline, int lines) else m_total.x = m_divider2 + 1; - // allocate address array - m_byteaddress.resize(m_total.y); + // allocate dasm array + m_dasm.resize(m_total.y); - // allocate disassembly buffer - const auto total_bytes = m_total.x * m_total.y; - m_dasm.clear(); - m_dasm.reserve(total_bytes).seekp(total_bytes); + // comparison buffer to detect whether data changed when doing only one line + dasm_line comparison_buffer; // iterate over lines for (int line = 0; line < lines; line++) @@ -383,21 +374,19 @@ bool debug_view_disasm::recompute(offs_t pc, int startline, int lines) // save a copy of the previous line as a backup if we're only doing one line const auto instr = startline + line; - const auto base = instr * m_total.x; - char oldbuf[100]; if (lines == 1) - std::memcpy(oldbuf, &m_dasm.vec()[base], (std::min<std::size_t>)(sizeof(oldbuf), m_total.x)); + comparison_buffer = m_dasm[instr]; // convert back and set the address of this instruction - m_byteaddress[instr] = pcbyte; - m_dasm.clear(); - util::stream_format(m_dasm.seekp(base), + std::ostringstream oadr; + m_dasm[instr].m_byteaddress = pcbyte; + util::stream_format(oadr, source.m_space.is_octal() ? " %0*o " : " %0*X ", source.m_space.logaddrchars()/2*char_num, source.m_space.byte_to_address(pcbyte)); + m_dasm[instr].m_adr = oadr.str(); // make sure we can translate the address, and then disassemble the result - buffer.clear(); - buffer.seekp(0); + std::ostringstream dasm; int numbytes = 0; offs_t physpcbyte = pcbyte; if (source.m_space.device().memory().translate(source.m_space.spacenum(), TRANSLATE_FETCH_DEBUG, physpcbyte)) @@ -412,36 +401,27 @@ bool debug_view_disasm::recompute(offs_t pc, int startline, int lines) } // disassemble the result - pc += numbytes = source.m_disasmintf->disassemble(buffer, pc & source.m_space.logaddrmask(), opbuf, argbuf) & DASMFLAG_LENGTHMASK; + pc += numbytes = source.m_disasmintf->disassemble(dasm, pc & source.m_space.logaddrmask(), opbuf, argbuf) & DASMFLAG_LENGTHMASK; } else - buffer << "<unmapped>"; + dasm << "<unmapped>"; - buffer.put('\0'); + m_dasm[instr].m_dasm = dasm.str(); - // append the disassembly to the buffer - util::stream_format(m_dasm.seekp(base + m_divider1 + 1), "%2$-*1$.*1$s ", m_dasm_width, &buffer.vec()[0]); + // generate the byte views + std::ostringstream bytes_raw; + numbytes = source.m_space.address_to_byte(numbytes) & source.m_space.logbytemask(); + m_dasm[instr].m_rawdata = generate_bytes(pcbyte, numbytes, minbytes, false); + m_dasm[instr].m_encdata = generate_bytes(pcbyte, numbytes, minbytes, true); - // output the right column - if (m_right_column == DASM_RIGHTCOL_RAW || m_right_column == DASM_RIGHTCOL_ENCRYPTED) - { - // get the bytes - numbytes = source.m_space.address_to_byte(numbytes) & source.m_space.logbytemask(); - m_dasm.seekp(base + m_divider2); - generate_bytes(pcbyte, numbytes, minbytes, m_total.x - m_divider2, m_right_column == DASM_RIGHTCOL_ENCRYPTED); - } - else if (m_right_column == DASM_RIGHTCOL_COMMENTS) - { - // get and add the comment, if present - const offs_t comment_address = source.m_space.byte_to_address(m_byteaddress[instr]); - const char *const text = source.device()->debug()->comment_text(comment_address); - if (text != nullptr) - util::stream_format(m_dasm.seekp(base + m_divider2), "// %.*s", m_total.x - m_divider2 - 4, text); - } - m_dasm.put('\0'); + // get and add the comment, if present + const offs_t comment_address = source.m_space.byte_to_address(m_dasm[instr].m_byteaddress); + const char *const text = source.device()->debug()->comment_text(comment_address); + if (text != nullptr) + m_dasm[instr].m_comment = text; // see if the line changed at all - if (lines == 1 && strncmp(oldbuf, &m_dasm.vec()[base], (std::min<std::size_t>)(sizeof(oldbuf), m_total.x)) != 0) + if (lines == 1 && m_dasm[instr] != comparison_buffer) changed = true; } @@ -457,6 +437,35 @@ bool debug_view_disasm::recompute(offs_t pc, int startline, int lines) //------------------------------------------------- +// print - print a string in the disassembly view +//------------------------------------------------- + +void debug_view_disasm::print(int row, std::string text, int start, int end, u8 attrib) +{ + int view_end = end - m_topleft.x; + if (view_end < 0) + return; + + int string_0 = start - m_topleft.x; + if (string_0 >= m_visible.x) + return; + + int view_start = string_0 > 0 ? string_0 : 0; + debug_view_char *dest = &m_viewdata[row * m_visible.x + view_start]; + + if(view_end >= m_visible.x) + view_end = m_visible.x; + + for(int pos = view_start; pos < view_end; pos++) { + int spos = pos - string_0; + if (spos >= int(text.size())) + *dest++ = { ' ', attrib }; + else + *dest++ = { u8(text[spos]), attrib }; + } +} + +//------------------------------------------------- // view_update - update the contents of the // disassembly view //------------------------------------------------- @@ -481,12 +490,12 @@ void debug_view_disasm::view_update() // see if the new result is an address we already have u32 row; - for (row = 0; row < m_byteaddress.size(); row++) - if (m_byteaddress[row] == resultbyte) + for (row = 0; row < m_dasm.size(); row++) + if (m_dasm[row].m_byteaddress == resultbyte) break; // if we didn't find it, or if it's really close to the bottom, recompute - if (row == m_byteaddress.size() || row >= m_total.y - m_visible.y) + if (row == m_dasm.size() || row >= m_total.y - m_visible.y) m_recompute = true; // otherwise, if it's not visible, adjust the view so it is @@ -508,13 +517,13 @@ recompute: if (m_recompute) { // recompute the view - if (!m_byteaddress.empty() && m_last_change_count != source.device()->debug()->comment_change_count()) + if (!m_dasm.empty() && m_last_change_count != source.device()->debug()->comment_change_count()) { // smoosh us against the left column, but not the top row m_topleft.x = 0; // recompute from where we last recomputed! - recompute(source.m_space.byte_to_address(m_byteaddress[0]), 0, m_total.y); + recompute(source.m_space.byte_to_address(m_dasm[0].m_byteaddress), 0, m_total.y); } else { @@ -537,9 +546,9 @@ recompute: for (u32 row = 0; row < m_visible.y; row++) { u32 effrow = m_topleft.y + row; - if (effrow >= m_byteaddress.size()) + if (effrow >= m_dasm.size()) break; - if (pcbyte == m_byteaddress[effrow]) + if (pcbyte == m_dasm[effrow].m_byteaddress) { // see if we changed bool changed = recompute(pc, effrow, 1); @@ -558,25 +567,23 @@ recompute: } // loop over visible rows - debug_view_char *dest = &m_viewdata[0]; for (u32 row = 0; row < m_visible.y; row++) { u32 effrow = m_topleft.y + row; - u32 col = 0; // if this visible row is valid, add it to the buffer u8 attrib = DCA_NORMAL; - if (effrow < m_byteaddress.size()) + if (effrow < m_dasm.size()) { // if we're on the line with the PC, recompute and hilight it - if (pcbyte == m_byteaddress[effrow]) + if (pcbyte == m_dasm[effrow].m_byteaddress) attrib = DCA_CURRENT; // if we're on a line with a breakpoint, tag it changed else { for (device_debug::breakpoint *bp = source.device()->debug()->breakpoint_first(); bp != nullptr; bp = bp->next()) - if (m_byteaddress[effrow] == (source.m_space.address_to_byte(bp->address()) & source.m_space.logbytemask())) + if (m_dasm[effrow].m_byteaddress == (source.m_space.address_to_byte(bp->address()) & source.m_space.logbytemask())) attrib = DCA_CHANGED; } @@ -585,36 +592,25 @@ recompute: attrib |= DCA_SELECTED; // if we've visited this pc, mark it as such - if (source.device()->debug()->track_pc_visited(m_byteaddress[effrow])) + if (source.device()->debug()->track_pc_visited(m_dasm[effrow].m_byteaddress)) attrib |= DCA_VISITED; - // get the effective string - const char *data = &m_dasm.vec()[effrow * m_total.x]; - u32 len = u32(strlen(data)); - - // copy data - u32 effcol = m_topleft.x; - while (col < m_visible.x && effcol < len) - { - dest->byte = data[effcol++]; - dest->attrib = (effcol <= m_divider1 || effcol >= m_divider2) ? (attrib | DCA_ANCILLARY) : attrib; - - // comments are just green for now - maybe they shouldn't even be this? - if (effcol >= m_divider2 && m_right_column == DASM_RIGHTCOL_COMMENTS) - attrib |= DCA_COMMENT; - - dest++; - col++; - } - } - - // fill the rest with blanks - while (col < m_visible.x) - { - dest->byte = ' '; - dest->attrib = (effrow < m_total.y) ? (attrib | DCA_ANCILLARY) : attrib; - dest++; - col++; + print(row, m_dasm[effrow].m_adr, 0, m_divider1, attrib | DCA_ANCILLARY); + print(row, ' ' + m_dasm[effrow].m_dasm, m_divider1, m_divider2, attrib); + + if (m_right_column == DASM_RIGHTCOL_RAW || m_right_column == DASM_RIGHTCOL_ENCRYPTED) { + std::string text = ' ' + (m_right_column == DASM_RIGHTCOL_RAW ? m_dasm[effrow].m_rawdata : m_dasm[effrow].m_encdata); + print(row, text, m_divider2, m_visible.x, attrib | DCA_ANCILLARY); + if(int(text.size()) > m_visible.x - m_divider2) { + int base = m_total.x - 3; + if (base < m_divider2) + base = m_divider2; + print(row, "...", base, m_visible.x, attrib | DCA_ANCILLARY); + } + } else if(!m_dasm[effrow].m_comment.empty()) + print(row, " // " + m_dasm[effrow].m_comment, m_divider2, m_visible.x, attrib | DCA_COMMENT | DCA_ANCILLARY); + else + print(row, "", m_divider2, m_visible.x, attrib | DCA_COMMENT | DCA_ANCILLARY); } } } @@ -628,7 +624,7 @@ recompute: offs_t debug_view_disasm::selected_address() { flush_updates(); - return downcast<const debug_view_disasm_source &>(*m_source).m_space.byte_to_address(m_byteaddress[m_cursor.y]); + return downcast<const debug_view_disasm_source &>(*m_source).m_space.byte_to_address(m_dasm[m_cursor.y].m_byteaddress); } @@ -698,7 +694,7 @@ void debug_view_disasm::set_selected_address(offs_t address) const debug_view_disasm_source &source = downcast<const debug_view_disasm_source &>(*m_source); offs_t byteaddress = source.m_space.address_to_byte(address) & source.m_space.logbytemask(); for (int line = 0; line < m_total.y; line++) - if (m_byteaddress[line] == byteaddress) + if (m_dasm[line].m_byteaddress == byteaddress) { m_cursor.y = line; set_cursor_position(m_cursor); diff --git a/src/emu/debug/dvdisasm.h b/src/emu/debug/dvdisasm.h index b945041676d..85ebd7cfef2 100644 --- a/src/emu/debug/dvdisasm.h +++ b/src/emu/debug/dvdisasm.h @@ -89,11 +89,37 @@ protected: virtual void view_click(const int button, const debug_view_xy& pos) override; private: + // The information of one disassembly line. May become the actual + // external interface at one point + struct dasm_line { + offs_t m_byteaddress; // address of the first byte of the instruction + std::string m_adr; // instruction address as a string + std::string m_dasm; // disassembly + std::string m_rawdata; // textual representation of the instruction values + std::string m_encdata; // textual representation of encrypted instruction values + std::string m_comment; // comment, when present + + bool operator == (const dasm_line &right) const { + return + m_byteaddress == right.m_byteaddress && + m_adr == right.m_adr && + m_dasm == right.m_dasm && + m_rawdata == right.m_rawdata && + m_encdata == right.m_encdata && + m_comment == right.m_comment; + } + + bool operator != (const dasm_line &right) const { + return !(*this == right); + } + }; + // internal helpers void enumerate_sources(); offs_t find_pc_backwards(offs_t targetpc, int numinstrs); - void generate_bytes(offs_t pcbyte, int numbytes, int minbytes, int maxchars, bool encrypted); + std::string generate_bytes(offs_t pcbyte, int numbytes, int granularity, bool encrypted); bool recompute(offs_t pc, int startline, int lines); + void print(int row, std::string text, int start, int end, u8 attrib); // internal state disasm_right_column m_right_column; // right column contents @@ -106,8 +132,7 @@ private: int m_divider1, m_divider2; // left and right divider columns int m_divider3; // comment divider column debug_view_expression m_expression; // expression-related information - std::vector<offs_t> m_byteaddress; // addresses of the instructions - util::ovectorstream m_dasm; // disassembled instructions + std::vector<dasm_line> m_dasm; // disassembled instructions // constants static constexpr int DEFAULT_DASM_LINES = 1000; diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp index 2ef638d461a..92e09ecdbbb 100644 --- a/src/emu/diimage.cpp +++ b/src/emu/diimage.cpp @@ -96,7 +96,8 @@ device_image_interface::device_image_interface(const machine_config &mconfig, de m_create_format(0), m_create_args(nullptr), m_user_loadable(true), - m_is_loading(false) + m_is_loading(false), + m_is_reset_and_loading(false) { } @@ -1217,7 +1218,10 @@ void device_image_interface::reset_and_load(const std::string &path) device().machine().schedule_hard_reset(); // and record the new load - device().machine().options().image_options()[instance_name()] = path; + device().machine().options().image_option(instance_name()).specify(path); + + // record that we're reset and loading + m_is_reset_and_loading = true; } @@ -1301,9 +1305,10 @@ void device_image_interface::update_names() if (brief_name == nullptr) brief_name = device_brieftypename(image_type()); + m_canonical_instance_name = string_format("%s%d", inst_name, index + 1); if (count > 1) { - m_instance_name = string_format("%s%d", inst_name, index + 1); + m_instance_name = m_canonical_instance_name; m_brief_instance_name = string_format("%s%d", brief_name, index + 1); } else @@ -1454,11 +1459,11 @@ std::string device_image_interface::software_get_default_slot(const char *defaul { std::string result; - auto iter = device().mconfig().options().image_options().find(instance_name()); - if (iter != device().mconfig().options().image_options().end() && !iter->second.empty()) + const std::string &image_name(device().mconfig().options().image_option(instance_name()).value()); + if (!image_name.empty()) { result.assign(default_card_slot); - const software_part *swpart = find_software_item(iter->second, true); + const software_part *swpart = find_software_item(image_name, true); if (swpart != nullptr) { const char *slot = swpart->feature("slot"); diff --git a/src/emu/diimage.h b/src/emu/diimage.h index 19b7b18292b..68b6c8a96ae 100644 --- a/src/emu/diimage.h +++ b/src/emu/diimage.h @@ -213,6 +213,7 @@ public: const std::string &instance_name() const { return m_instance_name; } const std::string &brief_instance_name() const { return m_brief_instance_name; } + const std::string &cannonical_instance_name() const { return m_canonical_instance_name; } bool uses_file_extension(const char *file_extension) const; const formatlist_type &formatlist() const { return m_formatlist; } @@ -238,6 +239,7 @@ public: } bool user_loadable() const { return m_user_loadable; } + bool is_reset_and_loading() const { return m_is_reset_and_loading; } const std::string &full_software_name() const { return m_full_software_name; } protected: @@ -329,14 +331,17 @@ private: util::hash_collection m_hash; - std::string m_brief_instance_name; - std::string m_instance_name; + std::string m_instance_name; // e.g. - "cartridge", "floppydisk2" + std::string m_brief_instance_name; // e.g. - "cart", "flop2" + std::string m_canonical_instance_name; // e.g. - "cartridge1", "floppydisk2" - only used internally in emuopts.cpp // in the case of arcade cabinet with fixed carts inserted, // we want to disable command line cart loading... bool m_user_loadable; bool m_is_loading; + + bool m_is_reset_and_loading; }; // iterator diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp index 2863ef35caf..d9dc26cea69 100644 --- a/src/emu/emuopts.cpp +++ b/src/emu/emuopts.cpp @@ -10,6 +10,11 @@ #include "emu.h" #include "emuopts.h" +#include "drivenum.h" +#include "softlist_dev.h" +#include "hashfile.h" + +#include <stack> //************************************************************************** @@ -213,6 +218,191 @@ const options_entry emu_options::s_option_entries[] = //************************************************************************** +// CUSTOM OPTION ENTRIES AND SUPPORT CLASSES +//************************************************************************** + +namespace +{ + // custom option entry for the system name + class system_name_option_entry : public core_options::entry + { + public: + system_name_option_entry(emu_options &host) + : entry(OPTION_SYSTEMNAME) + , m_host(host) + { + } + + virtual const char *value() const override + { + // This is returning an empty string instead of nullptr to signify that + // specifying the value is a meaningful operation. The option types that + // return nullptr are option types that cannot have a value (e.g. - commands) + // + // See comments in core_options::entry::value() and core_options::simple_entry::value() + return m_host.system() ? m_host.system()->name : ""; + } + + protected: + virtual void internal_set_value(std::string &&newvalue) override + { + m_host.set_system_name(std::move(newvalue)); + } + + private: + emu_options &m_host; + }; + + // custom option entry for the software name + class software_name_option_entry : public core_options::entry + { + public: + software_name_option_entry(emu_options &host) + : entry(OPTION_SOFTWARENAME) + , m_host(host) + { + } + + protected: + virtual void internal_set_value(std::string &&newvalue) override + { + m_host.set_software(std::move(newvalue)); + } + + private: + emu_options &m_host; + }; + + // custom option entry for slots + class slot_option_entry : public core_options::entry + { + public: + slot_option_entry(const char *name, slot_option &host) + : entry(name) + , m_host(host) + { + } + + virtual const char *value() const override + { + const char *result = nullptr; + if (m_host.specified()) + { + // m_temp is a temporary variable used to keep the specified value + // so the result can be returned as 'const char *'. Obviously, this + // value will be trampled upon if value() is called again. This doesn't + // happen in practice + // + // In reality, I want to really return std::optional<std::string> here + m_temp = m_host.specified_value(); + result = m_temp.c_str(); + } + return result; + } + + protected: + virtual void internal_set_value(std::string &&newvalue) override + { + m_host.specify(std::move(newvalue), false); + } + + private: + slot_option & m_host; + mutable std::string m_temp; + }; + + // custom option entry for images + class image_option_entry : public core_options::entry + { + public: + image_option_entry(std::vector<std::string> &&names, image_option &host) + : entry(std::move(names)) + , m_host(host) + { + } + + virtual const char *value() const override + { + return m_host.value().c_str(); + } + + protected: + virtual void internal_set_value(std::string &&newvalue) override + { + m_host.specify(std::move(newvalue), false); + } + + private: + image_option &m_host; + }; + + // existing option tracker class; used by slot/image calculus to identify existing + // options for later purging + template<typename T> + class existing_option_tracker + { + public: + existing_option_tracker(const std::unordered_map<std::string, T> &map) + { + m_vec.reserve(map.size()); + for (const auto &entry : map) + m_vec.push_back(&entry.first); + } + + template<typename TStr> + void remove(const TStr &str) + { + auto iter = std::find_if( + m_vec.begin(), + m_vec.end(), + [&str](const auto &x) { return *x == str; }); + if (iter != m_vec.end()) + m_vec.erase(iter); + } + + std::vector<const std::string *>::iterator begin() { return m_vec.begin(); } + std::vector<const std::string *>::iterator end() { return m_vec.end(); } + + private: + std::vector<const std::string *> m_vec; + }; + + + //------------------------------------------------- + // get_full_option_names + //------------------------------------------------- + + std::vector<std::string> get_full_option_names(const device_image_interface &image) + { + std::vector<std::string> result; + + result.push_back(image.instance_name()); + result.push_back(image.brief_instance_name()); + + if (strcmp(image.device_typename(image.image_type()), image.instance_name().c_str()) == 0) + { + result.push_back(image.instance_name() + "1"); + result.push_back(image.brief_instance_name() + "1"); + } + return result; + } + + + //------------------------------------------------- + // conditionally_peg_priority + //------------------------------------------------- + + void conditionally_peg_priority(core_options::entry::weak_ptr &entry, bool peg_priority) + { + // if the [image|slot] entry was specified outside of the context of the options sytem, we need + // to peg the priority of any associated core_options::entry at the maximum priority + if (peg_priority && !entry.expired()) + entry.lock()->set_priority(OPTION_PRIORITY_MAXIMUM); + } +} + + +//************************************************************************** // EMU OPTIONS //************************************************************************** @@ -220,125 +410,662 @@ const options_entry emu_options::s_option_entries[] = // emu_options - constructor //------------------------------------------------- -emu_options::emu_options() -: core_options() -, m_coin_impulse(0) -, m_joystick_contradictory(false) -, m_sleep(true) -, m_refresh_speed(false) -, m_ui(UI_CABINET) +emu_options::emu_options(option_support support) + : m_support(support) + , m_system(nullptr) + , m_coin_impulse(0) + , m_joystick_contradictory(false) + , m_sleep(true) + , m_refresh_speed(false) + , m_ui(UI_CABINET) { + // add entries + if (support == option_support::FULL || support == option_support::GENERAL_AND_SYSTEM) + add_entry(std::make_shared<system_name_option_entry>(*this)); + if (support == option_support::FULL) + add_entry(std::make_shared<software_name_option_entry>(*this)); add_entries(emu_options::s_option_entries); + + // adding handlers to keep copies of frequently requested options in member variables + set_value_changed_handler(OPTION_COIN_IMPULSE, [this](const char *value) { m_coin_impulse = int_value(OPTION_COIN_IMPULSE); }); + set_value_changed_handler(OPTION_JOYSTICK_CONTRADICTORY, [this](const char *value) { m_joystick_contradictory = bool_value(OPTION_JOYSTICK_CONTRADICTORY); }); + set_value_changed_handler(OPTION_SLEEP, [this](const char *value) { m_sleep = bool_value(OPTION_SLEEP); }); + set_value_changed_handler(OPTION_REFRESHSPEED, [this](const char *value) { m_sleep = bool_value(OPTION_REFRESHSPEED); }); + set_value_changed_handler(OPTION_UI, [this](const std::string &value) + { + if (value == "simple") + m_ui = UI_SIMPLE; + else + m_ui = UI_CABINET; + }); } //------------------------------------------------- -// value_changed - to prevent tagmap -// lookups keep copies of frequently requested -// options in member variables. +// emu_options - destructor //------------------------------------------------- -void emu_options::value_changed(const std::string &name, const std::string &value) +emu_options::~emu_options() { - if (name == OPTION_COIN_IMPULSE) +} + + +//------------------------------------------------- +// system_name +//------------------------------------------------- + +const char *emu_options::system_name() const +{ + return m_system ? m_system->name : ""; +} + + +//------------------------------------------------- +// set_system_name - called to set the system +// name; will adjust slot/image options as appropriate +//------------------------------------------------- + +void emu_options::set_system_name(std::string &&new_system_name) +{ + const game_driver *new_system = nullptr; + + // we are making an attempt - record what we're attempting + m_attempted_system_name = std::move(new_system_name); + + // was a system name specified? + if (!m_attempted_system_name.empty()) { - m_coin_impulse = int_value(OPTION_COIN_IMPULSE); + // if so, first extract the base name (the reason for this is drag-and-drop on Windows; a side + // effect is a command line like 'mame pacman.foo' will work correctly, but so be it) + std::string new_system_base_name = core_filename_extract_base(m_attempted_system_name, true); + + // perform the lookup (and error if it cannot be found) + int index = driver_list::find(new_system_base_name.c_str()); + if (index < 0) + throw options_error_exception("Unknown system '%s'", m_attempted_system_name); + new_system = &driver_list::driver(index); } - else if (name == OPTION_JOYSTICK_CONTRADICTORY) + + // did we change anything? + if (new_system != m_system) { - m_joystick_contradictory = bool_value(OPTION_JOYSTICK_CONTRADICTORY); + // if so, specify the new system and update (if we're fully supporting slot/image options) + m_system = new_system; + m_software_name.clear(); + if (m_support == option_support::FULL) + update_slot_and_image_options(); } - else if (name == OPTION_SLEEP) +} + + +//------------------------------------------------- +// set_system_name - called to set the system +// name; will adjust slot/image options as appropriate +//------------------------------------------------- + +void emu_options::set_system_name(const std::string &new_system_name) +{ + set_system_name(std::string(new_system_name)); +} + + +//------------------------------------------------- +// update_slot_and_image_options +//------------------------------------------------- + +void emu_options::update_slot_and_image_options() +{ + bool changed; + do { - m_sleep = bool_value(OPTION_SLEEP); - } - else if (name == OPTION_REFRESHSPEED) + changed = false; + + // first we add and remove slot options depending on what has been configured in the + // device, bringing m_slot_options up to a state where it matches machine_config + if (add_and_remove_slot_options()) + changed = true; + + // second, we perform an analgous operation with m_image_options + if (add_and_remove_image_options()) + changed = true; + + // if we changed anything, we should reevaluate existing options + if (changed) + reevaluate_default_card_software(); + } while (changed); +} + + +//------------------------------------------------- +// add_and_remove_slot_options - add any missing +// and/or purge extraneous slot options +//------------------------------------------------- + +bool emu_options::add_and_remove_slot_options() +{ + bool changed = false; + + // first, create a list of existing slot options; this is so we can purge + // any stray slot options that are no longer pertinent when we're done + existing_option_tracker<::slot_option> existing(m_slot_options); + + // it is perfectly legal for this to be called without a system; we + // need to check for that condition! + if (m_system) { - m_refresh_speed = bool_value(OPTION_REFRESHSPEED); + // create the configuration + machine_config config(*m_system, *this); + + for (const device_slot_interface &slot : slot_interface_iterator(config.root_device())) + { + // come up with the cannonical name of the slot + const char *slot_option_name = slot.slot_name(); + + // erase this option from existing (so we don't purge it later) + existing.remove(slot_option_name); + + // do we need to add this option? + if (!has_slot_option(slot_option_name)) + { + // we do - add it to m_slot_options + auto pair = std::make_pair(slot_option_name, ::slot_option(*this, slot.default_option())); + ::slot_option &new_option(m_slot_options.emplace(std::move(pair)).first->second); + changed = true; + + // for non-fixed slots, this slot needs representation in the options collection + if (!slot.fixed()) + { + // first device? add the header as to be pretty + const char *header = "SLOT DEVICES"; + if (!header_exists(header)) + add_header(header); + + // create a new entry in the options + auto new_entry = new_option.setup_option_entry(slot_option_name); + + // and add it + add_entry(std::move(new_entry), header); + } + } + + } } - else if (name == OPTION_UI) + + // at this point we need to purge stray slot options that may no longer be pertinent + for (auto &opt_name : existing) { - if (value == "simple") - m_ui = UI_SIMPLE; - else - m_ui = UI_CABINET; + auto iter = m_slot_options.find(*opt_name); + assert(iter != m_slot_options.end()); + + // if this is represented in core_options, remove it + if (iter->second.option_entry()) + remove_entry(*iter->second.option_entry()); + + // remove this option + m_slot_options.erase(iter); + changed = true; } + + return changed; } //------------------------------------------------- -// override_get_value - when saving to an INI, we -// need to hook into that process so we can write -// out image/slot options +// add_and_remove_slot_options - add any missing +// and/or purge extraneous slot options //------------------------------------------------- -core_options::override_get_value_result emu_options::override_get_value(const char *name, std::string &value) const +bool emu_options::add_and_remove_image_options() { - if (name) + // The logic for image options is superficially similar to the logic for slot options, but + // there is one larger piece of complexity. The image instance names (returned by the + // image_instance() call and surfaced in the UI) may change simply because we've added more + // devices. This is because the instance_name() for a singular cartridge device might be + // "cartridge" starting out, but become "cartridge1" when another cartridge device is added. + // + // To get around this behavior, our internal data structures work in terms of what is + // returned by cannonical_instance_name(), which will be something like "cartridge1" both + // for a singular cartridge device and the first cartridge in a multi cartridge system. + // + // The need for this behavior was identified by Tafoid when the following command line + // regressed: + // + // mame snes bsxsore -cart2 bszelda + // + // Before we were accounting for this behavior, 'bsxsore' got stored in "cartridge" and + // the association got lost when the second cartridge was added. + + bool changed = false; + + // first, create a list of existing image options; this is so we can purge + // any stray slot options that are no longer pertinent when we're done; we + // have to do this for both "flavors" of name + existing_option_tracker<::image_option> existing(m_image_options_cannonical); + + // wipe the non-cannonical image options; we're going to rebuild it + m_image_options.clear(); + + // it is perfectly legal for this to be called without a system; we + // need to check for that condition! + if (m_system) { - auto slotiter = m_slot_options.find(name); - if (slotiter != m_slot_options.end()) + // create the configuration + machine_config config(*m_system, *this); + + // iterate through all image devices + for (device_image_interface &image : image_interface_iterator(config.root_device())) { - value = slotiter->second.specified_value(); - return slotiter->second.specified() - ? override_get_value_result::OVERRIDE - : override_get_value_result::SKIP; + const std::string &cannonical_name(image.cannonical_instance_name()); + + // erase this option from existing (so we don't purge it later) + existing.remove(cannonical_name); + + // do we need to add this option? + auto iter = m_image_options_cannonical.find(cannonical_name); + ::image_option *this_option = iter != m_image_options_cannonical.end() ? &iter->second : nullptr; + if (!this_option) + { + // we do - add it to both m_image_options_cannonical and m_image_options + auto pair = std::make_pair(cannonical_name, ::image_option(*this, image.cannonical_instance_name())); + this_option = &m_image_options_cannonical.emplace(std::move(pair)).first->second; + changed = true; + + // if this image is user loadable, we have to surface it in the core_options + if (image.user_loadable()) + { + // first device? add the header as to be pretty + const char *header = "IMAGE DEVICES"; + if (!header_exists(header)) + add_header(header); + + // name this options + auto names = get_full_option_names(image); + + // create a new entry in the options + auto new_entry = this_option->setup_option_entry(std::move(names)); + + // and add it + add_entry(std::move(new_entry), header); + } + } + + // whether we added it or we didn't, we have to add it to the m_image_option map + m_image_options[image.instance_name()] = this_option; } + } + + // at this point we need to purge stray image options that may no longer be pertinent + for (auto &opt_name : existing) + { + auto iter = m_image_options_cannonical.find(*opt_name); + assert(iter != m_image_options_cannonical.end()); + + // if this is represented in core_options, remove it + if (iter->second.option_entry()) + remove_entry(*iter->second.option_entry()); + + // remove this option + m_image_options_cannonical.erase(iter); + changed = true; + } + + return changed; +} - auto imageiter = m_image_options.find(name); - if (imageiter != m_image_options.end()) + +//------------------------------------------------- +// reevaluate_default_card_software - based on recent +// changes in what images are mounted, give drivers +// a chance to specify new default slot options +//------------------------------------------------- + +void emu_options::reevaluate_default_card_software() +{ + // if we don't have a system specified, this is + // a meaningless operation + if (!m_system) + return; + + bool found; + do + { + // set up the machine_config + machine_config config(*m_system, *this); + found = false; + + // iterate through all slot devices + for (device_slot_interface &slot : slot_interface_iterator(config.root_device())) { - value = imageiter->second; - return override_get_value_result::OVERRIDE; + // retrieve info about the device instance + auto &slot_opt(slot_option(slot.slot_name())); + + // device_slot_interface::get_default_card_software() is essentially a hook + // that lets devices provide a feedback loop to force a specified software + // list entry to be loaded + // + // In the repeated cycle of adding slots and slot devices, this gives a chance + // for devices to "plug in" default software list items. Of course, the fact + // that this is all shuffling options is brittle and roundabout, but such is + // the nature of software lists. + // + // In reality, having some sort of hook into the pipeline of slot/device evaluation + // makes sense, but the fact that it is joined at the hip to device_image_interface + // and device_slot_interface is unfortunate + std::string default_card_software = get_default_card_software(slot); + if (slot_opt.default_card_software() != default_card_software) + { + slot_opt.set_default_card_software(std::move(default_card_software)); + + // calling set_default_card_software() can cause a cascade of slot/image + // evaluations; we need to bail out of this loop because the iterator + // may be bad + found = true; + break; + } } + } while (found); +} + + +//------------------------------------------------- +// get_default_card_software +//------------------------------------------------- + +std::string emu_options::get_default_card_software(device_slot_interface &slot) +{ + std::string image_path; + std::function<bool(util::core_file &, std::string&)> get_hashfile_extrainfo; + + // figure out if an image option has been specified, and if so, get the image path out of the options + device_image_interface *image = dynamic_cast<device_image_interface *>(&slot); + if (image) + { + image_path = image_option(image->instance_name()).value(); + + get_hashfile_extrainfo = [image, this](util::core_file &file, std::string &extrainfo) + { + util::hash_collection hashes = image->calculate_hash_on_file(file); + + return hashfile_extrainfo( + hash_path(), + image->device().mconfig().gamedrv(), + hashes, + extrainfo); + }; } - return override_get_value_result::NONE; + // create the hook + get_default_card_software_hook hook(image_path, std::move(get_hashfile_extrainfo)); + + // and invoke the slot's implementation of get_default_card_software() + return slot.get_default_card_software(hook); } //------------------------------------------------- -// override_set_value - when parsing an INI, we -// need to hook into into it so we can do the same -// crazy slot logic done in mameopt +// set_software - called to load "unqualified" +// software out of a software list (e.g. - "mame nes 'zelda'") //------------------------------------------------- -bool emu_options::override_set_value(const char *name, const std::string &value) +void emu_options::set_software(std::string &&new_software) { - auto slotiter = m_slot_options.find(name); - if (slotiter != m_slot_options.end()) + // identify any options as a result of softlists + software_options softlist_opts = evaluate_initial_softlist_options(new_software); + + while (!softlist_opts.slot.empty() || !softlist_opts.image.empty()) { - slotiter->second.specify(std::string(value)); - return true; + // track how many options we have + size_t before_size = softlist_opts.slot.size() + softlist_opts.image.size(); + + // keep a list of deferred options, in case anything is applied + // out of order + software_options deferred_opts; + + // distribute slot options + for (auto &slot_opt : softlist_opts.slot) + { + auto iter = m_slot_options.find(slot_opt.first); + if (iter != m_slot_options.end()) + iter->second.specify(std::move(slot_opt.second)); + else + deferred_opts.slot[slot_opt.first] = std::move(slot_opt.second); + } + + // distribute image options + for (auto &image_opt : softlist_opts.image) + { + auto iter = m_image_options.find(image_opt.first); + if (iter != m_image_options.end()) + iter->second->specify(std::move(image_opt.second)); + else + deferred_opts.image[image_opt.first] = std::move(image_opt.second); + } + + // keep any deferred options for the next round + softlist_opts = std::move(deferred_opts); + + // do we have any pending options after failing to distribute any? + size_t after_size = softlist_opts.slot.size() + softlist_opts.image.size(); + if ((after_size > 0) && after_size >= before_size) + throw options_error_exception("Could not assign software option"); } - auto imageiter = m_image_options.find(name); - if (imageiter != m_image_options.end()) + // we've succeeded; update the set name + m_software_name = std::move(new_software); +} + + +//------------------------------------------------- +// evaluate_initial_softlist_options +//------------------------------------------------- + +emu_options::software_options emu_options::evaluate_initial_softlist_options(const std::string &software_identifier) +{ + software_options results; + + // load software specified at the command line (if any of course) + if (!software_identifier.empty()) { - // We've found a potential image slot for this value. However, we're only going to specify it - // if the current image option is empty. This is because if there is an image option already - // present, it is almost certain that this was because something was specified at the command - // line and we're parsing an INI. Because INIs have less priority than the command line, this - // should be ignored - // - // Obviously, this ignores that INIs themselves have their own prioritization, so this should be - // considered to be a hack. Instead of having image options being just a straight map of std::string - // it should really be a structure where the priority can be recorded - if (imageiter->second.empty()) - imageiter->second = value; - return true; + // we have software; first identify the proper game_driver + if (!m_system) + throw options_error_exception("Cannot specify software without specifying system"); + + // and set up a configuration + machine_config config(*m_system, *this); + software_list_device_iterator iter(config.root_device()); + if (iter.count() == 0) + throw emu_fatalerror(EMU_ERR_FATALERROR, "Error: unknown option: %s\n", software_identifier.c_str()); + + // and finally set up the stack + std::stack<std::string> software_identifier_stack; + software_identifier_stack.push(software_identifier); + + // we need to keep evaluating softlist identifiers until the stack is empty + while (!software_identifier_stack.empty()) + { + // pop the identifier + std::string current_software_identifier = std::move(software_identifier_stack.top()); + software_identifier_stack.pop(); + + // and parse it + std::string list_name, software_name; + auto colon_pos = current_software_identifier.find_first_of(':'); + if (colon_pos != std::string::npos) + { + list_name = current_software_identifier.substr(0, colon_pos); + software_name = current_software_identifier.substr(colon_pos + 1); + } + else + { + software_name = current_software_identifier; + } + + // loop through all softlist devices, and try to find one capable of handling the requested software + bool found = false; + bool compatible = false; + for (software_list_device &swlistdev : iter) + { + if (list_name.empty() || (list_name == swlistdev.list_name())) + { + const software_info *swinfo = swlistdev.find(software_name); + if (swinfo != nullptr) + { + // loop through all parts + for (const software_part &swpart : swinfo->parts()) + { + // only load compatible software this way + if (swlistdev.is_compatible(swpart) == SOFTWARE_IS_COMPATIBLE) + { + // we need to find a mountable image slot, but we need to ensure it is a slot + // for which we have not already distributed a part to + device_image_interface *image = software_list_device::find_mountable_image( + config, + swpart, + [&results](const device_image_interface &candidate) { return results.image.count(candidate.instance_name()) == 0; }); + + // did we find a slot to put this part into? + if (image != nullptr) + { + // we've resolved this software + results.image[image->instance_name()] = string_format("%s:%s:%s", swlistdev.list_name(), software_name, swpart.name()); + + // does this software part have a requirement on another part? + const char *requirement = swpart.feature("requirement"); + if (requirement) + software_identifier_stack.push(requirement); + } + compatible = true; + } + found = true; + } + + // identify other shared features specified as '<<slot name>>_default' + // + // example from SMS: + // + // <software name = "alexbmx"> + // ... + // <sharedfeat name = "ctrl1_default" value = "paddle" /> + // </software> + for (const feature_list_item &fi : swinfo->shared_info()) + { + const std::string default_suffix = "_default"; + if (fi.name().size() > default_suffix.size() + && fi.name().compare(fi.name().size() - default_suffix.size(), default_suffix.size(), default_suffix) == 0) + { + std::string slot_name = fi.name().substr(0, fi.name().size() - default_suffix.size()); + results.slot[slot_name] = fi.value(); + } + } + } + } + if (compatible) + break; + } + + if (!compatible) + { + software_list_device::display_matches(config, nullptr, software_name); + + // The text of this options_error_exception() is then passed to osd_printf_error() in cli_frontend::execute(). Therefore, it needs + // to be human readable text. We want to snake through a message about software incompatibility while being silent if that is not + // the case. + // + // Arguably, anything related to user-visible text should really be done within src/frontend. The invocation of + // software_list_device::display_matches() should really be done there as well + if (!found) + throw options_error_exception(""); + else + throw options_error_exception("Software '%s' is incompatible with system '%s'\n", software_name, m_system->name); + } + } } + return results; +} + + +//------------------------------------------------- +// find_slot_option +//------------------------------------------------- - return false; +const slot_option *emu_options::find_slot_option(const std::string &device_name) const +{ + auto iter = m_slot_options.find(device_name); + return iter != m_slot_options.end() ? &iter->second : nullptr; +} + +slot_option *emu_options::find_slot_option(const std::string &device_name) +{ + auto iter = m_slot_options.find(device_name); + return iter != m_slot_options.end() ? &iter->second : nullptr; } + +//------------------------------------------------- +// slot_option +//------------------------------------------------- + +const slot_option &emu_options::slot_option(const std::string &device_name) const +{ + const ::slot_option *opt = find_slot_option(device_name); + assert(opt && "Attempt to access non-existent slot option"); + return *opt; +} + +slot_option &emu_options::slot_option(const std::string &device_name) +{ + ::slot_option *opt = find_slot_option(device_name); + assert(opt && "Attempt to access non-existent slot option"); + return *opt; +} + + +//------------------------------------------------- +// image_option +//------------------------------------------------- + +const image_option &emu_options::image_option(const std::string &device_name) const +{ + auto iter = m_image_options.find(device_name); + assert(iter != m_image_options.end() && "Attempt to access non-existent image option"); + return *iter->second; +} + +image_option &emu_options::image_option(const std::string &device_name) +{ + auto iter = m_image_options.find(device_name); + assert(iter != m_image_options.end() && "Attempt to access non-existent image option"); + return *iter->second; +} + + +//------------------------------------------------- +// command_argument_processed +//------------------------------------------------- + +void emu_options::command_argument_processed() +{ + // some command line arguments require that the system name be set, so we can get slot options + if (command_arguments().size() == 1 && + (command() == "listdevices" || (command() == "listslots") || (command() == "listmedia"))) + { + set_system_name(command_arguments()[0]); + } +} + + +//************************************************************************** +// SLOT OPTIONS +//************************************************************************** + //------------------------------------------------- // slot_option ctor //------------------------------------------------- -slot_option::slot_option(const char *default_value) - : m_specified(false) +slot_option::slot_option(emu_options &host, const char *default_value) + : m_host(host) + , m_specified(false) , m_default_value(default_value ? default_value : "") { } @@ -394,12 +1121,14 @@ std::string slot_option::specified_value() const // slot_option::specify //------------------------------------------------- -void slot_option::specify(std::string &&text) +void slot_option::specify(std::string &&text, bool peg_priority) { + // record the old value; we may need to trigger an update + const std::string old_value = value(); + // we need to do some elementary parsing here const char *bios_arg = ",bios="; - - size_t pos = text.find(bios_arg); + const size_t pos = text.find(bios_arg); if (pos != std::string::npos) { m_specified = true; @@ -412,6 +1141,49 @@ void slot_option::specify(std::string &&text) m_specified_value = std::move(text); m_specified_bios = ""; } + + conditionally_peg_priority(m_entry, peg_priority); + + // we may have changed + possibly_changed(old_value); +} + + +//------------------------------------------------- +// slot_option::specify +//------------------------------------------------- + +void slot_option::specify(const std::string &text, bool peg_priority) +{ + specify(std::string(text), peg_priority); +} + + +//------------------------------------------------- +// slot_option::set_default_card_software +//------------------------------------------------- + +void slot_option::set_default_card_software(std::string &&s) +{ + // record the old value; we may need to trigger an update + const std::string old_value = value(); + + // update the default card software + m_default_card_software = std::move(s); + + // we may have changed + possibly_changed(old_value); +} + + +//------------------------------------------------- +// slot_option::possibly_changed +//------------------------------------------------- + +void slot_option::possibly_changed(const std::string &old_value) +{ + if (value() != old_value) + m_host.update_slot_and_image_options(); } @@ -428,3 +1200,75 @@ void slot_option::set_bios(std::string &&text) } m_specified_bios = std::move(text); } + + +//------------------------------------------------- +// slot_option::setup_option_entry +//------------------------------------------------- + +core_options::entry::shared_ptr slot_option::setup_option_entry(const char *name) +{ + // this should only be called once + assert(m_entry.expired()); + + // create the entry and return it + core_options::entry::shared_ptr entry = std::make_shared<slot_option_entry>(name, *this); + m_entry = entry; + return entry; +} + + +//************************************************************************** +// IMAGE OPTIONS +//************************************************************************** + +//------------------------------------------------- +// image_option ctor +//------------------------------------------------- + +image_option::image_option(emu_options &host, const std::string &cannonical_instance_name) + : m_host(host) + , m_canonical_instance_name(cannonical_instance_name) +{ +} + + +//------------------------------------------------- +// image_option::specify +//------------------------------------------------- + +void image_option::specify(const std::string &value, bool peg_priority) +{ + if (value != m_value) + { + m_value = value; + m_host.reevaluate_default_card_software(); + } + conditionally_peg_priority(m_entry, peg_priority); +} + +void image_option::specify(std::string &&value, bool peg_priority) +{ + if (value != m_value) + { + m_value = std::move(value); + m_host.reevaluate_default_card_software(); + } + conditionally_peg_priority(m_entry, peg_priority); +} + + +//------------------------------------------------- +// image_option::setup_option_entry +//------------------------------------------------- + +core_options::entry::shared_ptr image_option::setup_option_entry(std::vector<std::string> &&names) +{ + // this should only be called once + assert(m_entry.expired()); + + // create the entry and return it + core_options::entry::shared_ptr entry = std::make_shared<image_option_entry>(std::move(names), *this); + m_entry = entry; + return entry; +} diff --git a/src/emu/emuopts.h b/src/emu/emuopts.h index e592d04d6e3..21df80b8a05 100644 --- a/src/emu/emuopts.h +++ b/src/emu/emuopts.h @@ -195,56 +195,78 @@ // TYPE DEFINITIONS //************************************************************************** +class game_driver; +class device_slot_interface; +class emu_options; + class slot_option { public: - slot_option(const char *default_value = nullptr); - slot_option(const slot_option &that) = default; + slot_option(emu_options &host, const char *default_value); + slot_option(const slot_option &that) = delete; slot_option(slot_option &&that) = default; - const slot_option &operator=(const slot_option &that) - { - m_specified = that.m_specified; - m_specified_value = that.m_specified_value; - m_specified_bios = that.m_specified_bios; - m_default_card_software = that.m_default_card_software; - m_default_value = that.m_default_value; - return *this; - } - - const slot_option &operator=(slot_option &&that) - { - m_specified = that.m_specified; - m_specified_value = std::move(that.m_specified_value); - m_specified_bios = std::move(that.m_specified_bios); - m_default_card_software = std::move(that.m_default_card_software); - m_default_value = std::move(that.m_default_value); - return *this; - } - // accessors const std::string &value() const; std::string specified_value() const; const std::string &bios() const { return m_specified_bios; } const std::string &default_card_software() const { return m_default_card_software; } bool specified() const { return m_specified; } + core_options::entry::shared_ptr option_entry() const { return m_entry.lock(); } // seters - void specify(std::string &&text); + void specify(const std::string &text, bool peg_priority = true); + void specify(std::string &&text, bool peg_priority = true); void set_bios(std::string &&text); - void set_default_card_software(std::string &&s) { m_default_card_software = std::move(s); } + void set_default_card_software(std::string &&s); + + // instantiates an option entry (don't call outside of emuopts.cpp) + core_options::entry::shared_ptr setup_option_entry(const char *name); private: - bool m_specified; - std::string m_specified_value; - std::string m_specified_bios; - std::string m_default_card_software; - std::string m_default_value; + void possibly_changed(const std::string &old_value); + + emu_options & m_host; + bool m_specified; + std::string m_specified_value; + std::string m_specified_bios; + std::string m_default_card_software; + std::string m_default_value; + core_options::entry::weak_ptr m_entry; +}; + + +class image_option +{ +public: + image_option(emu_options &host, const std::string &canonical_instance_name); + image_option(const image_option &that) = delete; + image_option(image_option &&that) = default; + + // accessors + const std::string &canonical_instance_name() const { return m_canonical_instance_name; } + const std::string &value() const { return m_value; } + core_options::entry::shared_ptr option_entry() const { return m_entry.lock(); } + + // mutators + void specify(const std::string &value, bool peg_priority = true); + void specify(std::string &&value, bool peg_priority = true); + + // instantiates an option entry (don't call outside of emuopts.cpp) + core_options::entry::shared_ptr setup_option_entry(std::vector<std::string> &&names); + +private: + emu_options & m_host; + std::string m_canonical_instance_name; + std::string m_value; + core_options::entry::weak_ptr m_entry; }; class emu_options : public core_options { + friend class slot_option; + friend class image_option; public: enum ui_option { @@ -252,12 +274,27 @@ public: UI_SIMPLE }; + enum class option_support + { + FULL, // full option support + GENERAL_AND_SYSTEM, // support for general options and system (no softlist) + GENERAL_ONLY // only support for general options + }; + // construction/destruction - emu_options(); + emu_options(option_support support = option_support::FULL); + ~emu_options(); + + // mutation + void set_system_name(const std::string &new_system_name); + void set_system_name(std::string &&new_system_name); + void set_software(std::string &&new_software); // core options - const char *system_name() const { return value(OPTION_SYSTEMNAME); } - const char *software_name() const { return value(OPTION_SOFTWARENAME); } + const game_driver *system() const { return m_system; } + const char *system_name() const; + const std::string &attempted_system_name() const { return m_attempted_system_name; } + const std::string &software_name() const { return m_software_name; } // core configuration options bool read_config() const { return bool_value(OPTION_READCONFIG); } @@ -427,36 +464,63 @@ public: const char *language() const { return value(OPTION_LANGUAGE); } - // Web server specific optopns + // Web server specific options bool http() const { return bool_value(OPTION_HTTP); } short http_port() const { return int_value(OPTION_HTTP_PORT); } const char *http_root() const { return value(OPTION_HTTP_ROOT); } // slots and devices - the values for these are stored outside of the core_options // structure - std::map<std::string, slot_option> &slot_options() { return m_slot_options; } - const std::map<std::string, slot_option> &slot_options() const { return m_slot_options; } - std::map<std::string, std::string> &image_options() { return m_image_options; } - const std::map<std::string, std::string> &image_options() const { return m_image_options; } + const ::slot_option &slot_option(const std::string &device_name) const; + ::slot_option &slot_option(const std::string &device_name); + const ::slot_option *find_slot_option(const std::string &device_name) const; + ::slot_option *find_slot_option(const std::string &device_name); + bool has_slot_option(const std::string &device_name) const { return find_slot_option(device_name) ? true : false; } + const ::image_option &image_option(const std::string &device_name) const; + ::image_option &image_option(const std::string &device_name); protected: - virtual void value_changed(const std::string &name, const std::string &value) override; - virtual override_get_value_result override_get_value(const char *name, std::string &value) const override; - virtual bool override_set_value(const char *name, const std::string &value) override; + virtual void command_argument_processed() override; private: - static const options_entry s_option_entries[]; + struct software_options + { + std::unordered_map<std::string, std::string> slot; + std::unordered_map<std::string, std::string> image; + }; + + // slot/image/softlist calculus + software_options evaluate_initial_softlist_options(const std::string &software_identifier); + void update_slot_and_image_options(); + bool add_and_remove_slot_options(); + bool add_and_remove_image_options(); + void reevaluate_default_card_software(); + std::string get_default_card_software(device_slot_interface &slot); + + // static list of options entries + static const options_entry s_option_entries[]; + + // the basics + option_support m_support; + const game_driver * m_system; // slots and devices - std::map<std::string, slot_option> m_slot_options; - std::map<std::string, std::string> m_image_options; + std::unordered_map<std::string, ::slot_option> m_slot_options; + std::unordered_map<std::string, ::image_option> m_image_options_cannonical; + std::unordered_map<std::string, ::image_option *> m_image_options; // cached options, for scenarios where parsing core_options is too slow - int m_coin_impulse; - bool m_joystick_contradictory; - bool m_sleep; - bool m_refresh_speed; - ui_option m_ui; + int m_coin_impulse; + bool m_joystick_contradictory; + bool m_sleep; + bool m_refresh_speed; + ui_option m_ui; + + // special option; the system name we tried to specify + std::string m_attempted_system_name; + + // special option; the software set name that we did specify + std::string m_software_name; }; #endif // MAME_EMU_EMUOPTS_H diff --git a/src/emu/emupal.cpp b/src/emu/emupal.cpp index 4062b0f74f7..27bfc65927d 100644 --- a/src/emu/emupal.cpp +++ b/src/emu/emupal.cpp @@ -507,3 +507,22 @@ rgb_t raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit4_decoder(u32 raw) u8 const b = pal5bit(((raw >> 0) & 0x0f) | ((raw >> 8) & 0x10)); return rgb_t(r, g, b); } + +// This conversion mimics the specific weighting used by the Data East +// custom resistor pack marked DECO RM-C3 to convert the digital +// palette for analog output. It is used on games such as The Real +// Ghostbusters, Gondomania, Cobra Command, Psychonics Oscar. +// +// Resistor values are 220 ohms (MSB), 470 ohms, 1 kohm, 2.2 kohm (LSB) +rgb_t raw_to_rgb_converter::deco_rgb_decoder(u32 raw) +{ + u8 r = raw&0xf; + u8 g = (raw>>4)&0xf; + u8 b = (raw>>8)&0xf; + + r = 0x0e * (r&1) + 0x1f * ((r&2)>>1) + 0x43 * ((r&4)>>2) + 0x8f * ((r&8)>>3); + g = 0x0e * (g&1) + 0x1f * ((g&2)>>1) + 0x43 * ((g&4)>>2) + 0x8f * ((g&8)>>3); + b = 0x0e * (b&1) + 0x1f * ((b&2)>>1) + 0x43 * ((b&4)>>2) + 0x8f * ((b&8)>>3); + + return rgb_t(r, g, b); +} diff --git a/src/emu/emupal.h b/src/emu/emupal.h index 546bc36c168..be082202ccb 100644 --- a/src/emu/emupal.h +++ b/src/emu/emupal.h @@ -169,6 +169,8 @@ #define PALETTE_FORMAT_GRBX raw_to_rgb_converter(4, &raw_to_rgb_converter::standard_rgb_decoder<8,8,8, 16,24,8>) #define PALETTE_FORMAT_BGRX raw_to_rgb_converter(4, &raw_to_rgb_converter::standard_rgb_decoder<8,8,8, 8,16,24>) +// 4 bpp format weighted as per Data East custom DECO RM-C3 resistor network +#define PALETTE_FORMAT_xxxxBBBBGGGGRRRR_DECO raw_to_rgb_converter(2, &raw_to_rgb_converter::deco_rgb_decoder) //************************************************************************** // DEVICE CONFIGURATION MACROS @@ -343,7 +345,9 @@ public: static rgb_t RRRRGGGGBBBBRGBx_decoder(u32 raw); // bits 3/2/1 are LSb static rgb_t xRGBRRRRGGGGBBBB_bit0_decoder(u32 raw); // bits 14/13/12 are LSb static rgb_t xRGBRRRRGGGGBBBB_bit4_decoder(u32 raw); // bits 14/13/12 are MSb + static rgb_t deco_rgb_decoder(u32 raw); // xxxxBBBBGGGGRRRR custom weighting + private: // internal data int m_bytes_per_entry; diff --git a/src/emu/image.cpp b/src/emu/image.cpp index 416d2744fea..8d2ccfb5824 100644 --- a/src/emu/image.cpp +++ b/src/emu/image.cpp @@ -38,37 +38,12 @@ image_manager::image_manager(running_machine &machine) continue; // find the image option in image_options() - auto iter = machine.options().image_options().find(image.instance_name()); - - // GROSS HACK - if we began our journey with a single device configuration (e.g. - a single - // cartridge system) but later added a device of that type, image.instance_name() will become - // something different. We're going to try to accomodate that specific scenario here - // - // Specific example: 'mame snes -cart1 sufami -cart2 poipoi' - the instance_name() starts out - // as "cartridge" but at the end becomes "cartridge1" - if (iter == machine.options().image_options().end() - && (image.instance_name().rbegin() != image.instance_name().rend()) - && (*image.instance_name().rbegin() == '1')) - { - std::string alternate_instance_name = image.instance_name().substr(0, image.instance_name().size() - 1); - iter = machine.options().image_options().find(alternate_instance_name); - - // If we found something, we need to write it back (so later checks work). We also need to redo - // the find; the act of erasing the old value breaks the iterator - if (iter != machine.options().image_options().end()) - { - std::string temp = std::move(iter->second); - machine.options().image_options()[image.instance_name()] = std::move(temp); - machine.options().image_options().erase(alternate_instance_name); - iter = machine.options().image_options().find(image.instance_name()); - } - } + const std::string &startup_image(machine.options().image_option(image.instance_name()).value()); // is an image specified for this image? - if (iter != machine.options().image_options().end() && !iter->second.empty()) + if (!startup_image.empty()) { // we do have a startup image specified - load it - const std::string &startup_image(iter->second); image_init_result result = image_init_result::FAIL; // try as a softlist @@ -93,7 +68,7 @@ image_manager::image_manager(running_machine &machine) image.unload(); // make sure it is removed from the ini file too - machine.options().image_options()[image.instance_name()] = ""; + machine.options().image_option(image.instance_name()).specify(""); if (machine.options().write_config()) write_config(machine.options(), nullptr, &machine.system()); @@ -208,9 +183,18 @@ void image_manager::options_extract() { for (device_image_interface &image : image_interface_iterator(machine().root_device())) { - // only perform this activity for devices where is_reset_on_load() is false; for devices - // where this is true, manipulation of this value is done in reset_and_load() - if (!image.is_reset_on_load()) + // There are two scenarios where we want to extract the option: + // + // 1. When for the device, is_reset_on_load() is false (mounting devices for which is reset_and_load() + // is true forces a reset, hence the name) + // + // 2. When is_reset_on_load(), and this results in a device being unmounted (unmounting is_reset_and_load() + // doesn't force an unmount). + // + // Note that as a part of #2, we cannot extract the option when the image in question is a part of an + // active reset_on_load; hence the check for is_reset_and_loading() (see issue #2414) + if (!image.is_reset_on_load() + || (!image.exists() && !image.is_reset_and_loading() && !machine().options().image_option(image.instance_name()).value().empty())) { // we have to assemble the image option differently for software lists and for normal images std::string image_opt; @@ -223,7 +207,7 @@ void image_manager::options_extract() } // and set the option - machine().options().image_options()[image.instance_name()] = std::move(image_opt); + machine().options().image_option(image.instance_name()).specify(std::move(image_opt)); } } diff --git a/src/emu/mconfig.cpp b/src/emu/mconfig.cpp index 485d9cc9268..477f73a018d 100644 --- a/src/emu/mconfig.cpp +++ b/src/emu/mconfig.cpp @@ -39,21 +39,20 @@ machine_config::machine_config(const game_driver &gamedrv, emu_options &options) const char *slot_option_name = owner.tag() + 1; // figure out which device goes into this slot - bool has_option = options.slot_options().count(slot_option_name); + bool has_option = options.has_slot_option(slot_option_name); const char *selval; bool is_default; if (!has_option) { - // Theoretically we should never get here; in the long run the expectation is that - // options.slot_options() should be fully qualified and all options should be - // present. However, we're getting late in the MAME 0.185 development cycle and - // I don't want to rip this out (yet) + // The only time we should be getting here is when emuopts.cpp is invoking + // us to evaluate slot/image options, and the internal state of emuopts.cpp has + // not caught up yet selval = slot.default_option(); is_default = true; } else { - const slot_option &opt = options.slot_options()[slot_option_name]; + const slot_option &opt = options.slot_option(slot_option_name); selval = opt.value().c_str(); is_default = !opt.specified(); } diff --git a/src/emu/natkeyboard.cpp b/src/emu/natkeyboard.cpp index 6e334b92066..810d13b0515 100644 --- a/src/emu/natkeyboard.cpp +++ b/src/emu/natkeyboard.cpp @@ -365,9 +365,7 @@ void natural_keyboard::set_in_use(bool usage) { // update active usage m_in_use = usage; - std::string error; - machine().options().set_value(OPTION_NATURAL_KEYBOARD, usage, OPTION_PRIORITY_CMDLINE, error); - assert(error.empty()); + machine().options().set_value(OPTION_NATURAL_KEYBOARD, usage, OPTION_PRIORITY_CMDLINE); // lock out (or unlock) all keyboard inputs for (auto &port : machine().ioport().ports()) diff --git a/src/emu/romload.cpp b/src/emu/romload.cpp index 118c7fcc0fe..0e702d885b2 100644 --- a/src/emu/romload.cpp +++ b/src/emu/romload.cpp @@ -1091,10 +1091,9 @@ int open_disk_image(emu_options &options, const game_driver *gamedrv, const rom_ // will only find CHDs for the default configuration. I believe that this in practice will // be acceptable. emu_options driver_specific_options; - std::string error_string; - driver_specific_options.set_value(OPTION_SYSTEMNAME, options.system_name(), OPTION_PRIORITY_DEFAULT, error_string); - driver_specific_options.set_value(OPTION_MEDIAPATH, options.media_path(), OPTION_PRIORITY_DEFAULT, error_string); - driver_specific_options.set_value(OPTION_DIFF_DIRECTORY, options.diff_directory(), OPTION_PRIORITY_DEFAULT, error_string); + driver_specific_options.set_system_name(current_driver.name); + driver_specific_options.set_value(OPTION_MEDIAPATH, options.media_path(), OPTION_PRIORITY_DEFAULT); + driver_specific_options.set_value(OPTION_DIFF_DIRECTORY, options.diff_directory(), OPTION_PRIORITY_DEFAULT); // Now that we have an emu_options structure properly set up, we can create a machine_config machine_config config(current_driver, driver_specific_options); @@ -1496,12 +1495,13 @@ rom_load_manager::rom_load_manager(running_machine &machine) specbios.assign(machine.options().bios()); else { - const char *slot_option_name = device.owner()->tag() + 1; - const slot_option *opt = machine.options().slot_options().count(slot_option_name) - ? &machine.options().slot_options()[slot_option_name] + const device_slot_interface *slot = dynamic_cast<const device_slot_interface *>(&device); + const slot_option *slot_opt = slot + ? &machine.options().slot_option(slot->slot_name()) : nullptr; - specbios = opt && !opt->bios().empty() - ? opt->bios().c_str() + + specbios = slot_opt && !slot_opt->bios().empty() + ? slot_opt->bios().c_str() : device.default_bios_tag(); } determine_bios_rom(device, specbios.c_str()); diff --git a/src/emu/schedule.cpp b/src/emu/schedule.cpp index 5fac93c713e..2a2ec550dcb 100644 --- a/src/emu/schedule.cpp +++ b/src/emu/schedule.cpp @@ -498,7 +498,15 @@ void device_scheduler::timeslice() exec->m_totalcycles += ran; // update the local time for this CPU - attotime deltatime(0, exec->m_attoseconds_per_cycle * ran); + attotime deltatime; + if (ran < exec->m_cycles_per_second) + deltatime = attotime(0, exec->m_attoseconds_per_cycle * ran); + else + { + u32 remainder; + s32 secs = divu_64x32_rem(ran, exec->m_cycles_per_second, &remainder); + deltatime = attotime(secs, u64(remainder) * exec->m_attoseconds_per_cycle); + } assert(deltatime >= attotime::zero); exec->m_localtime += deltatime; LOG((" %d ran, %d total, time = %s\n", ran, s32(exec->m_totalcycles), exec->m_localtime.as_string(PRECISION))); diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp index 6e5d77c40e0..a36b47da683 100644 --- a/src/frontend/mame/clifront.cpp +++ b/src/frontend/mame/clifront.cpp @@ -190,26 +190,30 @@ cli_frontend::cli_frontend(emu_options &options, osd_interface &osd) cli_frontend::~cli_frontend() { - // nuke any device options since they will leak memory - mame_options::remove_device_options(m_options); } -void cli_frontend::start_execution(mame_machine_manager *manager, std::vector<std::string> &args) +void cli_frontend::start_execution(mame_machine_manager *manager, const std::vector<std::string> &args) { - std::string option_errors; + std::ostringstream option_errors; + + // because softlist evaluation relies on hashpath being populated, we are going to go through + // a special step to force it to be evaluated + mame_options::populate_hashpath_from_args_and_inis(m_options, args); // parse the command line, adding any system-specific options - if (!mame_options::parse_command_line(m_options, args, option_errors)) + try + { + m_options.parse_command_line(args, OPTION_PRIORITY_CMDLINE); + } + catch (options_exception &ex) { // if we failed, check for no command and a system name first; in that case error on the name - if (m_options.command().empty() && mame_options::system(m_options) == nullptr && *(m_options.system_name()) != 0) - throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "Unknown system '%s'", m_options.system_name()); + if (m_options.command().empty() && mame_options::system(m_options) == nullptr && !m_options.attempted_system_name().empty()) + throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "Unknown system '%s'", m_options.attempted_system_name().c_str()); // otherwise, error on the options - throw emu_fatalerror(EMU_ERR_INVALID_CONFIG, "%s", strtrimspace(option_errors).c_str()); + throw emu_fatalerror(EMU_ERR_INVALID_CONFIG, "%s", ex.message().c_str()); } - if (!option_errors.empty()) - osd_printf_error("Error in command line:\n%s\n", strtrimspace(option_errors).c_str()); // determine the base name of the EXE std::string exename = core_filename_extract_base(args[0], true); @@ -232,8 +236,11 @@ void cli_frontend::start_execution(mame_machine_manager *manager, std::vector<st manager->start_luaengine(); - if (!option_errors.empty()) - osd_printf_error("Error in command line:\n%s\n", strtrimspace(option_errors).c_str()); + if (option_errors.tellp() > 0) + { + std::string option_errors_string = option_errors.str(); + osd_printf_error("Error in command line:\n%s\n", strtrimspace(option_errors_string).c_str()); + } // if we can't find it, give an appropriate error const game_driver *system = mame_options::system(m_options); @@ -269,16 +276,19 @@ int cli_frontend::execute(std::vector<std::string> &args) // if a game was specified, wasn't a wildcard, and our error indicates this was the // reason for failure, offer some suggestions - if (m_result == EMU_ERR_NO_SUCH_GAME && *(m_options.system_name()) != 0 && !core_iswildstr(m_options.system_name()) && mame_options::system(m_options) == nullptr) + if (m_result == EMU_ERR_NO_SUCH_GAME + && !m_options.attempted_system_name().empty() + && !core_iswildstr(m_options.attempted_system_name().c_str()) + && mame_options::system(m_options) == nullptr) { // get the top 16 approximate matches driver_enumerator drivlist(m_options); int matches[16]; - drivlist.find_approximate_matches(m_options.system_name(), ARRAY_LENGTH(matches), matches); + drivlist.find_approximate_matches(m_options.attempted_system_name().c_str(), ARRAY_LENGTH(matches), matches); // print them out osd_printf_error("\n\"%s\" approximately matches the following\n" - "supported machines (best match first):\n\n", m_options.system_name()); + "supported machines (best match first):\n\n", m_options.attempted_system_name().c_str()); for (auto & matche : matches) if (matche != -1) osd_printf_error("%-18s%s\n", drivlist.driver(matche).name, drivlist.driver(matche).type.fullname()); @@ -1441,8 +1451,7 @@ void cli_frontend::romident(const std::vector<std::string> &args) // create our own copy of options for the purposes of ROM identification // so we are not "polluted" with driver-specific slot/image options emu_options options; - std::string error_string; - options.set_value(OPTION_MEDIAPATH, m_options.media_path(), OPTION_PRIORITY_DEFAULT, error_string); + options.set_value(OPTION_MEDIAPATH, m_options.media_path(), OPTION_PRIORITY_DEFAULT); media_identifier ident(options); @@ -1470,24 +1479,24 @@ const cli_frontend::info_command_struct *cli_frontend::find_command(const std::s { static const info_command_struct s_info_commands[] = { - { CLICOMMAND_LISTXML, 0, -1, false, &cli_frontend::listxml, "[pattern] ..." }, - { CLICOMMAND_LISTFULL, 0, 1, false, &cli_frontend::listfull, "[system name]" }, - { CLICOMMAND_LISTSOURCE, 0, 1, false, &cli_frontend::listsource, "[system name]" }, - { CLICOMMAND_LISTCLONES, 0, 1, false, &cli_frontend::listclones, "[system name]" }, - { CLICOMMAND_LISTBROTHERS, 0, 1, false, &cli_frontend::listbrothers, "[system name]" }, - { CLICOMMAND_LISTCRC, 0, 1, false, &cli_frontend::listcrc, "[system name]" }, - { CLICOMMAND_LISTDEVICES, 0, 1, true, &cli_frontend::listdevices, "[system name]" }, - { CLICOMMAND_LISTSLOTS, 0, 1, true, &cli_frontend::listslots, "[system name]" }, - { CLICOMMAND_LISTROMS, 0, -1, false, &cli_frontend::listroms, "[pattern] ..." }, - { CLICOMMAND_LISTSAMPLES, 0, 1, false, &cli_frontend::listsamples, "[system name]" }, - { CLICOMMAND_VERIFYROMS, 0, -1, false, &cli_frontend::verifyroms, "[pattern] ..." }, - { CLICOMMAND_VERIFYSAMPLES, 0, 1, false, &cli_frontend::verifysamples, "[system name|*]" }, - { CLICOMMAND_LISTMEDIA, 0, 1, true, &cli_frontend::listmedia, "[system name]" }, - { CLICOMMAND_LISTSOFTWARE, 0, 1, false, &cli_frontend::listsoftware, "[system name]" }, - { CLICOMMAND_VERIFYSOFTWARE, 0, 1, false, &cli_frontend::verifysoftware, "[system name|*]" }, - { CLICOMMAND_ROMIDENT, 1, 1, false, &cli_frontend::romident, "(file or directory path)" }, - { CLICOMMAND_GETSOFTLIST, 0, 1, false, &cli_frontend::getsoftlist, "[system name|*]" }, - { CLICOMMAND_VERIFYSOFTLIST, 0, 1, false, &cli_frontend::verifysoftlist, "[system name|*]" } + { CLICOMMAND_LISTXML, 0, -1, &cli_frontend::listxml, "[pattern] ..." }, + { CLICOMMAND_LISTFULL, 0, 1, &cli_frontend::listfull, "[system name]" }, + { CLICOMMAND_LISTSOURCE, 0, 1, &cli_frontend::listsource, "[system name]" }, + { CLICOMMAND_LISTCLONES, 0, 1, &cli_frontend::listclones, "[system name]" }, + { CLICOMMAND_LISTBROTHERS, 0, 1, &cli_frontend::listbrothers, "[system name]" }, + { CLICOMMAND_LISTCRC, 0, 1, &cli_frontend::listcrc, "[system name]" }, + { CLICOMMAND_LISTDEVICES, 0, 1, &cli_frontend::listdevices, "[system name]" }, + { CLICOMMAND_LISTSLOTS, 0, 1, &cli_frontend::listslots, "[system name]" }, + { CLICOMMAND_LISTROMS, 0, -1, &cli_frontend::listroms, "[pattern] ..." }, + { CLICOMMAND_LISTSAMPLES, 0, 1, &cli_frontend::listsamples, "[system name]" }, + { CLICOMMAND_VERIFYROMS, 0, -1, &cli_frontend::verifyroms, "[pattern] ..." }, + { CLICOMMAND_VERIFYSAMPLES, 0, 1, &cli_frontend::verifysamples, "[system name|*]" }, + { CLICOMMAND_LISTMEDIA, 0, 1, &cli_frontend::listmedia, "[system name]" }, + { CLICOMMAND_LISTSOFTWARE, 0, 1, &cli_frontend::listsoftware, "[system name]" }, + { CLICOMMAND_VERIFYSOFTWARE, 0, 1, &cli_frontend::verifysoftware, "[system name|*]" }, + { CLICOMMAND_ROMIDENT, 1, 1, &cli_frontend::romident, "(file or directory path)" }, + { CLICOMMAND_GETSOFTLIST, 0, 1, &cli_frontend::getsoftlist, "[system name|*]" }, + { CLICOMMAND_VERIFYSOFTLIST, 0, 1, &cli_frontend::verifysoftlist, "[system name|*]" } }; for (const auto &info_command : s_info_commands) @@ -1500,17 +1509,6 @@ const cli_frontend::info_command_struct *cli_frontend::find_command(const std::s //------------------------------------------------- -// parse_slot_options_for_auxverb -//------------------------------------------------- - -bool cli_frontend::parse_slot_options_for_auxverb(const std::string &auxverb) -{ - const info_command_struct *command = find_command(auxverb); - return command && command->specify_system; -} - - -//------------------------------------------------- // execute_commands - execute various frontend // commands //------------------------------------------------- @@ -1545,10 +1543,10 @@ void cli_frontend::execute_commands(const char *exename) } // other commands need the INIs parsed - std::string option_errors; + std::ostringstream option_errors; mame_options::parse_standard_inis(m_options,option_errors); - if (!option_errors.empty()) - osd_printf_error("%s\n", option_errors.c_str()); + if (option_errors.tellp() > 0) + osd_printf_error("%s\n", option_errors.str().c_str()); // createconfig? if (m_options.command() == CLICOMMAND_CREATECONFIG) diff --git a/src/frontend/mame/clifront.h b/src/frontend/mame/clifront.h index 7e19fdd2e84..71e161dba07 100644 --- a/src/frontend/mame/clifront.h +++ b/src/frontend/mame/clifront.h @@ -34,16 +34,12 @@ public: // execute based on the incoming argc/argv int execute(std::vector<std::string> &args); - // should we parse slot options for the auxillary verb in question? - static bool parse_slot_options_for_auxverb(const std::string &auxverb); - private: struct info_command_struct { const char *option; int min_args; int max_args; - bool specify_system; void (cli_frontend::*function)(const std::vector<std::string> &args); const char *usage; }; @@ -72,7 +68,7 @@ private: void execute_commands(const char *exename); void display_help(const char *exename); void output_single_softlist(FILE *out, software_list_device &swlist); - void start_execution(mame_machine_manager *manager, std::vector<std::string> &args); + void start_execution(mame_machine_manager *manager, const std::vector<std::string> &args); static const info_command_struct *find_command(const std::string &s); // internal state diff --git a/src/frontend/mame/info.cpp b/src/frontend/mame/info.cpp index 4aebe5b29c6..fa836b27abe 100644 --- a/src/frontend/mame/info.cpp +++ b/src/frontend/mame/info.cpp @@ -191,9 +191,7 @@ const char info_xml_creator::s_dtd_string[] = info_xml_creator::info_xml_creator(emu_options const &options) : m_output(nullptr) - , m_lookup_options(options) { - mame_options::remove_device_options(m_lookup_options); } diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index 0dde20fe611..6b62cfe726b 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -721,7 +721,7 @@ void lua_engine::initialize() emu["app_version"] = &emulator_info::get_bare_build_version; emu["gamename"] = [this](){ return machine().system().type.fullname(); }; emu["romname"] = [this](){ return machine().basename(); }; - emu["softname"] = [this](){ return machine().options().software_name(); }; + emu["softname"] = [this]() { return machine().options().software_name(); }; emu["keypost"] = [this](const char *keys){ machine().ioport().natkeyboard().post_utf8(keys); }; emu["time"] = [this](){ return machine().time().as_double(); }; emu["start"] = [this](const char *driver) { @@ -1016,9 +1016,11 @@ void lua_engine::initialize() "entries", sol::property([this](core_options &options) { sol::table table = sol().create_table(); int unadorned_index = 0; - for(core_options::entry &curentry : options) + for (auto &curentry : options.entries()) { - const char *name = curentry.name(); + const char *name = curentry->names().size() > 0 + ? curentry->name().c_str() + : nullptr; bool is_unadorned = false; // check if it's unadorned if (name && strlen(name) && !strcmp(name, options.unadorned(unadorned_index))) @@ -1026,8 +1028,8 @@ void lua_engine::initialize() unadorned_index++; is_unadorned = true; } - if (!curentry.is_header() && !curentry.is_command() && !curentry.is_internal() && !is_unadorned) - table[name] = &curentry; + if (curentry->type() != core_options::option_type::HEADER && curentry->type() != core_options::option_type::COMMAND && !is_unadorned) + table[name] = &*curentry; } return table; })); @@ -1068,18 +1070,19 @@ void lua_engine::initialize() e.set_value(val, OPTION_PRIORITY_CMDLINE); }, [this](core_options::entry &e) -> sol::object { - if(!e.type()) + if (e.type() == core_options::option_type::INVALID) return sol::make_object(sol(), sol::nil); switch(e.type()) { - case OPTION_BOOLEAN: + case core_options::option_type::BOOLEAN: return sol::make_object(sol(), atoi(e.value()) != 0); - case OPTION_INTEGER: + case core_options::option_type::INTEGER: return sol::make_object(sol(), atoi(e.value())); - case OPTION_FLOAT: + case core_options::option_type::FLOAT: return sol::make_object(sol(), atof(e.value())); + default: + return sol::make_object(sol(), e.value()); } - return sol::make_object(sol(), e.value()); }), "description", &core_options::entry::description, "default_value", &core_options::entry::default_value, diff --git a/src/frontend/mame/mame.cpp b/src/frontend/mame/mame.cpp index cdab8e4d9c9..bc9d9b334b7 100644 --- a/src/frontend/mame/mame.cpp +++ b/src/frontend/mame/mame.cpp @@ -124,36 +124,38 @@ void mame_machine_manager::start_luaengine() std::vector<std::string> exclude = split(options().no_plugin(),','); { // parse the file - std::string error; // attempt to open the output file emu_file file(options().ini_path(), OPEN_FLAG_READ); if (file.open("plugin.ini") == osd_file::error::NONE) { - bool result = m_plugins->parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_MAME_INI < OPTION_PRIORITY_DRIVER_INI, error); - if (!result) + try + { + m_plugins->parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_MAME_INI < OPTION_PRIORITY_DRIVER_INI, false); + } + catch (options_exception &) + { osd_printf_error("**Error loading plugin.ini**\n"); + } } } - for (auto &curentry : *m_plugins) + for (auto &curentry : m_plugins->entries()) { - if (!curentry.is_header()) + if (curentry->type() != core_options::option_type::HEADER) { - if (std::find(include.begin(), include.end(), curentry.name()) != include.end()) + if (std::find(include.begin(), include.end(), curentry->name()) != include.end()) { - std::string error_string; - m_plugins->set_value(curentry.name(), "1", OPTION_PRIORITY_CMDLINE, error_string); + m_plugins->set_value(curentry->name(), "1", OPTION_PRIORITY_CMDLINE); } - if (std::find(exclude.begin(), exclude.end(), curentry.name()) != exclude.end()) + if (std::find(exclude.begin(), exclude.end(), curentry->name()) != exclude.end()) { - std::string error_string; - m_plugins->set_value(curentry.name(), "0", OPTION_PRIORITY_CMDLINE, error_string); + m_plugins->set_value(curentry->name(), "0", OPTION_PRIORITY_CMDLINE); } } } } - if (options().console()) { - std::string error_string; - m_plugins->set_value("console", "1", OPTION_PRIORITY_CMDLINE, error_string); + if (options().console()) + { + m_plugins->set_value("console", "1", OPTION_PRIORITY_CMDLINE); } m_lua->initialize(); @@ -202,9 +204,8 @@ int mame_machine_manager::execute() // parse any INI files as the first thing if (m_options.read_config()) { - m_options.revert(OPTION_PRIORITY_INI); - std::string errors; - mame_options::parse_standard_inis(m_options,errors); + std::ostringstream errors; + mame_options::parse_standard_inis(m_options, errors); } // otherwise, perform validity checks before anything else @@ -216,11 +217,6 @@ int mame_machine_manager::execute() valid.check_shared_source(*system); } - // reevaluate slot options until nothing changes - while (mame_options::reevaluate_slot_options(m_options)) - { - } - // create the machine configuration machine_config config(*system, m_options); @@ -237,12 +233,13 @@ int mame_machine_manager::execute() if (m_new_driver_pending) { // set up new system name and adjust device options accordingly - mame_options::set_system_name(m_options,m_new_driver_pending->name); + m_options.set_system_name(m_new_driver_pending->name); m_firstrun = true; } else { - if (machine.exit_pending()) mame_options::set_system_name(m_options,""); + if (machine.exit_pending()) + m_options.set_system_name(""); } if (machine.exit_pending() && (!started_empty || is_empty)) diff --git a/src/frontend/mame/mameopts.cpp b/src/frontend/mame/mameopts.cpp index 9a00f1543e2..fc73c36a9f7 100644 --- a/src/frontend/mame/mameopts.cpp +++ b/src/frontend/mame/mameopts.cpp @@ -22,511 +22,21 @@ #include <stack> -int mame_options::m_slot_options = 0; -int mame_options::m_device_options = 0; - -//------------------------------------------------- -// add_slot_options - add all of the slot -// options for the configured system -//------------------------------------------------- - -bool mame_options::add_slot_options(emu_options &options, value_specifier_func value_specifier) -{ - // look up the system configured by name; if no match, do nothing - const game_driver *cursystem = system(options); - if (cursystem == nullptr) - return false; - - // create the configuration - machine_config config(*cursystem, options); - - // iterate through all slot devices - int starting_count = options.options_count(); - for (const device_slot_interface &slot : slot_interface_iterator(config.root_device())) - { - // skip fixed slots - if (slot.fixed()) - continue; - - // retrieve info about the device instance - const char *name = slot.device().tag() + 1; - if (!options.exists(name)) - { - // first device? add the header as to be pretty - if (m_slot_options++ == 0) - options.add_entry(nullptr, "SLOT DEVICES", OPTION_HEADER | OPTION_FLAG_DEVICE); - - // add the option - options.add_entry(name, nullptr, OPTION_STRING | OPTION_FLAG_DEVICE, slot.default_option(), true); - options.slot_options()[name] = slot_option(slot.default_option()); - - // allow opportunity to specify this value - if (value_specifier) - { - std::string specified_value = value_specifier(name); - if (specified_value != value_specifier_invalid_value()) - options.slot_options()[name].specify(std::move(specified_value)); - } - } - } - return (options.options_count() != starting_count); -} - - -//------------------------------------------------- -// update_slot_options - update slot values -// depending of image mounted -//------------------------------------------------- - -void mame_options::update_slot_options(emu_options &options, const software_part *swpart) -{ - // look up the system configured by name; if no match, do nothing - const game_driver *cursystem = system(options); - if (cursystem == nullptr) - return; - machine_config config(*cursystem, options); - - // iterate through all slot devices - for (device_slot_interface &slot : slot_interface_iterator(config.root_device())) - { - // retrieve info about the device instance - const char *name = slot.device().tag() + 1; - if (options.exists(name) && !slot.option_list().empty()) - { - std::string defvalue = get_default_card_software(slot, options); - if (defvalue.empty()) - { - // keep any non-default setting - if (options.priority(name) > OPTION_PRIORITY_DEFAULT) - continue; - - // reinstate the actual default value as configured - if (slot.default_option() != nullptr) - defvalue.assign(slot.default_option()); - } - - // set the value and hide the option if not selectable - options.set_default_value(name, defvalue.c_str()); - const device_slot_option *option = slot.option(defvalue.c_str()); - options.set_flag(name, ~OPTION_FLAG_INTERNAL, (option != nullptr && !option->selectable()) ? OPTION_FLAG_INTERNAL : 0); - } - } - add_device_options(options); -} - - -//------------------------------------------------- -// get_default_card_software -//------------------------------------------------- - -std::string mame_options::get_default_card_software(device_slot_interface &slot, const emu_options &options) -{ - std::string image_path; - std::function<bool(util::core_file &, std::string&)> get_hashfile_extrainfo; - - // figure out if an image option has been specified, and if so, get the image path out of the options - device_image_interface *image = dynamic_cast<device_image_interface *>(&slot); - if (image) - { - auto iter = options.image_options().find(image->instance_name()); - if (iter != options.image_options().end()) - image_path = iter->second; - - get_hashfile_extrainfo = [image, &options](util::core_file &file, std::string &extrainfo) - { - util::hash_collection hashes = image->calculate_hash_on_file(file); - - return hashfile_extrainfo( - options.hash_path(), - image->device().mconfig().gamedrv(), - hashes, - extrainfo); - }; - } - - // create the hook - get_default_card_software_hook hook(image_path, std::move(get_hashfile_extrainfo)); - - // and invoke the slot's implementation of get_default_card_software() - return slot.get_default_card_software(hook); -} - - -//------------------------------------------------- -// add_device_options - add all of the device -// options for the configured system -//------------------------------------------------- - -void mame_options::add_device_options(emu_options &options, value_specifier_func value_specifier) -{ - // look up the system configured by name; if no match, do nothing - const game_driver *cursystem = system(options); - if (cursystem == nullptr) - return; - machine_config config(*cursystem, options); - - // iterate through all image devices - for (device_image_interface &image : image_interface_iterator(config.root_device())) - { - if (!image.user_loadable()) - continue; - - // add the option - if (!options.exists(image.instance_name().c_str())) - { - // first device? add the header as to be pretty - if (m_device_options++ == 0) - options.add_entry(nullptr, "IMAGE DEVICES", OPTION_HEADER | OPTION_FLAG_DEVICE); - - // add the option - std::string option_name = get_full_option_name(image); - options.add_entry(option_name.c_str(), nullptr, OPTION_STRING | OPTION_FLAG_DEVICE, nullptr, true); - options.image_options()[image.instance_name()] = ""; - - // allow opportunity to specify this value - if (value_specifier) - { - std::string value = value_specifier(image.instance_name()); - if (value != value_specifier_invalid_value()) - options.image_options()[image.instance_name()] = std::move(value); - } - } - } -} - - -//------------------------------------------------- -// remove_device_options - remove device options -//------------------------------------------------- - -std::string mame_options::get_full_option_name(const device_image_interface &image) -{ - std::ostringstream option_name; - util::stream_format(option_name, "%s;%s", image.instance_name(), image.brief_instance_name()); - if (strcmp(image.device_typename(image.image_type()), image.instance_name().c_str()) == 0) - util::stream_format(option_name, ";%s1;%s1", image.instance_name(), image.brief_instance_name()); - return option_name.str(); -} - - -//------------------------------------------------- -// remove_device_options - remove device options -//------------------------------------------------- - -void mame_options::remove_device_options(emu_options &options) -{ - // iterate through options and remove interesting ones - core_options::entry *nextentry; - for (auto *curentry = options.first(); curentry != nullptr; curentry = nextentry) - { - // pre-fetch the next entry in case we delete this one - nextentry = curentry->next(); - - // if this is a device option, nuke it - if ((curentry->flags() & OPTION_FLAG_DEVICE) != 0) - options.remove_entry(*curentry); - } - - // take also care of ramsize options - options.set_default_value(OPTION_RAMSIZE, ""); - - // reset counters - m_slot_options = 0; - m_device_options = 0; -} - - -//------------------------------------------------- -// parse_slot_devices - parse the command line -// and update slot and image devices -//------------------------------------------------- - -void mame_options::parse_slot_devices(emu_options &options, value_specifier_func value_specifier) -{ - bool still_adding = true; - while (still_adding) - { - // keep adding slot options until we stop seeing new stuff - still_adding = false; - while (add_slot_options(options, value_specifier)) - still_adding = true; - - // add device options - add_device_options(options, value_specifier); - - if (reevaluate_slot_options(options)) - still_adding = true; - } -} - - -//------------------------------------------------- -// reevaluate_slot_options - based on recent changes -// in what images are mounted, give drivers a chance -// to specify new default slot options -//------------------------------------------------- - -bool mame_options::reevaluate_slot_options(emu_options &options) -{ - bool result = false; - - // look up the system configured by name; if no match, do nothing - const game_driver *cursystem = system(options); - if (cursystem == nullptr) - return result; - machine_config config(*cursystem, options); - - // iterate through all slot devices - for (device_slot_interface &slot : slot_interface_iterator(config.root_device())) - { - // retrieve info about the device instance - const char *name = slot.device().tag() + 1; - if (options.exists(name) && !slot.option_list().empty()) - { - // device_slot_interface::get_default_card_software() is essentially a hook - // that lets devices provide a feedback loop to force a specified software - // list entry to be loaded - // - // In the repeated cycle of adding slots and slot devices, this gives a chance - // for devices to "plug in" default software list items. Of course, the fact - // that this is all shuffling options is brittle and roundabout, but such is - // the nature of software lists. - // - // In reality, having some sort of hook into the pipeline of slot/device evaluation - // makes sense, but the fact that it is joined at the hip to device_image_interface - // and device_slot_interface is unfortunate - std::string default_card_software = get_default_card_software(slot, options); - if (!default_card_software.empty()) - { - // we have default card software - is this resulting in the slot option being mutated? - if (options.slot_options()[name].default_card_software() != default_card_software) - { - options.slot_options()[name].set_default_card_software(std::move(default_card_software)); - result = true; - } - } - } - } - return result; -} - - -//------------------------------------------------- -// parse_command_line - parse the command line -// and update the devices -//------------------------------------------------- - -bool mame_options::parse_command_line(emu_options &options, std::vector<std::string> &args, std::string &error_string) -{ - // parse the command line - if (!options.parse_command_line(args, OPTION_PRIORITY_CMDLINE, error_string)) - return false; - - // in order to evaluate softlist options, we need to fish any hashpath variable out of INI files; this is - // because hashpath in particular can affect softlist evaluation - if (options.software_name()[0] != '\0' && options.read_config()) - populate_hashpath_from_ini_files(options); - - // identify any options as a result of softlists - auto softlist_opts = evaluate_initial_softlist_options(options); - - // assemble a "value specifier" that will be used to specify options set up as a consequence - // of slot and device setup - auto value_specifier = [&options, &softlist_opts, &args, &error_string](const std::string &arg) - { - // first find within the command line - std::string arg_value; - bool success = options.pluck_from_command_line(args, arg, arg_value); - - // next try to find within softlist-specified options - if (!success) - { - auto iter = softlist_opts.find(arg); - if (iter != softlist_opts.end()) - { - arg_value = iter->second; - success = true; - } - } - - // did we find something? - return success - ? arg_value - : value_specifier_invalid_value(); - }; - - // some auxillary verbs expect that slot options are specified; and to do this we need to figure - // out if this is necessary for this particular auxillary verb, and if so, set the system name - if (!options.command().empty() - && cli_frontend::parse_slot_options_for_auxverb(options.command()) - && !options.command_arguments().empty() - && !core_iswildstr(options.command_arguments()[0].c_str())) - { - std::string error_string; - options.set_value(OPTION_SYSTEMNAME, options.command_arguments()[0].c_str(), OPTION_PRIORITY_CMDLINE, error_string); - - const game_driver *system = mame_options::system(options); - if (!system) - throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "Unknown system '%s'", options.system_name()); - } - - // parse the slot devices - parse_slot_devices(options, value_specifier); - - // at this point, we should have handled all arguments; the only argument that shouldn't have - // been handled is the file name - if (args.size() > 1) - { - error_string.append(string_format("Error: unknown option: %s\n", args[1])); - return false; - } - - return true; -} - - -//------------------------------------------------- -// evaluate_initial_softlist_options -//------------------------------------------------- - -std::map<std::string, std::string> mame_options::evaluate_initial_softlist_options(emu_options &options) -{ - std::map<std::string, std::string> results; - - // load software specified at the command line (if any of course) - std::string software_identifier = options.software_name(); - if (!software_identifier.empty()) - { - // we have software; first identify the proper game_driver - const game_driver *system = mame_options::system(options); - if (system == nullptr && *(options.system_name()) != 0) - throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "Unknown system '%s'", options.system_name()); - - // and set up a configuration - machine_config config(*system, options); - software_list_device_iterator iter(config.root_device()); - if (iter.count() == 0) - throw emu_fatalerror(EMU_ERR_FATALERROR, "Error: unknown option: %s\n", options.software_name()); - - // and finally set up the stack - std::stack<std::string> software_identifier_stack; - software_identifier_stack.push(software_identifier); - - // we need to keep evaluating softlist identifiers until the stack is empty - while (!software_identifier_stack.empty()) - { - // pop the identifier - software_identifier = std::move(software_identifier_stack.top()); - software_identifier_stack.pop(); - - // and parse it - std::string list_name, software_name; - auto colon_pos = software_identifier.find_first_of(':'); - if (colon_pos != std::string::npos) - { - list_name = software_identifier.substr(0, colon_pos); - software_name = software_identifier.substr(colon_pos + 1); - } - else - { - software_name = software_identifier; - } - - // loop through all softlist devices, and try to find one capable of handling the requested software - bool found = false; - bool compatible = false; - for (software_list_device &swlistdev : iter) - { - if (list_name.empty() || (list_name == swlistdev.list_name())) - { - const software_info *swinfo = swlistdev.find(software_name); - if (swinfo != nullptr) - { - // loop through all parts - for (const software_part &swpart : swinfo->parts()) - { - // only load compatible software this way - if (swlistdev.is_compatible(swpart) == SOFTWARE_IS_COMPATIBLE) - { - // we need to find a mountable image slot, but we need to ensure it is a slot - // for which we have not already distributed a part to - device_image_interface *image = software_list_device::find_mountable_image( - config, - swpart, - [&results](const device_image_interface &candidate) { return results.count(candidate.instance_name()) == 0; }); - - // did we find a slot to put this part into? - if (image != nullptr) - { - // we've resolved this software - results[image->instance_name()] = string_format("%s:%s:%s", swlistdev.list_name(), software_name, swpart.name()); - - // does this software part have a requirement on another part? - const char *requirement = swpart.feature("requirement"); - if (requirement) - software_identifier_stack.push(requirement); - } - compatible = true; - } - found = true; - } - - // identify other shared features specified as '<<slot name>>_default' - // - // example from SMS: - // - // <software name = "alexbmx"> - // ... - // <sharedfeat name = "ctrl1_default" value = "paddle" /> - // </software> - for (const feature_list_item &fi : swinfo->shared_info()) - { - const std::string default_suffix = "_default"; - if (fi.name().size() > default_suffix.size() - && fi.name().compare(fi.name().size() - default_suffix.size(), default_suffix.size(), default_suffix) == 0) - { - std::string slot_name = fi.name().substr(0, fi.name().size() - default_suffix.size()); - results[slot_name] = fi.value(); - } - } - } - } - if (compatible) - break; - } - - if (!compatible) - { - software_list_device::display_matches(config, nullptr, software_name); - if (!found) - throw emu_fatalerror(EMU_ERR_FATALERROR, nullptr); - else - throw emu_fatalerror(EMU_ERR_FATALERROR, "Software '%s' is incompatible with system '%s'\n", software_name.c_str(), options.system_name()); - } - } - } - return results; -} - - //------------------------------------------------- // parse_standard_inis - parse the standard set // of INI files //------------------------------------------------- -void mame_options::parse_standard_inis(emu_options &options, std::string &error_string, const game_driver *driver) +void mame_options::parse_standard_inis(emu_options &options, std::ostream &error_stream, const game_driver *driver) { - // start with an empty string - error_string.clear(); - // parse the INI file defined by the platform (e.g., "mame.ini") // we do this twice so that the first file can change the INI path - parse_one_ini(options,emulator_info::get_configname(), OPTION_PRIORITY_MAME_INI); - parse_one_ini(options,emulator_info::get_configname(), OPTION_PRIORITY_MAME_INI, &error_string); + parse_one_ini(options, emulator_info::get_configname(), OPTION_PRIORITY_MAME_INI); + parse_one_ini(options, emulator_info::get_configname(), OPTION_PRIORITY_MAME_INI, &error_stream); // debug mode: parse "debug.ini" as well if (options.debug()) - parse_one_ini(options,"debug", OPTION_PRIORITY_DEBUG_INI, &error_string); + parse_one_ini(options, "debug", OPTION_PRIORITY_DEBUG_INI, &error_stream); // if we have a valid system driver, parse system-specific INI files const game_driver *cursystem = (driver == nullptr) ? system(options) : driver; @@ -535,18 +45,18 @@ void mame_options::parse_standard_inis(emu_options &options, std::string &error_ // parse "vertical.ini" or "horizont.ini" if (cursystem->flags & ORIENTATION_SWAP_XY) - parse_one_ini(options,"vertical", OPTION_PRIORITY_ORIENTATION_INI, &error_string); + parse_one_ini(options, "vertical", OPTION_PRIORITY_ORIENTATION_INI, &error_stream); else - parse_one_ini(options,"horizont", OPTION_PRIORITY_ORIENTATION_INI, &error_string); + parse_one_ini(options, "horizont", OPTION_PRIORITY_ORIENTATION_INI, &error_stream); if (cursystem->flags & MACHINE_TYPE_ARCADE) - parse_one_ini(options,"arcade", OPTION_PRIORITY_SYSTYPE_INI, &error_string); + parse_one_ini(options, "arcade", OPTION_PRIORITY_SYSTYPE_INI, &error_stream); else if (cursystem->flags & MACHINE_TYPE_CONSOLE) - parse_one_ini(options,"console", OPTION_PRIORITY_SYSTYPE_INI, &error_string); + parse_one_ini(options ,"console", OPTION_PRIORITY_SYSTYPE_INI, &error_stream); else if (cursystem->flags & MACHINE_TYPE_COMPUTER) - parse_one_ini(options,"computer", OPTION_PRIORITY_SYSTYPE_INI, &error_string); + parse_one_ini(options, "computer", OPTION_PRIORITY_SYSTYPE_INI, &error_stream); else if (cursystem->flags & MACHINE_TYPE_OTHER) - parse_one_ini(options,"othersys", OPTION_PRIORITY_SYSTYPE_INI, &error_string); + parse_one_ini(options, "othersys", OPTION_PRIORITY_SYSTYPE_INI, &error_stream); machine_config config(*cursystem, options); for (const screen_device &device : screen_device_iterator(config.root_device())) @@ -554,35 +64,35 @@ void mame_options::parse_standard_inis(emu_options &options, std::string &error_ // parse "raster.ini" for raster games if (device.screen_type() == SCREEN_TYPE_RASTER) { - parse_one_ini(options,"raster", OPTION_PRIORITY_SCREEN_INI, &error_string); + parse_one_ini(options, "raster", OPTION_PRIORITY_SCREEN_INI, &error_stream); break; } // parse "vector.ini" for vector games if (device.screen_type() == SCREEN_TYPE_VECTOR) { - parse_one_ini(options,"vector", OPTION_PRIORITY_SCREEN_INI, &error_string); + parse_one_ini(options, "vector", OPTION_PRIORITY_SCREEN_INI, &error_stream); break; } // parse "lcd.ini" for lcd games if (device.screen_type() == SCREEN_TYPE_LCD) { - parse_one_ini(options,"lcd", OPTION_PRIORITY_SCREEN_INI, &error_string); + parse_one_ini(options, "lcd", OPTION_PRIORITY_SCREEN_INI, &error_stream); break; } } // next parse "source/<sourcefile>.ini" std::string sourcename = core_filename_extract_base(cursystem->type.source(), true).insert(0, "source" PATH_SEPARATOR); - parse_one_ini(options,sourcename.c_str(), OPTION_PRIORITY_SOURCE_INI, &error_string); + parse_one_ini(options, sourcename.c_str(), OPTION_PRIORITY_SOURCE_INI, &error_stream); // then parse the grandparent, parent, and system-specific INIs int parent = driver_list::clone(*cursystem); int gparent = (parent != -1) ? driver_list::clone(parent) : -1; if (gparent != -1) - parse_one_ini(options,driver_list::driver(gparent).name, OPTION_PRIORITY_GPARENT_INI, &error_string); + parse_one_ini(options, driver_list::driver(gparent).name, OPTION_PRIORITY_GPARENT_INI, &error_stream); if (parent != -1) - parse_one_ini(options,driver_list::driver(parent).name, OPTION_PRIORITY_PARENT_INI, &error_string); - parse_one_ini(options,cursystem->name, OPTION_PRIORITY_DRIVER_INI, &error_string); + parse_one_ini(options, driver_list::driver(parent).name, OPTION_PRIORITY_PARENT_INI, &error_stream); + parse_one_ini(options, cursystem->name, OPTION_PRIORITY_DRIVER_INI, &error_stream); } @@ -599,136 +109,89 @@ const game_driver *mame_options::system(const emu_options &options) //------------------------------------------------- -// set_system_name - set a new system name -//------------------------------------------------- - -void mame_options::set_system_name(emu_options &options, const char *name) -{ - // remember the original system name - std::string old_system_name(options.system_name()); - bool new_system = old_system_name.compare(name) != 0; - - // if the system name changed, fix up the device options - if (new_system) - { - // first set the new name - std::string error; - options.set_value(OPTION_SYSTEMNAME, name, OPTION_PRIORITY_CMDLINE, error); - assert(error.empty()); - - // remove any existing device options - remove_device_options(options); - } - else - { - // revert device options set for the old software - options.revert(OPTION_PRIORITY_SUBCMD, OPTION_PRIORITY_SUBCMD); - } - - // get the new system - const game_driver *cursystem = system(options); - if (cursystem == nullptr) - return; - - if (*options.software_name() != 0) - { - std::string sw_load(options.software_name()); - std::string sw_list, sw_name, sw_part, sw_instance, error_string; - int left = sw_load.find_first_of(':'); - int middle = sw_load.find_first_of(':', left + 1); - int right = sw_load.find_last_of(':'); - - sw_list = sw_load.substr(0, left); - sw_name = sw_load.substr(left + 1, middle - left - 1); - sw_part = sw_load.substr(middle + 1, right - middle - 1); - sw_instance = sw_load.substr(right + 1); - sw_load.assign(sw_load.substr(0, right)); - - // look up the software part - machine_config config(*cursystem, options); - software_list_device *swlist = software_list_device::find_by_name(config, sw_list.c_str()); - const software_info *swinfo = swlist != nullptr ? swlist->find(sw_name.c_str()) : nullptr; - const software_part *swpart = swinfo != nullptr ? swinfo->find_part(sw_part.c_str()) : nullptr; - if (swpart == nullptr) - osd_printf_warning("Could not find %s in software list\n", options.software_name()); - - // then add the options - if (new_system) - { - while (add_slot_options(options)) {} - add_device_options(options); - } - - options.set_value(OPTION_SOFTWARENAME, sw_name.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - if (options.exists(sw_instance.c_str())) - options.set_value(sw_instance.c_str(), sw_load.c_str(), OPTION_PRIORITY_SUBCMD, error_string); - - int num; - do { - num = options.options_count(); - update_slot_options(options,swpart); - } while (num != options.options_count()); - } - else if (new_system) - { - // add the options afresh - while (add_slot_options(options)) {} - add_device_options(options); - int num; - do { - num = options.options_count(); - update_slot_options(options); - } while (num != options.options_count()); - } -} - -//------------------------------------------------- // parse_one_ini - parse a single INI file //------------------------------------------------- -bool mame_options::parse_one_ini(emu_options &options, const char *basename, int priority, std::string *error_string) +void mame_options::parse_one_ini(emu_options &options, const char *basename, int priority, std::ostream *error_stream) { // don't parse if it has been disabled if (!options.read_config()) - return false; + return; // open the file; if we fail, that's ok emu_file file(options.ini_path(), OPEN_FLAG_READ); osd_printf_verbose("Attempting load of %s.ini\n", basename); osd_file::error filerr = file.open(basename, ".ini"); if (filerr != osd_file::error::NONE) - return false; + return; // parse the file osd_printf_verbose("Parsing %s.ini\n", basename); - std::string error; - bool result = options.parse_ini_file((util::core_file&)file, priority, priority < OPTION_PRIORITY_DRIVER_INI, error); - - // append errors if requested - if (!error.empty() && error_string) - error_string->append(string_format("While parsing %s:\n%s\n", file.fullpath(), error)); + try + { + options.parse_ini_file((util::core_file&)file, priority, priority < OPTION_PRIORITY_DRIVER_INI, false); + } + catch (options_exception &ex) + { + if (error_stream) + util::stream_format(*error_stream, "While parsing %s:\n%s\n", ex.message(), file.fullpath(), ex.message()); + return; + } - return result; } //------------------------------------------------- -// populate_hashpath_from_ini_files +// populate_hashpath_from_args_and_inis //------------------------------------------------- -void mame_options::populate_hashpath_from_ini_files(emu_options &options) +void mame_options::populate_hashpath_from_args_and_inis(emu_options &options, const std::vector<std::string> &args) { - // create temporary emu_options for the purposes of evaluating the INI files - emu_options temp_options; - std::string temp_error_string; - temp_options.set_value(OPTION_SYSTEMNAME, options.system_name(), OPTION_PRIORITY_MAXIMUM, temp_error_string); - temp_options.set_value(OPTION_INIPATH, options.ini_path(), OPTION_PRIORITY_MAXIMUM, temp_error_string); + // The existence of this function comes from the fact that for softlist options to be properly + // evaluated, we need to have the hashpath variable set. The problem is that the hashpath may + // be set anywhere on the command line, but also in any of the myriad INI files that we parse, some + // of which may be system specific (e.g. - nes.ini) or otherwise influenced by the system (e.g. - vector.ini) + // + // I think that it is terrible that we have to do a completely independent pass on the command line and every + // argument simply because any one of these things might be setting - hashpath.Unless we invest the effort in + // building some sort of "late binding" apparatus for options(e.g. - delay evaluation of softlist options until + // we've scoured all INIs for hashpath) that can completely straddle the command line and the INI worlds, doing + // this is the best that we can do IMO. + + // parse the command line + emu_options temp_options(emu_options::option_support::GENERAL_AND_SYSTEM); + try + { + temp_options.parse_command_line(args, OPTION_PRIORITY_CMDLINE, true); + } + catch (options_exception &) + { + // Something is very long; we have bigger problems than -hashpath possibly + // being in never-never land. Punt and let the main code fail + return; + } + + // if we have an auxillary verb, hashpath is irrelevant + if (!temp_options.command().empty()) + return; - // read the INIs into temp_options - parse_standard_inis(temp_options, temp_error_string); + // read INI files + if (temp_options.read_config()) + { + std::ostringstream error_stream; + parse_standard_inis(temp_options, error_stream); + } // and fish out hashpath const auto entry = temp_options.get_entry(OPTION_HASHPATH); if (entry) - options.set_value(OPTION_HASHPATH, entry->value(), entry->priority(), temp_error_string); + { + try + { + options.set_value(OPTION_HASHPATH, entry->value(), entry->priority()); + } + catch (options_exception &) + { + } + } } diff --git a/src/frontend/mame/mameopts.h b/src/frontend/mame/mameopts.h index f9ee3325e52..2b178fb2ead 100644 --- a/src/frontend/mame/mameopts.h +++ b/src/frontend/mame/mameopts.h @@ -50,45 +50,15 @@ class software_part; class mame_options { - static const uint32_t OPTION_FLAG_DEVICE = 0x80000000; - public: - typedef std::function<std::string (const std::string &)> value_specifier_func; - // parsing wrappers - static bool parse_command_line(emu_options &options, std::vector<std::string> &args, std::string &error_string); - static void parse_standard_inis(emu_options &options, std::string &error_string, const game_driver *driver = nullptr); - // FIXME: Couriersud: This should be in image_device_exit - static void remove_device_options(emu_options &options); - + static void parse_standard_inis(emu_options &options, std::ostream &error_stream, const game_driver *driver = nullptr); static const game_driver *system(const emu_options &options); - static void set_system_name(emu_options &options, const char *name); - static bool add_slot_options(emu_options &options, value_specifier_func value_specifier = nullptr); - static bool reevaluate_slot_options(emu_options &options); + static void populate_hashpath_from_args_and_inis(emu_options &options, const std::vector<std::string> &args); private: - // device-specific option handling - static void add_device_options(emu_options &options, value_specifier_func value_specifier = nullptr); - static void update_slot_options(emu_options &options, const software_part *swpart = nullptr); - static void parse_slot_devices(emu_options &options, value_specifier_func value_specifier); - static std::string get_full_option_name(const device_image_interface &image); - static std::string get_default_card_software(device_slot_interface &slot, const emu_options &options); - // INI parsing helper - static bool parse_one_ini(emu_options &options, const char *basename, int priority, std::string *error_string = nullptr); - - // softlist handling - static std::map<std::string, std::string> evaluate_initial_softlist_options(emu_options &options); - - // special function to fish hashpath out of INI files - needed for softlist processing - static void populate_hashpath_from_ini_files(emu_options &options); - - // represents an "invalid" value (an empty string is valid so we can't use that; what I - // really want to return is std::optional<std::string> but C++17 isn't here yet) - static std::string value_specifier_invalid_value() { return std::string("\x01\x02\x03"); } - - static int m_slot_options; - static int m_device_options; + static void parse_one_ini(emu_options &options, const char *basename, int priority, std::ostream *error_stream = nullptr); }; #endif // MAME_FRONTEND_MAMEOPTS_H diff --git a/src/frontend/mame/pluginopts.cpp b/src/frontend/mame/pluginopts.cpp index 779ac6ff709..b9a9e8d3c3b 100644 --- a/src/frontend/mame/pluginopts.cpp +++ b/src/frontend/mame/pluginopts.cpp @@ -75,7 +75,7 @@ void plugin_options::parse_json(std::string path) if (type=="plugin") { - add_entry(core_strdup(plugin_name.c_str()),core_strdup(description.c_str()), OPTION_BOOLEAN, start ? "1" : "0"); + add_entry({ std::move(plugin_name) }, core_strdup(description.c_str()), option_type::BOOLEAN, start ? "1" : "0"); } } diff --git a/src/frontend/mame/ui/custui.cpp b/src/frontend/mame/ui/custui.cpp index 21b2f196440..8f1614861cb 100644 --- a/src/frontend/mame/ui/custui.cpp +++ b/src/frontend/mame/ui/custui.cpp @@ -64,12 +64,10 @@ menu_custom_ui::menu_custom_ui(mame_ui_manager &mui, render_container &container menu_custom_ui::~menu_custom_ui() { - std::string error_string; - ui().options().set_value(OPTION_HIDE_PANELS, ui_globals::panels_status, OPTION_PRIORITY_CMDLINE, error_string); + ui().options().set_value(OPTION_HIDE_PANELS, ui_globals::panels_status, OPTION_PRIORITY_CMDLINE); if (!m_lang.empty()) { - machine().options().set_value(OPTION_LANGUAGE, m_lang[m_currlang].c_str(), OPTION_PRIORITY_CMDLINE, error_string); - machine().options().mark_changed(OPTION_LANGUAGE); + machine().options().set_value(OPTION_LANGUAGE, m_lang[m_currlang].c_str(), OPTION_PRIORITY_CMDLINE); load_translation(machine().options()); } ui_globals::reset = true; @@ -215,22 +213,10 @@ menu_font_ui::menu_font_ui(mame_ui_manager &mui, render_container &container) : m_info_size = moptions.infos_size(); m_font_size = moptions.font_rows(); - - for (ui_options::entry &f_entry : moptions) - { - const char *entry_name = f_entry.name(); - if (entry_name && strlen(entry_name) && !strcmp(OPTION_INFOS_SIZE, f_entry.name())) - { - m_info_max = atof(f_entry.maximum()); - m_info_min = atof(f_entry.minimum()); - } - else if (entry_name && strlen(entry_name) && !strcmp(OPTION_FONT_ROWS, f_entry.name())) - { - m_font_max = atof(f_entry.maximum()); - m_font_min = atof(f_entry.minimum()); - } - } - + m_info_max = atof(moptions.get_entry(OPTION_INFOS_SIZE)->maximum()); + m_info_min = atof(moptions.get_entry(OPTION_INFOS_SIZE)->minimum()); + m_font_max = atof(moptions.get_entry(OPTION_FONT_ROWS)->maximum()); + m_font_max = atof(moptions.get_entry(OPTION_FONT_ROWS)->minimum()); } //------------------------------------------------- @@ -264,11 +250,9 @@ menu_font_ui::~menu_font_ui() name.insert(0, "[B]"); } #endif - machine().options().set_value(OPTION_UI_FONT, name.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - machine().options().mark_changed(OPTION_UI_FONT); - - moptions.set_value(OPTION_INFOS_SIZE, m_info_size, OPTION_PRIORITY_CMDLINE, error_string); - moptions.set_value(OPTION_FONT_ROWS, m_font_size, OPTION_PRIORITY_CMDLINE, error_string); + machine().options().set_value(OPTION_UI_FONT, name, OPTION_PRIORITY_CMDLINE); + moptions.set_value(OPTION_INFOS_SIZE, m_info_size, OPTION_PRIORITY_CMDLINE); + moptions.set_value(OPTION_FONT_ROWS, m_font_size, OPTION_PRIORITY_CMDLINE); } //------------------------------------------------- @@ -463,11 +447,11 @@ menu_colors_ui::menu_colors_ui(mame_ui_manager &mui, render_container &container menu_colors_ui::~menu_colors_ui() { - std::string error_string, dec_color; + std::string dec_color; for (int index = 1; index < MUI_RESTORE; index++) { dec_color = string_format("%x", (uint32_t)m_color_table[index].color); - ui().options().set_value(m_color_table[index].option, dec_color.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + ui().options().set_value(m_color_table[index].option, dec_color.c_str(), OPTION_PRIORITY_CMDLINE); } } diff --git a/src/frontend/mame/ui/dirmenu.cpp b/src/frontend/mame/ui/dirmenu.cpp index baea5973efb..bb1494e37c5 100644 --- a/src/frontend/mame/ui/dirmenu.cpp +++ b/src/frontend/mame/ui/dirmenu.cpp @@ -352,11 +352,10 @@ void menu_add_change_folder::handle() if (m_change) { if (ui().options().exists(s_folders[m_ref].option)) - ui().options().set_value(s_folders[m_ref].option, m_current_path.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + ui().options().set_value(s_folders[m_ref].option, m_current_path.c_str(), OPTION_PRIORITY_CMDLINE); else if (strcmp(machine().options().value(s_folders[m_ref].option), m_current_path.c_str()) != 0) { - machine().options().set_value(s_folders[m_ref].option, m_current_path.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - machine().options().mark_changed(s_folders[m_ref].option); + machine().options().set_value(s_folders[m_ref].option, m_current_path.c_str(), OPTION_PRIORITY_CMDLINE); } } else @@ -371,11 +370,10 @@ void menu_add_change_folder::handle() } if (ui().options().exists(s_folders[m_ref].option)) - ui().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + ui().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE); else if (strcmp(machine().options().value(s_folders[m_ref].option), tmppath.c_str()) != 0) { - machine().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - machine().options().mark_changed(s_folders[m_ref].option); + machine().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE); } } @@ -592,11 +590,10 @@ void menu_remove_folder::handle() } if (ui().options().exists(s_folders[m_ref].option)) - ui().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + ui().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE); else if (strcmp(machine().options().value(s_folders[m_ref].option),tmppath.c_str())!=0) { - machine().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - machine().options().mark_changed(s_folders[m_ref].option); + machine().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE); } reset_parent(reset_options::REMEMBER_REF); diff --git a/src/frontend/mame/ui/info.cpp b/src/frontend/mame/ui/info.cpp index dfcffcac1fb..e4abb6ce94d 100644 --- a/src/frontend/mame/ui/info.cpp +++ b/src/frontend/mame/ui/info.cpp @@ -326,8 +326,7 @@ std::string machine_info::mandatory_images() { if (image.must_be_loaded()) { - auto iter = m_machine.options().image_options().find(image.instance_name()); - if (iter == m_machine.options().image_options().end() || iter->second.empty()) + if (m_machine.options().image_option(image.instance_name()).value().empty()) { if (is_first) is_first = false; diff --git a/src/frontend/mame/ui/miscmenu.cpp b/src/frontend/mame/ui/miscmenu.cpp index 6d797bc8dda..e48b042b53d 100644 --- a/src/frontend/mame/ui/miscmenu.cpp +++ b/src/frontend/mame/ui/miscmenu.cpp @@ -127,12 +127,10 @@ void menu_bios_selection::handle() if (val>cnt) val=1; dev->set_system_bios(val); if (strcmp(dev->tag(),":")==0) { - std::string error; - machine().options().set_value("bios", val-1, OPTION_PRIORITY_CMDLINE, error); - assert(error.empty()); + machine().options().set_value("bios", val-1, OPTION_PRIORITY_CMDLINE); } else { const char *slot_option_name = dev->owner()->tag() + 1; - machine().options().slot_options()[slot_option_name].set_bios(string_format("%d", val - 1)); + machine().options().slot_option(slot_option_name).set_bios(string_format("%d", val - 1)); } reset(reset_options::REMEMBER_REF); } @@ -671,15 +669,14 @@ void menu_export::populate(float &customtop, float &custombottom) menu_machine_configure::menu_machine_configure(mame_ui_manager &mui, render_container &container, const game_driver *prev, float _x0, float _y0) : menu(mui, container) , m_drv(prev) - , m_opts(mui.machine().options()) , x0(_x0) , y0(_y0) , m_curbios(0) , m_fav_reset(false) { // parse the INI file - std::string error; - mame_options::parse_standard_inis(m_opts,error, m_drv); + std::ostringstream error; + mame_options::parse_standard_inis(m_opts, error, m_drv); setup_bios(); } @@ -750,9 +747,7 @@ void menu_machine_configure::handle() else if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT) { (menu_event->iptkey == IPT_UI_LEFT) ? --m_curbios : ++m_curbios; - std::string error; - m_opts.set_value(OPTION_BIOS, m_bios[m_curbios].second, OPTION_PRIORITY_CMDLINE, error); - m_opts.mark_changed(OPTION_BIOS); + m_opts.set_value(OPTION_BIOS, m_bios[m_curbios].second, OPTION_PRIORITY_CMDLINE); reset(reset_options::REMEMBER_POSITION); } } @@ -914,8 +909,7 @@ void menu_plugins_configure::handle() if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT || menu_event->iptkey == IPT_UI_SELECT) { int oldval = plugins.int_value((const char*)menu_event->itemref); - std::string error_string; - plugins.set_value((const char*)menu_event->itemref, oldval == 1 ? 0 : 1, OPTION_PRIORITY_CMDLINE, error_string); + plugins.set_value((const char*)menu_event->itemref, oldval == 1 ? 0 : 1, OPTION_PRIORITY_CMDLINE); changed = true; } } @@ -931,13 +925,13 @@ void menu_plugins_configure::populate(float &customtop, float &custombottom) { plugin_options& plugins = mame_machine_manager::instance()->plugins(); - for (auto &curentry : plugins) + for (auto &curentry : plugins.entries()) { - if (!curentry.is_header()) + if (curentry->type() != OPTION_HEADER) { - auto enabled = std::string(curentry.value()) == "1"; - item_append(curentry.description(), enabled ? _("On") : _("Off"), - enabled ? FLAG_RIGHT_ARROW : FLAG_LEFT_ARROW, (void *)(uintptr_t)curentry.name()); + auto enabled = !strcmp(curentry->value(), "1"); + item_append(curentry->description(), enabled ? _("On") : _("Off"), + enabled ? FLAG_RIGHT_ARROW : FLAG_LEFT_ARROW, (void *)(uintptr_t)curentry->name().c_str()); } } item_append(menu_item_type::SEPARATOR); diff --git a/src/frontend/mame/ui/selgame.cpp b/src/frontend/mame/ui/selgame.cpp index faeb1f33aff..33cebb00083 100644 --- a/src/frontend/mame/ui/selgame.cpp +++ b/src/frontend/mame/ui/selgame.cpp @@ -116,8 +116,7 @@ menu_select_game::menu_select_game(mame_ui_manager &mui, render_container &conta if (!moptions.remember_last()) reselect_last::reset(); - mui.machine().options().set_value(OPTION_SNAPNAME, "%g/%i", OPTION_PRIORITY_CMDLINE, error_string); - mui.machine().options().set_value(OPTION_SOFTWARENAME, "", OPTION_PRIORITY_CMDLINE, error_string); + mui.machine().options().set_value(OPTION_SNAPNAME, "%g/%i", OPTION_PRIORITY_CMDLINE); ui_globals::curimage_view = FIRST_VIEW; ui_globals::curdats_view = 0; @@ -155,9 +154,9 @@ menu_select_game::~menu_select_game() filter.append(",").append(c_year::ui[c_year::actual]); ui_options &mopt = ui().options(); - mopt.set_value(OPTION_LAST_USED_FILTER, filter.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - mopt.set_value(OPTION_LAST_USED_MACHINE, last_driver.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - mopt.set_value(OPTION_HIDE_PANELS, ui_globals::panels_status, OPTION_PRIORITY_CMDLINE, error_string); + mopt.set_value(OPTION_LAST_USED_FILTER, filter.c_str(), OPTION_PRIORITY_CMDLINE); + mopt.set_value(OPTION_LAST_USED_MACHINE, last_driver.c_str(), OPTION_PRIORITY_CMDLINE); + mopt.set_value(OPTION_HIDE_PANELS, ui_globals::panels_status, OPTION_PRIORITY_CMDLINE); ui().save_ui_options(); } @@ -942,11 +941,10 @@ void menu_select_game::inkey_select_favorite(const event *menu_event) return; } - std::string error_string; std::string string_list = string_format("%s:%s:%s:%s", ui_swinfo->listname, ui_swinfo->shortname, ui_swinfo->part, ui_swinfo->instance); - mopt.set_value(OPTION_SOFTWARENAME, string_list.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + mopt.set_value(OPTION_SOFTWARENAME, string_list.c_str(), OPTION_PRIORITY_CMDLINE); std::string snap_list = std::string(ui_swinfo->listname).append(PATH_SEPARATOR).append(ui_swinfo->shortname); - mopt.set_value(OPTION_SNAPNAME, snap_list.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + mopt.set_value(OPTION_SNAPNAME, snap_list.c_str(), OPTION_PRIORITY_CMDLINE); reselect_last::driver = drv.driver().name; reselect_last::software = ui_swinfo->shortname; reselect_last::swlist = ui_swinfo->listname; diff --git a/src/frontend/mame/ui/selsoft.cpp b/src/frontend/mame/ui/selsoft.cpp index 5d95d4c9a2e..8b76a6ef3ad 100644 --- a/src/frontend/mame/ui/selsoft.cpp +++ b/src/frontend/mame/ui/selsoft.cpp @@ -144,9 +144,6 @@ menu_select_software::menu_select_software(mame_ui_manager &mui, render_containe ui_globals::switch_image = true; ui_globals::cur_sw_dats_view = 0; ui_globals::cur_sw_dats_total = 1; - - std::string error_string; - mui.machine().options().set_value(OPTION_SOFTWARENAME, "", OPTION_PRIORITY_CMDLINE, error_string); } //------------------------------------------------- @@ -718,11 +715,10 @@ void menu_select_software::inkey_select(const event *menu_event) return; } - std::string error_string; - std::string string_list = std::string(ui_swinfo->listname).append(":").append(ui_swinfo->shortname).append(":").append(ui_swinfo->part).append(":").append(ui_swinfo->instance); - machine().options().set_value(OPTION_SOFTWARENAME, string_list.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + machine().options().set_system_name(m_driver->name); + machine().options().set_value(OPTION_SOFTWARENAME, ui_swinfo->shortname, OPTION_PRIORITY_CMDLINE); std::string snap_list = std::string(ui_swinfo->listname).append(PATH_SEPARATOR).append(ui_swinfo->shortname); - machine().options().set_value(OPTION_SNAPNAME, snap_list.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + machine().options().set_value(OPTION_SNAPNAME, snap_list.c_str(), OPTION_PRIORITY_CMDLINE); reselect_last::driver = drivlist.driver().name; reselect_last::software = ui_swinfo->shortname; reselect_last::swlist = ui_swinfo->listname; @@ -1288,9 +1284,8 @@ void software_parts::handle() { if ((void*)&elem == menu_event->itemref) { - std::string error_string; std::string string_list = std::string(m_uiinfo->listname).append(":").append(m_uiinfo->shortname).append(":").append(elem.first).append(":").append(m_uiinfo->instance); - machine().options().set_value(OPTION_SOFTWARENAME, string_list.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + machine().options().set_value(OPTION_SOFTWARENAME, string_list.c_str(), OPTION_PRIORITY_CMDLINE); reselect_last::driver = m_uiinfo->driver->name; reselect_last::software = m_uiinfo->shortname; @@ -1298,7 +1293,7 @@ void software_parts::handle() reselect_last::set(true); std::string snap_list = std::string(m_uiinfo->listname).append("/").append(m_uiinfo->shortname); - machine().options().set_value(OPTION_SNAPNAME, snap_list.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + machine().options().set_value(OPTION_SNAPNAME, snap_list.c_str(), OPTION_PRIORITY_CMDLINE); mame_machine_manager::instance()->schedule_new_driver(*m_uiinfo->driver); machine().schedule_hard_reset(); @@ -1400,8 +1395,7 @@ void bios_selection::handle() reselect_last::set(true); } - std::string error; - moptions.set_value(OPTION_BIOS, elem.second, OPTION_PRIORITY_CMDLINE, error); + moptions.set_value(OPTION_BIOS, elem.second, OPTION_PRIORITY_CMDLINE); mame_machine_manager::instance()->schedule_new_driver(*s_driver); machine().schedule_hard_reset(); stack_reset(); @@ -1409,8 +1403,7 @@ void bios_selection::handle() else { ui_software_info *ui_swinfo = (ui_software_info *)m_driver; - std::string error; - machine().options().set_value(OPTION_BIOS, elem.second, OPTION_PRIORITY_CMDLINE, error); + machine().options().set_value(OPTION_BIOS, elem.second, OPTION_PRIORITY_CMDLINE); driver_enumerator drivlist(machine().options(), *ui_swinfo->driver); drivlist.next(); software_list_device *swlist = software_list_device::find_by_name(*drivlist.config(), ui_swinfo->listname.c_str()); @@ -1431,11 +1424,13 @@ void bios_selection::handle() menu::stack_push<software_parts>(ui(), container(), parts, ui_swinfo); return; } - std::string error_string; - std::string string_list = std::string(ui_swinfo->listname).append(":").append(ui_swinfo->shortname).append(":").append(ui_swinfo->part).append(":").append(ui_swinfo->instance); - moptions.set_value(OPTION_SOFTWARENAME, string_list.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - std::string snap_list = std::string(ui_swinfo->listname).append(PATH_SEPARATOR).append(ui_swinfo->shortname); - moptions.set_value(OPTION_SNAPNAME, snap_list.c_str(), OPTION_PRIORITY_CMDLINE, error_string); + moptions.set_value(OPTION_SYSTEMNAME, drivlist.driver().name, OPTION_PRIORITY_CMDLINE); + moptions.set_value(OPTION_SOFTWARENAME, + ui_swinfo->listname + ":" + ui_swinfo->shortname, + OPTION_PRIORITY_CMDLINE); + moptions.set_value(OPTION_SNAPNAME, + ui_swinfo->listname + std::string(PATH_SEPARATOR) + ui_swinfo->shortname, + OPTION_PRIORITY_CMDLINE); reselect_last::driver = drivlist.driver().name; reselect_last::software = ui_swinfo->shortname; reselect_last::swlist = ui_swinfo->listname; diff --git a/src/frontend/mame/ui/slotopt.cpp b/src/frontend/mame/ui/slotopt.cpp index 1e3d8faff88..db771baa756 100644 --- a/src/frontend/mame/ui/slotopt.cpp +++ b/src/frontend/mame/ui/slotopt.cpp @@ -100,10 +100,10 @@ device_slot_option *menu_slot_devices::get_current_option(device_slot_interface { std::string current; - const char *slot_option_name = slot.slot_name(); - if (!slot.fixed() && machine().options().slot_options().count(slot_option_name) > 0) + if (!slot.fixed()) { - current = machine().options().slot_options()[slot_option_name].value(); + const char *slot_option_name = slot.slot_name(); + current = machine().options().slot_option(slot_option_name).value(); } else { @@ -185,9 +185,82 @@ const char *menu_slot_devices::get_previous_slot(device_slot_interface &slot) co void menu_slot_devices::set_slot_device(device_slot_interface &slot, const char *val) { - std::string error; - machine().options().set_value(slot.slot_name(), val, OPTION_PRIORITY_CMDLINE, error); - assert(error.empty()); + // we might change slot options; in the spirit of user friendliness, we should record all current + // options + record_current_options(); + + // find the slot option + slot_option &opt(machine().options().slot_option(slot.slot_name())); + + // specify it + opt.specify(val); + + // erase this from our recorded options list - this is the slot we're trying to change! + m_slot_options.erase(slot.slot_name()); + + // refresh any options that we might have annotated earlier + while (try_refresh_current_options()) + ; + + // changing the options may result in options changing; we need to reset + reset(reset_options::REMEMBER_POSITION); +} + + +//------------------------------------------------- +// record_current_options +//------------------------------------------------- + +void menu_slot_devices::record_current_options() +{ + for (device_slot_interface &slot : slot_interface_iterator(m_config->root_device())) + { + // we're doing this out of a desire to honor user-selectable options; therefore it only + // makes sense to record values for selectable options + if (slot.has_selectable_options()) + { + // get the slot option + const slot_option &opt(machine().options().slot_option(slot.slot_name())); + + // and record the value in our local cache + m_slot_options[slot.slot_name()] = opt.specified_value(); + } + } +} + + +//------------------------------------------------- +// try_refresh_current_options +//------------------------------------------------- + +bool menu_slot_devices::try_refresh_current_options() +{ + // enumerate through all slot options that we've tracked + for (const auto &opt : m_slot_options) + { + // do we have a value different than what we're tracking? + slot_option *slotopt = machine().options().find_slot_option(opt.first); + if (slotopt && slotopt->specified_value() != opt.second) + { + // specify this option (but catch errors) + try + { + slotopt->specify(opt.second); + + // the option was successfully specified; it isn't safe to continue + // checking slots as the act of specifying the slot may have drastically + // changed the options list + return true; + } + catch (options_exception &) + { + // this threw an exception - that is fine; we can just proceed + } + } + } + + // we've went through all options without changing anything + return false; } @@ -197,8 +270,12 @@ void menu_slot_devices::set_slot_device(device_slot_interface &slot, const char void menu_slot_devices::populate(float &customtop, float &custombottom) { + // we need to keep our own copy of the machine_config because we + // can change this out from under the caller + m_config = std::make_unique<machine_config>(machine().system(), machine().options()); + // cycle through all devices for this system - for (device_slot_interface &slot : slot_interface_iterator(machine().root_device())) + for (device_slot_interface &slot : slot_interface_iterator(m_config->root_device())) { // does this slot have any selectable options? bool has_selectable_options = slot.has_selectable_options(); @@ -238,7 +315,6 @@ void menu_slot_devices::handle() { if (menu_event->itemref == ITEMREF_RESET && menu_event->iptkey == IPT_UI_SELECT) { - mame_options::add_slot_options(machine().options()); machine().schedule_hard_reset(); } else if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT) @@ -246,7 +322,6 @@ void menu_slot_devices::handle() device_slot_interface *slot = (device_slot_interface *)menu_event->itemref; const char *val = (menu_event->iptkey == IPT_UI_LEFT) ? get_previous_slot(*slot) : get_next_slot(*slot); set_slot_device(*slot, val); - reset(reset_options::REMEMBER_REF); } else if (menu_event->iptkey == IPT_UI_SELECT) { diff --git a/src/frontend/mame/ui/slotopt.h b/src/frontend/mame/ui/slotopt.h index a3a08bb9590..9fd50d67592 100644 --- a/src/frontend/mame/ui/slotopt.h +++ b/src/frontend/mame/ui/slotopt.h @@ -15,6 +15,7 @@ #include "ui/menu.h" +#include <unordered_map> namespace ui { class menu_slot_devices : public menu @@ -32,6 +33,12 @@ private: const char *get_next_slot(device_slot_interface &slot) const; const char *get_previous_slot(device_slot_interface &slot) const; void set_slot_device(device_slot_interface &slot, const char *val); + void record_current_options(); + bool try_refresh_current_options(); + + // variables + std::unique_ptr<machine_config> m_config; + std::unordered_map<std::string, std::string> m_slot_options; }; } // namespace ui diff --git a/src/frontend/mame/ui/sndmenu.cpp b/src/frontend/mame/ui/sndmenu.cpp index 0a0d1c019ed..f2304b529ea 100644 --- a/src/frontend/mame/ui/sndmenu.cpp +++ b/src/frontend/mame/ui/sndmenu.cpp @@ -45,23 +45,19 @@ menu_sound_options::menu_sound_options(mame_ui_manager &mui, render_container &c menu_sound_options::~menu_sound_options() { - std::string error_string; emu_options &moptions = machine().options(); if (strcmp(moptions.value(OSDOPTION_SOUND),m_sound ? OSDOPTVAL_AUTO : OSDOPTVAL_NONE)!=0) { - moptions.set_value(OSDOPTION_SOUND, m_sound ? OSDOPTVAL_AUTO : OSDOPTVAL_NONE, OPTION_PRIORITY_CMDLINE, error_string); - machine().options().mark_changed(OSDOPTION_SOUND); + moptions.set_value(OSDOPTION_SOUND, m_sound ? OSDOPTVAL_AUTO : OSDOPTVAL_NONE, OPTION_PRIORITY_CMDLINE); } if (moptions.int_value(OPTION_SAMPLERATE)!=m_sound_rate[m_cur_rates]) { - moptions.set_value(OPTION_SAMPLERATE, m_sound_rate[m_cur_rates], OPTION_PRIORITY_CMDLINE, error_string); - machine().options().mark_changed(OPTION_SAMPLERATE); + moptions.set_value(OPTION_SAMPLERATE, m_sound_rate[m_cur_rates], OPTION_PRIORITY_CMDLINE); } if (moptions.bool_value(OPTION_SAMPLES)!=m_samples) { - moptions.set_value(OPTION_SAMPLES, m_samples, OPTION_PRIORITY_CMDLINE, error_string); - machine().options().mark_changed(OPTION_SAMPLES); + moptions.set_value(OPTION_SAMPLES, m_samples, OPTION_PRIORITY_CMDLINE); } } diff --git a/src/frontend/mame/ui/state.cpp b/src/frontend/mame/ui/state.cpp new file mode 100644 index 00000000000..1980418383d --- /dev/null +++ b/src/frontend/mame/ui/state.cpp @@ -0,0 +1,428 @@ +// license:BSD-3-Clause +// copyright-holders:Nathan Woods +/*************************************************************************** + + ui/state.cpp + + Menus for saving and loading state + +***************************************************************************/ + +#include "emu.h" +#include "ui/state.h" +#include "emuopts.h" + + +namespace ui { + +/*************************************************************************** + ANONYMOUS NAMESPACE +***************************************************************************/ + +namespace { + +const int MAX_SAVED_STATE_JOYSTICK = 4; + +//------------------------------------------------- +// keyboard_code +//------------------------------------------------- + +input_code keyboard_code(input_item_id id) +{ + // only supported for A-Z|0-9 + assert((id >= ITEM_ID_A && id <= ITEM_ID_Z) || (id >= ITEM_ID_0 && id <= ITEM_ID_9)); + return input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id); +} + + +//------------------------------------------------- +// keyboard_input_item_name +//------------------------------------------------- + +std::string keyboard_input_item_name(input_item_id id) +{ + if (id >= ITEM_ID_A && id <= ITEM_ID_Z) + return std::string(1, char(id - ITEM_ID_A + 'a')); + if (id >= ITEM_ID_0 && id <= ITEM_ID_9) + return std::string(1, char(id - ITEM_ID_0 + '0')); + + // only supported for A-Z/0-9 + throw false; +} + + +//------------------------------------------------- +// code_item_pair +//------------------------------------------------- + +std::pair<std::string, std::string> code_item_pair(const running_machine &machine, input_item_id id) +{ + // identify the input code name (translated appropriately) + input_code code = keyboard_code(id); + std::string code_name = machine.input().code_name(code); + strmakelower(code_name); + + // identify the keyboard item name + std::string input_item_name = keyboard_input_item_name(id); + + // return them + return std::make_pair(code_name, input_item_name); +} + + +}; + +/*************************************************************************** + FILE ENTRY +***************************************************************************/ + +std::string menu_load_save_state_base::s_last_file_selected; + + +//------------------------------------------------- +// file_entry ctor +//------------------------------------------------- + +menu_load_save_state_base::file_entry::file_entry(std::string &&file_name, std::string &&visible_name, const std::chrono::system_clock::time_point &last_modified) + : m_file_name(std::move(file_name)) + , m_visible_name(std::move(visible_name)) + , m_last_modified(last_modified) +{ +} + + +/*************************************************************************** + BASE CLASS FOR LOAD AND SAVE +***************************************************************************/ + +//------------------------------------------------- +// ctor +//------------------------------------------------- + +menu_load_save_state_base::menu_load_save_state_base(mame_ui_manager &mui, render_container &container, const char *header, const char *footer, bool must_exist) + : menu(mui, container) + , m_header(header) + , m_footer(footer) + , m_must_exist(must_exist) + , m_pause_checked(false) + , m_was_paused(false) +{ +} + + +//------------------------------------------------- +// dtor +//------------------------------------------------- + +menu_load_save_state_base::~menu_load_save_state_base() +{ + // resume if appropriate (is the destructor really the right place + // to do this sort of activity?) + if (!m_was_paused) + machine().resume(); +} + + +//------------------------------------------------- +// populate +//------------------------------------------------- + +void menu_load_save_state_base::populate(float &customtop, float &custombottom) +{ + // build the "filename to code" map, if we have not already (if it were not for the + // possibility that the system keyboard can be changed at runtime, I would put this + // into a static) + if (m_filename_to_code_map.empty()) + { + // loop through A-Z/0-9 + for (input_item_id id = ITEM_ID_A; id <= ITEM_ID_Z; id++) + m_filename_to_code_map.emplace(code_item_pair(machine(), id)); + for (input_item_id id = ITEM_ID_0; id <= ITEM_ID_9; id++) + m_filename_to_code_map.emplace(code_item_pair(machine(), id)); + } + + // open the state directory + std::string statedir = state_directory(); + osd::directory::ptr dir = osd::directory::open(statedir); + + // create a separate vector, so we can add sorted entries to the menu + std::vector<const file_entry *> m_entries_vec; + + // populate all file entries + m_file_entries.clear(); + if (dir) + { + const osd::directory::entry *entry; + while ((entry = dir->read()) != nullptr) + { + if (core_filename_ends_with(entry->name, ".sta")) + { + // get the file name of the entry + std::string file_name = core_filename_extract_base(entry->name, true); + + // try translating it + std::string visible_name = get_visible_name(file_name); + + // and proceed + file_entry fileent(std::string(file_name), std::move(visible_name), entry->last_modified); + auto iter = m_file_entries.emplace(std::make_pair(std::move(file_name), std::move(fileent))).first; + m_entries_vec.push_back(&iter->second); + } + } + } + + // sort the vector; put recently modified state files at the top + std::sort( + m_entries_vec.begin(), + m_entries_vec.end(), + [this](const file_entry *a, const file_entry *b) + { + return a->last_modified() > b->last_modified(); + }); + + // add the entries + for (const file_entry *entry : m_entries_vec) + { + // get the time as a local time string + char time_string[128]; + auto last_modified_time_t = std::chrono::system_clock::to_time_t(entry->last_modified()); + std::strftime(time_string, sizeof(time_string), "%c", std::localtime(&last_modified_time_t)); + + // format the text + std::string text = util::string_format("%s: %s", + entry->visible_name(), + time_string); + + // append the menu item + void *itemref = itemref_from_file_entry(*entry); + item_append(std::move(text), std::string(), 0, itemref); + + // is this item selected? + if (entry->file_name() == s_last_file_selected) + set_selection(itemref); + } + + // set up custom render proc + customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER; + custombottom = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER; + + // pause if appropriate + if (!m_pause_checked) + { + m_was_paused = machine().paused(); + if (!m_was_paused) + machine().pause(); + m_pause_checked = true; + } +} + + +//------------------------------------------------- +// handle +//------------------------------------------------- + +void menu_load_save_state_base::handle() +{ + // process the menu + const event *event = process(0); + + // process the event + if (event && (event->iptkey == IPT_UI_SELECT)) + { + // user selected one of the entries + const file_entry &entry = file_entry_from_itemref(event->itemref); + slot_selected(std::string(entry.file_name())); + } + else + { + // poll inputs + std::string name = poll_inputs(); + if (!name.empty()) + try_select_slot(std::move(name)); + } +} + + +//------------------------------------------------- +// get_visible_name +//------------------------------------------------- + +std::string menu_load_save_state_base::get_visible_name(const std::string &file_name) +{ + if (file_name.size() == 1) + { + auto iter = m_filename_to_code_map.find(file_name); + if (iter != m_filename_to_code_map.end()) + return iter->second; + } + + // otherwise these are the same + return file_name; +} + + +//------------------------------------------------- +// poll_inputs +//------------------------------------------------- + +std::string menu_load_save_state_base::poll_inputs() +{ + // poll A-Z + for (input_item_id id = ITEM_ID_A; id <= ITEM_ID_Z; id++) + { + if (machine().input().code_pressed_once(keyboard_code(id))) + return keyboard_input_item_name(id); + } + + // poll 0-9 + for (input_item_id id = ITEM_ID_0; id <= ITEM_ID_9; id++) + { + if (machine().input().code_pressed_once(keyboard_code(id))) + return keyboard_input_item_name(id); + } + + // poll joysticks + for (int joy_index = 0; joy_index <= MAX_SAVED_STATE_JOYSTICK; joy_index++) + { + for (input_item_id id = ITEM_ID_BUTTON1; id <= ITEM_ID_BUTTON32; ++id) + { + if (machine().input().code_pressed_once(input_code(DEVICE_CLASS_JOYSTICK, joy_index, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id))) + return util::string_format("joy%i-%i", joy_index, id - ITEM_ID_BUTTON1 + 1); + } + } + return ""; +} + + +//------------------------------------------------- +// try_select_slot +//------------------------------------------------- + +void menu_load_save_state_base::try_select_slot(std::string &&name) +{ + if (!m_must_exist || is_present(name)) + slot_selected(std::move(name)); +} + + +//------------------------------------------------- +// slot_selected +//------------------------------------------------- + +void menu_load_save_state_base::slot_selected(std::string &&name) +{ + // handle it + process_file(std::string(name)); + + // record the last slot touched + s_last_file_selected = std::move(name); + + // no matter what, pop out + menu::stack_pop(machine()); +} + + +//------------------------------------------------- +// custom_render - perform our special rendering +//------------------------------------------------- + +void menu_load_save_state_base::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2) +{ + extra_text_render(top, bottom, origx1, origy1, origx2, origy2, + m_header, + m_footer); +} + + +//------------------------------------------------- +// itemref_from_file_entry +//------------------------------------------------- + +void *menu_load_save_state_base::itemref_from_file_entry(const menu_load_save_state_base::file_entry &entry) +{ + return (void *)&entry; +} + + +//------------------------------------------------- +// file_entry_from_itemref +//------------------------------------------------- + +const menu_load_save_state_base::file_entry &menu_load_save_state_base::file_entry_from_itemref(void *itemref) +{ + return *((const file_entry *)itemref); +} + + +//------------------------------------------------- +// is_present +//------------------------------------------------- + +std::string menu_load_save_state_base::state_directory() const +{ + return util::string_format("%s%s%s", + machine().options().state_directory(), + PATH_SEPARATOR, + machine().system().name); +} + + +//------------------------------------------------- +// is_present +//------------------------------------------------- + +bool menu_load_save_state_base::is_present(const std::string &name) const +{ + return m_file_entries.find(name) != m_file_entries.end(); +} + + +/*************************************************************************** + LOAD STATE +***************************************************************************/ + +//------------------------------------------------- +// ctor +//------------------------------------------------- + +menu_load_state::menu_load_state(mame_ui_manager &mui, render_container &container) + : menu_load_save_state_base(mui, container, _("Load State"), _("Select position to load from"), true) +{ +} + + +//------------------------------------------------- +// process_file +//------------------------------------------------- + +void menu_load_state::process_file(std::string &&file_name) +{ + machine().schedule_load(std::move(file_name)); +} + + +/*************************************************************************** + SAVE STATE +***************************************************************************/ + +//------------------------------------------------- +// ctor +//------------------------------------------------- + +menu_save_state::menu_save_state(mame_ui_manager &mui, render_container &container) + : menu_load_save_state_base(mui, container, _("Save State"), _("Select position to save to"), false) +{ +} + + +//------------------------------------------------- +// process_file +//------------------------------------------------- + +void menu_save_state::process_file(std::string &&file_name) +{ + machine().schedule_save(std::move(file_name)); +} + + +} // namespace ui diff --git a/src/frontend/mame/ui/state.h b/src/frontend/mame/ui/state.h new file mode 100644 index 00000000000..0d7bdd2fea9 --- /dev/null +++ b/src/frontend/mame/ui/state.h @@ -0,0 +1,97 @@ +// license:BSD-3-Clause +// copyright-holders:Nathan Woods +/*************************************************************************** + + ui/state.h + + Menus for saving and loading state + +***************************************************************************/ + +#pragma once + +#ifndef MAME_FRONTEND_UI_STATE_H +#define MAME_FRONTEND_UI_STATE_H + +#include "ui/menu.h" + +namespace ui { + +// ======================> menu_load_save_state_base + +class menu_load_save_state_base : public menu +{ +public: + virtual ~menu_load_save_state_base() override; + virtual void populate(float &customtop, float &custombottom) override; + virtual void handle() override; + virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override; + +protected: + menu_load_save_state_base(mame_ui_manager &mui, render_container &container, const char *header, const char *footer, bool must_exist); + virtual void process_file(std::string &&file_name) = 0; + +private: + class file_entry + { + public: + file_entry() = delete; + file_entry(const file_entry &) = delete; + file_entry(file_entry &&) = default; + file_entry(std::string &&file_name, std::string &&visible_name, const std::chrono::system_clock::time_point &last_modified); + + const std::string &file_name() const { return m_file_name; } + const std::string &visible_name() const { return m_visible_name; } + const std::chrono::system_clock::time_point &last_modified() const { return m_last_modified; } + + private: + std::string m_file_name; // filename for the state itself + std::string m_visible_name; // how it appears in the dialog + std::chrono::system_clock::time_point m_last_modified; + }; + + static std::string s_last_file_selected; + + std::unordered_map<std::string, file_entry> m_file_entries; + std::unordered_map<std::string, std::string> m_filename_to_code_map; + const char * m_header; + const char * m_footer; + bool m_must_exist; + bool m_pause_checked; + bool m_was_paused; + + static void *itemref_from_file_entry(const file_entry &entry); + static const file_entry &file_entry_from_itemref(void *itemref); + void try_select_slot(std::string &&name); + void slot_selected(std::string &&name); + std::string state_directory() const; + bool is_present(const std::string &name) const; + std::string poll_inputs(); + std::string get_visible_name(const std::string &file_name); +}; + +// ======================> menu_load_state + +class menu_load_state : public menu_load_save_state_base +{ +public: + menu_load_state(mame_ui_manager &mui, render_container &container); + +protected: + virtual void process_file(std::string &&file_name) override; +}; + +// ======================> menu_save_state + +class menu_save_state : public menu_load_save_state_base +{ +public: + menu_save_state(mame_ui_manager &mui, render_container &container); + +protected: + virtual void process_file(std::string &&file_name) override; +}; + +}; + +#endif // MAME_FRONTEND_UI_STATE_H diff --git a/src/frontend/mame/ui/submenu.cpp b/src/frontend/mame/ui/submenu.cpp index e28b0c58125..01d3d58027e 100644 --- a/src/frontend/mame/ui/submenu.cpp +++ b/src/frontend/mame/ui/submenu.cpp @@ -240,8 +240,7 @@ void submenu::handle() { case OPTION_BOOLEAN: changed = true; - sm_option.options->set_value(sm_option.name, !strcmp(sm_option.entry->value(),"1") ? "0" : "1", OPTION_PRIORITY_CMDLINE, error_string); - sm_option.entry->mark_changed(); + sm_option.options->set_value(sm_option.name, !strcmp(sm_option.entry->value(),"1") ? "0" : "1", OPTION_PRIORITY_CMDLINE); break; case OPTION_INTEGER: if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT) @@ -249,8 +248,7 @@ void submenu::handle() changed = true; int i_cur = atoi(sm_option.entry->value()); (menu_event->iptkey == IPT_UI_LEFT) ? i_cur-- : i_cur++; - sm_option.options->set_value(sm_option.name, i_cur, OPTION_PRIORITY_CMDLINE, error_string); - sm_option.entry->mark_changed(); + sm_option.options->set_value(sm_option.name, i_cur, OPTION_PRIORITY_CMDLINE); } break; case OPTION_FLOAT: @@ -260,17 +258,19 @@ void submenu::handle() f_cur = atof(sm_option.entry->value()); if (sm_option.entry->has_range()) { - f_step = atof(sm_option.entry->minimum()); + const char *minimum = sm_option.entry->minimum(); + const char *maximum = sm_option.entry->maximum(); + f_step = atof(minimum); if (f_step <= 0.0f) { - int pmin = getprecisionchr(sm_option.entry->minimum()); - int pmax = getprecisionchr(sm_option.entry->maximum()); + int pmin = getprecisionchr(minimum); + int pmax = getprecisionchr(maximum); tmptxt = '1' + std::string((pmin > pmax) ? pmin : pmax, '0'); f_step = 1 / atof(tmptxt.c_str()); } } else { - int precision = getprecisionchr(sm_option.entry->default_value()); + int precision = getprecisionchr(sm_option.entry->default_value().c_str()); tmptxt = '1' + std::string(precision, '0'); f_step = 1 / atof(tmptxt.c_str()); } @@ -279,8 +279,7 @@ void submenu::handle() else f_cur += f_step; tmptxt = string_format("%g", f_cur); - sm_option.options->set_value(sm_option.name, tmptxt.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - sm_option.entry->mark_changed(); + sm_option.options->set_value(sm_option.name, tmptxt.c_str(), OPTION_PRIORITY_CMDLINE); } break; case OPTION_STRING: @@ -293,10 +292,11 @@ void submenu::handle() v_cur = sm_option.value[--cur_value]; else v_cur = sm_option.value[++cur_value]; - sm_option.options->set_value(sm_option.name, v_cur.c_str(), OPTION_PRIORITY_CMDLINE, error_string); - sm_option.entry->mark_changed(); + sm_option.options->set_value(sm_option.name, v_cur.c_str(), OPTION_PRIORITY_CMDLINE); } break; + default: + break; } break; default: @@ -391,7 +391,7 @@ void submenu::populate(float &customtop, float &custombottom) break; case OPTION_STRING: { - std::string const v_cur(sm_option->entry->value()); + std::string v_cur(sm_option->entry->value()); int const cur_value = std::distance(sm_option->value.begin(), std::find(sm_option->value.begin(), sm_option->value.end(), v_cur)); arrow_flags = get_arrow_flags(0, int(unsigned(sm_option->value.size() - 1)), cur_value); item_append(_(sm_option->description), diff --git a/src/frontend/mame/ui/submenu.h b/src/frontend/mame/ui/submenu.h index acaf28d90e4..f17b6fe53ff 100644 --- a/src/frontend/mame/ui/submenu.h +++ b/src/frontend/mame/ui/submenu.h @@ -48,7 +48,7 @@ public: option_type type; const char *description; const char *name; - core_options::entry *entry; + core_options::entry::shared_ptr entry; core_options *options; std::vector<std::string> value; }; diff --git a/src/frontend/mame/ui/ui.cpp b/src/frontend/mame/ui/ui.cpp index 4b570491d0f..b98922ab193 100644 --- a/src/frontend/mame/ui/ui.cpp +++ b/src/frontend/mame/ui/ui.cpp @@ -27,6 +27,7 @@ #include "ui/mainmenu.h" #include "ui/filemngr.h" #include "ui/sliders.h" +#include "ui/state.h" #include "ui/viewgfx.h" #include "imagedev/cassette.h" @@ -42,8 +43,6 @@ enum LOADSAVE_SAVE }; -#define MAX_SAVED_STATE_JOYSTICK 4 - /*************************************************************************** LOCAL VARIABLES @@ -183,8 +182,7 @@ mame_ui_manager::mame_ui_manager(running_machine &machine) , m_show_profiler(false) , m_popup_text_end(0) , m_mouse_arrow_texture(nullptr) - , m_mouse_show(false) - , m_load_save_hold(false) {} + , m_mouse_show(false) {} mame_ui_manager::~mame_ui_manager() { @@ -988,10 +986,9 @@ void mame_ui_manager::draw_profiler(render_container &container) void mame_ui_manager::start_save_state() { - machine().pause(); - m_load_save_hold = true; - using namespace std::placeholders; - set_handler(ui_callback_type::GENERAL, std::bind(&mame_ui_manager::handler_load_save, this, _1, uint32_t(LOADSAVE_SAVE))); + ui::menu::stack_reset(machine()); + show_menu(); + ui::menu::stack_push<ui::menu_save_state>(*this, machine().render().ui_container()); } @@ -1001,10 +998,9 @@ void mame_ui_manager::start_save_state() void mame_ui_manager::start_load_state() { - machine().pause(); - m_load_save_hold = true; - using namespace std::placeholders; - set_handler(ui_callback_type::GENERAL, std::bind(&mame_ui_manager::handler_load_save, this, _1, uint32_t(LOADSAVE_LOAD))); + ui::menu::stack_reset(machine()); + show_menu(); + ui::menu::stack_push<ui::menu_load_state>(*this, machine().render().ui_container()); } @@ -1270,111 +1266,6 @@ uint32_t mame_ui_manager::handler_ingame(render_container &container) //------------------------------------------------- -// handler_load_save - leads the user through -// specifying a game to save or load -//------------------------------------------------- - -uint32_t mame_ui_manager::handler_load_save(render_container &container, uint32_t state) -{ - std::string filename; - char file = 0; - - // if we're not in the middle of anything, skip - if (state == LOADSAVE_NONE) - return 0; - - // okay, we're waiting for a key to select a slot; display a message - if (state == LOADSAVE_SAVE) - draw_message_window(container, _("Select position to save to")); - else - draw_message_window(container, _("Select position to load from")); - - // if load/save state sequence is still being pressed, do not read the filename yet - if (m_load_save_hold) { - bool seq_in_progress = false; - const input_seq &load_save_seq = state == LOADSAVE_SAVE ? - machine().ioport().type_seq(IPT_UI_SAVE_STATE) : - machine().ioport().type_seq(IPT_UI_LOAD_STATE); - - for (int i = 0; i < load_save_seq.length(); i++) - if (machine().input().code_pressed_once(load_save_seq[i])) - seq_in_progress = true; - - if (seq_in_progress) - return state; - else - m_load_save_hold = false; - } - - // check for cancel key - if (machine().ui_input().pressed(IPT_UI_CANCEL)) - { - // display a popup indicating things were cancelled - if (state == LOADSAVE_SAVE) - machine().popmessage(_("Save cancelled")); - else - machine().popmessage(_("Load cancelled")); - - // reset the state - machine().resume(); - return UI_HANDLER_CANCEL; - } - - // check for A-Z or 0-9 - for (input_item_id id = ITEM_ID_A; id <= ITEM_ID_Z; ++id) - if (machine().input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id))) - file = id - ITEM_ID_A + 'a'; - if (file == 0) - for (input_item_id id = ITEM_ID_0; id <= ITEM_ID_9; ++id) - if (machine().input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id))) - file = id - ITEM_ID_0 + '0'; - if (file == 0) - for (input_item_id id = ITEM_ID_0_PAD; id <= ITEM_ID_9_PAD; ++id) - if (machine().input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id))) - file = id - ITEM_ID_0_PAD + '0'; - if (file == 0) - { - bool found = false; - - for (int joy_index = 0; joy_index <= MAX_SAVED_STATE_JOYSTICK; joy_index++) - for (input_item_id id = ITEM_ID_BUTTON1; id <= ITEM_ID_BUTTON32; ++id) - if (machine().input().code_pressed_once(input_code(DEVICE_CLASS_JOYSTICK, joy_index, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id))) - { - filename = util::string_format("joy%i-%i", joy_index, id - ITEM_ID_BUTTON1 + 1); - found = true; - break; - } - - if (!found) - return state; - } - else - { - filename = util::string_format("%c", file); - } - - // display a popup indicating that the save will proceed - if (state == LOADSAVE_SAVE) - { - machine().popmessage(_("Save to position %s"), filename); - machine().schedule_save(std::move(filename)); - } - else - { - machine().popmessage(_("Load from position %s"), filename); - machine().schedule_load(std::move(filename)); - } - - // avoid handling the name of the save state slot as a seperate input - machine().ui_input().mark_all_as_pressed(); - - // remove the pause and reset the state - machine().resume(); - return UI_HANDLER_CANCEL; -} - - -//------------------------------------------------- // request_quit //------------------------------------------------- @@ -1513,6 +1404,16 @@ std::vector<ui::menu_item> mame_ui_manager::slider_init(running_machine &machine std::string str = string_format(_("Overclock CPU %1$s"), exec.device().tag()); sliders.push_back(slider_alloc(machine, SLIDER_ID_OVERCLOCK + slider_index++, str.c_str(), 10, 1000, 2000, 1, param)); } + for (device_sound_interface &snd : sound_interface_iterator(machine.root_device())) + { + device_execute_interface *exec; + if (!snd.device().interface(exec) && snd.device().unscaled_clock() != 0) + { + void *param = (void *)&snd.device(); + std::string str = string_format(_("Overclock %1$s sound"), snd.device().tag()); + sliders.push_back(slider_alloc(machine, SLIDER_ID_OVERCLOCK + slider_index++, str.c_str(), 10, 1000, 2000, 1, param)); + } + } } // add screen parameters @@ -2228,14 +2129,18 @@ void mame_ui_manager::popup_time_string(int seconds, std::string message) void mame_ui_manager::load_ui_options() { // parse the file - std::string error; // attempt to open the output file emu_file file(machine().options().ini_path(), OPEN_FLAG_READ); if (file.open("ui.ini") == osd_file::error::NONE) { - bool result = options().parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_MAME_INI < OPTION_PRIORITY_DRIVER_INI, error); - if (!result) + try + { + options().parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_MAME_INI < OPTION_PRIORITY_DRIVER_INI, true); + } + catch (options_exception &) + { osd_printf_error("**Error loading ui.ini**\n"); + } } } @@ -2266,28 +2171,37 @@ void mame_ui_manager::save_main_option() { // parse the file std::string error; - emu_options options(machine().options()); // This way we make sure that all OSD parts are in - std::string error_string; + emu_options options(emu_options::option_support::GENERAL_ONLY); // This way we make sure that all OSD parts are in + + options.copy_from(machine().options()); // attempt to open the main ini file { emu_file file(machine().options().ini_path(), OPEN_FLAG_READ); if (file.open(emulator_info::get_configname(), ".ini") == osd_file::error::NONE) { - bool result = options.parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_MAME_INI < OPTION_PRIORITY_DRIVER_INI, error); - if (!result) + try + { + options.parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_MAME_INI < OPTION_PRIORITY_DRIVER_INI, true); + } + catch(options_error_exception &) { osd_printf_error("**Error loading %s.ini**\n", emulator_info::get_configname()); return; } + catch (options_exception &) + { + // ignore other exceptions related to options + } } } - for (emu_options::entry &f_entry : machine().options()) + for (const auto &f_entry : machine().options().entries()) { - if (f_entry.is_changed()) + const char *value = f_entry->value(); + if (value && options.exists(f_entry->name()) && strcmp(value, options.value(f_entry->name().c_str()))) { - options.set_value(f_entry.name(), f_entry.value(), OPTION_PRIORITY_CMDLINE, error_string); + options.set_value(f_entry->name(), *f_entry->value(), OPTION_PRIORITY_CMDLINE); } } diff --git a/src/frontend/mame/ui/ui.h b/src/frontend/mame/ui/ui.h index 8364fa69ec2..ce83bb692cc 100644 --- a/src/frontend/mame/ui/ui.h +++ b/src/frontend/mame/ui/ui.h @@ -245,7 +245,6 @@ private: std::unique_ptr<uint8_t[]> m_non_char_keys_down; render_texture * m_mouse_arrow_texture; bool m_mouse_show; - bool m_load_save_hold; ui_options m_ui_options; std::unique_ptr<ui::machine_info> m_machine_info; diff --git a/src/lib/util/options.cpp b/src/lib/util/options.cpp index 2c56843947a..14c96f680e8 100644 --- a/src/lib/util/options.cpp +++ b/src/lib/util/options.cpp @@ -64,244 +64,479 @@ namespace } }; +//************************************************************************** +// OPTIONS EXCEPTION CLASS +//************************************************************************** + +//------------------------------------------------- +// options_exception - constructor +//------------------------------------------------- + +options_exception::options_exception(std::string &&message) + : m_message(std::move(message)) +{ +} + + +//------------------------------------------------- +// options_warning_exception - constructor +//------------------------------------------------- + +options_warning_exception::options_warning_exception(std::string &&message) + : options_exception(std::move(message)) +{ +} + + +//------------------------------------------------- +// options_error_exception - constructor +//------------------------------------------------- + +options_error_exception::options_error_exception(std::string &&message) + : options_exception(std::move(message)) +{ +} + //************************************************************************** -// CORE OPTIONS ENTRY +// CORE OPTIONS ENTRY BASE CLASS //************************************************************************** //------------------------------------------------- // entry - constructor //------------------------------------------------- -core_options::entry::entry(const char *name, const char *description, uint32_t flags, const char *defvalue) - : m_next(nullptr), - m_flags(flags), - m_error_reported(false), - m_priority(OPTION_PRIORITY_DEFAULT), - m_description(description), - m_changed(false) +core_options::entry::entry(std::vector<std::string> &&names, core_options::option_type type, const char *description) + : m_names(std::move(names)) + , m_priority(OPTION_PRIORITY_DEFAULT) + , m_type(type) + , m_description(description) { - // copy in the name(s) as appropriate - if (name != nullptr) + assert(m_names.empty() == (m_type == option_type::HEADER)); +} + +core_options::entry::entry(std::string &&name, core_options::option_type type, const char *description) + : entry(std::vector<std::string>({ std::move(name) }), type, description) +{ +} + + +//------------------------------------------------- +// entry - destructor +//------------------------------------------------- + +core_options::entry::~entry() +{ +} + + +//------------------------------------------------- +// entry::value +//------------------------------------------------- + +const char *core_options::entry::value() const +{ + // returning 'nullptr' from here signifies a value entry that is essentially "write only" + // and cannot be meaningfully persisted (e.g. - a command or the software name) + return nullptr; +} + + +//------------------------------------------------- +// entry::set_value +//------------------------------------------------- + +void core_options::entry::set_value(std::string &&newvalue, int priority_value, bool always_override) +{ + // it is invalid to set the value on a header + assert(type() != option_type::HEADER); + + // only set the value if we have priority + if (always_override || priority_value >= priority()) { - // first extract any range - std::string namestr(name); - int lparen = namestr.find_first_of('(',0); - int dash = namestr.find_first_of('-',lparen + 1); - int rparen = namestr.find_first_of(')',dash + 1); - if (lparen != -1 && dash != -1 && rparen != -1) + internal_set_value(std::move(newvalue)); + m_priority = priority_value; + + // invoke the value changed handler, if appropriate + if (m_value_changed_handler) + m_value_changed_handler(value()); + } +} + + +//------------------------------------------------- +// entry::set_default_value +//------------------------------------------------- + +void core_options::entry::set_default_value(std::string &&newvalue) +{ + // set_default_value() is not necessarily supported for all entry types + throw false; +} + + +//------------------------------------------------- +// entry::validate +//------------------------------------------------- + +void core_options::entry::validate(const std::string &data) +{ + float fval; + int ival; + + switch (type()) + { + case option_type::BOOLEAN: + // booleans must be 0 or 1 + if (sscanf(data.c_str(), "%d", &ival) != 1 || ival < 0 || ival > 1) + throw options_warning_exception("Illegal boolean value for %s: \"%s\"; reverting to %s\n", name(), data, value()); + break; + + case option_type::INTEGER: + // integers must be integral + if (sscanf(data.c_str(), "%d", &ival) != 1) + throw options_warning_exception("Illegal integer value for %s: \"%s\"; reverting to %s\n", name(), data, value()); + + // range checking + if (has_range()) { - strtrimspace(m_minimum.assign(namestr.substr(lparen + 1, dash - (lparen + 1)))); - strtrimspace(m_maximum.assign(namestr.substr(dash + 1, rparen - (dash + 1)))); - namestr.erase(lparen, rparen + 1 - lparen); + int minimum_integer = atoi(minimum()); + int maximum_integer = atoi(maximum()); + if (ival < minimum_integer || ival > maximum_integer) + throw options_warning_exception("Out-of-range integer value for %s: \"%s\" (must be between %d and %d); reverting to %s\n", name(), data, minimum_integer, maximum_integer, value()); } + break; - // then chop up any semicolon-separated names - int semi; - int nameindex = 0; - while ((semi = namestr.find_first_of(';')) != -1 && nameindex < ARRAY_LENGTH(m_name)) + case option_type::FLOAT: + if (sscanf(data.c_str(), "%f", &fval) != 1) + throw options_warning_exception("Illegal float value for %s: \"%s\"; reverting to %s\n", name(), data, value()); + + // range checking + if (has_range()) { - m_name[nameindex++].assign(namestr.substr(0, semi)); - namestr.erase(0, semi + 1); + float minimum_float = atof(minimum()); + float maximum_float = atof(maximum()); + if (fval < minimum_float || fval > maximum_float) + throw options_warning_exception("Out-of-range float value for %s: \"%s\" (must be between %f and %f); reverting to %s\n", name(), data, minimum_float, maximum_float, value()); } + break; - // finally add the last item - if (nameindex < ARRAY_LENGTH(m_name)) - m_name[nameindex++] = namestr; + case OPTION_STRING: + // strings can be anything + break; + + case OPTION_INVALID: + case OPTION_HEADER: + default: + // anything else is invalid + throw options_error_exception("Attempted to set invalid option %s\n", name()); } +} - // set the default value - if (defvalue != nullptr) - m_defdata = defvalue; - m_data = m_defdata; + +//------------------------------------------------- +// entry::minimum +//------------------------------------------------- + +const char *core_options::entry::minimum() const +{ + return nullptr; } //------------------------------------------------- -// set_value - update our data value +// entry::maximum //------------------------------------------------- -void core_options::entry::set_value(const char *newdata, int priority) +const char *core_options::entry::maximum() const { - // ignore if we don't have priority - if (priority < m_priority) - return; + return nullptr; +} + - // set the data and priority, then bump the sequence - m_data = newdata; - m_priority = priority; +//------------------------------------------------- +// entry::has_range +//------------------------------------------------- + +bool core_options::entry::has_range() const +{ + return minimum() && maximum(); } //------------------------------------------------- -// set_default_value - set the default value of -// an option, and reset the current value to it +// entry::default_value //------------------------------------------------- -void core_options::entry::set_default_value(const char *defvalue) +const std::string &core_options::entry::default_value() const { - m_data = defvalue; - m_defdata = defvalue; - m_priority = OPTION_PRIORITY_DEFAULT; + // I don't really want this generally available, but MewUI seems to need it. Please + // do not use + throw false; } +//************************************************************************** +// CORE OPTIONS SIMPLE ENTRYCLASS +//************************************************************************** + //------------------------------------------------- -// set_description - set the description of -// an option +// simple_entry - constructor //------------------------------------------------- -void core_options::entry::set_description(const char *description) +core_options::simple_entry::simple_entry(std::vector<std::string> &&names, const char *description, core_options::option_type type, std::string &&defdata, std::string &&minimum, std::string &&maximum) + : entry(std::move(names), type, description) + , m_defdata(std::move(defdata)) + , m_minimum(std::move(minimum)) + , m_maximum(std::move(maximum)) { - m_description = description; + m_data = m_defdata; } -void core_options::entry::set_flag(uint32_t mask, uint32_t flag) +//------------------------------------------------- +// simple_entry - destructor +//------------------------------------------------- + +core_options::simple_entry::~simple_entry() { - m_flags = ( m_flags & mask ) | flag; } //------------------------------------------------- -// revert - revert back to our default if we are -// within the given priority range +// simple_entry::value //------------------------------------------------- -void core_options::entry::revert(int priority_hi, int priority_lo) +const char *core_options::simple_entry::value() const { - // if our priority is within the range, revert to the default - if (m_priority <= priority_hi && m_priority >= priority_lo) + const char *result; + switch (type()) { - m_data = m_defdata; - m_priority = OPTION_PRIORITY_DEFAULT; + case core_options::option_type::BOOLEAN: + case core_options::option_type::INTEGER: + case core_options::option_type::FLOAT: + case core_options::option_type::STRING: + result = m_data.c_str(); + break; + + default: + // this is an option type for which returning a value is + // a meaningless operation (e.g. - core_options::option_type::COMMAND) + result = nullptr; + break; } + return result; } - -//************************************************************************** -// CORE OPTIONS -//************************************************************************** - //------------------------------------------------- -// core_options - constructor +// simple_entry::default_value //------------------------------------------------- -core_options::core_options() +const std::string &core_options::simple_entry::default_value() const { + // only MewUI seems to need this; please don't use + return m_defdata; } -core_options::core_options(const options_entry *entrylist) + +//------------------------------------------------- +// internal_set_value +//------------------------------------------------- + +void core_options::simple_entry::internal_set_value(std::string &&newvalue) { - add_entries(entrylist); + m_data = std::move(newvalue); } -core_options::core_options(const options_entry *entrylist1, const options_entry *entrylist2) + +//------------------------------------------------- +// set_default_value +//------------------------------------------------- + +void core_options::simple_entry::set_default_value(std::string &&newvalue) { - add_entries(entrylist1); - add_entries(entrylist2); + m_data = m_defdata = std::move(newvalue); } -core_options::core_options(const options_entry *entrylist1, const options_entry *entrylist2, const options_entry *entrylist3) + +//------------------------------------------------- +// minimum +//------------------------------------------------- + +const char *core_options::simple_entry::minimum() const { - add_entries(entrylist1); - add_entries(entrylist2); - add_entries(entrylist3); + return m_minimum.c_str(); } -core_options::core_options(const core_options &src) + +//------------------------------------------------- +// maximum +//------------------------------------------------- + +const char *core_options::simple_entry::maximum() const { - copyfrom(src); + return m_maximum.c_str(); } +//************************************************************************** +// CORE OPTIONS +//************************************************************************** + //------------------------------------------------- -// ~core_options - destructor +// core_options - constructor //------------------------------------------------- -core_options::~core_options() +core_options::core_options() { } //------------------------------------------------- -// operator= - assignment operator +// ~core_options - destructor //------------------------------------------------- -core_options &core_options::operator=(const core_options &rhs) +core_options::~core_options() { - // ignore self-assignment - if (this != &rhs) - copyfrom(rhs); - return *this; } //------------------------------------------------- -// operator== - compare two sets of options +// add_entry - adds an entry //------------------------------------------------- -bool core_options::operator==(const core_options &rhs) +void core_options::add_entry(entry::shared_ptr &&entry, const char *after_header) { - // iterate over options in the first list - for (entry &curentry : m_entrylist) - if (!curentry.is_header()) - { - // if the values differ, return false - if (strcmp(curentry.value(), rhs.value(curentry.name())) != 0) - return false; - } + // update the entry map + for (const std::string &name : entry->names()) + { + // append the entry + add_to_entry_map(std::string(name), entry); + + // for booleans, add the "-noXYZ" option as well + if (entry->type() == option_type::BOOLEAN) + add_to_entry_map(std::string("no") + name, entry); + } - return true; + // and add the entry to the vector + m_entries.emplace_back(std::move(entry)); } //------------------------------------------------- -// operator!= - compare two sets of options +// add_to_entry_map - adds an entry to the entry +// map //------------------------------------------------- -bool core_options::operator!=(const core_options &rhs) +void core_options::add_to_entry_map(std::string &&name, entry::shared_ptr &entry) { - return !operator==(rhs); + // it is illegal to call this method for something that already ex0ists + assert(m_entrymap.find(name) == m_entrymap.end()); + + // append the entry + m_entrymap.emplace(std::make_pair(name, entry::weak_ptr(entry))); } //------------------------------------------------- -// add_entry - add an entry to the current -// options set +// add_entry - adds an entry based on an +// options_entry //------------------------------------------------- -void core_options::add_entry(const char *name, const char *description, uint32_t flags, const char *defvalue, bool override_existing) +void core_options::add_entry(const options_entry &opt, bool override_existing) { - // allocate a new entry - auto newentry = global_alloc(entry(name, description, flags, defvalue)); - if (newentry->name() != nullptr) + std::vector<std::string> names; + std::string minimum, maximum; + + // copy in the name(s) as appropriate + if (opt.name) { - // see if we match an existing entry - auto checkentry = m_entrymap.find(newentry->name()); - if (checkentry != m_entrymap.end()) + // first extract any range + std::string namestr(opt.name); + int lparen = namestr.find_first_of('(', 0); + int dash = namestr.find_first_of('-', lparen + 1); + int rparen = namestr.find_first_of(')', dash + 1); + if (lparen != -1 && dash != -1 && rparen != -1) { - entry *existing = checkentry->second; - // if we're overriding existing entries, then remove the old one - if (override_existing) - m_entrylist.remove(*existing); + strtrimspace(minimum.assign(namestr.substr(lparen + 1, dash - (lparen + 1)))); + strtrimspace(maximum.assign(namestr.substr(dash + 1, rparen - (dash + 1)))); + namestr.erase(lparen, rparen + 1 - lparen); + } + + // then chop up any semicolon-separated names + size_t semi; + while ((semi = namestr.find_first_of(';')) != std::string::npos) + { + names.push_back(namestr.substr(0, semi)); + namestr.erase(0, semi + 1); + } + + // finally add the last item + names.push_back(std::move(namestr)); + } - // otherwise, just override the default and current values and throw out the new entry + // we might be called with an existing entry + entry::shared_ptr existing_entry; + do + { + for (const std::string &name : names) + { + existing_entry = get_entry(name.c_str()); + if (existing_entry) + break; + } + + if (existing_entry) + { + if (override_existing) + remove_entry(*existing_entry); else - { - existing->set_default_value(newentry->value()); - global_free(newentry); return; - } } + } while (existing_entry); + + // set the default value + std::string defdata = opt.defvalue ? opt.defvalue : ""; + + // create and add the entry + add_entry( + std::move(names), + opt.description, + opt.type, + std::move(defdata), + std::move(minimum), + std::move(maximum)); +} + + +//------------------------------------------------- +// add_entry +//------------------------------------------------- + +void core_options::add_entry(std::vector<std::string> &&names, const char *description, option_type type, std::string &&default_value, std::string &&minimum, std::string &&maximum) +{ + // create the entry + entry::shared_ptr new_entry = std::make_shared<simple_entry>( + std::move(names), + description, + type, + std::move(default_value), + std::move(minimum), + std::move(maximum)); + + // and add it + add_entry(std::move(new_entry)); +} - // need to call value_changed() with initial value - value_changed(newentry->name(), newentry->value()); - } - // add us to the list and maps - append_entry(*newentry); +//------------------------------------------------- +// add_header +//------------------------------------------------- + +void core_options::add_header(const char *description) +{ + add_entry(std::vector<std::string>(), description, option_type::HEADER); } @@ -313,8 +548,8 @@ void core_options::add_entry(const char *name, const char *description, uint32_t void core_options::add_entries(const options_entry *entrylist, bool override_existing) { // loop over entries until we hit a nullptr name - for ( ; entrylist->name != nullptr || (entrylist->flags & OPTION_HEADER) != 0; entrylist++) - add_entry(*entrylist, override_existing); + for (int i = 0; entrylist[i].name || entrylist[i].type == option_type::HEADER; i++) + add_entry(entrylist[i], override_existing); } @@ -325,13 +560,8 @@ void core_options::add_entries(const options_entry *entrylist, bool override_exi void core_options::set_default_value(const char *name, const char *defvalue) { - // find the entry and bail if we can't - auto curentry = m_entrymap.find(name); - if (curentry == m_entrymap.end()) - return; - // update the data and default data - curentry->second->set_default_value(defvalue); + get_entry(name)->set_default_value(defvalue); } @@ -342,13 +572,8 @@ void core_options::set_default_value(const char *name, const char *defvalue) void core_options::set_description(const char *name, const char *description) { - // find the entry and bail if we can't - auto curentry = m_entrymap.find(name); - if (curentry == m_entrymap.end()) - return; - // update the data and default data - curentry->second->set_description(description); + get_entry(name)->set_description(description); } @@ -357,10 +582,12 @@ void core_options::set_description(const char *name, const char *description) // command line arguments //------------------------------------------------- -bool core_options::parse_command_line(std::vector<std::string> &args, int priority, std::string &error_string) +void core_options::parse_command_line(const std::vector<std::string> &args, int priority, bool ignore_unknown_options) { + std::ostringstream error_stream; + condition_type condition = condition_type::NONE; + // reset the errors and the command - error_string.clear(); m_command.clear(); // we want to identify commands first @@ -368,23 +595,20 @@ bool core_options::parse_command_line(std::vector<std::string> &args, int priori { if (!args[arg].empty() && args[arg][0] == '-') { - auto curentry = m_entrymap.find(&args[arg][1]); - if (curentry != m_entrymap.end() && curentry->second->type() == OPTION_COMMAND) + auto curentry = get_entry(&args[arg][1]); + if (curentry && curentry->type() == OPTION_COMMAND) { // can only have one command if (!m_command.empty()) - { - error_string.append(string_format("Error: multiple commands specified -%s and %s\n", m_command, args[arg])); - return false; - } - m_command = curentry->second->name(); + throw options_error_exception("Error: multiple commands specified -%s and %s\n", m_command, args[arg]); + + m_command = curentry->name(); } } } // iterate through arguments int unadorned_index = 0; - size_t new_argc = 1; for (size_t arg = 1; arg < args.size(); arg++) { // determine the entry name to search for @@ -396,39 +620,26 @@ bool core_options::parse_command_line(std::vector<std::string> &args, int priori if (is_unadorned && !m_command.empty()) { m_command_arguments.push_back(std::move(args[arg])); - args[arg].clear(); + command_argument_processed(); continue; } // find our entry; if not found, continue - auto curentry = m_entrymap.find(optionname); - if (curentry == m_entrymap.end()) + auto curentry = get_entry(optionname); + if (!curentry) { - // we need to relocate this option - if (new_argc != arg) - args[new_argc] = std::move(args[arg]); - new_argc++; - - if (!is_unadorned) - { - arg++; - if (arg < args.size()) - { - if (new_argc != arg) - args[new_argc] = std::move(args[arg]); - new_argc++; - } - } + if (!ignore_unknown_options) + throw options_error_exception("Error: unknown option: -%s\n", optionname); continue; } // at this point, we've already processed commands - if (curentry->second->type() == OPTION_COMMAND) + if (curentry->type() == OPTION_COMMAND) continue; // get the data for this argument, special casing booleans std::string newdata; - if (curentry->second->type() == OPTION_BOOLEAN) + if (curentry->type() == option_type::BOOLEAN) { newdata = (strncmp(&curarg[1], "no", 2) == 0) ? "0" : "1"; } @@ -438,22 +649,19 @@ bool core_options::parse_command_line(std::vector<std::string> &args, int priori } else if (arg + 1 < args.size()) { - args[arg++].clear(); - newdata = std::move(args[arg]); + newdata = args[++arg]; } else { - error_string.append(string_format("Error: option %s expected a parameter\n", curarg)); - return false; + throw options_error_exception("Error: option %s expected a parameter\n", curarg); } - args[arg].clear(); // set the new data - validate_and_set_data(*curentry->second, std::move(newdata), priority, error_string); + do_set_value(*curentry, std::move(newdata), priority, error_stream, condition); } - args.resize(new_argc); - return true; + // did we have any errors that may need to be aggregated? + throw_options_exception_if_appropriate(condition, error_stream); } @@ -462,8 +670,11 @@ bool core_options::parse_command_line(std::vector<std::string> &args, int priori // an INI file //------------------------------------------------- -bool core_options::parse_ini_file(util::core_file &inifile, int priority, bool ignore_unknown_options, std::string &error_string) +void core_options::parse_ini_file(util::core_file &inifile, int priority, bool ignore_unknown_options, bool always_override) { + std::ostringstream error_stream; + condition_type condition = condition_type::NONE; + // loop over lines in the file char buffer[4096]; while (inifile.gets(buffer, ARRAY_LENGTH(buffer)) != nullptr) @@ -487,7 +698,8 @@ bool core_options::parse_ini_file(util::core_file &inifile, int priority, bool i // if we hit the end early, print a warning and continue if (*temp == 0) { - error_string.append(string_format("Warning: invalid line in INI: %s", buffer)); + condition = std::max(condition, condition_type::WARN); + util::stream_format(error_stream, "Warning: invalid line in INI: %s", buffer); continue; } @@ -507,79 +719,73 @@ bool core_options::parse_ini_file(util::core_file &inifile, int priority, bool i *temp = 0; // find our entry - auto curentry = m_entrymap.find(optionname); - if (curentry == m_entrymap.end()) + entry::shared_ptr curentry = get_entry(optionname); + if (!curentry) { if (!ignore_unknown_options) - error_string.append(string_format("Warning: unknown option in INI: %s\n", optionname)); + { + condition = std::max(condition, condition_type::WARN); + util::stream_format(error_stream, "Warning: unknown option in INI: %s\n", optionname); + } continue; } // set the new data std::string data = optiondata; trim_spaces_and_quotes(data); - validate_and_set_data(*curentry->second, std::move(data), priority, error_string); + do_set_value(*curentry, std::move(data), priority, error_stream, condition); } - return true; + + // did we have any errors that may need to be aggregated? + throw_options_exception_if_appropriate(condition, error_stream); } //------------------------------------------------- -// pluck_from_command_line - finds a specific -// value from within a command line +// throw_options_exception_if_appropriate //------------------------------------------------- -bool core_options::pluck_from_command_line(std::vector<std::string> &args, const std::string &optionname, std::string &result) +void core_options::throw_options_exception_if_appropriate(core_options::condition_type condition, std::ostringstream &error_stream) { - // find this entry within the options (it is illegal to call this with a non-existant option - // so we assert if not present) - auto curentry = m_entrymap.find(optionname); - assert(curentry != m_entrymap.end()); - - // build a vector with potential targets - std::vector<std::string> targets; - const char *potential_target; - int index = 0; - while ((potential_target = curentry->second->name(index++)) != nullptr) + switch(condition) { - // not supporting unadorned options for now - targets.push_back(std::string("-") + potential_target); - } + case condition_type::NONE: + // do nothing + break; - // find each of the targets in the argv array - for (int i = 1; i < args.size() - 1; i++) - { - auto const iter = std::find_if( - targets.begin(), - targets.end(), - [&args, i](const std::string &targ) { return targ == args[i]; }); - if (iter != targets.end()) - { - // get the result - result = std::move(args[i + 1]); + case condition_type::WARN: + throw options_warning_exception(error_stream.str()); - // remove this arguments from the list - auto const pos = std::next(args.begin(), i); - args.erase(pos, std::next(pos, 2)); - return true; - } - } + case condition_type::ERR: + throw options_error_exception(error_stream.str()); - result.clear(); - return false; + default: + // should not get here + throw false; + } } //------------------------------------------------- -// revert - revert options at or below a certain -// priority back to their defaults +// copy_from //------------------------------------------------- -void core_options::revert(int priority_hi, int priority_lo) +void core_options::copy_from(const core_options &that) { - // iterate over options and revert to defaults if below the given priority - for (entry &curentry : m_entrylist) - curentry.revert(priority_hi, priority_lo); + for (auto &dest_entry : m_entries) + { + if (dest_entry->names().size() > 0) + { + // identify the source entry + const entry::shared_ptr source_entry = that.get_entry(dest_entry->name()); + if (source_entry) + { + const char *value = source_entry->value(); + if (value) + dest_entry->set_value(value, source_entry->priority(), true); + } + } + } } @@ -600,47 +806,34 @@ std::string core_options::output_ini(const core_options *diff) const std::string overridden_value; // loop over all items - for (entry &curentry : m_entrylist) + for (auto &curentry : m_entries) { - const char *name = curentry.name(); - const char *value; - switch (override_get_value(name, overridden_value)) + if (curentry->type() == option_type::HEADER) { - case override_get_value_result::NONE: - default: - value = curentry.value(); - break; - - case override_get_value_result::SKIP: - continue; - - case override_get_value_result::OVERRIDE: - value = overridden_value.c_str(); - break; + // header: record description + last_header = curentry->description(); } - bool is_unadorned = false; - - // check if it's unadorned - if (name && strlen(name) && !strcmp(name, core_options::unadorned(unadorned_index))) + else { - unadorned_index++; - is_unadorned = true; - } + const std::string &name(curentry->name()); + const char *value(curentry->value()); - // header: record description - if (curentry.is_header()) - last_header = curentry.description(); + // check if it's unadorned + bool is_unadorned = false; + if (name == core_options::unadorned(unadorned_index)) + { + unadorned_index++; + is_unadorned = true; + } - // otherwise, output entries for all non-command items - else if (!curentry.is_command()) - { - if (!curentry.is_internal()) + // output entries for all non-command items (items with value) + if (value) { // look up counterpart in diff, if diff is specified - if (diff == nullptr || strcmp(value, diff->value(name)) != 0) + if (!diff || strcmp(value, diff->value(name.c_str()))) { // output header, if we have one - if (last_header != nullptr) + if (last_header) { if (num_valid_headers++) buffer << '\n'; @@ -651,7 +844,7 @@ std::string core_options::output_ini(const core_options *diff) const // and finally output the data, skip if unadorned if (!is_unadorned) { - if (strchr(value, ' ') != nullptr) + if (strchr(value, ' ')) util::stream_format(buffer, "%-25s \"%s\"\n", name, value); else util::stream_format(buffer, "%-25s %s\n", name, value); @@ -674,15 +867,15 @@ std::string core_options::output_help() const std::ostringstream buffer; // loop over all items - for (entry &curentry : m_entrylist) + for (auto &curentry : m_entries) { // header: just print - if (curentry.is_header()) - util::stream_format(buffer, "\n#\n# %s\n#\n", curentry.description()); + if (curentry->type() == option_type::HEADER) + util::stream_format(buffer, "\n#\n# %s\n#\n", curentry->description()); // otherwise, output entries for all non-deprecated items - else if (curentry.description() != nullptr) - util::stream_format(buffer, "-%-20s%s\n", curentry.name(), curentry.description()); + else if (curentry->description() != nullptr) + util::stream_format(buffer, "-%-20s%s\n", curentry->name(), curentry->description()); } return buffer.str(); } @@ -692,10 +885,9 @@ std::string core_options::output_help() const // value - return the raw option value //------------------------------------------------- -const char *core_options::value(const char *name) const +const char *core_options::value(const char *option) const { - auto curentry = m_entrymap.find(name); - return (curentry != m_entrymap.end()) ? curentry->second->value() : ""; + return get_entry(option)->value(); } @@ -703,241 +895,133 @@ const char *core_options::value(const char *name) const // description - return description of option //------------------------------------------------- -const char *core_options::description(const char *name) const +const char *core_options::description(const char *option) const { - auto curentry = m_entrymap.find(name); - return (curentry != m_entrymap.end()) ? curentry->second->description() : ""; + return get_entry(option)->description(); } +//************************************************************************** +// LEGACY +//************************************************************************** + //------------------------------------------------- -// priority - return the priority of option +// set_value - set the raw option value //------------------------------------------------- -int core_options::priority(const char *name) const +void core_options::set_value(const std::string &name, const std::string &value, int priority) { - auto curentry = m_entrymap.find(name); - return (curentry != m_entrymap.end()) ? curentry->second->priority() : 0; + set_value(name, std::string(value), priority); } +void core_options::set_value(const std::string &name, std::string &&value, int priority) +{ + get_entry(name)->set_value(std::move(value), priority); +} -//------------------------------------------------- -// exists - return if option exists in list -//------------------------------------------------- +void core_options::set_value(const std::string &name, int value, int priority) +{ + set_value(name, string_format("%d", value), priority); +} -bool core_options::exists(const char *name) const +void core_options::set_value(const std::string &name, float value, int priority) { - return (m_entrymap.find(name) != m_entrymap.end()); + set_value(name, string_format("%f", value), priority); } //------------------------------------------------- -// set_value - set the raw option value +// remove_entry - remove an entry from our list +// and map //------------------------------------------------- -bool core_options::set_value(const char *name, const char *value, int priority, std::string &error_string) -{ - // find the entry first - auto curentry = m_entrymap.find(name); - if (curentry == m_entrymap.end()) - { - error_string.append(string_format("Attempted to set unknown option %s\n", name)); - return false; - } - - // validate and set the item normally - return validate_and_set_data(*curentry->second, value, priority, error_string); -} - -bool core_options::set_value(const char *name, int value, int priority, std::string &error_string) +void core_options::remove_entry(core_options::entry &delentry) { - return set_value(name, string_format("%d", value).c_str(), priority, error_string); + // find this in m_entries + auto iter = std::find_if( + m_entries.begin(), + m_entries.end(), + [&delentry](const auto &x) { return &*x == &delentry; }); + assert(iter != m_entries.end()); + + // erase each of the items out of the entry map + for (const std::string &name : delentry.names()) + m_entrymap.erase(name); + + // finally erase it + m_entries.erase(iter); } -bool core_options::set_value(const char *name, float value, int priority, std::string &error_string) -{ - return set_value(name, string_format("%f", value).c_str(), priority, error_string); -} +//------------------------------------------------- +// do_set_value +//------------------------------------------------- -void core_options::set_flag(const char *name, uint32_t mask, uint32_t flag) +void core_options::do_set_value(entry &curentry, std::string &&data, int priority, std::ostream &error_stream, condition_type &condition) { - // find the entry first - auto curentry = m_entrymap.find(name); - if ( curentry == m_entrymap.end()) + // this is called when parsing a command line or an INI - we want to catch the option_exception and write + // any exception messages to the error stream + try { - return; + curentry.set_value(std::move(data), priority); } - curentry->second->set_flag(mask, flag); -} - -void core_options::mark_changed(const char* name) -{ - // find the entry first - auto curentry = m_entrymap.find(name); - if (curentry == m_entrymap.end()) + catch (options_warning_exception &ex) { - return; + // we want to aggregate option exceptions + error_stream << ex.message(); + condition = std::max(condition, condition_type::WARN); + } + catch (options_error_exception &ex) + { + // we want to aggregate option exceptions + error_stream << ex.message(); + condition = std::max(condition, condition_type::ERR); } - curentry->second->mark_changed(); } + //------------------------------------------------- -// reset - reset the options state, removing -// everything +// get_entry //------------------------------------------------- -void core_options::reset() +const core_options::entry::shared_ptr core_options::get_entry(const std::string &name) const +{ + auto curentry = m_entrymap.find(name); + return (curentry != m_entrymap.end()) ? curentry->second.lock() : nullptr; +} + +core_options::entry::shared_ptr core_options::get_entry(const std::string &name) { - m_entrylist.reset(); - m_entrymap.clear(); + auto curentry = m_entrymap.find(name); + return (curentry != m_entrymap.end()) ? curentry->second.lock() : nullptr; } //------------------------------------------------- -// append_entry - append an entry to our list -// and index it in the map +// set_value_changed_handler //------------------------------------------------- -void core_options::append_entry(core_options::entry &newentry) +void core_options::set_value_changed_handler(const std::string &name, std::function<void(const char *)> &&handler) { - m_entrylist.append(newentry); - - // if we have names, add them to the map - for (int name = 0; name < ARRAY_LENGTH(newentry.m_name); name++) - if (newentry.name(name) != nullptr) - { - m_entrymap.insert(std::make_pair(newentry.name(name), &newentry)); - // for boolean options add a "no" variant as well - if (newentry.type() == OPTION_BOOLEAN) - m_entrymap.insert(std::make_pair(std::string("no").append(newentry.name(name)), &newentry)); - } + get_entry(name)->set_value_changed_handler(std::move(handler)); } //------------------------------------------------- -// remove_entry - remove an entry from our list -// and map +// header_exists //------------------------------------------------- -void core_options::remove_entry(core_options::entry &delentry) +bool core_options::header_exists(const char *description) const { - // remove all names from the map - for (int name = 0; name < ARRAY_LENGTH(delentry.m_name); name++) - if (!delentry.m_name[name].empty()) - { - auto entry = m_entrymap.find(delentry.m_name[name]); - if (entry!= m_entrymap.end()) m_entrymap.erase(entry); - } - - // remove the entry from the list - m_entrylist.remove(delentry); -} - -/** - * @fn void core_options::copyfrom(const core_options &src) - * - * @brief ------------------------------------------------- - * copyfrom - copy options from another set - * -------------------------------------------------. - * - * @param src Source for the. - */ - -void core_options::copyfrom(const core_options &src) -{ - // reset ourselves first - reset(); - - // iterate through the src options and make our own - for (entry &curentry : src.m_entrylist) - append_entry(*global_alloc(entry(curentry.name(), curentry.description(), curentry.flags(), curentry.default_value()))); -} - -/** - * @fn bool core_options::validate_and_set_data(core_options::entry &curentry, const char *newdata, int priority, std::string &error_string) - * - * @brief ------------------------------------------------- - * validate_and_set_data - make sure the data is of the appropriate type and within - * range, then set it - * -------------------------------------------------. - * - * @param [in,out] curentry The curentry. - * @param newdata The newdata. - * @param priority The priority. - * @param [in,out] error_string The error string. - * - * @return true if it succeeds, false if it fails. - */ - -bool core_options::validate_and_set_data(core_options::entry &curentry, std::string &&data, int priority, std::string &error_string) -{ - // let derived classes override how we set this data - if (override_set_value(curentry.name(), data)) - return true; - - // validate the type of data and optionally the range - float fval; - int ival; - switch (curentry.type()) - { - // booleans must be 0 or 1 - case OPTION_BOOLEAN: - if (sscanf(data.c_str(), "%d", &ival) != 1 || ival < 0 || ival > 1) - { - error_string.append(string_format("Illegal boolean value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value())); - return false; - } - break; - - // integers must be integral - case OPTION_INTEGER: - if (sscanf(data.c_str(), "%d", &ival) != 1) - { - error_string.append(string_format("Illegal integer value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value())); - return false; - } - if (curentry.has_range() && (ival < atoi(curentry.minimum()) || ival > atoi(curentry.maximum()))) + auto iter = std::find_if( + m_entries.begin(), + m_entries.end(), + [description](const auto &entry) { - error_string.append(string_format("Out-of-range integer value for %s: \"%s\" (must be between %s and %s); reverting to %s\n", curentry.name(), data.c_str(), curentry.minimum(), curentry.maximum(), curentry.value())); - return false; - } - break; + return entry->type() == option_type::HEADER + && entry->description() + && !strcmp(entry->description(), description); + }); - // floating-point values must be numeric - case OPTION_FLOAT: - if (sscanf(data.c_str(), "%f", &fval) != 1) - { - error_string.append(string_format("Illegal float value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value())); - return false; - } - if (curentry.has_range() && ((double) fval < atof(curentry.minimum()) || (double) fval > atof(curentry.maximum()))) - { - error_string.append(string_format("Out-of-range float value for %s: \"%s\" (must be between %s and %s); reverting to %s\n", curentry.name(), data.c_str(), curentry.minimum(), curentry.maximum(), curentry.value())); - return false; - } - break; - - // strings can be anything - case OPTION_STRING: - break; - - // anything else is invalid - case OPTION_INVALID: - case OPTION_HEADER: - default: - error_string.append(string_format("Attempted to set invalid option %s\n", curentry.name())); - return false; - } - - // set the data - curentry.set_value(data.c_str(), priority); - value_changed(curentry.name(), data); - return true; -} - -core_options::entry *core_options::get_entry(const char *name) const -{ - auto curentry = m_entrymap.find(name); - return (curentry != m_entrymap.end()) ? curentry->second : nullptr; + return iter != m_entries.end(); } diff --git a/src/lib/util/options.h b/src/lib/util/options.h index 71431ce870c..d0cb6e5c29f 100644 --- a/src/lib/util/options.h +++ b/src/lib/util/options.h @@ -13,26 +13,13 @@ #include "corefile.h" #include <unordered_map> - +#include <sstream> //************************************************************************** // CONSTANTS //************************************************************************** -// option types -const uint32_t OPTION_TYPE_MASK = 0x0007; // up to 8 different types -enum -{ - OPTION_INVALID, // invalid - OPTION_HEADER, // a header item - OPTION_COMMAND, // a command - OPTION_BOOLEAN, // boolean option - OPTION_INTEGER, // integer option - OPTION_FLOAT, // floating-point option - OPTION_STRING // string option -}; - // option priorities const int OPTION_PRIORITY_DEFAULT = 0; // defaults are at 0 priority const int OPTION_PRIORITY_LOW = 50; // low priority @@ -40,20 +27,55 @@ const int OPTION_PRIORITY_NORMAL = 100; // normal priority const int OPTION_PRIORITY_HIGH = 150; // high priority const int OPTION_PRIORITY_MAXIMUM = 255; // maximum priority -const uint32_t OPTION_FLAG_INTERNAL = 0x40000000; - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -// static structure describing a single option with its description and default value -struct options_entry +struct options_entry; + +// exception thrown by core_options when an illegal request is made +class options_exception : public std::exception { - const char * name; // name on the command line - const char * defvalue; // default value of this argument - uint32_t flags; // flags to describe the option - const char * description; // description for -showusage +public: + const std::string &message() const { return m_message; } + virtual const char *what() const noexcept override { return message().c_str(); } + +protected: + options_exception(std::string &&message); + +private: + std::string m_message; +}; + +class options_warning_exception : public options_exception +{ +public: + template <typename... Params> options_warning_exception(const char *fmt, Params &&...args) + : options_warning_exception(util::string_format(fmt, std::forward<Params>(args)...)) + { + } + + options_warning_exception(std::string &&message); + options_warning_exception(const options_warning_exception &) = default; + options_warning_exception(options_warning_exception &&) = default; + options_warning_exception& operator=(const options_warning_exception &) = default; + options_warning_exception& operator=(options_warning_exception &&) = default; +}; + +class options_error_exception : public options_exception +{ +public: + template <typename... Params> options_error_exception(const char *fmt, Params &&...args) + : options_error_exception(util::string_format(fmt, std::forward<Params>(args)...)) + { + } + + options_error_exception(std::string &&message); + options_error_exception(const options_error_exception &) = default; + options_error_exception(options_error_exception &&) = default; + options_error_exception& operator=(const options_error_exception &) = default; + options_error_exception& operator=(options_error_exception &&) = default; }; @@ -63,95 +85,97 @@ class core_options static const int MAX_UNADORNED_OPTIONS = 16; public: + enum class option_type + { + INVALID, // invalid + HEADER, // a header item + COMMAND, // a command + BOOLEAN, // boolean option + INTEGER, // integer option + FLOAT, // floating-point option + STRING // string option + }; + // information about a single entry in the options class entry { - friend class core_options; - friend class simple_list<entry>; - - // construction/destruction - entry(const char *name, const char *description, uint32_t flags = 0, const char *defvalue = nullptr); - public: - // getters - entry *next() const { return m_next; } - const char *name(int index = 0) const { return (index < ARRAY_LENGTH(m_name) && !m_name[index].empty()) ? m_name[index].c_str() : nullptr; } + typedef std::shared_ptr<entry> shared_ptr; + typedef std::weak_ptr<entry> weak_ptr; + + // constructor/destructor + entry(std::vector<std::string> &&names, option_type type = option_type::STRING, const char *description = nullptr); + entry(std::string &&name, option_type type = option_type::STRING, const char *description = nullptr); + entry(const entry &) = delete; + entry(entry &&) = delete; + entry& operator=(const entry &) = delete; + entry& operator=(entry &&) = delete; + virtual ~entry(); + + // accessors + const std::vector<std::string> &names() const { return m_names; } + const std::string &name() const { return m_names[0]; } + virtual const char *value() const; + int priority() const { return m_priority; } + void set_priority(int priority) { m_priority = priority; } + option_type type() const { return m_type; } const char *description() const { return m_description; } - const char *value() const { return m_data.c_str(); } - const char *default_value() const { return m_defdata.c_str(); } - const char *minimum() const { return m_minimum.c_str(); } - const char *maximum() const { return m_maximum.c_str(); } - int type() const { return (m_flags & OPTION_TYPE_MASK); } - uint32_t flags() const { return m_flags; } - bool is_header() const { return type() == OPTION_HEADER; } - bool is_command() const { return type() == OPTION_COMMAND; } - bool is_internal() const { return m_flags & OPTION_FLAG_INTERNAL; } - bool has_range() const { return (!m_minimum.empty() && !m_maximum.empty()); } - int priority() const { return m_priority; } - bool is_changed() const { return m_changed; } - - // setters - void set_value(const char *newvalue, int priority); - void set_default_value(const char *defvalue); - void set_description(const char *description); - void set_flag(uint32_t mask, uint32_t flag); - void mark_changed() { m_changed = true; } - void revert(int priority_hi, int priority_lo); + virtual const std::string &default_value() const; + virtual const char *minimum() const; + virtual const char *maximum() const; + bool has_range() const; + + // mutators + void set_value(std::string &&newvalue, int priority, bool always_override = false); + virtual void set_default_value(std::string &&newvalue); + void set_description(const char *description) { m_description = description; } + void set_value_changed_handler(std::function<void(const char *)> &&handler) { m_value_changed_handler = std::move(handler); } + + protected: + virtual void internal_set_value(std::string &&newvalue) = 0; private: - // internal state - entry * m_next; // link to the next data - uint32_t m_flags; // flags from the entry - bool m_error_reported; // have we reported an error on this option yet? - int m_priority; // priority of the data set - const char * m_description; // description for this item - std::string m_name[4]; // up to 4 names for the item - std::string m_data; // data for this item - std::string m_defdata; // default data for this item - std::string m_minimum; // minimum value - std::string m_maximum; // maximum value - bool m_changed; // changed flag + void validate(const std::string &value); + + std::vector<std::string> m_names; + int m_priority; + core_options::option_type m_type; + const char * m_description; + std::function<void(const char *)> m_value_changed_handler; }; // construction/destruction core_options(); - core_options(const options_entry *entrylist); - core_options(const options_entry *entrylist1, const options_entry *entrylist2); - core_options(const options_entry *entrylist1, const options_entry *entrylist2, const options_entry *entrylist3); - core_options(const core_options &src); + core_options(const core_options &) = delete; + core_options(core_options &&) = delete; + core_options& operator=(const core_options &) = delete; + core_options& operator=(core_options &&) = delete; virtual ~core_options(); - // operators - core_options &operator=(const core_options &rhs); - bool operator==(const core_options &rhs); - bool operator!=(const core_options &rhs); - // getters - entry *first() const { return m_entrylist.first(); } const std::string &command() const { return m_command; } const std::vector<std::string> &command_arguments() const { assert(!m_command.empty()); return m_command_arguments; } - entry *get_entry(const char *name) const; - - // range iterators - using auto_iterator = simple_list<entry>::auto_iterator; - auto_iterator begin() const { return m_entrylist.begin(); } - auto_iterator end() const { return m_entrylist.end(); } + const entry::shared_ptr get_entry(const std::string &name) const; + entry::shared_ptr get_entry(const std::string &name); + const std::vector<entry::shared_ptr> &entries() const { return m_entries; } + bool exists(const std::string &name) const { return get_entry(name) != nullptr; } + bool header_exists(const char *description) const; // configuration - void add_entry(const char *name, const char *description, uint32_t flags = 0, const char *defvalue = nullptr, bool override_existing = false); - void add_entry(const options_entry &data, bool override_existing = false) { add_entry(data.name, data.description, data.flags, data.defvalue, override_existing); } + void add_entry(entry::shared_ptr &&entry, const char *after_header = nullptr); + void add_entry(const options_entry &entry, bool override_existing = false); + void add_entry(std::vector<std::string> &&names, const char *description, option_type type, std::string &&default_value = "", std::string &&minimum = "", std::string &&maximum = ""); + void add_header(const char *description); void add_entries(const options_entry *entrylist, bool override_existing = false); void set_default_value(const char *name, const char *defvalue); void set_description(const char *name, const char *description); void remove_entry(entry &delentry); + void set_value_changed_handler(const std::string &name, std::function<void(const char *)> &&handler); // parsing/input - bool parse_command_line(std::vector<std::string> &args, int priority, std::string &error_string); - bool parse_ini_file(util::core_file &inifile, int priority, bool ignore_unknown_options, std::string &error_string); - bool pluck_from_command_line(std::vector<std::string> &args, const std::string &name, std::string &result); - - // reverting - void revert(int priority_hi = OPTION_PRIORITY_MAXIMUM, int priority_lo = OPTION_PRIORITY_DEFAULT); + void parse_command_line(const std::vector<std::string> &args, int priority, bool ignore_unknown_options = false); + void parse_ini_file(util::core_file &inifile, int priority, bool ignore_unknown_options, bool always_override); + void copy_from(const core_options &that); // output std::string output_ini(const core_options *diff = nullptr) const; @@ -160,52 +184,92 @@ public: // reading const char *value(const char *option) const; const char *description(const char *option) const; - int priority(const char *option) const; - bool bool_value(const char *name) const { return (atoi(value(name)) != 0); } - int int_value(const char *name) const { return atoi(value(name)); } - float float_value(const char *name) const { return atof(value(name)); } - bool exists(const char *name) const; + bool bool_value(const char *option) const { return int_value(option) != 0; } + int int_value(const char *option) const { return atoi(value(option)); } + float float_value(const char *option) const { return atof(value(option)); } // setting - bool set_value(const char *name, const char *value, int priority, std::string &error_string); - bool set_value(const char *name, int value, int priority, std::string &error_string); - bool set_value(const char *name, float value, int priority, std::string &error_string); - void set_flag(const char *name, uint32_t mask, uint32_t flags); - void mark_changed(const char *name); + void set_value(const std::string &name, const std::string &value, int priority); + void set_value(const std::string &name, std::string &&value, int priority); + void set_value(const std::string &name, int value, int priority); + void set_value(const std::string &name, float value, int priority); // misc static const char *unadorned(int x = 0) { return s_option_unadorned[std::min(x, MAX_UNADORNED_OPTIONS - 1)]; } - int options_count() const { return m_entrylist.count(); } protected: - // This is a hook to allow option value retrieval to be overridden for various reasons; this is a crude - // extensibility mechanism that should really be replaced by something better - enum class override_get_value_result + virtual void command_argument_processed() { } + +private: + class simple_entry : public entry { - NONE, - OVERRIDE, - SKIP + public: + // construction/destruction + simple_entry(std::vector<std::string> &&names, const char *description, core_options::option_type type, std::string &&defdata, std::string &&minimum, std::string &&maximum); + simple_entry(const simple_entry &) = delete; + simple_entry(simple_entry &&) = delete; + simple_entry& operator=(const simple_entry &) = delete; + simple_entry& operator=(simple_entry &&) = delete; + ~simple_entry(); + + // getters + virtual const char *value() const override; + virtual const char *minimum() const override; + virtual const char *maximum() const override; + virtual const std::string &default_value() const override; + + virtual void set_default_value(std::string &&newvalue) override; + + protected: + virtual void internal_set_value(std::string &&newvalue) override; + + private: + // internal state + std::string m_data; // data for this item + std::string m_defdata; // default data for this item + std::string m_minimum; // minimum value + std::string m_maximum; // maximum value }; - virtual void value_changed(const std::string &name, const std::string &value) {} - virtual override_get_value_result override_get_value(const char *name, std::string &value) const { return override_get_value_result::NONE; } - virtual bool override_set_value(const char *name, const std::string &value) { return false; } + // used internally in core_options + enum class condition_type + { + NONE, + WARN, + ERR + }; -private: // internal helpers - void reset(); - void append_entry(entry &newentry); - void copyfrom(const core_options &src); - bool validate_and_set_data(entry &curentry, std::string &&newdata, int priority, std::string &error_string); + void add_to_entry_map(std::string &&name, entry::shared_ptr &entry); + void do_set_value(entry &curentry, std::string &&data, int priority, std::ostream &error_stream, condition_type &condition); + void throw_options_exception_if_appropriate(condition_type condition, std::ostringstream &error_stream); // internal state - simple_list<entry> m_entrylist; // head of list of entries - std::unordered_map<std::string,entry *> m_entrymap; // map for fast lookup - std::string m_command; // command found - std::vector<std::string> m_command_arguments; // command arguments - static const char *const s_option_unadorned[]; // array of unadorned option "names" + std::vector<entry::shared_ptr> m_entries; // cannonical list of entries + std::unordered_map<std::string, entry::weak_ptr> m_entrymap; // map for fast lookup + std::string m_command; // command found + std::vector<std::string> m_command_arguments; // command arguments + static const char *const s_option_unadorned[]; // array of unadorned option "names" +}; + + +// static structure describing a single option with its description and default value +struct options_entry +{ + const char * name; // name on the command line + const char * defvalue; // default value of this argument + core_options::option_type type; // type of option + const char * description; // description for -showusage }; +// legacy option types +const core_options::option_type OPTION_INVALID = core_options::option_type::INVALID; +const core_options::option_type OPTION_HEADER = core_options::option_type::HEADER; +const core_options::option_type OPTION_COMMAND = core_options::option_type::COMMAND; +const core_options::option_type OPTION_BOOLEAN = core_options::option_type::BOOLEAN; +const core_options::option_type OPTION_INTEGER = core_options::option_type::INTEGER; +const core_options::option_type OPTION_FLOAT = core_options::option_type::FLOAT; +const core_options::option_type OPTION_STRING = core_options::option_type::STRING; #endif // MAME_LIB_UTIL_OPTIONS_H diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index 9bbd92d63a9..14e6c959372 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -750,8 +750,19 @@ mpu12wbk.cpp mpu2.cpp mpu3.cpp mpu4.cpp +mpu4avan.cpp +mpu4bwb.cpp +mpu4concept.cpp +mpu4crystal.cpp mpu4dealem.cpp +mpu4empire.cpp +mpu4mdm.cpp +mpu4misc.cpp +mpu4mod2sw.cpp +mpu4mod4yam.cpp mpu4plasma.cpp +mpu4sw.cpp +mpu4union.cpp mpu4vid.cpp mpu5.cpp mquake.cpp diff --git a/src/mame/audio/atarijsa.cpp b/src/mame/audio/atarijsa.cpp index d9884fb67d5..eeef37392a5 100644 --- a/src/mame/audio/atarijsa.cpp +++ b/src/mame/audio/atarijsa.cpp @@ -619,7 +619,7 @@ WRITE8_MEMBER( atari_jsa_i_device::wrio_w ) if (m_tms5220 != nullptr) { int count = 5 | ((data >> 2) & 2); - m_tms5220->set_frequency(JSA_MASTER_CLOCK*2 / (16 - count)); + m_tms5220->set_unscaled_clock(JSA_MASTER_CLOCK*2 / (16 - count)); m_tms5220->wsq_w((data >> 1) & 1); m_tms5220->rsq_w((data >> 2) & 1); } diff --git a/src/mame/audio/namco52.cpp b/src/mame/audio/namco52.cpp index 60b6707efa0..34a05c9544d 100644 --- a/src/mame/audio/namco52.cpp +++ b/src/mame/audio/namco52.cpp @@ -60,7 +60,7 @@ READ8_MEMBER( namco_52xx_device::K_r ) return m_latched_cmd & 0x0f; } -READ8_MEMBER( namco_52xx_device::SI_r ) +READ_LINE_MEMBER( namco_52xx_device::SI_r ) { return m_si(0) ? 1 : 0; } @@ -133,18 +133,6 @@ TIMER_CALLBACK_MEMBER( namco_52xx_device::external_clock_pulse ) DEVICE INTERFACE ***************************************************************************/ -static ADDRESS_MAP_START( namco_52xx_map_io, AS_IO, 8, namco_52xx_device ) - AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(K_r) - AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(O_w) - AM_RANGE(MB88_PORTP, MB88_PORTP) AM_WRITE(P_w) - AM_RANGE(MB88_PORTSI, MB88_PORTSI) AM_READ(SI_r) - AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(R0_r) - AM_RANGE(MB88_PORTR1, MB88_PORTR1) AM_READ(R1_r) - AM_RANGE(MB88_PORTR2, MB88_PORTR2) AM_WRITE(R2_w) - AM_RANGE(MB88_PORTR3, MB88_PORTR3) AM_WRITE(R3_w) -ADDRESS_MAP_END - - ROM_START( namco_52xx ) ROM_REGION( 0x400, "mcu", 0 ) ROM_LOAD( "52xx.bin", 0x0000, 0x0400, CRC(3257d11e) SHA1(4883b2fdbc99eb7b9906357fcc53915842c2c186) ) @@ -190,7 +178,14 @@ void namco_52xx_device::device_start() MACHINE_CONFIG_MEMBER( namco_52xx_device::device_add_mconfig ) MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ - MCFG_CPU_IO_MAP(namco_52xx_map_io) + MCFG_MB88XX_READ_K_CB(READ8(namco_52xx_device, K_r)) + MCFG_MB88XX_WRITE_O_CB(WRITE8(namco_52xx_device, O_w)) + MCFG_MB88XX_WRITE_P_CB(WRITE8(namco_52xx_device, P_w)) + MCFG_MB88XX_READ_SI_CB(READLINE(namco_52xx_device, SI_r)) + MCFG_MB88XX_READ_R0_CB(READ8(namco_52xx_device, R0_r)) + MCFG_MB88XX_READ_R1_CB(READ8(namco_52xx_device, R1_r)) + MCFG_MB88XX_WRITE_R2_CB(WRITE8(namco_52xx_device, R2_w)) + MCFG_MB88XX_WRITE_R3_CB(WRITE8(namco_52xx_device, R3_w)) MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/mame/audio/namco52.h b/src/mame/audio/namco52.h index d29bfa9e70f..0c53522d0b3 100644 --- a/src/mame/audio/namco52.h +++ b/src/mame/audio/namco52.h @@ -39,7 +39,7 @@ public: DECLARE_WRITE8_MEMBER(write); DECLARE_READ8_MEMBER( K_r ); - DECLARE_READ8_MEMBER( SI_r ); + DECLARE_READ_LINE_MEMBER( SI_r ); DECLARE_READ8_MEMBER( R0_r ); DECLARE_READ8_MEMBER( R1_r ); DECLARE_WRITE8_MEMBER( P_w ); diff --git a/src/mame/audio/namco54.cpp b/src/mame/audio/namco54.cpp index d406d24db3e..70109ad187d 100644 --- a/src/mame/audio/namco54.cpp +++ b/src/mame/audio/namco54.cpp @@ -108,15 +108,6 @@ WRITE8_MEMBER( namco_54xx_device::write ) DEVICE INTERFACE ***************************************************************************/ -static ADDRESS_MAP_START( namco_54xx_map_io, AS_IO, 8, namco_54xx_device ) - AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(K_r) - AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(O_w) - AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(R0_r) - AM_RANGE(MB88_PORTR1, MB88_PORTR1) AM_WRITE(R1_w) - AM_RANGE(MB88_PORTR2, MB88_PORTR2) AM_NOP -ADDRESS_MAP_END - - ROM_START( namco_54xx ) ROM_REGION( 0x400, "mcu", 0 ) ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) ) @@ -146,7 +137,10 @@ void namco_54xx_device::device_start() MACHINE_CONFIG_MEMBER( namco_54xx_device::device_add_mconfig ) MCFG_CPU_ADD("mcu", MB8844, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ - MCFG_CPU_IO_MAP(namco_54xx_map_io) + MCFG_MB88XX_READ_K_CB(READ8(namco_54xx_device, K_r)) + MCFG_MB88XX_WRITE_O_CB(WRITE8(namco_54xx_device, O_w)) + MCFG_MB88XX_READ_R0_CB(READ8(namco_54xx_device, R0_r)) + MCFG_MB88XX_WRITE_R1_CB(WRITE8(namco_54xx_device, R1_w)) MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/mame/drivers/4004clk.cpp b/src/mame/drivers/4004clk.cpp index c9cb98538cb..acf35c9b837 100644 --- a/src/mame/drivers/4004clk.cpp +++ b/src/mame/drivers/4004clk.cpp @@ -9,7 +9,8 @@ ****************************************************************************/ #include "emu.h" -#include "cpu/i4004/i4004.h" +#include "cpu/mcs40/mcs40.h" +#include "machine/clock.h" #include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -19,73 +20,61 @@ class nixieclock_state : public driver_device { public: - nixieclock_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_input(*this, "INPUT") - { } - - required_device<i4004_cpu_device> m_maincpu; - required_ioport m_input; - DECLARE_READ8_MEMBER( data_r ); + nixieclock_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) { } + DECLARE_WRITE8_MEMBER( nixie_w ); DECLARE_WRITE8_MEMBER( neon_w ); - uint16_t m_nixie[16]; - uint8_t m_timer; - virtual void machine_start() override; - TIMER_DEVICE_CALLBACK_MEMBER(timer_callback); - uint8_t nixie_to_num(uint16_t val); - inline void output_set_nixie_value(int index, int value); - inline void output_set_neon_value(int index, int value); -}; -READ8_MEMBER(nixieclock_state::data_r) -{ - return m_input->read() & 0x0f; -} - -uint8_t nixieclock_state::nixie_to_num(uint16_t val) -{ - if (BIT(val,0)) return 0; - if (BIT(val,1)) return 1; - if (BIT(val,2)) return 2; - if (BIT(val,3)) return 3; - if (BIT(val,4)) return 4; - if (BIT(val,5)) return 5; - if (BIT(val,6)) return 6; - if (BIT(val,7)) return 7; - if (BIT(val,8)) return 8; - if (BIT(val,9)) return 9; - return 10; -} +protected: + virtual void machine_start() override; -inline void nixieclock_state::output_set_nixie_value(int index, int value) -{ - output().set_indexed_value("nixie", index, value); -} +private: + static constexpr uint8_t nixie_to_num(uint16_t val) + { + return + (BIT(val, 0)) ? 0 : + (BIT(val, 1)) ? 1 : + (BIT(val, 2)) ? 2 : + (BIT(val, 3)) ? 3 : + (BIT(val, 4)) ? 4 : + (BIT(val, 5)) ? 5 : + (BIT(val, 6)) ? 6 : + (BIT(val, 7)) ? 7 : + (BIT(val, 8)) ? 8 : + (BIT(val, 9)) ? 9 : + 10; + } + + void output_set_nixie_value(int index, int value) + { + output().set_indexed_value("nixie", index, value); + } + + void output_set_neon_value(int index, int value) + { + output().set_indexed_value("neon", index, value); + } -inline void nixieclock_state::output_set_neon_value(int index, int value) -{ - output().set_indexed_value("neon", index, value); -} + uint16_t m_nixie[16]; +}; WRITE8_MEMBER(nixieclock_state::nixie_w) { - m_nixie[offset] = data; - output_set_nixie_value(5,nixie_to_num(((m_nixie[2] & 3)<<8) | (m_nixie[1] << 4) | m_nixie[0])); - output_set_nixie_value(4,nixie_to_num((m_nixie[4] << 6) | (m_nixie[3] << 2) | (m_nixie[2] >>2))); - output_set_nixie_value(3,nixie_to_num(((m_nixie[7] & 3)<<8) | (m_nixie[6] << 4) | m_nixie[5])); - output_set_nixie_value(2,nixie_to_num((m_nixie[9] << 6) | (m_nixie[8] << 2) | (m_nixie[7] >>2))); - output_set_nixie_value(1,nixie_to_num(((m_nixie[12] & 3)<<8) | (m_nixie[11] << 4) | m_nixie[10])); - output_set_nixie_value(0,nixie_to_num((m_nixie[14] << 6) | (m_nixie[13] << 2) | (m_nixie[12] >>2))); + m_nixie[offset >> 4] = data; + output_set_nixie_value(5, nixie_to_num(((m_nixie[2] & 3)<<8) | (m_nixie[1] << 4) | m_nixie[0])); + output_set_nixie_value(4, nixie_to_num((m_nixie[4] << 6) | (m_nixie[3] << 2) | (m_nixie[2] >>2))); + output_set_nixie_value(3, nixie_to_num(((m_nixie[7] & 3)<<8) | (m_nixie[6] << 4) | m_nixie[5])); + output_set_nixie_value(2, nixie_to_num((m_nixie[9] << 6) | (m_nixie[8] << 2) | (m_nixie[7] >>2))); + output_set_nixie_value(1, nixie_to_num(((m_nixie[12] & 3)<<8) | (m_nixie[11] << 4) | m_nixie[10])); + output_set_nixie_value(0, nixie_to_num((m_nixie[14] << 6) | (m_nixie[13] << 2) | (m_nixie[12] >>2))); } WRITE8_MEMBER(nixieclock_state::neon_w) { - output_set_neon_value(0,BIT(data,3)); - output_set_neon_value(1,BIT(data,2)); - output_set_neon_value(2,BIT(data,1)); - output_set_neon_value(3,BIT(data,0)); + output_set_neon_value(0, BIT(data,3)); + output_set_neon_value(1, BIT(data,2)); + output_set_neon_value(2, BIT(data,1)); + output_set_neon_value(3, BIT(data,0)); } static ADDRESS_MAP_START(4004clk_rom, AS_PROGRAM, 8, nixieclock_state) @@ -99,10 +88,10 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( 4004clk_io, AS_IO, 8, nixieclock_state) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00, 0x0e) AM_WRITE(nixie_w) - AM_RANGE(0x00, 0x00) AM_READ(data_r) - AM_RANGE(0x0f, 0x0f) AM_WRITE(neon_w) - AM_RANGE(0x10, 0x10) AM_DEVWRITE("dac", dac_bit_interface, write) + AM_RANGE(0x0000, 0x000f) AM_MIRROR(0x0700) AM_READ_PORT("INPUT") + AM_RANGE(0x0000, 0x00ef) AM_MIRROR(0x0700) AM_WRITE(nixie_w) + AM_RANGE(0x00f0, 0x00ff) AM_MIRROR(0x0700) AM_WRITE(neon_w) + AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x083f) AM_DEVWRITE("dac", dac_bit_interface, write) ADDRESS_MAP_END /* Input ports */ @@ -119,33 +108,16 @@ static INPUT_PORTS_START( 4004clk ) PORT_CONFSETTING( 0x08, "60 Hz" ) INPUT_PORTS_END -/* - 16ms Int generator - __ __ - _| |_| - 0 1 0 1 - -*/ - -TIMER_DEVICE_CALLBACK_MEMBER(nixieclock_state::timer_callback) -{ - m_maincpu->set_test(m_timer); - m_timer^=1; -} - void nixieclock_state::machine_start() { - m_timer = 0; - /* register for state saving */ - save_item(NAME(m_timer)); save_pointer(NAME(m_nixie), 6); } static MACHINE_CONFIG_START( 4004clk ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",I4004, XTAL_5MHz / 8) + MCFG_CPU_ADD("maincpu", I4004, XTAL_5MHz / 8) MCFG_CPU_PROGRAM_MAP(4004clk_rom) MCFG_CPU_DATA_MAP(4004clk_mem) MCFG_CPU_IO_MAP(4004clk_io) @@ -159,7 +131,8 @@ static MACHINE_CONFIG_START( 4004clk ) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) - MCFG_TIMER_DRIVER_ADD_PERIODIC("4004clk_timer", nixieclock_state, timer_callback, attotime::from_hz(120)) + MCFG_CLOCK_ADD("clk", 60) + MCFG_CLOCK_SIGNAL_HANDLER(INPUTLINE("maincpu", I4004_TEST_LINE)) MACHINE_CONFIG_END /* ROM definition */ @@ -185,5 +158,5 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */ +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS SYST( 2008, 4004clk, 0, 0, 4004clk, 4004clk, nixieclock_state, 0, "John L. Weinrich", "4004 Nixie Clock", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/age_candy.cpp b/src/mame/drivers/age_candy.cpp index 3c7a4a2df8d..0b45792f363 100644 --- a/src/mame/drivers/age_candy.cpp +++ b/src/mame/drivers/age_candy.cpp @@ -44,10 +44,16 @@ void age_candy_state::machine_reset() } +#ifdef UNUSED_DEFINITION +static ADDRESS_MAP_START(age_candy_map, AS_PROGRAM, 8, age_candy_state) + AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("maincpu", 0x4000) +ADDRESS_MAP_END +#endif + static MACHINE_CONFIG_START( age_candy ) /* basic machine hardware */ -// MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown (vectors at end? 6xxx ?) +// MCFG_CPU_ADD("maincpu", HPC46104, 8000000) // unknown clock; HPC emulation needed // MCFG_CPU_PROGRAM_MAP(age_candy_map) // MCFG_CPU_IO_MAP(age_candy_io) @@ -58,7 +64,7 @@ MACHINE_CONFIG_END ROM_START( age_cand ) - ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_REGION( 0x8000, "maincpu", 0 ) ROM_LOAD( "AGEcandy.u3", 0x0000, 0x8000, CRC(c8cfc666) SHA1(a1c475ae105746e984741af0723a712f09d7b847) ) ROM_END diff --git a/src/mame/drivers/amerihok.cpp b/src/mame/drivers/amerihok.cpp index 98701c931f8..cfc71cf0e27 100644 --- a/src/mame/drivers/amerihok.cpp +++ b/src/mame/drivers/amerihok.cpp @@ -11,11 +11,12 @@ U10- 27C020 12 MHz crystal -Processor is unknown +Processor is a ROMless MCU from the Z8 family. */ #include "emu.h" +#include "cpu/z8/z8.h" #include "sound/okim6295.h" #include "speaker.h" @@ -25,15 +26,19 @@ class amerihok_state : public driver_device public: amerihok_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) - // ,m_maincpu(*this, "maincpu") + , m_maincpu(*this, "maincpu") { } virtual void machine_start() override; virtual void machine_reset() override; -// required_device<mcs51_cpu_device> m_maincpu; + required_device<cpu_device> m_maincpu; }; +static ADDRESS_MAP_START(amerihok_map, AS_PROGRAM, 8, amerihok_state) + AM_RANGE(0x0000, 0xffff) AM_ROM +ADDRESS_MAP_END + static INPUT_PORTS_START( amerihok ) INPUT_PORTS_END @@ -51,10 +56,9 @@ void amerihok_state::machine_reset() static MACHINE_CONFIG_START( amerihok ) /* basic machine hardware */ -// MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown -// MCFG_CPU_PROGRAM_MAP(amerihok_map) -// MCFG_CPU_IO_MAP(amerihok_io) -// MCFG_CPU_VBLANK_INT_DRIVER("screen", amerihok_state, irq0_line_hold) + MCFG_CPU_ADD("maincpu", Z8601, 8000000) // unknown clock; type definitely wrong + MCFG_CPU_PROGRAM_MAP(amerihok_map) +// MCFG_CPU_VBLANK_INT_DRIVER("screen", amerihok_state, irq4_line_hold) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/arabian.cpp b/src/mame/drivers/arabian.cpp index bff3c351427..0a19fb1413f 100644 --- a/src/mame/drivers/arabian.cpp +++ b/src/mame/drivers/arabian.cpp @@ -102,30 +102,62 @@ WRITE8_MEMBER(arabian_state::ay8910_portb_w) * *************************************/ -READ8_MEMBER(arabian_state::mcu_port_r_r) +READ8_MEMBER(arabian_state::mcu_port_r0_r) { - uint8_t val = m_mcu_port_r[offset]; + uint8_t val = m_mcu_port_r[0]; /* RAM mode is enabled */ - if (offset == 0) - val |= 4; + val |= 4; return val; } -WRITE8_MEMBER(arabian_state::mcu_port_r_w) +READ8_MEMBER(arabian_state::mcu_port_r1_r) { - if (offset == 0) - { - uint32_t ram_addr = ((m_mcu_port_p & 7) << 8) | m_mcu_port_o; + uint8_t val = m_mcu_port_r[1]; - if (~data & 2) - m_custom_cpu_ram[ram_addr] = 0xf0 | m_mcu_port_r[3]; + return val; +} - m_flip_screen = data & 8; - } +READ8_MEMBER(arabian_state::mcu_port_r2_r) +{ + uint8_t val = m_mcu_port_r[2]; + + return val; +} + +READ8_MEMBER(arabian_state::mcu_port_r3_r) +{ + uint8_t val = m_mcu_port_r[3]; + + return val; +} + +WRITE8_MEMBER(arabian_state::mcu_port_r0_w) +{ + uint32_t ram_addr = ((m_mcu_port_p & 7) << 8) | m_mcu_port_o; + + if (~data & 2) + m_custom_cpu_ram[ram_addr] = 0xf0 | m_mcu_port_r[3]; + + m_flip_screen = data & 8; - m_mcu_port_r[offset] = data & 0x0f; + m_mcu_port_r[0] = data & 0x0f; +} + +WRITE8_MEMBER(arabian_state::mcu_port_r1_w) +{ + m_mcu_port_r[1] = data & 0x0f; +} + +WRITE8_MEMBER(arabian_state::mcu_port_r2_w) +{ + m_mcu_port_r[2] = data & 0x0f; +} + +WRITE8_MEMBER(arabian_state::mcu_port_r3_w) +{ + m_mcu_port_r[3] = data & 0x0f; } READ8_MEMBER(arabian_state::mcu_portk_r) @@ -205,21 +237,6 @@ ADDRESS_MAP_END /************************************* * - * MCU port handlers - * - *************************************/ - -static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, arabian_state ) - AM_RANGE(MB88_PORTK, MB88_PORTK ) AM_READ(mcu_portk_r) - AM_RANGE(MB88_PORTO, MB88_PORTO ) AM_WRITE(mcu_port_o_w) - AM_RANGE(MB88_PORTP, MB88_PORTP ) AM_WRITE(mcu_port_p_w) - AM_RANGE(MB88_PORTR0, MB88_PORTR3) AM_READWRITE(mcu_port_r_r, mcu_port_r_w) -ADDRESS_MAP_END - - - -/************************************* - * * Port definitions * *************************************/ @@ -345,7 +362,17 @@ static MACHINE_CONFIG_START( arabian ) MCFG_CPU_VBLANK_INT_DRIVER("screen", arabian_state, irq0_line_hold) MCFG_CPU_ADD("mcu", MB8841, MAIN_OSC/3/2) - MCFG_CPU_IO_MAP(mcu_io_map) + MCFG_MB88XX_READ_K_CB(READ8(arabian_state, mcu_portk_r)) + MCFG_MB88XX_WRITE_O_CB(WRITE8(arabian_state, mcu_port_o_w)) + MCFG_MB88XX_WRITE_P_CB(WRITE8(arabian_state, mcu_port_p_w)) + MCFG_MB88XX_READ_R0_CB(READ8(arabian_state, mcu_port_r0_r)) + MCFG_MB88XX_WRITE_R0_CB(WRITE8(arabian_state, mcu_port_r0_w)) + MCFG_MB88XX_READ_R1_CB(READ8(arabian_state, mcu_port_r1_r)) + MCFG_MB88XX_WRITE_R1_CB(WRITE8(arabian_state, mcu_port_r1_w)) + MCFG_MB88XX_READ_R2_CB(READ8(arabian_state, mcu_port_r2_r)) + MCFG_MB88XX_WRITE_R2_CB(WRITE8(arabian_state, mcu_port_r2_w)) + MCFG_MB88XX_READ_R3_CB(READ8(arabian_state, mcu_port_r3_r)) + MCFG_MB88XX_WRITE_R3_CB(WRITE8(arabian_state, mcu_port_r3_w)) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) diff --git a/src/mame/drivers/atarisy1.cpp b/src/mame/drivers/atarisy1.cpp index 199d8fbe609..2776b61bd0a 100644 --- a/src/mame/drivers/atarisy1.cpp +++ b/src/mame/drivers/atarisy1.cpp @@ -398,7 +398,7 @@ WRITE8_MEMBER(atarisy1_state::via_pb_w) /* bit 4 is connected to an up-counter, clocked by SYCLKB */ data = 5 | ((data >> 3) & 2); - m_tms->set_frequency(ATARI_CLOCK_14MHz/2 / (16 - data)); + m_tms->set_unscaled_clock(ATARI_CLOCK_14MHz/2 / (16 - data)); } diff --git a/src/mame/drivers/atarisy2.cpp b/src/mame/drivers/atarisy2.cpp index 9d5c0fbed58..d2edbf0ecd3 100644 --- a/src/mame/drivers/atarisy2.cpp +++ b/src/mame/drivers/atarisy2.cpp @@ -341,7 +341,7 @@ WRITE8_MEMBER(atarisy2_state::switch_6502_w) if (m_tms5220.found()) { data = 12 | ((data >> 5) & 1); - m_tms5220->set_frequency(MASTER_CLOCK/4 / (16 - data) / 2); + m_tms5220->set_unscaled_clock(MASTER_CLOCK/4 / (16 - data) / 2); } } diff --git a/src/mame/drivers/atpci.cpp b/src/mame/drivers/atpci.cpp index 7f5f3ea70a7..64311f56053 100644 --- a/src/mame/drivers/atpci.cpp +++ b/src/mame/drivers/atpci.cpp @@ -20,13 +20,23 @@ public: m_maincpu(*this, "maincpu") { } required_device<cpu_device> m_maincpu; + DECLARE_WRITE8_MEMBER(boot_state_w); }; +WRITE8_MEMBER(at586_state::boot_state_w) +{ + logerror("Boot state %02x\n", data); +} + static MACHINE_CONFIG_START( tx_config ) MCFG_I82439TX_CPU( "maincpu" ) MCFG_I82439TX_REGION( "isa" ) MACHINE_CONFIG_END +static MACHINE_CONFIG_START(sb_config) + MCFG_I82371SB_BOOT_STATE_HOOK(DEVWRITE8(":", at586_state, boot_state_w)) +MACHINE_CONFIG_END + static SLOT_INTERFACE_START( pci_devices ) SLOT_INTERFACE_INTERNAL("i82439tx", I82439TX) SLOT_INTERFACE_INTERNAL("i82371ab", I82371AB) @@ -85,6 +95,7 @@ static MACHINE_CONFIG_START( at586x3 ) MCFG_SLOT_OPTION_MACHINE_CONFIG("i82439tx", tx_config) MCFG_PCI_BUS_DEVICE("pcibus:1", pci_devices, "i82371sb", true) + MCFG_SLOT_OPTION_MACHINE_CONFIG("i82371sb", sb_config) MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa1", pc_isa16_cards, "svga_et4k", false) MCFG_ISA16_SLOT_ADD(":pcibus:1:i82371sb:isabus","isa2", pc_isa16_cards, nullptr, false) @@ -112,7 +123,11 @@ ROM_END ROM_START( at586x3 ) ROM_REGION32_LE(0x40000, "isa", 0) - ROM_LOAD("5hx29.bin", 0x20000, 0x20000, CRC(07719a55) SHA1(b63993fd5186cdb4f28c117428a507cd069e1f68)) + ROM_SYSTEM_BIOS(0, "5hx29", "5HX29") + ROMX_LOAD("5hx29.bin", 0x20000, 0x20000, CRC(07719a55) SHA1(b63993fd5186cdb4f28c117428a507cd069e1f68), ROM_BIOS(1)) + + ROM_SYSTEM_BIOS(1, "n7ns04", "Version 21/01/98, without integrated sound") // SMSC FDC37C93X I/O + ROMX_LOAD("m7ns04.rom", 0x00000, 0x40000, CRC(9c1f656b) SHA1(f4a0a522d8c47b6ddb6c01fe9a34ddf5b1977f8d), ROM_BIOS(2) ) ROM_END /* FIC VT-503 (Intel TX chipset, ITE 8679 Super I/O) */ diff --git a/src/mame/drivers/busicom.cpp b/src/mame/drivers/busicom.cpp index 09a685d6114..2f84c930e62 100644 --- a/src/mame/drivers/busicom.cpp +++ b/src/mame/drivers/busicom.cpp @@ -11,7 +11,6 @@ #include "emu.h" #include "includes/busicom.h" -#include "cpu/i4004/i4004.h" #include "screen.h" @@ -23,10 +22,10 @@ uint8_t busicom_state::get_bit_selected(uint32_t val,int num) } return 0; } + READ8_MEMBER(busicom_state::keyboard_r) { - static const char *const keynames[] = { "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8" , "LINE9"}; - return ioport(keynames[get_bit_selected(m_keyboard_shifter & 0x3ff,10)])->read(); + return m_input_lines[get_bit_selected(m_keyboard_shifter & 0x3ff, 10)]->read(); } READ8_MEMBER(busicom_state::printer_r) @@ -40,6 +39,7 @@ READ8_MEMBER(busicom_state::printer_r) WRITE8_MEMBER(busicom_state::shifter_w) { + // FIXME: detect edges, maybe make 4003 shifter a device if (BIT(data,0)) { m_keyboard_shifter <<= 1; m_keyboard_shifter |= BIT(data,1); @@ -111,11 +111,11 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( busicom_io , AS_IO, 8, busicom_state ) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00, 0x00) AM_WRITE(shifter_w) // ROM0 I/O - AM_RANGE(0x01, 0x01) AM_READWRITE(keyboard_r,printer_ctrl_w) // ROM1 I/O - AM_RANGE(0x02, 0x02) AM_READ(printer_r) // ROM2 I/O - AM_RANGE(0x10, 0x10) AM_WRITE(printer_w) // RAM0 output - AM_RANGE(0x11, 0x11) AM_WRITE(status_w) // RAM1 output + AM_RANGE(0x0000, 0x000f) AM_MIRROR(0x0700) AM_WRITE(shifter_w) // ROM0 I/O + AM_RANGE(0x0010, 0x001f) AM_MIRROR(0x0700) AM_READWRITE(keyboard_r,printer_ctrl_w) // ROM1 I/O + AM_RANGE(0x0020, 0x002f) AM_MIRROR(0x0700) AM_READ(printer_r) // ROM2 I/O + AM_RANGE(0x1000, 0x103f) AM_MIRROR(0x0700) AM_WRITE(printer_w) // RAM0 output + AM_RANGE(0x1040, 0x105f) AM_MIRROR(0x0800) AM_WRITE(status_w) // RAM1 output ADDRESS_MAP_END /* Input ports */ @@ -183,11 +183,10 @@ INPUT_PORTS_END TIMER_DEVICE_CALLBACK_MEMBER(busicom_state::timer_callback) { - m_timer ^=1; - if (m_timer==1) m_drum_index++; - if (m_drum_index==13) m_drum_index=0; - m_maincpu->set_test(m_timer); - + m_timer ^= 1; + if (m_timer == 1) m_drum_index++; + if (m_drum_index == 13) m_drum_index = 0; + m_maincpu->set_input_line(I4004_TEST_LINE, m_timer); } void busicom_state::machine_start() @@ -214,7 +213,7 @@ void busicom_state::machine_reset() static MACHINE_CONFIG_START( busicom ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",I4004, 750000) + MCFG_CPU_ADD("maincpu", I4004, 750000) MCFG_CPU_PROGRAM_MAP(busicom_rom) MCFG_CPU_DATA_MAP(busicom_mem) MCFG_CPU_IO_MAP(busicom_io) diff --git a/src/mame/drivers/by6803.cpp b/src/mame/drivers/by6803.cpp index da7ea996334..d53a62188fc 100644 --- a/src/mame/drivers/by6803.cpp +++ b/src/mame/drivers/by6803.cpp @@ -437,6 +437,16 @@ ROM_START(beatclck) ROM_LOAD("btc_u5.snd", 0xf000, 0x1000, CRC(230cf329) SHA1(45b17a785b81cd5b1d7fdfb720cf1990994b52b7)) ROM_END +ROM_START(beatclck2) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD( "btc_lights_pro_111385_C70-803-05_u3.cpu", 0xc000, 0x4000, CRC(dff5bad6) SHA1(915495d60be7ca12f00364b6e4b99c822ecfc7aa)) + ROM_REGION(0x10000, "cpu2", 0) + ROM_LOAD("btc_u2.snd", 0xc000, 0x1000, CRC(fd22fd2a) SHA1(efad3b94e91d07930ada5366d389f35377dfbd99)) + ROM_LOAD("btc_u3.snd", 0xd000, 0x1000, CRC(22311a4a) SHA1(2c22ba9228e44e68b9308b3bf8803edcd70fa5b9)) + ROM_LOAD("btc_u4.snd", 0xe000, 0x1000, CRC(af1cf23b) SHA1(ebfa3afafd7850dfa2664d3c640fbfa631012455)) + ROM_LOAD("btc_u5.snd", 0xf000, 0x1000, CRC(230cf329) SHA1(45b17a785b81cd5b1d7fdfb720cf1990994b52b7)) +ROM_END + /*------------------------------------ / Karate Fight /------------------------------------*/ @@ -714,27 +724,28 @@ ROM_START(trucksp2) ROM_END -GAME( 1985, eballchp, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Eight Ball Champ", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1985, beatclck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Beat the Clock", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, motrdome, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "MotorDome", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, motrdomeg, motrdome, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "MotorDome (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, ladyluck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Lady Luck", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, strngsci, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Strange Science", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, strngscg, strngsci, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Strange Science (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, specforc, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Special Force", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, blackblt, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Black Belt", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1986, blackblt2, blackblt, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Black Belt (Squawk and Talk)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, cityslck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "City Slicker", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, hardbody, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Hardbody", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, hardbodyg, hardbody, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Hardbody (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, prtyanim, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Party Animal", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, prtyanimg, prtyanim, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Party Animal (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, hvymetap, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Heavy Metal Meltdown", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, esclwrld, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Escape from the Lost World", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, esclwrldg, esclwrld, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Escape from the Lost World (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, dungdrag, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Dungeons & Dragons", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, black100, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Blackwater 100", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, black100s, black100, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Blackwater 100 (Single Ball Play)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, trucksp3, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Truck Stop (P-3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, trucksp2, trucksp3, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Truck Stop (P-2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1989, atlantip, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Atlantis", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, eballchp, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Eight Ball Champ", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, beatclck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Beat the Clock", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1985, beatclck2, beatclck, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Beat the Clock (with flasher support)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, motrdome, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "MotorDome", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, motrdomeg, motrdome, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "MotorDome (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, ladyluck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Lady Luck", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, strngsci, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Strange Science", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, strngscg, strngsci, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Strange Science (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, specforc, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Special Force", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, blackblt, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Black Belt", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1986, blackblt2, blackblt, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Black Belt (Squawk and Talk)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, cityslck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "City Slicker", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, hardbody, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Hardbody", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, hardbodyg, hardbody, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Hardbody (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, prtyanim, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Party Animal", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, prtyanimg, prtyanim, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Party Animal (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, hvymetap, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Heavy Metal Meltdown", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, esclwrld, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Escape from the Lost World", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, esclwrldg, esclwrld, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Escape from the Lost World (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, dungdrag, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Dungeons & Dragons", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, black100, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Blackwater 100", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, black100s, black100, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Blackwater 100 (Single Ball Play)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, trucksp3, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Truck Stop (P-3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, trucksp2, trucksp3, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Truck Stop (P-2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1989, atlantip, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally", "Atlantis", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/clowndwn.cpp b/src/mame/drivers/clowndwn.cpp index d169924d2c9..391a8059da2 100644 --- a/src/mame/drivers/clowndwn.cpp +++ b/src/mame/drivers/clowndwn.cpp @@ -11,6 +11,8 @@ can't find any info on this? #include "emu.h" #include "speaker.h" +#include "cpu/m6800/m6800.h" +#include "machine/6821pia.h" class clowndwn_state : public driver_device @@ -18,15 +20,25 @@ class clowndwn_state : public driver_device public: clowndwn_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) - // ,m_maincpu(*this, "maincpu") + , m_maincpu(*this, "maincpu") { } virtual void machine_start() override; virtual void machine_reset() override; -// required_device<mcs51_cpu_device> m_maincpu; + required_device<cpu_device> m_maincpu; }; +static ADDRESS_MAP_START(clowndwn_map, AS_PROGRAM, 8, clowndwn_state) + AM_RANGE(0x0000, 0x07ff) AM_RAM + AM_RANGE(0x4100, 0x4103) AM_DEVREADWRITE("pia0", pia6821_device, read, write) + AM_RANGE(0x4200, 0x4203) AM_DEVREADWRITE("pia1", pia6821_device, read, write) + AM_RANGE(0x4400, 0x4403) AM_DEVREADWRITE("pia2", pia6821_device, read, write) + AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("pia3", pia6821_device, read, write) + AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("pia4", pia6821_device, read, write) + AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION("maincpu", 0) +ADDRESS_MAP_END + static INPUT_PORTS_START( clowndwn ) INPUT_PORTS_END @@ -44,9 +56,14 @@ void clowndwn_state::machine_reset() static MACHINE_CONFIG_START( clowndwn ) /* basic machine hardware */ -// MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown (vectors at end? 6xxx ?) -// MCFG_CPU_PROGRAM_MAP(clowndwn_map) -// MCFG_CPU_IO_MAP(clowndwn_io) + MCFG_CPU_ADD("maincpu", M6802, 8000000) // unknown type and clock + MCFG_CPU_PROGRAM_MAP(clowndwn_map) + + MCFG_DEVICE_ADD("pia0", PIA6821, 0) + MCFG_DEVICE_ADD("pia1", PIA6821, 0) + MCFG_DEVICE_ADD("pia2", PIA6821, 0) + MCFG_DEVICE_ADD("pia3", PIA6821, 0) + MCFG_DEVICE_ADD("pia4", PIA6821, 0) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -58,7 +75,7 @@ MACHINE_CONFIG_END // in Z9 ROM_START( clowndwn ) - ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_REGION( 0x2000, "maincpu", 0 ) ROM_LOAD( "CLWNROLL.Z8", 0x0000, 0x1000, CRC(ec655745) SHA1(e38de904f30530f8971eb4a9d7796da345bf81ad) ) ROM_LOAD( "CLWNROLL.Z9", 0x1000, 0x1000, CRC(aeef885e) SHA1(bc6805b638625a347e1288a927ce30e030afe9e3) ) ROM_END diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp index 8589a5ed202..8d7bcf9b4d9 100644 --- a/src/mame/drivers/cps1.cpp +++ b/src/mame/drivers/cps1.cpp @@ -6946,6 +6946,55 @@ ROM_START( sf2j ) ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) ROM_END +/* B-Board 90629B-3 */ +ROM_START( sf2j17 ) + ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "sf2_30l.11e", 0x00000, 0x20000, CRC(79022b31) SHA1(b7cfe0498260cdd2779580c47829dd02435ffff4) ) + ROM_LOAD16_BYTE( "sf2j_37l.11f", 0x00001, 0x20000, CRC(04ba20c7) SHA1(e9e2829262de90e991e7d978fe952763e576d4ac) ) + ROM_LOAD16_BYTE( "sf2_31l.12e", 0x40000, 0x20000, CRC(fe15cb39) SHA1(383478524881ea70d9e04c9b6143b8735b637eee) ) + ROM_LOAD16_BYTE( "sf2_38l.12f", 0x40001, 0x20000, CRC(65cb1883) SHA1(59ddabd3b64df2699ca982c443e909b7ac4f3b28) ) + ROM_LOAD16_BYTE( "sf2_28l.9e", 0x80000, 0x20000, CRC(d283187a) SHA1(5ea83d2652e43e46b831b614d1fe06d465bac9a3) ) + ROM_LOAD16_BYTE( "sf2_35l.9f", 0x80001, 0x20000, CRC(e3266622) SHA1(77f981644f1e3af8a4327eab56ba6b39631b3421) ) + ROM_LOAD16_BYTE( "sf2_29l.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) + ROM_LOAD16_BYTE( "sf2_36l.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) + + ROM_REGION( 0x600000, "gfx", 0 ) + ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a + ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a + ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a + ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a + ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c + ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c + ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c + ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c + ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d + ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d + ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d + ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) + ROM_CONTINUE( 0x10000, 0x08000 ) + + ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ + ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + + ROM_REGION( 0x0200, "aboardplds", 0 ) + ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) + ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) ) + ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) + ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) + ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", 0 ) + ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) ) + ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) + + ROM_REGION( 0x0200, "cboardplds", 0 ) + ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) +ROM_END + /* B-Board 90629B-2 */ ROM_START( sf2ja ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ @@ -12429,7 +12478,8 @@ GAME( 1991, sf2uf, sf2, cps1_10MHz, sf2, cps_state, cps1, GAME( 1991, sf2ug, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910522, Rev. G)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, sf2ui, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910522, Rev. I)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, sf2uk, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 911101)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, sf2j, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 911210)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2j, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 911210, CPS-B-13)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sf2j17, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 911210, CPS-B-17)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, sf2ja, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910214)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, sf2jc, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910306)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, sf2jf, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910411)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/cxgz80.cpp b/src/mame/drivers/cxgz80.cpp index 0a34c800ff3..96af9b69426 100644 --- a/src/mame/drivers/cxgz80.cpp +++ b/src/mame/drivers/cxgz80.cpp @@ -64,7 +64,7 @@ public: u16 read_inputs(int columns); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp index 0d0d93b03c2..fbedc29a06c 100644 --- a/src/mame/drivers/dec8.cpp +++ b/src/mame/drivers/dec8.cpp @@ -2020,7 +2020,7 @@ static MACHINE_CONFIG_START( lastmisn ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", shackled) MCFG_PALETTE_ADD("palette", 1024) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn) @@ -2074,7 +2074,7 @@ static MACHINE_CONFIG_START( shackled ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", shackled) MCFG_PALETTE_ADD("palette", 1024) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_VIDEO_START_OVERRIDE(dec8_state,shackled) @@ -2128,7 +2128,7 @@ static MACHINE_CONFIG_START( gondo ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", gondo) MCFG_PALETTE_ADD("palette", 1024) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_VIDEO_START_OVERRIDE(dec8_state,gondo) @@ -2182,7 +2182,7 @@ static MACHINE_CONFIG_START( garyoret ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", gondo) MCFG_PALETTE_ADD("palette", 1024) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_VIDEO_START_OVERRIDE(dec8_state,garyoret) @@ -2240,7 +2240,7 @@ static MACHINE_CONFIG_START( ghostb ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", ghostb) MCFG_PALETTE_ADD("palette", 1024) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_PALETTE_INIT_OWNER(dec8_state,ghostb) MCFG_VIDEO_START_OVERRIDE(dec8_state,ghostb) @@ -2300,7 +2300,7 @@ static MACHINE_CONFIG_START( csilver ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", shackled) MCFG_PALETTE_ADD("palette", 1024) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn) @@ -2363,7 +2363,7 @@ static MACHINE_CONFIG_START( oscar ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", oscar) MCFG_PALETTE_ADD("palette", 512) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_VIDEO_START_OVERRIDE(dec8_state,oscar) @@ -2409,7 +2409,7 @@ static MACHINE_CONFIG_START( srdarwin ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", srdarwin) MCFG_PALETTE_ADD("palette", 144) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_VIDEO_START_OVERRIDE(dec8_state,srdarwin) @@ -2467,7 +2467,7 @@ static MACHINE_CONFIG_START( cobracom ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", cobracom) MCFG_PALETTE_ADD("palette", 256) - MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR_DECO) MCFG_VIDEO_START_OVERRIDE(dec8_state,cobracom) @@ -3587,6 +3587,37 @@ ROM_START( cobracom ) ROM_CONTINUE( 0x60000, 0x08000 ) ROM_END +ROM_START( cobracoma ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "el11-4.bin", 0x08000, 0x08000, CRC(6dca6734) SHA1(1d165845680df2f1febd2b7d2f3163d68523496e) ) + ROM_LOAD( "el12-4.bin", 0x10000, 0x10000, CRC(7a44ef38) SHA1(d7dc277dce08f9d073290e100be4a7ca2e2b82cb) ) + ROM_LOAD( "el13.bin", 0x20000, 0x10000, CRC(04505acb) SHA1(2220efb277884588859375dab9960f04f07273a7) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "el10-4.bin", 0x8000, 0x8000, CRC(edfad118) SHA1(10de8805472346fead62460a3fdc09ae26a4e0d5) ) + + ROM_REGION( 0x08000, "gfx1", 0 ) /* characters */ + ROM_LOAD( "el14.bin", 0x00000, 0x08000, CRC(47246177) SHA1(51b025740dc03b04009ac97d8d110ab521894386) ) + + ROM_REGION( 0x80000, "gfx2", 0 ) /* sprites */ + ROM_LOAD( "el00-4.bin", 0x00000, 0x10000, CRC(122da2a8) SHA1(ce72f16abf7e5449c7d044d4b827e8735c3be0ff) ) + ROM_LOAD( "el01-4.bin", 0x20000, 0x10000, CRC(27bf705b) SHA1(196c35aaf3816d3eef4c2af6d146a90a48365d33) ) + ROM_LOAD( "el02-4.bin", 0x40000, 0x10000, CRC(c86fede6) SHA1(97584fa19591651fcfb39d1b2b6306165e93554c) ) + ROM_LOAD( "el03-4.bin", 0x60000, 0x10000, CRC(1d8a855b) SHA1(429261c200dddc62a330be8aea150b2037133188) ) + + ROM_REGION( 0x80000, "gfx3", 0 ) /* tiles 1 */ + ROM_LOAD( "el05.bin", 0x00000, 0x10000, CRC(1c4f6033) SHA1(4a7dece911166d1ff5f41df6ec5140596206d8d4) ) + ROM_LOAD( "el06.bin", 0x20000, 0x10000, CRC(d24ba794) SHA1(b34b7bbaab4ebdd81c87d363f087cc92e27e8d1c) ) + ROM_LOAD( "el04.bin", 0x40000, 0x10000, CRC(d80a49ce) SHA1(1a92413b5ab53f80e44a954433e69ec5fe2c0aa6) ) + ROM_LOAD( "el07.bin", 0x60000, 0x10000, CRC(6d771fc3) SHA1(f29979f3aa07bdb544fb0c1d773c5558b4533390) ) + + ROM_REGION( 0x80000, "gfx4", 0 ) /* tiles 2 */ + ROM_LOAD( "el08.bin", 0x00000, 0x08000, CRC(cb0dcf4c) SHA1(e14853f83ee9ba5cbf2eb1e085fee4e65af3cc25) ) + ROM_CONTINUE( 0x40000, 0x08000 ) + ROM_LOAD( "el09.bin", 0x20000, 0x08000, CRC(1fae5be7) SHA1(be6e090b0b82648b385d9b6d11775f3ff40f0af3) ) + ROM_CONTINUE( 0x60000, 0x08000 ) +ROM_END + ROM_START( cobracomj ) ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "eh-11.rom", 0x08000, 0x08000, CRC(868637e1) SHA1(8b1e3e045e341bb94b1f6c7d89198b22e6c19de7) ) @@ -3727,5 +3758,9 @@ GAME( 1987, oscarj1, oscar, oscar, oscarj, dec8_state, oscar, R GAME( 1987, oscarj2, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, srdarwin, 0, srdarwin, srdarwin, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, srdarwinj, srdarwin, srdarwin, srdarwinj, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (World revision 5)", MACHINE_SUPPORTS_SAVE ) + +// Unlike most Deco games of this period Cobra Command does not seem to have a Data East USA release. Instead the Data East Corporation release +// was used in the US as evidenced by boards with the EL romset bearing AAMA seal stickers (American Amusement Machine Association) +GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracoma, cobracom, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 4)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, cobracomj, cobracom, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (Japan)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/flicker.cpp b/src/mame/drivers/flicker.cpp index 324381adfcf..7077eec8462 100644 --- a/src/mame/drivers/flicker.cpp +++ b/src/mame/drivers/flicker.cpp @@ -21,7 +21,7 @@ #include "emu.h" #include "machine/genpin.h" -#include "cpu/i4004/i4004.h" +#include "cpu/mcs40/mcs40.h" #include "flicker.lh" class flicker_state : public genpin_class @@ -57,10 +57,10 @@ static ADDRESS_MAP_START(flicker_map, AS_DATA, 8, flicker_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( flicker_io, AS_IO, 8, flicker_state ) - AM_RANGE(0x0000, 0x0000) AM_WRITE(port00_w) - AM_RANGE(0x0001, 0x0001) AM_WRITE(port01_w) - AM_RANGE(0x0002, 0x0002) AM_READ(port02_r) - AM_RANGE(0x0010, 0x0010) AM_WRITE(port10_w) + AM_RANGE(0x0000, 0x000f) AM_MIRROR(0x0700) AM_WRITE(port00_w) + AM_RANGE(0x0010, 0x001f) AM_MIRROR(0x0700) AM_WRITE(port01_w) + AM_RANGE(0x0020, 0x002f) AM_MIRROR(0x0700) AM_READ(port02_r) + AM_RANGE(0x1000, 0x103f) AM_MIRROR(0x0800) AM_WRITE(port10_w) ADDRESS_MAP_END static INPUT_PORTS_START( flicker ) @@ -116,33 +116,27 @@ INPUT_PORTS_END READ8_MEMBER( flicker_state::port02_r ) { - offset = m_maincpu->state_int(I4004_RAM) & 0x0f; // we need the full address - if (offset < 7) return m_switch[offset]->read(); - - return 0; + else + return 0; } WRITE8_MEMBER( flicker_state::port00_w ) { static const uint8_t patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 }; - offset = m_maincpu->state_int(I4004_RAM); // we need the full address output().set_digit_value(offset, patterns[data]); } WRITE8_MEMBER( flicker_state::port01_w ) { -// The output lines operate the various lamps (44 of them) - offset = m_maincpu->state_int(I4004_RAM) & 0x0f; // we need the full address - uint16_t test_port = m_testport->read() & 0xf81e; uint16_t coin_port = m_coinport->read() & 0x07e0; if (BIT(m_coinport->read(), 0) ) test_port |= coin_port; - m_maincpu->set_test(BIT(test_port, offset)); + m_maincpu->set_input_line(I4004_TEST_LINE, BIT(test_port, offset)); } WRITE8_MEMBER( flicker_state::port10_w ) @@ -165,42 +159,37 @@ The coin outputs (A and B) don't activate A large amount of data is continuously flowing through here, even when there is no sound to produce. We need to change this to just one pulse per actual sound. */ - if (!data && offset == m_out_data) - m_out_data = 0; - else + offset &= 0x0f; + if (data != offset) { - offset = m_maincpu->state_int(I4004_RAM) & 0x0f; // we need the full address - if (data != offset) + if (data != m_out_data) { - if (data != m_out_data) + m_out_data = data; + switch (data) { - m_out_data = data; - switch (data) - { - case 0x01: - m_samples->start(1, 1); - break; - case 0x02: - m_samples->start(2, 2); - break; - case 0x03: - m_samples->start(3, 3); - break; - case 0x04: - case 0x05: - case 0x06: - m_samples->start(0, 0); - break; - case 0x07: - case 0x08: - m_samples->start(5, 5); - break; - case 0x09: - m_samples->start(0, 6); - break; - default: - break; - } + case 0x01: + m_samples->start(1, 1); + break; + case 0x02: + m_samples->start(2, 2); + break; + case 0x03: + m_samples->start(3, 3); + break; + case 0x04: + case 0x05: + case 0x06: + m_samples->start(0, 0); + break; + case 0x07: + case 0x08: + m_samples->start(5, 5); + break; + case 0x09: + m_samples->start(0, 6); + break; + default: + break; } } } diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp index 1071e142911..c66dbccbd86 100644 --- a/src/mame/drivers/galaxian.cpp +++ b/src/mame/drivers/galaxian.cpp @@ -754,8 +754,8 @@ READ8_MEMBER(galaxian_state::konami_ay8910_r) { /* the decoding here is very simplistic, and you can address both simultaneously */ uint8_t result = 0xff; - if (offset & 0x20) result &= m_ay8910_1->data_r(space, 0); - if (offset & 0x80) result &= m_ay8910_0->data_r(space, 0); + if (offset & 0x20) result &= m_ay8910[1]->data_r(space, 0); + if (offset & 0x80) result &= m_ay8910[0]->data_r(space, 0); return result; } @@ -765,14 +765,14 @@ WRITE8_MEMBER(galaxian_state::konami_ay8910_w) /* AV 4,5 ==> AY8910 #2 */ /* the decoding here is very simplistic, and you can address two simultaneously */ if (offset & 0x10) - m_ay8910_1->address_w(space, 0, data); + m_ay8910[1]->address_w(space, 0, data); else if (offset & 0x20) - m_ay8910_1->data_w(space, 0, data); + m_ay8910[1]->data_w(space, 0, data); /* AV6,7 ==> AY8910 #1 */ if (offset & 0x40) - m_ay8910_0->address_w(space, 0, data); + m_ay8910[0]->address_w(space, 0, data); else if (offset & 0x80) - m_ay8910_0->data_w(space, 0, data); + m_ay8910[0]->data_w(space, 0, data); } @@ -870,8 +870,8 @@ READ8_MEMBER(galaxian_state::theend_ppi8255_r) { /* the decoding here is very simplistic, and you can address both simultaneously */ uint8_t result = 0xff; - if (offset & 0x0100) result &= m_ppi8255_0->read(space, offset & 3); - if (offset & 0x0200) result &= m_ppi8255_1->read(space, offset & 3); + if (offset & 0x0100) result &= m_ppi8255[0]->read(space, offset & 3); + if (offset & 0x0200) result &= m_ppi8255[1]->read(space, offset & 3); return result; } @@ -879,8 +879,8 @@ READ8_MEMBER(galaxian_state::theend_ppi8255_r) WRITE8_MEMBER(galaxian_state::theend_ppi8255_w) { /* the decoding here is very simplistic, and you can address both simultaneously */ - if (offset & 0x0100) m_ppi8255_0->write(space, offset & 3, data); - if (offset & 0x0200) m_ppi8255_1->write(space, offset & 3, data); + if (offset & 0x0100) m_ppi8255[0]->write(space, offset & 3, data); + if (offset & 0x0200) m_ppi8255[1]->write(space, offset & 3, data); } @@ -966,7 +966,7 @@ READ8_MEMBER(galaxian_state::sfx_sample_io_r) { /* the decoding here is very simplistic, and you can address both simultaneously */ uint8_t result = 0xff; - if (offset & 0x04) result &= m_ppi8255_2->read(space, offset & 3); + if (offset & 0x04) result &= m_ppi8255[2]->read(space, offset & 3); return result; } @@ -974,7 +974,7 @@ READ8_MEMBER(galaxian_state::sfx_sample_io_r) WRITE8_MEMBER(galaxian_state::sfx_sample_io_w) { /* the decoding here is very simplistic, and you can address both simultaneously */ - if (offset & 0x04) m_ppi8255_2->write(space, offset & 3, data); + if (offset & 0x04) m_ppi8255[2]->write(space, offset & 3, data); if (offset & 0x10) m_dac->write(data); } @@ -1058,8 +1058,8 @@ READ8_MEMBER(galaxian_state::frogger_ppi8255_r) { /* the decoding here is very simplistic, and you can address both simultaneously */ uint8_t result = 0xff; - if (offset & 0x1000) result &= m_ppi8255_1->read(space, (offset >> 1) & 3); - if (offset & 0x2000) result &= m_ppi8255_0->read(space, (offset >> 1) & 3); + if (offset & 0x1000) result &= m_ppi8255[1]->read(space, (offset >> 1) & 3); + if (offset & 0x2000) result &= m_ppi8255[0]->read(space, (offset >> 1) & 3); return result; } @@ -1067,8 +1067,8 @@ READ8_MEMBER(galaxian_state::frogger_ppi8255_r) WRITE8_MEMBER(galaxian_state::frogger_ppi8255_w) { /* the decoding here is very simplistic, and you can address both simultaneously */ - if (offset & 0x1000) m_ppi8255_1->write(space, (offset >> 1) & 3, data); - if (offset & 0x2000) m_ppi8255_0->write(space, (offset >> 1) & 3, data); + if (offset & 0x1000) m_ppi8255[1]->write(space, (offset >> 1) & 3, data); + if (offset & 0x2000) m_ppi8255[0]->write(space, (offset >> 1) & 3, data); } @@ -1076,7 +1076,7 @@ READ8_MEMBER(galaxian_state::frogger_ay8910_r) { /* the decoding here is very simplistic */ uint8_t result = 0xff; - if (offset & 0x40) result &= m_ay8910_0->data_r(space, 0); + if (offset & 0x40) result &= m_ay8910[0]->data_r(space, 0); return result; } @@ -1086,9 +1086,9 @@ WRITE8_MEMBER(galaxian_state::frogger_ay8910_w) /* the decoding here is very simplistic */ /* AV6,7 ==> AY8910 #1 */ if (offset & 0x40) - m_ay8910_0->data_w(space, 0, data); + m_ay8910[0]->data_w(space, 0, data); else if (offset & 0x80) - m_ay8910_0->address_w(space, 0, data); + m_ay8910[0]->address_w(space, 0, data); } @@ -1123,8 +1123,8 @@ READ8_MEMBER(galaxian_state::frogf_ppi8255_r) { /* the decoding here is very simplistic, and you can address both simultaneously */ uint8_t result = 0xff; - if (offset & 0x1000) result &= m_ppi8255_0->read(space, (offset >> 3) & 3); - if (offset & 0x2000) result &= m_ppi8255_1->read(space, (offset >> 3) & 3); + if (offset & 0x1000) result &= m_ppi8255[0]->read(space, (offset >> 3) & 3); + if (offset & 0x2000) result &= m_ppi8255[1]->read(space, (offset >> 3) & 3); return result; } @@ -1132,8 +1132,8 @@ READ8_MEMBER(galaxian_state::frogf_ppi8255_r) WRITE8_MEMBER(galaxian_state::frogf_ppi8255_w) { /* the decoding here is very simplistic, and you can address both simultaneously */ - if (offset & 0x1000) m_ppi8255_0->write(space, (offset >> 3) & 3, data); - if (offset & 0x2000) m_ppi8255_1->write(space, (offset >> 3) & 3, data); + if (offset & 0x1000) m_ppi8255[0]->write(space, (offset >> 3) & 3, data); + if (offset & 0x2000) m_ppi8255[1]->write(space, (offset >> 3) & 3, data); } @@ -1144,10 +1144,10 @@ WRITE8_MEMBER(galaxian_state::frogf_ppi8255_w) * *************************************/ -READ8_MEMBER(galaxian_state::turtles_ppi8255_0_r){ return m_ppi8255_0->read(space, (offset >> 4) & 3); } -READ8_MEMBER(galaxian_state::turtles_ppi8255_1_r){ return m_ppi8255_1->read(space, (offset >> 4) & 3); } -WRITE8_MEMBER(galaxian_state::turtles_ppi8255_0_w){ m_ppi8255_0->write(space, (offset >> 4) & 3, data); } -WRITE8_MEMBER(galaxian_state::turtles_ppi8255_1_w){ m_ppi8255_1->write(space, (offset >> 4) & 3, data); } +READ8_MEMBER(galaxian_state::turtles_ppi8255_0_r){ return m_ppi8255[0]->read(space, (offset >> 4) & 3); } +READ8_MEMBER(galaxian_state::turtles_ppi8255_1_r){ return m_ppi8255[1]->read(space, (offset >> 4) & 3); } +WRITE8_MEMBER(galaxian_state::turtles_ppi8255_0_w){ m_ppi8255[0]->write(space, (offset >> 4) & 3, data); } +WRITE8_MEMBER(galaxian_state::turtles_ppi8255_1_w){ m_ppi8255[1]->write(space, (offset >> 4) & 3, data); } @@ -1161,9 +1161,9 @@ READ8_MEMBER(galaxian_state::scorpion_ay8910_r) { /* the decoding here is very simplistic, and you can address both simultaneously */ uint8_t result = 0xff; - if (offset & 0x08) result &= m_ay8910_2->data_r(space, 0); - if (offset & 0x20) result &= m_ay8910_1->data_r(space, 0); - if (offset & 0x80) result &= m_ay8910_0->data_r(space, 0); + if (offset & 0x08) result &= m_ay8910[2]->data_r(space, 0); + if (offset & 0x20) result &= m_ay8910[1]->data_r(space, 0); + if (offset & 0x80) result &= m_ay8910[0]->data_r(space, 0); return result; } @@ -1171,12 +1171,12 @@ READ8_MEMBER(galaxian_state::scorpion_ay8910_r) WRITE8_MEMBER(galaxian_state::scorpion_ay8910_w) { /* the decoding here is very simplistic, and you can address all six simultaneously */ - if (offset & 0x04) m_ay8910_2->address_w(space, 0, data); - if (offset & 0x08) m_ay8910_2->data_w(space, 0, data); - if (offset & 0x10) m_ay8910_1->address_w(space, 0, data); - if (offset & 0x20) m_ay8910_1->data_w(space, 0, data); - if (offset & 0x40) m_ay8910_0->address_w(space, 0, data); - if (offset & 0x80) m_ay8910_0->data_w(space, 0, data); + if (offset & 0x04) m_ay8910[2]->address_w(space, 0, data); + if (offset & 0x08) m_ay8910[2]->data_w(space, 0, data); + if (offset & 0x10) m_ay8910[1]->address_w(space, 0, data); + if (offset & 0x20) m_ay8910[1]->data_w(space, 0, data); + if (offset & 0x40) m_ay8910[0]->address_w(space, 0, data); + if (offset & 0x80) m_ay8910[0]->data_w(space, 0, data); } @@ -1279,7 +1279,7 @@ WRITE8_MEMBER(galaxian_state::zigzag_ay8910_w) /* bit 0 = WRITE */ /* bit 1 = C/D */ if ((offset & 1) != 0) - m_ay8910_0->data_address_w(space, offset >> 1, m_zigzag_ay8910_latch); + m_ay8910[0]->data_address_w(space, offset >> 1, m_zigzag_ay8910_latch); break; case 0x100: @@ -2066,19 +2066,36 @@ static ADDRESS_MAP_START( tenspot_select_map, AS_PROGRAM, 8, galaxian_state ) AM_RANGE(0xe000, 0xe000) AM_WRITE(tenspot_unk_e000_w) ADDRESS_MAP_END + +READ8_MEMBER(galaxian_state::froggeram_ppi8255_r) +{ + // same as theend, but accesses are scrambled + uint8_t result = 0xff; + if (offset & 0x0100) result &= m_ppi8255[0]->read(space, offset & 3); + if (offset & 0x0200) result &= m_ppi8255[1]->read(space, offset & 3); + return BITSWAP8(result, 0, 1, 2, 3, 4, 5, 6, 7); +} + +WRITE8_MEMBER(galaxian_state::froggeram_ppi8255_w) +{ + // same as theend, but accesses are scrambled + data = BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7); + if (offset & 0x0100) m_ppi8255[0]->write(space, offset & 3, data); + if (offset & 0x0200) m_ppi8255[1]->write(space, offset & 3, data); +} + static ADDRESS_MAP_START( froggeram_map, AS_PROGRAM, 8, galaxian_state ) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x0000, 0x2fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_READWRITE(froggeram_ppi8255_r, froggeram_ppi8255_w) AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0x8800, 0x8800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0xa800, 0xabff) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram") AM_RANGE(0xb000, 0xb0ff) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0xb801, 0xb801) AM_WRITE(irq_enable_w) - AM_RANGE(0xb806, 0xb806) AM_WRITE(galaxian_flip_screen_x_w) - AM_RANGE(0xb807, 0xb807) AM_WRITE(galaxian_flip_screen_y_w) -// AM_RANGE(0xb818, 0xb818) AM_WRITE(coin_count_0_w) /* IOPC7 */ -// AM_RANGE(0xb81c, 0xb81c) AM_WRITE(coin_count_1_w) /* POUT1 */ - // todo, map inputs properly for this version + AM_RANGE(0xb802, 0xb802) AM_WRITE(coin_count_0_w) + AM_RANGE(0xb806, 0xb806) AM_WRITE(galaxian_flip_screen_x_w) // always set to 0? + AM_RANGE(0xb807, 0xb807) AM_WRITE(galaxian_flip_screen_y_w) // always set to 0? ADDRESS_MAP_END /************************************* @@ -4298,6 +4315,46 @@ static INPUT_PORTS_START( frogg ) PORT_DIPUNUSED( 0x08, 0x00 ) INPUT_PORTS_END +static INPUT_PORTS_START( froggeram ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) + + PORT_START("IN1") + PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x03, "5" ) + PORT_DIPSETTING( 0x01, "4" ) + PORT_DIPSETTING( 0x02, "3" ) + PORT_DIPSETTING( 0x00, "2" ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) + + PORT_START("IN2") + PORT_DIPUNKNOWN( 0x01, 0x00 ) + PORT_DIPUNKNOWN( 0x02, 0x00 ) + PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x0c, "A 1/2 B 1/1" ) + PORT_DIPSETTING( 0x00, "A 1/1 B 1/1" ) + PORT_DIPSETTING( 0x08, "A 2/1 B 2/1" ) + PORT_DIPSETTING( 0x04, "A 1/1 B 2/1" ) + PORT_DIPUNKNOWN( 0x10, 0x00 ) + PORT_DIPUNKNOWN( 0x20, 0x00 ) + PORT_DIPUNKNOWN( 0x40, 0x00 ) + PORT_DIPUNKNOWN( 0x80, 0x00 ) + + PORT_START("IN3") /* need for some PPI accesses */ + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END static INPUT_PORTS_START( turtles ) PORT_START("IN0") @@ -10381,21 +10438,21 @@ ROM_END ROM_START( froggeram ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "1.d2", 0x0000, 0x0800, CRC(b680e622) SHA1(233dbefa2aae6e85cb61acd60c49480bd4a3388d) ) - ROM_LOAD( "2.e2", 0x0800, 0x0800, CRC(32c56a50) SHA1(4d215fff6ff002e23aa889292c9c5eb242975f5d) ) - ROM_LOAD( "3.f2", 0x1000, 0x0800, CRC(4223a053) SHA1(c19555d2fee4172dff99d7cf65ebb44d1336c06e) ) - ROM_LOAD( "4.h2", 0x1800, 0x0800, CRC(bcd02aa7) SHA1(987c35bf9af8bb1083ccbf4d9f912be8d74b3d1f) ) - ROM_LOAD( "5.j2", 0x2000, 0x0800, CRC(b11b36f7) SHA1(d4e9342be7fa23f30565d7b75fa0fb8c6c82669d) ) - ROM_LOAD( "6.l2", 0x2800, 0x0800, CRC(a239048a) SHA1(a8dcc0b4bdb51f6e391832d69ba3a8727be59ae7) ) + ROM_LOAD( "1.d2", 0x0000, 0x0800, CRC(b680e622) SHA1(233dbefa2aae6e85cb61acd60c49480bd4a3388d) ) + ROM_LOAD( "2.e2", 0x0800, 0x0800, CRC(32c56a50) SHA1(4d215fff6ff002e23aa889292c9c5eb242975f5d) ) + ROM_LOAD( "3.f2", 0x1000, 0x0800, CRC(4223a053) SHA1(c19555d2fee4172dff99d7cf65ebb44d1336c06e) ) + ROM_LOAD( "4.h2", 0x1800, 0x0800, CRC(bcd02aa7) SHA1(987c35bf9af8bb1083ccbf4d9f912be8d74b3d1f) ) + ROM_LOAD( "5.j2", 0x2000, 0x0800, CRC(b11b36f7) SHA1(d4e9342be7fa23f30565d7b75fa0fb8c6c82669d) ) + ROM_LOAD( "6.l2", 0x2800, 0x0800, CRC(a239048a) SHA1(a8dcc0b4bdb51f6e391832d69ba3a8727be59ae7) ) ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "top7.c5", 0x0000, 0x0800, CRC(b4c2180e) SHA1(25894481ef3b55b11a875ab08c665d5d541f1a06) ) // only this sound rom was present in the dump, it matches quaak above - ROM_LOAD( "b.bin", 0x0800, 0x0800, CRC(a1aae0bc) SHA1(1cb06b0cfde9fdd7f176f4a51de801d97785d279) ) // so let's assume the rest do too. - ROM_LOAD( "c.bin", 0x1000, 0x0800, CRC(9d88fd0a) SHA1(ecfb8ddf67cd7755cbdbc1cc5e7788e1b5b3c882) ) + ROM_LOAD( "top7.c5", 0x0000, 0x0800, CRC(b4c2180e) SHA1(25894481ef3b55b11a875ab08c665d5d541f1a06) ) // only this sound rom was present in the dump, it matches quaak above + ROM_LOAD( "b.bin", 0x0800, 0x0800, BAD_DUMP CRC(a1aae0bc) SHA1(1cb06b0cfde9fdd7f176f4a51de801d97785d279) ) // so let's assume the rest do too (but mark them as BAD_DUMP). + ROM_LOAD( "c.bin", 0x1000, 0x0800, BAD_DUMP CRC(9d88fd0a) SHA1(ecfb8ddf67cd7755cbdbc1cc5e7788e1b5b3c882) ) ROM_REGION( 0x1000, "gfx1", 0 ) - ROM_LOAD( "bl7h", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) ) - ROM_LOAD( "bl8h", 0x0800, 0x0800, CRC(658745f8) SHA1(e4e5c3e011c8a7233a36d29e10e08905873500aa) ) + ROM_LOAD( "bl7h", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) ) + ROM_LOAD( "bl8h", 0x0800, 0x0800, CRC(658745f8) SHA1(e4e5c3e011c8a7233a36d29e10e08905873500aa) ) ROM_REGION( 0x0020, "proms", 0 ) ROM_LOAD( "n82s123.bin", 0x0000, 0x0020, CRC(a35ec965) SHA1(ea5851f3e0e54f043347c7ae9869db8f6711d031) ) @@ -12072,7 +12129,7 @@ GAME( 1981, frogf, frogger, frogf, frogger, galaxian_state, frogg GAME( 1981, frogg, frogger, galaxian, frogg, galaxian_state, frogg, ROT90, "bootleg", "Frog (Galaxian hardware)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, froggrs, frogger, froggers, frogger, galaxian_state, froggrs, ROT90, "bootleg (Coin Music)", "Frogger (Scramble hardware)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, quaak, frogger, quaak, frogger, galaxian_state, quaak, ROT90, "bootleg", "Quaak (bootleg of Frogger)", MACHINE_SUPPORTS_SAVE ) // closest to Super Cobra hardware, presumably a bootleg from Germany (Quaak is the German frog sound) -GAME( 1981, froggeram, frogger, froggeram, frogger, galaxian_state, quaak, ROT90, "bootleg", "Frogger (bootleg on Amigo? hardware)", MACHINE_NOT_WORKING ) // meant to be Amigo hardware, but maybe a different bootleg than the one we have? +GAME( 1981, froggeram, frogger, froggeram, froggeram, galaxian_state, quaak, ROT90, "bootleg", "Frogger (bootleg on Amigo? hardware)", MACHINE_SUPPORTS_SAVE ) // meant to be Amigo hardware, but maybe a different bootleg than the one we have? /* diff --git a/src/mame/drivers/gauntlet.cpp b/src/mame/drivers/gauntlet.cpp index ad4aefc67af..58defd05dff 100644 --- a/src/mame/drivers/gauntlet.cpp +++ b/src/mame/drivers/gauntlet.cpp @@ -195,7 +195,7 @@ WRITE16_MEMBER(gauntlet_state::sound_reset_w) { m_ym2151->reset(); m_tms5220->reset(); - m_tms5220->set_frequency(ATARI_CLOCK_14MHz/2 / 11); + m_tms5220->set_unscaled_clock(ATARI_CLOCK_14MHz/2 / 11); m_ym2151->set_output_gain(ALL_OUTPUTS, 0.0f); m_pokey->set_output_gain(ALL_OUTPUTS, 0.0f); m_tms5220->set_output_gain(ALL_OUTPUTS, 0.0f); @@ -249,7 +249,7 @@ WRITE8_MEMBER(gauntlet_state::sound_ctl_w) case 3: /* speech squeak, bit D7 */ data = 5 | ((data >> 6) & 2); - m_tms5220->set_frequency(ATARI_CLOCK_14MHz/2 / (16 - data)); + m_tms5220->set_unscaled_clock(ATARI_CLOCK_14MHz/2 / (16 - data)); break; } } diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp index 6a8de5d67a1..d0bcc8cb722 100644 --- a/src/mame/drivers/hh_cop400.cpp +++ b/src/mame/drivers/hh_cop400.cpp @@ -65,7 +65,7 @@ public: u16 read_inputs(int columns); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp index e994e16d307..fa5e9133f36 100644 --- a/src/mame/drivers/hh_hmcs40.cpp +++ b/src/mame/drivers/hh_hmcs40.cpp @@ -141,7 +141,7 @@ public: DECLARE_INPUT_CHANGED_MEMBER(single_interrupt_line); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 47 for now) diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp index 0fd011ca554..57f6437ed6f 100644 --- a/src/mame/drivers/hh_melps4.cpp +++ b/src/mame/drivers/hh_melps4.cpp @@ -44,7 +44,7 @@ public: DECLARE_INPUT_CHANGED_MEMBER(reset_button); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp index 98f8247d90a..d5ee4f39b04 100644 --- a/src/mame/drivers/hh_pic16.cpp +++ b/src/mame/drivers/hh_pic16.cpp @@ -91,7 +91,7 @@ public: u16 read_inputs(int columns); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index 9b7457c0b0f..35f2ef92094 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -6,15 +6,10 @@ Sharp SM5xx family handhelds. TODO: - - gnw_mc25 emulation is preliminary - - confirm gnw_mc25 romdump - - improve svg layout for gnw_jr55, gnw_mw56 + - improve svg screen for gnw_mc25, gnw_eg26, gnw_jr55, gnw_mw56, exospace - svg lcd screen background/foreground (not supported in core), or should it be for external artwork only? - - flickering segments, lcd physics? or screen update timing? - * ktmnt: "LIMIT" segment when going underwater on level 1 - * gnw_dj101: cage and clock before you start the game - * gnw_mw56: truck boxes while playing + - confirm gnw_mc25/gnw_eg26 rom (dumped from Soviet clone, but pretty confident that it's same) ***************************************************************************/ @@ -30,7 +25,7 @@ #include "gnw_dualv.lh" #include "gnw_dualh.lh" //#include "hh_sm510_test.lh" // common test-layout - use external artwork -#include "hh_sm500_test.lh" // " +//#include "hh_sm500_test.lh" // " class hh_sm510_state : public driver_device @@ -41,7 +36,8 @@ public: m_maincpu(*this, "maincpu"), m_inp_matrix(*this, "IN.%u", 0), m_speaker(*this, "speaker"), - m_inp_lines(0) + m_inp_lines(0), + m_display_wait(33) { } // devices @@ -50,10 +46,9 @@ public: optional_device<speaker_sound_device> m_speaker; // misc common - u16 m_inp_mux; // multiplexed inputs mask - int m_inp_lines; // number of input mux columns - u8 m_lcd_output_cache[0x100]; - + u16 m_inp_mux; // multiplexed inputs mask + int m_inp_lines; // number of input mux columns + u8 read_inputs(int columns); virtual void update_k_line(); @@ -67,6 +62,18 @@ public: virtual DECLARE_WRITE8_MEMBER(piezo_r2_w); virtual DECLARE_WRITE8_MEMBER(piezo_input_w); + // display common + int m_display_wait; // lcd segment on/off-delay in milliseconds (default 33ms) + u8 m_display_x_len; // lcd number of groups + u8 m_display_y_len; // lcd number of segments + u8 m_display_z_len; // lcd number of commons + u32 m_display_state[0x20]; // lcd segment data (max. 5-bit offset) + u8 m_display_decay[0x20][0x20]; // (internal use) + u8 m_display_cache[0x20][0x20]; // (internal use) + + void set_display_size(u8 x, u8 y, u8 z); + TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick); + protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -80,12 +87,22 @@ void hh_sm510_state::machine_start() // zerofill m_inp_mux = 0; /* m_inp_lines = 0; */ // not here - memset(m_lcd_output_cache, ~0, sizeof(m_lcd_output_cache)); + m_display_x_len = 0; + m_display_y_len = 0; + m_display_z_len = 0; + memset(m_display_state, 0, sizeof(m_display_state)); + memset(m_display_decay, 0, sizeof(m_display_decay)); + memset(m_display_cache, ~0, sizeof(m_display_cache)); // register for savestates save_item(NAME(m_inp_mux)); save_item(NAME(m_inp_lines)); - /* save_item(NAME(m_lcd_output_cache)); */ // don't save! + save_item(NAME(m_display_x_len)); + save_item(NAME(m_display_y_len)); + save_item(NAME(m_display_z_len)); + save_item(NAME(m_display_state)); + save_item(NAME(m_display_decay)); + /* save_item(NAME(m_display_cache)); */ // don't save! } void hh_sm510_state::machine_reset() @@ -101,49 +118,68 @@ void hh_sm510_state::machine_reset() ***************************************************************************/ // lcd panel - on lcd handhelds, usually not a generic x/y screen device +// deflicker here, especially needed for SM500/SM5A with the active shift register -WRITE16_MEMBER(hh_sm510_state::sm510_lcd_segment_w) +TIMER_DEVICE_CALLBACK_MEMBER(hh_sm510_state::display_decay_tick) { - for (int seg = 0; seg < 0x10; seg++) + u8 z_mask = (1 << m_display_z_len) - 1; + u8 zx_len = 1 << (m_display_x_len + m_display_z_len); + + for (int zx = 0; zx < zx_len; zx++) { - int index = offset << 4 | seg; - u8 state = data >> seg & 1; - - if (state != m_lcd_output_cache[index]) + for (int y = 0; y < m_display_y_len; y++) { - // output to row.seg.H, where: - // row = row a/b/bs/c (0/1/2/3) - // seg = seg 1-16 (0-15) - // H = H1-H4 (0-3) - char buf[0x10]; - sprintf(buf, "%d.%d.%d", offset >> 2, seg, offset & 3); - output().set_value(buf, state); - - m_lcd_output_cache[index] = state; + // delay lcd segment on/off state + if (m_display_state[zx] >> y & 1) + { + if (m_display_decay[y][zx] < (2 * m_display_wait - 1)) + m_display_decay[y][zx]++; + } + else if (m_display_decay[y][zx] > 0) + m_display_decay[y][zx]--; + u8 active_state = (m_display_decay[y][zx] < m_display_wait) ? 0 : 1; + + if (active_state != m_display_cache[y][zx]) + { + // SM510 series: output to x.y.z, where: + // x = group a/b/bs/c (0/1/2/3) + // y = segment 1-16 (0-15) + // z = common H1-H4 (0-3) + + // SM500 series: output to x.y.z, where: + // x = O group (0-*) + // y = O segment 1-4 (0-3) + // z = common H1/H2 (0/1) + char buf[0x10]; + sprintf(buf, "%d.%d.%d", zx >> m_display_z_len, y, zx & z_mask); + output().set_value(buf, active_state); + + m_display_cache[y][zx] = active_state; + } } } } -WRITE8_MEMBER(hh_sm510_state::sm500_lcd_segment_w) +void hh_sm510_state::set_display_size(u8 x, u8 y, u8 z) { - for (int seg = 0; seg < 4; seg++) - { - int index = offset << 2 | seg; - u8 state = data >> seg & 1; + // x = groups(in bits) + // y = number of segments per group + // z = commons(in bits) + m_display_x_len = x; + m_display_y_len = y; + m_display_z_len = z; +} - if (state != m_lcd_output_cache[index]) - { - // output to row.seg.H, where: - // row = O group (0-*) - // seg = O data (0-3) - // H = H1/H2 (0/1) - char buf[0x10]; - sprintf(buf, "%d.%d.%d", offset & 0xf, seg, offset >> 4); - output().set_value(buf, state); - - m_lcd_output_cache[index] = state; - } - } +WRITE16_MEMBER(hh_sm510_state::sm510_lcd_segment_w) +{ + set_display_size(2, 16, 2); + m_display_state[offset] = data; +} + +WRITE8_MEMBER(hh_sm510_state::sm500_lcd_segment_w) +{ + set_display_size(4, 4, 1); + m_display_state[offset] = data; } @@ -276,6 +312,8 @@ static MACHINE_CONFIG_START( ktopgun ) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(1611, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1611-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ @@ -345,6 +383,8 @@ static MACHINE_CONFIG_START( kcontra ) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(1501, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1501-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ @@ -413,6 +453,8 @@ static MACHINE_CONFIG_START( ktmnt ) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(1380, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1380-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ @@ -478,6 +520,8 @@ static MACHINE_CONFIG_START( kgradius ) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(1435, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1435-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ @@ -541,6 +585,8 @@ static MACHINE_CONFIG_START( kloneran ) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(1495, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1495-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ @@ -561,9 +607,11 @@ MACHINE_CONFIG_END MC-25 and EG-26 are the same game, it's assumed that the latter was for regions where Nintendo wasn't able to license from Disney. - In 1984, Elektronika(USSR) released a clone, Nu, Pogodi! This was followed - by several other games that were the same under the hood, only differing - in graphics. + In 1984, Elektronika(USSR) released a clone: Nu, pogodi! This was followed + by several other titles that were the same under the hood, only differing + in graphics. They also made a slightly modified version, adding a new game + mode (by pressing A+B) where the player/CPU roles are reversed. This version + is known as Razvedciki kosmosa (export version: Explorers of Space). ***************************************************************************/ @@ -581,25 +629,34 @@ public: static INPUT_PORTS_START( mc25 ) PORT_START("IN.0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("IN.1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY PORT_START("IN.2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // game b - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // game a - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("BA") // MCU BA(alpha) pin pulled to GND, only works after power-on + PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( exospace ) + PORT_INCLUDE( mc25 ) + + PORT_MODIFY("BA") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static MACHINE_CONFIG_START( mc25 ) @@ -609,9 +666,16 @@ static MACHINE_CONFIG_START( mc25 ) MCFG_SM500_WRITE_O_CB(WRITE8(hh_sm510_state, sm500_lcd_segment_w)) MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_input_w)) + MCFG_SM510_READ_BA_CB(IOPORT("BA")) /* video hardware */ - MCFG_DEFAULT_LAYOUT(layout_hh_sm500_test) + MCFG_SCREEN_SVG_ADD("screen", "svg") + MCFG_SCREEN_REFRESH_RATE(50) + MCFG_SCREEN_SIZE(1711, 1080) + MCFG_SCREEN_VISIBLE_AREA(0, 1711-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) + MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -619,6 +683,37 @@ static MACHINE_CONFIG_START( mc25 ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( eg26, mc25 ) + + /* video hardware */ + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_SIZE(1694, 1080) + MCFG_SCREEN_VISIBLE_AREA(0, 1694-1, 0, 1080-1) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( nupogodi, mc25 ) + + /* basic machine hardware */ + MCFG_CPU_REPLACE("maincpu", KB1013VK12, XTAL_32_768kHz) + MCFG_SM500_WRITE_O_CB(WRITE8(hh_sm510_state, sm500_lcd_segment_w)) + MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) + MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_input_w)) + MCFG_SM510_READ_BA_CB(IOPORT("BA")) + + /* video hardware */ + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_SIZE(1724, 1080) + MCFG_SCREEN_VISIBLE_AREA(0, 1724-1, 0, 1080-1) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( exospace, nupogodi ) + + /* video hardware */ + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_SIZE(1756, 1080) + MCFG_SCREEN_VISIBLE_AREA(0, 1756-1, 0, 1080-1) +MACHINE_CONFIG_END + @@ -658,6 +753,11 @@ static INPUT_PORTS_START( dm53 ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("B") // MCU B(beta) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END static MACHINE_CONFIG_START( dm53 ) @@ -668,6 +768,7 @@ static MACHINE_CONFIG_START( dm53 ) MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w)) MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r2_w)) + MCFG_SM510_READ_B_CB(IOPORT("B")) /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_top", "svg_top") @@ -680,6 +781,7 @@ static MACHINE_CONFIG_START( dm53 ) MCFG_SCREEN_SIZE(1920/2, 1219/2) MCFG_SCREEN_VISIBLE_AREA(0, 1920/2-1, 0, 1219/2-1) + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_gnw_dualv) /* sound hardware */ @@ -731,6 +833,11 @@ static INPUT_PORTS_START( jr55 ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("B") // MCU B(beta) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END static MACHINE_CONFIG_START( jr55 ) @@ -741,6 +848,7 @@ static MACHINE_CONFIG_START( jr55 ) MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w)) MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w)) + MCFG_SM510_READ_B_CB(IOPORT("B")) /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_top", "svg_top") @@ -753,6 +861,7 @@ static MACHINE_CONFIG_START( jr55 ) MCFG_SCREEN_SIZE(1920/2, 1261/2) MCFG_SCREEN_VISIBLE_AREA(0, 1920/2-1, 0, 1261/2-1) + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_gnw_dualv) /* sound hardware */ @@ -800,6 +909,16 @@ static INPUT_PORTS_START( mw56 ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("BA") // MCU BA(alpha) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("B") // MCU B(beta) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END static MACHINE_CONFIG_START( mw56 ) @@ -810,6 +929,8 @@ static MACHINE_CONFIG_START( mw56 ) MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w)) MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w)) + MCFG_SM510_READ_BA_CB(IOPORT("BA")) + MCFG_SM510_READ_B_CB(IOPORT("B")) /* video hardware */ MCFG_SCREEN_SVG_ADD("screen_left", "svg_left") @@ -822,6 +943,7 @@ static MACHINE_CONFIG_START( mw56 ) MCFG_SCREEN_SIZE(2079/2, 1440/2) MCFG_SCREEN_VISIBLE_AREA(0, 2079/2-1, 0, 1440/2-1) + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_gnw_dualh) /* sound hardware */ @@ -875,6 +997,16 @@ static INPUT_PORTS_START( dj101 ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("BA") // MCU BA(alpha) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("B") // MCU B(beta) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END static MACHINE_CONFIG_START( dj101 ) @@ -885,12 +1017,16 @@ static MACHINE_CONFIG_START( dj101 ) MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w)) MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w)) + MCFG_SM510_READ_BA_CB(IOPORT("BA")) + MCFG_SM510_READ_B_CB(IOPORT("B")) /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(1665, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1665-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ @@ -939,6 +1075,16 @@ static INPUT_PORTS_START( ml102 ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("BA") // MCU BA(alpha) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("B") // MCU B(beta) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END static MACHINE_CONFIG_START( ml102 ) @@ -949,12 +1095,16 @@ static MACHINE_CONFIG_START( ml102 ) MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w)) MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w)) + MCFG_SM510_READ_BA_CB(IOPORT("BA")) + MCFG_SM510_READ_B_CB(IOPORT("B")) /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(1759, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1759-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ @@ -1025,6 +1175,16 @@ static INPUT_PORTS_START( bx301 ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("BA") // MCU BA(alpha) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "P2 Decrease Health (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("B") // MCU B(beta) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "P1 Infinite Health (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END static MACHINE_CONFIG_START( bx301 ) @@ -1035,12 +1195,16 @@ static MACHINE_CONFIG_START( bx301 ) MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w)) MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w)) + MCFG_SM510_READ_BA_CB(IOPORT("BA")) + MCFG_SM510_READ_B_CB(IOPORT("B")) /* video hardware */ MCFG_SCREEN_SVG_ADD("screen", "svg") MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(1920, 529) MCFG_SCREEN_VISIBLE_AREA(0, 1920-1, 0, 529-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_svg) /* sound hardware */ @@ -1120,8 +1284,32 @@ ROM_START( gnw_mc25 ) ROM_REGION( 0x1000, "maincpu", 0 ) ROM_LOAD( "mc-25", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone - ROM_REGION( 100000, "svg", 0) - ROM_LOAD( "gnw_mc25.svg", 0, 100000, NO_DUMP ) + ROM_REGION( 100018, "svg", 0) + ROM_LOAD( "gnw_mc25.svg", 0, 100018, CRC(bcd01de3) SHA1(2c7a9da248f96ac11e794a46942a3e420d1e854b) ) +ROM_END + +ROM_START( gnw_eg26 ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "eg-26", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone + + ROM_REGION( 100529, "svg", 0) + ROM_LOAD( "gnw_eg26.svg", 0, 100529, CRC(055c6b47) SHA1(66f78cd705bc982e92c950a7bd685c681c52a5e7) ) +ROM_END + +ROM_START( nupogodi ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "nupogodi.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) + + ROM_REGION( 123824, "svg", 0) + ROM_LOAD( "nupogodi.svg", 0, 123824, CRC(fc1ccab0) SHA1(ef81b5119a62dc68486db85a19ac9db5ef01778e) ) +ROM_END + +ROM_START( exospace ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "exospace.bin", 0x0000, 0x0740, CRC(553e2b09) SHA1(2b74f8437b881fbb62b61f25435a5bfc66872a9a) ) + + ROM_REGION( 63114, "svg", 0) + ROM_LOAD( "exospace.svg", 0, 63114, CRC(64a24c67) SHA1(54c77615a748e44c8c6217583c7567a152dcf21f) ) ROM_END @@ -1192,17 +1380,23 @@ ROM_END -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, 0, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, 0, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, 0, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, 0, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, 0, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, 0, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, 0, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, 0, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, 0, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, 0, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE ) + +CONS( 1981, gnw_mc25, 0, 0, mc25, mc25, mc25_state, 0, "Nintendo", "Game & Watch: Mickey Mouse", MACHINE_SUPPORTS_SAVE ) +CONS( 1981, gnw_eg26, gnw_mc25, 0, eg26, mc25, mc25_state, 0, "Nintendo", "Game & Watch: Egg", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, nupogodi, gnw_mc25, 0, nupogodi, mc25, mc25_state, 0, "Elektronika", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, exospace, gnw_mc25, 0, exospace, exospace, mc25_state, 0, "Elektronika", "Explorers of Space", MACHINE_SUPPORTS_SAVE ) + +CONS( 1982, gnw_dm53, 0, 0, dm53, dm53, dm53_state, 0, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, gnw_jr55, 0, 0, jr55, jr55, jr55_state, 0, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, gnw_mw56, 0, 0, mw56, mw56, mw56_state, 0, "Nintendo", "Game & Watch: Mario Bros.", MACHINE_SUPPORTS_SAVE ) + +CONS( 1982, gnw_dj101, 0, 0, dj101, dj101, dj101_state, 0, "Nintendo", "Game & Watch: Donkey Kong Jr. (new wide screen)", MACHINE_SUPPORTS_SAVE ) +CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, ml102_state, 0, "Nintendo", "Game & Watch: Mario's Cement Factory (new wide screen)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, gnw_mc25, 0, 0, mc25, mc25, mc25_state, 0, "Nintendo", "Game & Watch: Mickey Mouse", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -CONS( 1982, gnw_dm53, 0, 0, dm53, dm53, dm53_state, 0, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, gnw_jr55, 0, 0, jr55, jr55, jr55_state, 0, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, gnw_mw56, 0, 0, mw56, mw56, mw56_state, 0, "Nintendo", "Game & Watch: Mario Bros.", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gnw_dj101, 0, 0, dj101, dj101, dj101_state, 0, "Nintendo", "Game & Watch: Donkey Kong Jr. (new wide screen)", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, ml102_state, 0, "Nintendo", "Game & Watch: Mario's Cement Factory (new wide screen)", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, gnw_bx301, 0, 0, bx301, bx301, bx301_state, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE ) +CONS( 1984, gnw_bx301, 0, 0, bx301, bx301, bx301_state, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/ice_bozopail.cpp b/src/mame/drivers/ice_bozopail.cpp index fe0df02664c..c726425e66d 100644 --- a/src/mame/drivers/ice_bozopail.cpp +++ b/src/mame/drivers/ice_bozopail.cpp @@ -18,6 +18,7 @@ http://www.highwaygames.com/arcade-machines/bozo-s-grand-prize-game-6751/ */ #include "emu.h" +#include "cpu/mc68hc11/mc68hc11.h" #include "speaker.h" class ice_bozopail_state : public driver_device @@ -25,16 +26,20 @@ class ice_bozopail_state : public driver_device public: ice_bozopail_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) - // ,m_maincpu(*this, "maincpu") + , m_maincpu(*this, "maincpu") { } virtual void machine_start() override; virtual void machine_reset() override; -// required_device<mcs51_cpu_device> m_maincpu; + required_device<cpu_device> m_maincpu; }; -static INPUT_PORTS_START( ice_bozoice_bozo ) +static ADDRESS_MAP_START( ice_bozo_map, AS_PROGRAM, 8, ice_bozopail_state ) + AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION("maincpu", 0x1fe000) +ADDRESS_MAP_END + +static INPUT_PORTS_START( ice_bozo ) INPUT_PORTS_END @@ -48,12 +53,11 @@ void ice_bozopail_state::machine_reset() } -static MACHINE_CONFIG_START( ice_bozoice_bozo ) +static MACHINE_CONFIG_START( ice_bozo ) /* basic machine hardware */ -// MCFG_CPU_ADD("maincpu", ??, 8000000) // unknown -// MCFG_CPU_PROGRAM_MAP(ice_bozoice_bozo_map) -// MCFG_CPU_IO_MAP(ice_bozoice_bozo_io) + MCFG_CPU_ADD("maincpu", MC68HC11, 8000000) // unknown clock + MCFG_CPU_PROGRAM_MAP(ice_bozo_map) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -62,9 +66,9 @@ MACHINE_CONFIG_END ROM_START( ice_bozo ) - ROM_REGION( 0x200000, "maincpu", 0 ) // mostly sound data, some code, what CPU? x86? vectors at end of u9? + ROM_REGION( 0x200000, "maincpu", 0 ) // mostly sound data, some code ROM_LOAD( "ICE-BOZO.U18", 0x000000, 0x100000, CRC(00500a8b) SHA1(50b8a784ae61510a08cafbfb8529ec2a8ac1bf06) ) ROM_LOAD( "ICE-BOZO.U9", 0x100000, 0x100000, CRC(26fd9d60) SHA1(41fe8d42db1eb16b413bd5a0f16bf0d081c3cc97) ) ROM_END -GAME( 1997?, ice_bozo, 0, ice_bozoice_bozo, ice_bozoice_bozo, ice_bozopail_state, 0, ROT0, "Innovative Creations in Entertainment", "Bozo's Pail Toss (v2.07)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1997?, ice_bozo, 0, ice_bozo, ice_bozo, ice_bozopail_state, 0, ROT0, "Innovative Creations in Entertainment", "Bozo's Pail Toss (v2.07)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/intellec4.cpp b/src/mame/drivers/intellec4.cpp new file mode 100644 index 00000000000..4bdd58548d6 --- /dev/null +++ b/src/mame/drivers/intellec4.cpp @@ -0,0 +1,94 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb +/* + Intel INTELLEC® 4/MOD 40 + + Set the terminal for 110 1/8/N/2 to talk to the monitor. + It only likes to see uppercase letters, digits, comman and carriage return. + */ +#include "emu.h" + +#include "bus/rs232/rs232.h" +#include "cpu/mcs40/mcs40.h" + + +namespace { + +class intellec4_40_state : public driver_device +{ +public: + intellec4_40_state(machine_config const &mconfig, device_type type, char const *tag) + : driver_device(mconfig, type, tag) + , m_tty(*this, "tty") + { + } + + DECLARE_READ8_MEMBER(tty_r); + DECLARE_WRITE8_MEMBER(tty_w); + +private: + required_device<rs232_port_device> m_tty; +}; + + +READ8_MEMBER(intellec4_40_state::tty_r) +{ + return m_tty->rxd_r() ? 0x0 : 0x1; +} + +WRITE8_MEMBER(intellec4_40_state::tty_w) +{ + m_tty->write_txd(BIT(data, 0)); +} + + +ADDRESS_MAP_START(mod40_program, AS_PROGRAM, 8, intellec4_40_state) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x03ff) AM_ROM AM_REGION("monitor", 0x0000) // 4289 + 4 * 1702A +ADDRESS_MAP_END + +ADDRESS_MAP_START(mod40_data, AS_DATA, 8, intellec4_40_state) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x00ff) AM_RAM // 4 * 4002 +ADDRESS_MAP_END + +ADDRESS_MAP_START(mod40_io, AS_IO, 8, intellec4_40_state) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x000f) AM_MIRROR(0x0700) AM_READ(tty_r) // RDR when RC=00 + AM_RANGE(0x1000, 0x103f) AM_MIRROR(0x0800) AM_WRITE(tty_w) // WMP when RC=00 +ADDRESS_MAP_END + + +MACHINE_CONFIG_START(intlc440) + MCFG_CPU_ADD("maincpu", I4040, 5185000./7) + MCFG_CPU_PROGRAM_MAP(mod40_program) + MCFG_CPU_DATA_MAP(mod40_data) + MCFG_CPU_IO_MAP(mod40_io) + + MCFG_RS232_PORT_ADD("tty", default_rs232_devices, "terminal") +MACHINE_CONFIG_END + + +INPUT_PORTS_START(intlc440) +INPUT_PORTS_END + + +ROM_START(intlc440) + ROM_REGION(0x0400, "monitor", 0) + ROM_DEFAULT_BIOS("v2.1") + ROM_SYSTEM_BIOS(0, "v2.1", "MON 4 V2.1") + ROMX_LOAD("mon_4-000-v_2.1.a1", 0x0000, 0x0100, CRC(8d1f56ff) SHA1(96bc19be9be4e92195fad82d7a3cadb763ab6e3f), ROM_BIOS(1)) + ROMX_LOAD("mon_4-100-v_2.1.a2", 0x0100, 0x0100, CRC(66562a4f) SHA1(040749c45e95dfc39b3397d0c31c8b4c11f0a5fc), ROM_BIOS(1)) + ROMX_LOAD("mon_4-200-v_2.1.a3", 0x0200, 0x0100, CRC(fe039c68) SHA1(1801cfcc7514412865c0fdc7d1800fcf583a2d2a), ROM_BIOS(1)) + ROMX_LOAD("mon_4-300-v_2.1.a4", 0x0300, 0x0100, CRC(3724d5af) SHA1(b764b3bb3541fbda875f7a7655f46aa54b332631), ROM_BIOS(1)) + ROM_SYSTEM_BIOS(1, "v2.1_1200", "MON 4 V2.1 1200 Baud hack") + ROMX_LOAD("mon_4-000-v_2.1.a1", 0x0000, 0x0100, CRC(8d1f56ff) SHA1(96bc19be9be4e92195fad82d7a3cadb763ab6e3f), ROM_BIOS(2)) + ROMX_LOAD("i40_mon-1.a2", 0x0100, 0x0100, CRC(cd9fecd6) SHA1(9c4fb85118c881687fd4b324e5089df05d1e63d1), ROM_BIOS(2)) + ROMX_LOAD("i40_mon-2.a3", 0x0200, 0x0100, CRC(037de128) SHA1(3694636e1f4e23688b36ea9ee755a0c5888f4328), ROM_BIOS(2)) + ROMX_LOAD("1200_baud-i40_mon-f3.a4", 0x0300, 0x0100, CRC(f3198d79) SHA1(b7903073b69f487b6f78842c08694f12225d85f0), ROM_BIOS(2)) +ROM_END + +} // anonymous namespace + +// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS +COMP( 1974?, intlc440, 0, 0, intlc440, intlc440, intellec4_40_state, 0, "Intel", "INTELLEC 4/MOD40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/joctronic.cpp b/src/mame/drivers/joctronic.cpp index 0c928469386..3e86395b574 100644 --- a/src/mame/drivers/joctronic.cpp +++ b/src/mame/drivers/joctronic.cpp @@ -398,9 +398,9 @@ MACHINE_CONFIG_END /-------------------------------------------------------------------*/ ROM_START(punkywil) // Both ROMs are 27128, according to a text file accompanying - // the bad dump (which had a 512K overdump of the sound ROM) + // the previous bad dump (which had a 512K overdump of the sound ROM) ROM_REGION(0x4000, "maincpu", 0) - ROM_LOAD("PUNKIY C.P.U", 0x0000, 0x1200, BAD_DUMP CRC(c46ba6e7) SHA1(d2dd1139bc1f59937b40662f8563c68c87d8e2af)) // 0c6c (???) + ROM_LOAD("pw_game.bin", 0x0000, 0x4000, CRC(f408367a) SHA1(967ab8a16e64273abf8e8cc4faab60e2c9a4856b)) // 0c6c (???) ROM_REGION(0x4000, "soundcpu", 0) ROM_LOAD("pw_sound.bin", 0x0000, 0x4000, CRC(b2e3a201) SHA1(e3b0a5b22827683382b61c21607201cd470062ee)) // d55c (???) diff --git a/src/mame/drivers/jtc.cpp b/src/mame/drivers/jtc.cpp index d8fd6fc83a5..68fb8f58a94 100644 --- a/src/mame/drivers/jtc.cpp +++ b/src/mame/drivers/jtc.cpp @@ -282,14 +282,6 @@ static ADDRESS_MAP_START( jtc_es40_mem, AS_PROGRAM, 8, jtces40_state ) AM_RANGE(0x8000, 0xffff) AM_RAM//BANK(1) ADDRESS_MAP_END -static ADDRESS_MAP_START( jtc_io, AS_IO, 8, jtc_state ) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00, 0x00) AM_NOP // A8-A15 - AM_RANGE(0x01, 0x01) AM_NOP // AD0-AD7 - AM_RANGE(0x02, 0x02) AM_WRITE(p2_w) - AM_RANGE(0x03, 0x03) AM_READWRITE(p3_r, p3_w) -ADDRESS_MAP_END - /* Input Ports */ static INPUT_PORTS_START( jtc ) @@ -724,7 +716,9 @@ static MACHINE_CONFIG_START( basic ) /* basic machine hardware */ MCFG_CPU_ADD(UB8830D_TAG, UB8830D, XTAL_8MHz) MCFG_CPU_PROGRAM_MAP(jtc_mem) - MCFG_CPU_IO_MAP(jtc_io) + MCFG_Z8_PORT_P2_WRITE_CB(WRITE8(jtc_state, p2_w)) + MCFG_Z8_PORT_P3_READ_CB(READ8(jtc_state, p3_r)) + MCFG_Z8_PORT_P3_WRITE_CB(WRITE8(jtc_state, p3_w)) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/k28.cpp b/src/mame/drivers/k28.cpp index 29c5ba93168..53316895754 100644 --- a/src/mame/drivers/k28.cpp +++ b/src/mame/drivers/k28.cpp @@ -51,7 +51,7 @@ public: required_ioport_array<7> m_inp_matrix; // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/drivers/m14.cpp b/src/mame/drivers/m14.cpp index 85468ceb35b..14ee7a6bc3c 100644 --- a/src/mame/drivers/m14.cpp +++ b/src/mame/drivers/m14.cpp @@ -7,19 +7,18 @@ M14 Hardware (c) 1979 Irem driver by Angelo Salese TODO: -- Sound (very likely to be discrete); +- Actual discrete sound emulation; - Colors might be not 100% accurate (needs screenshots from the real thing); - What are the high 4 bits in the colorram for? They are used on the mahjong tiles only, left-over or something more important? -- I'm not sure about the hopper hook-up, it could also be that the player should press - start + button 1 + ron buttons (= 0x43) instead of being "automatic"; -- Inputs are grossly mapped; +- I/Os are grossly mapped; - ball and paddle drawing are a guesswork; Notes: - Unlike most Arcade games, if you call a ron but you don't have a legit hand you'll automatically lose the match. This is commonly named chombo in rii'chi mahjong rules; - +- After getting a completed hand, press start 1 + ron + discard at the same time to go back + into attract mode (!); ============================================================================================== x (Mystery Rom) @@ -52,6 +51,8 @@ Dumped by Chackn #include "emu.h" #include "cpu/i8085/i8085.h" #include "screen.h" +#include "sound/samples.h" +#include "speaker.h" class m14_state : public driver_device @@ -59,38 +60,32 @@ class m14_state : public driver_device public: m14_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_video_ram(*this, "video_ram"), - m_color_ram(*this, "color_ram"), m_maincpu(*this, "maincpu"), m_screen(*this, "screen"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") + m_palette(*this, "palette"), + m_video_ram(*this, "video_ram"), + m_color_ram(*this, "color_ram"), + m_samples(*this,"samples") { } - /* video-related */ - tilemap_t *m_m14_tilemap; - required_shared_ptr<uint8_t> m_video_ram; - required_shared_ptr<uint8_t> m_color_ram; - - /* input-related */ - uint8_t m_hop_mux; - uint8_t m_ballx,m_bally; - uint8_t m_paddlex; - /* devices */ required_device<cpu_device> m_maincpu; required_device<screen_device> m_screen; required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; + required_shared_ptr<uint8_t> m_video_ram; + required_shared_ptr<uint8_t> m_color_ram; + required_device<samples_device> m_samples; DECLARE_WRITE8_MEMBER(m14_vram_w); DECLARE_WRITE8_MEMBER(m14_cram_w); DECLARE_READ8_MEMBER(m14_rng_r); - DECLARE_READ8_MEMBER(input_buttons_r); - DECLARE_WRITE8_MEMBER(hopper_w); + DECLARE_WRITE8_MEMBER(output_w); DECLARE_WRITE8_MEMBER(ball_x_w); DECLARE_WRITE8_MEMBER(ball_y_w); DECLARE_WRITE8_MEMBER(paddle_x_w); + DECLARE_WRITE8_MEMBER(sound_w); DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); @@ -103,6 +98,15 @@ public: DECLARE_PALETTE_INIT(m14); uint32_t screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(m14_irq); + +private: + /* video-related */ + tilemap_t *m_m14_tilemap; + + /* input-related */ + //uint8_t m_hop_mux; + uint8_t m_ballx,m_bally; + uint8_t m_paddlex; }; @@ -219,24 +223,12 @@ READ8_MEMBER(m14_state::m14_rng_r) return (m_screen->frame_number() & 0x7f) | (ioport("IN1")->read() & 0x80); } -/* Here routes the hopper & the inputs */ -READ8_MEMBER(m14_state::input_buttons_r) +WRITE8_MEMBER(m14_state::output_w) { - if (m_hop_mux) - { - m_hop_mux = 0; - return 0; //0x43 status bits - } - else - return ioport("IN0")->read(); -} - -WRITE8_MEMBER(m14_state::hopper_w) -{ - /* ---- x--- coin out */ - /* ---- --x- hopper/input mux? */ + /* ---- x--- active after calling a winning hand */ + /* ---- --x- lamp? */ /* ---- ---x flip screen */ - m_hop_mux = data & 2; + //m_hop_mux = data & 2; flip_screen_set(data & 1); //popmessage("%02x",data); } @@ -258,6 +250,49 @@ WRITE8_MEMBER(m14_state::paddle_x_w) /************************************* * + * Sound section + * + *************************************/ + +static const char *const m14_sample_names[] = +{ + "*ptrmj", + "wall_hit", // 1 + "tile_hit", // 2 + "tick", // 0x40 + "ball_drop", // 8 + "paddle_hit", + nullptr +}; + +WRITE8_MEMBER(m14_state::sound_w) +{ + switch(data) + { + case 1: // wall hit + m_samples->start(0,0); + break; + case 2: // tile hit + m_samples->start(1,1); + break; + case 8: // ball drop + m_samples->start(3,3); + break; + case 0x40: // tick + m_samples->start(2,2); + break; + case 0x80: + case 0: // flips with previous, unknown purpose + break; + default: + logerror("%s: Sound start with %02x param\n",m_samples->tag(),data); + break; + } +} + + +/************************************* + * * Memory Map * *************************************/ @@ -272,10 +307,10 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( m14_io_map, AS_IO, 8, m14_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0xf8, 0xf8) AM_READ_PORT("AN_PADDLE") AM_WRITE(ball_x_w) - AM_RANGE(0xf9, 0xf9) AM_READ(input_buttons_r) AM_WRITE(ball_y_w) + AM_RANGE(0xf9, 0xf9) AM_READ_PORT("IN0") AM_WRITE(ball_y_w) AM_RANGE(0xfa, 0xfa) AM_READ(m14_rng_r) AM_WRITE(paddle_x_w) - AM_RANGE(0xfb, 0xfb) AM_READ_PORT("DSW") AM_WRITE(hopper_w) - AM_RANGE(0xfc, 0xfc) AM_WRITENOP // sound + AM_RANGE(0xfb, 0xfb) AM_READ_PORT("DSW") AM_WRITE(output_w) + AM_RANGE(0xfc, 0xfc) AM_WRITE(sound_w) ADDRESS_MAP_END /************************************* @@ -300,7 +335,7 @@ INPUT_CHANGED_MEMBER(m14_state::right_coin_inserted) static INPUT_PORTS_START( m14 ) PORT_START("AN_PADDLE") - PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(5) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_REVERSE + PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire / Discard") @@ -314,9 +349,7 @@ static INPUT_PORTS_START( m14 ) PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Freeze" ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen") PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) @@ -379,7 +412,7 @@ INTERRUPT_GEN_MEMBER(m14_state::m14_irq) void m14_state::machine_start() { - save_item(NAME(m_hop_mux)); + //save_item(NAME(m_hop_mux)); save_item(NAME(m_ballx)); save_item(NAME(m_bally)); save_item(NAME(m_paddlex)); @@ -387,7 +420,7 @@ void m14_state::machine_start() void m14_state::machine_reset() { - m_hop_mux = 0; + //m_hop_mux = 0; } @@ -414,7 +447,12 @@ static MACHINE_CONFIG_START( m14 ) /* sound hardware */ -// MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("samples", SAMPLES, 0) + MCFG_SAMPLES_CHANNELS(5) + MCFG_SAMPLES_NAMES(m14_sample_names) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.6) // MCFG_SOUND_ADD("discrete", DISCRETE, 0) // MCFG_DISCRETE_INTF(m14) @@ -444,4 +482,4 @@ ROM_START( ptrmj ) ROM_LOAD( "mgpa10.bin", 0x0400, 0x0400, CRC(e1a4ebdc) SHA1(d9df42424ede17f0634d8d0a56c0374a33c55333) ) ROM_END -GAME( 1979, ptrmj, 0, m14, m14, m14_state, 0, ROT0, "Irem", "PT Reach Mahjong (Japan)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // was already Irem according to the official flyer +GAME( 1979, ptrmj, 0, m14, m14, m14_state, 0, ROT0, "Irem", "PT Reach Mahjong (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // was already Irem according to the official flyer diff --git a/src/mame/drivers/megadriv.cpp b/src/mame/drivers/megadriv.cpp index df4001d43aa..6f2567a7c40 100644 --- a/src/mame/drivers/megadriv.cpp +++ b/src/mame/drivers/megadriv.cpp @@ -407,7 +407,19 @@ static MACHINE_CONFIG_DERIVED( genesis_tmss, ms_megadriv ) MCFG_SOFTWARE_LIST_FILTER("cart_list","TMSS") MACHINE_CONFIG_END +static MACHINE_CONFIG_START( dcat16_megadriv ) + MCFG_FRAGMENT_ADD( dcat16_megadriv_base ) + MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common) + MCFG_MACHINE_RESET_OVERRIDE(md_cons_state, megadriv) + + MCFG_SCREEN_MODIFY("megadriv") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(md_cons_state, screen_vblank_console)) + +// has SD card slot instead? +// MCFG_MD_CARTRIDGE_ADD("mdslot", md_cart, nullptr) +// MCFG_SOFTWARE_LIST_ADD("cart_list","megadriv") +MACHINE_CONFIG_END /************************************* * diff --git a/src/mame/drivers/mpu4.cpp b/src/mame/drivers/mpu4.cpp index 9af32de9dac..7443c63f5c4 100644 --- a/src/mame/drivers/mpu4.cpp +++ b/src/mame/drivers/mpu4.cpp @@ -1,3197 +1,2777 @@ // license:BSD-3-Clause -// copyright-holders:James Wallace -// thanks-to:Chris Wren, Tony Friery, MFME -/* MPU4 hardware emulation - for sets see the various includes prefixed 'mpu4' -*/ +// copyright-holders:David Haywood +/* these are the MPU4 set listings / set specific code, for hardware emulation see mpu4hw.c */ + +/* todo: driver inits (basic hw reel, protection configs etc.) should probably be moved here + once the actual code for them is cleaned up and can be put into neater structures + like bfm_sc4 -/* Note 19/07/11 DH - - added lots of sets + due to the vast number of sets here this might be further split up by manufacturer - these are mostly unsorted and need to be split into clones - the original source of these was a mess, assume things to be mislabled, bad, duplicated, or otherwise - badly organized. a lot of work is needed to sort them out, especially the Barcrest sets! Some of this - stuff MIGHT be in the wrong driver, or missing roms (sound roms especially) */ -/*********************************************************************************************************** - Barcrest MPU4 highly preliminary driver. - MAME Driver J. Wallace and Haze - - Thanks to Chris Wren and MFME for documentation. - - This is the core driver, no video specific stuff should go in here. - This driver holds all the mechanical games. - - 06-2011: Fixed boneheaded interface glitch that was causing samples to not be cancelled correctly. - Added the ability to read each segment of an LED display separately, this may be necessary for some - games that use them as surrogate lamp lines. - New persistence 'hack' to stop light flicker for the small extender. - 05-2011: Add better OKI emulation - 04-2011: More accurate gamball code, fixed ROM banking (Project Amber), added BwB CHR simulator (Amber) - This is still a hard coded system, but significantly different to Barcrest's version. - Started adding support for the Crystal Gaming program card, and the link keys for setting parameters. - 03-2011: Lamp timing fixes, support for all known expansion cards added. - 01-2011: Adding the missing 'OKI' sound card, and documented it, but it needs a 6376 rewrite. - 09-2007: Haze: Added Deal 'Em video support. - 03-08-2007: J Wallace: Removed audio filter for now, since sound is more accurate without them. - Connect 4 now has the right sound. - 03-07-2007: J Wallace: Several major changes, including input relabelling, and system timer improvements. - 06-2007: Atari Ace, many cleanups and optimizations of I/O routines - 09-06-2007: J Wallace: Fixed 50Hz detection circuit. - 17-02-2007: J Wallace: Added Deal 'Em - still needs some work. - 10-02-2007: J Wallace: Improved input timing. - 30-01-2007: J Wallace: Characteriser rewritten to run the 'extra' data needed by some games. - 24-01-2007: J Wallace: With thanks to Canonman and HIGHWAYMAN/System 80, I was able to confirm a seemingly - ghastly misuse of a PIA is actually on the real hardware. This fixes the meters. - -See http://agemame.mameworld.info/techinfo/mpu4.php for Information. - ---- Board Setup --- - -The MPU4 BOARD is the driver board, originally designed to run Fruit Machines made by the Barcrest Group, but later -licensed to other firms as a general purpose unit (even some old Photo-Me booths used the unit). - -This board uses a ~1.72 Mhz 6809B CPU, and a number of PIA6821 chips for multiplexing inputs and the like. - -To some extent, the hardware feels like a revision of the MPU3 design, integrating into the base unit features that were -previously added through expansion ports. However, there is no backwards compatibility, and the entire memory map has been -reworked. - -Like MPU3, a 6840PTM is used for internal timing, and other miscellaneous control functions, including as a crude analogue sound device -(a square wave from the PTM being used as the alarm sound generator). However, the main sound functionality is provided by -dedicated hardware (an AY8913). - -A MPU4 GAME CARD (cartridge) plugs into the MPU4 board containing the game, and a protection PAL (the 'characteriser'). -This PAL, as well as protecting the games, also controlled some of the lamp address matrix for many games, and acted as -an anti-tampering device which helped to prevent the hacking of certain titles in a manner which broke UK gaming laws. - -Like MPU3, over the years developers have added more capabilities through the spare inputs and outputs provided. These provided -support for more reels, lamps and LEDs through daughtercards. -Several solutions were released depending on the manufacturer of the machine, all are emulated here. - -In later revisions of the main board (MOD4 onwards), the AY8913 was removed entirely, as two official alternatives for sound had been produced. -In one, a YM2413 is built into the gameboard, and in the other an OKI MSM6376 is interfaced with a PIA and PTM to allow sophisticated -sampled sound. - -The lamping and input handling side of the machine rely entirely on a column by column 'strobe' system, with lights and LEDs selected in turn. -In the inputs there are two orange connectors (sampled every 8ms) and two black ones (sampled every 16ms), giving 32 multiplexed inputs. - -In addition there are two auxiliary ports that can be accessed separately to these and are bidirectional - ---- Preliminary MPU4 Memorymap --- - -(NV) indicates an item which is not present on the video version, which has a Comms card instead. - - hex |r/w| D D D D D D D D | - location | | 7 6 5 4 3 2 1 0 | function ------------+---+-----------------+-------------------------------------------------------------------------- - 0000-07FF |R/W| D D D D D D D D | 2k RAM ------------+---+-----------------+-------------------------------------------------------------------------- - 0800 |R/W| | Characteriser (Security PAL) (NV) ------------+---+-----------------+-------------------------------------------------------------------------- - 0850 ? | W | ??????????????? | page latch (NV) ------------+---+-----------------+-------------------------------------------------------------------------- - 0880 |R/W| D D D D D D D D | PIA6821 on soundboard (Oki MSM6376 clocked by 6840 (8C0)) - | | | port A = ?? - | | | port B (882) - | | | b7 = NAR - | | | b6 = 0 if OKI busy, 1 if OKI ready - | | | b5 = volume control clock - | | | b4 = volume control direction (0= up, 1 = down) - | | | b3 = ?? - | | | b2 = ?? - | | | b1 = 2ch - | | | b0 = ST ------------+---+-----------------+-------------------------------------------------------------------------- - 08C0 | | | MC6840 on sound board ------------+---+-----------------+-------------------------------------------------------------------------- - 0900- |R/W| D D D D D D D D | MC6840 PTM IC2 - - - Clock1 <-------------------------------------- - | | - V | - Output1 ---> Clock2 | - | - Output2 --+-> Clock3 | - | | - | Output3 ---> 'to audio amp' ?? - | - +--------> CA1 IC3 ( - -IRQ line connected to CPU - ------------+---+-----------------+-------------------------------------------------------------------------- - 0A00-0A03 |R/W| D D D D D D D D | PIA6821 IC3 port A Lamp Drives 1,2,3,4,6,7,8,9 (sic)(IC14) - | | | - | | | CA1 <= output2 from PTM6840 (IC2) - | | | CA2 => alpha data - | | | - | | | port B Lamp Drives 10,11,12,13,14,15,16,17 (sic)(IC13) - | | | - | | | CB2 => alpha reset (clock on Dutch systems) - | | | ------------+---+-----------------+-------------------------------------------------------------------------- - 0B00-0B03 |R/W| D D D D D D D D | PIA6821 IC4 port A = data for 7seg leds (pins 10 - 17, via IC32) - | | | - | | | CA1 INPUT, 50 Hz input (used to generate IRQ) - | | | CA2 OUTPUT, connected to pin2 74LS138 CE for multiplexer - | | | (B on LED strobe multiplexer) - | | | IRQA connected to IRQ of CPU - | | | port B - | | | PB7 = INPUT, serial port Receive data (Rx) - | | | PB6 = INPUT, reel A sensor - | | | PB5 = INPUT, reel B sensor - | | | PB4 = INPUT, reel C sensor - | | | PB3 = INPUT, reel D sensor - | | | PB2 = INPUT, Connected to CA1 (50Hz signal) - | | | PB1 = INPUT, undercurrent sense - | | | PB0 = INPUT, overcurrent sense - | | | - | | | CB1 INPUT, used to generate IRQ on edge of serial input line - | | | CB2 OUTPUT, enable signal for reel optics - | | | IRQB connected to IRQ of CPU - | | | ------------+---+-----------------+-------------------------------------------------------------------------- - 0C00-0C03 |R/W| D D D D D D D D | PIA6821 IC5 port A - | | | - | | | PA0-PA7, INPUT AUX1 connector - | | | - | | | CA2 OUTPUT, serial port Transmit line - | | | CA1 not connected - | | | IRQA connected to IRQ of CPU - | | | - | | | port B - | | | - | | | PB0-PB7 INPUT, AUX2 connector - | | | - | | | CB1 INPUT, connected to PB7 (Aux2 connector pin 4) - | | | - | | | CB2 OUTPUT, AY8913 chip select line - | | | IRQB connected to IRQ of CPU - | | | ------------+---+-----------------+-------------------------------------------------------------------------- - 0D00-0D03 |R/W| D D D D D D D D | PIA6821 IC6 - | | | - | | | port A - | | | - | | | PA0 - PA7 (INPUT/OUTPUT) data port AY8913 sound chip - | | | - | | | CA1 INPUT, not connected - | | | CA2 OUTPUT, BC1 pin AY8913 sound chip - | | | IRQA , connected to IRQ CPU - | | | - | | | port B - | | | - | | | PB0-PB3 OUTPUT, reel A - | | | PB4-PB7 OUTPUT, reel B - | | | - | | | CB1 INPUT, not connected - | | | CB2 OUTPUT, B01R pin AY8913 sound chip - | | | IRQB , connected to IRQ CPU - | | | ------------+---+-----------------+-------------------------------------------------------------------------- - 0E00-0E03 |R/W| D D D D D D D D | PIA6821 IC7 - | | | - | | | port A - | | | - | | | PA0-PA3 OUTPUT, reel C - | | | PA4-PA7 OUTPUT, reel D - | | | CA1 INPUT, not connected - | | | CA2 OUTPUT, A on LED strobe multiplexer - | | | IRQA , connected to IRQ CPU - | | | - | | | port B - | | | - | | | PB0-PB6 OUTPUT mech meter 1-7 or reel E + F - | | | PB7 Voltage drop sensor - | | | CB1 INPUT, not connected - | | | CB2 OUTPUT,mech meter 8 - | | | IRQB , connected to IRQ CPU - | | | ------------+---+-----------------+-------------------------------------------------------------------------- - 0F00-0F03 |R/W| D D D D D D D D | PIA6821 IC8 - | | | - | | | port A - | | | - | | | PA0-PA7 INPUT multiplexed inputs data - | | | - | | | CA1 INPUT, not connected - | | | CA2 OUTPUT, C on LED strobe multiplexer - | | | IRQA connected to IRQ CPU - | | | - | | | port B - | | | - | | | PB0-PB7 OUTPUT triacs outputs connector PL6 - | | | used for slides / hoppers - | | | - | | | CB1 INPUT, not connected - | | | CB2 OUTPUT, pin1 alpha display PL7 (clock signal) - | | | IRQB connected to IRQ CPU - | | | ------------+---+-----------------+-------------------------------------------------------------------------- - 1000-FFFF | R | D D D D D D D D | ROM (can be bank switched by 0x850 in 8 banks of 64 k ) (NV) ------------+---+-----------------+-------------------------------------------------------------------------- - -Additional Notes: - -Games from around the era of Road Hog and Chase Invaders had sufficient additional space to store three sets of reel -start/stop sounds. - -To change between them, follow these instructions: - -1) Load the game. -2) Open the cashbox door and insert the refill key. -3) Use Hi/Lo to adjust volume -4) Use Hold 1/2/3 to choose between "Default", "Standard" and "Alternative" sound sets -5) Use Cancel/collect to test the sounds. -6) To return to the game, remove the refill key and close the door - -TODO: - Distinguish door switches using manual - - Complete stubs for hoppers (needs slightly better 68681 emulation, and new 'hoppers' device emulation) - - It seems that the MPU4 core program relies on some degree of persistence when switching strobes and handling - writes to the various hardware ports. This explains the occasional lamping/LED blackout and switching bugs - For now, we're ignoring any extra writes to strobes, as the alternative is to assign a timer to *everything* and - start modelling the individual hysteresis curves of filament lamps. - - Fix BwB characteriser, need to be able to calculate stabiliser bytes. Anyone fancy reading 6809 source? - - Strange bug in Andy's Great Escape - Mystery nudge sound effect is not played, mpu4 latches in silence instead (?) - - - Per game inputs not currently supported, may need to do something about DIPs, inverted lines etc. -***********************************************************************************************************/ #include "emu.h" #include "includes/mpu4.h" -#include "video/awpvid.h" //Fruit Machines Only +MACHINE_CONFIG_EXTERN( mod4oki ); +MACHINE_CONFIG_EXTERN( mod4yam ); +MACHINE_CONFIG_EXTERN( mpu4crys ); +MACHINE_CONFIG_EXTERN( bwboki ); +MACHINE_CONFIG_EXTERN( mod2 ); -#include "speaker.h" +INPUT_PORTS_EXTERN( mpu4 ); +INPUT_PORTS_EXTERN( mpu4_cw ); +INPUT_PORTS_EXTERN( mpu4jackpot8tkn ); +INPUT_PORTS_EXTERN( mpu4jackpot8per ); +INPUT_PORTS_EXTERN( grtecp ); -#include "mpu4.lh" -#include "mpu4ext.lh" +#include "m4aao.lh" +ROM_START( m4tst2 ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD( "ut2.p1", 0xE000, 0x2000, CRC(f7fb6575) SHA1(f7961cbd0801b9561d8cd2d23081043d733e1902)) +ROM_END -/* -LED Segments related to pins (5 is not connected): -Unlike the controllers emulated in the layout code, each -segment of an MPU4 LED can be set individually, even -being used as individual lamps. However, we can get away -with settings like this in the majority of cases. - _9_ - | | - 3 8 - | | - _2_ - | | - 4 7 - |_ _| - 6 1 - -8 display enables (pins 10 - 17) -*/ +ROM_START( m4clr ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD( "meter-zero.p1", 0x8000, 0x8000, CRC(e74297e5) SHA1(49a2cc85eda14199975ec37a794b685c839d3ab9)) +ROM_END -void mpu4_state::lamp_extend_small(int data) -{ - int lamp_ext_data,column,i; - column = data & 0x07; - - lamp_ext_data = 0x1f - ((data & 0xf8) >> 3);//remove the mux lines from the data - - if (m_lamp_strobe_ext_persistence == 0) - //One write to reset the drive lines, one with the data, one to clear the lines, so only the 2nd write does anything - //Once again, lamp persistences would take care of this, but we can't do that - { - for (i = 0; i < 5; i++) - { - output().set_lamp_value((8*column)+i+128,((lamp_ext_data & (1 << i)) != 0)); - } - } - m_lamp_strobe_ext_persistence ++; - if ((m_lamp_strobe_ext_persistence == 3)||(m_lamp_strobe_ext!=column)) - { - m_lamp_strobe_ext_persistence = 0; - m_lamp_strobe_ext=column; - } -} +ROM_START( m4rltst ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "rtv.p1", 0x08000, 0x08000, CRC(7b78f3f2) SHA1(07ef8e6a08fd70ee48e4463672a1230ecc669532) ) +ROM_END -void mpu4_state::lamp_extend_large(int data,int column,int active) -{ - int lampbase,i,bit7; - - m_lamp_sense = 0; - bit7 = data & 0x80; - if ( bit7 != m_last_b7 ) - { - m_card_live = 1; - //depending on bit 7, we can access one of two 'blocks' of 64 lamps - lampbase = bit7 ? 0 : 64; - if ( data & 0x3f ) - { - m_lamp_sense = 1; - } - if ( active ) - { - if (m_lamp_strobe_ext != column) - { - for (i = 0; i < 8; i++) - {//CHECK, this includes bit 7 - output().set_lamp_value((8*column)+i+128+lampbase ,(data & (1 << i)) != 0); - } - m_lamp_strobe_ext = column; - } - } - m_last_b7 = bit7; - } - else - { - m_card_live = 0; - } -} -void mpu4_state::led_write_latch(int latch, int data, int column) -{ - int diff,i,j; - - diff = (latch ^ m_last_latch) & latch; - column = 7 - column; // like main board, these are wired up in reverse - data = ~data;//inverted drive lines? - - for(i=0; i<5; i++) - { - if (diff & (1<<i)) - { - column += i; - } - } - for(j=0; j<8; j++) - { - output().set_indexed_value("mpu4led",(8*column)+j,(data & (1 << j)) !=0); - } - output().set_digit_value(column * 8, data); - - m_last_latch = diff; -} -void mpu4_state::update_meters() -{ - int meter; - int data = ((m_mmtr_data & 0x7f) | m_remote_meter); - switch (m_reel_mux) - { - case STANDARD_REEL: - // Change nothing - break; - - case FIVE_REEL_5TO8: - m_reel4->update(((data >> 4) & 0x0f)); - data = (data & 0x0F); //Strip reel data from meter drives, leaving active elements - awp_draw_reel(machine(),"reel5", *m_reel4); - break; - - case FIVE_REEL_8TO5: - m_reel4->update((((data & 0x01) + ((data & 0x08) >> 2) + ((data & 0x20) >> 3) + ((data & 0x80) >> 4)) & 0x0f)) ; - data = 0x00; //Strip all reel data from meter drives, nothing is connected - awp_draw_reel(machine(),"reel5", *m_reel4); - break; - - case FIVE_REEL_3TO6: - m_reel4->update(((data >> 2) & 0x0f)); - data = 0x00; //Strip all reel data from meter drives - awp_draw_reel(machine(),"reel5", *m_reel4); - break; - - case SIX_REEL_1TO8: - m_reel4->update( data & 0x0f); - m_reel5->update((data >> 4) & 0x0f); - data = 0x00; //Strip all reel data from meter drives - awp_draw_reel(machine(),"reel5", *m_reel4); - awp_draw_reel(machine(),"reel6", *m_reel5); - break; - - case SIX_REEL_5TO8: - m_reel4->update(((data >> 4) & 0x0f)); - data = 0x00; //Strip all reel data from meter drives - awp_draw_reel(machine(),"reel5", *m_reel4); - break; - - case SEVEN_REEL: - m_reel0->update((((data & 0x01) + ((data & 0x08) >> 2) + ((data & 0x20) >> 3) + ((data & 0x80) >> 4)) & 0x0f)) ; - data = 0x00; //Strip all reel data from meter drives - awp_draw_reel(machine(),"reel1", *m_reel0); - break; - - case FLUTTERBOX: //The backbox fan assembly fits in a reel unit sized box, wired to the remote meter pin, so we can handle it here - output().set_value("flutterbox", data & 0x80); - data &= ~0x80; //Strip flutterbox data from meter drives - break; - } - - m_meters->update(7, (data & 0x80)); - for (meter = 0; meter < 4; meter ++) - { - m_meters->update(meter, (data & (1 << meter))); - } - if (m_reel_mux == STANDARD_REEL) - { - for (meter = 4; meter < 7; meter ++) - { - m_meters->update(meter, (data & (1 << meter))); - } - } -} -/* called if board is reset */ -MACHINE_RESET_MEMBER(mpu4_state,mpu4) -{ - m_vfd->reset(); +ROM_START( m4addrd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dal12.bin", 0x0000, 0x010000, CRC(4affa79a) SHA1(68bceab42b3616641a34a64a83306175ffc1ce32) ) +ROM_END - m_lamp_strobe = 0; - m_lamp_strobe2 = 0; - m_led_strobe = 0; - m_mmtr_data = 0; - m_remote_meter = 0; - m_IC23GC = 0; - m_IC23GB = 0; - m_IC23GA = 0; - m_IC23G1 = 1; - m_IC23G2A = 0; - m_IC23G2B = 0; - m_prot_col = 0; - m_chr_counter = 0; - m_chr_value = 0; - { - if (m_numbanks) - m_bank1->set_entry(m_numbanks); - m_maincpu->reset(); - } -} +ROM_START( m4amhiwy ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dah20", 0x0000, 0x010000, CRC(e3f92f00) SHA1(122c8a429a1f75dac80b90c4f218bd311813daf5) ) -/* 6809 IRQ handler */ -WRITE_LINE_MEMBER(mpu4_state::cpu0_irq) -{ - /* The PIA and PTM IRQ lines are all connected to a common PCB track, leading directly to the 6809 IRQ line. */ - int combined_state = m_pia3->irq_a_state() | m_pia3->irq_b_state() | - m_pia4->irq_a_state() | m_pia4->irq_b_state() | - m_pia5->irq_a_state() | m_pia5->irq_b_state() | - m_pia6->irq_a_state() | m_pia6->irq_b_state() | - m_pia7->irq_a_state() | m_pia7->irq_b_state() | - m_pia8->irq_a_state() | m_pia8->irq_b_state() | - m_6840ptm->irq_state(); - - if (!m_link7a_connected) //7B = IRQ, 7A = FIRQ, both = NMI - { - m_maincpu->set_input_line(M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); - LOG(("6809 int%d \n", combined_state)); - } - else - { - m_maincpu->set_input_line(M6809_FIRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); - LOG(("6809 fint%d \n", combined_state)); - } -} + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "sdr6_1.snd", 0x000000, 0x080000, CRC(63ad952d) SHA1(acc0ac3898fcc281e2d7ba19ada52d727885fe06) ) + ROM_LOAD( "sdr6_2.snd", 0x080000, 0x080000, CRC(48d2ace5) SHA1(ada0180cc60266c0a6d981a019d66bbedbced21a) ) +ROM_END -/* Bankswitching -The MOD 4 ROM cards are set up to handle 8 separate ROM pages, arranged as 2 sets of 4. -The bankswitch selects which of the 4 pages in the set is active, while the bankset -switches between the sets. -It appears that the cards were originally intended to be used in a 'half' page setup, -where the two halves of the ROM space could be mixed and matched as appropriate. -However, there is no evidence to suggest this was ever implemented. -The controls for it exist however, in the form of the Soundboard PIA CB2 pin, which is -used in some cabinets instead of the main control. -*/ -WRITE8_MEMBER(mpu4_state::bankswitch_w) -{ -// printf("bankswitch_w %02x\n", data); - // m_pageset is never even set?? - m_pageval = (data & 0x03); - m_bank1->set_entry((m_pageval + (m_pageset ? 4 : 0)) & m_numbanks); -} -READ8_MEMBER(mpu4_state::bankswitch_r) -{ - return m_bank1->entry(); -} -WRITE8_MEMBER(mpu4_state::bankset_w) -{ -// printf("bankset_w %02x\n", data); - // m_pageset is never even set?? - m_pageval = (data - 2);//writes 2 and 3, to represent 0 and 1 - a hangover from the half page design? - m_bank1->set_entry((m_pageval + (m_pageset ? 4 : 0)) & m_numbanks); -} +ROM_START( m4blkwhd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dbw11.bin", 0x0000, 0x010000, CRC(337aaa2c) SHA1(26b12ea3ada9668293c6b44d62458590e5b4ac8f) ) -/* IC2 6840 PTM handler */ -WRITE_LINE_MEMBER(mpu4_state::ic2_o1_callback) -{ - m_6840ptm->set_c2(state); /* copy output value to IC2 c2 - this output is the clock for timer2 */ - /* 1200Hz System interrupt timer */ -} + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "bwsnd.bin", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) +ROM_END -WRITE_LINE_MEMBER(mpu4_state::ic2_o2_callback) -{ - m_pia3->ca1_w(state); /* copy output value to IC3 ca1 */ - /* the output from timer2 is the input clock for timer3 */ - /* miscellaneous interrupts generated here */ - m_6840ptm->set_c3(state); -} +ROM_START( m4blkbul ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cbb08.epr", 0x0000, 0x010000, CRC(09376df6) SHA1(ba3b101accb6bbfbf75b9d22621dbda4efcb7769) ) +ROM_END -WRITE_LINE_MEMBER(mpu4_state::ic2_o3_callback) -{ - /* the output from timer3 is used as a square wave for the alarm output - and as an external clock source for timer 1! */ - /* also runs lamp fade */ - m_6840ptm->set_c1(state); -} +ROM_START( m4blkcat ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dbl14.bin", 0x0000, 0x010000, CRC(c5db9532) SHA1(309b5122b4a1cb33bbccfb97faf4fa996d29432e) ) -/* 6821 PIA handlers */ -/* IC3, lamp data lines + alpha numeric display */ -WRITE8_MEMBER(mpu4_state::pia_ic3_porta_w) -{ - int i; - LOG_IC3(("%s: IC3 PIA Port A Set to %2x (lamp strobes 1 - 9)\n", machine().describe_context(),data)); - - if(m_ic23_active) - { - if (m_lamp_strobe != m_input_strobe) - { - // Because of the nature of the lamping circuit, there is an element of persistance - // As a consequence, the lamp column data can change before the input strobe without - // causing the relevant lamps to black out. - - for (i = 0; i < 8; i++) - { - output().set_lamp_value((8*m_input_strobe)+i, ((data & (1 << i)) !=0)); - } - m_lamp_strobe = m_input_strobe; - } - } -} + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "dblcsnd.bin", 0x0000, 0x080000, CRC(c90fa8ad) SHA1(a98f03d4b6f5892333279bff7537d4d6d887da62) ) -WRITE8_MEMBER(mpu4_state::pia_ic3_portb_w) -{ - int i; - LOG_IC3(("%s: IC3 PIA Port B Set to %2x (lamp strobes 10 - 17)\n", machine().describe_context(),data)); - - if(m_ic23_active) - { - if (m_lamp_strobe2 != m_input_strobe) - { - for (i = 0; i < 8; i++) - { - output().set_lamp_value((8*m_input_strobe)+i+64, ((data & (1 << i)) !=0)); - } - m_lamp_strobe2 = m_input_strobe; - } - - if (m_led_lamp) - { - /* Some games (like Connect 4) use 'programmable' LED displays, built from light display lines in section 2. */ - /* These are mostly low-tech machines, where such wiring proved cheaper than an extender card */ - /* TODO: replace this with 'segment' lamp masks, to make it more generic */ - uint8_t pled_segs[2] = {0,0}; - - static const int lamps1[8] = { 106, 107, 108, 109, 104, 105, 110, 133 }; - static const int lamps2[8] = { 114, 115, 116, 117, 112, 113, 118, 119 }; - - for (i = 0; i < 8; i++) - { - if (output().get_lamp_value(lamps1[i])) pled_segs[0] |= (1 << i); - if (output().get_lamp_value(lamps2[i])) pled_segs[1] |= (1 << i); - } - - output().set_digit_value(8,pled_segs[0]); - output().set_digit_value(9,pled_segs[1]); - } - } -} + ROM_REGION( 0x200000, "msm6376_alt", 0 ) // bad dump of some sound rom? + ROM_LOAD( "sdbl_1.snd", 0x0000, 0x18008e, CRC(e36f71ae) SHA1(ebb643cfa02d28550f2bef135ceefc902baf0df6) ) +ROM_END -WRITE_LINE_MEMBER(mpu4_state::pia_ic3_ca2_w) -{ - LOG_IC3(("%s: IC3 PIA Write CA2 (alpha data), %02X\n", machine().describe_context(),state)); - m_vfd->data(state); -} -WRITE_LINE_MEMBER(mpu4_state::pia_ic3_cb2_w) -{ - LOG_IC3(("%s: IC3 PIA Write CB (alpha reset), %02X\n",machine().describe_context(),state)); -// DM Data pin A - m_vfd->por(state); -} -/* -IC23 emulation -IC23 is a 74LS138 1-of-8 Decoder -It is used as a multiplexer for the LEDs, lamp selects and inputs.*/ +ROM_START( m4bluedm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dbd10.bin", 0x0000, 0x010000, CRC(b75e319d) SHA1(8b81e852e318cfde1f5ff2123e1ef7076b208253) ) -void mpu4_state::ic23_update() -{ - if (!m_IC23G2A) - { - if (!m_IC23G2B) - { - if (m_IC23G1) - { - if ( m_IC23GA ) m_input_strobe |= 0x01; - else m_input_strobe &= ~0x01; - - if ( m_IC23GB ) m_input_strobe |= 0x02; - else m_input_strobe &= ~0x02; - - if ( m_IC23GC ) m_input_strobe |= 0x04; - else m_input_strobe &= ~0x04; - } - } - } - else - if ((m_IC23G2A)||(m_IC23G2B)) - { - m_input_strobe = 0x00; - } -} + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "bdsnd.bin", 0x0000, 0x080000, CRC(8ac4aae6) SHA1(70dba43b398010a8bd0d82cf91553d3f5e0921f0) ) +ROM_END -/* -IC24 emulation -IC24 is a 74LS122 pulse generator -CLEAR and B2 are tied high and A1 and A2 tied low, meaning any pulse -on B1 will give a low pulse on the output pin. -*/ -void mpu4_state::ic24_output(int data) -{ - m_IC23G2A = data; - ic23_update(); -} +ROM_START( m4brook ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "brkl10.epr", 0x0000, 0x010000, CRC(857255b3) SHA1(cfd77918a19b2532a02b8bb3fa8e2716db31fb0e) ) + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "brkl_snd.epr", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END -void mpu4_state::ic24_setup() -{ - if (m_IC23GA) - { - double duration = TIME_OF_74LS123((220*1000),(0.1*0.000001)); - { - m_ic23_active=1; - ic24_output(0); - m_ic24_timer->adjust(attotime::from_double(duration)); - } - } -} -void mpu4_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ - switch(id) - { - case TIMER_IC24: - m_ic23_active=0; - ic24_output(1); - break; - } -} +ROM_START( m4bucks ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bufd.p1", 0x0000, 0x010000, CRC(02c575d3) SHA1(92dc7a0c298e4d2d19bf754a5c82cc15e4e6456c) ) + ROM_LOAD( "bufs.p1", 0x0000, 0x010000, CRC(e394ae40) SHA1(911077053c47cebba1bed9d359cd38bd676a46f1) ) +ROM_END -/* IC4, 7 seg leds, 50Hz timer reel sensors, current sensors */ -WRITE8_MEMBER(mpu4_state::pia_ic4_porta_w) -{ - int i; - if(m_ic23_active) - { - if (((m_lamp_extender == NO_EXTENDER)||(m_lamp_extender == SMALL_CARD)||(m_lamp_extender == LARGE_CARD_C))&& (m_led_extender == NO_EXTENDER)) - { - if(m_led_strobe != m_input_strobe) - { - for(i=0; i<8; i++) - { - output().set_indexed_value("mpu4led",((7 - m_input_strobe) * 8) +i,(data & (1 << i)) !=0); - } - output().set_digit_value(7 - m_input_strobe,data); - } - m_led_strobe = m_input_strobe; - } - } -} +ROM_START( m4calicl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ca2s.p1", 0x0000, 0x010000, CRC(fad153fd) SHA1(bd1f1a5c73624df45d01cb4853d87e998e434d7a) ) + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) +ROM_END -WRITE8_MEMBER(mpu4_state::pia_ic4_portb_w) -{ - if (m_reel_mux) - { - /* A write here connects one reel (and only one) - to the optic test circuit. This allows 8 reels - to be supported instead of 4. */ - if (m_reel_mux == SEVEN_REEL) - { - m_active_reel= reel_mux_table7[(data >> 4) & 0x07]; - } - else - m_active_reel= reel_mux_table[(data >> 4) & 0x07]; - } -} +ROM_START( m4calicla ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ca2d.p1", 0x0000, 0x010000, CRC(75eb8c6f) SHA1(1bb923d06dcfa24eaf9533c083f68f4bd840834f) ) + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) +ROM_END -READ8_MEMBER(mpu4_state::pia_ic4_portb_r) -{ - /// TODO: this shouldn't be clocked from a read callback - if ( m_serial_data ) - { - m_ic4_input_b |= 0x80; - m_pia4->cb1_w(1); - } - else - { - m_ic4_input_b &= ~0x80; - m_pia4->cb1_w(0); - } - - if (!m_reel_mux) - { - if ( m_optic_pattern & 0x01 ) m_ic4_input_b |= 0x40; /* reel A tab */ - else m_ic4_input_b &= ~0x40; - - if ( m_optic_pattern & 0x02 ) m_ic4_input_b |= 0x20; /* reel B tab */ - else m_ic4_input_b &= ~0x20; - - if ( m_optic_pattern & 0x04 ) m_ic4_input_b |= 0x10; /* reel C tab */ - else m_ic4_input_b &= ~0x10; - - if ( m_optic_pattern & 0x08 ) m_ic4_input_b |= 0x08; /* reel D tab */ - else m_ic4_input_b &= ~0x08; - - } - else - { - if (m_optic_pattern & (1<<m_active_reel)) - { - m_ic4_input_b |= 0x08; - } - else - { - m_ic4_input_b &= ~0x08; - } - } - if ( m_signal_50hz ) m_ic4_input_b |= 0x04; /* 50 Hz */ - else m_ic4_input_b &= ~0x04; - - if (m_ic4_input_b & 0x02) - { - m_ic4_input_b &= ~0x02; - } - else - { - m_ic4_input_b |= 0x02; //Pulse the overcurrent line with every read to show the CPU each lamp has lit - } - #ifdef UNUSED_FUNCTION - if ( lamp_undercurrent ) m_ic4_input_b |= 0x01; - #endif - - LOG_IC3(("%s: IC4 PIA Read of Port B %x\n",machine().describe_context(),m_ic4_input_b)); - return m_ic4_input_b; -} +ROM_START( m4caliclb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ca2f.p1", 0x0000, 0x010000, CRC(6c53cf29) SHA1(2e58453891ab4faa17ef58a81c5f3c0618d046a5) ) + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) +ROM_END +ROM_START( m4caliclc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cald.p1", 0x0000, 0x010000, CRC(296fdeeb) SHA1(7782c0c7d8f44e2c0d48cc24c13015241e47b9ec) ) + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) +ROM_END -WRITE_LINE_MEMBER(mpu4_state::pia_ic4_ca2_w) -{ - LOG_IC3(("%s: IC4 PIA Write CA (input MUX strobe /LED B), %02X\n", machine().describe_context(),state)); +ROM_START( m4calicld ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cals.p1", 0x0000, 0x010000, CRC(28a1c5fe) SHA1(e8474df609ea7f3517780b54d6f493987aad3650) ) + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) +ROM_END - m_IC23GB = state; - ic23_update(); -} -WRITE_LINE_MEMBER(mpu4_state::pia_ic4_cb2_w) -{ - LOG_IC3(("%s: IC4 PIA Write CA (input MUX strobe /LED B), %02X\n", machine().describe_context(),state)); - m_reel_flag=state; -} -/* IC5, AUX ports, coin lockouts and AY sound chip select (MODs below 4 only) */ -READ8_MEMBER(mpu4_state::pia_ic5_porta_r) -{ - if (m_lamp_extender == LARGE_CARD_A) - { - if (m_lamp_sense && m_ic23_active) - { - m_aux1_input |= 0x40; - } - else - { - m_aux1_input &= ~0x40; //Pulse the overcurrent line with every read to show the CPU each lamp has lit - } - } - if (m_hopper == HOPPER_NONDUART_A) - { -/* if (hopper1_active) - { - m_aux1_input |= 0x04; - } - else - { - m_aux1_input &= ~0x04; - }*/ - } - LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",machine().describe_context())); - - uint8_t tempinput = m_aux1_port->read()|m_aux1_input; - if (m_aux1_invert) - { - return ~tempinput; - } - else - { - return tempinput; - } -} -WRITE8_MEMBER(mpu4_state::pia_ic5_porta_w) -{ - int i; - if (m_hopper == HOPPER_NONDUART_A) - { - //opto line - //hopper1_drive_sensor(data&0x10); - } - switch (m_lamp_extender) - { - case NO_EXTENDER: - if (m_led_extender == CARD_B) - { - led_write_latch(data & 0x1f, m_pia4->a_output(),m_input_strobe); - } - else if ((m_led_extender != CARD_A)&&(m_led_extender != NO_EXTENDER)) - { - for(i=0; i<8; i++) - { - output().set_indexed_value("mpu4led",((m_input_strobe + 8) * 8) +i,(data & (1 << i)) !=0); - } - output().set_digit_value((m_input_strobe+8),data); - } - break; - - case SMALL_CARD: - if(m_ic23_active) - { - lamp_extend_small(data); - } - break; - - case LARGE_CARD_A: - lamp_extend_large(data,m_input_strobe,m_ic23_active); - break; - - case LARGE_CARD_B: - lamp_extend_large(data,m_input_strobe,m_ic23_active); - if ((m_ic23_active) && m_card_live) - { - for(i=0; i<8; i++) - { - output().set_indexed_value("mpu4led",(((8*(m_last_b7 >>7))+ m_input_strobe) * 8) +i,(~data & (1 << i)) !=0); - } - output().set_digit_value(((8*(m_last_b7 >>7))+m_input_strobe),~data); - } - break; - - case LARGE_CARD_C: - lamp_extend_large(data,m_input_strobe,m_ic23_active); - break; - } - if (m_reel_mux == SIX_REEL_5TO8) - { - m_reel4->update( data &0x0F); - m_reel5->update((data >> 4)&0x0F); - awp_draw_reel(machine(),"reel5", *m_reel4); - awp_draw_reel(machine(),"reel6", *m_reel5); - } - else - if (m_reel_mux == SEVEN_REEL) - { - m_reel1->update( data &0x0F); - m_reel2->update((data >> 4)&0x0F); - awp_draw_reel(machine(),"reel2", *m_reel1); - awp_draw_reel(machine(),"reel3", *m_reel2); - } - - if (core_stricmp(machine().system().name, "m4gambal") == 0) - { - /* The 'Gamball' device is a unique piece of mechanical equipment, designed to - provide a truly fair hi-lo gamble for an AWP. Functionally, it consists of - a ping-pong ball or similar enclosed in the machine's backbox, on a platform with 12 - holes. When the low 4 bytes of AUX1 are triggered, this fires the ball out from the - hole it's currently in, to land in another. Landing in the same hole causes the machine to - refire the ball. The ball detection is done by the high 4 bytes of AUX1. - Here we call the MAME RNG, once to pick a row, once to pick from the four pockets within it. We - then trigger the switches corresponding to the correct number. This appears to be the best way - of making the game fair, short of simulating the physics of a bouncing ball ;)*/ - if (data & 0x0f) - { - switch ((machine().rand()>>5) % 0x3) - { - case 0x00: //Top row - switch (machine().rand() & 0x3) - { - case 0x00: //7 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0xa0; - break; - - case 0x01://4 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0xb0; - break; - - case 0x02://9 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0xc0; - break; - - case 0x03://8 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0xd0; - break; - } - - case 0x01: //Middle row - note switches don't match pattern - switch (machine().rand() & 0x3) - { - case 0x00://12 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0x40; - break; - - case 0x01://1 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0x50; - break; - - case 0x02://11 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0x80; - break; - - case 0x03://2 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0x90; - break; - } - - case 0x02: //Bottom row - switch (machine().rand() & 0x3) - { - case 0x00://5 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0x00; - break; - - case 0x01://10 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0x10; - break; - - case 0x02://3 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0x20; - break; - - case 0x03://6 - m_aux1_input = (m_aux1_input & 0x0f); - m_aux1_input|= 0x30; - break; - } - } - } - } -} -WRITE8_MEMBER(mpu4_state::pia_ic5_portb_w) -{ - if (m_hopper == HOPPER_NONDUART_B) - { - //hopper1_drive_motor(data &0x01) motor - //hopper1_drive_sensor(data &0x08) opto - } - if (m_led_extender == CARD_A) - { - led_write_latch(data & 0x07, m_pia4->a_output(),m_input_strobe); - } +ROM_START( m4casmul ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "casinomultiplay.bin", 0x0000, 0x010000, CRC(2ebd1800) SHA1(d15e2593d17d8db9c6946af3366cf429ad291f76) ) -} -READ8_MEMBER(mpu4_state::pia_ic5_portb_r) -{ - if (m_hopper == HOPPER_NONDUART_B) - {/* - if (hopper1_active) - { - m_aux2_input |= 0x08; - } - else - { - m_aux2_input &= ~0x08; - }*/ - } - - LOG(("%s: IC5 PIA Read of Port B (coin input AUX2)\n",machine().describe_context())); - machine().bookkeeping().coin_lockout_w(0, (m_pia5->b_output() & 0x01) ); - machine().bookkeeping().coin_lockout_w(1, (m_pia5->b_output() & 0x02) ); - machine().bookkeeping().coin_lockout_w(2, (m_pia5->b_output() & 0x04) ); - machine().bookkeeping().coin_lockout_w(3, (m_pia5->b_output() & 0x08) ); - - uint8_t tempinput = m_aux2_port->read()|m_aux2_input; - if (m_aux2_invert) - { - return ~tempinput; - } - else - { - return tempinput; - } -} + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "casinomultiplaysnd.bin", 0x0000, 0x080000, CRC(be293e95) SHA1(bf0d419c898920a7546b542d8b205e25004ef04f) ) +ROM_END +ROM_START( m4oldtmr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dot11.bin", 0x00000, 0x10000, CRC(da095666) SHA1(bc7654dc9da1f830a43f925db8079f27e18bb61e)) -WRITE_LINE_MEMBER(mpu4_state::pia_ic5_ca2_w) -{ - LOG(("%s: IC5 PIA Write CA2 (Serial Tx) %2x\n",machine().describe_context(),state)); - m_serial_data = state; -} + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "m470.chr", 0x0000, 0x000048, CRC(10d302d4) SHA1(5858e550470a25dcd64efe004c79e6e9783bce07) ) + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "sdot01.bin", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) +ROM_END -/* --------------------------------------- - AY Chip sound function selection - - --------------------------------------- -The databus of the AY sound chip is connected to IC6 Port A. -Data is read from/written to the AY chip through this port. +ROM_START( m4casot ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "casrom.bin", 0x00000, 0x10000, CRC(da095666) SHA1(bc7654dc9da1f830a43f925db8079f27e18bb61e) ) // == old timer (aka b&wrom.bin) -If this sounds familiar, Amstrad did something very similar with their home computers. + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "caschar.chr", 0x0000, 0x000048, CRC(10d302d4) SHA1(5858e550470a25dcd64efe004c79e6e9783bce07) ) // ( aka b&wchrt.chr ) -The PSG function, defined by the BC1,BC2 and BDIR signals, is controlled by CA2 and CB2 of IC6. + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "cassound.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) // ( aka b&wsound.bin ) +ROM_END -PSG function selection: ------------------------ -BDIR = IC6 CB2 and BC1 = IC6 CA2 -Pin | PSG Function -BDIR BC1 | -0 0 | Inactive -0 1 | Read from selected PSG register. When function is set, the PSG will make the register data available to Port A. -1 0 | Write to selected PSG register. When set, the PSG will take the data at Port A and write it into the selected PSG register. -1 1 | Select PSG register. When set, the PSG will take the data at Port A and select a register. -*/ -/* PSG function selected */ -void mpu4_state::update_ay(device_t *device) -{ - ay8910_device *ay8910 = machine().device<ay8910_device>("ay8913"); - if (!ay8910) return; - - pia6821_device *pia = downcast<pia6821_device *>(device); - if (!pia->cb2_output()) - { - switch (m_ay8913_address) - { - case 0x00: - /* Inactive */ - break; - - case 0x01: - /* CA2 = 1 CB2 = 0? : Read from selected PSG register and make the register data available to Port A */ - LOG(("AY8913 address = %d \n",m_pia6->a_output()&0x0f)); - break; - - case 0x02: - /* CA2 = 0 CB2 = 1? : Write to selected PSG register and write data to Port A */ - ay8910->data_w(generic_space(), 0, m_pia6->a_output()); - LOG(("AY Chip Write \n")); - break; - - case 0x03: - /* CA2 = 1 CB2 = 1? : The register will now be selected and the user can read from or write to it. - The register will remain selected until another is chosen.*/ - ay8910->address_w(generic_space(), 0, m_pia6->a_output()); - LOG(("AY Chip Select \n")); - break; - - default: - LOG(("AY Chip error \n")); - break; - } - } -} +ROM_START( m4jpmcla ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jcv2.epr", 0x00000, 0x10000, CRC(da095666) SHA1(bc7654dc9da1f830a43f925db8079f27e18bb61e) ) // == old timer + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "jcchr.chr", 0x0000, 0x000048, CRC(e370e271) SHA1(2b712dd3590c31356e8b0b62ffc64ff8ce444f73) ) -WRITE_LINE_MEMBER(mpu4_state::pia_ic5_cb2_w) -{ - update_ay(m_pia5); -} + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "sjcv2.snd", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) +ROM_END -/* IC6, Reel A and B and AY registers (MODs below 4 only) */ -WRITE8_MEMBER(mpu4_state::pia_ic6_portb_w) -{ - LOG(("%s: IC6 PIA Port B Set to %2x (Reel A and B)\n", machine().describe_context(),data)); - - if (m_reel_mux == SEVEN_REEL) - { - m_reel3->update( data &0x0F); - m_reel4->update((data >> 4)&0x0F); - awp_draw_reel(machine(),"reel4", *m_reel3); - awp_draw_reel(machine(),"reel5", *m_reel4); - } - else if (m_reels) - { - m_reel0->update( data &0x0F); - m_reel1->update((data >> 4)&0x0F); - awp_draw_reel(machine(),"reel1", *m_reel0); - awp_draw_reel(machine(),"reel2", *m_reel1); - } -} +ROM_START( m4ceptr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dce10.bin", 0x0000, 0x010000, CRC(c94d41ef) SHA1(58fdff2de8dd3ead3980f6f34362183d084ce917) ) + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "cepsnd.p1", 0x000000, 0x080000, CRC(3a91784a) SHA1(7297ccec3264aa9f1e7b3a2841f5f8a1e4ca6c54) ) + ROM_LOAD( "cepsnd.p2", 0x080000, 0x080000, CRC(a82f0096) SHA1(45b6b5a2ae06b45add9cdbb9f5e6f834687b4902) ) +ROM_END -WRITE8_MEMBER(mpu4_state::pia_ic6_porta_w) -{ - LOG(("%s: IC6 PIA Write A %2x\n", machine().describe_context(),data)); - if (m_mod_number <4) - { - m_ay_data = data; - update_ay(m_pia6); - } -} +#define M4CHASEI_EXTRAS \ + ROM_REGION( 0x48, "fakechr", 0 ) \ + ROM_LOAD( "chaseinvaders.chr", 0x0000, 0x000048, CRC(d7703dcd) SHA1(16fd998d1b44f35c10e5486882aa7f2d018dc82b) ) \ + ROM_REGION( 0x100000, "msm6376", 0 ) \ + ROM_LOAD( "cha.s1", 0x000000, 0x080000, CRC(8200b6bc) SHA1(bcc4ffbddcdcc1dd994fe29e9b24e83272f59442) ) \ + ROM_LOAD( "cha.s2", 0x080000, 0x080000, CRC(542863fa) SHA1(501d66b2badb5036bb5dd8bac3cdb681f630a982) ) -WRITE_LINE_MEMBER(mpu4_state::pia_ic6_ca2_w) -{ - LOG(("%s: IC6 PIA write CA2 %2x (AY8913 BC1)\n", machine().describe_context(),state)); - if (m_mod_number <4) - { - if ( state ) m_ay8913_address |= 0x01; - else m_ay8913_address &= ~0x01; - update_ay(m_pia6); - } -} +ROM_START( m4chasei ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ci2c.p1", 0x0000, 0x010000, CRC(fc49a2e1) SHA1(f4f02e168cd9bf0245c2b7340fe151da66f09c5c) ) + M4CHASEI_EXTRAS +ROM_END +ROM_START( m4chaseia ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ch20p8pn.rom", 0x0000, 0x010000, CRC(712bd2e7) SHA1(0e83fa077f42a051aaa07a7e13196955b0ac840d) ) + M4CHASEI_EXTRAS +ROM_END -WRITE_LINE_MEMBER(mpu4_state::pia_ic6_cb2_w) -{ - LOG(("%s: IC6 PIA write CB2 %2x (AY8913 BCDIR)\n", machine().describe_context(),state)); - if (m_mod_number <4) - { - if ( state ) m_ay8913_address |= 0x02; - else m_ay8913_address &= ~0x02; - update_ay(m_pia6); - } -} +ROM_START( m4chaseib ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "chin2010l", 0x0000, 0x010000, CRC(7fe97181) SHA1(1ccf65ff108bdaa46efcb3f831fccc953297b9ac) ) + M4CHASEI_EXTRAS +ROM_END +ROM_START( m4chaseic ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ci2k.p1", 0x0000, 0x010000, CRC(8d715b8a) SHA1(5dd6f8d3d6710b0741df37af8792d942f41062d2) ) + M4CHASEI_EXTRAS +ROM_END -/* IC7 Reel C and D, mechanical meters/Reel E and F, input strobe bit A */ -WRITE8_MEMBER(mpu4_state::pia_ic7_porta_w) -{ - LOG(("%s: IC7 PIA Port A Set to %2x (Reel C and D)\n", machine().describe_context(),data)); - if (m_reel_mux == SEVEN_REEL) - { - m_reel5->update( data &0x0F); - m_reel6->update((data >> 4)&0x0F); - awp_draw_reel(machine(),"reel6", *m_reel5); - awp_draw_reel(machine(),"reel7", *m_reel7); - } - else if (m_reels) - { - m_reel2->update( data &0x0F); - m_reel3->update((data >> 4)&0x0F); - awp_draw_reel(machine(),"reel3", *m_reel2); - awp_draw_reel(machine(),"reel4", *m_reel3); - } -} +ROM_START( m4chaseid ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ci2s.p1", 0x0000, 0x010000, CRC(8175e1e3) SHA1(9a4b0a0288508e7900ceac8bc3b245ac1f898b19) ) + M4CHASEI_EXTRAS +ROM_END -WRITE8_MEMBER(mpu4_state::pia_ic7_portb_w) -{ - if (m_hopper == HOPPER_DUART_A) - { - //duart write data - } - else if (m_hopper == HOPPER_NONDUART_A) - { - //hoppr1_drive_motor(data & 0x10); - } - - m_mmtr_data = data; -} +ROM_START( m4chaseie ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ci2y.p1", 0x0000, 0x010000, CRC(80410946) SHA1(60a4f73eb9a35e5c246d8ef7b25bcf25b28bf8ed) ) + M4CHASEI_EXTRAS +ROM_END -READ8_MEMBER(mpu4_state::pia_ic7_portb_r) -{ -/* The meters are connected to a voltage drop sensor, where current -flowing through them also passes through pin B7, meaning that when -any meter is activated, pin B7 goes high. -As for why they connected this to an output port rather than using -CB1, no idea, although it proved of benefit when the reel multiplexer was designed -as it allows a separate meter to be used when the rest of the port is blocked. -This appears to have confounded the schematic drawer, who has assumed that -all eight meters are driven from this port, giving the 8 line driver chip -9 connections in total. */ - - //This may be overkill, but the meter sensing is VERY picky - - int combined_meter = m_meters->GetActivity(0) | m_meters->GetActivity(1) | - m_meters->GetActivity(2) | m_meters->GetActivity(3) | - m_meters->GetActivity(4) | m_meters->GetActivity(5) | - m_meters->GetActivity(6) | m_meters->GetActivity(7); - - if(combined_meter) - { - return 0x80; - } - else - { - return 0x00; - } -} +ROM_START( m4chaseif ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "chase invaders 8.bin", 0x0000, 0x010000, BAD_DUMP CRC(0bf6a8a0) SHA1(cea5ea40d71484a455615e14f6708b1bc06bbbe8) ) // bad prg (no vectors?) + M4CHASEI_EXTRAS +ROM_END -WRITE_LINE_MEMBER(mpu4_state::pia_ic7_ca2_w) -{ - LOG(("%s: IC7 PIA write CA2 %2x (input strobe bit 0 / LED A)\n", machine().describe_context(),state)); - m_IC23GA = state; - ic24_setup(); - ic23_update(); -} -WRITE_LINE_MEMBER(mpu4_state::pia_ic7_cb2_w) -{ - m_remote_meter = state?0x80:0x00; -} +ROM_START( m4c9c ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cncs.p1", 0x0000, 0x010000, CRC(10f15e2a) SHA1(c17ab13764d74302246984245485cb7692913b44) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) // should this set have an OKI? +ROM_END -/* IC8, Inputs, TRIACS, alpha clock */ -READ8_MEMBER(mpu4_state::pia_ic8_porta_r) -{ - LOG_IC8(("%s: IC8 PIA Read of Port A (MUX input data)\n", machine().describe_context())); -/* The orange inputs are polled twice as often as the black ones, for reasons of efficiency. - This is achieved via connecting every input line to an AND gate, thus allowing two strobes - to represent each orange input bank (strobes are active low). */ - m_pia5->cb1_w(m_aux2_port->read() & 0x80); - if ( (m_input_strobe == 2) && (m_door_invert ==1) ) - { - return ((m_port_mux[m_input_strobe])->read() ^ 0x01); - } - else - { - return (m_port_mux[m_input_strobe])->read(); - } -} -WRITE8_MEMBER(mpu4_state::pia_ic8_portb_w) -{ - if (m_hopper == HOPPER_DUART_B) - { -// duart.drive_sensor(data & 0x04, data & 0x01, 0, 0); - } - else if (m_hopper == HOPPER_DUART_C) - { -// duart.drive_sensor(data & 0x04, data & 0x01, data & 0x04, data & 0x02); - } - int i; - LOG_IC8(("%s: IC8 PIA Port B Set to %2x (OUTPUT PORT, TRIACS)\n", machine().describe_context(),data)); - for (i = 0; i < 8; i++) - { - output().set_indexed_value("triac", i, data & (1 << i)); - } -} -WRITE_LINE_MEMBER(mpu4_state::pia_ic8_ca2_w) -{ - LOG_IC8(("%s: IC8 PIA write CA2 (input_strobe bit 2 / LED C) %02X\n", machine().describe_context(), state & 0xFF)); - m_IC23GC = state; - ic23_update(); -} -WRITE_LINE_MEMBER(mpu4_state::pia_ic8_cb2_w) -{ - LOG_IC8(("%s: IC8 PIA write CB2 (alpha clock) %02X\n", machine().describe_context(), state & 0xFF)); - // DM Data pin B - m_vfd->sclk(!state); -} -// universal sampled sound program card PCB 683077 -// Sampled sound card, using a PIA and PTM for timing and data handling -WRITE8_MEMBER(mpu4_state::pia_gb_porta_w) -{ - LOG_SS(("%s: GAMEBOARD: PIA Port A Set to %2x\n", machine().describe_context(),data)); - m_msm6376->write(space, 0, data); -} +#define M4CLBVEG_EXTRAS \ + ROM_REGION( 0x48, "fakechr", 0 ) \ + ROM_LOAD( "cvegas.chr", 0x0000, 0x000048, CRC(a6c341b0) SHA1(c8c838c9bb1ced52889504b9cea8d88f1e7fa79f) ) \ + ROM_REGION( 0x100000, "msm6376", 0 ) \ + ROM_LOAD( "cvegass1.hex", 0x0000, 0x080000, CRC(13a8c857) SHA1(c66e10bca1ad54f467b9c5eacd502c54397c09b2) ) \ + ROM_LOAD( "cvegass2.hex", 0x0000, 0x080000, CRC(88b37145) SHA1(1c6c9ad2010e1688d3370d1f2a5ae83dc683b500) ) -WRITE8_MEMBER(mpu4_state::pia_gb_portb_w) -{ - int changed = m_expansion_latch^data; - - LOG_SS(("%s: GAMEBOARD: PIA Port B Set to %2x\n", machine().describe_context(),data)); - - if ( changed & 0x20) - { // digital volume clock line changed - if ( !(data & 0x20) ) - { // changed from high to low, - if ( !(data & 0x10) )//down - { - if ( m_global_volume < 32 ) m_global_volume++; //steps unknown - } - else - {//up - if ( m_global_volume > 0 ) m_global_volume--; - } - - { - float percent = (32-m_global_volume)/32.0; - m_msm6376->set_output_gain(0, percent); - m_msm6376->set_output_gain(1, percent); - } - } - } - m_msm6376->ch2_w(data&0x02); - m_msm6376->st_w(data&0x01); -} -READ8_MEMBER(mpu4_state::pia_gb_portb_r) -{ - LOG_SS(("%s: GAMEBOARD: PIA Read of Port B\n",machine().describe_context())); - int data=0; - // b7 NAR - we can load another address into Channel 1 - // b6, 1 = OKI ready, 0 = OKI busy - // b5, vol clock - // b4, 1 = Vol down, 0 = Vol up - // +ROM_START( m4clbveg ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "clas.p1", 0x0000, 0x010000, CRC(6aad03f0) SHA1(2f611cc6f020e334dc4b87d2d907727ba15ff7ff) ) + M4CLBVEG_EXTRAS +ROM_END + +ROM_START( m4clbvega ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "claf.p1", 0x0000, 0x010000, CRC(79b83184) SHA1(7319a405b2b0b274e03f5cd1465436f8548065e4) ) + M4CLBVEG_EXTRAS +ROM_END + +ROM_START( m4clbvegb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "clal.p1", 0x0000, 0x010000, CRC(db0bb5a2) SHA1(2735e02642fb92bb824e3b1f415a1a3ef13a856d) ) + M4CLBVEG_EXTRAS +ROM_END + +ROM_START( m4clbvegc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "clad.p1", 0x0000, 0x010000, CRC(4fa45cce) SHA1(58a5d6cc8608eb1aa453429e26eacea589afa524) ) + M4CLBVEG_EXTRAS +ROM_END + +#define M4CLBX_EXTRAS \ + ROM_REGION( 0x100000, "msm6376", 0 ) \ + ROM_LOAD( "cxs1.hex", 0x000000, 0x080000, CRC(4ce005f1) SHA1(ee0f59a9c7e0222dd63fa63ccff8f194abd01ddb) ) \ + ROM_LOAD( "cxs2.hex", 0x080000, 0x080000, CRC(495e0730) SHA1(7ba8150fbcf974ac494a82fd373ff02185543e35) ) + +ROM_START( m4clbx ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "clx12s.p1", 0x0000, 0x020000, CRC(6798c153) SHA1(e621e341a0fed1cb35637edb0769ae1cca72a663) ) + M4CLBX_EXTRAS +ROM_END + +ROM_START( m4clbxa ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "clx12d.p1", 0x0000, 0x020000, CRC(43e797ba) SHA1(fb2fc843176fe50c1039214d48815d6e9871ae27) ) + M4CLBX_EXTRAS +ROM_END + +ROM_START( m4clbxb ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "clx12f.p1", 0x0000, 0x020000, CRC(3e6a82fe) SHA1(01ef9a15a3cf9b1191c573b36fb5758e79c3adc1) ) + M4CLBX_EXTRAS +ROM_END + + + + +ROM_START( m4crzjk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "crjok2.04.bin", 0x0000, 0x010000, CRC(838336d6) SHA1(6f36de20c930cbbff479af2667c11152c6adb43e) ) +ROM_END + +#define M4CRZJWL_EXTRAS \ + ROM_REGION( 0x180000, "msm6376", 0 ) \ + ROM_LOAD( "cjsound1.bin", 0x000000, 0x080000, CRC(b023f6b9) SHA1(04c362c6511442d3ab775a5ff2051bfe26d5e624) ) \ + ROM_LOAD( "cjsound2.bin", 0x080000, 0x080000, CRC(02563a43) SHA1(dfcee4e0fdf81c726c8e13278e7950459bcaab18) ) \ + ROM_LOAD( "cjsound3.bin", 0x100000, 0x080000, CRC(e722e438) SHA1(070f3772920fa64d5214843c313b27a5b2a4c105) ) + +ROM_START( m4crzjwl ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "cj11bin", 0x0000, 0x020000, CRC(208fda73) SHA1(8b15c197693ea7749bc961fe4e5e36b317f9f6f8) ) // crown jewels (german) + M4CRZJWL_EXTRAS +ROM_END + +ROM_START( m4crzjwla ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "cjexlow", 0x0000, 0x020000, CRC(07c227c1) SHA1(286341ed44ef7cd08ca411f2b3e6936b5e83a5f3) ) // crown jewels (german) + M4CRZJWL_EXTRAS +ROM_END + +ROM_START( m4crzjwlb ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "cjgerman", 0x0000, 0x020000, CRC(b090e690) SHA1(bdbe4041085c995761306280c15f782ea3bdc110) ) + M4CRZJWL_EXTRAS +ROM_END + +ROM_START( m4crzjwlc ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "cjj54.bin", 0x0000, 0x020000, CRC(16dc92e7) SHA1(b791535054d5864c7053243408a54accfa014bd1) ) + M4CRZJWL_EXTRAS +ROM_END + +ROM_START( m4crzjwld ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "gcn11", 0x0000, 0x020000, CRC(51493500) SHA1(901e60c1a7e9e628d723e199579fc82cf2e433e6) ) + M4CRZJWL_EXTRAS +ROM_END + +ROM_START( m4crzjwle ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "gcn111", 0x0000, 0x020000, CRC(b1152ce6) SHA1(1d236bad57ad38b11215efe44008bb8e4014939e) ) + M4CRZJWL_EXTRAS +ROM_END + +ROM_START( m4crzjwlf ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "gjv4", 0x0000, 0x020000, CRC(df63105d) SHA1(56e28adef9ec8921da7ab8045859e834731196c5) ) + M4CRZJWL_EXTRAS +ROM_END + +ROM_START( m4crzjwlg ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "gjv5", 0x0000, 0x020000, CRC(e4f0bab2) SHA1(1a13d97ff2c4fbae39327f2a5a8b110f2617857e) ) + M4CRZJWL_EXTRAS +ROM_END + +ROM_START( m4crzjwlh ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "cjg.p1", 0x0000, 0x020000, CRC(1f4743bf) SHA1(f9a0da2ed9cad5e6685c8a6d1d09e5d4bbcfacec) ) // Crown Jewels Deluxe (german) + M4CRZJWL_EXTRAS +ROM_END + + +#define M4CRJWL_EXTRAS \ + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) \ + /* Missing? or in above set? */ + +ROM_START( m4crjwl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cjcf.p1", 0x0000, 0x010000, CRC(7feccc74) SHA1(4d1c7c6d2085492ee4205a7383ad7dc1de4e8d60) ) + M4CRJWL_EXTRAS +ROM_END + +ROM_START( m4crjwla ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cjcd.p1", 0x0000, 0x010000, CRC(cb83f226) SHA1(f09996436b3db3c8f0fe237884d9125be2b7855e) ) + M4CRJWL_EXTRAS +ROM_END + +ROM_START( m4crjwlb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cjcs.p1", 0x0000, 0x010000, CRC(1054e02d) SHA1(067705f20862f6cfc4334c74e0fab1a1016d427c) ) + M4CRJWL_EXTRAS +ROM_END + +ROM_START( m4crjwlc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cjn02.p1", 0x0000, 0x010000, CRC(a3d50e20) SHA1(15698e74a37d5f95a5634d48ae2a9a5d19faa2b6) ) + M4CRJWL_EXTRAS +ROM_END + +#define M4CRJWL2_EXTRAS \ + ROM_REGION( 0x48, "fakechr", 0 ) \ + ROM_LOAD( "chr.chr", 0x0000, 0x000048, CRC(c5812913) SHA1(d167b1f512c183cf01a1f4e1c1588ea0ae21331b) ) \ + ROM_REGION( 0x100000, "msm6376", 0 ) \ + ROM_LOAD( "cjcs1.hex", 0x000000, 0x080000, CRC(2ac3ba9f) SHA1(3332f29f81918c34aeec3da6f7d001dc9922840d) ) \ + ROM_LOAD( "cjcs2.hex", 0x080000, 0x080000, CRC(89838a9d) SHA1(502243cc0a14e63882b537f05c4cc0eb852e4a0c) ) + +ROM_START( m4crjwl2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cj214f.p1", 0x0000, 0x010000, CRC(7ee4d30c) SHA1(2bf702bc925c473f7e9eaeb5b3ae0b00e124161a) ) + M4CRJWL2_EXTRAS +ROM_END - if ( m_msm6376->nar_r() ) data |= 0x80; - else data &= ~0x80; +ROM_START( m4crjwl2a ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cj214d.p1", 0x0000, 0x010000, CRC(359e2a73) SHA1(c85eeebafca14e6f975953f5daf2772a62693051) ) + M4CRJWL2_EXTRAS +ROM_END - if ( m_msm6376->busy_r() ) data |= 0x40; - else data &= ~0x40; +ROM_START( m4crjwl2b ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cj214s.hex", 0x0000, 0x010000, CRC(296aa885) SHA1(045b02848b37e8a04d950d54301dc6888d6178ad) ) + M4CRJWL2_EXTRAS +ROM_END - return ( data | m_expansion_latch ); -} -WRITE_LINE_MEMBER(mpu4_state::pia_gb_ca2_w) -{ - LOG_SS(("%s: GAMEBOARD: OKI RESET data = %02X\n", machine().describe_context(), state)); -// reset line -} +#define M4DRAC_EXTRAS \ + ROM_REGION( 0x200000, "msm6376", 0 ) \ + ROM_LOAD( "drasnd.p1", 0x000000, 0x080000, CRC(54c3821c) SHA1(1fcc62e2b127dd7f1d5d27a3afdf56dc27f122f8) ) \ + ROM_LOAD( "drasnd.p2", 0x080000, 0x080000, CRC(9096d2bc) SHA1(1b4c530b7b0fde869980d519255e2585c5461e13) ) \ + ROM_LOAD( "drasnd.p3", 0x100000, 0x080000, CRC(a07f412b) SHA1(cca8f5cfe620ece45ca40bf801f0643cd76547e9) ) \ + ROM_LOAD( "drasnd.p4", 0x180000, 0x080000, CRC(018ed789) SHA1(64202da2c542f5ef208faeb04945eb1a758d4746) ) + +ROM_START( m4drac ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "dra21.bin", 0x0000, 0x020000, CRC(23be387e) SHA1(08a78f4b8ddef46069d1c75113300b21e52338c1) ) + M4DRAC_EXTRAS +ROM_END + +ROM_START( m4draca ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "dra24.bin", 0x0000, 0x020000, CRC(3db112ae) SHA1(b5303e2a65476931d4769327ca62afd0f6a9eda7) ) + M4DRAC_EXTRAS +ROM_END + +ROM_START( m4dracb ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "dra27.p1", 0x0000, 0x020000, CRC(8a095175) SHA1(41006e298f1688499ce6820ec28196c7578684b9) ) + M4DRAC_EXTRAS +ROM_END + + + + + + +ROM_START( m4exgam ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "czep30.bin", 0x0000, 0x010000, CRC(4614e6f6) SHA1(5602a68e9b47394cb31bbcd49a9920e19af6242f) ) + + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "ceg.chr", 0x0000, 0x000048, CRC(f694224e) SHA1(936ab5e349fa59accbb37959cce9519fd97f3978) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "sczep.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + + + +#define M4FORTCB_EXTRAS \ + ROM_REGION( 0x100000, "msm6376", 0 ) \ + ROM_LOAD( "cfosnd.p1", 0x000000, 0x080000, CRC(74bbf913) SHA1(52ddc89ab34b11ede2c0e9b9b27e119b0c1eb2d9) ) \ + ROM_LOAD( "cfosnd.p2", 0x080000, 0x080000, CRC(1b2bb79a) SHA1(5f19ea000f34bb404ed6c8ea5ec7b809ccb1ae36) ) +ROM_START( m4fortcb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cfod.p1", 0x0000, 0x010000, CRC(9d0e2b63) SHA1(cce871d2bbe486793de5de9fadfbddf67c382e5c) ) + M4FORTCB_EXTRAS +ROM_END + +ROM_START( m4fortcba ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cfof.p1", 0x0000, 0x010000, CRC(010b3c1f) SHA1(b44c22c21d22603b277138eabf803e6d46ad4aae) ) + M4FORTCB_EXTRAS +ROM_END + +ROM_START( m4fortcbb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cfos.p1", 0x0000, 0x010000, CRC(f3b47df4) SHA1(3ad674864ba3a24283af14caaf2c999d4fde11fc) ) + M4FORTCB_EXTRAS +ROM_END + + + + + + +ROM_START( m4frtgm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "fruit.bin", 0x0000, 0x010000, CRC(dbe44316) SHA1(15cd49dd2e6166f7a7668663f7fea802d6cbb12f) ) + + ROM_REGION( 0x800000, "msm6376", 0 ) /* this isn't OKI, or is corrupt (bad size) */ + ROM_LOAD( "fruitsnd.bin", 0x0000, 0x010000, CRC(86547dc7) SHA1(4bf64f22e84c0ee82d961b0ba64932b8bf6a521f) ) // matches 'Replay' on SC1 hardware, probably just belongs there.. or this is eurocoin with different sound hw here? +ROM_END + + + + + + + + + + + +ROM_START( m4gldgat ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dgg22.bin", 0x0000, 0x010000, CRC(ef8498df) SHA1(6bf164ef18445e83e4510a000bc924cbe916ad99) ) + + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "m450.chr", 0x0000, 0x000048, CRC(fb7b2a45) SHA1(b6d5537bde9c05a3e79221a5577b8ae77bace9e6) ) +ROM_END + +ROM_START( m4gldjok ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dgj12.bin", 0x0000, 0x010000, CRC(93ee0c35) SHA1(5ae67b14f7f3d8528fa106519a8a27437c997a70) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "sdgj.snd", 0x0000, 0x080000, CRC(b6cd118b) SHA1(51c5d694ed0dfde8d3fd682f2471d83eec236736) ) +ROM_END + + + + + + +ROM_START( m4gnsmk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dgu16", 0x0000, 0x010000, CRC(6aa23345) SHA1(45e129ec95b1a796f334bedd08469f2ab47a18f8) ) + + ROM_REGION( 0x200000, "msm6376", 0 ) + ROM_LOAD( "sdgu01.s1", 0x000000, 0x080000, CRC(bfb284a2) SHA1(860b98d54a3180fbb00b7b03feae049fb4cf9d7f) ) + ROM_LOAD( "sdgu01.s2", 0x080000, 0x080000, CRC(1a46ba28) SHA1(d7154e5f92be8631207620eb313b28990c6a1c7f) ) + ROM_LOAD( "sdgu01.s3", 0x100000, 0x080000, CRC(88bffcf4) SHA1(1da853193f6a22889edff5aafd9440c676a82ea6) ) + ROM_LOAD( "sdgu01.s4", 0x180000, 0x080000, CRC(a6160bef) SHA1(807f7d470728a479a55c782fca3df1eacd0b594c) ) + ROM_END + +ROM_START( m4blkbuld ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dgu16", 0x0000, 0x010000, CRC(6aa23345) SHA1(45e129ec95b1a796f334bedd08469f2ab47a18f8) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "dbbsnd.p1", 0x000000, 0x080000, CRC(a913ad0d) SHA1(5f39b661912da903ce8d6658b7848081b191ea56) ) + ROM_LOAD( "dbbsnd.p2", 0x080000, 0x080000, CRC(6a22b39f) SHA1(0e0dbeac4310e03490b665fff514392481ad265f) ) +ROM_END + + +ROM_START( m4hpyjok ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dhj12", 0x0000, 0x010000, CRC(982439d7) SHA1(8d27fcecf7a6a7fd774678580074f945675758f4) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "dhjsnd", 0x0000, 0x080000, CRC(8ac4aae6) SHA1(70dba43b398010a8bd0d82cf91553d3f5e0921f0) ) +ROM_END + +ROM_START( m4hirise ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hiix.p1", 0x0000, 0x010000, CRC(c68c816c) SHA1(2ec89d83f3b658700433fc165358290ce58eba64) ) +ROM_END + +ROM_START( m4hirisea ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hirs.p1", 0x0000, 0x010000, CRC(a38f771e) SHA1(c1502200671389a1fe6dcb9c043d22583d5991dc) ) +ROM_END + +ROM_START( m4hiriseb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hirs20dd", 0x0000, 0x010000, CRC(89941670) SHA1(28859adfa79dce53c348c63b46f6f5a068f2b2de) ) +ROM_END + +ROM_START( m4hirisec ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hirx.p1", 0x0000, 0x010000, CRC(4280a16b) SHA1(c9179ec17404a6f084679ad5f04e53a50f00af98) ) +ROM_END + +ROM_START( m4hirised ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hirxc.p1", 0x0000, 0x010000, CRC(1ad1d942) SHA1(91d02212606e22b280be9640433e013bc50e5ea8) ) +ROM_END + +ROM_START( m4hirisee ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hrise206", 0x0000, 0x010000, CRC(58b4bbdd) SHA1(0b76d27147fbadba97328eb9d2dc81cff9d576e0) ) +ROM_END + + + + + +ROM_START( m4holdtm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dht10.hex", 0x0000, 0x010000, CRC(217d382b) SHA1(a27dd107c554d4787967633dff998d3962ee0ea5) ) + + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "ht01.chr", 0x0000, 0x000048, CRC(0fc2bb52) SHA1(0d0e47938f6e00166e7352732ddfb7c610f44db2) ) + ROM_LOAD( "m400.chr", 0x0000, 0x000048, CRC(8f00f720) SHA1(ea59fa2a3b016a7ae83be3caf863de87ce7aeffa) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "sun01.hex", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + + + + + + +ROM_START( m4jok300 ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "cjo", 0x0000, 0x020000, CRC(386e99db) SHA1(5bb0b513ef63ffaedd98b8e9e7206658fe784fda) ) + + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASEFF ) + /* missing? */ +ROM_END + +ROM_START( m4jokmil ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "cjm03.epr", 0x0000, 0x020000, CRC(e5e4986e) SHA1(149b950a739ad308f7759927c344de8193ce67c5) ) + + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASEFF ) + /* missing? */ +ROM_END + + + + + + + +ROM_START( m4joljokh ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jollyjokerhungarian.bin", 0x0000, 0x010000, CRC(85b6a406) SHA1(e277f9d3b62faead04d65efbc06de7f4a50ae38d) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "jollyjokerhungariansnd.bin", 0x0000, 0x080000, CRC(93460383) SHA1(2b179a1dde09ebdfe8c84641899df7be87d443e5) ) +ROM_END + + + + + + + + + +ROM_START( m4lineup ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lineup5p1.bin", 0xc000, 0x004000, CRC(9ba9edbd) SHA1(385e01816b5631b6896e85343ae96b3c36f9647a) ) + ROM_LOAD( "lineup5p2.bin", 0x8000, 0x004000, CRC(e9e4dfb0) SHA1(46a0efa84770036366c7a6a33ef1d42c7b2b782b) ) + ROM_LOAD( "lineup5p3.bin", 0x6000, 0x002000, CRC(86623376) SHA1(e29442bfcd401361287852b87673368322e946b5) ) +ROM_END + +ROM_START( m4lineupa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lu2_10p1.bin", 0xc000, 0x004000, CRC(2fb89062) SHA1(55e86de8fd0d36cca9aab8ad5aae7b4f5a62b940) ) + ROM_LOAD( "lu2_10p2.bin", 0x8000, 0x004000, CRC(9d820af2) SHA1(63d27df91f80e47eb8c9685fcd2c3eff902a2ef8) ) + ROM_LOAD( "lu2_10p3.bin", 0x6000, 0x002000, CRC(8c8a210c) SHA1(2599d979f1a62e9ef6acc70d0ad5c9b4a65d712a) ) +ROM_END + + +ROM_START( m4luck7 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dl716.bin", 0x0000, 0x010000, CRC(141b23a9) SHA1(3bfb82ea0ee4104bd8739b545aba617f84bef770) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "dl7snd.bin", 0x0000, 0x080000, CRC(c90fa8ad) SHA1(a98f03d4b6f5892333279bff7537d4d6d887da62) ) +ROM_END + +ROM_START( m4luckdv ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cld_16.bin", 0x0000, 0x010000, CRC(89f63938) SHA1(8d3a5628e2c0bf39784afe2f00a007d40ea35423) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "cld_snd1.snd", 0x000000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) + ROM_LOAD( "cld_snd2.snd", 0x080000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + +ROM_START( m4luckdvd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dld13", 0x0000, 0x010000, CRC(b8ceb29b) SHA1(84b6ebad300214610635fb8141d18de2b7065435) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "sdld01.snd", 0x000000, 0x080000, CRC(9b035fa6) SHA1(51b7e5bc3abdf4f1beba2347146a91a2b3f4de35) ) +ROM_END + + +#define M4LUCKWB_EXTRAS \ + ROM_REGION( 0x100000, "msm6376", 0 ) /* these are all different sound roms... */ \ + ROM_LOAD( "lwbs3.bin", 0x0000, 0x07dc89, CRC(ee102376) SHA1(3fed581a4654acf285dd430fbfbac33cd67411b8) ) \ + ROM_LOAD( "lwbs7.bin", 0x0000, 0x080000, CRC(5d4177c7) SHA1(e13f145885bb719b0021ae4ce289261a3eaa2e18) ) \ + ROM_LOAD( "lwbs8.bin", 0x0000, 0x080000, CRC(187cdf5b) SHA1(87ec189af27c95f278a7531ec13df53a08889af8) ) \ + ROM_LOAD( "lwbs9.bin", 0x0000, 0x080000, CRC(2e02b617) SHA1(2502a1d2cff155a7fc5148e23a4723d4d60e9d42) ) + +ROM_START( m4luckwb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lwb10.bin", 0x0000, 0x010000, CRC(6d43a14e) SHA1(267aba1a01bfd5f0eaa7683d041d5fcb2d301934) ) + M4LUCKWB_EXTRAS +ROM_END + +ROM_START( m4luckwba ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lwb15.bin", 0x0000, 0x010000, CRC(b5af8cb2) SHA1(474975b83803627ad3ac4217d8cecb2d2db16fec) ) + M4LUCKWB_EXTRAS +ROM_END + +ROM_START( m4luckwbb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lwb21.bin", 0x0000, 0x010000, CRC(6c570733) SHA1(7488318ca9689371e4f80be0a0fddd8ad141733e) ) + M4LUCKWB_EXTRAS +ROM_END + +ROM_START( m4luckwbc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lwb22.bin", 0x0000, 0x010000, CRC(05b952a7) SHA1(952e328b280a18c1ffe253b6a56f2b5e893b1b72) ) + M4LUCKWB_EXTRAS +ROM_END + +ROM_START( m4luckwbd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lwb27.bin", 0x0000, 0x010000, CRC(9d6b6637) SHA1(65bad12cd08de128ca31c9488e32e3cebfb8eedb) ) + M4LUCKWB_EXTRAS +ROM_END + +ROM_START( m4luckwbe ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lwb6.bin", 0x0000, 0x010000, CRC(8e7d4594) SHA1(4824a9a4628585a170c41e00f7b3fcb8a2330c02) ) + M4LUCKWB_EXTRAS +ROM_END + +ROM_START( m4luckwbf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lwb7.bin", 0x0000, 0x010000, CRC(8e651705) SHA1(bd4d09d586d14759a17d4d7d4016c427f3eef015) ) + M4LUCKWB_EXTRAS +ROM_END + + + + +ROM_START( m4magdrg ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dmd10.bin", 0x0000, 0x010000, CRC(9cc4f2f8) SHA1(46a90ffa18d35ad2b06542f91120c02bc34f0c40) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "mdsnd.bin", 0x000000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + +ROM_START( m4maglin ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dma21.bin", 0x0000, 0x010000, CRC(836a25e6) SHA1(5f83bb8a2c77dd3b02724c076d6b37d2c1c93b93) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "mlsound1.p1", 0x000000, 0x080000, CRC(ff8749ff) SHA1(509b53f09cdfe5ee865e60ab42fd578586ac53ea) ) + ROM_LOAD( "mlsound2.p2", 0x080000, 0x080000, CRC(c8165b6c) SHA1(7c5059ee8630da31fc3ad50d84a4730297757d46) ) +ROM_END + +ROM_START( m4magrep ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dmr13.bin", 0x0000, 0x010000, CRC(c3015da3) SHA1(23cd505eedf666c012e4064a5fcf5a983f098e83) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "mrdsound.bin", 0x000000, 0x080000, CRC(9b035fa6) SHA1(51b7e5bc3abdf4f1beba2347146a91a2b3f4de35) ) +ROM_END + + + + + + + + + + + +ROM_START( m4nspot ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ns2s.p1", 0x0000, 0x010000, CRC(ba0f5a81) SHA1(7015176d4528636cb8a753249c824c37941e8eae) ) +ROM_END + +ROM_START( m4nspota ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ns2d.p1", 0x0000, 0x010000, CRC(5e66b7e0) SHA1(e82044e3c1e5cf3a2baf1fde7b7ab8b6e221d360) ) +ROM_END + +ROM_START( m4nspotb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "nits.p1", 0x0000, 0x010000, CRC(47c965e6) SHA1(41a337a9a367c4e704a60e32d56b262d03f97b59) ) +ROM_END + +ROM_START( m4nile ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "gjn08.p1", 0x0000, 0x020000, CRC(2bafac0c) SHA1(363d08f798b5bea409510b1a9415098a69f19ee0) ) + + ROM_REGION( 0x200000, "msm6376", 0 ) + ROM_LOAD( "gjnsnd.p1", 0x000000, 0x080000, CRC(1d839591) SHA1(2e4ba74f96e7c0592b85409a3f50ec81e00e064c) ) + ROM_LOAD( "gjnsnd.p2", 0x080000, 0x080000, CRC(e2829c42) SHA1(2139c1625ad163cce99a522c2cf02ee47a8f9007) ) + ROM_LOAD( "gjnsnd.p3", 0x100000, 0x080000, CRC(db084eb4) SHA1(9b46a3cb16974942b0edd25b1b080d30fc60c3df) ) + ROM_LOAD( "gjnsnd.p4", 0x180000, 0x080000, CRC(da785b0a) SHA1(63358ab197eb1de8e489a9fd6ffbc2039efc9536) ) +ROM_END + + + + +ROM_START( m4nudshf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "nusx.p1", 0x0000, 0x010000, CRC(87caab84) SHA1(e2492ad0d25ded4d760c4cbe05e9b51ca1a10544) ) +ROM_END + +ROM_START( m4nudshfa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "nus6", 0x0000, 0x010000, CRC(017c5354) SHA1(07491e4b03ab62ad923f8479300c1af4633e3e8c) ) +ROM_END + +ROM_START( m4nudshfb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "nuss.bin", 0x0000, 0x010000, CRC(d3b860ee) SHA1(d5d1262c715e4684748b0cae708eeed31b1dc50f) ) +ROM_END + +ROM_START( m4nudshfc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "nusxc.p1", 0x0000, 0x010000, CRC(e2557b45) SHA1(a9d1514d4fe3897f6fcef22a5039d6bdff8126ff) ) +ROM_END + + + +ROM_START( m4ordmnd ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "rab01.p1", 0x0000, 0x020000, CRC(99964fe7) SHA1(3745d09e7a4f417c8e85270d3ffec3e37ee1344d) ) + + ROM_REGION( 0x200000, "msm6376", 0 ) + ROM_LOAD( "odsnd1.bin", 0x000000, 0x080000, CRC(d746bae4) SHA1(293e1dc9edf88a183cc23dbb4576cefbc8f9d028) ) + ROM_LOAD( "odsnd2.bin", 0x080000, 0x080000, CRC(84ace1f4) SHA1(9cc70e59e9d26006870ea1cc522de33e71b71692) ) + ROM_LOAD( "odsnd3.bin", 0x100000, 0x080000, CRC(b1b12def) SHA1(d8debf8cfb3af2157d5d1571927588dc1c8d07b6) ) +ROM_END + + +ROM_START( m4ptblkc ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "potblackcasinoprg.bin", 0x0000, 0x020000, CRC(29190084) SHA1(c7a778331369c0fac796ef3e306e12c98605f365) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "potblackcasinosnd.p1", 0x000000, 0x080000, CRC(72a3331d) SHA1(b7475ba0ad86a6277e3d4f7b4311a98f3fc29802) ) + ROM_LOAD( "potblackcasinosnd.p2", 0x080000, 0x080000, CRC(c2460eec) SHA1(7c62fbc69ffaa788bf3839e37a75a812a7b8caef) ) +ROM_END + + + + + +ROM_START( m4prem ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dpm14.bin", 0x0000, 0x010000, CRC(de344759) SHA1(d3e7514da83bbf1eba63661fb0675a6230af93cd) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "dpms.bin", 0x0000, 0x080000, CRC(93fd4253) SHA1(69feda7ffc56defd515c9cd1ce204af3d9731a3f) ) +ROM_END + + + + + + + + + + + + + + + + + + + +ROM_START( m4rdht ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "drh12", 0x0000, 0x010000, CRC(b26cd308) SHA1(4e29f6cce773232a1c43cd2fb3ce9b844c446bb8) ) // aka gdjb + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "drh_1.snd", 0x0000, 0x080000, CRC(f652cd0c) SHA1(9ce986bc12bcf22a57e065329e82671d19cc96d7) ) // aka gn.snd +ROM_END + + + + + + + +ROM_START( m4rwb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "drw14.bin", 0x0000, 0x010000, CRC(22c30ebe) SHA1(479f66732aac56dae60c80d11f05c084865f9389) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "rwb_1.snd", 0x000000, 0x080000, CRC(e0a6def5) SHA1(e3867b83e588fd6a9039b8d45186480a9d0433ea) ) + ROM_LOAD( "rwb_2.snd", 0x080000, 0x080000, CRC(54a2b2fd) SHA1(25875ff873bf22df510e7a4c56c336fbabcbdedb) ) +ROM_END + + + + + + +ROM_START( m4magtbo ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "crmtb14.epr", 0x0000, 0x010000, CRC(79e1746c) SHA1(794317f3aba7b1a7994cde89d81abc2b687d0821) ) + + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "ctp.chr", 0x0000, 0x000048, CRC(ead61793) SHA1(f38a38601a67804111b8f8cf0a05d35ed79b7ed1) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "scrmtb.snd", 0x000000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + + + + + + + +ROM_START( m4reeltm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "real.bin", 0x0000, 0x010000, CRC(5bd54924) SHA1(23fcf13c52ee7b9b39f30f999a9102171fffd642) ) // == m4wildtm + + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "charter.chr", 0x0000, 0x000048, CRC(4ff4eda2) SHA1(092435e34d79775910316a7bed0f90c4f086e5c4) ) + + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + +ROM_END + +ROM_START( m4ringfr ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "rof03s.p1", 0x0000, 0x020000, CRC(4b4703fe) SHA1(853ce1f5932e09af2b5f3b5314709f13aa35cf19) ) + + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* missing? */ +ROM_END + + + + + + +ROM_START( m4roadrn ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dro19", 0x0000, 0x010000, CRC(8b591766) SHA1(df156390b427e31cdda64826a6c1d2457c915f25) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "dro_1.snd", 0x000000, 0x080000, CRC(895cfe63) SHA1(02134e149cef3526bbdb6cb93ef3efa283b9d6a2) ) + ROM_LOAD( "dro_2.snd", 0x080000, 0x080000, CRC(1d5c8d4f) SHA1(15c18ae7286807cdc0feb825b958eae808445690) ) +ROM_END + + + + +ROM_START( m4royjwl ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "rj.bin", 0x0000, 0x020000, CRC(3ffbe4a8) SHA1(47a0309cc9ff315ad9f64e6855863409443e94e2) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "rj_sound1.bin", 0x000000, 0x080000, CRC(443c4901) SHA1(7b3c6737b47dfe04c072f0e157d83c09340c3f9b) ) + ROM_LOAD( "rj_sound2.bin", 0x080000, 0x080000, CRC(9456523e) SHA1(ea1b6bf16b7d1015c188ad83760336d9851de391) ) +ROM_END + + + +ROM_START( m4salsa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dsa15.epr", 0x0000, 0x010000, CRC(22b60b0b) SHA1(4ad184d1557bfd01650684ea9d8ad794fded65f7) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "dsa_1#97c2.snd", 0x0000, 0x080000, CRC(0281a6dd) SHA1(a35a8cd0da32c51f77856ea3eeff7c58fd032333) ) +ROM_END + + + + + + +ROM_START( m4showtm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dsh13.bin", 0x0000, 0x010000, CRC(4ce40ff1) SHA1(f145d6c8e926ca4368d43dacda0fa38615988d84) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "sdsh01s1.snd", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) +ROM_END + + + + + + + + + + + + + + + + + + + + + + + + + + + +ROM_START( m4steptm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dst11.bin", 0x0000, 0x010000, CRC(3960f210) SHA1(c7c4fe74cb9a53eaa9114a84240de3bce4ffe75e) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "sdun01.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + + + + + + + +#define M4SUPBJC_EXTRAS \ + ROM_REGION( 0x48, "fakechr", 0 ) \ + ROM_LOAD( "sbj.chr", 0x0000, 0x000048, CRC(cc4b7911) SHA1(9f8a96a1f8b0f9b33b852e93483ce5c684703349) ) \ + ROM_REGION( 0x100000, "altmsm6376", 0 ) \ + ROM_LOAD( "sbjsnd1.hex", 0x000000, 0x080000, CRC(70388bec) SHA1(256fa01b57049d73e88b0bb270fccb555b12dfb7) ) \ + ROM_LOAD( "sbjsnd2.hex", 0x080000, 0x080000, CRC(1d588554) SHA1(48c092ce83d2f881fc217a3d566e896718ad6f24) ) \ + ROM_REGION( 0x100000, "msm6376", 0 ) \ + ROM_LOAD( "sbj.s1", 0x000000, 0x080000, CRC(9bcba966) SHA1(5ced282aca9d39ebf0828aa19357026d5298e955) ) \ + ROM_LOAD( "sbj.s2", 0x080000, 0x080000, CRC(1d588554) SHA1(48c092ce83d2f881fc217a3d566e896718ad6f24) ) + + +ROM_START( m4supbjc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sbjs.p1", 0x0000, 0x010000, CRC(f7fb2b99) SHA1(c860d3f95ee3fde02bf00b2e20eeee0ebaf01912) ) + M4SUPBJC_EXTRAS +ROM_END + +ROM_START( m4supbjca ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sbjd.p1", 0x0000, 0x010000, CRC(555361f4) SHA1(f5327b811ab3421307dc59d209a216798cd54393) ) + M4SUPBJC_EXTRAS +ROM_END + +ROM_START( m4supbjcb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sbjf.p1", 0x0000, 0x010000, CRC(7966deff) SHA1(5cdb6c80ef56b27878eb1fffd6fdf31060e56291) ) + M4SUPBJC_EXTRAS +ROM_END + +ROM_START( m4supbjcc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sbjl.p1", 0x0000, 0x010000, CRC(fc47ed74) SHA1(f29b2caac8168410e534e2f224c98dd4bbb9a7f7) ) + M4SUPBJC_EXTRAS +ROM_END + +ROM_START( m4supbjcd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "superbjclub.bin", 0x0000, 0x010000, CRC(68d11d27) SHA1(a0303f845fb5f5b396a7be3ca17a9eaf1a7baef4) ) + M4SUPBJC_EXTRAS +ROM_END + + +ROM_START( m4supbf ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sbff.p1", 0x0000, 0x010000, CRC(f27feba0) SHA1(157bf28e2d5fc2fa58bed11b3285cf56ae18abb8) ) +ROM_END + +ROM_START( m4supbfa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sbfs.p1", 0x0000, 0x010000, CRC(c8c52d5e) SHA1(d53513b9faabc307623a7c2f5be0225fb812beeb) ) +ROM_END + + + + + + + +ROM_START( m4take5 ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "take5.bin", 0x0000, 0x020000, CRC(24beb7d6) SHA1(746beccaf57fd0c54c8cf8d742b8ef50563a40fd) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "tfive1.hex", 0x000000, 0x080000, CRC(70f16892) SHA1(e6448831d3ce7fa251b40023bc7d5d6dee9d6793) ) + ROM_LOAD( "tfive2.hex", 0x080000, 0x080000, CRC(5fc888b0) SHA1(8d50ee4f36bd36aed5d0e7a77f76bd6caffc6376) ) +ROM_END + + + + +#define M4TECHNO_EXTRAS \ + ROM_REGION( 0x080000, "msm6376", 0 ) \ + ROM_LOAD( "techno.bin", 0x0000, 0x080000, CRC(3e80f8bd) SHA1(2e3a195b49448da11cc0c089a8a9b462894c766b) ) + +ROM_START( m4techno ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dte13.bin", 0x0000, 0x010000, CRC(cf661d06) SHA1(316b2c42e7253a03b2c12b713821045d9f95a8a7) ) + M4TECHNO_EXTRAS +ROM_END + +ROM_START( m4technoa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dte13hack.bin", 0x0000, 0x010000, CRC(8b8eafe3) SHA1(93a7714eb4c749b7b19f4f844cf88da9443b0bb7) ) + M4TECHNO_EXTRAS +ROM_END + + + + + + + + +ROM_START( m4toma ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dtk23.bin", 0x0000, 0x010000, CRC(ffba2b96) SHA1(c7635023ac5181e661e808c6b44ac1add58f4f56) ) +ROM_END + + + + +ROM_START( m4topdk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dtd26pj.bin", 0x0000, 0x010000, CRC(1f84d995) SHA1(7412632cf79008b980e48f14aea89c3f8d742ed2) ) +ROM_END + + +ROM_START( m4toprn ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "toprun_v1_1.bin", 0xc000, 0x004000, CRC(9b924324) SHA1(7b155467f30cc22f7cda301ae770fb2a889c9c66) ) + ROM_LOAD( "toprun_v1_2.bin", 0x8000, 0x004000, CRC(940fafa9) SHA1(2a8b669c51c8df50710bd8b552ab30a5d1a136ab) ) +ROM_END + + + +#define M4TOPTIM_EXTRAS \ + ROM_REGION( 0x48, "fakechr", 0 ) \ + ROM_LOAD( "ttimer.chr", 0x0000, 0x000048, CRC(f694224e) SHA1(936ab5e349fa59accbb37959cce9519fd97f3978) ) \ + ROM_REGION( 0x080000, "msm6376", 0 ) \ + ROM_LOAD( "toptimer-snd.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -WRITE_LINE_MEMBER(mpu4_state::pia_gb_cb2_w) +ROM_START( m4toptim ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "toptimer.bin", 0x0000, 0x010000, CRC(74804012) SHA1(0d9460ba6b1d359d358483c4e8bfd5518f364518) ) + M4TOPTIM_EXTRAS +ROM_END + + +ROM_START( m4toptima ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dtt2-1.bin", 0x0000, 0x010000, CRC(f9c84a34) SHA1(ad654442f580d6a49658f0e4e39bacbd9d0d0018) ) + M4TOPTIM_EXTRAS +ROM_END + + + + + +#define M4TROPCL_EXTRAS \ + ROM_REGION( 0x48, "fakechr", 0 ) \ + ROM_LOAD( "tro20.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) + +ROM_START( m4tropcl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "tros.p1", 0x0000, 0x010000, CRC(5e86c3fc) SHA1(ce2419991559839a8875060c1afe0f030190010a) ) + M4TROPCL_EXTRAS +ROM_END + +ROM_START( m4tropcla ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "tr2d.p1", 0x0000, 0x010000, CRC(0cc23f89) SHA1(a66c8c28073f53381c43e3e597f15f81c5c61479) ) + M4TROPCL_EXTRAS +ROM_END + +ROM_START( m4tropclb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "tr2f.p1", 0x0000, 0x010000, CRC(fbdcd06f) SHA1(27ccdc83e60a62227d33d8cf3d516fc43908ab99) ) + M4TROPCL_EXTRAS +ROM_END + +ROM_START( m4tropclc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "tr2s.p1", 0x0000, 0x010000, CRC(6d43375c) SHA1(5be1dc85374c6a1235e0b137b46ebd7a2d7d922a) ) + M4TROPCL_EXTRAS +ROM_END + +ROM_START( m4tropcld ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "trod.p1", 0x0000, 0x010000, CRC(60c84612) SHA1(84dc8b34e41436331832c1a32ddac0fce269488a) ) + M4TROPCL_EXTRAS +ROM_END + + +#define M4TBPLAY_EXTRAS \ + ROM_REGION( 0x48, "fakechr", 0 ) \ + ROM_LOAD( "dtpchr.chr", 0x0000, 0x000048, CRC(7743df66) SHA1(69b1943837ccf8671861ac8ef690138b41de0e5b) ) \ + ROM_REGION( 0x100000, "msm6376", 0 ) \ + ROM_LOAD( "dtps10_1", 0x000000, 0x080000, CRC(d1d2c981) SHA1(6a4940248b0bc8df0a9de0d60e98cfebf1962504) ) \ + ROM_LOAD( "dtps20_1", 0x080000, 0x080000, CRC(f77c4f39) SHA1(dc0e056f4d8c00824b3e672a02da64613bbf204e) ) + +ROM_START( m4tbplay ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dtp13", 0x0000, 0x010000, CRC(de424bc3) SHA1(c82dd56a0b3ccea78325cd90ed8e72ed68a1af77) ) + M4TBPLAY_EXTRAS +ROM_END + +ROM_START( m4tbplaya ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "rmtp4b", 0x0000, 0x010000, CRC(33a1764e) SHA1(7475f460dee015a2cd78fc3e0d1d14fd96fdbb9c) ) + M4TBPLAY_EXTRAS +ROM_END + +ROM_START( m4tbplayb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "trmyid", 0x0000, 0x010000, CRC(e7af5944) SHA1(64559c97375a3536f7929d7f4d8d19c30527a3ec) ) + M4TBPLAY_EXTRAS +ROM_END + + + + + + + + + + + + + +ROM_START( m4twintm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "d2t11.bin", 0x0000, 0x010000, CRC(6a76ac6f) SHA1(824912ff1fc3155d11d32b597be53481532fdf5e) ) + + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "m533.chr", 0x0000, 0x000048, CRC(b1d7e29b) SHA1(e8ef07f85780e24b5f406478de50287b740379d9) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "sdun01.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + + +ROM_START( m4twist ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "twist_again_mk29-6", 0x8000, 0x008000, CRC(cb331bee) SHA1(a88099a3f35caf02925f1a3f548fbf65c11e3ec9) ) +ROM_END + +ROM_START( m4twista ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "twistagain-98-mkii.bin", 0x8000, 0x008000, CRC(1cbc7b58) SHA1(eda998a64272fe6796243c2db48ef988b9668c35) ) +ROM_END + +ROM_START( m4twistb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "twistagain-mki-27.bin", 0x8000, 0x008000, CRC(357f7072) SHA1(8a23509fff79a83a819b27eff8de8db08c679e3f) ) +ROM_END + + + + +ROM_START( m4univ ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dun20", 0x0000, 0x010000, CRC(6a845d4d) SHA1(82bfc3f3a0ede76a4d482efc71b0390610db7acf) ) + + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "dunchr.chr", 0x0000, 0x000048, CRC(f694224e) SHA1(936ab5e349fa59accbb37959cce9519fd97f3978) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "sdun01.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + + + + +ROM_START( m4vegastg ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "vs.p1", 0x0000, 0x020000, CRC(4099d572) SHA1(91a7c1575013e61c754b2c2cb841e7687b76d7f9) ) + + ROM_REGION( 0x200000, "msm6376", 0 ) + ROM_LOAD( "vssound.bin", 0x0000, 0x16ee37, CRC(456da6be) SHA1(f0e293f0a383878b581326f869c2e49bec61d0c5) ) +ROM_END + + + + + + +ROM_START( m4vivalvd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "dlv11.bin", 0x0000, 0x010000, CRC(a890184c) SHA1(26d9952bf2eb4b55d21cdb934ffc73ff1a1cfbac) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "vegssnd.bin", 0x0000, 0x080000, CRC(93fd4253) SHA1(69feda7ffc56defd515c9cd1ce204af3d9731a3f) ) +ROM_END + + + + + + + + + + + + + + +ROM_START( m4wildtm ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "wildtimer.bin", 0x0000, 0x010000, CRC(5bd54924) SHA1(23fcf13c52ee7b9b39f30f999a9102171fffd642) ) // == m4reeltm + + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "charter.chr", 0x0000, 0x000048, CRC(4ff4eda2) SHA1(092435e34d79775910316a7bed0f90c4f086e5c4) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "wildtimer-snd.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) +ROM_END + + + +ROM_START( m4ch30 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ch301s", 0x0000, 0x010000, CRC(d31c9081) SHA1(21d1f4cc3de2343d830e3ee02e3a53abd12b6b9d) ) + + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* missing */ +ROM_END + + + + + + + + + + + + + + + + + + +ROM_START( m4czne ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "czone 6.bin", 0x0000, 0x010000, CRC(e5b2b64e) SHA1(b73a2aed7b04184bc7c5c3d0a11d44e624a47428) ) +ROM_END + +ROM_START( m4fourmr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "frmr5p26.bin", 0x8000, 0x008000, CRC(f0c5bd8a) SHA1(39026459008ed5b5bd3a10841799227fef70e5b5) ) +ROM_END + +ROM_START( m4holywd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hollywood 5p.bin", 0x0000, 0x010000, CRC(fb4ebb6e) SHA1(1ccfa81c173011ce70640097c85b532fd44f5a6e) ) +ROM_END + + + + + + +#define M4LAZY_EXTRAS \ + ROM_REGION( 0x180000, "msm6376", ROMREGION_ERASE00 ) \ + /* missing? */ + +ROM_START( m4lazy ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "lb_sj___.1_0", 0x0000, 0x020000, CRC(8628dcf1) SHA1(80cb9348e2704d0f72a44b4aa74b24fe03e279bc) ) + M4LAZY_EXTRAS +ROM_END + +ROM_START( m4lazya ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "lb_sj___.1_2", 0x0000, 0x020000, CRC(2b906f52) SHA1(802bcf6b3679e135308026752a55e55f00f21e85) ) + M4LAZY_EXTRAS +ROM_END + +ROM_START( m4lazyb ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "lb_sj_d_.1_2", 0x0000, 0x020000, CRC(a7691bad) SHA1(6cda3f3c18c13c04dbe0e4c1e4c817eedc34aa92) ) + M4LAZY_EXTRAS +ROM_END + + + + + + + + + + + + + + + + + + +ROM_START( m4specu ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "speculator.bin", 0x8000, 0x008000, CRC(4035d20c) SHA1(4a534294c5c7332eacd09ca44f351d6a6850cc29) ) +ROM_END + + + + + + + + + +ROM_START( m4sunclb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sucxe__0.2", 0x0000, 0x010000, CRC(fd702a6f) SHA1(0f6d553fcb096ca4874bb971425dabfbe18db31d) ) +ROM_END + +ROM_START( m4sunclba ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sucxed_0.2", 0x0000, 0x010000, CRC(70802bc3) SHA1(69b36f716cb608931f933cb58e47232b18064f9d) ) +ROM_END + + + +ROM_START( m4sunscl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sc_xe___.3_3", 0x0000, 0x010000, CRC(e3732cc6) SHA1(77f0368bb29ad00030f83af794a52df92fe97e5d) ) +ROM_END + +ROM_START( m4sunscla ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sc_xe_d_.3_3", 0x0000, 0x010000, CRC(b8627c4a) SHA1(ad616d38773cbd82376b518aa15dc3d7027237c5) ) +ROM_END + +ROM_START( m4sunsclb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sc_xef__.3_3", 0x0000, 0x010000, CRC(8e7e1100) SHA1(7648ea860a546081388a213845e27312730f46d9) ) +ROM_END + + + + + + + + + + + + + + + +DRIVER_INIT_MEMBER(mpu4_state,m4aao) { - //Some BWB games use this to drive the bankswitching - if (m_bwb_bank) - { - //printf("pia_gb_cb2_w %d\n", state); - m_pageval = state; - m_bank1->set_entry((m_pageval + (m_pageset ? 4 : 0)) & m_numbanks); - } + //Derived from Against_All_Odds_(Eurotek)_[C01_800_15jp].gam + DRIVER_INIT_CALL(m4default); + DRIVER_INIT_CALL(m4_hopper_duart_a); + DRIVER_INIT_CALL(m4default_reels); + //PCKEY =9 + //STKEY =0 + //JPKEY =0 + //JPSET =0 + //DIP1_0=true + //DIP1_1=true + //DIP1_2=true + //DIP1_3=true + //DIP1_4=true + //DIP1_5=false + //DIP1_6=false + //DIP1_7=false + //DIP2_0=false + //DIP2_1=false + //DIP2_2=false + //DIP2_3=false + //DIP2_4=false + //DIP2_5=false + //DIP2_6=false + //DIP2_7=false + //Sound barcrest1 + //Standard + //Volume 0 Stereo= 0 + //Sample rate 16000 + //Front door code 255 Cash door code 255 } -//Sampled sound timer +ROM_START( m4aao ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "aao2_8.bin", 0x0000, 0x010000, CRC(94ce4016) SHA1(2aecb6dbe798b7bbfb3d27f4d115b6611c7d990f) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "aaosnd.bin", 0x0000, 0x080000, CRC(7bf30b96) SHA1(f0086ae239b1d973018a3ea04e816a87f8f20bad) ) +ROM_END + + + +ROM_START( m4bandgd ) + ROM_REGION( 0x020000, "maincpu", 0 ) + ROM_LOAD( "bog.bin", 0x0000, 0x020000, CRC(21186fb9) SHA1(3d536098c7541cbdf02d68a18a38cae71155d7ff) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "bandsofgoldsnd.bin", 0x0000, 0x080000, CRC(95c6235f) SHA1(a13afa048b73fabfad229b5c2f8ef5ee9948d9fb) ) +ROM_END + + + +ROM_START( m4bigben ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "b_bv2_7.bin", 0x0000, 0x010000, CRC(9f3a7638) SHA1(b7169dc26a6e136d6daaf8d012f4c3d017e99e4a) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) + ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) +ROM_END + +ROM_START( m4bigbena ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "b_bv2_9.bin", 0x0000, 0x010000, CRC(86a745ee) SHA1(2347e8e38c743ea4d00faee6a56bb77e05c9c94d) ) // aka bb2_9.bin + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) + ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) +ROM_END + +ROM_START( m4bigbenb ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "bb1_9p.bin", 0x0000, 0x010000, CRC(c76c5a09) SHA1(b0e3b38998428f535841ab5373d57cb0d5b21ed3) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) + ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) +ROM_END + + + +ROM_START( m4bigbend ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "bb_2_1.bin", 0x0000, 0x010000, CRC(d3511805) SHA1(c86756998d36e729874c71a5d6442785069c57e9) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) + ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) +ROM_END + +ROM_START( m4bigbene ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "bbs_2_9p.bin", 0x0000, 0x010000, CRC(0107608d) SHA1(9e5def90e77f65c366aea2a9ac24d5f17c4d0ae8) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) + ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) +ROM_END + + + + + +ROM_START( m4boltbl ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "bfb.bin", 0x8000, 0x008000, CRC(63058a6b) SHA1(ebccc647a937c36ffc6c7cfc01389f04f829999c) ) +ROM_END + +ROM_START( m4boltbla ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "bfb1.1.bin", 0x8000, 0x008000, CRC(7a91122d) SHA1(28229e86feb4411978e556f7f7bd85bfd996b8aa) ) +ROM_END + +ROM_START( m4boltblb ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "bfb9 5p cash.bin", 0x8000, 0x008000, CRC(792bff34) SHA1(6996e87f22df6bac7bbe9908534b7e0480f03ede) ) +ROM_END + +ROM_START( m4boltblc ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "bolt-gilwern.bin", 0x8000, 0x008000, CRC(74e2c821) SHA1(1dcdc58585d1dcfc93e2aeb3df0cd41705cde196) ) +ROM_END + +ROM_START( m4dblchn ) + ROM_REGION( 0x010000, "maincpu", 0 ) + ROM_LOAD( "doublechance.bin", 0x0000, 0x010000, CRC(6feeeb7d) SHA1(40fe67d854fbf48959e08fdb5743e14d340c16e7) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "doublechancesnd.bin", 0x0000, 0x080000, CRC(3e80f8bd) SHA1(2e3a195b49448da11cc0c089a8a9b462894c766b) ) +ROM_END + + +ROM_START( m4kqclub ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "kingsque.p1", 0x8000, 0x008000, CRC(6501e501) SHA1(e289a9418c640415967fafda43f20877b38e3671) ) +ROM_END + +ROM_START( m4snookr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "snooker.ts2", 0x8000, 0x004000, CRC(a6906eb3) SHA1(43b91e88f909b758f880d83df4f889f15aa17eb3) ) + ROM_LOAD( "snooker.ts1", 0xc000, 0x004000, CRC(3e3072dd) SHA1(9ea8b270044b48767a2e6c19e8ed257d5491c1d0) ) +ROM_END + + + +ROM_START( m4stakex ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "stakex.bin", 0x0000, 0x010000, CRC(098c7117) SHA1(27f04cfb88ef870fc30afd055cf32ffe448275ea) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "stakexsnd.bin", 0x0000, 0x080000, CRC(baf17991) SHA1(282e0ac9d18299e9f7a0fecaf9edf0cb4205ef0e) ) +ROM_END + +ROM_START( m4stakexa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "stakex2.bin", 0x0000, 0x010000, CRC(77ae3f63) SHA1(c5f1cfd5bffcf3156f584757de57ef6530214511) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "stakexsnd.bin", 0x0000, 0x080000, CRC(baf17991) SHA1(282e0ac9d18299e9f7a0fecaf9edf0cb4205ef0e) ) +ROM_END + + +ROM_START( m4stand2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "stand 2 del 8.bin", 0x08000, 0x08000, CRC(a9a5edc7) SHA1(035d3f3b3373cec475753f1b0de2f4db48d6d288) ) +ROM_END + + + + + + + + + + +ROM_START( m4bigban ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "big04.p1", 0x0000, 0x020000, CRC(f7ead9c6) SHA1(46c10abb892cb6d427ad508aae96752c14b4cb83) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* Missing? */ +ROM_END + +ROM_START( m4crzcsn ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "crz03.bin", 0x0000, 0x020000, CRC(48610c4f) SHA1(a62ac8b3ee704ee4e98f9d56bfc723d4cbb25b54) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* Missing? */ +ROM_END + +ROM_START( m4crzcav ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "gcv05.p1", 0x0000, 0x020000, CRC(b9ba46f6) SHA1(78b745d85b36444c39747982987088a772b20a7e) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* Missing? */ +ROM_END + +ROM_START( m4dragon ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "dgl01.p1", 0x0000, 0x020000, CRC(d7d39c9b) SHA1(5350c9db549edee30815516b1ce74a018390ff3d) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* Missing? */ +ROM_END + +ROM_START( m4hilonv ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "hnc02.p1", 0x0000, 0x020000, CRC(33a8022b) SHA1(5168b8f32630aa2cb56f30c941695f1728e4fb7a) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* Missing? */ +ROM_END + +ROM_START( m4octo ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "oct03.p1", 0x0000, 0x020000, CRC(8df66e94) SHA1(e1ab93982846d83becae36b5814ebbd515b9078e) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* Missing? */ +ROM_END + +ROM_START( m4sctagt ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "gse3_0.p1", 0x0000, 0x010000, CRC(eff705ff) SHA1(6bf96872ef4bcc8f8041c5384d892f072c72be2b) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* Missing? */ +ROM_END + + + + + + + + + + +ROM_START( m4cld02 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cru0_2.bin", 0x0000, 0x010000, CRC(e3c01944) SHA1(33a2b2c05686f53811349b2980e590fdc4b72756) ) + ROM_REGION( 0x080000, "msm6376", ROMREGION_ERASE00 ) + /* missing */ +ROM_END + +ROM_START( m4barcrz ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "barcrazy.bin", 0x0000, 0x010000, CRC(917ad749) SHA1(cb0a3f6737b8f183d2efb0a3f8adbf86d40a38ff) ) + + ROM_REGION( 0x080000, "msm6376", 0 ) + ROM_LOAD( "barcrazysnd.bin", 0x0000, 0x080000, CRC(0e155193) SHA1(7583e9f3e3624f82f2329565bdcbdaa5a5b03ee0) ) +ROM_END + +ROM_START( m4bonzbn ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bingo-bonanza_v1.bin", 0x0000, 0x010000, CRC(3d137ddf) SHA1(1ce23db111448e44a166554dd8853dc379e787da) ) + + ROM_REGION( 0x100000, "msm6376", 0 ) + ROM_LOAD( "bingo-bonanzasnd1.bin", 0x000000, 0x080000, CRC(e0eb2a92) SHA1(cbc0b3bba7857d87535d1c2a7459aed60709734a) ) + ROM_LOAD( "bingo-bonanzasnd2.bin", 0x080000, 0x080000, CRC(7db27b28) SHA1(98c5fa4bf8c7f67fae90a1ca98b74057f5ed9b6b) ) +ROM_END + +ROM_START( m4dnj ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "d.n.j 1-02", 0x0000, 0x010000, CRC(5750843d) SHA1(b87923e84071ea4a1af7566a7f413f8e30e208e9) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) // should this set have an OKI? +ROM_END + +ROM_START( m4dnja ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "d.n.j 1-03", 0x0000, 0x010000, CRC(7b805255) SHA1(f62765bfa66e2422ac0a71ebaff27f1ccd470fe2) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) // should this set have an OKI? +ROM_END + +ROM_START( m4dnjb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "d.n.j 1-06", 0x0000, 0x010000, CRC(aab770c7) SHA1(f24fff8346915017bc43fef9fac356a067676d86) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) // should this set have an OKI? +ROM_END + + +ROM_START( m4matdr ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "matador.bin", 0x0000, 0x020000, CRC(367788a4) SHA1(3c9b077a64f993cb60107558efdfcbee0fe5c958) ) + + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + /* missing */ +ROM_END + + + +ROM_START( m4hslo ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "hot30", 0x0000, 0x010000, CRC(62f2c420) SHA1(5ae89a1b585738255e8d9ae153c3c63b4a2893e4) ) +ROM_END + +#define M4SBX_EXTRAS \ + ROM_REGION( 0x40000, "upd", 0 ) /* not oki at least... */ \ + ROM_LOAD( "sbsnd", 0x0000, 0x040000, CRC(27fd9fe6) SHA1(856fdc95a833affde0ada7041c68a4b6b729b715) ) + +ROM_START( m4sbx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sbx-2.1-cash.bin", 0x8000, 0x008000, CRC(2dca703e) SHA1(aef398f4ed38ba34f28009058c9486a570f64e0f) ) + M4SBX_EXTRAS +ROM_END + +ROM_START( m4sbxa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "b_sbx23.bin", 0x8000, 0x008000, CRC(8188e94f) SHA1(dfbfc549d12c8f7c7db6c12ba766c28f1cf0873f) ) + M4SBX_EXTRAS +ROM_END + +ROM_START( m4sbxb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "s bears v1-4 20p po.bin", 0x8000, 0x008000, CRC(03486714) SHA1(91c237956bbec58cc08a3e92543488d8e2daa673) ) + M4SBX_EXTRAS +ROM_END + +ROM_START( m4sbxc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "s bears v2-4 10p 8.bin", 0x8000, 0x008000, CRC(9b94f8d0) SHA1(9808386def14c8a058730e90135a4d6506e6ed3d) ) + M4SBX_EXTRAS +ROM_END + +ROM_START( m4sbxd ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "s bears v2-4 20p po.bin", 0x8000, 0x008000, CRC(ad8f8d9d) SHA1(abd808f95b587a84e8b3aad1af9fe1cb613c9821) ) + M4SBX_EXTRAS +ROM_END + +ROM_START( m4sbxe ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "superbea.10p", 0x8000, 0x008000, CRC(70020466) SHA1(473c9feb9ce0024b870612af19ec8a47a7798506) ) + M4SBX_EXTRAS +ROM_END + + + +ROM_START( m4bclimb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bc8pv4.bin", 0x8000, 0x008000, CRC(229a7607) SHA1(b20b2c9f9d19ccd6146affdf519fa4bc0322c971) ) + + ROM_REGION( 0x40000, "upd", 0 ) // not oki at least... + ROM_LOAD( "sbsnd", 0x0000, 0x040000, CRC(27fd9fe6) SHA1(856fdc95a833affde0ada7041c68a4b6b729b715) ) +ROM_END + +ROM_START( m4captb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_bear21.rom", 0x8000, 0x008000, CRC(2e9a42e9) SHA1(0c3f33311f1543daf2ff5c0443dc8c000d49c26d) ) + + ROM_REGION( 0x40000, "upd", ROMREGION_ERASE00 ) // not oki at least... +// ROM_LOAD( "sbsnd", 0x0000, 0x040000, CRC(27fd9fe6) SHA1(856fdc95a833affde0ada7041c68a4b6b729b715) ) +ROM_END + +#define M4JUNGJ_EXTRAS \ + ROM_REGION( 0x40000, "upd", ROMREGION_ERASE00 ) \ + /* missing? */ +ROM_START( m4jungj ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jj2410p.bin", 0x8000, 0x008000, CRC(490838c6) SHA1(a1e9963df9a429ae594592312e977f22f96c6073) ) + M4JUNGJ_EXTRAS +ROM_END + +ROM_START( m4jungja ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jj2420p.bin", 0x8000, 0x008000, CRC(39329ccf) SHA1(6b79e4fc553bad935ec9989ad5ef3e186e720633) ) + M4JUNGJ_EXTRAS +ROM_END + +ROM_START( m4jungjb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jjv2_4p.bin", 0x8000, 0x008000, CRC(125a8138) SHA1(18c62df5b331bd09d6dcda6280351e94b7b816fd) ) + M4JUNGJ_EXTRAS +ROM_END + +ROM_START( m4jungjc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "jjv4.bin", 0x8000, 0x008000, CRC(bf583156) SHA1(084c5ed3d96c92f265ad08cc7aed7fe6092217a5) ) + M4JUNGJ_EXTRAS +ROM_END + + +#define M4FSX_EXTRAS \ + ROM_REGION( 0x40000, "upd", ROMREGION_ERASE00 ) \ + /* missing? */ + +ROM_START( m4fsx ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("funspotx.10p", 0x8000, 0x008000, CRC(55199f36) SHA1(7af376781e381582b06972725a2022cc28ba60b3) ) + M4FSX_EXTRAS +ROM_END + +ROM_START( m4fsxa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "funspotx.20p", 0x8000, 0x008000, CRC(08d1eb6e) SHA1(7c7c02d9c34696d75490df8596ffe64fba93dcc4) ) + M4FSX_EXTRAS +ROM_END + +ROM_START( m4fsxb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "b_fsv1.bin", 0x8000, 0x008000, CRC(b077f944) SHA1(97d96594b8d2d7232bad087cc55912dec02d7484) ) + M4FSX_EXTRAS +ROM_END + /* -The MSM6376 sound chip is configured in a slightly strange way, to enable dynamic -sample rate changes (8Khz, 10.6 Khz, 16 KHz) by varying the clock. -According to the BwB programmer's guide, the formula is: -MSM6376 clock frequency:- -freq = (1720000/((t3L+1)(t3H+1)))*[(t3H(T3L+1)+1)/(2(t1+1))] -where [] means rounded up integer, -t3L is the LSB of Clock 3, -t3H is the MSB of Clock 3, -and t1 is the initial value in clock 1. +Coinworld data + +Error Number Cause of alarm Comments +11 1 GBP coin in These alarms go off when a coin is jammed in the mech, or if the Mars anti-strimming alarm is activated. +12 50p coin in The machine will lock up for a short amount of time, whilst sounding as alarm tone. +13 20p coin in Error 15 can be caused by having DIL switch 6 in the wrong position for your coin mech loom. +14 10p coin in +15 5p coin in +16 2 GBP coin in +21 Reel 1 alarm The faulty reel will flash. Nothing more will happen until the machine is reset +22 Reel 2 alarm +23 Reel 3 alarm +42 Ram Cleared The RAM is cleared when the machine is turned on for the first time, or when the price of play is changed. The alarm + clears after a short time +51 Checksum error The machine will lock up completely if the eprom has failed, or if the security chip is missing or has failed +54 Security chip fail +61 Cash in meter failure The machine will not run if the cash in, or cash out meters are not connected properly. +62 Cash out meter failure +71 Datapack error If the machine is in protocol mode, and a datapack is not connected, then the machine alarms. It will reset after a + time, and have another go at transmitting the data +72 Sound card fail If the sound card is missing, or the wrong sound eprom is fitted, the machine alarms on power on. The machine will then + operate in silence. +99 Payout tubes empty If one of the tubes runs dry, the machine will attempt to compensate by paying from the other tube. If this runs dry + as well, the machine will lock up, requiring a refill before games can continue. The alarm tone is a softer, more friendly one. */ -//O3 -> G1 O1 -> c2 o2 -> c1 +#define M4CCOP_EXTRAS \ + ROM_REGION( 0x100000, "alt1msm6376", ROMREGION_ERASE00 ) \ + ROM_LOAD( "cash-copssnd1-de.bin", 0x000000, 0x080000, CRC(cd03f7f7) SHA1(4c09a86bcdf9a9eb224b19b932b75c9db3784fad) ) \ + ROM_LOAD( "cash-copssnd2-de.bin", 0x080000, 0x080000, CRC(107816a2) SHA1(f5d4a0390b85a665a3536da4689ec91b1a2da3ae) ) \ + ROM_REGION( 0x100000, "alt2msm6376", ROMREGION_ERASE00 ) \ + ROM_LOAD( "cash-copssnd1.bin", 0x000000, 0x080000, CRC(776a303d) SHA1(a5a282674674f25bc6ca169eeebee7309239871f) ) \ + ROM_LOAD( "cash-copssnd2.bin", 0x080000, 0x080000, CRC(107816a2) SHA1(f5d4a0390b85a665a3536da4689ec91b1a2da3ae) ) \ + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) \ + ROM_LOAD( "cashcops.p1", 0x000000, 0x080000, CRC(9a59a3a1) SHA1(72cfc99b22ec5fb89714c6d2d66760d86dc19f2f) ) \ + ROM_LOAD( "cashcops.p2", 0x080000, 0x080000, CRC(deb3e755) SHA1(01f92881c451919be549a1c58afa1fa4630bf171) ) + +ROM_START( m4ccop ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cashcop9.bin", 0x0000, 0x010000, CRC(5f993207) SHA1(ab0614e6a1355d275158b1a32f65086e40c2f890) ) + M4CCOP_EXTRAS +ROM_END + +ROM_START( m4ccopa ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cash-cops_v4-de.bin", 0x0000, 0x010000, CRC(df3da824) SHA1(c275a33e4a89f1b9ecbae80cb7b62007b29b9fd2) ) + M4CCOP_EXTRAS +ROM_END + +ROM_START( m4ccopb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "cashcop8.bin", 0x0000, 0x010000, CRC(165603df) SHA1(d301696a340ed136a43c5753c8bf73283a925fd7) ) + M4CCOP_EXTRAS +ROM_END -/* This is a bit of a cheat - since we don't clock into the OKI chip directly, we need to -calculate the oscillation frequency in advance. We're running the timer for interrupt -purposes, but the frequency calculation is done by plucking the values out as they are written.*/ -WRITE8_MEMBER(mpu4_state::ic3ss_w) -{ - device_t *ic3ss = machine().device("ptm_ic3ss"); - downcast<ptm6840_device *>(ic3ss)->write(offset,data); - - if (offset == 3) - { - m_t1 = data; - } - if (offset == 6) - { - m_t3h = data; - } - if (offset == 7) - { - m_t3l = data; - } - - float num = (1720000/((m_t3l + 1)*(m_t3h + 1))); - float denom1 = ((m_t3h *(m_t3l + 1)+ 1)/(2*(m_t1 + 1))); - - int denom2 = denom1 + 0.5f;//need to round up, this gives same precision as chip - int freq=num*denom2; - - if (freq) - { - m_msm6376->set_frequency(freq); - } -} +ROM_START( m4ccc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ccc12.bin", 0x8000, 0x008000, CRC(570cc766) SHA1(036c95ff6428ab38cceb0537dcc990be78fb331a) ) -/* input ports for MPU4 board */ -INPUT_PORTS_START( mpu4 ) - PORT_START("ORANGE1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("00")// 20p level - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("01")// 100p level - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("02")// Token 1 level - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("03")// Token 2 level - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("04") - PORT_CONFNAME( 0xE0, 0x00, "Stake Key" ) - PORT_CONFSETTING( 0x00, "Not fitted / 5p" ) - PORT_CONFSETTING( 0x20, "10p" ) - PORT_CONFSETTING( 0x40, "20p" ) - PORT_CONFSETTING( 0x60, "25p" ) - PORT_CONFSETTING( 0x80, "30p" ) - PORT_CONFSETTING( 0xA0, "40p" ) - PORT_CONFSETTING( 0xC0, "50p" ) - PORT_CONFSETTING( 0xE0, "1 GBP" ) - - PORT_START("ORANGE2") - PORT_CONFNAME( 0x0F, 0x00, "Jackpot / Prize Key" ) - PORT_CONFSETTING( 0x00, "Not fitted" ) - PORT_CONFSETTING( 0x01, "3 GBP" ) - PORT_CONFSETTING( 0x02, "4 GBP" ) - PORT_CONFSETTING( 0x08, "5 GBP" ) - PORT_CONFSETTING( 0x03, "6 GBP" ) - PORT_CONFSETTING( 0x04, "6 GBP Token" ) - PORT_CONFSETTING( 0x05, "8 GBP" ) - PORT_CONFSETTING( 0x06, "8 GBP Token" ) - PORT_CONFSETTING( 0x07, "10 GBP" ) - PORT_CONFSETTING( 0x09, "15 GBP" ) - PORT_CONFSETTING( 0x0A, "25 GBP" ) - PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) - PORT_CONFSETTING( 0x0C, "35 GBP" ) - PORT_CONFSETTING( 0x0D, "70 GBP" ) - PORT_CONFSETTING( 0x0E, "Reserved" ) - PORT_CONFSETTING( 0x0F, "Reserved" ) - - PORT_CONFNAME( 0xF0, 0x00, "Percentage Key" ) - PORT_CONFSETTING( 0x00, "Not fitted / 68% (Invalid for UK Games)" ) - PORT_CONFSETTING( 0x10, "70" ) - PORT_CONFSETTING( 0x20, "72" ) - PORT_CONFSETTING( 0x30, "74" ) - PORT_CONFSETTING( 0x40, "76" ) - PORT_CONFSETTING( 0x50, "78" ) - PORT_CONFSETTING( 0x60, "80" ) - PORT_CONFSETTING( 0x70, "82" ) - PORT_CONFSETTING( 0x80, "84" ) - PORT_CONFSETTING( 0x90, "86" ) - PORT_CONFSETTING( 0xA0, "88" ) - PORT_CONFSETTING( 0xB0, "90" ) - PORT_CONFSETTING( 0xC0, "92" ) - PORT_CONFSETTING( 0xD0, "94" ) - PORT_CONFSETTING( 0xE0, "96" ) - PORT_CONFSETTING( 0xF0, "98" ) - - PORT_START("BLACK1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Hi") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Lo") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("18") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("19") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("20") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox (Back) Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE - - PORT_START("BLACK2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("24") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("25") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Cancel") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 1") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Hold 2") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Hold 3") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("Hold 4") - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_START1) - - PORT_START("DIL1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:01") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:02") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:03") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:04") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0xF0, 0x00, "Target Percentage (if key not fitted)" )PORT_DIPLOCATION("DIL1:05,06,07,08") - PORT_DIPSETTING( 0x00, "Unset (Program Optimum)" ) - PORT_DIPSETTING( 0x10, "70" ) - PORT_DIPSETTING( 0x20, "72" ) - PORT_DIPSETTING( 0x30, "74" ) - PORT_DIPSETTING( 0x40, "76" ) - PORT_DIPSETTING( 0x50, "78" ) - PORT_DIPSETTING( 0x60, "80" ) - PORT_DIPSETTING( 0x70, "82" ) - PORT_DIPSETTING( 0x80, "84" ) - PORT_DIPSETTING( 0x90, "86" ) - PORT_DIPSETTING( 0xA0, "88" ) - PORT_DIPSETTING( 0xB0, "90" ) - PORT_DIPSETTING( 0xC0, "92" ) - PORT_DIPSETTING( 0xD0, "94" ) - PORT_DIPSETTING( 0xE0, "96" ) - PORT_DIPSETTING( 0xF0, "98" ) - - PORT_START("DIL2") - PORT_DIPNAME( 0x01, 0x00, "Token Lockout when full" ) PORT_DIPLOCATION("DIL2:01") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused )) PORT_DIPLOCATION("DIL2:02") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Scottish Coin Handling" ) PORT_DIPLOCATION("DIL2:03")//20p payout - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Out of Credit Display Inhibit" ) PORT_DIPLOCATION("DIL2:04") // many games need this on to boot - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, "OCD Audio Enable" ) PORT_DIPLOCATION("DIL2:05") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Token Refill Level Inhibit" ) PORT_DIPLOCATION("DIL2:07") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START("AUX1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("0") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("6") - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7") - - PORT_START("AUX2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p")//PORT_IMPULSE(5) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")//PORT_IMPULSE(5) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")//PORT_IMPULSE(5) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")//PORT_IMPULSE(5) -INPUT_PORTS_END - - -INPUT_PORTS_START( mpu4_cw ) -//Inputs for CoinWorld games - PORT_INCLUDE( mpu4 ) - PORT_MODIFY("DIL1") - PORT_DIPNAME( 0x01, 0x00, "Profile Type" ) PORT_DIPLOCATION("DIL1:01") - PORT_DIPSETTING( 0x00, "Bingo Profile" ) - PORT_DIPSETTING( 0x01, "Arcade" ) - PORT_DIPNAME( 0x02, 0x00, "Accept 2 GBP Coin?" ) PORT_DIPLOCATION("DIL1:02") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0C, 0x00, "Jackpot" ) PORT_DIPLOCATION("DIL1:03,04") - PORT_DIPSETTING( 0x04, "15 GBP" ) - PORT_DIPSETTING( 0x00, "10 GBP" ) - PORT_DIPSETTING( 0x08, "5 GBP" ) - PORT_DIPNAME( 0x10, 0x00, "Hold Mode" ) PORT_DIPLOCATION("DIL1:05") - PORT_DIPSETTING( 0x00, "Show Hints" ) - PORT_DIPSETTING( 0x10, "Auto Hold" ) - PORT_DIPNAME( 0x20, 0x00, "Coin Mech Type" ) PORT_DIPLOCATION("DIL1:05") - PORT_DIPSETTING( 0x00, "6 Coin" ) - PORT_DIPSETTING( 0x20, "5 Coin" ) - PORT_DIPNAME( 0x40, 0x00, "Reel Motor Type" ) PORT_DIPLOCATION("DIL1:05") - PORT_DIPSETTING( 0x00, "Slim motor" ) - PORT_DIPSETTING( 0x40, "Fat motor" ) - PORT_DIPNAME( 0x80, 0x00, "Payout Tube" ) PORT_DIPLOCATION("DIL1:05") - PORT_DIPSETTING( 0x00, "20p" ) - PORT_DIPSETTING( 0x80, "10p" ) - - PORT_MODIFY("DIL2") - PORT_DIPNAME( 0x07, 0x00, "Stake Setting" ) - PORT_DIPSETTING( 0x00, "Not fitted / 5p" ) - PORT_DIPSETTING( 0x01, "10p" ) - PORT_DIPSETTING( 0x02, "20p" ) - PORT_DIPSETTING( 0x03, "25p" ) - PORT_DIPSETTING( 0x04, "30p" ) - PORT_BIT(0xE0, IP_ACTIVE_HIGH, IPT_UNUSED) - INPUT_PORTS_END - -INPUT_PORTS_START( mpu4jackpot8tkn ) - PORT_INCLUDE( mpu4 ) - - PORT_MODIFY("ORANGE2") - PORT_CONFNAME( 0x0F, 0x06, "Jackpot / Prize Key" ) - PORT_CONFSETTING( 0x00, "Not fitted" ) - PORT_CONFSETTING( 0x01, "3 GBP" ) - PORT_CONFSETTING( 0x02, "4 GBP" ) - PORT_CONFSETTING( 0x08, "5 GBP" ) - PORT_CONFSETTING( 0x03, "6 GBP" ) - PORT_CONFSETTING( 0x04, "6 GBP Token" ) - PORT_CONFSETTING( 0x05, "8 GBP" ) - PORT_CONFSETTING( 0x06, "8 GBP Token" ) - PORT_CONFSETTING( 0x07, "10 GBP" ) - PORT_CONFSETTING( 0x09, "15 GBP" ) - PORT_CONFSETTING( 0x0A, "25 GBP" ) - PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) - PORT_CONFSETTING( 0x0C, "35 GBP" ) - PORT_CONFSETTING( 0x0D, "70 GBP" ) - PORT_CONFSETTING( 0x0E, "Reserved" ) - PORT_CONFSETTING( 0x0F, "Reserved" ) -INPUT_PORTS_END - -INPUT_PORTS_START( mpu4jackpot8per ) - PORT_INCLUDE( mpu4 ) - - PORT_MODIFY("ORANGE2") - PORT_CONFNAME( 0x0F, 0x06, "Jackpot / Prize Key" ) - PORT_CONFSETTING( 0x00, "Not fitted" ) - PORT_CONFSETTING( 0x01, "3 GBP" ) - PORT_CONFSETTING( 0x02, "4 GBP" ) - PORT_CONFSETTING( 0x08, "5 GBP" ) - PORT_CONFSETTING( 0x03, "6 GBP" ) - PORT_CONFSETTING( 0x04, "6 GBP Token" ) - PORT_CONFSETTING( 0x05, "8 GBP" ) - PORT_CONFSETTING( 0x06, "8 GBP Token" ) - PORT_CONFSETTING( 0x07, "10 GBP" ) - PORT_CONFSETTING( 0x09, "15 GBP" ) - PORT_CONFSETTING( 0x0A, "25 GBP" ) - PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) - PORT_CONFSETTING( 0x0C, "35 GBP" ) - PORT_CONFSETTING( 0x0D, "70 GBP" ) - PORT_CONFSETTING( 0x0E, "Reserved" ) - PORT_CONFSETTING( 0x0F, "Reserved" ) - - PORT_CONFNAME( 0xF0, 0x10, "Percentage Key" ) - PORT_CONFSETTING( 0x00, "Not fitted / 68% (Invalid for UK Games)" ) - PORT_CONFSETTING( 0x10, "70" ) - PORT_CONFSETTING( 0x20, "72" ) - PORT_CONFSETTING( 0x30, "74" ) - PORT_CONFSETTING( 0x40, "76" ) - PORT_CONFSETTING( 0x50, "78" ) - PORT_CONFSETTING( 0x60, "80" ) - PORT_CONFSETTING( 0x70, "82" ) - PORT_CONFSETTING( 0x80, "84" ) - PORT_CONFSETTING( 0x90, "86" ) - PORT_CONFSETTING( 0xA0, "88" ) - PORT_CONFSETTING( 0xB0, "90" ) - PORT_CONFSETTING( 0xC0, "92" ) - PORT_CONFSETTING( 0xD0, "94" ) - PORT_CONFSETTING( 0xE0, "96" ) - PORT_CONFSETTING( 0xF0, "98" ) -INPUT_PORTS_END - - - - -INPUT_PORTS_START( grtecp ) - PORT_START("ORANGE1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("00")// 20p level - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("01")// 100p level - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("02")// Token 1 level - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("03")// Token 2 level - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("04") - PORT_CONFNAME( 0xE0, 0x00, "Stake Key" ) - PORT_CONFSETTING( 0x00, "Not fitted / 5p" ) - PORT_CONFSETTING( 0x20, "10p" ) - PORT_CONFSETTING( 0x40, "20p" ) - PORT_CONFSETTING( 0x60, "25p" ) - PORT_CONFSETTING( 0x80, "30p" ) - PORT_CONFSETTING( 0xA0, "40p" ) - PORT_CONFSETTING( 0xC0, "50p" ) - PORT_CONFSETTING( 0xE0, "1 GBP" ) - - PORT_START("ORANGE2") - PORT_CONFNAME( 0x0F, 0x00, "Jackpot / Prize Key" ) - PORT_CONFSETTING( 0x00, "Not fitted" ) - PORT_CONFSETTING( 0x01, "3 GBP" ) - PORT_CONFSETTING( 0x02, "4 GBP" ) - PORT_CONFSETTING( 0x08, "5 GBP" ) - PORT_CONFSETTING( 0x03, "6 GBP" ) - PORT_CONFSETTING( 0x04, "6 GBP Token" ) - PORT_CONFSETTING( 0x05, "8 GBP" ) - PORT_CONFSETTING( 0x06, "8 GBP Token" ) - PORT_CONFSETTING( 0x07, "10 GBP" ) - PORT_CONFSETTING( 0x09, "15 GBP" ) - PORT_CONFSETTING( 0x0A, "25 GBP" ) - PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) - PORT_CONFSETTING( 0x0C, "35 GBP" ) - PORT_CONFSETTING( 0x0D, "70 GBP" ) - PORT_CONFSETTING( 0x0E, "Reserved" ) - PORT_CONFSETTING( 0x0F, "Reserved" ) - - PORT_CONFNAME( 0xF0, 0x00, "Percentage Key" ) - PORT_CONFSETTING( 0x00, "As Option Switches" ) - PORT_CONFSETTING( 0x10, "70" ) - PORT_CONFSETTING( 0x20, "72" ) - PORT_CONFSETTING( 0x30, "74" ) - PORT_CONFSETTING( 0x40, "76" ) - PORT_CONFSETTING( 0x50, "78" ) - PORT_CONFSETTING( 0x60, "80" ) - PORT_CONFSETTING( 0x70, "82" ) - PORT_CONFSETTING( 0x80, "84" ) - PORT_CONFSETTING( 0x90, "86" ) - PORT_CONFSETTING( 0xA0, "88" ) - PORT_CONFSETTING( 0xB0, "90" ) - PORT_CONFSETTING( 0xC0, "92" ) - PORT_CONFSETTING( 0xD0, "94" ) - PORT_CONFSETTING( 0xE0, "96" ) - PORT_CONFSETTING( 0xF0, "98" ) - - PORT_START("BLACK1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox (Back) Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE - - PORT_START("BLACK2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Collect/Cancel") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hold 1") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hold 2") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 3") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Hi") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Lo") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("Exchange") - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_START1) - - PORT_START("DIL1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:01") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:02") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:03") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:04") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0xF0, 0x00, "Target Percentage (if key not fitted)" )PORT_DIPLOCATION("DIL1:05,06,07,08") - PORT_DIPSETTING( 0x00, "Unset (Program Optimum)" ) - PORT_DIPSETTING( 0x10, "70" ) - PORT_DIPSETTING( 0x20, "72" ) - PORT_DIPSETTING( 0x30, "74" ) - PORT_DIPSETTING( 0x40, "76" ) - PORT_DIPSETTING( 0x50, "78" ) - PORT_DIPSETTING( 0x60, "80" ) - PORT_DIPSETTING( 0x70, "82" ) - PORT_DIPSETTING( 0x80, "84" ) - PORT_DIPSETTING( 0x90, "86" ) - PORT_DIPSETTING( 0xA0, "88" ) - PORT_DIPSETTING( 0xB0, "90" ) - PORT_DIPSETTING( 0xC0, "92" ) - PORT_DIPSETTING( 0xD0, "94" ) - PORT_DIPSETTING( 0xE0, "96" ) - PORT_DIPSETTING( 0xF0, "98" ) - - PORT_START("DIL2") - PORT_DIPNAME( 0x01, 0x00, "Token Lockout when full" ) PORT_DIPLOCATION("DIL2:01") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused )) PORT_DIPLOCATION("DIL2:02") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Scottish Coin Handling" ) PORT_DIPLOCATION("DIL2:03")//20p payout - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Out of Credit Display Inhibit" ) PORT_DIPLOCATION("DIL2:04") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, "OCD Audio Enable" ) PORT_DIPLOCATION("DIL2:05") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Token Refill Level Inhibit" ) PORT_DIPLOCATION("DIL2:07") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START("AUX1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("0") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("6") - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7") - - PORT_START("AUX2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p")//PORT_IMPULSE(5) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")//PORT_IMPULSE(5) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")//PORT_IMPULSE(5) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")//PORT_IMPULSE(5) -INPUT_PORTS_END + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "criss cross crazy sound (27c2001)", 0x0000, 0x040000, CRC(1994c509) SHA1(2bbe91a43aa9953b7776faf67e81e30a4f7b7cb2) ) +ROM_END +ROM_START( m4treel ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "trgv1.1s", 0x0000, 0x010000, CRC(a9c76b08) SHA1(a5b3bc980eb58e346cb02d8ca43401f304e5b6de) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -/* -Characteriser (CHR) +ROM_START( m4treela ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "trgv1.1b", 0x0000, 0x020000, CRC(7eaebef6) SHA1(5ab86329041e7df09cc2e3ce8d5afd44d88c246c) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -As built, the CHR is a PAL which can perform basic bit manipulation according to -an as yet unknown unique key. However, the programmers decided to best use this protection device in read/write/compare -cycles, storing almost the entire 'hidden' data table in the ROMs in plain sight. Only later rebuilds by BwB -avoided this 'feature' of the development kit, and will need a different setup. -This information has been used to generate the CHR tables loaded by the programs, until a key can be determined. -For most Barcrest games, the following method was used: +ROM_START( m4unkjok ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "joker 10p 3.bin", 0x0000, 0x010000, CRC(009823ac) SHA1(5ab25da5876c87a8d8701f84446bb3d377e4c1ca) ) +ROM_END -The initial 'PALTEST' routine as found in the Barcrest programs simply writes the first 'call' to the CHR space, -to read back the 'response'. There is no attempt to alter the order or anything else, just -a simple runthrough of the entire data table. The only 'catch' in this is to note that the CHR chip always scans -through the table starting at the last accessed data value, unless 00 is used to reset to the beginning. This is obviously -a simplification, in fact the PAL does bit manipulation with some latching. +ROM_START( m4unkjoka ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "joker 10p 6.bin", 0x0000, 0x010000, CRC(f25f0704) SHA1(35298b49f79c5029277f4777fe88d5e4344c115f) ) +ROM_END -However, a final 8 byte row, that controls the lamp matrix is not tested - to date, no-one outside of Barcrest knows -how this is generated, and currently trial and error is the only sensible method. It is noted that the default, -of all 00, is sometimes the correct answer, particularly in non-Barcrest use of the CHR chip, though when used normally, -there are again fixed call values. +ROM_START( m4unkjokb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "joker 20p 3 or 6.bin", 0x0000, 0x010000, CRC(cae4397e) SHA1(53b61fd41c97a6ed29ce6a7b555e061ecf2b0ae2) ) +ROM_END -Apparently, just before the characteriser is checked bit 1 at 0x61DF is checked and if zero the characteriser -check is bypassed. This may be something to look at for prototype ROMs and hacks. +ROM_START( m4unkjokc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "joker new 20p 6 or 3.bin", 0x0000, 0x010000, CRC(b8d77b97) SHA1(54f69823bb3fd9c2cca014dc7c51913b2d6c8058) ) +ROM_END -*/ +ROM_START( m4remag ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "remagv2", 0x0000, 0x010000, CRC(80d9c1c2) SHA1(c77d443d92084c324ef75575acca66ffbd9beef3) ) +ROM_END +ROM_START( m4rmg ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "rmgicdd", 0x0000, 0x010000, CRC(bd64be0d) SHA1(772b80619c7d514a7a253f35137896d6a73bf4c6) ) +ROM_END -WRITE8_MEMBER(mpu4_state::characteriser_w) -{ - int x; - int call=data; - LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X", space.device().safe_pcbase(),offset,data)); - if (!m_current_chr_table) - { - logerror("No Characteriser Table @ %04x\n", space.device().safe_pcbase()); - return; - } - - - - if (offset == 0) - { - { - if (call == 0) - { - m_prot_col = 0; - } - else - { - for (x = m_prot_col; x < 64; x++) - { - if (m_current_chr_table[(x)].call == call) - { - m_prot_col = x; - LOG_CHR(("Characteriser find column %02X\n",m_prot_col)); - break; - } - } - } - } - } - else if (offset == 2) - { - LOG_CHR(("Characteriser write 2 data %02X\n",data)); - // Rather than the search strategy, we can map the calls directly here. Note that they are hex versions of the square number series - switch (call) - { - case 0x00: - m_lamp_col = 0; - break; - - case 0x01: - m_lamp_col = 1; - break; - - case 0x04: - m_lamp_col = 2; - break; - - case 0x09: - m_lamp_col = 3; - break; - - case 0x10: - m_lamp_col = 4; - break; - - case 0x19: - m_lamp_col = 5; - break; - - case 0x24: - m_lamp_col = 6; - break; - - case 0x31: - m_lamp_col = 7; - break; - } - LOG_CHR(("Characteriser find 2 column %02X\n",m_lamp_col)); - } -} +ROM_START( m4wnud ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "wnudge.bin", 0x8000, 0x008000, CRC(1d935575) SHA1(c4177c41473c0fb511e0ee035961f55ad43be14d) ) +ROM_END +ROM_START( m4t266 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "t2 66.bin", 0x0000, 0x010000, CRC(5c99c6bb) SHA1(7b74e0e5207c00b31cb1859e0cc458c0412a1a07) ) +ROM_END -READ8_MEMBER(mpu4_state::characteriser_r) -{ - if (!m_current_chr_table) - { - logerror("No Characteriser Table @ %04x", space.device().safe_pcbase()); - - /* a cheat ... many early games use a standard check */ - int addr = space.device().state().state_int(M6809_X); - if ((addr>=0x800) && (addr<=0xfff)) return 0x00; // prevent recursion, only care about ram/rom areas for this cheat. - - uint8_t ret = space.read_byte(addr); - logerror(" (returning %02x)",ret); - - logerror("\n"); - - return ret; - } - - LOG_CHR(("Characteriser read offset %02X \n",offset)); - if (offset == 0) - { - LOG_CHR(("Characteriser read data %02X \n",m_current_chr_table[m_prot_col].response)); - return m_current_chr_table[m_prot_col].response; - } - - if (offset == 3) - { - LOG_CHR(("Characteriser read data off 3 %02X \n",m_current_chr_table[m_lamp_col+64].response)); - return m_current_chr_table[m_lamp_col+64].response; - } - return 0; -} +ROM_START( m4brnze ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bv25", 0x0000, 0x010000, CRC(5c66f460) SHA1(c7587a6e992549ad8814f77c65b33a17a3641431) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -/* -BwB Characteriser (CHR) +ROM_START( m4brnzea ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bv25v2", 0x0000, 0x010000, CRC(a675edb3) SHA1(a3c6ee6a0bfb301fed72b45ee8e363d77b8b8dbb) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -The BwB method of protection is considerably different to the Barcrest one, with any -incorrect behaviour manifesting in ridiculously large payouts. The hardware is the -same, however the main weakness of the software has been eliminated. +ROM_START( m4brnzeb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "bv55", 0x0000, 0x010000, CRC(93905bc9) SHA1(e8d3cd125dced43fc2cf23cbccc59110561d2a40) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -In fact, the software seems deliberately designed to mislead, but is (fortunately for -us) prone to similar weaknesses that allow a per game solution. +ROM_START( m4riotrp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "drt10.bin", 0x0000, 0x010000, CRC(a1badb8a) SHA1(871786ea4e65ecbf61c9a776100321253922d11e) ) -Project Amber performed a source analysis (available on request) which appears to make things work. -Said weaknesses (A Cheats Guide according to Project Amber) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "dblcsnd.bin", 0x0000, 0x080000, CRC(c90fa8ad) SHA1(a98f03d4b6f5892333279bff7537d4d6d887da62) ) +ROM_END -The common initialisation sequence is "00 04 04 0C 0C 1C 14 2C 5C 2C" - 0 1 2 3 4 5 6 7 8 -Using debug search for the first read from said string (best to find it first). -At this point, the X index on the CPU is at the magic number address. -The subsequent calls for each can be found based on the magic address - (0) = ( (BWBMagicAddress)) - (1) = ( (BWBMagicAddress + 1)) - (2) = ( (BWBMagicAddress + 2)) - (3) = ( (BWBMagicAddress + 4)) - (4) = ( (BWBMagicAddress - 5)) - (5) = ( (BWBMagicAddress - 4)) - (6) = ( (BWBMagicAddress - 3)) - (7) = ( (BWBMagicAddress - 2)) - (8) = ( (BWBMagicAddress - 1)) -These return the standard init sequence as above. -For ease of understanding, we use three tables, one holding the common responses -and two holding the appropriate call and response pairs for the two stages of operation -*/ -WRITE8_MEMBER(mpu4_state::bwb_characteriser_w) -{ - int x; - int call=data; - LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X \n", space.device().safe_pcbase(),offset,data)); - if (!m_current_chr_table) - fatalerror("No Characteriser Table @ %04x\n", space.device().safe_pcbase()); - - if ((offset & 0x3f)== 0)//initialisation is always at 0x800 - { - if (!m_chr_state) - { - m_chr_state=1; - m_chr_counter=0; - } - if (call == 0) - { - m_init_col ++; - } - else - { - m_init_col =0; - } - } - - m_chr_value = machine().rand(); - for (x = 0; x < 4; x++) - { - if (m_current_chr_table[(x)].call == call) - { - if (x == 0) // reinit - { - m_bwb_return = 0; - } - m_chr_value = bwb_chr_table_common[(m_bwb_return)]; - m_bwb_return++; - break; - } - } -} -READ8_MEMBER(mpu4_state::bwb_characteriser_r) -{ - LOG_CHR(("Characteriser read offset %02X \n",offset)); - - - if (offset ==0) - { - switch (m_chr_counter) - { - case 6: - case 13: - case 20: - case 27: - case 34: - return m_bwb_chr_table1[(((m_chr_counter + 1) / 7) - 1)].response; - - default: - if (m_chr_counter > 34) - { - m_chr_counter = 35; - m_chr_state = 2; - } - m_chr_counter ++; - return m_chr_value; - } - } - else - { - return m_chr_value; - } -} -/* Common configurations */ -WRITE8_MEMBER(mpu4_state::mpu4_ym2413_w) -{ - ym2413_device *ym2413 = machine().device<ym2413_device>("ym2413"); - if (ym2413) ym2413->write(space,offset,data); -} -READ8_MEMBER(mpu4_state::mpu4_ym2413_r) -{ -// ym2413_device *ym2413 = machine().device<ym2413_device>("ym2413"); -// if (ym2413) return ym2413->read(space,offset); - return 0xff; -} -void mpu4_state::mpu4_install_mod4yam_space(address_space &space) -{ - space.install_read_handler(0x0880, 0x0882, read8_delegate(FUNC(mpu4_state::mpu4_ym2413_r),this)); - space.install_write_handler(0x0880, 0x0881, write8_delegate(FUNC(mpu4_state::mpu4_ym2413_w),this)); -} -void mpu4_state::mpu4_install_mod4oki_space(address_space &space) -{ - pia6821_device *pia_ic4ss = space.machine().device<pia6821_device>("pia_ic4ss"); - ptm6840_device *ptm_ic3ss = space.machine().device<ptm6840_device>("ptm_ic3ss"); +#define M4SURF_EXTRAS \ + ROM_REGION( 0x200000, "msm6376", 0 ) \ + ROM_LOAD( "s_surf.sn1", 0x000000, 0x080000, CRC(f20a7d69) SHA1(7887230613b497dc71a60125dd1e265ebbc8eb23) ) \ + ROM_LOAD( "s_surf.sn2", 0x080000, 0x080000, CRC(6c4a9074) SHA1(3b993120156677de893e5dc1e0c5d6e0285c5570) ) - space.install_readwrite_handler(0x0880, 0x0883, read8_delegate(FUNC(pia6821_device::read), pia_ic4ss), write8_delegate(FUNC(pia6821_device::write), pia_ic4ss)); - space.install_read_handler(0x08c0, 0x08c7, read8_delegate(FUNC(ptm6840_device::read), ptm_ic3ss)); - space.install_write_handler(0x08c0, 0x08c7, write8_delegate(FUNC(mpu4_state::ic3ss_w),this)); -} +ROM_START( m4surf ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "s_surfin._pound5", 0x0000, 0x020000, CRC(5f800636) SHA1(5b1789890eea44e5275e13f360876374d862935f) ) + M4SURF_EXTRAS +ROM_END -void mpu4_state::mpu4_install_mod4bwb_space(address_space &space) -{ - space.install_readwrite_handler(0x0810, 0x0810, read8_delegate(FUNC(mpu4_state::bwb_characteriser_r),this),write8_delegate(FUNC(mpu4_state::bwb_characteriser_w),this)); - mpu4_install_mod4oki_space(space); -} +ROM_START( m4surfa ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "s_surfin.upd", 0x0000, 0x020000, CRC(d0bef9cd) SHA1(9d53bfe8d928b190202bf747c0d7bb4cc0ae0efd) ) + M4SURF_EXTRAS +ROM_END +ROM_START( m4surfb ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "s_surfin._pound15", 0x0000, 0x020000, CRC(eabce7fd) SHA1(4bb2bbcc7d2917eca72385a21ab85d2d94a882ec) ) + M4SURF_EXTRAS +ROM_END -void mpu4_state::mpu4_config_common() -{ - m_ic24_timer = timer_alloc(TIMER_IC24); - m_lamp_strobe_ext_persistence = 0; -} -MACHINE_START_MEMBER(mpu4_state,mod2) -{ - mpu4_config_common(); +ROM_START( m4wife ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "moy_wife.p1", 0x0000, 0x020000, CRC(293d35a6) SHA1(980a28ca5e9ec3ca2e1a5b34f658b622dca4cf50) ) - m_link7a_connected=0; - m_mod_number=2; -} + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + // missing? +ROM_END + +#define M4BLKGD_EXTRAS \ + ROM_REGION( 0x200000, "msm6376", 0 ) \ + ROM_LOAD( "blackgoldsnd1.bin", 0x000000, 0x080000, CRC(d251b59e) SHA1(960b81b87f0fb5000028c863892a273362cb897f) ) \ + ROM_LOAD( "blackgoldsnd2.bin", 0x080000, 0x080000, CRC(87cbcd1e) SHA1(a6cd186af7c5682e216f549b77735b9bf1b985ae) ) \ + ROM_LOAD( "blackgoldsnd3.bin", 0x100000, 0x080000, CRC(258f7b83) SHA1(a6df577d98ade8c5c5ff68ef891667e65e83ac17) ) +ROM_START( m4blkgd ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "blackgoldprg.bin", 0x0000, 0x080000, CRC(a04736b2) SHA1(9e060cc79e7922b38115f1412ed76f8c76deb917) ) + M4BLKGD_EXTRAS +ROM_END -MACHINE_START_MEMBER(mpu4_state,mpu4yam) -{ - address_space &space = m_maincpu->space(AS_PROGRAM); - mpu4_config_common(); +//Early rom banks empty? May need different loading +ROM_START( m4blkgda ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "blackgoldversion2.4.bin", 0x0000, 0x040000, CRC(fad4e360) SHA1(23c6a13e8d1ca307b0ef22edffed536675985aca) ) + M4BLKGD_EXTRAS +ROM_END - m_link7a_connected=0; - m_mod_number=4; - mpu4_install_mod4yam_space(space); -} +#define M4ZILL_EXTRAS \ + ROM_REGION( 0x200000, "msm6376", 0 ) \ + ROM_LOAD( "zillsnd.bin", 0x0000, 0x080000, CRC(171ed677) SHA1(25d63f4d9c64f13bec4feffa265c5b0c5f6be4ec) ) -MACHINE_START_MEMBER(mpu4_state,mpu4oki) -{ - address_space &space = m_maincpu->space(AS_PROGRAM); - mpu4_config_common(); +ROM_START( m4zill ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "zillprgh.bin", 0x0000, 0x080000, CRC(6f831f6d) SHA1(6ab6d7f1752d27bc216bc11533b90178ce188715) ) + M4ZILL_EXTRAS +ROM_END - m_link7a_connected=0; - m_mod_number=4; - mpu4_install_mod4oki_space(space); -} +ROM_START( m4zilla ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "zillprog.bin", 0x0000, 0x080000, CRC(0f730bab) SHA1(3ea82c8f7d62c70897a5c132273820c9f192cd72) ) + M4ZILL_EXTRAS +ROM_END -MACHINE_START_MEMBER(mpu4_state,mpu4bwb) -{ - address_space &space = m_maincpu->space(AS_PROGRAM); - mpu4_config_common(); - m_link7a_connected=0; - m_mod_number=4; - mpu4_install_mod4bwb_space(space); -} +#define M4HSTR_EXTRAS \ + ROM_REGION( 0x200000, "altmsm6376", 0 ) \ + ROM_LOAD( "happystreak.p1", 0x0000, 0x080000, CRC(b1f328ff) SHA1(2bc6605965cb5743a2f8b813d68cf1646a4bcac1) ) \ + ROM_REGION( 0x200000, "msm6376", 0 ) \ + ROM_LOAD( "happystreaksnd.p1", 0x0000, 0x080000, CRC(76cda195) SHA1(21a985cd6cf1f63f4aa799563099a0527a7c0ea2) ) \ + ROM_LOAD( "happystreaksnd.p2", 0x080000, 0x080000, CRC(f3b4c763) SHA1(7fd6230c13b66a16daad9d45935c7803a5a4c35c) ) -MACHINE_START_MEMBER(mpu4_state,mpu4cry) -{ - mpu4_config_common(); +ROM_START( m4hstr ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "h_s_v1_2.bin", 0x0000, 0x010000, CRC(ef3d3461) SHA1(aa5b1934ab1c6739f36ac7b55d3fda2c640fe4f4) ) + M4HSTR_EXTRAS +ROM_END - m_link7a_connected=0; - m_mod_number=4; -} +ROM_START( m4hstra ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "hs2_5.bin", 0x0000, 0x010000, CRC(f669a4c9) SHA1(46813ba7104c97eaa851b50019af9b80046d03b3) ) + M4HSTR_EXTRAS +ROM_END -/* CHR Tables */ - -static mpu4_chr_table andycp10c_data[72] = { -{0x00, 0x00},{0x1a, 0x14},{0x04, 0x04},{0x10, 0x54},{0x18, 0x4c},{0x0f, 0x20},{0x13, 0x50},{0x1b, 0x44}, -{0x03, 0x5c},{0x07, 0x78},{0x17, 0x70},{0x1d, 0x48},{0x36, 0x6c},{0x35, 0x60},{0x2b, 0x14},{0x28, 0x48}, -{0x39, 0x2c},{0x21, 0x6c},{0x22, 0x6c},{0x25, 0x28},{0x2c, 0x64},{0x29, 0x10},{0x31, 0x08},{0x34, 0x6c}, -{0x0a, 0x24},{0x1f, 0x5c},{0x06, 0x78},{0x0e, 0x34},{0x1c, 0x00},{0x12, 0x50},{0x1e, 0x00},{0x0d, 0x50}, -{0x14, 0x0c},{0x0a, 0x6c},{0x19, 0x2c},{0x15, 0x60},{0x06, 0x54},{0x0f, 0x00},{0x08, 0x58},{0x1b, 0x74}, -{0x1e, 0x00},{0x04, 0x14},{0x01, 0x4c},{0x0c, 0x60},{0x18, 0x1c},{0x1a, 0x74},{0x11, 0x4c},{0x0b, 0x64}, -{0x03, 0x5c},{0x17, 0x78},{0x10, 0x78},{0x1d, 0x78},{0x0e, 0x34},{0x07, 0x44},{0x12, 0x54},{0x09, 0x40}, -{0x0d, 0x50},{0x1f, 0x48},{0x16, 0x6c},{0x05, 0x28},{0x13, 0x60},{0x1c, 0x14},{0x02, 0x4c},{0x00, 0x00}, -{0x00, 0x04},{0x01, 0x58},{0x04, 0x14},{0x09, 0x58},{0x10, 0x50},{0x19, 0x1c},{0x24, 0x10},{0x31, 0x10} -}; - -static mpu4_chr_table ccelbr_data[72] = { -{0x00, 0x00},{0x1a, 0x84},{0x04, 0x8c},{0x10, 0xb8},{0x18, 0x74},{0x0f, 0x80},{0x13, 0x1c},{0x1b, 0xb4}, -{0x03, 0xd8},{0x07, 0x74},{0x17, 0x00},{0x1d, 0xd4},{0x36, 0xc8},{0x35, 0x78},{0x2b, 0xa4},{0x28, 0x4c}, -{0x39, 0xe0},{0x21, 0xdc},{0x22, 0xf4},{0x25, 0x88},{0x2c, 0x78},{0x29, 0x24},{0x31, 0x84},{0x34, 0xcc}, -{0x0a, 0xb8},{0x1f, 0x74},{0x06, 0x90},{0x0e, 0x48},{0x1c, 0xa0},{0x12, 0x1c},{0x1e, 0x24},{0x0d, 0x94}, -{0x14, 0xc8},{0x0a, 0xb8},{0x19, 0x74},{0x15, 0x00},{0x06, 0x94},{0x0f, 0x48},{0x08, 0x30},{0x1b, 0x90}, -{0x1e, 0x08},{0x04, 0x60},{0x01, 0xd4},{0x0c, 0x58},{0x18, 0xf4},{0x1a, 0x18},{0x11, 0x74},{0x0b, 0x80}, -{0x03, 0xdc},{0x17, 0x74},{0x10, 0xd0},{0x1d, 0x58},{0x0e, 0x24},{0x07, 0x94},{0x12, 0xd8},{0x09, 0x34}, -{0x0d, 0x90},{0x1f, 0x58},{0x16, 0xf4},{0x05, 0x88},{0x13, 0x38},{0x1c, 0x24},{0x02, 0xd4},{0x00, 0x00}, -{0x00, 0x00},{0x01, 0x50},{0x04, 0x00},{0x09, 0x50},{0x10, 0x10},{0x19, 0x40},{0x24, 0x04},{0x31, 0x00} -}; - - -static mpu4_chr_table gmball_data[72] = { -{0x00, 0x00},{0x1a, 0x0c},{0x04, 0x50},{0x10, 0x90},{0x18, 0xb0},{0x0f, 0x38},{0x13, 0xd4},{0x1b, 0xa0}, -{0x03, 0xbc},{0x07, 0xd4},{0x17, 0x30},{0x1d, 0x90},{0x36, 0x38},{0x35, 0xc4},{0x2b, 0xac},{0x28, 0x70}, -{0x39, 0x98},{0x21, 0xdc},{0x22, 0xdc},{0x25, 0x54},{0x2c, 0x80},{0x29, 0xb4},{0x31, 0x38},{0x34, 0xcc}, -{0x0a, 0xe8},{0x1f, 0xf8},{0x06, 0xd4},{0x0e, 0x30},{0x1c, 0x00},{0x12, 0x84},{0x1e, 0x2c},{0x0d, 0xc8}, -{0x14, 0xf8},{0x0a, 0x4c},{0x19, 0x58},{0x15, 0xd4},{0x06, 0xa8},{0x0f, 0x78},{0x08, 0x44},{0x1b, 0x0c}, -{0x1e, 0x48},{0x04, 0x50},{0x01, 0x98},{0x0c, 0xd4},{0x18, 0xb0},{0x1a, 0xa0},{0x11, 0xa4},{0x0b, 0x3c}, -{0x03, 0xdc},{0x17, 0xd4},{0x10, 0xb8},{0x1d, 0xd4},{0x0e, 0x30},{0x07, 0x88},{0x12, 0xe0},{0x09, 0x24}, -{0x0d, 0x8c},{0x1f, 0xf8},{0x16, 0xcc},{0x05, 0x70},{0x13, 0x90},{0x1c, 0x20},{0x02, 0x9c},{0x00, 0x00}, -{0x00, 0x00},{0x01, 0x18},{0x04, 0x08},{0x09, 0x10},{0x10, 0x00},{0x19, 0x18},{0x24, 0x08},{0x31, 0x00} -}; - - - - -static mpu4_chr_table grtecp_data[72] = { -{0x00, 0x00},{0x1a, 0x84},{0x04, 0xa4},{0x10, 0xac},{0x18, 0x70},{0x0f, 0x80},{0x13, 0x2c},{0x1b, 0xc0}, -{0x03, 0xbc},{0x07, 0x5c},{0x17, 0x5c},{0x1d, 0x5c},{0x36, 0xdc},{0x35, 0x5c},{0x2b, 0xcc},{0x28, 0x68}, -{0x39, 0xd0},{0x21, 0xb8},{0x22, 0xdc},{0x25, 0x54},{0x2c, 0x08},{0x29, 0x58},{0x31, 0x54},{0x34, 0x90}, -{0x0a, 0xb8},{0x1f, 0x5c},{0x06, 0x5c},{0x0e, 0x44},{0x1c, 0x84},{0x12, 0xac},{0x1e, 0xe0},{0x0d, 0xbc}, -{0x14, 0xcc},{0x0a, 0xe8},{0x19, 0x70},{0x15, 0x00},{0x06, 0x8c},{0x0f, 0x70},{0x08, 0x00},{0x1b, 0x84}, -{0x1e, 0xa4},{0x04, 0xa4},{0x01, 0xbc},{0x0c, 0xdc},{0x18, 0x5c},{0x1a, 0xcc},{0x11, 0xe8},{0x0b, 0xe0}, -{0x03, 0xbc},{0x17, 0x4c},{0x10, 0xc8},{0x1d, 0xf8},{0x0e, 0xd4},{0x07, 0xa8},{0x12, 0x68},{0x09, 0x40}, -{0x0d, 0x0c},{0x1f, 0xd8},{0x16, 0xdc},{0x05, 0x54},{0x13, 0x98},{0x1c, 0x44},{0x02, 0x9c},{0x00, 0x00}, -{0x00, 0x00},{0x01, 0x18},{0x04, 0x00},{0x09, 0x18},{0x10, 0x08},{0x19, 0x10},{0x24, 0x00},{0x31, 0x00} -}; - -static mpu4_chr_table oldtmr_data[72] = { -{0x00, 0x00},{0x1a, 0x90},{0x04, 0xc0},{0x10, 0x54},{0x18, 0xa4},{0x0f, 0xf0},{0x13, 0x64},{0x1b, 0x90}, -{0x03, 0xe4},{0x07, 0xd4},{0x17, 0x60},{0x1d, 0xb4},{0x36, 0xc0},{0x35, 0x70},{0x2b, 0x80},{0x28, 0x74}, -{0x39, 0xa4},{0x21, 0xf4},{0x22, 0xe4},{0x25, 0xd0},{0x2c, 0x64},{0x29, 0x10},{0x31, 0x20},{0x34, 0x90}, -{0x0a, 0xe4},{0x1f, 0xf4},{0x06, 0xc4},{0x0e, 0x70},{0x1c, 0x00},{0x12, 0x14},{0x1e, 0x00},{0x0d, 0x14}, -{0x14, 0xa0},{0x0a, 0xf0},{0x19, 0x64},{0x15, 0x10},{0x06, 0x84},{0x0f, 0x70},{0x08, 0x00},{0x1b, 0x90}, -{0x1e, 0x40},{0x04, 0x90},{0x01, 0xe4},{0x0c, 0xf4},{0x18, 0x64},{0x1a, 0x90},{0x11, 0x64},{0x0b, 0x90}, -{0x03, 0xe4},{0x17, 0x50},{0x10, 0x24},{0x1d, 0xb4},{0x0e, 0xe0},{0x07, 0xd4},{0x12, 0xe4},{0x09, 0x50}, -{0x0d, 0x04},{0x1f, 0xb4},{0x16, 0xc0},{0x05, 0xd0},{0x13, 0x64},{0x1c, 0x90},{0x02, 0xe4},{0x00, 0x00}, -{0x00, 0x00},{0x01, 0x00},{0x04, 0x00},{0x09, 0x00},{0x10, 0x00},{0x19, 0x10},{0x24, 0x00},{0x31, 0x00} -}; - -static const bwb_chr_table blsbys_data1[5] = { -//Magic number 724A - -// PAL Codes -// 0 1 2 3 4 5 6 7 8 -// ?? ?? 20 0F 24 3C 36 27 09 - - {0x67},{0x17},{0x0f},{0x24},{0x3c}, -}; - -static mpu4_chr_table blsbys_data[8] = { -{0xEF, 0x02},{0x81, 0x00},{0xCE, 0x00},{0x00, 0x2e}, -{0x06, 0x20},{0xC6, 0x0f},{0xF8, 0x24},{0x8E, 0x3c}, -}; - -// set percentage and other options. 2e 20 0f -// PAL Codes -// 0 1 2 3 4 5 6 7 8 -// 42 2E 20 0F 24 3C 36 27 09 - // 6 0 7 0 8 0 7 0 0 8 -//request 36 42 27 42 09 42 27 42 42 09 -//verify 00 04 04 0C 0C 1C 14 2C 5C 2C - -DRIVER_INIT_MEMBER(mpu4_state,m4_low_volt_alt) -{ - //Some games can't use the 50Hz circuit to check voltage issues, handle it here - m_low_volt_detect_disable =1; -} +ROM_START( m4hstrb ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "hs2_5p.bin", 0x0000, 0x010000, CRC(71c981aa) SHA1(5effe7487e7216078127d3dc4a0a7ad02ad84390) ) + M4HSTR_EXTRAS +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_aux1_invert) -{ - m_aux1_invert =1; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_aux2_invert) -{ - m_aux2_invert =1; -} +ROM_START( m4hstrcs ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "chs3_6.bin", 0x0000, 0x010000, CRC(d097ae0c) SHA1(bd78c14e7f057f173859bcb1db5e6a142d0c4062) ) + M4HSTR_EXTRAS +ROM_END + +ROM_START( m4hstrcsa ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "chs3_6p.bin", 0x0000, 0x010000, CRC(57378b6f) SHA1(cf1cf528b9790c1013d87ccf63dcbf59f365067f) ) + M4HSTR_EXTRAS +ROM_END + +ROM_START( m4hstrcsb ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "chs3_6pk.bin", 0x0000, 0x010000, CRC(f95f1afe) SHA1(fffa409e8c7148a840d5dedf490fd9f6975e9476) ) + M4HSTR_EXTRAS +ROM_END + +ROM_START( m4hstrcsc ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "chs3_6k.bin", 0x0000, 0x010000, CRC(7eff3f9d) SHA1(31dedb0d9476633e8eb947a687c7b8a94b0e182c) ) + M4HSTR_EXTRAS +ROM_END + +ROM_START( m4hstrcsd ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "chs_4_2.bin", 0x0000, 0x010000, CRC(ec148b65) SHA1(2d6252ce68719281f5597955227a1f662743f006) ) + M4HSTR_EXTRAS +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_door_invert) -{ - m_aux2_invert =1; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_small_extender) -{ - m_lamp_extender=SMALL_CARD; -} +#define M4DDB_EXTRAS \ + ROM_REGION( 0x200000, "msm6376", 0 ) \ + ROM_LOAD( "ddbsound1", 0x000000, 0x080000, CRC(47c87bd5) SHA1(c1578ae553c38e93235cea2142cb139170de2a7e) ) \ + ROM_LOAD( "ddbsound2", 0x080000, 0x080000, CRC(9c733ab1) SHA1(a83c3ebe99703bb016370a8caf76bdeaff5f2f40) ) +ROM_START( m4ddb ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "ddb3_1.bin", 0x0000, 0x010000, CRC(3b2da727) SHA1(8a677be3b82464d1bf1e97d22adad3b27374079f) ) + M4DDB_EXTRAS +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_large_extender_a) -{ - m_lamp_extender=LARGE_CARD_A; -} +ROM_START( m4ddba ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "ddb3_1p.bin", 0x0000, 0x010000, CRC(bc8d8244) SHA1(9b8e0706b3add42e5e4a8b6c6a2f80a333a2f49e) ) + M4DDB_EXTRAS +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_large_extender_b) -{ - m_lamp_extender=LARGE_CARD_B; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_large_extender_c) -{ - m_lamp_extender=LARGE_CARD_C; -} +ROM_START( m4hapfrt ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "hf1_1.bin", 0x0000, 0x010000, CRC(6c16cb05) SHA1(421b164c8410629956177355e505859757c97a6b) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_tubes) -{ - m_hopper = TUBES; -} +ROM_START( m4hapfrta ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "hf1_1p.bin", 0x0000, 0x010000, CRC(ebb6ee66) SHA1(1f9b67260e5becd013d95358cc89acb1099d655d) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_duart_a) -{ - m_hopper = HOPPER_DUART_A; -} +ROM_START( m4hapfrtb ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "hf1_4pk.bin", 0x0000, 0x010000, CRC(0944b3c6) SHA1(00cdb75dda4f8984f77806047ad79fe9a1a8760a) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_duart_b) -{ - m_hopper = HOPPER_DUART_B; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_duart_c) -{ - m_hopper = HOPPER_DUART_C; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_nonduart_a) -{ - m_hopper = HOPPER_NONDUART_A; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_nonduart_b) -{ - m_hopper = HOPPER_NONDUART_B; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_led_a) -{ - m_led_extender = CARD_A; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_led_b) -{ - m_led_extender = CARD_B; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_led_c) -{ - m_led_extender = CARD_C; -} -//TODO: Replace with standard six reels once sets are sorted out - is really six_reel_std -DRIVER_INIT_MEMBER(mpu4_state,m4altreels) -{ - m_reel_mux=SIX_REEL_1TO8; - m_reels = 6; - DRIVER_INIT_CALL(m4default_banks); -} -DRIVER_INIT_MEMBER(mpu4_state,m4default_reels) -{ - m_reel_mux=STANDARD_REEL; - m_reels = 4; -} +ROM_START( m4sunday ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "sunday_sport_v11", 0x0000, 0x010000, CRC(14147d59) SHA1(03b14f4f83a545b3252702267ac012b3be76013d) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_five_reel_std) -{ - m_reel_mux=FIVE_REEL_5TO8; - m_reels = 5; -} +ROM_START( m4jp777 ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "jpot71", 0x0000, 0x010000, CRC(f4564a05) SHA1(97d21e2268e5d99e6e51cb12c45e09445cff1f50) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_five_reel_rev) -{ - m_reel_mux=FIVE_REEL_8TO5; - m_reels = 5; -} +ROM_START( m4booze ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "boozecruise10_v10.bin", 0x0000, 0x010000, CRC(b37f752b) SHA1(166f7d17694689bd9d51d859c13ddafa1c6e5e7f) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_five_reel_alt) -{ - m_reel_mux=FIVE_REEL_3TO6; - m_reels = 5; -} +ROM_START( m4cbing ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "cherrybingoprg.bin", 0x0000, 0x010000, CRC(00c1d4f3) SHA1(626df7f2f597ed13c32ce0fa8846f2e27ca68eae) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) // not oki! + ROM_LOAD( "cherrybingosnd.p1", 0x000000, 0x100000, CRC(11bed9f9) SHA1(63ed45122dda8e412bb1eaeb967d8a0f925d4bde) ) + ROM_LOAD( "cherrybingosnd.p2", 0x100000, 0x100000, CRC(b2a7ec28) SHA1(307f19ffb46f4a2e8e93923ddb666e50de43a00e) ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_six_reel_std) -{ - m_reel_mux=SIX_REEL_1TO8; - m_reels = 6; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_six_reel_alt) -{ - m_reel_mux=SIX_REEL_5TO8; - m_reels = 6; -} -DRIVER_INIT_MEMBER(mpu4_state,m4_seven_reel) -{ - m_reel_mux=SEVEN_REEL; - m_reels = 7; -} +ROM_START( m4nod ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "nod.bin", 0x0000, 0x010000, CRC(bc738af5) SHA1(8df436139554ccfb48c4db0a32e3333dbf3c4f46) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) //region was called "upd" but machine is mod4oki? Which one is correct? + ROM_LOAD( "nodsnd.bin", 0x0000, 0x080000, CRC(2134494a) SHA1(3b665bf79567a71195b20e76c50b02707d15b78d) ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4_andycp10c) -{ - DRIVER_INIT_CALL(m4default); - DRIVER_INIT_CALL(m4_small_extender); - m_current_chr_table = andycp10c_data; -} -DRIVER_INIT_MEMBER(mpu4_state,m_oldtmr) -{ - DRIVER_INIT_CALL(m4_six_reel_std); - DRIVER_INIT_CALL(m4default_banks); - m_current_chr_table = oldtmr_data; -} -DRIVER_INIT_MEMBER(mpu4_state,m_ccelbr) -{ - DRIVER_INIT_CALL(m4default); - m_current_chr_table = ccelbr_data; -} +ROM_START( m4aliz ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD( "70000000.bin", 0x0000, 0x040000, CRC(56f64dd9) SHA1(11f990c9a6864a969dc9a4146e1ac2c963e3eb9b) ) -DRIVER_INIT_MEMBER(mpu4_state,m4gambal) -{ - DRIVER_INIT_CALL(m4default); - m_current_chr_table = gmball_data; -} + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "alizsnd.hi", 0x0000, 0x080000, CRC(c7bd937a) SHA1(cc4d85a3d4cdf57fa96c812a4cd78b599c7052ff) ) + ROM_LOAD( "alizsnd.lo", 0x080000, 0x04e15e, CRC(111cc111) SHA1(413efedbc9e85240df833c10d680b0e907da10b3) ) -DRIVER_INIT_MEMBER(mpu4_state,m_grtecp) -{ - m_current_chr_table = grtecp_data; -} + ROM_REGION( 0x200000, "misc", ROMREGION_ERASE00 ) // i think this is just the sound roms as intelhex + ROM_LOAD( "71000000.hi", 0x0000, 0x0bbe9c, CRC(867058c1) SHA1(bd980cb0bb3075854cc2e9b829c31f3742f4f1c2) ) + ROM_LOAD( "71000000.lo", 0x0000, 0x134084, CRC(53046751) SHA1(b8f9eca933315b497732c895f4311f62103344fc) ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m_blsbys) -{ - m_bwb_bank=1; - DRIVER_INIT_CALL(m4_five_reel_std); - m_bwb_chr_table1 = blsbys_data1; - m_current_chr_table = blsbys_data; - DRIVER_INIT_CALL(m4default_big); -} -DRIVER_INIT_MEMBER(mpu4_state,m4default_banks) -{ - //Initialise paging for non-extended ROM space - uint8_t *rom = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 4, &rom[0x01000], 0x10000); - membank("bank1")->set_entry(0); -} -DRIVER_INIT_MEMBER(mpu4_state,m4default_alt) -{ - m_reel_mux=STANDARD_REEL; - m_reels = 8; - DRIVER_INIT_CALL(m4default_banks); +ROM_START( m4c2 ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "ci2-0601.bin", 0x0000, 0x010000, CRC(84cc8aca) SHA1(1471e3ad9c9ba957b6cc99c204fe588cc55fbc50) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END - m_bwb_bank=0; -} -DRIVER_INIT_MEMBER(mpu4_state,m4default) -{ - DRIVER_INIT_CALL(m4default_reels); - m_bwb_bank=0; - m_aux1_invert=0; - m_aux2_invert=0; - m_door_invert=0; - DRIVER_INIT_CALL(m4default_banks); -} +ROM_START( m4coney ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "70000060.bin", 0x0000, 0x010000, CRC(fda208e4) SHA1(b1a243b2681faa03add4ab6e4df98814f9c52fc5) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -DRIVER_INIT_MEMBER(mpu4_state,m4default_big) -{ - address_space &space = m_maincpu->space(AS_PROGRAM); - m_aux1_invert=0; - m_aux2_invert=0; - m_door_invert=0; - - int size = memregion( "maincpu" )->bytes(); - if (size<=0x10000) - { - printf("Error: Extended banking selected on set <=0x10000 in size, ignoring\n"); - DRIVER_INIT_CALL(m4default_reels); - m_bwb_bank=0; - DRIVER_INIT_CALL(m4default_banks); - } - else - { - m_bwb_bank=1; - space.install_write_handler(0x0858, 0x0858, write8_delegate(FUNC(mpu4_state::bankswitch_w),this)); - space.install_write_handler(0x0878, 0x0878, write8_delegate(FUNC(mpu4_state::bankset_w),this)); - uint8_t *rom = memregion("maincpu")->base(); - - m_numbanks = size / 0x10000; - - m_bank1->configure_entries(0, m_numbanks, &rom[0x01000], 0x10000); - - m_numbanks--; - - // some Bwb games must default to the last bank, does anything not like this - // behavior? - // some Bwb games don't work anyway tho, they seem to dislike something else - // about the way the regular banking behaves, not related to the CB2 stuff - m_bank1->set_entry(m_numbanks); - } -} +ROM_START( m4goldnn ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "goldenyears10.bin", 0x0000, 0x020000, CRC(1074bac6) SHA1(967ee64f267a80017fc95bbc6c5a38354e9cab65) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "tgyosnd.p1", 0x000000, 0x080000, CRC(bda49b46) SHA1(fac143003641824bf0db4ac6841292e509fa00da) ) + ROM_LOAD( "tgyosnd.p2", 0x080000, 0x080000, CRC(43d28a0a) SHA1(5863e493e84641e4fabcd69e6402e3bcca87dde2) ) + ROM_LOAD( "tgyosnd.p3", 0x100000, 0x080000, CRC(b5b9eb68) SHA1(8d5a0a687dd7096da8dfd2a59c6fe96f4b1949f9) ) +ROM_END -READ8_MEMBER(mpu4_state::crystal_sound_r) -{ - return machine().rand(); -} -//this may be a YMZ280B -WRITE8_MEMBER(mpu4_state::crystal_sound_w) -{ - printf("crystal_sound_w %02x\n",data); -} -DRIVER_INIT_MEMBER(mpu4_state,m_frkstn) -{ - address_space &space = m_maincpu->space(AS_PROGRAM); - DRIVER_INIT_CALL(m4default_big); - space.install_read_handler(0x0880, 0x0880, read8_delegate(FUNC(mpu4_state::crystal_sound_r),this)); - space.install_write_handler(0x0881, 0x0881, write8_delegate(FUNC(mpu4_state::crystal_sound_w),this)); -} -// thanks to Project Amber for descramble information -static void descramble_crystal( uint8_t* region, int start, int end, uint8_t extra_xor) -{ - for (int i=start;i<end;i++) - { - uint8_t x = region[i]; - switch (i & 0x58) - { - case 0x00: // same as 0x08 - case 0x08: x = BITSWAP8( x^0xca , 3,2,1,0,7,4,6,5 ); break; - case 0x10: x = BITSWAP8( x^0x30 , 3,0,4,6,1,5,7,2 ); break; - case 0x18: x = BITSWAP8( x^0x89 , 4,1,2,5,7,0,6,3 ); break; - case 0x40: x = BITSWAP8( x^0x14 , 6,1,4,3,2,5,0,7 ); break; - case 0x48: x = BITSWAP8( x^0x40 , 1,0,3,2,5,4,7,6 ); break; - case 0x50: x = BITSWAP8( x^0xcb , 3,2,1,0,7,6,5,4 ); break; - case 0x58: x = BITSWAP8( x^0xc0 , 2,3,6,0,5,1,7,4 ); break; - } - region[i] = x ^ extra_xor; - } -} -DRIVER_INIT_MEMBER(mpu4_state,crystal) -{ - DRIVER_INIT_CALL(m_frkstn); - descramble_crystal(memregion( "maincpu" )->base(), 0x0000, 0x10000, 0x00); -} -DRIVER_INIT_MEMBER(mpu4_state,crystali) -{ - DRIVER_INIT_CALL(m_frkstn); - descramble_crystal(memregion( "maincpu" )->base(), 0x0000, 0x10000, 0xff); // invert after decrypt?! -} +ROM_START( m4mgpn ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD( "mgp15.p1", 0x0000, 0x010000, CRC(ec76233f) SHA1(aa8595c639c83026d7fe5c3a161f8b08ff9a8b46) ) -/* generate a 50 Hz signal (based on an RC time) */ -TIMER_DEVICE_CALLBACK_MEMBER(mpu4_state::gen_50hz) -{ - if (!m_low_volt_detect_disable) - { - /* Although reported as a '50Hz' signal, the fact that both rising and - falling edges of the pulse are used means the timer actually gives a 100Hz - oscillating signal.*/ - m_signal_50hz = m_signal_50hz?0:1; - m_pia4->ca1_w(m_signal_50hz); /* signal is connected to IC4 CA1 */ - } - update_meters();//run at 100Hz to sync with PIAs -} + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "mgpsnd.p1", 0x000000, 0x080000, CRC(d5f0b845) SHA1(6d97d0d4d07407bb0a51e1d62da95c664418a9e9) ) + ROM_LOAD( "mgpsnd.p2", 0x080000, 0x080000, CRC(cefeea06) SHA1(45142ca1bab898dc6f3c32e382ee9157132810a6) ) + ROM_LOAD( "mgpsnd.p3", 0x100000, 0x080000, CRC(be4b3bd0) SHA1(f14c08dc770a24db8bbd00a65d3edf6ee9895ca3) ) + ROM_LOAD( "mgpsnd.p4", 0x180000, 0x080000, CRC(d74b4b03) SHA1(a35c99040a72485a6c2d4a4fdfc203634f6a9ad0) ) +ROM_END + + + + + + + + +ROM_START( m4spotln ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "gsp01.p1", 0x0000, 0x020000, CRC(54c56a07) SHA1(27f21872a7ffe0c497983fa5bbb59e967bf48974) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) +ROM_END -static ADDRESS_MAP_START( mpu4_memmap, AS_PROGRAM, 8, mpu4_state ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x0800, 0x0810) AM_READWRITE(characteriser_r,characteriser_w) - AM_RANGE(0x0850, 0x0850) AM_READWRITE(bankswitch_r,bankswitch_w) /* write bank (rom page select) */ -/* AM_RANGE(0x08e0, 0x08e7) AM_READWRITE(68681_duart_r,68681_duart_w) */ //Runs hoppers - AM_RANGE(0x0900, 0x0907) AM_DEVREADWRITE("ptm_ic2", ptm6840_device, read, write)/* PTM6840 IC2 */ - AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE("pia_ic3", pia6821_device, read, write) /* PIA6821 IC3 */ - AM_RANGE(0x0b00, 0x0b03) AM_DEVREADWRITE("pia_ic4", pia6821_device, read, write) /* PIA6821 IC4 */ - AM_RANGE(0x0c00, 0x0c03) AM_DEVREADWRITE("pia_ic5", pia6821_device, read, write) /* PIA6821 IC5 */ - AM_RANGE(0x0d00, 0x0d03) AM_DEVREADWRITE("pia_ic6", pia6821_device, read, write) /* PIA6821 IC6 */ - AM_RANGE(0x0e00, 0x0e03) AM_DEVREADWRITE("pia_ic7", pia6821_device, read, write) /* PIA6821 IC7 */ - AM_RANGE(0x0f00, 0x0f03) AM_DEVREADWRITE("pia_ic8", pia6821_device, read, write) /* PIA6821 IC8 */ - AM_RANGE(0x1000, 0xffff) AM_ROMBANK("bank1") /* 64k paged ROM (4 pages) */ -ADDRESS_MAP_END - -#define MCFG_MPU4_STD_REEL_ADD(_tag)\ - MCFG_STEPPER_ADD(_tag)\ - MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ - MCFG_STEPPER_START_INDEX(1)\ - MCFG_STEPPER_END_INDEX(3)\ - MCFG_STEPPER_INDEX_PATTERN(0x00)\ - MCFG_STEPPER_INIT_PHASE(2) - -#define MCFG_MPU4_TYPE2_REEL_ADD(_tag)\ - MCFG_STEPPER_ADD(_tag)\ - MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ - MCFG_STEPPER_START_INDEX(4)\ - MCFG_STEPPER_END_INDEX(12)\ - MCFG_STEPPER_INDEX_PATTERN(0x00)\ - MCFG_STEPPER_INIT_PHASE(2) - -#define MCFG_MPU4_TYPE3_REEL_ADD(_tag)\ - MCFG_STEPPER_ADD(_tag)\ - MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ - MCFG_STEPPER_START_INDEX(92)\ - MCFG_STEPPER_END_INDEX(3)\ - MCFG_STEPPER_INDEX_PATTERN(0x00)\ - MCFG_STEPPER_INIT_PHASE(2) - -#define MCFG_MPU4_TYPE4_REEL_ADD(_tag)\ - MCFG_STEPPER_ADD(_tag)\ - MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ - MCFG_STEPPER_START_INDEX(93)\ - MCFG_STEPPER_END_INDEX(2)\ - MCFG_STEPPER_INDEX_PATTERN(0x00)\ - MCFG_STEPPER_INIT_PHASE(2) - -#define MCFG_MPU4_BWB_REEL_ADD(_tag)\ - MCFG_STEPPER_ADD(_tag)\ - MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ - MCFG_STEPPER_START_INDEX(96)\ - MCFG_STEPPER_END_INDEX(3)\ - MCFG_STEPPER_INDEX_PATTERN(0x00)\ - MCFG_STEPPER_INIT_PHASE(2) - -MACHINE_CONFIG_START( mpu4_std_3reel ) - MCFG_MPU4_STD_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type2_3reel ) - MCFG_MPU4_TYPE2_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type3_3reel ) - MCFG_MPU4_TYPE3_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type4_3reel ) - MCFG_MPU4_TYPE4_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_bwb_3reel ) - MCFG_MPU4_BWB_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_std_4reel ) - MCFG_MPU4_STD_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type2_4reel ) - MCFG_MPU4_TYPE2_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type3_4reel ) - MCFG_MPU4_TYPE3_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type4_4reel ) - MCFG_MPU4_TYPE4_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_bwb_4reel ) - MCFG_MPU4_BWB_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_std_5reel ) - MCFG_MPU4_STD_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type2_5reel ) - MCFG_MPU4_TYPE2_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type3_5reel ) - MCFG_MPU4_TYPE3_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type4_5reel ) - MCFG_MPU4_TYPE4_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_bwb_5reel ) - MCFG_MPU4_BWB_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_std_6reel ) - MCFG_MPU4_STD_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type2_6reel ) - MCFG_MPU4_TYPE2_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type3_6reel ) - MCFG_MPU4_TYPE3_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type4_6reel ) - MCFG_MPU4_TYPE4_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_bwb_6reel ) - MCFG_MPU4_BWB_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START( mpu4_std_7reel ) - MCFG_MPU4_STD_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel6") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) - MCFG_MPU4_STD_REEL_ADD("reel7") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type2_7reel ) - MCFG_MPU4_TYPE2_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel6") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) - MCFG_MPU4_TYPE2_REEL_ADD("reel7") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type3_7reel ) - MCFG_MPU4_TYPE3_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel6") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) - MCFG_MPU4_TYPE3_REEL_ADD("reel7") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_type4_7reel ) - MCFG_MPU4_TYPE4_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel6") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) - MCFG_MPU4_TYPE4_REEL_ADD("reel7") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_bwb_7reel ) - MCFG_MPU4_BWB_REEL_ADD("reel0") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel1") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel2") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel3") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel4") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel5") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel6") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) - MCFG_MPU4_BWB_REEL_ADD("reel7") - MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_common ) - MCFG_TIMER_DRIVER_ADD_PERIODIC("50hz", mpu4_state, gen_50hz, attotime::from_hz(100)) - - MCFG_MSC1937_ADD("vfd",0) - /* 6840 PTM */ - MCFG_DEVICE_ADD("ptm_ic2", PTM6840, MPU4_MASTER_CLOCK / 4) - MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0) - MCFG_PTM6840_OUT0_CB(WRITELINE(mpu4_state, ic2_o1_callback)) - MCFG_PTM6840_OUT1_CB(WRITELINE(mpu4_state, ic2_o2_callback)) - MCFG_PTM6840_OUT2_CB(WRITELINE(mpu4_state, ic2_o3_callback)) - MCFG_PTM6840_IRQ_CB(WRITELINE(mpu4_state, cpu0_irq)) - - MCFG_DEVICE_ADD("pia_ic3", PIA6821, 0) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic3_porta_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic3_portb_w)) - MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic3_ca2_w)) - MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic3_cb2_w)) - MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - - MCFG_DEVICE_ADD("pia_ic4", PIA6821, 0) - MCFG_PIA_READPB_HANDLER(READ8(mpu4_state, pia_ic4_portb_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic4_porta_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic4_portb_w)) - MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state,pia_ic4_ca2_w)) - MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state,pia_ic4_cb2_w)) - MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state,cpu0_irq)) - MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state,cpu0_irq)) - - MCFG_DEVICE_ADD("pia_ic5", PIA6821, 0) - MCFG_PIA_READPA_HANDLER(READ8(mpu4_state, pia_ic5_porta_r)) - MCFG_PIA_READPB_HANDLER(READ8(mpu4_state, pia_ic5_portb_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic5_porta_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic5_portb_w)) - MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic5_ca2_w)) - MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic5_cb2_w)) - MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - - MCFG_DEVICE_ADD("pia_ic6", PIA6821, 0) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic6_porta_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic6_portb_w)) - MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic6_ca2_w)) - MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic6_cb2_w)) - MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - - MCFG_DEVICE_ADD("pia_ic7", PIA6821, 0) - MCFG_PIA_READPB_HANDLER(READ8(mpu4_state, pia_ic7_portb_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic7_porta_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic7_portb_w)) - MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic7_ca2_w)) - MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic7_cb2_w)) - MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - - MCFG_DEVICE_ADD("pia_ic8", PIA6821, 0) - MCFG_PIA_READPA_HANDLER(READ8(mpu4_state, pia_ic8_porta_r)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic8_portb_w)) - MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic8_ca2_w)) - MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic8_cb2_w)) - MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) - - MCFG_DEVICE_ADD("meters", METERS, 0) - MCFG_METERS_NUMBER(8) - -MACHINE_CONFIG_END - -MACHINE_CONFIG_START( mpu4_common2 ) - MCFG_DEVICE_ADD("ptm_ic3ss", PTM6840, MPU4_MASTER_CLOCK / 4) - MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0) - MCFG_PTM6840_OUT0_CB(DEVWRITELINE("ptm_ic3ss", ptm6840_device, set_c2)) - MCFG_PTM6840_OUT1_CB(DEVWRITELINE("ptm_ic3ss", ptm6840_device, set_c1)) - //MCFG_PTM6840_OUT2_CB(DEVWRITELINE("ptm_ic3ss", ptm6840_device, set_g1)) - //MCFG_PTM6840_IRQ_CB(WRITELINE(mpu4_state, cpu1_ptm_irq)) - - MCFG_DEVICE_ADD("pia_ic4ss", PIA6821, 0) - MCFG_PIA_READPB_HANDLER(READ8(mpu4_state, pia_gb_portb_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_gb_porta_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_gb_portb_w)) - MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_gb_ca2_w)) - MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_gb_cb2_w)) -MACHINE_CONFIG_END - -/* machine driver for MOD 2 board */ -MACHINE_CONFIG_START( mpu4base ) - - MCFG_MACHINE_START_OVERRIDE(mpu4_state,mod2 ) - MCFG_MACHINE_RESET_OVERRIDE(mpu4_state,mpu4) - MCFG_CPU_ADD("maincpu", M6809, MPU4_MASTER_CLOCK/4) - MCFG_CPU_PROGRAM_MAP(mpu4_memmap) - - MCFG_FRAGMENT_ADD(mpu4_common) - - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - - MCFG_NVRAM_ADD_0FILL("nvram") - - MCFG_DEFAULT_LAYOUT(layout_mpu4) -MACHINE_CONFIG_END - - -MACHINE_CONFIG_DERIVED( mod2 , mpu4base ) - MCFG_SOUND_ADD("ay8913", AY8913, MPU4_MASTER_CLOCK/4) - MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) - MCFG_AY8910_RES_LOADS(820, 0, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_FRAGMENT_ADD(mpu4_std_6reel) -MACHINE_CONFIG_END - -MACHINE_CONFIG_DERIVED( mod2_alt , mpu4base ) - MCFG_SOUND_ADD("ay8913", AY8913, MPU4_MASTER_CLOCK/4) - MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) - MCFG_AY8910_RES_LOADS(820, 0, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_FRAGMENT_ADD(mpu4_type2_6reel) -MACHINE_CONFIG_END - - - -MACHINE_CONFIG_DERIVED( mod4yam, mpu4base ) - MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4yam) - - MCFG_FRAGMENT_ADD(mpu4_std_6reel) - - MCFG_SOUND_ADD("ym2413", YM2413, MPU4_MASTER_CLOCK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_DERIVED( mod4oki, mpu4base ) - MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki) - - MCFG_FRAGMENT_ADD(mpu4_common2) - MCFG_FRAGMENT_ADD(mpu4_std_6reel) - - MCFG_SOUND_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_DERIVED( mod4oki_alt, mpu4base ) - MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki) - MCFG_FRAGMENT_ADD(mpu4_common2) - MCFG_FRAGMENT_ADD(mpu4_type2_6reel) - MCFG_SOUND_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED( mod4oki_5r, mpu4base ) - MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki) - MCFG_FRAGMENT_ADD(mpu4_common2) - MCFG_FRAGMENT_ADD(mpu4_std_5reel) - MCFG_SOUND_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END +ROM_START( m4vivan ) + ROM_REGION( 0x40000, "maincpu", 0 ) + ROM_LOAD( "vlv.bin", 0x0000, 0x010000, CRC(f20c4858) SHA1(94bf19cfa79a1f5347ab61a80cbbce06942187a2) ) -MACHINE_CONFIG_DERIVED( bwboki, mpu4base ) - MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4bwb) - MCFG_FRAGMENT_ADD(mpu4_common2) - MCFG_FRAGMENT_ADD(mpu4_bwb_5reel) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) + ROM_LOAD( "vlvsound1.bin", 0x0000, 0x080000, CRC(ce4da47a) SHA1(7407f8053ee482db4d8d0732fdd7229aa531b405) ) + ROM_LOAD( "vlvsound2.bin", 0x0000, 0x080000, CRC(571c00d1) SHA1(5e7be40d3caae88dc3a580415f8ab796f6efd67f) ) +ROM_END - MCFG_SOUND_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED(mpu4crys, mod2 ) - MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4cry) - MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END + + + + +ROM_START( m4sunseta ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "b2512s.p1", 0x0000, 0x010000, CRC(8c509538) SHA1(eab6a1e44e77cb48cf490616facc74932acc93c5) ) + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "sunsetb.chr", 0x0000, 0x000048, CRC(f166963b) SHA1(5cc6ada61036d8dbeca470e9548f9f5d2bd545a8) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) +ROM_END + +ROM_START( m4sunsetb ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "b2512y.p1", 0x0000, 0x010000, CRC(65fa2cd9) SHA1(d2ab1ae25d5425a0788f86535a20d3ebe4a9db2b) ) + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "sunsetb.chr", 0x0000, 0x000048, CRC(f166963b) SHA1(5cc6ada61036d8dbeca470e9548f9f5d2bd545a8) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) +ROM_END + +ROM_START( m4sunsetc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sunboul-5p3.bin", 0x0000, 0x010000, CRC(5ccbf062) SHA1(cf587018511d1a06624d271f2fde4e40f16ec87c) ) + ROM_REGION( 0x48, "fakechr", 0 ) + ROM_LOAD( "sunsetb.chr", 0x0000, 0x000048, CRC(f166963b) SHA1(5cc6ada61036d8dbeca470e9548f9f5d2bd545a8) ) + ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) +ROM_END + +ROM_START( m4funh ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "funhouse.bin", 0x00000, 0x10000, CRC(4e342025) SHA1(288125ff5e3da7249d89dfcc3cd0915f791f7d43) ) + ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) // no idea if it uses an OKI +ROM_END + #define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) -#include "mpu4.hxx" -#include "mpu4avan.hxx" -#include "mpu4bwb.hxx" -#include "mpu4concept.hxx" -#include "mpu4crystal.hxx" -#include "mpu4empire.hxx" -#include "mpu4mdm.hxx" -#include "mpu4misc.hxx" -#include "mpu4mod2sw.hxx" -#include "mpu4mod4yam.hxx" -#include "mpu4sw.hxx" -#include "mpu4union.hxx" + +/* Barcrest */ +GAME( 198?, m4tst2, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Unit Test (Program 2)",MACHINE_MECHANICAL ) +GAME( 198?, m4clr, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Meter Clear ROM",MACHINE_MECHANICAL ) +GAME( 198?, m4rltst, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Reel Test (3.0)",MACHINE_MECHANICAL ) + + + +// other issues +GAME(199?, m4casmul ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Casino Multiplay (Barcrest) (MPU4)",GAME_FLAGS ) + + + +// barcrest, to split +GAME(199?, m4c9c ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Cloud Nine Club (Barcrest) (MPU4) (CNC 2.1)",GAME_FLAGS ) // doesn't boot +GAME(199?, m4ch30 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","unknown MPU4 'CH3 0.1' (Barcrest) (MPU4)",GAME_FLAGS ) + +// corrupt vfd (bwb?) +GAME(199?, m4clbx ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4clbxa ,m4clbx ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4clbxb ,m4clbx ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) + +GAME(199?, m4ringfr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Ring Of Fire (Barcrest) (MPU4)",GAME_FLAGS ) +GAME(199?, m4royjwl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Royal Jewels (Barcrest) (MPU4)",GAME_FLAGS ) + +// play but behavior isn't like barcrest +GAME(199?, m4crjwl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4crjwla ,m4crjwl ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4crjwlb ,m4crjwl ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4crjwlc ,m4crjwl ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) + +GAME(199?, m4crjwl2 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4crjwl2a,m4crjwl2 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4crjwl2b,m4crjwl2 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) + +GAME(199?, m4supbjc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) // set stake +GAME(199?, m4supbjca,m4supbjc ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) // set stake +GAME(199?, m4supbjcb,m4supbjc ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) // set stake +GAME(199?, m4supbjcc,m4supbjc ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) // set stake +GAME(199?, m4supbjcd,m4supbjc ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) // set stake + + + +// corrupt VFD (many XX) +GAME(199?, m4luckwb ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4luckwba ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4luckwbb ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4luckwbc ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) +GAME(199?, m4luckwbd ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) +GAME(199?, m4luckwbe ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 6)",GAME_FLAGS ) +GAME(199?, m4luckwbf ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 7)",GAME_FLAGS ) + + +// won't boot with current reel setup, not even in test mode +GAME(199?, m4maglin ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Magic Liner (Barcrest) (MPU4) (DMA2.1)",GAME_FLAGS ) +GAME(199?, m4magdrg ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Magic Dragon (Barcrest) (MPU4) (DMD1.0)",GAME_FLAGS ) +GAME(199?, m4clbveg ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4clbvega,m4clbveg ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4clbvegb,m4clbveg ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4clbvegc,m4clbveg ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) +GAME(199?, m4chasei ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4chaseia,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4chaseib,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4chaseic,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) +GAME(199?, m4chaseid,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) +GAME(199?, m4chaseie,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 6)",GAME_FLAGS ) +GAME(199?, m4chaseif,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 7)",GAME_FLAGS ) + +GAME(199?, m4bluedm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Blue Diamond (Barcrest) (MPU4) (DBD1.0)",GAME_FLAGS ) +GAME(199?, m4amhiwy ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","American Highway (Barcrest) (MPU4) (DAH)",GAME_FLAGS ) +GAME(199?, m4addrd ,m4addr ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Adders & Ladders (Barcrest) (DAL, Dutch) (MPU4)",GAME_FLAGS ) +GAME(199?, m4nudshf ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4nudshfa,m4nudshf ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4nudshfb,m4nudshf ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4nudshfc,m4nudshf ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) + +GAME(199?, m4prem ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Premier (Barcrest) (MPU4) (DPM)",GAME_FLAGS ) +GAME(199?, m4rdht ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Red Heat (Golden Nugget?) (Barcrest) (MPU4) (DRH 1.2)",GAME_FLAGS ) +GAME(199?, m4rwb ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Red White & Blue (Barcrest) (MPU4) (DRW)",GAME_FLAGS ) +GAME(199?, m4salsa ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Salsa (Barcrest) (MPU4) (DSA)",GAME_FLAGS ) +GAME(199?, m4techno ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Techno Reel (Barcrest) (MPU4) (DTE) (set 1)",GAME_FLAGS ) +GAME(199?, m4technoa,m4techno ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Techno Reel (Barcrest) (MPU4) (DTE) (set 2)",GAME_FLAGS ) +GAME(199?, m4twintm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Twin Timer (Barcrest) (MPU4) (D2T 1.1)",GAME_FLAGS ) +GAME(199?, m4blkbul ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Super Play (Black Bull?) (Czech) (Barcrest) [XSP] (MPU4)",GAME_FLAGS ) // complains about coin dip +GAME(199?, m4calicl ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4calicla,m4calicl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4caliclb,m4calicl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4caliclc,m4calicl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) +GAME(199?, m4calicld,m4calicl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) + +GAME(199?, m4bucks ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Bucks Fizz Club (Barcrest) (MPU4)",GAME_FLAGS ) + +GAME(199?, m4gldgat ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Golden Gate (Barcrest) [DGG, Dutch] (MPU4)",GAME_FLAGS ) +GAME(199?, m4hirise ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4hirisea,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4hiriseb,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4hirisec,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) +GAME(199?, m4hirised,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) +GAME(199?, m4hirisee,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 6)",GAME_FLAGS ) + +GAME(199?, m4nspot ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4nspota ,m4nspot ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4nspotb ,m4nspot ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) + +GAME(199?, m4supbf ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Super Bucks Fizz Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4supbfa ,m4supbf ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Super Bucks Fizz Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) + +GAME(199?, m4toma ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tomahawk (Barcrest) (MPU4)",GAME_FLAGS ) +GAME(199?, m4tropcl ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4tropcla,m4tropcl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4tropclb,m4tropcl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4tropclc,m4tropcl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) +GAME(199?, m4tropcld,m4tropcl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) + + +// these all seem quite close to Old Timer (unsurprising, many are called XX timer), the 'altreels' is just the same as the oldtimer init, but with the 'guess' CHR emulation +GAME(199?, m4holdtm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Hold Timer (Barcrest) (Dutch) (MPU4) (DHT)",GAME_FLAGS ) +GAME(199?, m4exgam ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Extra Game (Fairplay - Barcrest) (MPU4)",GAME_FLAGS ) +GAME(199?, m4brook ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Brooklyn (Barcrest) (MPU4) (PFT 1.8)",GAME_FLAGS ) +GAME(199?, m4roadrn ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Road Runner (Barcrest) (Dutch) (MPU4) (DRO1.9)",GAME_FLAGS ) +GAME(199?, m4showtm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Show Timer (Barcrest) (Dutch) (MPU4) (DSH1.3)",GAME_FLAGS ) +GAME(199?, m4steptm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Step Timer (Barcrest) (Dutch) (MPU4) (DST 1.1)",GAME_FLAGS ) +GAME(199?, m4toptim ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Top Timer (Barcrest) (Dutch) (MPU4) (DTT) (set 1)",GAME_FLAGS ) +GAME(199?, m4toptima,m4toptim ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Top Timer (Barcrest) (Dutch) (MPU4) (DTT) (set 2)",GAME_FLAGS ) + +GAME(199?, m4univ ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Universe (Barcrest) (Dutch) (MPU4) (DUN)",GAME_FLAGS ) +GAME(199?, m4wildtm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Wild Timer (Barcrest) (Dutch) (MPU4) (DWT 1.3)",GAME_FLAGS ) + + +GAME(199?, m4frtgm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Fruit Game (Barcrest) (MPU4)",GAME_FLAGS ) // SAMPLE EEPROM ALARM (and has a weird sample rom..) +GAME(199?, m4reeltm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Reel Timer (Barcrest) (MPU4) (DWT)",GAME_FLAGS ) // SAMPLE EEPROM ALARM +GAME(199?, m4fortcb ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) // INVALID ALARM +GAME(199?, m4fortcba,m4fortcb ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) // INVALID ALARM +GAME(199?, m4fortcbb,m4fortcb ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) // INVALID ALARM + + + +// GEEN TUBES (even in test mode) +GAME(199?, m4topdk ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Top Deck (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) + +// non-english sets +GAME(199?, m4magrep ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Magic Replay (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) +GAME(199?, m4nile ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Nile Jewels (Barcrest) (German) (MPU4) (GJN0.8)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4jokmil ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Jokers Millennium (Barcrest) (German) (MPU4)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4drac ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (set 1)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4draca ,m4drac ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (set 2)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4dracb ,m4drac ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (set 3)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 1)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwla,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 2)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwlb,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 3)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwlc,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 4)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwld,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 5)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwle,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 6)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwlf,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 7)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwlg,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 8)",GAME_FLAGS ) // DM1 SW ALM +GAME(199?, m4crzjwlh,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 9)",GAME_FLAGS ) // DM1 SW ALM + +GAME(199?, m4vegastg,m4vegast ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Vegas Strip (Barcrest) [German] (MPU4)",GAME_FLAGS ) // 1 DM SW ALM +GAME(199?, m4jok300 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Jokers 300 (Barcrest) (German?) (MPU4)",GAME_FLAGS ) // also contains crystal maze stuff?? +GAME(199?, m4luckdv ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Devil (Barcrest) [Czech] (MPU4)",GAME_FLAGS ) // AUX2 locked +GAME(199?, m4luckdvd,m4luckdv ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Devil (Barcrest) [Dutch] (MPU4) (DLD)",GAME_FLAGS ) +GAME(199?, m4luck7 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky 7 (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) // '1,2' error +GAME(199?, m4joljokh,m4joljok ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Jolly Joker (Barcrest) [Hungarian] (MPU4) (HJJ)",GAME_FLAGS ) +GAME(199?, m4hpyjok ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Happy Joker (Barcrest) (Dutch) (MPU4) (DHJ1.2)",GAME_FLAGS ) +GAME(199?, m4gldjok ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Golden Joker (Barcrest) (Dutch) (MPU4) (DGJ 1.2)",GAME_FLAGS ) +GAME(199?, m4ceptr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ceptor (Barcrest) (Dutch) (MPU4) (DCE 1.0)",GAME_FLAGS ) +GAME(199?, m4blkcat ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Black Cat (Barcrest) (Dutch) (MPU4) (DBL 1.4)",GAME_FLAGS ) +GAME(199?, m4gnsmk ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Gun Smoke (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) +GAME(199?, m4blkbuld,m4blkbul ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Gun Smoke (Barcrest) (Dutch, alt sound roms) (MPU4)",GAME_FLAGS ) // not sure either set of sound roms is right +GAME(199?, m4blkwhd ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Black & White (Barcrest) [Dutch] (MPU4) (DBW 1.1)",GAME_FLAGS ) +GAME(199?, m4oldtmr ,0 ,mod4oki_alt,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Old Timer (Barcrest) (Dutch) (MPU4) (DOT1.1)",GAME_FLAGS ) +GAME(199?, m4casot ,m4oldtmr ,mod4oki_alt,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Old Timer (Barcrest) (Dutch, alt 'Black and White' sound roms) (DOT1.1)",GAME_FLAGS ) // uses the same program??? +GAME(199?, m4jpmcla ,m4oldtmr ,mod4oki_alt,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Old Timer (Barcrest) (Dutch, alt 'JPM Classic' sound roms) (DOT1.1)",GAME_FLAGS ) // uses the same program??? +GAME(199?, m4tbplay ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 1)",GAME_FLAGS ) +GAME(199?, m4tbplaya,m4tbplay ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 2)",GAME_FLAGS ) +GAME(199?, m4tbplayb,m4tbplay ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 3)",GAME_FLAGS ) + +GAME(199?, m4vivalvd,m4vivalv ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Viva Las Vegas (Barcrest) [Dutch] (MPU4) (DLV)",GAME_FLAGS ) + +GAME(199?, m4toprn ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Top Run (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) // unique behavior (START UP IN countdown) + +GAME(199?, m4magtbo ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Magic Turbo (Barcrest) (MPU4)",GAME_FLAGS ) + +// bwb/nova? +GAME(199?, m4ordmnd ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Oriental Diamonds (Barcrest) (German) (MPU4)",GAME_FLAGS ) +// ? +GAME(199?, m4ptblkc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Pot Black Casino (Bwb - Barcrest) (MPU4)",GAME_FLAGS ) // main cpu crashes? + + +// badchr +GAME(199?, m4take5 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Take 5 (Barcrest) (MPU4)",GAME_FLAGS ) + +// REEL 1 FAULT +GAME(199?, m4twist ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twist Again (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT +GAME(199?, m4twista ,m4twist ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twist Again (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT +GAME(199?, m4twistb ,m4twist ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twist Again (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT + + + +// might need samples, but run silent with none +GAME(199?, m4lineup ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Line Up (Bwb - Barcrest) (MPU4) (set 1)",GAME_FLAGS ) // no sound with any system? +GAME(199?, m4lineupa ,m4lineup ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Line Up (Bwb - Barcrest) (MPU4) (set 2)",GAME_FLAGS ) // no sound with any system? + +GAME(199?, m4czne ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Cash Zone (Bwb) (MPU4)",GAME_FLAGS ) +GAME(199?, m4fourmr ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Four More (Bwb) (MPU4)",GAME_FLAGS ) // no sound with either system? +GAME(199?, m4holywd ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Hollywood (Bwb) (MPU4)",GAME_FLAGS ) +GAME(199?, m4specu ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Speculator Club (Bwb) (MPU4)",GAME_FLAGS ) // no sound with either system + + +GAME(199?, m4lazy ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Bwb","Lazy Bones (Bwb) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4lazya ,m4lazy ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Bwb","Lazy Bones (Bwb) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4lazyb ,m4lazy ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Bwb","Lazy Bones (Bwb) (MPU4) (set 3)",GAME_FLAGS ) + +GAME(199?, m4sunclb ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sun Club (Bwb) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4sunclba,m4sunclb ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sun Club (Bwb) (MPU4) (set 2)",GAME_FLAGS ) + +GAME(199?, m4sunscl ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sunset Club (Bwb) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4sunscla,m4sunscl ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sunset Club (Bwb) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4sunsclb,m4sunscl ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sunset Club (Bwb) (MPU4) (set 3)",GAME_FLAGS ) + +GAME(199?, m4bigban ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Big Bandit (Nova) (MPU4)",GAME_FLAGS ) +GAME(199?, m4crzcsn ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Crazy Casino (Nova) (MPU4)",GAME_FLAGS ) +GAME(199?, m4crzcav ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Crazy Cavern (Nova) (MPU4)",GAME_FLAGS ) +GAME(199?, m4dragon ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Dragon (Nova) (MPU4)",GAME_FLAGS ) +GAME(199?, m4hilonv ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Hi Lo Casino (Nova) (MPU4)",GAME_FLAGS ) +GAME(199?, m4octo ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Octopus (Nova) (MPU4)",GAME_FLAGS ) +GAME(199?, m4sctagt ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Secret Agent (Nova) (MPU4)",GAME_FLAGS ) + + + +/* Others */ + + +GAMEL(199?, m4aao, 0, mod4oki, mpu4, mpu4_state, m4aao , ROT0, "Eurotek","Against All Odds (Eurotek) (MPU4)",GAME_FLAGS, layout_m4aao ) +GAME(199?, m4bandgd, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Eurogames","Bands Of Gold (Eurogames) (MPU4)",GAME_FLAGS ) + +GAME(199?, m4bigben, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 1)",GAME_FLAGS ) +GAME(199?, m4bigbena, m4bigben, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 2)",GAME_FLAGS ) +GAME(199?, m4bigbenb, m4bigben, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 3)",GAME_FLAGS ) +GAME(199?, m4bigbend, m4bigben, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 4)",GAME_FLAGS ) +GAME(199?, m4bigbene, m4bigben, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 5)",GAME_FLAGS ) +GAME(199?, m4kqclub, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Newby","Kings & Queens Club (Newby) (MPU4)",GAME_FLAGS ) +GAME(199?, m4snookr, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Eurocoin","Snooker (Eurocoin) (MPU4)",GAME_FLAGS ) // works? +GAME(199?, m4stakex, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Leisurama","Stake X (Leisurama) (MPU4, set 1)",GAME_FLAGS ) // has issues with coins in 'separate bank' (default) mode, reel issues +GAME(199?, m4stakexa, m4stakex, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Leisurama","Stake X (Leisurama) (MPU4, set 2)",GAME_FLAGS ) // like above, but doesn't default to separate bank? +GAME(199?, m4boltbl, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 1)",GAME_FLAGS ) // Reel 1 Fault +GAME(199?, m4boltbla, m4boltbl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 2)",GAME_FLAGS ) +GAME(199?, m4boltblb, m4boltbl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 3)",GAME_FLAGS ) +GAME(199?, m4boltblc, m4boltbl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 4)",GAME_FLAGS ) +GAME(199?, m4stand2, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Stand To Deliver (DJE) (MPU4)",GAME_FLAGS ) // Reel 1 Fault +GAME(199?, m4dblchn, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "DJE","Double Chance (DJE) (MPU4)",GAME_FLAGS ) // Reels spin forever + +/* Unknown stuff that looks like it might be MPU4, but needs further verification, some could be bad */ + +GAME(199?, m4barcrz , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bar Crazy (unknown) (MPU4?)",GAME_FLAGS ) +GAME(199?, m4bonzbn , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bingo Bonanza (unknown) (MPU4?)",GAME_FLAGS ) +GAME(199?, m4cld02 , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'CLD 0.2C' (MPU4?)",GAME_FLAGS ) +GAME(199?, m4matdr , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Matador (unknown) (MPU4?)",GAME_FLAGS ) +GAME(199?, m4hslo , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'HOT 3.0' (MPU4?)",GAME_FLAGS ) +GAME(199?, m4unkjok , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'Joker' (MPU4?) (set 1)",GAME_FLAGS ) // bad chr +GAME(199?, m4unkjoka, m4unkjok,mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'Joker' (MPU4?) (set 2)",GAME_FLAGS ) // bad chr +GAME(199?, m4unkjokb, m4unkjok,mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'Joker' (MPU4?) (set 3)",GAME_FLAGS ) // bad chr +GAME(199?, m4unkjokc, m4unkjok,mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'Joker' (MPU4?) (set 4)",GAME_FLAGS ) // bad chr +GAME(199?, m4remag , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'ZTP 0.7' (MPU4?)",GAME_FLAGS ) +GAME(199?, m4rmg , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'CTP 0.4' (MPU4?)",GAME_FLAGS ) +GAME(199?, m4wnud , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'W Nudge' (MPU4?)",GAME_FLAGS ) +GAME(199?, m4t266 , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'TTO 1.1' (MPU4?)",GAME_FLAGS ) +GAME(199?, m4brnze , 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bronze Voyage (unknown) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4brnzea , m4brnze, mod4oki, mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bronze Voyage (unknown) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4brnzeb , m4brnze, mod4oki, mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bronze Voyage (unknown) (MPU4) (set 3)",GAME_FLAGS ) + +GAME(199?, m4riotrp , 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "<unknown>","Rio Tropico (unknown) (MPU4)",GAME_FLAGS ) + +/* *if* these are MPU4 they have a different sound system at least - The copyright strings in them are 'AET' tho (Ace?) - Could be related to the Crystal stuff? */ +GAME(199?, m4sbx , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 1)",GAME_FLAGS ) +GAME(199?, m4sbxa , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 2)",GAME_FLAGS ) +GAME(199?, m4sbxb , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 3)",GAME_FLAGS ) +GAME(199?, m4sbxc , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 4)",GAME_FLAGS ) +GAME(199?, m4sbxd , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 5)",GAME_FLAGS ) +GAME(199?, m4sbxe , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 6)",GAME_FLAGS ) + +GAME(199?, m4bclimb , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Bear Climber (MPU4?)",GAME_FLAGS ) +GAME(199?, m4captb , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Captain Bear (MPU4?)",GAME_FLAGS ) +GAME(199?, m4jungj , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 1)",GAME_FLAGS ) +GAME(199?, m4jungja , m4jungj, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 2)",GAME_FLAGS ) +GAME(199?, m4jungjb , m4jungj, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 3)",GAME_FLAGS ) +GAME(199?, m4jungjc , m4jungj, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 4)",GAME_FLAGS ) + +GAME(199?, m4fsx , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 1)",GAME_FLAGS ) +GAME(199?, m4fsxa , m4fsx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 2)",GAME_FLAGS ) +GAME(199?, m4fsxb , m4fsx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 3)",GAME_FLAGS ) + +GAME(199?, m4ccop , 0, mod4oki ,mpu4_cw,mpu4_state, m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 1)",GAME_FLAGS ) +GAME(199?, m4ccopa , m4ccop, mod4oki ,mpu4_cw,mpu4_state, m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 2)",GAME_FLAGS ) +GAME(199?, m4ccopb , m4ccop, mod4oki ,mpu4_cw,mpu4_state, m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 3)",GAME_FLAGS ) + +GAME(199?, m4ccc , 0, mod4oki ,mpu4_cw,mpu4_state, m4default, ROT0, "Coinworld","Criss Cross Crazy (Coinworld) (MPU4?)",GAME_FLAGS ) +GAME(199?, m4treel , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Turbo Reels (unknown) (MPU4?) (set 1)",GAME_FLAGS ) +GAME(199?, m4treela , m4treel, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Turbo Reels (unknown) (MPU4?) (set 2)",GAME_FLAGS ) + + + + +GAME(199?, m4surf, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4surfa,m4surf, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4surfb,m4surf, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4wife, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Money Or Yer Wife (Gemini) (MPU4)",GAME_FLAGS ) +GAME(199?, m4blkgd, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Black Gold (Gemini) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4blkgda,m4blkgd, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Black Gold (Gemini) (MPU4) (set 2)",GAME_FLAGS ) + +GAME(199?, m4zill, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Pure Leisure","Zillionare's Challenge (Pure Leisure) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4zilla, m4zill, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Pure Leisure","Zillionare's Challenge (Pure Leisure) (MPU4) (set 2)",GAME_FLAGS ) + +GAME(199?, m4hstr, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4hstra,m4hstr, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4hstrb,m4hstr, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 3)",GAME_FLAGS ) + +GAME(199?, m4hstrcs, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4hstrcsa,m4hstrcs, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4hstrcsb,m4hstrcs, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 3)",GAME_FLAGS ) +GAME(199?, m4hstrcsc,m4hstrcs, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 4)",GAME_FLAGS ) +GAME(199?, m4hstrcsd,m4hstrcs, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 5)",GAME_FLAGS ) + +GAME(199?, m4ddb, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Ding Dong Bells (Coinworld) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4ddba, m4ddb, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Ding Dong Bells (Coinworld) (MPU4) (set 2)",GAME_FLAGS ) + +GAME(199?, m4hapfrt, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 1)",GAME_FLAGS ) +GAME(199?, m4hapfrta, m4hapfrt, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 2)",GAME_FLAGS ) +GAME(199?, m4hapfrtb, m4hapfrt, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 3)",GAME_FLAGS ) + + +GAME(199?, m4sunday, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Pcp","Sunday Sport (Pcp) (MPU4)",GAME_FLAGS ) + +GAME(199?, m4jp777, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Cotswold Microsystems","Jackpot 777 (Cotswold Microsystems) (MPU4)",GAME_FLAGS ) /* Hopper Fault */ +GAME(199?, m4dnj , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Double Nudge (unknown) (MPU4) (set 1)",GAME_FLAGS ) /* Hopper Fault */ +GAME(199?, m4dnja , m4dnj, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Double Nudge (unknown) (MPU4) (set 2)",GAME_FLAGS ) /* Hopper Fault */ +GAME(199?, m4dnjb , m4dnj, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Double Nudge (unknown) (MPU4) (set 3)",GAME_FLAGS ) /* Hopper Fault */ + +GAME(199?, m4booze, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Extreme","Booze Cruise (Extreme) (MPU4)",GAME_FLAGS ) +GAME(199?, m4cbing, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Redpoint Systems","Cherry Bingo (Redpoint Systems) (MPU4)",GAME_FLAGS ) // custom sound system + + +GAME( 199?, m4nod , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Eurotech", "Nod And A Wink (Eurotech) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data? + + +// not sure about several of the nova ones +GAME( 199?, m4aliz , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Qps", "AlizBaz (Qps) (German) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) +GAME( 199?, m4coney , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Qps", "Coney Island (Qps) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) +GAME( 199?, m4crzjk , 0 , mod2 , mpu4 , mpu4_state, m4default , 0, "Nova?", "Crazy Jokers (Nova?) (MPU4)",GAME_FLAGS ) // COIN ALM +GAME( 199?, m4c2 , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova?", "Circus Circus 2 (Nova?) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // COIN ALM +// regular barcrest structure +GAME( 199?, m4vivan , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Viva Las Vegas (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) +GAME( 199?, m4spotln , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Spotlight (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) +GAME( 199?, m4mgpn , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Monaco Grand Prix (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) +GAME( 199?, m4goldnn , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Golden Years (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) + + + + +GAME(198?, m4funh , 0 , mod4oki ,mpu4 , mpu4_state, m4default , 0, "<unknown>", "Fun House (unknown) (MPU4)", GAME_FLAGS ) // TUNE ALARM (was in the SC1 Fun House set) + + +GAME(199?, m4sunseta ,m4sunset ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 1)",GAME_FLAGS ) +GAME(199?, m4sunsetb ,m4sunset ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 2)",GAME_FLAGS ) +GAME(199?, m4sunsetc ,m4sunset ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (OSB 0.2)",GAME_FLAGS ) // might be a mod 2 diff --git a/src/mame/drivers/mpu4.hxx b/src/mame/drivers/mpu4.hxx deleted file mode 100644 index 2379dbc6982..00000000000 --- a/src/mame/drivers/mpu4.hxx +++ /dev/null @@ -1,2771 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:David Haywood -/* these are the MPU4 set listings / set specific code, for hardware emulation see mpu4hw.c */ - -/* todo: driver inits (basic hw reel, protection configs etc.) should probably be moved here - once the actual code for them is cleaned up and can be put into neater structures - like bfm_sc4 - - due to the vast number of sets here this might be further split up by manufacturer - -*/ - -MACHINE_CONFIG_EXTERN( mod4oki ); -MACHINE_CONFIG_EXTERN( mod4yam ); -MACHINE_CONFIG_EXTERN( mpu4crys ); -MACHINE_CONFIG_EXTERN( bwboki ); -MACHINE_CONFIG_EXTERN( mod2 ); - -INPUT_PORTS_EXTERN( mpu4 ); -INPUT_PORTS_EXTERN( mpu4_cw ); -INPUT_PORTS_EXTERN( mpu4jackpot8tkn ); -INPUT_PORTS_EXTERN( mpu4jackpot8per ); -INPUT_PORTS_EXTERN( grtecp ); - -#include "m4aao.lh" - -ROM_START( m4tst2 ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) - ROM_LOAD( "ut2.p1", 0xE000, 0x2000, CRC(f7fb6575) SHA1(f7961cbd0801b9561d8cd2d23081043d733e1902)) -ROM_END - -ROM_START( m4clr ) - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) - ROM_LOAD( "meter-zero.p1", 0x8000, 0x8000, CRC(e74297e5) SHA1(49a2cc85eda14199975ec37a794b685c839d3ab9)) -ROM_END - -ROM_START( m4rltst ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "rtv.p1", 0x08000, 0x08000, CRC(7b78f3f2) SHA1(07ef8e6a08fd70ee48e4463672a1230ecc669532) ) -ROM_END - - - - - -ROM_START( m4addrd ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dal12.bin", 0x0000, 0x010000, CRC(4affa79a) SHA1(68bceab42b3616641a34a64a83306175ffc1ce32) ) -ROM_END - - - - - - - -ROM_START( m4amhiwy ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dah20", 0x0000, 0x010000, CRC(e3f92f00) SHA1(122c8a429a1f75dac80b90c4f218bd311813daf5) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "sdr6_1.snd", 0x000000, 0x080000, CRC(63ad952d) SHA1(acc0ac3898fcc281e2d7ba19ada52d727885fe06) ) - ROM_LOAD( "sdr6_2.snd", 0x080000, 0x080000, CRC(48d2ace5) SHA1(ada0180cc60266c0a6d981a019d66bbedbced21a) ) -ROM_END - - - - - - - - - -ROM_START( m4blkwhd ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dbw11.bin", 0x0000, 0x010000, CRC(337aaa2c) SHA1(26b12ea3ada9668293c6b44d62458590e5b4ac8f) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "bwsnd.bin", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) -ROM_END - - - -ROM_START( m4blkbul ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cbb08.epr", 0x0000, 0x010000, CRC(09376df6) SHA1(ba3b101accb6bbfbf75b9d22621dbda4efcb7769) ) -ROM_END - -ROM_START( m4blkcat ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dbl14.bin", 0x0000, 0x010000, CRC(c5db9532) SHA1(309b5122b4a1cb33bbccfb97faf4fa996d29432e) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "dblcsnd.bin", 0x0000, 0x080000, CRC(c90fa8ad) SHA1(a98f03d4b6f5892333279bff7537d4d6d887da62) ) - - ROM_REGION( 0x200000, "msm6376_alt", 0 ) // bad dump of some sound rom? - ROM_LOAD( "sdbl_1.snd", 0x0000, 0x18008e, CRC(e36f71ae) SHA1(ebb643cfa02d28550f2bef135ceefc902baf0df6) ) -ROM_END - - - - - - - -ROM_START( m4bluedm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dbd10.bin", 0x0000, 0x010000, CRC(b75e319d) SHA1(8b81e852e318cfde1f5ff2123e1ef7076b208253) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "bdsnd.bin", 0x0000, 0x080000, CRC(8ac4aae6) SHA1(70dba43b398010a8bd0d82cf91553d3f5e0921f0) ) -ROM_END - - - - -ROM_START( m4brook ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "brkl10.epr", 0x0000, 0x010000, CRC(857255b3) SHA1(cfd77918a19b2532a02b8bb3fa8e2716db31fb0e) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "brkl_snd.epr", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - - - -ROM_START( m4bucks ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "bufd.p1", 0x0000, 0x010000, CRC(02c575d3) SHA1(92dc7a0c298e4d2d19bf754a5c82cc15e4e6456c) ) - ROM_LOAD( "bufs.p1", 0x0000, 0x010000, CRC(e394ae40) SHA1(911077053c47cebba1bed9d359cd38bd676a46f1) ) -ROM_END - - -ROM_START( m4calicl ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ca2s.p1", 0x0000, 0x010000, CRC(fad153fd) SHA1(bd1f1a5c73624df45d01cb4853d87e998e434d7a) ) - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) -ROM_END - -ROM_START( m4calicla ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ca2d.p1", 0x0000, 0x010000, CRC(75eb8c6f) SHA1(1bb923d06dcfa24eaf9533c083f68f4bd840834f) ) - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) -ROM_END - -ROM_START( m4caliclb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ca2f.p1", 0x0000, 0x010000, CRC(6c53cf29) SHA1(2e58453891ab4faa17ef58a81c5f3c0618d046a5) ) - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) -ROM_END - -ROM_START( m4caliclc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cald.p1", 0x0000, 0x010000, CRC(296fdeeb) SHA1(7782c0c7d8f44e2c0d48cc24c13015241e47b9ec) ) - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) -ROM_END - -ROM_START( m4calicld ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cals.p1", 0x0000, 0x010000, CRC(28a1c5fe) SHA1(e8474df609ea7f3517780b54d6f493987aad3650) ) - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "ca2s.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) -ROM_END - - - - - -ROM_START( m4casmul ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "casinomultiplay.bin", 0x0000, 0x010000, CRC(2ebd1800) SHA1(d15e2593d17d8db9c6946af3366cf429ad291f76) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "casinomultiplaysnd.bin", 0x0000, 0x080000, CRC(be293e95) SHA1(bf0d419c898920a7546b542d8b205e25004ef04f) ) -ROM_END - -ROM_START( m4oldtmr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dot11.bin", 0x00000, 0x10000, CRC(da095666) SHA1(bc7654dc9da1f830a43f925db8079f27e18bb61e)) - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "m470.chr", 0x0000, 0x000048, CRC(10d302d4) SHA1(5858e550470a25dcd64efe004c79e6e9783bce07) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "sdot01.bin", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) -ROM_END - -ROM_START( m4casot ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "casrom.bin", 0x00000, 0x10000, CRC(da095666) SHA1(bc7654dc9da1f830a43f925db8079f27e18bb61e) ) // == old timer (aka b&wrom.bin) - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "caschar.chr", 0x0000, 0x000048, CRC(10d302d4) SHA1(5858e550470a25dcd64efe004c79e6e9783bce07) ) // ( aka b&wchrt.chr ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "cassound.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) // ( aka b&wsound.bin ) -ROM_END - - - -ROM_START( m4jpmcla ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "jcv2.epr", 0x00000, 0x10000, CRC(da095666) SHA1(bc7654dc9da1f830a43f925db8079f27e18bb61e) ) // == old timer - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "jcchr.chr", 0x0000, 0x000048, CRC(e370e271) SHA1(2b712dd3590c31356e8b0b62ffc64ff8ce444f73) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "sjcv2.snd", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) -ROM_END - - -ROM_START( m4ceptr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dce10.bin", 0x0000, 0x010000, CRC(c94d41ef) SHA1(58fdff2de8dd3ead3980f6f34362183d084ce917) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "cepsnd.p1", 0x000000, 0x080000, CRC(3a91784a) SHA1(7297ccec3264aa9f1e7b3a2841f5f8a1e4ca6c54) ) - ROM_LOAD( "cepsnd.p2", 0x080000, 0x080000, CRC(a82f0096) SHA1(45b6b5a2ae06b45add9cdbb9f5e6f834687b4902) ) -ROM_END - - -#define M4CHASEI_EXTRAS \ - ROM_REGION( 0x48, "fakechr", 0 ) \ - ROM_LOAD( "chaseinvaders.chr", 0x0000, 0x000048, CRC(d7703dcd) SHA1(16fd998d1b44f35c10e5486882aa7f2d018dc82b) ) \ - ROM_REGION( 0x100000, "msm6376", 0 ) \ - ROM_LOAD( "cha.s1", 0x000000, 0x080000, CRC(8200b6bc) SHA1(bcc4ffbddcdcc1dd994fe29e9b24e83272f59442) ) \ - ROM_LOAD( "cha.s2", 0x080000, 0x080000, CRC(542863fa) SHA1(501d66b2badb5036bb5dd8bac3cdb681f630a982) ) - -ROM_START( m4chasei ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ci2c.p1", 0x0000, 0x010000, CRC(fc49a2e1) SHA1(f4f02e168cd9bf0245c2b7340fe151da66f09c5c) ) - M4CHASEI_EXTRAS -ROM_END - -ROM_START( m4chaseia ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ch20p8pn.rom", 0x0000, 0x010000, CRC(712bd2e7) SHA1(0e83fa077f42a051aaa07a7e13196955b0ac840d) ) - M4CHASEI_EXTRAS -ROM_END - -ROM_START( m4chaseib ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "chin2010l", 0x0000, 0x010000, CRC(7fe97181) SHA1(1ccf65ff108bdaa46efcb3f831fccc953297b9ac) ) - M4CHASEI_EXTRAS -ROM_END - -ROM_START( m4chaseic ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ci2k.p1", 0x0000, 0x010000, CRC(8d715b8a) SHA1(5dd6f8d3d6710b0741df37af8792d942f41062d2) ) - M4CHASEI_EXTRAS -ROM_END - -ROM_START( m4chaseid ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ci2s.p1", 0x0000, 0x010000, CRC(8175e1e3) SHA1(9a4b0a0288508e7900ceac8bc3b245ac1f898b19) ) - M4CHASEI_EXTRAS -ROM_END - -ROM_START( m4chaseie ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ci2y.p1", 0x0000, 0x010000, CRC(80410946) SHA1(60a4f73eb9a35e5c246d8ef7b25bcf25b28bf8ed) ) - M4CHASEI_EXTRAS -ROM_END - -ROM_START( m4chaseif ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "chase invaders 8.bin", 0x0000, 0x010000, BAD_DUMP CRC(0bf6a8a0) SHA1(cea5ea40d71484a455615e14f6708b1bc06bbbe8) ) // bad prg (no vectors?) - M4CHASEI_EXTRAS -ROM_END - - - -ROM_START( m4c9c ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cncs.p1", 0x0000, 0x010000, CRC(10f15e2a) SHA1(c17ab13764d74302246984245485cb7692913b44) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) // should this set have an OKI? -ROM_END - - - - - - - - - - - -#define M4CLBVEG_EXTRAS \ - ROM_REGION( 0x48, "fakechr", 0 ) \ - ROM_LOAD( "cvegas.chr", 0x0000, 0x000048, CRC(a6c341b0) SHA1(c8c838c9bb1ced52889504b9cea8d88f1e7fa79f) ) \ - ROM_REGION( 0x100000, "msm6376", 0 ) \ - ROM_LOAD( "cvegass1.hex", 0x0000, 0x080000, CRC(13a8c857) SHA1(c66e10bca1ad54f467b9c5eacd502c54397c09b2) ) \ - ROM_LOAD( "cvegass2.hex", 0x0000, 0x080000, CRC(88b37145) SHA1(1c6c9ad2010e1688d3370d1f2a5ae83dc683b500) ) - -ROM_START( m4clbveg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "clas.p1", 0x0000, 0x010000, CRC(6aad03f0) SHA1(2f611cc6f020e334dc4b87d2d907727ba15ff7ff) ) - M4CLBVEG_EXTRAS -ROM_END - -ROM_START( m4clbvega ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "claf.p1", 0x0000, 0x010000, CRC(79b83184) SHA1(7319a405b2b0b274e03f5cd1465436f8548065e4) ) - M4CLBVEG_EXTRAS -ROM_END - -ROM_START( m4clbvegb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "clal.p1", 0x0000, 0x010000, CRC(db0bb5a2) SHA1(2735e02642fb92bb824e3b1f415a1a3ef13a856d) ) - M4CLBVEG_EXTRAS -ROM_END - -ROM_START( m4clbvegc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "clad.p1", 0x0000, 0x010000, CRC(4fa45cce) SHA1(58a5d6cc8608eb1aa453429e26eacea589afa524) ) - M4CLBVEG_EXTRAS -ROM_END - -#define M4CLBX_EXTRAS \ - ROM_REGION( 0x100000, "msm6376", 0 ) \ - ROM_LOAD( "cxs1.hex", 0x000000, 0x080000, CRC(4ce005f1) SHA1(ee0f59a9c7e0222dd63fa63ccff8f194abd01ddb) ) \ - ROM_LOAD( "cxs2.hex", 0x080000, 0x080000, CRC(495e0730) SHA1(7ba8150fbcf974ac494a82fd373ff02185543e35) ) - -ROM_START( m4clbx ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "clx12s.p1", 0x0000, 0x020000, CRC(6798c153) SHA1(e621e341a0fed1cb35637edb0769ae1cca72a663) ) - M4CLBX_EXTRAS -ROM_END - -ROM_START( m4clbxa ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "clx12d.p1", 0x0000, 0x020000, CRC(43e797ba) SHA1(fb2fc843176fe50c1039214d48815d6e9871ae27) ) - M4CLBX_EXTRAS -ROM_END - -ROM_START( m4clbxb ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "clx12f.p1", 0x0000, 0x020000, CRC(3e6a82fe) SHA1(01ef9a15a3cf9b1191c573b36fb5758e79c3adc1) ) - M4CLBX_EXTRAS -ROM_END - - - - -ROM_START( m4crzjk ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "crjok2.04.bin", 0x0000, 0x010000, CRC(838336d6) SHA1(6f36de20c930cbbff479af2667c11152c6adb43e) ) -ROM_END - -#define M4CRZJWL_EXTRAS \ - ROM_REGION( 0x180000, "msm6376", 0 ) \ - ROM_LOAD( "cjsound1.bin", 0x000000, 0x080000, CRC(b023f6b9) SHA1(04c362c6511442d3ab775a5ff2051bfe26d5e624) ) \ - ROM_LOAD( "cjsound2.bin", 0x080000, 0x080000, CRC(02563a43) SHA1(dfcee4e0fdf81c726c8e13278e7950459bcaab18) ) \ - ROM_LOAD( "cjsound3.bin", 0x100000, 0x080000, CRC(e722e438) SHA1(070f3772920fa64d5214843c313b27a5b2a4c105) ) - -ROM_START( m4crzjwl ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "cj11bin", 0x0000, 0x020000, CRC(208fda73) SHA1(8b15c197693ea7749bc961fe4e5e36b317f9f6f8) ) // crown jewels (german) - M4CRZJWL_EXTRAS -ROM_END - -ROM_START( m4crzjwla ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "cjexlow", 0x0000, 0x020000, CRC(07c227c1) SHA1(286341ed44ef7cd08ca411f2b3e6936b5e83a5f3) ) // crown jewels (german) - M4CRZJWL_EXTRAS -ROM_END - -ROM_START( m4crzjwlb ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "cjgerman", 0x0000, 0x020000, CRC(b090e690) SHA1(bdbe4041085c995761306280c15f782ea3bdc110) ) - M4CRZJWL_EXTRAS -ROM_END - -ROM_START( m4crzjwlc ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "cjj54.bin", 0x0000, 0x020000, CRC(16dc92e7) SHA1(b791535054d5864c7053243408a54accfa014bd1) ) - M4CRZJWL_EXTRAS -ROM_END - -ROM_START( m4crzjwld ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "gcn11", 0x0000, 0x020000, CRC(51493500) SHA1(901e60c1a7e9e628d723e199579fc82cf2e433e6) ) - M4CRZJWL_EXTRAS -ROM_END - -ROM_START( m4crzjwle ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "gcn111", 0x0000, 0x020000, CRC(b1152ce6) SHA1(1d236bad57ad38b11215efe44008bb8e4014939e) ) - M4CRZJWL_EXTRAS -ROM_END - -ROM_START( m4crzjwlf ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "gjv4", 0x0000, 0x020000, CRC(df63105d) SHA1(56e28adef9ec8921da7ab8045859e834731196c5) ) - M4CRZJWL_EXTRAS -ROM_END - -ROM_START( m4crzjwlg ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "gjv5", 0x0000, 0x020000, CRC(e4f0bab2) SHA1(1a13d97ff2c4fbae39327f2a5a8b110f2617857e) ) - M4CRZJWL_EXTRAS -ROM_END - -ROM_START( m4crzjwlh ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "cjg.p1", 0x0000, 0x020000, CRC(1f4743bf) SHA1(f9a0da2ed9cad5e6685c8a6d1d09e5d4bbcfacec) ) // Crown Jewels Deluxe (german) - M4CRZJWL_EXTRAS -ROM_END - - -#define M4CRJWL_EXTRAS \ - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) \ - /* Missing? or in above set? */ - -ROM_START( m4crjwl ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cjcf.p1", 0x0000, 0x010000, CRC(7feccc74) SHA1(4d1c7c6d2085492ee4205a7383ad7dc1de4e8d60) ) - M4CRJWL_EXTRAS -ROM_END - -ROM_START( m4crjwla ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cjcd.p1", 0x0000, 0x010000, CRC(cb83f226) SHA1(f09996436b3db3c8f0fe237884d9125be2b7855e) ) - M4CRJWL_EXTRAS -ROM_END - -ROM_START( m4crjwlb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cjcs.p1", 0x0000, 0x010000, CRC(1054e02d) SHA1(067705f20862f6cfc4334c74e0fab1a1016d427c) ) - M4CRJWL_EXTRAS -ROM_END - -ROM_START( m4crjwlc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cjn02.p1", 0x0000, 0x010000, CRC(a3d50e20) SHA1(15698e74a37d5f95a5634d48ae2a9a5d19faa2b6) ) - M4CRJWL_EXTRAS -ROM_END - -#define M4CRJWL2_EXTRAS \ - ROM_REGION( 0x48, "fakechr", 0 ) \ - ROM_LOAD( "chr.chr", 0x0000, 0x000048, CRC(c5812913) SHA1(d167b1f512c183cf01a1f4e1c1588ea0ae21331b) ) \ - ROM_REGION( 0x100000, "msm6376", 0 ) \ - ROM_LOAD( "cjcs1.hex", 0x000000, 0x080000, CRC(2ac3ba9f) SHA1(3332f29f81918c34aeec3da6f7d001dc9922840d) ) \ - ROM_LOAD( "cjcs2.hex", 0x080000, 0x080000, CRC(89838a9d) SHA1(502243cc0a14e63882b537f05c4cc0eb852e4a0c) ) - -ROM_START( m4crjwl2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cj214f.p1", 0x0000, 0x010000, CRC(7ee4d30c) SHA1(2bf702bc925c473f7e9eaeb5b3ae0b00e124161a) ) - M4CRJWL2_EXTRAS -ROM_END - -ROM_START( m4crjwl2a ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cj214d.p1", 0x0000, 0x010000, CRC(359e2a73) SHA1(c85eeebafca14e6f975953f5daf2772a62693051) ) - M4CRJWL2_EXTRAS -ROM_END - -ROM_START( m4crjwl2b ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cj214s.hex", 0x0000, 0x010000, CRC(296aa885) SHA1(045b02848b37e8a04d950d54301dc6888d6178ad) ) - M4CRJWL2_EXTRAS -ROM_END - - - -#define M4DRAC_EXTRAS \ - ROM_REGION( 0x200000, "msm6376", 0 ) \ - ROM_LOAD( "drasnd.p1", 0x000000, 0x080000, CRC(54c3821c) SHA1(1fcc62e2b127dd7f1d5d27a3afdf56dc27f122f8) ) \ - ROM_LOAD( "drasnd.p2", 0x080000, 0x080000, CRC(9096d2bc) SHA1(1b4c530b7b0fde869980d519255e2585c5461e13) ) \ - ROM_LOAD( "drasnd.p3", 0x100000, 0x080000, CRC(a07f412b) SHA1(cca8f5cfe620ece45ca40bf801f0643cd76547e9) ) \ - ROM_LOAD( "drasnd.p4", 0x180000, 0x080000, CRC(018ed789) SHA1(64202da2c542f5ef208faeb04945eb1a758d4746) ) - -ROM_START( m4drac ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "dra21.bin", 0x0000, 0x020000, CRC(23be387e) SHA1(08a78f4b8ddef46069d1c75113300b21e52338c1) ) - M4DRAC_EXTRAS -ROM_END - -ROM_START( m4draca ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "dra24.bin", 0x0000, 0x020000, CRC(3db112ae) SHA1(b5303e2a65476931d4769327ca62afd0f6a9eda7) ) - M4DRAC_EXTRAS -ROM_END - -ROM_START( m4dracb ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "dra27.p1", 0x0000, 0x020000, CRC(8a095175) SHA1(41006e298f1688499ce6820ec28196c7578684b9) ) - M4DRAC_EXTRAS -ROM_END - - - - - - -ROM_START( m4exgam ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "czep30.bin", 0x0000, 0x010000, CRC(4614e6f6) SHA1(5602a68e9b47394cb31bbcd49a9920e19af6242f) ) - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "ceg.chr", 0x0000, 0x000048, CRC(f694224e) SHA1(936ab5e349fa59accbb37959cce9519fd97f3978) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "sczep.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - - - -#define M4FORTCB_EXTRAS \ - ROM_REGION( 0x100000, "msm6376", 0 ) \ - ROM_LOAD( "cfosnd.p1", 0x000000, 0x080000, CRC(74bbf913) SHA1(52ddc89ab34b11ede2c0e9b9b27e119b0c1eb2d9) ) \ - ROM_LOAD( "cfosnd.p2", 0x080000, 0x080000, CRC(1b2bb79a) SHA1(5f19ea000f34bb404ed6c8ea5ec7b809ccb1ae36) ) -ROM_START( m4fortcb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cfod.p1", 0x0000, 0x010000, CRC(9d0e2b63) SHA1(cce871d2bbe486793de5de9fadfbddf67c382e5c) ) - M4FORTCB_EXTRAS -ROM_END - -ROM_START( m4fortcba ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cfof.p1", 0x0000, 0x010000, CRC(010b3c1f) SHA1(b44c22c21d22603b277138eabf803e6d46ad4aae) ) - M4FORTCB_EXTRAS -ROM_END - -ROM_START( m4fortcbb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cfos.p1", 0x0000, 0x010000, CRC(f3b47df4) SHA1(3ad674864ba3a24283af14caaf2c999d4fde11fc) ) - M4FORTCB_EXTRAS -ROM_END - - - - - - -ROM_START( m4frtgm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "fruit.bin", 0x0000, 0x010000, CRC(dbe44316) SHA1(15cd49dd2e6166f7a7668663f7fea802d6cbb12f) ) - - ROM_REGION( 0x800000, "msm6376", 0 ) /* this isn't OKI, or is corrupt (bad size) */ - ROM_LOAD( "fruitsnd.bin", 0x0000, 0x010000, CRC(86547dc7) SHA1(4bf64f22e84c0ee82d961b0ba64932b8bf6a521f) ) // matches 'Replay' on SC1 hardware, probably just belongs there.. or this is eurocoin with different sound hw here? -ROM_END - - - - - - - - - - - -ROM_START( m4gldgat ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dgg22.bin", 0x0000, 0x010000, CRC(ef8498df) SHA1(6bf164ef18445e83e4510a000bc924cbe916ad99) ) - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "m450.chr", 0x0000, 0x000048, CRC(fb7b2a45) SHA1(b6d5537bde9c05a3e79221a5577b8ae77bace9e6) ) -ROM_END - -ROM_START( m4gldjok ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dgj12.bin", 0x0000, 0x010000, CRC(93ee0c35) SHA1(5ae67b14f7f3d8528fa106519a8a27437c997a70) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "sdgj.snd", 0x0000, 0x080000, CRC(b6cd118b) SHA1(51c5d694ed0dfde8d3fd682f2471d83eec236736) ) -ROM_END - - - - - - -ROM_START( m4gnsmk ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dgu16", 0x0000, 0x010000, CRC(6aa23345) SHA1(45e129ec95b1a796f334bedd08469f2ab47a18f8) ) - - ROM_REGION( 0x200000, "msm6376", 0 ) - ROM_LOAD( "sdgu01.s1", 0x000000, 0x080000, CRC(bfb284a2) SHA1(860b98d54a3180fbb00b7b03feae049fb4cf9d7f) ) - ROM_LOAD( "sdgu01.s2", 0x080000, 0x080000, CRC(1a46ba28) SHA1(d7154e5f92be8631207620eb313b28990c6a1c7f) ) - ROM_LOAD( "sdgu01.s3", 0x100000, 0x080000, CRC(88bffcf4) SHA1(1da853193f6a22889edff5aafd9440c676a82ea6) ) - ROM_LOAD( "sdgu01.s4", 0x180000, 0x080000, CRC(a6160bef) SHA1(807f7d470728a479a55c782fca3df1eacd0b594c) ) - ROM_END - -ROM_START( m4blkbuld ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dgu16", 0x0000, 0x010000, CRC(6aa23345) SHA1(45e129ec95b1a796f334bedd08469f2ab47a18f8) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "dbbsnd.p1", 0x000000, 0x080000, CRC(a913ad0d) SHA1(5f39b661912da903ce8d6658b7848081b191ea56) ) - ROM_LOAD( "dbbsnd.p2", 0x080000, 0x080000, CRC(6a22b39f) SHA1(0e0dbeac4310e03490b665fff514392481ad265f) ) -ROM_END - - -ROM_START( m4hpyjok ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dhj12", 0x0000, 0x010000, CRC(982439d7) SHA1(8d27fcecf7a6a7fd774678580074f945675758f4) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "dhjsnd", 0x0000, 0x080000, CRC(8ac4aae6) SHA1(70dba43b398010a8bd0d82cf91553d3f5e0921f0) ) -ROM_END - -ROM_START( m4hirise ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hiix.p1", 0x0000, 0x010000, CRC(c68c816c) SHA1(2ec89d83f3b658700433fc165358290ce58eba64) ) -ROM_END - -ROM_START( m4hirisea ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hirs.p1", 0x0000, 0x010000, CRC(a38f771e) SHA1(c1502200671389a1fe6dcb9c043d22583d5991dc) ) -ROM_END - -ROM_START( m4hiriseb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hirs20dd", 0x0000, 0x010000, CRC(89941670) SHA1(28859adfa79dce53c348c63b46f6f5a068f2b2de) ) -ROM_END - -ROM_START( m4hirisec ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hirx.p1", 0x0000, 0x010000, CRC(4280a16b) SHA1(c9179ec17404a6f084679ad5f04e53a50f00af98) ) -ROM_END - -ROM_START( m4hirised ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hirxc.p1", 0x0000, 0x010000, CRC(1ad1d942) SHA1(91d02212606e22b280be9640433e013bc50e5ea8) ) -ROM_END - -ROM_START( m4hirisee ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hrise206", 0x0000, 0x010000, CRC(58b4bbdd) SHA1(0b76d27147fbadba97328eb9d2dc81cff9d576e0) ) -ROM_END - - - - - -ROM_START( m4holdtm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dht10.hex", 0x0000, 0x010000, CRC(217d382b) SHA1(a27dd107c554d4787967633dff998d3962ee0ea5) ) - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "ht01.chr", 0x0000, 0x000048, CRC(0fc2bb52) SHA1(0d0e47938f6e00166e7352732ddfb7c610f44db2) ) - ROM_LOAD( "m400.chr", 0x0000, 0x000048, CRC(8f00f720) SHA1(ea59fa2a3b016a7ae83be3caf863de87ce7aeffa) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "sun01.hex", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - - - - - - -ROM_START( m4jok300 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "cjo", 0x0000, 0x020000, CRC(386e99db) SHA1(5bb0b513ef63ffaedd98b8e9e7206658fe784fda) ) - - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASEFF ) - /* missing? */ -ROM_END - -ROM_START( m4jokmil ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "cjm03.epr", 0x0000, 0x020000, CRC(e5e4986e) SHA1(149b950a739ad308f7759927c344de8193ce67c5) ) - - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASEFF ) - /* missing? */ -ROM_END - - - - - - - -ROM_START( m4joljokh ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "jollyjokerhungarian.bin", 0x0000, 0x010000, CRC(85b6a406) SHA1(e277f9d3b62faead04d65efbc06de7f4a50ae38d) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "jollyjokerhungariansnd.bin", 0x0000, 0x080000, CRC(93460383) SHA1(2b179a1dde09ebdfe8c84641899df7be87d443e5) ) -ROM_END - - - - - - - - - -ROM_START( m4lineup ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lineup5p1.bin", 0xc000, 0x004000, CRC(9ba9edbd) SHA1(385e01816b5631b6896e85343ae96b3c36f9647a) ) - ROM_LOAD( "lineup5p2.bin", 0x8000, 0x004000, CRC(e9e4dfb0) SHA1(46a0efa84770036366c7a6a33ef1d42c7b2b782b) ) - ROM_LOAD( "lineup5p3.bin", 0x6000, 0x002000, CRC(86623376) SHA1(e29442bfcd401361287852b87673368322e946b5) ) -ROM_END - -ROM_START( m4lineupa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lu2_10p1.bin", 0xc000, 0x004000, CRC(2fb89062) SHA1(55e86de8fd0d36cca9aab8ad5aae7b4f5a62b940) ) - ROM_LOAD( "lu2_10p2.bin", 0x8000, 0x004000, CRC(9d820af2) SHA1(63d27df91f80e47eb8c9685fcd2c3eff902a2ef8) ) - ROM_LOAD( "lu2_10p3.bin", 0x6000, 0x002000, CRC(8c8a210c) SHA1(2599d979f1a62e9ef6acc70d0ad5c9b4a65d712a) ) -ROM_END - - -ROM_START( m4luck7 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dl716.bin", 0x0000, 0x010000, CRC(141b23a9) SHA1(3bfb82ea0ee4104bd8739b545aba617f84bef770) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "dl7snd.bin", 0x0000, 0x080000, CRC(c90fa8ad) SHA1(a98f03d4b6f5892333279bff7537d4d6d887da62) ) -ROM_END - -ROM_START( m4luckdv ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cld_16.bin", 0x0000, 0x010000, CRC(89f63938) SHA1(8d3a5628e2c0bf39784afe2f00a007d40ea35423) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "cld_snd1.snd", 0x000000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) - ROM_LOAD( "cld_snd2.snd", 0x080000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - -ROM_START( m4luckdvd ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dld13", 0x0000, 0x010000, CRC(b8ceb29b) SHA1(84b6ebad300214610635fb8141d18de2b7065435) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "sdld01.snd", 0x000000, 0x080000, CRC(9b035fa6) SHA1(51b7e5bc3abdf4f1beba2347146a91a2b3f4de35) ) -ROM_END - - -#define M4LUCKWB_EXTRAS \ - ROM_REGION( 0x100000, "msm6376", 0 ) /* these are all different sound roms... */ \ - ROM_LOAD( "lwbs3.bin", 0x0000, 0x07dc89, CRC(ee102376) SHA1(3fed581a4654acf285dd430fbfbac33cd67411b8) ) \ - ROM_LOAD( "lwbs7.bin", 0x0000, 0x080000, CRC(5d4177c7) SHA1(e13f145885bb719b0021ae4ce289261a3eaa2e18) ) \ - ROM_LOAD( "lwbs8.bin", 0x0000, 0x080000, CRC(187cdf5b) SHA1(87ec189af27c95f278a7531ec13df53a08889af8) ) \ - ROM_LOAD( "lwbs9.bin", 0x0000, 0x080000, CRC(2e02b617) SHA1(2502a1d2cff155a7fc5148e23a4723d4d60e9d42) ) - -ROM_START( m4luckwb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lwb10.bin", 0x0000, 0x010000, CRC(6d43a14e) SHA1(267aba1a01bfd5f0eaa7683d041d5fcb2d301934) ) - M4LUCKWB_EXTRAS -ROM_END - -ROM_START( m4luckwba ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lwb15.bin", 0x0000, 0x010000, CRC(b5af8cb2) SHA1(474975b83803627ad3ac4217d8cecb2d2db16fec) ) - M4LUCKWB_EXTRAS -ROM_END - -ROM_START( m4luckwbb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lwb21.bin", 0x0000, 0x010000, CRC(6c570733) SHA1(7488318ca9689371e4f80be0a0fddd8ad141733e) ) - M4LUCKWB_EXTRAS -ROM_END - -ROM_START( m4luckwbc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lwb22.bin", 0x0000, 0x010000, CRC(05b952a7) SHA1(952e328b280a18c1ffe253b6a56f2b5e893b1b72) ) - M4LUCKWB_EXTRAS -ROM_END - -ROM_START( m4luckwbd ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lwb27.bin", 0x0000, 0x010000, CRC(9d6b6637) SHA1(65bad12cd08de128ca31c9488e32e3cebfb8eedb) ) - M4LUCKWB_EXTRAS -ROM_END - -ROM_START( m4luckwbe ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lwb6.bin", 0x0000, 0x010000, CRC(8e7d4594) SHA1(4824a9a4628585a170c41e00f7b3fcb8a2330c02) ) - M4LUCKWB_EXTRAS -ROM_END - -ROM_START( m4luckwbf ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "lwb7.bin", 0x0000, 0x010000, CRC(8e651705) SHA1(bd4d09d586d14759a17d4d7d4016c427f3eef015) ) - M4LUCKWB_EXTRAS -ROM_END - - - - -ROM_START( m4magdrg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dmd10.bin", 0x0000, 0x010000, CRC(9cc4f2f8) SHA1(46a90ffa18d35ad2b06542f91120c02bc34f0c40) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "mdsnd.bin", 0x000000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - -ROM_START( m4maglin ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dma21.bin", 0x0000, 0x010000, CRC(836a25e6) SHA1(5f83bb8a2c77dd3b02724c076d6b37d2c1c93b93) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "mlsound1.p1", 0x000000, 0x080000, CRC(ff8749ff) SHA1(509b53f09cdfe5ee865e60ab42fd578586ac53ea) ) - ROM_LOAD( "mlsound2.p2", 0x080000, 0x080000, CRC(c8165b6c) SHA1(7c5059ee8630da31fc3ad50d84a4730297757d46) ) -ROM_END - -ROM_START( m4magrep ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dmr13.bin", 0x0000, 0x010000, CRC(c3015da3) SHA1(23cd505eedf666c012e4064a5fcf5a983f098e83) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "mrdsound.bin", 0x000000, 0x080000, CRC(9b035fa6) SHA1(51b7e5bc3abdf4f1beba2347146a91a2b3f4de35) ) -ROM_END - - - - - - - - - - - -ROM_START( m4nspot ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ns2s.p1", 0x0000, 0x010000, CRC(ba0f5a81) SHA1(7015176d4528636cb8a753249c824c37941e8eae) ) -ROM_END - -ROM_START( m4nspota ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ns2d.p1", 0x0000, 0x010000, CRC(5e66b7e0) SHA1(e82044e3c1e5cf3a2baf1fde7b7ab8b6e221d360) ) -ROM_END - -ROM_START( m4nspotb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "nits.p1", 0x0000, 0x010000, CRC(47c965e6) SHA1(41a337a9a367c4e704a60e32d56b262d03f97b59) ) -ROM_END - -ROM_START( m4nile ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "gjn08.p1", 0x0000, 0x020000, CRC(2bafac0c) SHA1(363d08f798b5bea409510b1a9415098a69f19ee0) ) - - ROM_REGION( 0x200000, "msm6376", 0 ) - ROM_LOAD( "gjnsnd.p1", 0x000000, 0x080000, CRC(1d839591) SHA1(2e4ba74f96e7c0592b85409a3f50ec81e00e064c) ) - ROM_LOAD( "gjnsnd.p2", 0x080000, 0x080000, CRC(e2829c42) SHA1(2139c1625ad163cce99a522c2cf02ee47a8f9007) ) - ROM_LOAD( "gjnsnd.p3", 0x100000, 0x080000, CRC(db084eb4) SHA1(9b46a3cb16974942b0edd25b1b080d30fc60c3df) ) - ROM_LOAD( "gjnsnd.p4", 0x180000, 0x080000, CRC(da785b0a) SHA1(63358ab197eb1de8e489a9fd6ffbc2039efc9536) ) -ROM_END - - - - -ROM_START( m4nudshf ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "nusx.p1", 0x0000, 0x010000, CRC(87caab84) SHA1(e2492ad0d25ded4d760c4cbe05e9b51ca1a10544) ) -ROM_END - -ROM_START( m4nudshfa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "nus6", 0x0000, 0x010000, CRC(017c5354) SHA1(07491e4b03ab62ad923f8479300c1af4633e3e8c) ) -ROM_END - -ROM_START( m4nudshfb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "nuss.bin", 0x0000, 0x010000, CRC(d3b860ee) SHA1(d5d1262c715e4684748b0cae708eeed31b1dc50f) ) -ROM_END - -ROM_START( m4nudshfc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "nusxc.p1", 0x0000, 0x010000, CRC(e2557b45) SHA1(a9d1514d4fe3897f6fcef22a5039d6bdff8126ff) ) -ROM_END - - - -ROM_START( m4ordmnd ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "rab01.p1", 0x0000, 0x020000, CRC(99964fe7) SHA1(3745d09e7a4f417c8e85270d3ffec3e37ee1344d) ) - - ROM_REGION( 0x200000, "msm6376", 0 ) - ROM_LOAD( "odsnd1.bin", 0x000000, 0x080000, CRC(d746bae4) SHA1(293e1dc9edf88a183cc23dbb4576cefbc8f9d028) ) - ROM_LOAD( "odsnd2.bin", 0x080000, 0x080000, CRC(84ace1f4) SHA1(9cc70e59e9d26006870ea1cc522de33e71b71692) ) - ROM_LOAD( "odsnd3.bin", 0x100000, 0x080000, CRC(b1b12def) SHA1(d8debf8cfb3af2157d5d1571927588dc1c8d07b6) ) -ROM_END - - -ROM_START( m4ptblkc ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "potblackcasinoprg.bin", 0x0000, 0x020000, CRC(29190084) SHA1(c7a778331369c0fac796ef3e306e12c98605f365) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "potblackcasinosnd.p1", 0x000000, 0x080000, CRC(72a3331d) SHA1(b7475ba0ad86a6277e3d4f7b4311a98f3fc29802) ) - ROM_LOAD( "potblackcasinosnd.p2", 0x080000, 0x080000, CRC(c2460eec) SHA1(7c62fbc69ffaa788bf3839e37a75a812a7b8caef) ) -ROM_END - - - - - -ROM_START( m4prem ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dpm14.bin", 0x0000, 0x010000, CRC(de344759) SHA1(d3e7514da83bbf1eba63661fb0675a6230af93cd) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "dpms.bin", 0x0000, 0x080000, CRC(93fd4253) SHA1(69feda7ffc56defd515c9cd1ce204af3d9731a3f) ) -ROM_END - - - - - - - - - - - - - - - - - - - -ROM_START( m4rdht ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "drh12", 0x0000, 0x010000, CRC(b26cd308) SHA1(4e29f6cce773232a1c43cd2fb3ce9b844c446bb8) ) // aka gdjb - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "drh_1.snd", 0x0000, 0x080000, CRC(f652cd0c) SHA1(9ce986bc12bcf22a57e065329e82671d19cc96d7) ) // aka gn.snd -ROM_END - - - - - - - -ROM_START( m4rwb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "drw14.bin", 0x0000, 0x010000, CRC(22c30ebe) SHA1(479f66732aac56dae60c80d11f05c084865f9389) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "rwb_1.snd", 0x000000, 0x080000, CRC(e0a6def5) SHA1(e3867b83e588fd6a9039b8d45186480a9d0433ea) ) - ROM_LOAD( "rwb_2.snd", 0x080000, 0x080000, CRC(54a2b2fd) SHA1(25875ff873bf22df510e7a4c56c336fbabcbdedb) ) -ROM_END - - - - - - -ROM_START( m4magtbo ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "crmtb14.epr", 0x0000, 0x010000, CRC(79e1746c) SHA1(794317f3aba7b1a7994cde89d81abc2b687d0821) ) - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "ctp.chr", 0x0000, 0x000048, CRC(ead61793) SHA1(f38a38601a67804111b8f8cf0a05d35ed79b7ed1) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "scrmtb.snd", 0x000000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - - - - - - - -ROM_START( m4reeltm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "real.bin", 0x0000, 0x010000, CRC(5bd54924) SHA1(23fcf13c52ee7b9b39f30f999a9102171fffd642) ) // == m4wildtm - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "charter.chr", 0x0000, 0x000048, CRC(4ff4eda2) SHA1(092435e34d79775910316a7bed0f90c4f086e5c4) ) - - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - -ROM_END - -ROM_START( m4ringfr ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "rof03s.p1", 0x0000, 0x020000, CRC(4b4703fe) SHA1(853ce1f5932e09af2b5f3b5314709f13aa35cf19) ) - - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* missing? */ -ROM_END - - - - - - -ROM_START( m4roadrn ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dro19", 0x0000, 0x010000, CRC(8b591766) SHA1(df156390b427e31cdda64826a6c1d2457c915f25) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "dro_1.snd", 0x000000, 0x080000, CRC(895cfe63) SHA1(02134e149cef3526bbdb6cb93ef3efa283b9d6a2) ) - ROM_LOAD( "dro_2.snd", 0x080000, 0x080000, CRC(1d5c8d4f) SHA1(15c18ae7286807cdc0feb825b958eae808445690) ) -ROM_END - - - - -ROM_START( m4royjwl ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "rj.bin", 0x0000, 0x020000, CRC(3ffbe4a8) SHA1(47a0309cc9ff315ad9f64e6855863409443e94e2) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "rj_sound1.bin", 0x000000, 0x080000, CRC(443c4901) SHA1(7b3c6737b47dfe04c072f0e157d83c09340c3f9b) ) - ROM_LOAD( "rj_sound2.bin", 0x080000, 0x080000, CRC(9456523e) SHA1(ea1b6bf16b7d1015c188ad83760336d9851de391) ) -ROM_END - - - -ROM_START( m4salsa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dsa15.epr", 0x0000, 0x010000, CRC(22b60b0b) SHA1(4ad184d1557bfd01650684ea9d8ad794fded65f7) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "dsa_1#97c2.snd", 0x0000, 0x080000, CRC(0281a6dd) SHA1(a35a8cd0da32c51f77856ea3eeff7c58fd032333) ) -ROM_END - - - - - - -ROM_START( m4showtm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dsh13.bin", 0x0000, 0x010000, CRC(4ce40ff1) SHA1(f145d6c8e926ca4368d43dacda0fa38615988d84) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "sdsh01s1.snd", 0x0000, 0x080000, CRC(f247ba83) SHA1(9b173503e63a4a861d1380b2ab1fe14af1a189bd) ) -ROM_END - - - - - - - - - - - - - - - - - - - - - - - - - - - -ROM_START( m4steptm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dst11.bin", 0x0000, 0x010000, CRC(3960f210) SHA1(c7c4fe74cb9a53eaa9114a84240de3bce4ffe75e) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "sdun01.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - - - - - - - -#define M4SUPBJC_EXTRAS \ - ROM_REGION( 0x48, "fakechr", 0 ) \ - ROM_LOAD( "sbj.chr", 0x0000, 0x000048, CRC(cc4b7911) SHA1(9f8a96a1f8b0f9b33b852e93483ce5c684703349) ) \ - ROM_REGION( 0x100000, "altmsm6376", 0 ) \ - ROM_LOAD( "sbjsnd1.hex", 0x000000, 0x080000, CRC(70388bec) SHA1(256fa01b57049d73e88b0bb270fccb555b12dfb7) ) \ - ROM_LOAD( "sbjsnd2.hex", 0x080000, 0x080000, CRC(1d588554) SHA1(48c092ce83d2f881fc217a3d566e896718ad6f24) ) \ - ROM_REGION( 0x100000, "msm6376", 0 ) \ - ROM_LOAD( "sbj.s1", 0x000000, 0x080000, CRC(9bcba966) SHA1(5ced282aca9d39ebf0828aa19357026d5298e955) ) \ - ROM_LOAD( "sbj.s2", 0x080000, 0x080000, CRC(1d588554) SHA1(48c092ce83d2f881fc217a3d566e896718ad6f24) ) - - -ROM_START( m4supbjc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sbjs.p1", 0x0000, 0x010000, CRC(f7fb2b99) SHA1(c860d3f95ee3fde02bf00b2e20eeee0ebaf01912) ) - M4SUPBJC_EXTRAS -ROM_END - -ROM_START( m4supbjca ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sbjd.p1", 0x0000, 0x010000, CRC(555361f4) SHA1(f5327b811ab3421307dc59d209a216798cd54393) ) - M4SUPBJC_EXTRAS -ROM_END - -ROM_START( m4supbjcb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sbjf.p1", 0x0000, 0x010000, CRC(7966deff) SHA1(5cdb6c80ef56b27878eb1fffd6fdf31060e56291) ) - M4SUPBJC_EXTRAS -ROM_END - -ROM_START( m4supbjcc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sbjl.p1", 0x0000, 0x010000, CRC(fc47ed74) SHA1(f29b2caac8168410e534e2f224c98dd4bbb9a7f7) ) - M4SUPBJC_EXTRAS -ROM_END - -ROM_START( m4supbjcd ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "superbjclub.bin", 0x0000, 0x010000, CRC(68d11d27) SHA1(a0303f845fb5f5b396a7be3ca17a9eaf1a7baef4) ) - M4SUPBJC_EXTRAS -ROM_END - - -ROM_START( m4supbf ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sbff.p1", 0x0000, 0x010000, CRC(f27feba0) SHA1(157bf28e2d5fc2fa58bed11b3285cf56ae18abb8) ) -ROM_END - -ROM_START( m4supbfa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sbfs.p1", 0x0000, 0x010000, CRC(c8c52d5e) SHA1(d53513b9faabc307623a7c2f5be0225fb812beeb) ) -ROM_END - - - - - - - -ROM_START( m4take5 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "take5.bin", 0x0000, 0x020000, CRC(24beb7d6) SHA1(746beccaf57fd0c54c8cf8d742b8ef50563a40fd) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "tfive1.hex", 0x000000, 0x080000, CRC(70f16892) SHA1(e6448831d3ce7fa251b40023bc7d5d6dee9d6793) ) - ROM_LOAD( "tfive2.hex", 0x080000, 0x080000, CRC(5fc888b0) SHA1(8d50ee4f36bd36aed5d0e7a77f76bd6caffc6376) ) -ROM_END - - - - -#define M4TECHNO_EXTRAS \ - ROM_REGION( 0x080000, "msm6376", 0 ) \ - ROM_LOAD( "techno.bin", 0x0000, 0x080000, CRC(3e80f8bd) SHA1(2e3a195b49448da11cc0c089a8a9b462894c766b) ) - -ROM_START( m4techno ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dte13.bin", 0x0000, 0x010000, CRC(cf661d06) SHA1(316b2c42e7253a03b2c12b713821045d9f95a8a7) ) - M4TECHNO_EXTRAS -ROM_END - -ROM_START( m4technoa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dte13hack.bin", 0x0000, 0x010000, CRC(8b8eafe3) SHA1(93a7714eb4c749b7b19f4f844cf88da9443b0bb7) ) - M4TECHNO_EXTRAS -ROM_END - - - - - - - - -ROM_START( m4toma ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dtk23.bin", 0x0000, 0x010000, CRC(ffba2b96) SHA1(c7635023ac5181e661e808c6b44ac1add58f4f56) ) -ROM_END - - - - -ROM_START( m4topdk ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dtd26pj.bin", 0x0000, 0x010000, CRC(1f84d995) SHA1(7412632cf79008b980e48f14aea89c3f8d742ed2) ) -ROM_END - - -ROM_START( m4toprn ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "toprun_v1_1.bin", 0xc000, 0x004000, CRC(9b924324) SHA1(7b155467f30cc22f7cda301ae770fb2a889c9c66) ) - ROM_LOAD( "toprun_v1_2.bin", 0x8000, 0x004000, CRC(940fafa9) SHA1(2a8b669c51c8df50710bd8b552ab30a5d1a136ab) ) -ROM_END - - - -#define M4TOPTIM_EXTRAS \ - ROM_REGION( 0x48, "fakechr", 0 ) \ - ROM_LOAD( "ttimer.chr", 0x0000, 0x000048, CRC(f694224e) SHA1(936ab5e349fa59accbb37959cce9519fd97f3978) ) \ - ROM_REGION( 0x080000, "msm6376", 0 ) \ - ROM_LOAD( "toptimer-snd.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) - -ROM_START( m4toptim ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "toptimer.bin", 0x0000, 0x010000, CRC(74804012) SHA1(0d9460ba6b1d359d358483c4e8bfd5518f364518) ) - M4TOPTIM_EXTRAS -ROM_END - - -ROM_START( m4toptima ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dtt2-1.bin", 0x0000, 0x010000, CRC(f9c84a34) SHA1(ad654442f580d6a49658f0e4e39bacbd9d0d0018) ) - M4TOPTIM_EXTRAS -ROM_END - - - - - -#define M4TROPCL_EXTRAS \ - ROM_REGION( 0x48, "fakechr", 0 ) \ - ROM_LOAD( "tro20.chr", 0x0000, 0x000048, CRC(97618d38) SHA1(7958e99684d50b9bdb56c97f7fcfe161f0824578) ) - -ROM_START( m4tropcl ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "tros.p1", 0x0000, 0x010000, CRC(5e86c3fc) SHA1(ce2419991559839a8875060c1afe0f030190010a) ) - M4TROPCL_EXTRAS -ROM_END - -ROM_START( m4tropcla ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "tr2d.p1", 0x0000, 0x010000, CRC(0cc23f89) SHA1(a66c8c28073f53381c43e3e597f15f81c5c61479) ) - M4TROPCL_EXTRAS -ROM_END - -ROM_START( m4tropclb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "tr2f.p1", 0x0000, 0x010000, CRC(fbdcd06f) SHA1(27ccdc83e60a62227d33d8cf3d516fc43908ab99) ) - M4TROPCL_EXTRAS -ROM_END - -ROM_START( m4tropclc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "tr2s.p1", 0x0000, 0x010000, CRC(6d43375c) SHA1(5be1dc85374c6a1235e0b137b46ebd7a2d7d922a) ) - M4TROPCL_EXTRAS -ROM_END - -ROM_START( m4tropcld ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "trod.p1", 0x0000, 0x010000, CRC(60c84612) SHA1(84dc8b34e41436331832c1a32ddac0fce269488a) ) - M4TROPCL_EXTRAS -ROM_END - - -#define M4TBPLAY_EXTRAS \ - ROM_REGION( 0x48, "fakechr", 0 ) \ - ROM_LOAD( "dtpchr.chr", 0x0000, 0x000048, CRC(7743df66) SHA1(69b1943837ccf8671861ac8ef690138b41de0e5b) ) \ - ROM_REGION( 0x100000, "msm6376", 0 ) \ - ROM_LOAD( "dtps10_1", 0x000000, 0x080000, CRC(d1d2c981) SHA1(6a4940248b0bc8df0a9de0d60e98cfebf1962504) ) \ - ROM_LOAD( "dtps20_1", 0x080000, 0x080000, CRC(f77c4f39) SHA1(dc0e056f4d8c00824b3e672a02da64613bbf204e) ) - -ROM_START( m4tbplay ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dtp13", 0x0000, 0x010000, CRC(de424bc3) SHA1(c82dd56a0b3ccea78325cd90ed8e72ed68a1af77) ) - M4TBPLAY_EXTRAS -ROM_END - -ROM_START( m4tbplaya ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "rmtp4b", 0x0000, 0x010000, CRC(33a1764e) SHA1(7475f460dee015a2cd78fc3e0d1d14fd96fdbb9c) ) - M4TBPLAY_EXTRAS -ROM_END - -ROM_START( m4tbplayb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "trmyid", 0x0000, 0x010000, CRC(e7af5944) SHA1(64559c97375a3536f7929d7f4d8d19c30527a3ec) ) - M4TBPLAY_EXTRAS -ROM_END - - - - - - - - - - - - - -ROM_START( m4twintm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "d2t11.bin", 0x0000, 0x010000, CRC(6a76ac6f) SHA1(824912ff1fc3155d11d32b597be53481532fdf5e) ) - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "m533.chr", 0x0000, 0x000048, CRC(b1d7e29b) SHA1(e8ef07f85780e24b5f406478de50287b740379d9) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "sdun01.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - - -ROM_START( m4twist ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "twist_again_mk29-6", 0x8000, 0x008000, CRC(cb331bee) SHA1(a88099a3f35caf02925f1a3f548fbf65c11e3ec9) ) -ROM_END - -ROM_START( m4twista ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "twistagain-98-mkii.bin", 0x8000, 0x008000, CRC(1cbc7b58) SHA1(eda998a64272fe6796243c2db48ef988b9668c35) ) -ROM_END - -ROM_START( m4twistb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "twistagain-mki-27.bin", 0x8000, 0x008000, CRC(357f7072) SHA1(8a23509fff79a83a819b27eff8de8db08c679e3f) ) -ROM_END - - - - -ROM_START( m4univ ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dun20", 0x0000, 0x010000, CRC(6a845d4d) SHA1(82bfc3f3a0ede76a4d482efc71b0390610db7acf) ) - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "dunchr.chr", 0x0000, 0x000048, CRC(f694224e) SHA1(936ab5e349fa59accbb37959cce9519fd97f3978) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "sdun01.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - - - - -ROM_START( m4vegastg ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "vs.p1", 0x0000, 0x020000, CRC(4099d572) SHA1(91a7c1575013e61c754b2c2cb841e7687b76d7f9) ) - - ROM_REGION( 0x200000, "msm6376", 0 ) - ROM_LOAD( "vssound.bin", 0x0000, 0x16ee37, CRC(456da6be) SHA1(f0e293f0a383878b581326f869c2e49bec61d0c5) ) -ROM_END - - - - - - -ROM_START( m4vivalvd ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dlv11.bin", 0x0000, 0x010000, CRC(a890184c) SHA1(26d9952bf2eb4b55d21cdb934ffc73ff1a1cfbac) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "vegssnd.bin", 0x0000, 0x080000, CRC(93fd4253) SHA1(69feda7ffc56defd515c9cd1ce204af3d9731a3f) ) -ROM_END - - - - - - - - - - - - - - -ROM_START( m4wildtm ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "wildtimer.bin", 0x0000, 0x010000, CRC(5bd54924) SHA1(23fcf13c52ee7b9b39f30f999a9102171fffd642) ) // == m4reeltm - - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "charter.chr", 0x0000, 0x000048, CRC(4ff4eda2) SHA1(092435e34d79775910316a7bed0f90c4f086e5c4) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "wildtimer-snd.bin", 0x0000, 0x080000, CRC(50450909) SHA1(181659b0594ba8d196b7130c5999c91676a363c0) ) -ROM_END - - - -ROM_START( m4ch30 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ch301s", 0x0000, 0x010000, CRC(d31c9081) SHA1(21d1f4cc3de2343d830e3ee02e3a53abd12b6b9d) ) - - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* missing */ -ROM_END - - - - - - - - - - - - - - - - - - -ROM_START( m4czne ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "czone 6.bin", 0x0000, 0x010000, CRC(e5b2b64e) SHA1(b73a2aed7b04184bc7c5c3d0a11d44e624a47428) ) -ROM_END - -ROM_START( m4fourmr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "frmr5p26.bin", 0x8000, 0x008000, CRC(f0c5bd8a) SHA1(39026459008ed5b5bd3a10841799227fef70e5b5) ) -ROM_END - -ROM_START( m4holywd ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hollywood 5p.bin", 0x0000, 0x010000, CRC(fb4ebb6e) SHA1(1ccfa81c173011ce70640097c85b532fd44f5a6e) ) -ROM_END - - - - - - -#define M4LAZY_EXTRAS \ - ROM_REGION( 0x180000, "msm6376", ROMREGION_ERASE00 ) \ - /* missing? */ - -ROM_START( m4lazy ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "lb_sj___.1_0", 0x0000, 0x020000, CRC(8628dcf1) SHA1(80cb9348e2704d0f72a44b4aa74b24fe03e279bc) ) - M4LAZY_EXTRAS -ROM_END - -ROM_START( m4lazya ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "lb_sj___.1_2", 0x0000, 0x020000, CRC(2b906f52) SHA1(802bcf6b3679e135308026752a55e55f00f21e85) ) - M4LAZY_EXTRAS -ROM_END - -ROM_START( m4lazyb ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "lb_sj_d_.1_2", 0x0000, 0x020000, CRC(a7691bad) SHA1(6cda3f3c18c13c04dbe0e4c1e4c817eedc34aa92) ) - M4LAZY_EXTRAS -ROM_END - - - - - - - - - - - - - - - - - - -ROM_START( m4specu ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "speculator.bin", 0x8000, 0x008000, CRC(4035d20c) SHA1(4a534294c5c7332eacd09ca44f351d6a6850cc29) ) -ROM_END - - - - - - - - - -ROM_START( m4sunclb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sucxe__0.2", 0x0000, 0x010000, CRC(fd702a6f) SHA1(0f6d553fcb096ca4874bb971425dabfbe18db31d) ) -ROM_END - -ROM_START( m4sunclba ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sucxed_0.2", 0x0000, 0x010000, CRC(70802bc3) SHA1(69b36f716cb608931f933cb58e47232b18064f9d) ) -ROM_END - - - -ROM_START( m4sunscl ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sc_xe___.3_3", 0x0000, 0x010000, CRC(e3732cc6) SHA1(77f0368bb29ad00030f83af794a52df92fe97e5d) ) -ROM_END - -ROM_START( m4sunscla ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sc_xe_d_.3_3", 0x0000, 0x010000, CRC(b8627c4a) SHA1(ad616d38773cbd82376b518aa15dc3d7027237c5) ) -ROM_END - -ROM_START( m4sunsclb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sc_xef__.3_3", 0x0000, 0x010000, CRC(8e7e1100) SHA1(7648ea860a546081388a213845e27312730f46d9) ) -ROM_END - - - - - - - - - - - - - - - -DRIVER_INIT_MEMBER(mpu4_state,m4aao) -{ - //Derived from Against_All_Odds_(Eurotek)_[C01_800_15jp].gam - DRIVER_INIT_CALL(m4default); - DRIVER_INIT_CALL(m4_hopper_duart_a); - DRIVER_INIT_CALL(m4default_reels); - //PCKEY =9 - //STKEY =0 - //JPKEY =0 - //JPSET =0 - //DIP1_0=true - //DIP1_1=true - //DIP1_2=true - //DIP1_3=true - //DIP1_4=true - //DIP1_5=false - //DIP1_6=false - //DIP1_7=false - //DIP2_0=false - //DIP2_1=false - //DIP2_2=false - //DIP2_3=false - //DIP2_4=false - //DIP2_5=false - //DIP2_6=false - //DIP2_7=false - //Sound barcrest1 - //Standard - //Volume 0 Stereo= 0 - //Sample rate 16000 - //Front door code 255 Cash door code 255 -} - -ROM_START( m4aao ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "aao2_8.bin", 0x0000, 0x010000, CRC(94ce4016) SHA1(2aecb6dbe798b7bbfb3d27f4d115b6611c7d990f) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "aaosnd.bin", 0x0000, 0x080000, CRC(7bf30b96) SHA1(f0086ae239b1d973018a3ea04e816a87f8f20bad) ) -ROM_END - - - -ROM_START( m4bandgd ) - ROM_REGION( 0x020000, "maincpu", 0 ) - ROM_LOAD( "bog.bin", 0x0000, 0x020000, CRC(21186fb9) SHA1(3d536098c7541cbdf02d68a18a38cae71155d7ff) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "bandsofgoldsnd.bin", 0x0000, 0x080000, CRC(95c6235f) SHA1(a13afa048b73fabfad229b5c2f8ef5ee9948d9fb) ) -ROM_END - - - -ROM_START( m4bigben ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "b_bv2_7.bin", 0x0000, 0x010000, CRC(9f3a7638) SHA1(b7169dc26a6e136d6daaf8d012f4c3d017e99e4a) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) - ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) -ROM_END - -ROM_START( m4bigbena ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "b_bv2_9.bin", 0x0000, 0x010000, CRC(86a745ee) SHA1(2347e8e38c743ea4d00faee6a56bb77e05c9c94d) ) // aka bb2_9.bin - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) - ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) -ROM_END - -ROM_START( m4bigbenb ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "bb1_9p.bin", 0x0000, 0x010000, CRC(c76c5a09) SHA1(b0e3b38998428f535841ab5373d57cb0d5b21ed3) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) - ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) -ROM_END - - - -ROM_START( m4bigbend ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "bb_2_1.bin", 0x0000, 0x010000, CRC(d3511805) SHA1(c86756998d36e729874c71a5d6442785069c57e9) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) - ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) -ROM_END - -ROM_START( m4bigbene ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "bbs_2_9p.bin", 0x0000, 0x010000, CRC(0107608d) SHA1(9e5def90e77f65c366aea2a9ac24d5f17c4d0ae8) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "big-bensnd1.bin", 0x000000, 0x080000, CRC(e41c3ec1) SHA1(a0c09f51229afcd14f09bb9080d4f3bb198b2050) ) - ROM_LOAD( "big-bensnd2.bin", 0x080000, 0x080000, CRC(ed71dbe1) SHA1(e67ca3c178caacb99118bacfcd7612e699f40455) ) -ROM_END - - - - - -ROM_START( m4boltbl ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "bfb.bin", 0x8000, 0x008000, CRC(63058a6b) SHA1(ebccc647a937c36ffc6c7cfc01389f04f829999c) ) -ROM_END - -ROM_START( m4boltbla ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "bfb1.1.bin", 0x8000, 0x008000, CRC(7a91122d) SHA1(28229e86feb4411978e556f7f7bd85bfd996b8aa) ) -ROM_END - -ROM_START( m4boltblb ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "bfb9 5p cash.bin", 0x8000, 0x008000, CRC(792bff34) SHA1(6996e87f22df6bac7bbe9908534b7e0480f03ede) ) -ROM_END - -ROM_START( m4boltblc ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "bolt-gilwern.bin", 0x8000, 0x008000, CRC(74e2c821) SHA1(1dcdc58585d1dcfc93e2aeb3df0cd41705cde196) ) -ROM_END - -ROM_START( m4dblchn ) - ROM_REGION( 0x010000, "maincpu", 0 ) - ROM_LOAD( "doublechance.bin", 0x0000, 0x010000, CRC(6feeeb7d) SHA1(40fe67d854fbf48959e08fdb5743e14d340c16e7) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "doublechancesnd.bin", 0x0000, 0x080000, CRC(3e80f8bd) SHA1(2e3a195b49448da11cc0c089a8a9b462894c766b) ) -ROM_END - - -ROM_START( m4kqclub ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "kingsque.p1", 0x8000, 0x008000, CRC(6501e501) SHA1(e289a9418c640415967fafda43f20877b38e3671) ) -ROM_END - -ROM_START( m4snookr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "snooker.ts2", 0x8000, 0x004000, CRC(a6906eb3) SHA1(43b91e88f909b758f880d83df4f889f15aa17eb3) ) - ROM_LOAD( "snooker.ts1", 0xc000, 0x004000, CRC(3e3072dd) SHA1(9ea8b270044b48767a2e6c19e8ed257d5491c1d0) ) -ROM_END - - - -ROM_START( m4stakex ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "stakex.bin", 0x0000, 0x010000, CRC(098c7117) SHA1(27f04cfb88ef870fc30afd055cf32ffe448275ea) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "stakexsnd.bin", 0x0000, 0x080000, CRC(baf17991) SHA1(282e0ac9d18299e9f7a0fecaf9edf0cb4205ef0e) ) -ROM_END - -ROM_START( m4stakexa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "stakex2.bin", 0x0000, 0x010000, CRC(77ae3f63) SHA1(c5f1cfd5bffcf3156f584757de57ef6530214511) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "stakexsnd.bin", 0x0000, 0x080000, CRC(baf17991) SHA1(282e0ac9d18299e9f7a0fecaf9edf0cb4205ef0e) ) -ROM_END - - -ROM_START( m4stand2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "stand 2 del 8.bin", 0x08000, 0x08000, CRC(a9a5edc7) SHA1(035d3f3b3373cec475753f1b0de2f4db48d6d288) ) -ROM_END - - - - - - - - - - -ROM_START( m4bigban ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "big04.p1", 0x0000, 0x020000, CRC(f7ead9c6) SHA1(46c10abb892cb6d427ad508aae96752c14b4cb83) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* Missing? */ -ROM_END - -ROM_START( m4crzcsn ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "crz03.bin", 0x0000, 0x020000, CRC(48610c4f) SHA1(a62ac8b3ee704ee4e98f9d56bfc723d4cbb25b54) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* Missing? */ -ROM_END - -ROM_START( m4crzcav ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "gcv05.p1", 0x0000, 0x020000, CRC(b9ba46f6) SHA1(78b745d85b36444c39747982987088a772b20a7e) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* Missing? */ -ROM_END - -ROM_START( m4dragon ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "dgl01.p1", 0x0000, 0x020000, CRC(d7d39c9b) SHA1(5350c9db549edee30815516b1ce74a018390ff3d) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* Missing? */ -ROM_END - -ROM_START( m4hilonv ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "hnc02.p1", 0x0000, 0x020000, CRC(33a8022b) SHA1(5168b8f32630aa2cb56f30c941695f1728e4fb7a) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* Missing? */ -ROM_END - -ROM_START( m4octo ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "oct03.p1", 0x0000, 0x020000, CRC(8df66e94) SHA1(e1ab93982846d83becae36b5814ebbd515b9078e) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* Missing? */ -ROM_END - -ROM_START( m4sctagt ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "gse3_0.p1", 0x0000, 0x010000, CRC(eff705ff) SHA1(6bf96872ef4bcc8f8041c5384d892f072c72be2b) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* Missing? */ -ROM_END - - - - - - - - - - -ROM_START( m4cld02 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cru0_2.bin", 0x0000, 0x010000, CRC(e3c01944) SHA1(33a2b2c05686f53811349b2980e590fdc4b72756) ) - ROM_REGION( 0x080000, "msm6376", ROMREGION_ERASE00 ) - /* missing */ -ROM_END - -ROM_START( m4barcrz ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "barcrazy.bin", 0x0000, 0x010000, CRC(917ad749) SHA1(cb0a3f6737b8f183d2efb0a3f8adbf86d40a38ff) ) - - ROM_REGION( 0x080000, "msm6376", 0 ) - ROM_LOAD( "barcrazysnd.bin", 0x0000, 0x080000, CRC(0e155193) SHA1(7583e9f3e3624f82f2329565bdcbdaa5a5b03ee0) ) -ROM_END - -ROM_START( m4bonzbn ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "bingo-bonanza_v1.bin", 0x0000, 0x010000, CRC(3d137ddf) SHA1(1ce23db111448e44a166554dd8853dc379e787da) ) - - ROM_REGION( 0x100000, "msm6376", 0 ) - ROM_LOAD( "bingo-bonanzasnd1.bin", 0x000000, 0x080000, CRC(e0eb2a92) SHA1(cbc0b3bba7857d87535d1c2a7459aed60709734a) ) - ROM_LOAD( "bingo-bonanzasnd2.bin", 0x080000, 0x080000, CRC(7db27b28) SHA1(98c5fa4bf8c7f67fae90a1ca98b74057f5ed9b6b) ) -ROM_END - -ROM_START( m4dnj ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "d.n.j 1-02", 0x0000, 0x010000, CRC(5750843d) SHA1(b87923e84071ea4a1af7566a7f413f8e30e208e9) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) // should this set have an OKI? -ROM_END - -ROM_START( m4dnja ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "d.n.j 1-03", 0x0000, 0x010000, CRC(7b805255) SHA1(f62765bfa66e2422ac0a71ebaff27f1ccd470fe2) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) // should this set have an OKI? -ROM_END - -ROM_START( m4dnjb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "d.n.j 1-06", 0x0000, 0x010000, CRC(aab770c7) SHA1(f24fff8346915017bc43fef9fac356a067676d86) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) // should this set have an OKI? -ROM_END - - -ROM_START( m4matdr ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "matador.bin", 0x0000, 0x020000, CRC(367788a4) SHA1(3c9b077a64f993cb60107558efdfcbee0fe5c958) ) - - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - /* missing */ -ROM_END - - - -ROM_START( m4hslo ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "hot30", 0x0000, 0x010000, CRC(62f2c420) SHA1(5ae89a1b585738255e8d9ae153c3c63b4a2893e4) ) -ROM_END - -#define M4SBX_EXTRAS \ - ROM_REGION( 0x40000, "upd", 0 ) /* not oki at least... */ \ - ROM_LOAD( "sbsnd", 0x0000, 0x040000, CRC(27fd9fe6) SHA1(856fdc95a833affde0ada7041c68a4b6b729b715) ) - -ROM_START( m4sbx ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sbx-2.1-cash.bin", 0x8000, 0x008000, CRC(2dca703e) SHA1(aef398f4ed38ba34f28009058c9486a570f64e0f) ) - M4SBX_EXTRAS -ROM_END - -ROM_START( m4sbxa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "b_sbx23.bin", 0x8000, 0x008000, CRC(8188e94f) SHA1(dfbfc549d12c8f7c7db6c12ba766c28f1cf0873f) ) - M4SBX_EXTRAS -ROM_END - -ROM_START( m4sbxb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "s bears v1-4 20p po.bin", 0x8000, 0x008000, CRC(03486714) SHA1(91c237956bbec58cc08a3e92543488d8e2daa673) ) - M4SBX_EXTRAS -ROM_END - -ROM_START( m4sbxc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "s bears v2-4 10p 8.bin", 0x8000, 0x008000, CRC(9b94f8d0) SHA1(9808386def14c8a058730e90135a4d6506e6ed3d) ) - M4SBX_EXTRAS -ROM_END - -ROM_START( m4sbxd ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "s bears v2-4 20p po.bin", 0x8000, 0x008000, CRC(ad8f8d9d) SHA1(abd808f95b587a84e8b3aad1af9fe1cb613c9821) ) - M4SBX_EXTRAS -ROM_END - -ROM_START( m4sbxe ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "superbea.10p", 0x8000, 0x008000, CRC(70020466) SHA1(473c9feb9ce0024b870612af19ec8a47a7798506) ) - M4SBX_EXTRAS -ROM_END - - - -ROM_START( m4bclimb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "bc8pv4.bin", 0x8000, 0x008000, CRC(229a7607) SHA1(b20b2c9f9d19ccd6146affdf519fa4bc0322c971) ) - - ROM_REGION( 0x40000, "upd", 0 ) // not oki at least... - ROM_LOAD( "sbsnd", 0x0000, 0x040000, CRC(27fd9fe6) SHA1(856fdc95a833affde0ada7041c68a4b6b729b715) ) -ROM_END - -ROM_START( m4captb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "c_bear21.rom", 0x8000, 0x008000, CRC(2e9a42e9) SHA1(0c3f33311f1543daf2ff5c0443dc8c000d49c26d) ) - - ROM_REGION( 0x40000, "upd", ROMREGION_ERASE00 ) // not oki at least... -// ROM_LOAD( "sbsnd", 0x0000, 0x040000, CRC(27fd9fe6) SHA1(856fdc95a833affde0ada7041c68a4b6b729b715) ) -ROM_END - -#define M4JUNGJ_EXTRAS \ - ROM_REGION( 0x40000, "upd", ROMREGION_ERASE00 ) \ - /* missing? */ -ROM_START( m4jungj ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "jj2410p.bin", 0x8000, 0x008000, CRC(490838c6) SHA1(a1e9963df9a429ae594592312e977f22f96c6073) ) - M4JUNGJ_EXTRAS -ROM_END - -ROM_START( m4jungja ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "jj2420p.bin", 0x8000, 0x008000, CRC(39329ccf) SHA1(6b79e4fc553bad935ec9989ad5ef3e186e720633) ) - M4JUNGJ_EXTRAS -ROM_END - -ROM_START( m4jungjb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "jjv2_4p.bin", 0x8000, 0x008000, CRC(125a8138) SHA1(18c62df5b331bd09d6dcda6280351e94b7b816fd) ) - M4JUNGJ_EXTRAS -ROM_END - -ROM_START( m4jungjc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "jjv4.bin", 0x8000, 0x008000, CRC(bf583156) SHA1(084c5ed3d96c92f265ad08cc7aed7fe6092217a5) ) - M4JUNGJ_EXTRAS -ROM_END - - -#define M4FSX_EXTRAS \ - ROM_REGION( 0x40000, "upd", ROMREGION_ERASE00 ) \ - /* missing? */ - -ROM_START( m4fsx ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("funspotx.10p", 0x8000, 0x008000, CRC(55199f36) SHA1(7af376781e381582b06972725a2022cc28ba60b3) ) - M4FSX_EXTRAS -ROM_END - -ROM_START( m4fsxa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "funspotx.20p", 0x8000, 0x008000, CRC(08d1eb6e) SHA1(7c7c02d9c34696d75490df8596ffe64fba93dcc4) ) - M4FSX_EXTRAS -ROM_END - -ROM_START( m4fsxb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "b_fsv1.bin", 0x8000, 0x008000, CRC(b077f944) SHA1(97d96594b8d2d7232bad087cc55912dec02d7484) ) - M4FSX_EXTRAS -ROM_END - -/* -Coinworld data - -Error Number Cause of alarm Comments -11 1 GBP coin in These alarms go off when a coin is jammed in the mech, or if the Mars anti-strimming alarm is activated. -12 50p coin in The machine will lock up for a short amount of time, whilst sounding as alarm tone. -13 20p coin in Error 15 can be caused by having DIL switch 6 in the wrong position for your coin mech loom. -14 10p coin in -15 5p coin in -16 2 GBP coin in -21 Reel 1 alarm The faulty reel will flash. Nothing more will happen until the machine is reset -22 Reel 2 alarm -23 Reel 3 alarm -42 Ram Cleared The RAM is cleared when the machine is turned on for the first time, or when the price of play is changed. The alarm - clears after a short time -51 Checksum error The machine will lock up completely if the eprom has failed, or if the security chip is missing or has failed -54 Security chip fail -61 Cash in meter failure The machine will not run if the cash in, or cash out meters are not connected properly. -62 Cash out meter failure -71 Datapack error If the machine is in protocol mode, and a datapack is not connected, then the machine alarms. It will reset after a - time, and have another go at transmitting the data -72 Sound card fail If the sound card is missing, or the wrong sound eprom is fitted, the machine alarms on power on. The machine will then - operate in silence. -99 Payout tubes empty If one of the tubes runs dry, the machine will attempt to compensate by paying from the other tube. If this runs dry - as well, the machine will lock up, requiring a refill before games can continue. The alarm tone is a softer, more friendly one. -*/ - -#define M4CCOP_EXTRAS \ - ROM_REGION( 0x100000, "alt1msm6376", ROMREGION_ERASE00 ) \ - ROM_LOAD( "cash-copssnd1-de.bin", 0x000000, 0x080000, CRC(cd03f7f7) SHA1(4c09a86bcdf9a9eb224b19b932b75c9db3784fad) ) \ - ROM_LOAD( "cash-copssnd2-de.bin", 0x080000, 0x080000, CRC(107816a2) SHA1(f5d4a0390b85a665a3536da4689ec91b1a2da3ae) ) \ - ROM_REGION( 0x100000, "alt2msm6376", ROMREGION_ERASE00 ) \ - ROM_LOAD( "cash-copssnd1.bin", 0x000000, 0x080000, CRC(776a303d) SHA1(a5a282674674f25bc6ca169eeebee7309239871f) ) \ - ROM_LOAD( "cash-copssnd2.bin", 0x080000, 0x080000, CRC(107816a2) SHA1(f5d4a0390b85a665a3536da4689ec91b1a2da3ae) ) \ - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) \ - ROM_LOAD( "cashcops.p1", 0x000000, 0x080000, CRC(9a59a3a1) SHA1(72cfc99b22ec5fb89714c6d2d66760d86dc19f2f) ) \ - ROM_LOAD( "cashcops.p2", 0x080000, 0x080000, CRC(deb3e755) SHA1(01f92881c451919be549a1c58afa1fa4630bf171) ) - -ROM_START( m4ccop ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cashcop9.bin", 0x0000, 0x010000, CRC(5f993207) SHA1(ab0614e6a1355d275158b1a32f65086e40c2f890) ) - M4CCOP_EXTRAS -ROM_END - -ROM_START( m4ccopa ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cash-cops_v4-de.bin", 0x0000, 0x010000, CRC(df3da824) SHA1(c275a33e4a89f1b9ecbae80cb7b62007b29b9fd2) ) - M4CCOP_EXTRAS -ROM_END - -ROM_START( m4ccopb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "cashcop8.bin", 0x0000, 0x010000, CRC(165603df) SHA1(d301696a340ed136a43c5753c8bf73283a925fd7) ) - M4CCOP_EXTRAS -ROM_END - -ROM_START( m4ccc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "ccc12.bin", 0x8000, 0x008000, CRC(570cc766) SHA1(036c95ff6428ab38cceb0537dcc990be78fb331a) ) - - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - ROM_LOAD( "criss cross crazy sound (27c2001)", 0x0000, 0x040000, CRC(1994c509) SHA1(2bbe91a43aa9953b7776faf67e81e30a4f7b7cb2) ) -ROM_END - - -ROM_START( m4treel ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "trgv1.1s", 0x0000, 0x010000, CRC(a9c76b08) SHA1(a5b3bc980eb58e346cb02d8ca43401f304e5b6de) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4treela ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "trgv1.1b", 0x0000, 0x020000, CRC(7eaebef6) SHA1(5ab86329041e7df09cc2e3ce8d5afd44d88c246c) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - - - -ROM_START( m4unkjok ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "joker 10p 3.bin", 0x0000, 0x010000, CRC(009823ac) SHA1(5ab25da5876c87a8d8701f84446bb3d377e4c1ca) ) -ROM_END - -ROM_START( m4unkjoka ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "joker 10p 6.bin", 0x0000, 0x010000, CRC(f25f0704) SHA1(35298b49f79c5029277f4777fe88d5e4344c115f) ) -ROM_END - -ROM_START( m4unkjokb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "joker 20p 3 or 6.bin", 0x0000, 0x010000, CRC(cae4397e) SHA1(53b61fd41c97a6ed29ce6a7b555e061ecf2b0ae2) ) -ROM_END - -ROM_START( m4unkjokc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "joker new 20p 6 or 3.bin", 0x0000, 0x010000, CRC(b8d77b97) SHA1(54f69823bb3fd9c2cca014dc7c51913b2d6c8058) ) -ROM_END - -ROM_START( m4remag ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "remagv2", 0x0000, 0x010000, CRC(80d9c1c2) SHA1(c77d443d92084c324ef75575acca66ffbd9beef3) ) -ROM_END - -ROM_START( m4rmg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "rmgicdd", 0x0000, 0x010000, CRC(bd64be0d) SHA1(772b80619c7d514a7a253f35137896d6a73bf4c6) ) -ROM_END - -ROM_START( m4wnud ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "wnudge.bin", 0x8000, 0x008000, CRC(1d935575) SHA1(c4177c41473c0fb511e0ee035961f55ad43be14d) ) -ROM_END - -ROM_START( m4t266 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "t2 66.bin", 0x0000, 0x010000, CRC(5c99c6bb) SHA1(7b74e0e5207c00b31cb1859e0cc458c0412a1a07) ) -ROM_END - -ROM_START( m4brnze ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "bv25", 0x0000, 0x010000, CRC(5c66f460) SHA1(c7587a6e992549ad8814f77c65b33a17a3641431) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4brnzea ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "bv25v2", 0x0000, 0x010000, CRC(a675edb3) SHA1(a3c6ee6a0bfb301fed72b45ee8e363d77b8b8dbb) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4brnzeb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "bv55", 0x0000, 0x010000, CRC(93905bc9) SHA1(e8d3cd125dced43fc2cf23cbccc59110561d2a40) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4riotrp ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "drt10.bin", 0x0000, 0x010000, CRC(a1badb8a) SHA1(871786ea4e65ecbf61c9a776100321253922d11e) ) - - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) - ROM_LOAD( "dblcsnd.bin", 0x0000, 0x080000, CRC(c90fa8ad) SHA1(a98f03d4b6f5892333279bff7537d4d6d887da62) ) -ROM_END - - - - - - - - - - - - - - - -#define M4SURF_EXTRAS \ - ROM_REGION( 0x200000, "msm6376", 0 ) \ - ROM_LOAD( "s_surf.sn1", 0x000000, 0x080000, CRC(f20a7d69) SHA1(7887230613b497dc71a60125dd1e265ebbc8eb23) ) \ - ROM_LOAD( "s_surf.sn2", 0x080000, 0x080000, CRC(6c4a9074) SHA1(3b993120156677de893e5dc1e0c5d6e0285c5570) ) - -ROM_START( m4surf ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "s_surfin._pound5", 0x0000, 0x020000, CRC(5f800636) SHA1(5b1789890eea44e5275e13f360876374d862935f) ) - M4SURF_EXTRAS -ROM_END - -ROM_START( m4surfa ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "s_surfin.upd", 0x0000, 0x020000, CRC(d0bef9cd) SHA1(9d53bfe8d928b190202bf747c0d7bb4cc0ae0efd) ) - M4SURF_EXTRAS -ROM_END - -ROM_START( m4surfb ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "s_surfin._pound15", 0x0000, 0x020000, CRC(eabce7fd) SHA1(4bb2bbcc7d2917eca72385a21ab85d2d94a882ec) ) - M4SURF_EXTRAS -ROM_END - - -ROM_START( m4wife ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "moy_wife.p1", 0x0000, 0x020000, CRC(293d35a6) SHA1(980a28ca5e9ec3ca2e1a5b34f658b622dca4cf50) ) - - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) - // missing? -ROM_END - -#define M4BLKGD_EXTRAS \ - ROM_REGION( 0x200000, "msm6376", 0 ) \ - ROM_LOAD( "blackgoldsnd1.bin", 0x000000, 0x080000, CRC(d251b59e) SHA1(960b81b87f0fb5000028c863892a273362cb897f) ) \ - ROM_LOAD( "blackgoldsnd2.bin", 0x080000, 0x080000, CRC(87cbcd1e) SHA1(a6cd186af7c5682e216f549b77735b9bf1b985ae) ) \ - ROM_LOAD( "blackgoldsnd3.bin", 0x100000, 0x080000, CRC(258f7b83) SHA1(a6df577d98ade8c5c5ff68ef891667e65e83ac17) ) -ROM_START( m4blkgd ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "blackgoldprg.bin", 0x0000, 0x080000, CRC(a04736b2) SHA1(9e060cc79e7922b38115f1412ed76f8c76deb917) ) - M4BLKGD_EXTRAS -ROM_END - -//Early rom banks empty? May need different loading -ROM_START( m4blkgda ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "blackgoldversion2.4.bin", 0x0000, 0x040000, CRC(fad4e360) SHA1(23c6a13e8d1ca307b0ef22edffed536675985aca) ) - M4BLKGD_EXTRAS -ROM_END - -#define M4ZILL_EXTRAS \ - ROM_REGION( 0x200000, "msm6376", 0 ) \ - ROM_LOAD( "zillsnd.bin", 0x0000, 0x080000, CRC(171ed677) SHA1(25d63f4d9c64f13bec4feffa265c5b0c5f6be4ec) ) - -ROM_START( m4zill ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "zillprgh.bin", 0x0000, 0x080000, CRC(6f831f6d) SHA1(6ab6d7f1752d27bc216bc11533b90178ce188715) ) - M4ZILL_EXTRAS -ROM_END - -ROM_START( m4zilla ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "zillprog.bin", 0x0000, 0x080000, CRC(0f730bab) SHA1(3ea82c8f7d62c70897a5c132273820c9f192cd72) ) - M4ZILL_EXTRAS -ROM_END - - -#define M4HSTR_EXTRAS \ - ROM_REGION( 0x200000, "altmsm6376", 0 ) \ - ROM_LOAD( "happystreak.p1", 0x0000, 0x080000, CRC(b1f328ff) SHA1(2bc6605965cb5743a2f8b813d68cf1646a4bcac1) ) \ - ROM_REGION( 0x200000, "msm6376", 0 ) \ - ROM_LOAD( "happystreaksnd.p1", 0x0000, 0x080000, CRC(76cda195) SHA1(21a985cd6cf1f63f4aa799563099a0527a7c0ea2) ) \ - ROM_LOAD( "happystreaksnd.p2", 0x080000, 0x080000, CRC(f3b4c763) SHA1(7fd6230c13b66a16daad9d45935c7803a5a4c35c) ) - -ROM_START( m4hstr ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "h_s_v1_2.bin", 0x0000, 0x010000, CRC(ef3d3461) SHA1(aa5b1934ab1c6739f36ac7b55d3fda2c640fe4f4) ) - M4HSTR_EXTRAS -ROM_END - -ROM_START( m4hstra ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "hs2_5.bin", 0x0000, 0x010000, CRC(f669a4c9) SHA1(46813ba7104c97eaa851b50019af9b80046d03b3) ) - M4HSTR_EXTRAS -ROM_END - -ROM_START( m4hstrb ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "hs2_5p.bin", 0x0000, 0x010000, CRC(71c981aa) SHA1(5effe7487e7216078127d3dc4a0a7ad02ad84390) ) - M4HSTR_EXTRAS -ROM_END - - -ROM_START( m4hstrcs ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "chs3_6.bin", 0x0000, 0x010000, CRC(d097ae0c) SHA1(bd78c14e7f057f173859bcb1db5e6a142d0c4062) ) - M4HSTR_EXTRAS -ROM_END - -ROM_START( m4hstrcsa ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "chs3_6p.bin", 0x0000, 0x010000, CRC(57378b6f) SHA1(cf1cf528b9790c1013d87ccf63dcbf59f365067f) ) - M4HSTR_EXTRAS -ROM_END - -ROM_START( m4hstrcsb ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "chs3_6pk.bin", 0x0000, 0x010000, CRC(f95f1afe) SHA1(fffa409e8c7148a840d5dedf490fd9f6975e9476) ) - M4HSTR_EXTRAS -ROM_END - -ROM_START( m4hstrcsc ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "chs3_6k.bin", 0x0000, 0x010000, CRC(7eff3f9d) SHA1(31dedb0d9476633e8eb947a687c7b8a94b0e182c) ) - M4HSTR_EXTRAS -ROM_END - -ROM_START( m4hstrcsd ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "chs_4_2.bin", 0x0000, 0x010000, CRC(ec148b65) SHA1(2d6252ce68719281f5597955227a1f662743f006) ) - M4HSTR_EXTRAS -ROM_END - - -#define M4DDB_EXTRAS \ - ROM_REGION( 0x200000, "msm6376", 0 ) \ - ROM_LOAD( "ddbsound1", 0x000000, 0x080000, CRC(47c87bd5) SHA1(c1578ae553c38e93235cea2142cb139170de2a7e) ) \ - ROM_LOAD( "ddbsound2", 0x080000, 0x080000, CRC(9c733ab1) SHA1(a83c3ebe99703bb016370a8caf76bdeaff5f2f40) ) -ROM_START( m4ddb ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "ddb3_1.bin", 0x0000, 0x010000, CRC(3b2da727) SHA1(8a677be3b82464d1bf1e97d22adad3b27374079f) ) - M4DDB_EXTRAS -ROM_END - -ROM_START( m4ddba ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "ddb3_1p.bin", 0x0000, 0x010000, CRC(bc8d8244) SHA1(9b8e0706b3add42e5e4a8b6c6a2f80a333a2f49e) ) - M4DDB_EXTRAS -ROM_END - - -ROM_START( m4hapfrt ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "hf1_1.bin", 0x0000, 0x010000, CRC(6c16cb05) SHA1(421b164c8410629956177355e505859757c97a6b) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4hapfrta ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "hf1_1p.bin", 0x0000, 0x010000, CRC(ebb6ee66) SHA1(1f9b67260e5becd013d95358cc89acb1099d655d) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4hapfrtb ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "hf1_4pk.bin", 0x0000, 0x010000, CRC(0944b3c6) SHA1(00cdb75dda4f8984f77806047ad79fe9a1a8760a) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - - - - - - - - -ROM_START( m4sunday ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "sunday_sport_v11", 0x0000, 0x010000, CRC(14147d59) SHA1(03b14f4f83a545b3252702267ac012b3be76013d) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4jp777 ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "jpot71", 0x0000, 0x010000, CRC(f4564a05) SHA1(97d21e2268e5d99e6e51cb12c45e09445cff1f50) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4booze ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "boozecruise10_v10.bin", 0x0000, 0x010000, CRC(b37f752b) SHA1(166f7d17694689bd9d51d859c13ddafa1c6e5e7f) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4cbing ) - ROM_REGION( 0x80000, "maincpu", 0 ) - ROM_LOAD( "cherrybingoprg.bin", 0x0000, 0x010000, CRC(00c1d4f3) SHA1(626df7f2f597ed13c32ce0fa8846f2e27ca68eae) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) // not oki! - ROM_LOAD( "cherrybingosnd.p1", 0x000000, 0x100000, CRC(11bed9f9) SHA1(63ed45122dda8e412bb1eaeb967d8a0f925d4bde) ) - ROM_LOAD( "cherrybingosnd.p2", 0x100000, 0x100000, CRC(b2a7ec28) SHA1(307f19ffb46f4a2e8e93923ddb666e50de43a00e) ) -ROM_END - - - -ROM_START( m4nod ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "nod.bin", 0x0000, 0x010000, CRC(bc738af5) SHA1(8df436139554ccfb48c4db0a32e3333dbf3c4f46) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) //region was called "upd" but machine is mod4oki? Which one is correct? - ROM_LOAD( "nodsnd.bin", 0x0000, 0x080000, CRC(2134494a) SHA1(3b665bf79567a71195b20e76c50b02707d15b78d) ) -ROM_END - - - - - -ROM_START( m4aliz ) - ROM_REGION( 0x40000, "maincpu", 0 ) - ROM_LOAD( "70000000.bin", 0x0000, 0x040000, CRC(56f64dd9) SHA1(11f990c9a6864a969dc9a4146e1ac2c963e3eb9b) ) - - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) - ROM_LOAD( "alizsnd.hi", 0x0000, 0x080000, CRC(c7bd937a) SHA1(cc4d85a3d4cdf57fa96c812a4cd78b599c7052ff) ) - ROM_LOAD( "alizsnd.lo", 0x080000, 0x04e15e, CRC(111cc111) SHA1(413efedbc9e85240df833c10d680b0e907da10b3) ) - - ROM_REGION( 0x200000, "misc", ROMREGION_ERASE00 ) // i think this is just the sound roms as intelhex - ROM_LOAD( "71000000.hi", 0x0000, 0x0bbe9c, CRC(867058c1) SHA1(bd980cb0bb3075854cc2e9b829c31f3742f4f1c2) ) - ROM_LOAD( "71000000.lo", 0x0000, 0x134084, CRC(53046751) SHA1(b8f9eca933315b497732c895f4311f62103344fc) ) -ROM_END - - - - -ROM_START( m4c2 ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "ci2-0601.bin", 0x0000, 0x010000, CRC(84cc8aca) SHA1(1471e3ad9c9ba957b6cc99c204fe588cc55fbc50) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - - -ROM_START( m4coney ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "70000060.bin", 0x0000, 0x010000, CRC(fda208e4) SHA1(b1a243b2681faa03add4ab6e4df98814f9c52fc5) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - - - - - -ROM_START( m4goldnn ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "goldenyears10.bin", 0x0000, 0x020000, CRC(1074bac6) SHA1(967ee64f267a80017fc95bbc6c5a38354e9cab65) ) - - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) - ROM_LOAD( "tgyosnd.p1", 0x000000, 0x080000, CRC(bda49b46) SHA1(fac143003641824bf0db4ac6841292e509fa00da) ) - ROM_LOAD( "tgyosnd.p2", 0x080000, 0x080000, CRC(43d28a0a) SHA1(5863e493e84641e4fabcd69e6402e3bcca87dde2) ) - ROM_LOAD( "tgyosnd.p3", 0x100000, 0x080000, CRC(b5b9eb68) SHA1(8d5a0a687dd7096da8dfd2a59c6fe96f4b1949f9) ) -ROM_END - - - - - - -ROM_START( m4mgpn ) - ROM_REGION( 0x40000, "maincpu", 0 ) - ROM_LOAD( "mgp15.p1", 0x0000, 0x010000, CRC(ec76233f) SHA1(aa8595c639c83026d7fe5c3a161f8b08ff9a8b46) ) - - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) - ROM_LOAD( "mgpsnd.p1", 0x000000, 0x080000, CRC(d5f0b845) SHA1(6d97d0d4d07407bb0a51e1d62da95c664418a9e9) ) - ROM_LOAD( "mgpsnd.p2", 0x080000, 0x080000, CRC(cefeea06) SHA1(45142ca1bab898dc6f3c32e382ee9157132810a6) ) - ROM_LOAD( "mgpsnd.p3", 0x100000, 0x080000, CRC(be4b3bd0) SHA1(f14c08dc770a24db8bbd00a65d3edf6ee9895ca3) ) - ROM_LOAD( "mgpsnd.p4", 0x180000, 0x080000, CRC(d74b4b03) SHA1(a35c99040a72485a6c2d4a4fdfc203634f6a9ad0) ) -ROM_END - - - - - - - - -ROM_START( m4spotln ) - ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "gsp01.p1", 0x0000, 0x020000, CRC(54c56a07) SHA1(27f21872a7ffe0c497983fa5bbb59e967bf48974) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - - - - - - -ROM_START( m4vivan ) - ROM_REGION( 0x40000, "maincpu", 0 ) - ROM_LOAD( "vlv.bin", 0x0000, 0x010000, CRC(f20c4858) SHA1(94bf19cfa79a1f5347ab61a80cbbce06942187a2) ) - - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) - ROM_LOAD( "vlvsound1.bin", 0x0000, 0x080000, CRC(ce4da47a) SHA1(7407f8053ee482db4d8d0732fdd7229aa531b405) ) - ROM_LOAD( "vlvsound2.bin", 0x0000, 0x080000, CRC(571c00d1) SHA1(5e7be40d3caae88dc3a580415f8ab796f6efd67f) ) -ROM_END - - - - - - - -ROM_START( m4sunseta ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "b2512s.p1", 0x0000, 0x010000, CRC(8c509538) SHA1(eab6a1e44e77cb48cf490616facc74932acc93c5) ) - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "sunsetb.chr", 0x0000, 0x000048, CRC(f166963b) SHA1(5cc6ada61036d8dbeca470e9548f9f5d2bd545a8) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4sunsetb ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "b2512y.p1", 0x0000, 0x010000, CRC(65fa2cd9) SHA1(d2ab1ae25d5425a0788f86535a20d3ebe4a9db2b) ) - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "sunsetb.chr", 0x0000, 0x000048, CRC(f166963b) SHA1(5cc6ada61036d8dbeca470e9548f9f5d2bd545a8) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4sunsetc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sunboul-5p3.bin", 0x0000, 0x010000, CRC(5ccbf062) SHA1(cf587018511d1a06624d271f2fde4e40f16ec87c) ) - ROM_REGION( 0x48, "fakechr", 0 ) - ROM_LOAD( "sunsetb.chr", 0x0000, 0x000048, CRC(f166963b) SHA1(5cc6ada61036d8dbeca470e9548f9f5d2bd545a8) ) - ROM_REGION( 0x100000, "msm6376", ROMREGION_ERASE00 ) -ROM_END - -ROM_START( m4funh ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "funhouse.bin", 0x00000, 0x10000, CRC(4e342025) SHA1(288125ff5e3da7249d89dfcc3cd0915f791f7d43) ) - ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) // no idea if it uses an OKI -ROM_END - - -/* Barcrest */ -GAME( 198?, m4tst2, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Unit Test (Program 2)",MACHINE_MECHANICAL ) -GAME( 198?, m4clr, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Meter Clear ROM",MACHINE_MECHANICAL ) -GAME( 198?, m4rltst, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Reel Test (3.0)",MACHINE_MECHANICAL ) - - - -// other issues -GAME(199?, m4casmul ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Casino Multiplay (Barcrest) (MPU4)",GAME_FLAGS ) - - - -// barcrest, to split -GAME(199?, m4c9c ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Cloud Nine Club (Barcrest) (MPU4) (CNC 2.1)",GAME_FLAGS ) // doesn't boot -GAME(199?, m4ch30 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","unknown MPU4 'CH3 0.1' (Barcrest) (MPU4)",GAME_FLAGS ) - -// corrupt vfd (bwb?) -GAME(199?, m4clbx ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4clbxa ,m4clbx ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4clbxb ,m4clbx ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Club X (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) - -GAME(199?, m4ringfr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Ring Of Fire (Barcrest) (MPU4)",GAME_FLAGS ) -GAME(199?, m4royjwl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Royal Jewels (Barcrest) (MPU4)",GAME_FLAGS ) - -// play but behavior isn't like barcrest -GAME(199?, m4crjwl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4crjwla ,m4crjwl ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4crjwlb ,m4crjwl ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4crjwlc ,m4crjwl ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Club (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) - -GAME(199?, m4crjwl2 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4crjwl2a,m4crjwl2 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4crjwl2b,m4crjwl2 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Crown Jewels Mk II Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) - -GAME(199?, m4supbjc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) // set stake -GAME(199?, m4supbjca,m4supbjc ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) // set stake -GAME(199?, m4supbjcb,m4supbjc ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) // set stake -GAME(199?, m4supbjcc,m4supbjc ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) // set stake -GAME(199?, m4supbjcd,m4supbjc ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Super Blackjack Club (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) // set stake - - - -// corrupt VFD (many XX) -GAME(199?, m4luckwb ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4luckwba ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4luckwbb ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4luckwbc ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) -GAME(199?, m4luckwbd ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) -GAME(199?, m4luckwbe ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 6)",GAME_FLAGS ) -GAME(199?, m4luckwbf ,m4luckwb ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Wild Boar (Barcrest) (MPU4) (set 7)",GAME_FLAGS ) - - -// won't boot with current reel setup, not even in test mode -GAME(199?, m4maglin ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Magic Liner (Barcrest) (MPU4) (DMA2.1)",GAME_FLAGS ) -GAME(199?, m4magdrg ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Magic Dragon (Barcrest) (MPU4) (DMD1.0)",GAME_FLAGS ) -GAME(199?, m4clbveg ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4clbvega,m4clbveg ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4clbvegb,m4clbveg ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4clbvegc,m4clbveg ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Club Vegas (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) -GAME(199?, m4chasei ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4chaseia,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4chaseib,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4chaseic,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) -GAME(199?, m4chaseid,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) -GAME(199?, m4chaseie,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 6)",GAME_FLAGS ) -GAME(199?, m4chaseif,m4chasei ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Chase Invaders (Barcrest) (MPU4) (set 7)",GAME_FLAGS ) - -GAME(199?, m4bluedm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Blue Diamond (Barcrest) (MPU4) (DBD1.0)",GAME_FLAGS ) -GAME(199?, m4amhiwy ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","American Highway (Barcrest) (MPU4) (DAH)",GAME_FLAGS ) -GAME(199?, m4addrd ,m4addr ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Adders & Ladders (Barcrest) (DAL, Dutch) (MPU4)",GAME_FLAGS ) -GAME(199?, m4nudshf ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4nudshfa,m4nudshf ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4nudshfb,m4nudshf ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4nudshfc,m4nudshf ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Nudge Shuffle (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) - -GAME(199?, m4prem ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Premier (Barcrest) (MPU4) (DPM)",GAME_FLAGS ) -GAME(199?, m4rdht ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Red Heat (Golden Nugget?) (Barcrest) (MPU4) (DRH 1.2)",GAME_FLAGS ) -GAME(199?, m4rwb ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Red White & Blue (Barcrest) (MPU4) (DRW)",GAME_FLAGS ) -GAME(199?, m4salsa ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Salsa (Barcrest) (MPU4) (DSA)",GAME_FLAGS ) -GAME(199?, m4techno ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Techno Reel (Barcrest) (MPU4) (DTE) (set 1)",GAME_FLAGS ) -GAME(199?, m4technoa,m4techno ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Techno Reel (Barcrest) (MPU4) (DTE) (set 2)",GAME_FLAGS ) -GAME(199?, m4twintm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Twin Timer (Barcrest) (MPU4) (D2T 1.1)",GAME_FLAGS ) -GAME(199?, m4blkbul ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Super Play (Black Bull?) (Czech) (Barcrest) [XSP] (MPU4)",GAME_FLAGS ) // complains about coin dip -GAME(199?, m4calicl ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4calicla,m4calicl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4caliclb,m4calicl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4caliclc,m4calicl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) -GAME(199?, m4calicld,m4calicl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","California Club (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) - -GAME(199?, m4bucks ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Bucks Fizz Club (Barcrest) (MPU4)",GAME_FLAGS ) - -GAME(199?, m4gldgat ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Golden Gate (Barcrest) [DGG, Dutch] (MPU4)",GAME_FLAGS ) -GAME(199?, m4hirise ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4hirisea,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4hiriseb,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4hirisec,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) -GAME(199?, m4hirised,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) -GAME(199?, m4hirisee,m4hirise ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","High Rise (Barcrest) (MPU4) (set 6)",GAME_FLAGS ) - -GAME(199?, m4nspot ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4nspota ,m4nspot ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4nspotb ,m4nspot ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Night Spot Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) - -GAME(199?, m4supbf ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Super Bucks Fizz Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4supbfa ,m4supbf ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Super Bucks Fizz Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) - -GAME(199?, m4toma ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tomahawk (Barcrest) (MPU4)",GAME_FLAGS ) -GAME(199?, m4tropcl ,0 ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4tropcla,m4tropcl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4tropclb,m4tropcl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4tropclc,m4tropcl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 4)",GAME_FLAGS ) -GAME(199?, m4tropcld,m4tropcl ,mod2_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Tropicana Club (Barcrest) (MPU4) (set 5)",GAME_FLAGS ) - - -// these all seem quite close to Old Timer (unsurprising, many are called XX timer), the 'altreels' is just the same as the oldtimer init, but with the 'guess' CHR emulation -GAME(199?, m4holdtm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Hold Timer (Barcrest) (Dutch) (MPU4) (DHT)",GAME_FLAGS ) -GAME(199?, m4exgam ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Extra Game (Fairplay - Barcrest) (MPU4)",GAME_FLAGS ) -GAME(199?, m4brook ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Brooklyn (Barcrest) (MPU4) (PFT 1.8)",GAME_FLAGS ) -GAME(199?, m4roadrn ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Road Runner (Barcrest) (Dutch) (MPU4) (DRO1.9)",GAME_FLAGS ) -GAME(199?, m4showtm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Show Timer (Barcrest) (Dutch) (MPU4) (DSH1.3)",GAME_FLAGS ) -GAME(199?, m4steptm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Step Timer (Barcrest) (Dutch) (MPU4) (DST 1.1)",GAME_FLAGS ) -GAME(199?, m4toptim ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Top Timer (Barcrest) (Dutch) (MPU4) (DTT) (set 1)",GAME_FLAGS ) -GAME(199?, m4toptima,m4toptim ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Top Timer (Barcrest) (Dutch) (MPU4) (DTT) (set 2)",GAME_FLAGS ) - -GAME(199?, m4univ ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Universe (Barcrest) (Dutch) (MPU4) (DUN)",GAME_FLAGS ) -GAME(199?, m4wildtm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Wild Timer (Barcrest) (Dutch) (MPU4) (DWT 1.3)",GAME_FLAGS ) - - -GAME(199?, m4frtgm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Fruit Game (Barcrest) (MPU4)",GAME_FLAGS ) // SAMPLE EEPROM ALARM (and has a weird sample rom..) -GAME(199?, m4reeltm ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Reel Timer (Barcrest) (MPU4) (DWT)",GAME_FLAGS ) // SAMPLE EEPROM ALARM -GAME(199?, m4fortcb ,0 ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) // INVALID ALARM -GAME(199?, m4fortcba,m4fortcb ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) // INVALID ALARM -GAME(199?, m4fortcbb,m4fortcb ,mod4oki_alt ,mpu4 , mpu4_state,m4altreels ,ROT0, "Barcrest","Fortune Club (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) // INVALID ALARM - - - -// GEEN TUBES (even in test mode) -GAME(199?, m4topdk ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Top Deck (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) - -// non-english sets -GAME(199?, m4magrep ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Magic Replay (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) -GAME(199?, m4nile ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Nile Jewels (Barcrest) (German) (MPU4) (GJN0.8)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4jokmil ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Jokers Millennium (Barcrest) (German) (MPU4)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4drac ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (set 1)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4draca ,m4drac ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (set 2)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4dracb ,m4drac ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Dracula (Barcrest - Nova) (German) (MPU4) (set 3)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwl ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 1)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwla,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 2)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwlb,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 3)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwlc,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 4)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwld,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 5)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwle,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 6)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwlf,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 7)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwlg,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 8)",GAME_FLAGS ) // DM1 SW ALM -GAME(199?, m4crzjwlh,m4crzjwl ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Crown Jewels (Barcrest) (German) (MPU4) (set 9)",GAME_FLAGS ) // DM1 SW ALM - -GAME(199?, m4vegastg,m4vegast ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Vegas Strip (Barcrest) [German] (MPU4)",GAME_FLAGS ) // 1 DM SW ALM -GAME(199?, m4jok300 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Jokers 300 (Barcrest) (German?) (MPU4)",GAME_FLAGS ) // also contains crystal maze stuff?? -GAME(199?, m4luckdv ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Devil (Barcrest) [Czech] (MPU4)",GAME_FLAGS ) // AUX2 locked -GAME(199?, m4luckdvd,m4luckdv ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky Devil (Barcrest) [Dutch] (MPU4) (DLD)",GAME_FLAGS ) -GAME(199?, m4luck7 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Lucky 7 (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) // '1,2' error -GAME(199?, m4joljokh,m4joljok ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Jolly Joker (Barcrest) [Hungarian] (MPU4) (HJJ)",GAME_FLAGS ) -GAME(199?, m4hpyjok ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Happy Joker (Barcrest) (Dutch) (MPU4) (DHJ1.2)",GAME_FLAGS ) -GAME(199?, m4gldjok ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Golden Joker (Barcrest) (Dutch) (MPU4) (DGJ 1.2)",GAME_FLAGS ) -GAME(199?, m4ceptr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ceptor (Barcrest) (Dutch) (MPU4) (DCE 1.0)",GAME_FLAGS ) -GAME(199?, m4blkcat ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Black Cat (Barcrest) (Dutch) (MPU4) (DBL 1.4)",GAME_FLAGS ) -GAME(199?, m4gnsmk ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Gun Smoke (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) -GAME(199?, m4blkbuld,m4blkbul ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Gun Smoke (Barcrest) (Dutch, alt sound roms) (MPU4)",GAME_FLAGS ) // not sure either set of sound roms is right -GAME(199?, m4blkwhd ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Black & White (Barcrest) [Dutch] (MPU4) (DBW 1.1)",GAME_FLAGS ) -GAME(199?, m4oldtmr ,0 ,mod4oki_alt,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Old Timer (Barcrest) (Dutch) (MPU4) (DOT1.1)",GAME_FLAGS ) -GAME(199?, m4casot ,m4oldtmr ,mod4oki_alt,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Old Timer (Barcrest) (Dutch, alt 'Black and White' sound roms) (DOT1.1)",GAME_FLAGS ) // uses the same program??? -GAME(199?, m4jpmcla ,m4oldtmr ,mod4oki_alt,mpu4 , mpu4_state,m_oldtmr ,ROT0, "Barcrest","Old Timer (Barcrest) (Dutch, alt 'JPM Classic' sound roms) (DOT1.1)",GAME_FLAGS ) // uses the same program??? -GAME(199?, m4tbplay ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 1)",GAME_FLAGS ) -GAME(199?, m4tbplaya,m4tbplay ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 2)",GAME_FLAGS ) -GAME(199?, m4tbplayb,m4tbplay ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 3)",GAME_FLAGS ) - -GAME(199?, m4vivalvd,m4vivalv ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Viva Las Vegas (Barcrest) [Dutch] (MPU4) (DLV)",GAME_FLAGS ) - -GAME(199?, m4toprn ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Top Run (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) // unique behavior (START UP IN countdown) - -GAME(199?, m4magtbo ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Magic Turbo (Barcrest) (MPU4)",GAME_FLAGS ) - -// bwb/nova? -GAME(199?, m4ordmnd ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Oriental Diamonds (Barcrest) (German) (MPU4)",GAME_FLAGS ) -// ? -GAME(199?, m4ptblkc ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Pot Black Casino (Bwb - Barcrest) (MPU4)",GAME_FLAGS ) // main cpu crashes? - - -// badchr -GAME(199?, m4take5 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Take 5 (Barcrest) (MPU4)",GAME_FLAGS ) - -// REEL 1 FAULT -GAME(199?, m4twist ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twist Again (Barcrest) (MPU4) (set 1)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT -GAME(199?, m4twista ,m4twist ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twist Again (Barcrest) (MPU4) (set 2)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT -GAME(199?, m4twistb ,m4twist ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Twist Again (Barcrest) (MPU4) (set 3)",GAME_FLAGS ) // TA 9.6 REEL 1 FAULT - - - -// might need samples, but run silent with none -GAME(199?, m4lineup ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Line Up (Bwb - Barcrest) (MPU4) (set 1)",GAME_FLAGS ) // no sound with any system? -GAME(199?, m4lineupa ,m4lineup ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Line Up (Bwb - Barcrest) (MPU4) (set 2)",GAME_FLAGS ) // no sound with any system? - -GAME(199?, m4czne ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Cash Zone (Bwb) (MPU4)",GAME_FLAGS ) -GAME(199?, m4fourmr ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Four More (Bwb) (MPU4)",GAME_FLAGS ) // no sound with either system? -GAME(199?, m4holywd ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Hollywood (Bwb) (MPU4)",GAME_FLAGS ) -GAME(199?, m4specu ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Speculator Club (Bwb) (MPU4)",GAME_FLAGS ) // no sound with either system - - -GAME(199?, m4lazy ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Bwb","Lazy Bones (Bwb) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4lazya ,m4lazy ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Bwb","Lazy Bones (Bwb) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4lazyb ,m4lazy ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Bwb","Lazy Bones (Bwb) (MPU4) (set 3)",GAME_FLAGS ) - -GAME(199?, m4sunclb ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sun Club (Bwb) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4sunclba,m4sunclb ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sun Club (Bwb) (MPU4) (set 2)",GAME_FLAGS ) - -GAME(199?, m4sunscl ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sunset Club (Bwb) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4sunscla,m4sunscl ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sunset Club (Bwb) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4sunsclb,m4sunscl ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Bwb","Sunset Club (Bwb) (MPU4) (set 3)",GAME_FLAGS ) - -GAME(199?, m4bigban ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Big Bandit (Nova) (MPU4)",GAME_FLAGS ) -GAME(199?, m4crzcsn ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Crazy Casino (Nova) (MPU4)",GAME_FLAGS ) -GAME(199?, m4crzcav ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Crazy Cavern (Nova) (MPU4)",GAME_FLAGS ) -GAME(199?, m4dragon ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Dragon (Nova) (MPU4)",GAME_FLAGS ) -GAME(199?, m4hilonv ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Hi Lo Casino (Nova) (MPU4)",GAME_FLAGS ) -GAME(199?, m4octo ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Octopus (Nova) (MPU4)",GAME_FLAGS ) -GAME(199?, m4sctagt ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Nova","Secret Agent (Nova) (MPU4)",GAME_FLAGS ) - - - -/* Others */ - - -GAMEL(199?, m4aao, 0, mod4oki, mpu4, mpu4_state, m4aao , ROT0, "Eurotek","Against All Odds (Eurotek) (MPU4)",GAME_FLAGS, layout_m4aao ) -GAME(199?, m4bandgd, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Eurogames","Bands Of Gold (Eurogames) (MPU4)",GAME_FLAGS ) - -GAME(199?, m4bigben, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 1)",GAME_FLAGS ) -GAME(199?, m4bigbena, m4bigben, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 2)",GAME_FLAGS ) -GAME(199?, m4bigbenb, m4bigben, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 3)",GAME_FLAGS ) -GAME(199?, m4bigbend, m4bigben, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 4)",GAME_FLAGS ) -GAME(199?, m4bigbene, m4bigben, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Coinworld","Big Ben (Coinworld) (MPU4, set 5)",GAME_FLAGS ) -GAME(199?, m4kqclub, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Newby","Kings & Queens Club (Newby) (MPU4)",GAME_FLAGS ) -GAME(199?, m4snookr, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Eurocoin","Snooker (Eurocoin) (MPU4)",GAME_FLAGS ) // works? -GAME(199?, m4stakex, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Leisurama","Stake X (Leisurama) (MPU4, set 1)",GAME_FLAGS ) // has issues with coins in 'separate bank' (default) mode, reel issues -GAME(199?, m4stakexa, m4stakex, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Leisurama","Stake X (Leisurama) (MPU4, set 2)",GAME_FLAGS ) // like above, but doesn't default to separate bank? -GAME(199?, m4boltbl, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 1)",GAME_FLAGS ) // Reel 1 Fault -GAME(199?, m4boltbla, m4boltbl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 2)",GAME_FLAGS ) -GAME(199?, m4boltblb, m4boltbl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 3)",GAME_FLAGS ) -GAME(199?, m4boltblc, m4boltbl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Bolt From The Blue (DJE) (MPU4, set 4)",GAME_FLAGS ) -GAME(199?, m4stand2, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "DJE","Stand To Deliver (DJE) (MPU4)",GAME_FLAGS ) // Reel 1 Fault -GAME(199?, m4dblchn, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "DJE","Double Chance (DJE) (MPU4)",GAME_FLAGS ) // Reels spin forever - -/* Unknown stuff that looks like it might be MPU4, but needs further verification, some could be bad */ - -GAME(199?, m4barcrz , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bar Crazy (unknown) (MPU4?)",GAME_FLAGS ) -GAME(199?, m4bonzbn , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bingo Bonanza (unknown) (MPU4?)",GAME_FLAGS ) -GAME(199?, m4cld02 , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'CLD 0.2C' (MPU4?)",GAME_FLAGS ) -GAME(199?, m4matdr , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Matador (unknown) (MPU4?)",GAME_FLAGS ) -GAME(199?, m4hslo , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'HOT 3.0' (MPU4?)",GAME_FLAGS ) -GAME(199?, m4unkjok , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'Joker' (MPU4?) (set 1)",GAME_FLAGS ) // bad chr -GAME(199?, m4unkjoka, m4unkjok,mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'Joker' (MPU4?) (set 2)",GAME_FLAGS ) // bad chr -GAME(199?, m4unkjokb, m4unkjok,mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'Joker' (MPU4?) (set 3)",GAME_FLAGS ) // bad chr -GAME(199?, m4unkjokc, m4unkjok,mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'Joker' (MPU4?) (set 4)",GAME_FLAGS ) // bad chr -GAME(199?, m4remag , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'ZTP 0.7' (MPU4?)",GAME_FLAGS ) -GAME(199?, m4rmg , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'CTP 0.4' (MPU4?)",GAME_FLAGS ) -GAME(199?, m4wnud , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'W Nudge' (MPU4?)",GAME_FLAGS ) -GAME(199?, m4t266 , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","unknown MPU4 'TTO 1.1' (MPU4?)",GAME_FLAGS ) -GAME(199?, m4brnze , 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bronze Voyage (unknown) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4brnzea , m4brnze, mod4oki, mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bronze Voyage (unknown) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4brnzeb , m4brnze, mod4oki, mpu4, mpu4_state, m4default, ROT0, "<unknown>","Bronze Voyage (unknown) (MPU4) (set 3)",GAME_FLAGS ) - -GAME(199?, m4riotrp , 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "<unknown>","Rio Tropico (unknown) (MPU4)",GAME_FLAGS ) - -/* *if* these are MPU4 they have a different sound system at least - The copyright strings in them are 'AET' tho (Ace?) - Could be related to the Crystal stuff? */ -GAME(199?, m4sbx , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 1)",GAME_FLAGS ) -GAME(199?, m4sbxa , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 2)",GAME_FLAGS ) -GAME(199?, m4sbxb , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 3)",GAME_FLAGS ) -GAME(199?, m4sbxc , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 4)",GAME_FLAGS ) -GAME(199?, m4sbxd , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 5)",GAME_FLAGS ) -GAME(199?, m4sbxe , m4sbx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Super Bear X (MPU4?) (set 6)",GAME_FLAGS ) - -GAME(199?, m4bclimb , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Bear Climber (MPU4?)",GAME_FLAGS ) -GAME(199?, m4captb , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Captain Bear (MPU4?)",GAME_FLAGS ) -GAME(199?, m4jungj , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 1)",GAME_FLAGS ) -GAME(199?, m4jungja , m4jungj, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 2)",GAME_FLAGS ) -GAME(199?, m4jungjb , m4jungj, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 3)",GAME_FLAGS ) -GAME(199?, m4jungjc , m4jungj, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Jungle Japes (MPU4?) (set 4)",GAME_FLAGS ) - -GAME(199?, m4fsx , 0, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 1)",GAME_FLAGS ) -GAME(199?, m4fsxa , m4fsx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 2)",GAME_FLAGS ) -GAME(199?, m4fsxb , m4fsx, mpu4crys ,mpu4, mpu4_state, m_frkstn, ROT0, "AET/Coinworld","Fun Spot X (MPU4?) (set 3)",GAME_FLAGS ) - -GAME(199?, m4ccop , 0, mod4oki ,mpu4_cw,mpu4_state, m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 1)",GAME_FLAGS ) -GAME(199?, m4ccopa , m4ccop, mod4oki ,mpu4_cw,mpu4_state, m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 2)",GAME_FLAGS ) -GAME(199?, m4ccopb , m4ccop, mod4oki ,mpu4_cw,mpu4_state, m4default, ROT0, "Coinworld","Cash Cops (MPU4?) (set 3)",GAME_FLAGS ) - -GAME(199?, m4ccc , 0, mod4oki ,mpu4_cw,mpu4_state, m4default, ROT0, "Coinworld","Criss Cross Crazy (Coinworld) (MPU4?)",GAME_FLAGS ) -GAME(199?, m4treel , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Turbo Reels (unknown) (MPU4?) (set 1)",GAME_FLAGS ) -GAME(199?, m4treela , m4treel, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Turbo Reels (unknown) (MPU4?) (set 2)",GAME_FLAGS ) - - - - -GAME(199?, m4surf, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4surfa,m4surf, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4surfb,m4surf, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Super Surfin' (Gemini) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4wife, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Money Or Yer Wife (Gemini) (MPU4)",GAME_FLAGS ) -GAME(199?, m4blkgd, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Black Gold (Gemini) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4blkgda,m4blkgd, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Gemini","Black Gold (Gemini) (MPU4) (set 2)",GAME_FLAGS ) - -GAME(199?, m4zill, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Pure Leisure","Zillionare's Challenge (Pure Leisure) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4zilla, m4zill, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Pure Leisure","Zillionare's Challenge (Pure Leisure) (MPU4) (set 2)",GAME_FLAGS ) - -GAME(199?, m4hstr, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4hstra,m4hstr, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4hstrb,m4hstr, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Streak (Coinworld) (MPU4) (set 3)",GAME_FLAGS ) - -GAME(199?, m4hstrcs, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4hstrcsa,m4hstrcs, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4hstrcsb,m4hstrcs, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 3)",GAME_FLAGS ) -GAME(199?, m4hstrcsc,m4hstrcs, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 4)",GAME_FLAGS ) -GAME(199?, m4hstrcsd,m4hstrcs, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Casino Happy Streak (Coinworld) (MPU4) (set 5)",GAME_FLAGS ) - -GAME(199?, m4ddb, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Ding Dong Bells (Coinworld) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4ddba, m4ddb, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Ding Dong Bells (Coinworld) (MPU4) (set 2)",GAME_FLAGS ) - -GAME(199?, m4hapfrt, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 1)",GAME_FLAGS ) -GAME(199?, m4hapfrta, m4hapfrt, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 2)",GAME_FLAGS ) -GAME(199?, m4hapfrtb, m4hapfrt, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Coinworld","Happy Fruits (Coinworld) (MPU4) (set 3)",GAME_FLAGS ) - - -GAME(199?, m4sunday, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Pcp","Sunday Sport (Pcp) (MPU4)",GAME_FLAGS ) - -GAME(199?, m4jp777, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Cotswold Microsystems","Jackpot 777 (Cotswold Microsystems) (MPU4)",GAME_FLAGS ) /* Hopper Fault */ -GAME(199?, m4dnj , 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Double Nudge (unknown) (MPU4) (set 1)",GAME_FLAGS ) /* Hopper Fault */ -GAME(199?, m4dnja , m4dnj, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Double Nudge (unknown) (MPU4) (set 2)",GAME_FLAGS ) /* Hopper Fault */ -GAME(199?, m4dnjb , m4dnj, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Double Nudge (unknown) (MPU4) (set 3)",GAME_FLAGS ) /* Hopper Fault */ - -GAME(199?, m4booze, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Extreme","Booze Cruise (Extreme) (MPU4)",GAME_FLAGS ) -GAME(199?, m4cbing, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Redpoint Systems","Cherry Bingo (Redpoint Systems) (MPU4)",GAME_FLAGS ) // custom sound system - - -GAME( 199?, m4nod , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Eurotech", "Nod And A Wink (Eurotech) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data? - - -// not sure about several of the nova ones -GAME( 199?, m4aliz , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Qps", "AlizBaz (Qps) (German) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) -GAME( 199?, m4coney , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Qps", "Coney Island (Qps) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) -GAME( 199?, m4crzjk , 0 , mod2 , mpu4 , mpu4_state, m4default , 0, "Nova?", "Crazy Jokers (Nova?) (MPU4)",GAME_FLAGS ) // COIN ALM -GAME( 199?, m4c2 , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova?", "Circus Circus 2 (Nova?) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // COIN ALM -// regular barcrest structure -GAME( 199?, m4vivan , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Viva Las Vegas (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) -GAME( 199?, m4spotln , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Spotlight (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) -GAME( 199?, m4mgpn , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Monaco Grand Prix (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) -GAME( 199?, m4goldnn , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Golden Years (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) - - - - -GAME(198?, m4funh , 0 , mod4oki ,mpu4 , mpu4_state, m4default , 0, "<unknown>", "Fun House (unknown) (MPU4)", GAME_FLAGS ) // TUNE ALARM (was in the SC1 Fun House set) - - -GAME(199?, m4sunseta ,m4sunset ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 1)",GAME_FLAGS ) -GAME(199?, m4sunsetb ,m4sunset ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 2)",GAME_FLAGS ) -GAME(199?, m4sunsetc ,m4sunset ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Sunset Boulevard (Barcrest) (MPU4) (OSB 0.2)",GAME_FLAGS ) // might be a mod 2 diff --git a/src/mame/drivers/mpu4avan.hxx b/src/mame/drivers/mpu4avan.cpp index a1cba524141..ac610909a87 100644 --- a/src/mame/drivers/mpu4avan.hxx +++ b/src/mame/drivers/mpu4avan.cpp @@ -7,11 +7,13 @@ I think some might be dual unit setups, some roms are marked top/bottom */ +#include "emu.h" +#include "includes/mpu4.h" MACHINE_CONFIG_EXTERN( mod4oki ); INPUT_PORTS_EXTERN( mpu4 ); - +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) #undef GAME_CUSTOM #define GAME_CUSTOM(year, setname,parent,name,offset,length,hash,company,title) \ diff --git a/src/mame/drivers/mpu4bwb.hxx b/src/mame/drivers/mpu4bwb.cpp index 11caa86c32e..7cd3bc76b29 100644 --- a/src/mame/drivers/mpu4bwb.hxx +++ b/src/mame/drivers/mpu4bwb.cpp @@ -21,11 +21,15 @@ */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4oki ); MACHINE_CONFIG_EXTERN( bwboki ); MACHINE_CONFIG_EXTERN( mod2 ); INPUT_PORTS_EXTERN( mpu4 ); +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) #define M4BIGMT_EXTRA_ROMS \ ROM_REGION( 0x180000, "altmsm6376", 0 ) /* this is NOT the same, some samples are changed */ \ diff --git a/src/mame/drivers/mpu4concept.hxx b/src/mame/drivers/mpu4concept.cpp index 0b26e132cec..9ce465f8a4f 100644 --- a/src/mame/drivers/mpu4concept.hxx +++ b/src/mame/drivers/mpu4concept.cpp @@ -2,9 +2,14 @@ // copyright-holders:David Haywood /* MPU4 games by 'Concept' */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4oki ); INPUT_PORTS_EXTERN( mpu4 ); +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) + #define M4RHFEVC_EXTRA_ROMS \ ROM_REGION( 0x080000, "msm6376", 0 ) \ ROM_LOAD( "rhfs1.bin", 0x0000, 0x03de5e, CRC(0dddd05f) SHA1(908a58752fb1cf76667695a40bcaa7778201c3a2) ) diff --git a/src/mame/drivers/mpu4crystal.hxx b/src/mame/drivers/mpu4crystal.cpp index e3b9eda1f34..a14016d7bc2 100644 --- a/src/mame/drivers/mpu4crystal.hxx +++ b/src/mame/drivers/mpu4crystal.cpp @@ -4,6 +4,9 @@ /* Crystal games tend to have scrambled ROM + a different sound chip */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4oki ); MACHINE_CONFIG_EXTERN( mpu4crys ); INPUT_PORTS_EXTERN( mpu4 ); @@ -752,7 +755,7 @@ ROM_START( m4ndupc ) M4NDUP_SOUND ROM_END - +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) GAME(199?, m4frkstn ,0 ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) GAME(199?, m4frkstna,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/mpu4empire.hxx b/src/mame/drivers/mpu4empire.cpp index 7b8c7bcfb45..2588230f782 100644 --- a/src/mame/drivers/mpu4empire.hxx +++ b/src/mame/drivers/mpu4empire.cpp @@ -2,6 +2,9 @@ // copyright-holders:David Haywood /* MPU4 games by 'Empire' */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4oki ); INPUT_PORTS_EXTERN( mpu4 ); @@ -852,6 +855,7 @@ ROM_START( m4jne ) ROM_END +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) /* Empire diff --git a/src/mame/drivers/mpu4mdm.hxx b/src/mame/drivers/mpu4mdm.cpp index a188487166a..87ea9938c1e 100644 --- a/src/mame/drivers/mpu4mdm.hxx +++ b/src/mame/drivers/mpu4mdm.cpp @@ -2,6 +2,9 @@ // copyright-holders:David Haywood /* MPU4 games by MDM */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4oki ); INPUT_PORTS_EXTERN( mpu4 ); @@ -404,6 +407,7 @@ ROM_START( m4ewshft ) ROM_LOAD( "each_way_shifter-snd2.bin", 0x080000, 0x080000, CRC(e3ce5ec5) SHA1(9c7eefa4042b1b1aca3d0fbefcad10db34992c43) ) ROM_END +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) /* MDM most of these boot and act similar to the Empire games (ie bad text, but run OK) */ diff --git a/src/mame/drivers/mpu4misc.hxx b/src/mame/drivers/mpu4misc.cpp index 7838c9d4c51..327ec54c461 100644 --- a/src/mame/drivers/mpu4misc.hxx +++ b/src/mame/drivers/mpu4misc.cpp @@ -2,6 +2,9 @@ // copyright-holders:David Haywood /* MPU4 sets from various other manufactuers which appear to be based off unique code / behaviors (no barcrest headers etc.) */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4oki ); INPUT_PORTS_EXTERN( mpu4 ); @@ -138,6 +141,7 @@ ROM_START( m4jiggina ) M4JIGGIN_SOUND ROM_END +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) #define M4DCRLS_EXTRA_ROMS \ ROM_REGION( 0x200000, "msm6376", ROMREGION_ERASE00 ) \ diff --git a/src/mame/drivers/mpu4mod2sw.hxx b/src/mame/drivers/mpu4mod2sw.cpp index 076049d65d2..1b3963cb28a 100644 --- a/src/mame/drivers/mpu4mod2sw.hxx +++ b/src/mame/drivers/mpu4mod2sw.cpp @@ -13,6 +13,10 @@ sounds for me to know they use the AY. */ + +#include "emu.h" +#include "includes/mpu4.h" + #include "m4actclb.lh" #include "m4actpak.lh" #include "m4alladv.lh" @@ -1754,7 +1758,7 @@ ROM_START( m4brktak ) ROM_LOAD( "b-t v1-0 p2", 0x8000, 0x004000, CRC(7465cc6f) SHA1(f984e41c310bc58d7a668ec9f31c238fbf5de9c6) ) ROM_END - +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) GAME(199?, m4rsg ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type, V1.2)",GAME_FLAGS ) GAME(199?, m4rsga ,m4rsg ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Ready Steady Go (Barcrest) (MPU4, Mod 2 type, V1.0)",GAME_FLAGS ) diff --git a/src/mame/drivers/mpu4mod4yam.hxx b/src/mame/drivers/mpu4mod4yam.cpp index 84f3ddd7878..643207b831d 100644 --- a/src/mame/drivers/mpu4mod4yam.hxx +++ b/src/mame/drivers/mpu4mod4yam.cpp @@ -2,6 +2,9 @@ // copyright-holders:David Haywood /* This is MPU4 MOD4 with a Y2413 instead of an OKI */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4yam ); INPUT_PORTS_EXTERN( mpu4 ); @@ -227,7 +230,7 @@ ROM_START( m4voodoo ) ROM_LOAD( "ddo32", 0x0000, 0x010000, CRC(260dfef1) SHA1(2b4918e40808963a86d289cd251740a9b0bed70a) ) ROM_END - +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) #undef GAME_CUSTOM #define GAME_CUSTOM(year, setname,parent,name,offset,length,hash,company,title) \ diff --git a/src/mame/drivers/mpu4sw.hxx b/src/mame/drivers/mpu4sw.cpp index fb871385700..2c4f2335cf7 100644 --- a/src/mame/drivers/mpu4sw.hxx +++ b/src/mame/drivers/mpu4sw.cpp @@ -19,6 +19,9 @@ */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4yam ); MACHINE_CONFIG_EXTERN( mod4oki ); MACHINE_CONFIG_EXTERN( mod2 ); @@ -176,6 +179,7 @@ DRIVER_INIT_MEMBER(mpu4_state,m4andycp) //Front door code 39 Cash door code 38 } +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) #define M4ANDYCP_EXTRA_ROMS \ ROM_REGION( 0x48, "fakechr", 0 ) \ @@ -202,6 +206,8 @@ ROM_START( m4andycp10c ) M4ANDYCP_EXTRA_ROMS ROM_END +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) + GAME( 1994, m4andycp10c, m4andycp, mod4oki, mpu4, mpu4_state, m4_andycp10c , ROT0, "Bwb", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10C)",GAME_FLAGS ) GAME_CUSTOM( 1994, m4andycp10d, m4andycp, "ac_10sd_.1_1", 0x0000, 0x010000, CRC(ec800208) SHA1(47734ae5a3184e4805a7620287fb5da7fe823929), "Bwb", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10D)" ) // datapak diff --git a/src/mame/drivers/mpu4union.hxx b/src/mame/drivers/mpu4union.cpp index 4a335b060af..d1656115bf8 100644 --- a/src/mame/drivers/mpu4union.hxx +++ b/src/mame/drivers/mpu4union.cpp @@ -2,6 +2,9 @@ // copyright-holders:David Haywood /* MPU4 games by 'Union' */ +#include "emu.h" +#include "includes/mpu4.h" + MACHINE_CONFIG_EXTERN( mod4oki ); MACHINE_CONFIG_EXTERN( mod2 ); INPUT_PORTS_EXTERN( mpu4 ); @@ -250,6 +253,7 @@ ROM_END +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) /* Union diff --git a/src/mame/drivers/namcond1.cpp b/src/mame/drivers/namcond1.cpp index 216bef55771..9e8a68f9fee 100644 --- a/src/mame/drivers/namcond1.cpp +++ b/src/mame/drivers/namcond1.cpp @@ -9,64 +9,180 @@ James Jenkins Walter Fath - Currently Supported Games: - Namco Classic Vol #1 - Namco Classic Vol #2 + abcheck TODOs: + - Default eeprom. AT28C16 writes 0x820 byte nvram, but will only accept 0x800. Why? + - YGV608 brokenness + - Hook up controls properly (two buttons only for 3 players, and only 1 coin slot, mapped as player 2) + + To make abcheck run when the EEPROM is clear: + - F2 to enter service mode + - Player 3 A/B to navigate to GAME OPTIONS + - Player 1 A to enter, Player 1 B to cancel or go back + - Go to LOCAL SELECT and choose the Japanese city of your choice (I don't know what it affects yet) + - Exit test mode (F2) and reset (F3) and the game will boot + +----------------------------------- +Guru-Readme for Namco ND-1 hardware +----------------------------------- + +Games on this system include... +Namco Classics Volume 1 (Namco 1995) +Namco Classics Volume 2 (Namco 1996) +Abnormal Check (Namco 1996) + PCB Layout ---------- +ND-1 GAME PCB +8655960101 (8655970101) - for Namco Classics 1 & 2 + +ND-1 GAME(B) PCB +8655960401 (8655970401) - for Namco Classics 1 & 2 -8655960101 (8655970101) +ND-1 GAME(C) PCB +8655960500 (8655970500) - for Abnormal Check |----------------------------------------| -| LA4705 NC1_MAIN0B.14D 68000 | -| 4558 LC78815 NC1_MAIN1B.13D | -|J POT1 | -| AT28C16 | +| LA4705 MAIN0 68000 | +| 4558 LC78815 MAIN1 | +|J VR1 | +| NFA221 AT28C16 | |A | -| | -|M | -| NC1_CG0.10C * | -|M M9524LT | -| POT2 | +| NFA222 | +|M CG0 CG1* | +| LT1109 | +|M NFA222 LM1203 | +| VR2 J3| |A | -| YGV608-F | -| | -| | -| NC1_VOICE.7B 49.152MHz | +| NFA222 YGV608-F | +| SW1 | +| VOICE | +| NFA222* 49.152MHz | |N 25.326MHz | -|A | -|M C352 | -|C MACH210 C416 | -|O | -|4 | -|8 H8/3002 62256 | -| NC1_SUB.1C 62256 | +|A NFA222* | +|M C352 | +|C NFA221* MACH210 C416 | +|O IR2C24* | +|4 PC410* MB3771| +|8 NFA222* H8/3002 62256 | +| PC410* SUB 62256 | |----------------------------------------| Notes: - 68000 clock : 12.288MHz (49.152 / 4) - H8/3002 clock: 16.384MHz (49.152 / 3) - C352 clock: 24.576MHz (49.152 / 2) - VSync : 60Hz - - POT1 : Master volume - POT2 : Brightness adjustment (video level) - M9524LT : ? possibly some sort of RGB video output chip - AT28C16 : 2K x8 EEPROM - YGV608-F: Yamaha YVG608-F video controller - C352 : Namco custom QFP100 - C416 : Namco custom QFP176 - H8/3002 : Hitachi H8/3002 HD6413002F16 QFP100 microcontroller (H8/3002 has no internal ROM capability) - MACH210 : PLCC44 CPLD, Namco KEYCUS, stamped 'KC001' - 62256 : 32K x8 SOJ28 SRAM - * : Unpopulated position for SOP44 Mask ROM 'CG1' - - NC1_MAIN0B.14D: 512K x16 EPROM type 27C240 - NC1_MAIN1B.13D: 512K x16 EPROM type 27C240 - NC1_SUB.1C : 512K x16 EPROM type 27C240 - NC1_CG0.10C : 16MBit SOP44 Mask ROM - NC1_VOICE.7B : 16MBit SOP44 Mask ROM - - *************************************************************/ + 68000 - Motorola MC68HC000FN12 Micro-Processor (PLCC68). Clock input 12.288MHz (49.152/4) + H8/3002 - Hitachi H8/3002 HD6413002F16 Micro-Controller (QFP100). Clock input 16.384MHz (49.152/3) + Note the H8/3002 has no internal ROM capability. + C352 - Namco custom 32-voice 4-channel PCM sound chip (QFP100). Clock input 24.576MHz (49.152/2) + Note this is probably a Micro-Controller with internal ROM. + HSync - 15.4700kHz + VSync - 59.9648Hz + J3 - 100-pin connector for daughter board (not populated on Namco Classics 1 & 2) + SW1 - 2-position DIP Switch + VR1 - Master volume + VR2 - Brightness adjustment (video level) + LM1203 - National LM1203 RGB VIDEO AMP (DIP28). Note on some PCB revisions there is a capacitor glued on top of this chip. + AT28C16 - Atmel 2k x8-bit EEPROM (DIP24) + YGV608-F - Yamaha YVG608-F video controller (QFP100) + LT1109 - Linear Technology LT1109A DC/DC converter (SOIC8). Note on some PCB revisions this is not present. If the IC is required there + is an additional 'SREG PCB' with the LT1109 and other support components present at this location. + C416 - Namco custom (QFP176), Memory/DMA Controller + MACH210 - AMD MACH211 CPLD, used as Namco "KEYCUS" protection chip (PLCC44) + - for Namco Classics 1 stamped 'KC001' at 3C + - for Namco Classics 2 stamped 'KC002' at 3C + - for Abnormal Check stamped 'KC008' at 3D + 62256 - 32k x8-bit SRAM (SOJ28) + MB3771 - Fujitsu MB3771 Master Reset IC (SOIC8) + IR2C24 - Sharp IR2C24 6-Circuit 320mA Transistor Array with Clamping Diodes and Strobe (SOIC16) + PC410 - Sharp PC410 Ultra-high Speed Response OPIC Photocoupler (SOIC5) + NFA221 - muRata NFA221 Capacitor Array EMI Suppression Filter + NFA222 - muRata NFA222 Capacitor Array EMI Suppression Filter + * - Not populated on Namco Classics 1 & 2 + + + ROMs: (note IC locations are different between GAME+GAME(B) and GAME(C) PCBs. + + Namco Classics Volume 1 + ------------------------- + NC2 MAIN0B.14D - 512k x16-bit EPROM type 27C240/27C4002 (for Japan: NC1) (revisions: MAIN0 or MAIN0B) + NC2 MAIN1B.13D - 512k x16-bit EPROM type 27C240/27C4002 (for Japan: NC1) (revisions: MAIN1 or MAIN1B) + NC1 SUB.1C - 512k x16-bit EPROM type 27C240/27C4002 + NC1 CG0.10C - 16M-bit SOP44 mask ROM + NC1 VOICE.7B - 16M-bit SOP44 mask ROM + + Namco Classics Volume 2 + ------------------------- + NCS2 MAIN0B.14D - 512k x16-bit EPROM type 27C240/27C4002 (for Japan: NCS1) (revisions: MAIN0 or MAIN0B) + NCS2 MAIN1B.13D - 512k x16-bit EPROM type 27C240/27C4002 (for Japan: NCS1) (revisions: MAIN1 or MAIN1B) + NCS1 SUB.1C - 512k x16-bit EPROM type 27C240/27C4002 + NCS1 CG0.10C - 16M-bit SOP44 mask ROM + NCS1 VOICE.7B - 16M-bit SOP44 mask ROM + + Abnormal Check + ------------------------- + AN1 MAIN0B.14E - 512k x16-bit EPROM type 27C240/27C4002 + AN1 MAIN1B.13E - 512k x16-bit EPROM type 27C240/27C4002 + AN1 SUB.1D - 512k x16-bit EPROM type 27C240/27C4002 + AN1 CG0.10E - 16M-bit SOP44 mask ROM + AN1 CG1.10F - 16M-bit SOP44 mask ROM + AN1 VOICE.7C - 16M-bit SOP44 mask ROM + + +------------------------------------------------------ +Additional Guru-Readme for Abnormal Check (Namco 1996) +------------------------------------------------------ + +Main PCB is common Namco ND-1 hardware documented above. +Several parts that were not populated on the GAME/GAME(B) PCB near the NAMCO48 connector +are populated on this revision and the NAMCO48 connector is used. +Because of the changes the PCB is marked 'GAME(C) PCB' with numbers 8655960500 (8655970500). +The other main difference is the presence of an extra connector on one edge between +the 68000 and the C416, labelled J3. +Most of the parts on the GAME(C) PCB have different locations, however the PCB appears +to be electrically identical to the earlier revision ND-1 GAME PCB. + +There is an extra daughter board 115mm x 110mm plugged into connector J3. +The PCB is marked "M122 MEM/PRN PCB 1507960103 (1507970103) +The PCB contains the following parts.... +1x ST 27C4002 EPROM (DIP40 at IC1) +2x ST M48Z30Y ZEROPOWER RAM (DIP28 at IC2 & IC3) +2x 74HC244 logic (SOIC20) +2x Toshiba TD64064 Darlington Driver (SOIC18) +1x AMD MACH120 CPLD (PLCC68 at IC8) +1x 10-pin JST connector labelled J11 for connection to the printer. +1x 20-pin flat cable connector labelled J12 for connection to the printer. + +Partial Pinout of J12 +---------------------- + GND 10b 10a GND + ERROR 9b 9a + EMPTY 8b 8a BUSY + 7b 7a + 6b 6a + 5b 5a + 4b 4a + 3b 3a + +12V 2b 2a +5V + GND 1b 1a GND + +To get the board to boot some pins on the J12 connector must be set to 0 or 1 (tied to ground or +5V). +The status can be checked in test mode in the "Printer Test" menu. +ERROR = HIGH (No Error) +EMPTY = LOW (Not Empty) +BUSY = LOW (Ready) + +Connected to J11/J12 is a thermal printer. It prints on a roll of 2 1/4" wide thermal paper. +Bolted onto the metal frame is a small 80mm square PCB. There is no manufacturer name on it +and only some numbers/letters "32-104C SEC-A" +The PCB contains the following parts.... +1x 27C010 128k x8-bit EPROM (DIP32 at U9) +1x 16M-bit mask ROM (SOP44 at U4) +1x 8-position DIP Switch labelled SW1. Position 2 is on, all others are off +1x NEC uPC393 Dual Comparitor (SIL9) +1x Sanyo LB1650 Dual-Directional Motor Driver (DIP16) +1x Maxim MAX202 RS232 Transceiver (SOIC16) +1x Toshiba TC55257 32k x8-bit SRAM (TSOP28) +1x Toshiba TMP95C061AF TLCS90/900 compatible 16-bit Micro-Controller (TQFP100). Note there is no internal ROM capability. +Some logic, resistors/caps/transistors, some connectors etc. + +*************************************************************/ #include "emu.h" #include "includes/namcond1.h" @@ -84,7 +200,21 @@ Notes: static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16, namcond1_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("shared_ram") - AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("ygv608", ygv608_device, read, write) + AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE8("ygv608", ygv608_device, read, write, 0xff00) + AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00) +#ifdef MAME_DEBUG + AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD("ygv608", ygv608_device, debug_trigger_r) +#endif + AM_RANGE(0xc3ff00, 0xc3ffff) AM_READWRITE(cuskey_r,cuskey_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( abcheck_map, AS_PROGRAM, 16, namcond1_state ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM + AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("shared_ram") + AM_RANGE(0x600000, 0x607fff) AM_RAM AM_SHARE("zpr1") + AM_RANGE(0x608000, 0x60ffff) AM_RAM AM_SHARE("zpr2") + AM_RANGE(0x780000, 0x780001) AM_READ(printer_r) + AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE8("ygv608", ygv608_device, read, write, 0xff00) AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00) #ifdef MAME_DEBUG AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD("ygv608", ygv608_device, debug_trigger_r) @@ -92,6 +222,15 @@ static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16, namcond1_state ) AM_RANGE(0xc3ff00, 0xc3ffff) AM_READWRITE(cuskey_r,cuskey_w) ADDRESS_MAP_END +READ16_MEMBER(namcond1_state::printer_r) +{ + // bits tested: + // bit 2 = 0 for paper cut switch on, 1 for off + // bit 4 = 0 for paper OK, 1 for empty + // bit 5 = 1 for normal status, 0 for error + return 0x0020; +} + /*************************************************************/ static INPUT_PORTS_START( namcond1 ) @@ -102,7 +241,7 @@ static INPUT_PORTS_START( namcond1 ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) @@ -110,7 +249,7 @@ static INPUT_PORTS_START( namcond1 ) PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) PORT_START("DSW") @@ -127,6 +266,26 @@ static INPUT_PORTS_START( namcond1 ) PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END +static INPUT_PORTS_START( abcheck ) + PORT_INCLUDE( namcond1 ) + + PORT_MODIFY("P1_P2") + PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 A") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 B") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 A") + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 B") + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) PORT_NAME("P3 A") + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_NAME("P3 B") + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_MODIFY("DSW") + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN1 ) +INPUT_PORTS_END + READ16_MEMBER(namcond1_state::mcu_p7_read) { @@ -224,6 +383,15 @@ static MACHINE_CONFIG_START( namcond1 ) MCFG_YGV608_PALETTE("palette") MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( abcheck, namcond1 ) + MCFG_CPU_REPLACE("maincpu", M68000, XTAL_49_152MHz/4) + MCFG_CPU_PROGRAM_MAP(abcheck_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", namcond1_state, irq1_line_hold) + + MCFG_NVRAM_ADD_0FILL("zpr1") + MCFG_NVRAM_ADD_0FILL("zpr2") +MACHINE_CONFIG_END + ROM_START( ncv1 ) ROM_REGION( 0x100000,"maincpu", 0 ) /* 16MB for Main CPU */ ROM_LOAD16_WORD( "nc2main0.14d", 0x00000, 0x80000, CRC(4ffc530b) SHA1(23d622d0261a3584236a77b2cefa522a0f46490e) ) @@ -301,8 +469,38 @@ ROM_START( ncv2j ) ROM_LOAD( "ncs1voic.7c", 0x000000, 0x200000, CRC(ed05fd88) SHA1(ad88632c89a9946708fc6b4c9247e1bae9b2944b) ) ROM_END +ROM_START( abcheck ) + ROM_REGION( 0x100000,"maincpu", 0 ) /* 16MB for Main CPU */ + ROM_LOAD( "an1main0b.14e", 0x000000, 0x080000, CRC(f1b9777d) SHA1(b28f4106e1e145dc1aaa5af455b6f991d2b04c59) ) + ROM_LOAD( "an1main1b.13e", 0x080000, 0x080000, CRC(d40ccdcc) SHA1(05f864d84bf34a1722c598378ed8d27fba00f575) ) + + ROM_REGION( 0x80000,"mcu", 0 ) /* sub CPU */ + ROM_LOAD( "an1sub.1d", 0x000000, 0x080000, CRC(50de9130) SHA1(470b3977f4bf12ca65bc42631ccdf81753ef56fd) ) + + ROM_REGION( 0x400000,"ygv608", 0 ) /* 4MB character generator */ + ROM_LOAD( "an1cg0.10e", 0x000000, 0x200000, CRC(6dae0531) SHA1(2f4a4a22d461eb9a5bb88bdfccc3aff44cd3faee) ) + ROM_LOAD( "an1cg1.10f", 0x200000, 0x200000, CRC(8485607a) SHA1(1b9a1950c6db61a2b546fe2f5e56333593e93fb4) ) + + ROM_REGION( 0x1000000, "c352", 0 ) // Samples + ROM_LOAD( "an1voice.7c", 0x000000, 0x200000, CRC(d2bfa453) SHA1(6b7d6bb4d65290d8fd3df5d12b41ae7dce5f3f1c) ) + + ROM_REGION( 0x80000, "data", 0 ) // game data? + ROM_LOAD( "an1dat0.ic1", 0x000000, 0x080000, CRC(44dc7da1) SHA1(dd57670a2b07c4988ca30bba134931c1701a926f) ) + + ROM_REGION( 0x8000, "zpr1", 0 ) + ROM_LOAD( "m48z30y.ic2", 0x000000, 0x008000, CRC(a816d989) SHA1(c78fe06b049c31cf8de2a79025823dbc0c95d526) ) + + ROM_REGION( 0x8000, "zpr2", 0 ) + ROM_LOAD( "m48z30y.ic3", 0x000000, 0x008000, CRC(bfa687bb) SHA1(463ae40f21b675f3b4155efda9c965b71519a49e) ) + + ROM_REGION( 0x220000, "printer", 0 ) + ROM_LOAD( "np-b205_nmc_ver1.00.u9", 0x000000, 0x020000, CRC(445ceb0d) SHA1(49491b936f50577564196992df3a3c93aa3fcc99) ) + ROM_LOAD( "npg1624lc.u4", 0x020000, 0x200000, CRC(7e00254f) SHA1(b0fa8f979e8322d71f842de5358ae2a2e36386f7) ) +ROM_END + GAME( 1995, ncv1, 0, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1995, ncv1j, ncv1, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1995, ncv1j2, ncv1, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1996, ncv2, 0, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) GAME( 1996, ncv2j, ncv2, namcond1, namcond1, namcond1_state, 0, ROT90, "Namco", "Namco Classic Collection Vol.2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, abcheck, 0, abcheck, abcheck, namcond1_state, 0, ROT0, "Namco", "Abnormal Check", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NODEVICE_PRINTER | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/neodriv.hxx b/src/mame/drivers/neodriv.hxx deleted file mode 100644 index 3fddef2b430..00000000000 --- a/src/mame/drivers/neodriv.hxx +++ /dev/null @@ -1,9099 +0,0 @@ - - -// non-configurable slot (to be used for non-softlist sets, until we introduce some 'template' concept) -// a single cart in slot 1, with pre-defined cart type -#define NEOGEO_CONFIG_ONE_FIXED_CARTSLOT(_default) \ - MCFG_NEOGEO_CARTRIDGE_ADD("cslot1", neogeo_cart, _default) \ - MCFG_SET_IMAGE_LOADABLE(false) - - -// machine configw for one-game fixed config, loaded without using softlists - -static MACHINE_CONFIG_DERIVED( neobase, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END - -// used by fatfury2 & ssideki -static MACHINE_CONFIG_DERIVED( fatfur2, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_fatfur2") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kizuna4p, neogeo_arcade ) - MCFG_DEVICE_REMOVE("edge") - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true) - - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof97oro, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kof97oro") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kog, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kog") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( irrmaze, neogeo_arcade ) - MCFG_DEVICE_REMOVE("edge") - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true) - - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof98, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_kof98") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( mslugx, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_mslugx") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof99, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof99") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof99k, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_kof99k") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( garou, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garou") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( garouh, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garouh") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( garoubl, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_garoubl") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( mslug3, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_mslug3") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( mslug3h, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_mslug3h") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( mslug3b6, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_mslug3b6") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof2000, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof2k") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof2000n, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2000n") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( zupapa, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_zupapa") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( sengoku3, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_sengoku3") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof2001, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2001") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( cthd2k3, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_cthd2k3") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( ct2k3sp, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sp") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( ct2k3sa, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sa") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof2002, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kof2k2") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof2002b, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2b") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kf2k2pls, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kf2k2p") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kf2k2mp, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kf2k2mp2, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp2") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof10th, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10th") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kf10thep, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10thep") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kf2k5uni, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k5uni") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof2k4se, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k4se") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( mslug5, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_mslug5") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( ms5plus, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ms5plus") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( svc, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_svc") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( svcboot, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcboot") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( svcplus, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplus") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( svcplusa, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplusa") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( svcsplus, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcsplus") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( samsho5, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_samsh5") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( samsho5b, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_samsho5b") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof2003, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kof2003h, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3h") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kf2k3bl, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3bl") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kf2k3pl, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3pl") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( kf2k3upl, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3upl") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( samsh5sp, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_sams5s") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( neogeo_mj, neogeo_arcade ) - //no joystick panel - MCFG_DEVICE_REMOVE("edge") - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "", true) - - //P1 mahjong controller - MCFG_DEVICE_REMOVE("ctrl1") - MCFG_DEVICE_REMOVE("ctrl2") - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "mahjong", true) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true) - - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( preisle2, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_preisle2") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( nitd, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_nitd") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( s1945p, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_s1945p") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( lans2004, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_lans2004") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( pnyaa, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_pnyaa") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( popbounc, neogeo_arcade ) - MCFG_DEVICE_REMOVE("edge") - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "dial", true) - - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( ganryu, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_ganryu") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( bangbead, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_bangbead") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( mslug4, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_mslug4") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( ms4plus, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_ms4p") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( rotd, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_rotd") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( matrim, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_matrim") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( matrimbl, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_matrimbl") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( jockeygp, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_jockeygp") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( vliner, neogeo_arcade ) - // input handlers are installed at DRIVER_INIT... - MCFG_DEVICE_REMOVE("edge") - MCFG_DEVICE_REMOVE("ctrl1") - MCFG_DEVICE_REMOVE("ctrl2") - - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_vliner") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_DERIVED( sbp, neogeo_arcade ) - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_sbp") -MACHINE_CONFIG_END - - - -/************************************* - * - * Official sets - * - ************************************* - - About supported sets: - ===================== - - MVS carts (arcade) were released before the AES carts (home) - The actual codepath taken depends entirely on the BIOS rom, not the roms in the cartridge, which (with - a few exceptions) support both codepaths. - - The initial AES releases are therefore later revisions of the game, often with bug fixes over the - initial MVS releases. It isn't uncommon for later production runs and bootlegs to use these newer sets, - so all of them are supported in MAME. - - Likewise, because the MVS carts were released first (and were produced in higher numbers and generally - have a lower cost) it's not uncommon for AES units to operate with converted MVS carts, so, with the - exception of the sets that specifically lock out the AES mode* these sets are all equally suitable - for MESS. - * nitd, kof2001 (initial release has no AES code), and a number of the hacked bootlegs. - - The 'MVS ONLY RELEASE' tagged sets were not officially released for the AES (home) system. - Information about this can be found at 'The NeoGeo Master List' (unofficial) - http://www.neo-geo.com - and the official NeoGeo museum - http://neogeomuseum.snkplaymore.co.jp/english/index.php - Several unofficial 'conversions' of these sets can be found across the internet. - For completeness sake: Some of these have sets have been released for the CD system. - - - M1 (sound driver) rom information: - ================================== - . Many 'M1' roms contain mirrored data (64k mirrored or 128k mirrored). - . Found on several early sets (ID 0001 ~ 0045) and on the last sets (ID 0267 ~ 0272). - . This caused some confusion and incorrect rom sizes. - . Minimum 'M1' size is 1mbit, maximum size 4mbit. - . The remaining 64k 'M1' are marked BAD_DUMP. - - - S1 (text layer) rom information: - ================================ - . All 'S1' roms found on prom are 1mbit. - . The remainig 64k 'S1' are marked BAD_DUMP. - - - MULTI PLAY MODE: - ================ - The NeoGeo has three games which support MULTI PLAY MODE (Riding Hero / League Bowling / Trash Rally). - This allows you to 'link' 4 games (MVS) / 2 games (AES) using in game 'Multi-Play' option. To establish - a link between the carts you have to connect the carts to each other by a communicator cable. The communicatior - cable is a regular headphone cable with stereo pin jack. It has been reported that you can also 'link' MVS <-> AES. - - All three games use a special PROG board for MULTI PLAY MODE support: - . Riding Hero (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO) - . League Bowling (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO) - . Trash Rally (AES - NEO-AEG PROG42G-COM / NEO-MVS PROG42G-COM) - - A HD6301V1P MCU on the above boards is used for establishing the 'link'. The MCU has a 4kb internal ROM which - is not dumped. - To use the MULTI PLAY MODE on your MVS you have to set the following hardware dips: - HARD DIP SETTING 4 5 6 - CABINET 1: OFF OFF ON - CABINET 2: OFF ON ON - CABINET 3: ON OFF ON - CABINET 4: ON ON ON - - - SPHERO SYMPHONY: - ================ - Several early games have a 'feature' called "sphero symphony". None of the games featuring "sphero symphony" - uses special hardware. It is something sound based, but what exactly it is (specially arragend samples, - FM synthesis etc.) is unknown. The AES and MVS releases share the same sound data and driver. - - The AES game-inserts and manuals have an eye-shaped logo with the following text (not to be found on MVS sets): - sphero - symphony - STEREOPHONIC SOUND - - Experience this "LIVE" 3 dimensional sound coming from all around you. - - Games featuring "sphero symphony": - ID-0006 - Riding Hero - ID-0007 - Alpha Mission II / ASO II - Last Guardian - ID-0009 - Ninja Combat - ID-0010 - Cyber-Lip - ID-0011 - The Super Spy - ID-0014 - Mutation Nation - ID-0017 - Sengoku / Sengoku Denshou - ID-0018 - Burning Fight - ID-0020 - Ghost Pilots - ID-0024 - Last Resort - ID-0031 - Soccer Brawl - ID-0033 - Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai - ID-0034 - Football Frenzy - ID-0037 - Crossed Swords - ID-0038 - Thrash Rally - ID-0039 - King of the Monsters 2 - The Next Thing - ID-0041 - Baseball Stars 2 - ID-0044 - Art of Fighting / Ryuuko no Ken - ID-0047 - Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai - ID-0049 - Andro Dunos - -*/ - - -// Game specific input definitions - -static INPUT_PORTS_START( mjneogeo ) - PORT_INCLUDE( neogeo ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3") - PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) ) - PORT_DIPSETTING( 0x00, "Mahjong Panel" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( kizuna4p ) - PORT_INCLUDE( neogeo ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Players ) ) PORT_DIPLOCATION("SW:2") - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x00, "4" ) - - PORT_MODIFY("SYSTEM") - PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state, kizuna4p_start_r, nullptr) -INPUT_PORTS_END - -static INPUT_PORTS_START( irrmaze ) - PORT_INCLUDE( neogeo ) - - PORT_MODIFY("SYSTEM") - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -static INPUT_PORTS_START( vliner ) - PORT_INCLUDE( neogeo ) - - PORT_MODIFY("DSW") - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("View Payout Table/Big") - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Bet/Small") - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Stop/Double Up") - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Start/Collect") - - PORT_MODIFY("SYSTEM") - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */ - - PORT_MODIFY("AUDIO/COIN") - PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START("IN5") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Operator Menu") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Clear Credit") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Hopper Out") - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* not sure what any of these bits are */ - PORT_START("IN6") - PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xffc0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( jockeygp ) - PORT_INCLUDE( neogeo ) - - PORT_MODIFY("SYSTEM") - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ -INPUT_PORTS_END - - -/**************************************** - ID-0001 - . NGM-001 - NEO-MVS PROG-NAM / NEO-MVS CHA-32 - . NGH-001 - NEO-AEG PROG-NAM / NEO-AEG CHA-32 -****************************************/ - -ROM_START( nam1975 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "001-p1.p1", 0x000000, 0x080000, CRC(cc9fc951) SHA1(92f4e6ddeeb825077d92dbb70b50afea985f15c0) ) /* MB834200 */ - - NEO_SFIX_128K( "001-s1.s1", CRC(7988ba51) SHA1(bc2f661f381b06b34ac2fa215dd5689d3bf84832) ) /* MB831000 */ - - NEO_BIOS_AUDIO_256K( "001-m1.m1", CRC(ba874463) SHA1(a83514f4b20301f84a98699900e2593f1c1b8846) ) /* MB832000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) ) /* MB834200 */ - // AES has different label, data is the same: 001-v1.v1 - - ROM_REGION( 0x180000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) /* MB834200 */ - // AES has different label, data is the same: 001-v2.v21 - ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) ) /* MB834000 */ - ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) ) /* MB834000 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) ) /* Plane 2,3 */ /* MB834200 */ -ROM_END - -/**************************************** - ID-0002 - . NGM-002 - NEO-MVS PROG-EP / NEO-MVS CHA-32 - . NGH-002 - NEO-AEG PROG-4A / NEO-AEG CHA-32 -****************************************/ - -ROM_START( bstars ) /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "002-pg.p1", 0x000000, 0x080000, CRC(c100b5f5) SHA1(4cea9f29ad67288c3eccfa4cf961ee9782e49165) ) /* MB834200 */ - - NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) /* MB831000 */ - - NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) ) /* MB832000 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) /* MB834000 */ - ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) /* MB834000 */ - ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) /* MB834000 */ - ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) /* MB834000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) /* MB834000 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) ) /* Plane 2,3 */ /* MB834200 */ -ROM_END - -ROM_START( bstarsh ) /* AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "002-p1.p1", 0x000000, 0x080000, CRC(3bc7790e) SHA1(50b2fffb1278151bb4849fbe1f8cb23916019815) ) /* MB834200 */ - - NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) /* MB831000 */ - - NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) ) /* MB832000 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) /* MB834000 */ - ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) /* MB834000 */ - ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) /* MB834000 */ - ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) /* MB834000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) /* MB834000 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) ) /* Plane 2,3 */ /* MB834200 */ -ROM_END - -/**************************************** - ID-0003 - . NGM-003 - NEO-MVS PROG-EP / NEO-MVS CHA-32 - . NGH-003 - NEO-AEG PROG-4B / NEO-AEG CHA-32 -****************************************/ - -ROM_START( tpgolf ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "003-p1.p1", 0x000000, 0x080000, CRC(f75549ba) SHA1(3f7bdf5e2964e921fe1dd87c51a79a1a501fc73f) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "003-p2.p2", 0x080000, 0x080000, CRC(b7809a8f) SHA1(1604c889592c9610668bff296de48a0d6906156d) ) /* TC534200 */ - - NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "003-m1.m1", CRC(4cc545e6) SHA1(8e014b8cab3e5b3995756a4ea52ce49c36866377) ) /* TC531001 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) ) /* TC534000 */ - // AES has different label, data is the same (also found on MVS): 003-v1.v11 - - ROM_REGION( 0x200000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "003-v21.v21", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) ) /* TC534000 */ - // AES has different label, data is the same (also found on MVS): 003-v2.v21 - ROM_LOAD( "003-v22.v22", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) ) /* TC534000 */ - ROM_LOAD( "003-v23.v23", 0x100000, 0x080000, CRC(30f53e54) SHA1(22461f88a56d272b78dbc23204c0c6816200532b) ) /* TC534000 */ - ROM_LOAD( "003-v24.v24", 0x180000, 0x080000, CRC(5ba0f501) SHA1(ca02937a611a2c50c9e4b54f8fd4eaea09259894) ) /* TC534000 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "003-c1.c1", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "003-c2.c2", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "003-c3.c3", 0x100000, 0x80000, CRC(8ce3e8da) SHA1(bc6c49b27d498f75a0d1a8c4d0cca75e140b9efc) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "003-c4.c4", 0x100001, 0x80000, CRC(29725969) SHA1(f1407da84919c2b3fe0e8f1fca65934b147c86c7) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "003-c5.c5", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "003-c6.c6", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "003-c7.c7", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "003-c8.c8", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0004 - . NGM-004 - NEO-MVS PROG-EP / NEO-MVS CHA-32 - . NGH-004 - NEO-AEG PROG B / NEO-AEG CHA-32 -****************************************/ - -ROM_START( mahretsu ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "004-p1.p1", 0x000000, 0x080000, CRC(fc6f53db) SHA1(64a62ca4c8fb68954e06121399c9402278bd0467) ) /* TC534200 */ - - NEO_SFIX_128K( "004-s1.s1", CRC(2bd05a06) SHA1(876deadd4645373d82a503154eeddf18f440d743) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "004-m1.m1", CRC(c71fbb3b) SHA1(59c58665b53da61352359d191a0569de5dd1f4b3) ) /* TC531001 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "004-v11.v11", 0x000000, 0x080000, CRC(b2fb2153) SHA1(36e0cc8927b11105de40188af46f6cf532794c10) ) /* CXK384001 */ - ROM_LOAD( "004-v12.v12", 0x080000, 0x080000, CRC(8503317b) SHA1(ab22f1aba1e977ab234a4f1d73dc6ed789dbeb85) ) /* CXK384001 */ - - ROM_REGION( 0x180000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "004-v21.v21", 0x000000, 0x080000, CRC(4999fb27) SHA1(2d4926a220ea21bdd5e816bb16f985fff089500a) ) /* CXK384001 */ - ROM_LOAD( "004-v22.v22", 0x080000, 0x080000, CRC(776fa2a2) SHA1(e7d5a362ab7806b7b009700a435c815a20e8ec68) ) /* CXK384001 */ - ROM_LOAD( "004-v23.v23", 0x100000, 0x080000, CRC(b3e7eeea) SHA1(4d1e97f380702a3a06e7f954b4caddd9c4119d8f) ) /* CXK384001 */ - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "004-c1.c1", 0x000000, 0x80000, CRC(f1ae16bc) SHA1(df68feed4dcba1e1566032b01ebb7b478a1792bf) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "004-c2.c2", 0x000001, 0x80000, CRC(bdc13520) SHA1(2bc4c996d019a4c539f6c3188ef18089e54b7efa) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "004-c3.c3", 0x100000, 0x80000, CRC(9c571a37) SHA1(21388aeb92bb8e15a55a063701ca9df79e292127) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "004-c4.c4", 0x100001, 0x80000, CRC(7e81cb29) SHA1(5036f04df30cf6903bd1a8cc06ff6f015c24a74b) ) /* Plane 2,3 */ /* MB834200 */ -ROM_END - -/**************************************** - ID-0005 - . NGM-005 - NEO-MVS PROG-EP / NEO-MVS CHA-32 - . NGH-005 - NEO-AEG PROG-4B / NEO-AEG CHA-32 -****************************************/ - -ROM_START( maglord ) /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "005-pg1.p1", 0x000000, 0x080000, CRC(bd0a492d) SHA1(d043d3710cf2b0d2b3798008e65e4c7c3ead1af3) ) /* MB834200 */ - - NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */ - - NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) ) /* MB832000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) /* MB834000 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) /* MB834000 */ - ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) /* MB834000 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) ) /* Plane 2,3 */ /* MB834200 */ -ROM_END - -ROM_START( maglordh ) /* AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "005-p1.p1", 0x000000, 0x080000, CRC(599043c5) SHA1(43f234b0f89b72b4c6050c40d9daa5c4e96b94ce) ) /* MB834200 */ - - NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */ - - NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) ) /* MB832000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) /* MB834000 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) /* MB834000 */ - ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) /* MB834000 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) ) /* Plane 2,3 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) ) /* Plane 2,3 */ /* MB834200 */ -ROM_END - -/**************************************** - ID-0006 - . NGM-006 - NEO-MVS PROG-HERO / NEO-MVS CHA-32 - . NGH-006 - NEO-AEG PROG-HERO / NEO-AEG CHA-32 -****************************************/ - -ROM_START( ridhero ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "006-p1.p1", 0x000000, 0x080000, CRC(d4aaf597) SHA1(34d35b71adb5bd06f4f1b50ffd9c58ab9c440a84) ) /* MB834200 */ - - ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ - ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally) - - NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) ) /* TC531000 */ - - NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) ) /* MB832000 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) /* MB834000 */ - ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) /* MB834000 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) /* MB834000 */ - ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) /* MB834000 */ - ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) /* MB834000 */ - ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) /* MB834000 */ - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) ) /* Plane 0,1 */ /* CXK384000 */ - ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) ) /* Plane 2,3 */ /* CXK384000 */ - ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) ) /* Plane 0,1 */ /* CXK384000 */ - ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) ) /* Plane 2,3 */ /* CXK384000 */ -ROM_END - -ROM_START( ridheroh ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "006-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(52445646) SHA1(647bb31f2f68453c1366cb6e2e867e37d1df7a54) ) - /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */ - - ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ - ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally) - - NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) ) /* TC531000 */ - - NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) ) /* MB832000 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) /* MB834000 */ - ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) /* MB834000 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) /* MB834000 */ - ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) /* MB834000 */ - ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) /* MB834000 */ - ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) /* MB834000 */ - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) ) /* Plane 0,1 */ /* CXK384000 */ - ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) ) /* Plane 2,3 */ /* CXK384000 */ - ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) ) /* Plane 0,1 */ /* CXK384000 */ - ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) ) /* Plane 2,3 */ /* CXK384000 */ -ROM_END - -/**************************************** - ID-0007 - . NGM-007 - NEO-MVS PROG42G / NEO-MVS CHA42G - . NGH-007 - NEO-AEG PROG42G / NEO-AEG CHA42G - NEO-AEG PROG42G / NEO-AEG CHA-8M - . prototype - NEO-AEG PROG-EP / NEO-AEG CHA-EP -****************************************/ - -ROM_START( alpham2 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "007-p1.p1", 0x000000, 0x080000, CRC(5b266f47) SHA1(8afbf995989f47ad93fea1f31a884afc7228b53a) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "007-p2.p2", 0x080000, 0x020000, CRC(eb9c1044) SHA1(65d3416dcd96663bc4e7cefe90ecb7c1eafb2dda) ) /* TC531024 */ - - NEO_SFIX_128K( "007-s1.s1", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "007-m1.m1", CRC(28dfe2cd) SHA1(1a1a99fb917c6c8db591e3be695ce03f843ee1df) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "007-v1.v1", 0x000000, 0x100000, CRC(cd5db931) SHA1(b59f9f2df29f49470312a6cd20f5669b6aaf51ff) ) /* TC538200 */ - ROM_LOAD( "007-v2.v2", 0x100000, 0x100000, CRC(63e9b574) SHA1(1ade4cd0b15c84dd4a0fb7f7abf0885eef3a3f71) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "007-c1.c1", 0x000000, 0x100000, CRC(8fba8ff3) SHA1(1a682292e99eb91b0edb9771c44bc5e762867e98) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "007-c2.c2", 0x000001, 0x100000, CRC(4dad2945) SHA1(ac85a146276537fed124bda892bb93ff549f1d93) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "007-c3.c3", 0x200000, 0x080000, CRC(68c2994e) SHA1(4f8dfc6e5188942e03b853a2c9f0ea6138dec791) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "007-c4.c4", 0x200001, 0x080000, CRC(7d588349) SHA1(a5ed789d7bbc25be5c5b2d99883b64d379c103a2) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -ROM_START( alpham2p ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION*/ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_BYTE( "007_p1_faac.p1", 0x000001, 0x080000, CRC(c763e52a) SHA1(b24acbac255c5ee1a2e92e77cdde6620a24081cf) ) - ROM_LOAD16_BYTE( "007_p2_1813.p2", 0x000000, 0x080000, CRC(7a0b435c) SHA1(40e6f42a92001d9f4e51898dd7489da143b6b74b) ) - - NEO_SFIX_128K( "007_s1_36f1.s1", CRC(efc9ae2e) SHA1(a594826b0082fe5a13191673e8d9aa42517230f5) ) - - NEO_BIOS_AUDIO_128K( "007_m1_9384.m1", CRC(5976b464) SHA1(ec824567ecc3579f6d86c9d9385710cbaeef16a3) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "007_v11_1bb4.v11", 0x000000, 0x080000, CRC(18eaa9e1) SHA1(85c94d8660f8a32e4ca8e015f0bd704208482d68) ) - ROM_LOAD( "007_v12_c8e8.v12", 0x080000, 0x080000, CRC(2487d495) SHA1(49af3c4dc6a38c5158d3641fd8f9a40041b42aa6) ) - ROM_LOAD( "007_v13_09fa.v13", 0x100000, 0x080000, CRC(25e60f25) SHA1(d06b0df872372de38fcf90187195070ac5f8c651) ) - ROM_LOAD( "007_v21_28c2.v21", 0x180000, 0x080000, CRC(ac44b75a) SHA1(7399a05cd4e2c7ecde4a7323d3e189255afe5fc2) ) - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_COPY( "cslot1:ymsnd", 0x180000, 0x00000, 0x80000 ) - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE - ROM_LOAD32_BYTE( "007_c1_210e.c11", 0x000000, 0x80000, CRC(24841639) SHA1(fcc2a349121dad86ffefc44b9f0e8ba616ce0d30) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "007_c2_29ae.c12", 0x000002, 0x80000, CRC(912763ab) SHA1(cedf26d7d85ad140399ee62813c71f35e65498d6) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "007_c3_c873.c13", 0x000001, 0x80000, CRC(0743bde2) SHA1(0d13ad6333909ad3cf10f9ac360f9abf191318de) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "007_c4_2462.c14", 0x000003, 0x80000, CRC(61240212) SHA1(dee36f6604adaeb96e0d761a7256241c066b1cd2) ) /* Plane 3 */ - ROM_LOAD32_BYTE( "007_c5_5f16.c15", 0x200000, 0x80000, CRC(cf9f4c53) SHA1(f979c85f83d9f76e554c2617f85f6d4efca6799c) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "007_c6_8abc.c16", 0x200002, 0x80000, CRC(3d903b19) SHA1(001a8c762336b855fe1df69fe2e605d30a3f00a1) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "007_c7_c983.c17", 0x200001, 0x80000, CRC(e41e3875) SHA1(730aceb8a66cb33d0194b096568f053ad7dc000a) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "007_c8_b599.c18", 0x200003, 0x80000, CRC(4483e2cf) SHA1(47c3364f5c36ae9dc3a49fe37ca60bcee0e73314) ) /* Plane 3 */ -ROM_END - -/**************************************** - ID-0008 - Sun Shine (prototype) 1990 SNK / Alpha -****************************************/ - -/**************************************** - ID-0009 - . NGM-009 - NEO-MVS PROG-EP / NEO-MVS CHA-32 - . NGH-009 - NEO-AEG PROG-4A / NEO-AEG CHA-32 -****************************************/ - -ROM_START( ncombat ) /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "009-p1.p1", 0x000000, 0x080000, CRC(b45fcfbf) SHA1(3872147dda2d1ba905d35f4571065d87b1958b4a) ) /* TC534200 */ - - NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) /* TC531001 */ - - ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) /* TC534000 */ - ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) /* TC534000 */ - ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) /* TC534000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) /* TC534000 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -ROM_START( ncombath ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "009-pg1.p1", 0x000000, 0x080000, CRC(8e9f0add) SHA1(d0b908a86a58f2537eea73a431038f1cd74a5a2f) ) /* TC534200 */ - - NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) /* TC531001 */ - - ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) /* TC534000 */ - ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) /* TC534000 */ - ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) /* TC534000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) /* TC534000 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0010 - . NGM-010 - NEO-MVS PROG-EP / NEO-MVS CHA-32 - . NGH-010 - NEO-AEG PROG-B / NEO-AEG CHA-32 -****************************************/ - -ROM_START( cyberlip ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "010-p1.p1", 0x000000, 0x080000, CRC(69a6b42d) SHA1(6e7cb089de83f1d22cc4a87db5b1a94bf76fb1e8) ) /* TC534200 */ - - NEO_SFIX_128K( "010-s1.s1", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "010-m1.m1", CRC(8be3a078) SHA1(054ec6a061fcc88df1ecbb0a01611a31f37a7709) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "010-v11.v11", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) ) /* TC534000 */ - ROM_LOAD( "010-v12.v12", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) ) /* TC534000 */ - ROM_LOAD( "010-v13.v13", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) ) /* TC534000 */ - ROM_LOAD( "010-v14.v14", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) ) /* TC534000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "010-v21.v21", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) ) /* TC534000 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "010-c1.c1", 0x000000, 0x80000, CRC(8bba5113) SHA1(70f0926409ab265da4b8632500d1d32d63cf77cf) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "010-c2.c2", 0x000001, 0x80000, CRC(cbf66432) SHA1(cc529640c475d08330e116ea9c5e5a28b7cd13db) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "010-c3.c3", 0x100000, 0x80000, CRC(e4f86efc) SHA1(fa60863d8a7ed4f21d30f91eb1936d0b8329db7a) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "010-c4.c4", 0x100001, 0x80000, CRC(f7be4674) SHA1(b4ad0432d4bb6d5a98e27015910343c964b73ed4) ) /* Plane 2,3 */ /* TC534200 */ - ROM_LOAD16_BYTE( "010-c5.c5", 0x200000, 0x80000, CRC(e8076da0) SHA1(3ec5cc19809dea688041a42b32c13d257576f3da) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "010-c6.c6", 0x200001, 0x80000, CRC(c495c567) SHA1(2f58475fbb5f1adafce027d396fb05dd71e8fb55) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0011 - . NGM-011 - NEO-MVS PROG-8MB / NEO-MVS CHA-8M - . NGH-011 - NEO-AEG PROG-8MB / NEO-AEG CHA-8M -****************************************/ - -ROM_START( superspy ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "011-p1.p1", 0x000000, 0x080000, CRC(c7f944b5) SHA1(da7560e09187c68f1d9f7656218497b4464c56c9) ) /* MB834200 */ - ROM_LOAD16_WORD_SWAP( "sp2.p2", 0x080000, 0x020000, CRC(811a4faf) SHA1(8169dfaf79f52d80ecec402ce1b1ab9cafb7ebdd) ) /* TC531024 */ - - NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) ) /* MB831000 */ - - NEO_BIOS_AUDIO_256K( "011-m1.m1", CRC(ca661f1b) SHA1(4e3cb57db716ec48487c1b070c3a55a5faf40856) ) /* MB832000 */ - - ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "011-v11.v11", 0x000000, 0x100000, CRC(5c674d5c) SHA1(d7b9beddeb247b584cea9ca6c43ec6869809b673) ) /* MB838000 */ - ROM_LOAD( "011-v12.v12", 0x100000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) /* MB834000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "011-v21.v21", 0x000000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) ) /* MB834000 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "011-c1.c1", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) ) /* Plane 0,1 */ /* MB838200 */ - ROM_LOAD16_BYTE( "011-c2.c2", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) ) /* Plane 2,3 */ /* MB838200 */ - ROM_LOAD16_BYTE( "011-c3.c3", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) ) /* Plane 0,1 */ /* MB838200 */ - ROM_LOAD16_BYTE( "011-c4.c4", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) ) /* Plane 2,3 */ /* MB838200 */ -ROM_END - -/**************************************** - ID-0012 - unknown -****************************************/ - -/**************************************** - ID-0013 - unknown -****************************************/ - -/**************************************** - ID-0014 - . NGM-014 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-014 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( mutnat ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "014-p1.p1", 0x000000, 0x080000, CRC(6f1699c8) SHA1(87206f67a619dede7959230f9ff3701b8b78957a) ) /* CXK384500 */ - - NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) ) /* CXK381000 */ - - NEO_BIOS_AUDIO_128K( "014-m1.m1", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) ) /* CXK381003A */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "014-v1.v1", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) ) /* CXK388000 */ - ROM_LOAD( "014-v2.v2", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) ) /* CXK388000 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "014-c1.c1", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) ) /* Plane 0,1 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "014-c2.c2", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) ) /* Plane 2,3 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "014-c3.c3", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) ) /* Plane 0,1 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "014-c4.c4", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) ) /* Plane 2,3 */ /* CXK388000 */ -ROM_END - -/**************************************** - ID-0015 - unknown -****************************************/ - -/**************************************** - ID-0016 - . NGM-016 - NEO-MVS PROG42G / NEO-MVS CHA42G - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-016 - NEO-AEG PROG42G / NEO-AEG CHA42G - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( kotm ) /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "016-p1.p1", 0x000000, 0x080000, CRC(1b818731) SHA1(b98b1b33c0301fd79aac908f6b635dd00d1cb08d) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) /* TC531024 */ - - NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) ) /* TC538200 */ - ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( kotmh ) /* AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "016-hp1.p1",0x000000, 0x080000, CRC(b774621e) SHA1(7684b2e07163aec68cd083ef1d8900f855f6cb42) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) /* TC531024 */ - - NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) ) /* TC538200 */ - ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0017 - . NGM-017 - NEO-MVS PROG42G / NEO-MVS CHA42G - . NGH-017 - NEO-AEG PROG42G / NEO-AEG CHA42G - NEO-AEG PRO42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( sengoku ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "017-p1.p1", 0x000000, 0x080000, CRC(f8a63983) SHA1(7a10ecb2f0fd8315641374c065d2602107b09e72) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) /* TC531024 */ - - NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) /* TC538200 */ - ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( sengokuh ) /* AES VERSION (US) */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "017-hp1.p1", 0x000000, 0x080000, CRC(33eccae0) SHA1(000ccf9a9c73df75eeba3f2c367c3a1a9e0a3a6b) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) /* TC531024 */ - - NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) /* TC538200 */ - ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0018 - . NGM-018 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - also found on (seen several times; CHA and PROG board are 'manually patched up' with wires and resistors) - NEO-MVS PROG42G / NEO-MVS CHA42G - . NGH-018 - NEO-AEG PROG42G / NEO-AEG CHA42G - . prototype - NEO-AEG PROG-EP / NEO-AEG CHA-EP -****************************************/ - -ROM_START( burningf ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "018-p1.p1", 0x000000, 0x080000, CRC(4092c8db) SHA1(df194a4ad2c35e0e18bc053ff9284183444a4666) ) /* HN62434 */ - - NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) /* HN62321 */ - - NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) /* HN62321A */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) /* HN62408 */ - ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) /* HN62408 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) /* Plane 0,1 */ /* HN62408 */ - ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) /* Plane 2,3 */ /* HN62408 */ - ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) /* Plane 0,1 */ /* HN62408 */ - ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) /* Plane 2,3 */ /* HN62408 */ -ROM_END - -ROM_START( burningfh ) /* AES VERSION (US) */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "018-hp1.p1", 0x000000, 0x080000, CRC(ddffcbf4) SHA1(c646c4bbdb4e9b32df76c90f582ccd69fcc9f8e7) ) /* HN62434 */ - - NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) /* HN62321 */ - - NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) /* HN62321A */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) /* HN62408 */ - ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) /* HN62408 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) /* Plane 0,1 */ /* HN62408 */ - ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) /* Plane 2,3 */ /* HN62408 */ - ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) /* Plane 0,1 */ /* HN62408 */ - ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) /* Plane 2,3 */ /* HN62408 */ -ROM_END - -ROM_START( burningfpa ) /* later prototype - Sx, Vx and Cx data all matches final game, but with different rom arranagement, Px & Mx unique */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_BYTE( "018_p1_1f28.podd", 0x000001, 0x080000, CRC(f7d15752) SHA1(334b7e5c8e9099d39424e72db66846d0b9e534de) ) - ROM_LOAD16_BYTE( "018_p2_3217.peven", 0x000000, 0x080000, CRC(ffae22fb) SHA1(82f2f81fe96b3c6953985964e12e93e79410ab9e) ) - - NEO_SFIX_128K( "018_s1_4491.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) - - NEO_BIOS_AUDIO_128K( "018_m1_d13e.m1", CRC(2b0c0415) SHA1(a5a0d5e3ea2ef77b6f5cd14f2907ab2f1aed76b7) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "018_v11_6c00.v11", 0x000000, 0x080000, CRC(b55b9670) SHA1(b0ff38b2dca1361ad155e90be3674dbea1c0a53c) ) - ROM_LOAD( "018_v12_8146.v12", 0x080000, 0x080000, CRC(a0bcf260) SHA1(5d1f2613cf4a292557f37e6f44a90b20d11ed8cd) ) - ROM_LOAD( "018_v13_b813.v13", 0x100000, 0x080000, CRC(270f4707) SHA1(29e763acc9fd4b94d8b5d0ad917e20d8a66bbe49) ) - ROM_LOAD( "018_v24_22ee.v24", 0x180000, 0x080000, CRC(924e3d69) SHA1(927091f9a098f00eb303f5567f4ee926bcb170e3) ) - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE - ROM_LOAD32_BYTE( "018_c1_2505.c1", 0x000000, 0x80000, CRC(3a441c6a) SHA1(0347d47a689af67426be42b4c99da101ee01ce11) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "018_c2_3f55.c2", 0x000002, 0x80000, CRC(bb72404b) SHA1(7620fccc50ecacf732bb1382abef42212d369f8c) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "018_c3_a20d.c3", 0x000001, 0x80000, CRC(87bffd2f) SHA1(0f7c835029a3f561861a1a07987dad23a32a899c) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "018_c4_c6e1.c4", 0x000003, 0x80000, CRC(33803163) SHA1(888ba63618a2ca541883a612f0c75ffa96f1c528) ) /* Plane 3 */ - ROM_LOAD32_BYTE( "018_c5_2cd1.c5", 0x200000, 0x80000, CRC(74391952) SHA1(0f7451ff74901e7250214a7604a37add56ad7e1f) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "018_c6_8135.c6", 0x200002, 0x80000, CRC(95e220e6) SHA1(cef4f7c697ab6d20e1b5c85df773d0f1a79e3008) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "018_c7_d009.c7", 0x200001, 0x80000, CRC(41326c0d) SHA1(64bbecb560d2795ae5292776604ea318a9ae53a6) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "018_c8_dc63.c8", 0x200003, 0x80000, CRC(ed3b1f04) SHA1(0cb0d30e294e7ff398d553d0f08befb53ac65269) ) /* Plane 3 */ -ROM_END - -ROM_START( burningfp ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_BYTE( "018_p1_9397.p1", 0x000001, 0x080000, CRC(5b4032e7) SHA1(55df91dad6f484d3d49c28ab5972700bf71a8662) ) - ROM_LOAD16_BYTE( "018_p2_e335.p2", 0x000000, 0x080000, CRC(78762f68) SHA1(12170fc6efe75cb5d32624033d3d341032c97548) ) - - NEO_SFIX_128K( "018_s1_9899.s1", CRC(f3d130e8) SHA1(2fdeb93f4bb2a60d391cac2822be41661b1e1795) ) - - NEO_BIOS_AUDIO_128K( "018_m1_4586.m1", CRC(470dd5d4) SHA1(4291811b4aefe45261a1ae3631b6999fcd74fb3f) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "018_v11_56ac.v11", 0x000000, 0x080000, CRC(dc07ea3c) SHA1(c3e71aaec44ead7ddc581565d16b90030e6db5fd) ) - ROM_LOAD( "018_v12_db95.v12", 0x080000, 0x080000, CRC(f1ae637c) SHA1(02a4c7d4a544350a314ab7b26d8c9d3baa8f5778) ) - ROM_LOAD( "018_v21_98dd.v21", 0x100000, 0x080000, CRC(9f3b4eda) SHA1(7f516923d04daa483b4b99c9babba66505931a34) ) - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_COPY( "cslot1:ymsnd", 0x100000, 0x00000, 0x80000 ) - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE - ROM_LOAD32_BYTE( "018_c1_ba06.c11", 0x000000, 0x80000, CRC(6569018b) SHA1(25040e0a9c2b72900100a22a2a41de5f6c339d8a) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "018_c2_d534.c12", 0x000002, 0x80000, CRC(6949b501) SHA1(d8ee48837faff6cc849046ee8757b2b94d440303) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "018_c3_9d70.c13", 0x000001, 0x80000, CRC(410f653b) SHA1(ce94667721baa7b2c318fc268e3bb9209671c9f5) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "018_c4_bf9d.c14", 0x000003, 0x80000, CRC(d43bf2a5) SHA1(c27985d8973611d02570f469a0d8cb4f5b63b614) ) /* Plane 3 */ - ROM_LOAD32_BYTE( "018_c5_ac9d.c15", 0x200000, 0x80000, CRC(837d09d3) SHA1(d3b06931fca6123604549599544b04529ef34c53) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "018_c6_d2a5.c16", 0x200002, 0x80000, CRC(5fee51e7) SHA1(835c632fa12a1d5b4104cd80b8f686ac80b314a1) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "018_c7_d568.c17", 0x200001, 0x80000, CRC(0f3f0823) SHA1(ec1d681c1795de43d20f30f85956e2473ec39c95) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "018_c8_d256.c18", 0x200003, 0x80000, CRC(67cc9e34) SHA1(dc72a464c1456a4d2f7b992b416a984fb7885e99) ) /* Plane 3 */ -ROM_END - -/**************************************** - ID-0019 - . NGM-019 - NEO-MVS PROG-HERO / NEO-MVS CHA-32 - . NGH-019 - NEO-AEG PROG-HERO / NEO-AEG CHA-32 -****************************************/ - -ROM_START( lbowling ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "019-p1.p1", 0x000000, 0x080000, CRC(a2de8445) SHA1(893d7ae72b4644123469de143fa35fac1cbcd61e) ) /* TC534200 */ - - ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ - ROM_LOAD( "hd6301v1p.com", 0x0000, 0x1000, NO_DUMP ) - - NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "019-m1.m1", CRC(d568c17d) SHA1(a2e318ed6ad1809c79f3f0853d75e0dd1a2f275c) ) /* TC531001 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) ) /* TC534000 */ - ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) ) /* TC534000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) ) /* TC534000 */ - - ROM_REGION( 0x100000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "019-c1.c1", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "019-c2.c2", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0020 - . NGM-020 - NEO-MVS PROG8M42 / NEO-MVS CHA-8M - . NGH-020 - NEO-AEG PROG8M42 / NEO-AEG CHA-8M -****************************************/ - -ROM_START( gpilots ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "020-p1.p1", 0x000000, 0x080000, CRC(e6f2fe64) SHA1(50ab82517e077727d97668a4df2b9b96d2e78ab6) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) /* TC531024 */ - - NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) /* TC531001 */ - - ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) /* TC538200 */ - ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) /* TC534200 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) /* TC534200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( gpilotsh ) /* AES VERSION (US) */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "020-hp1.p1", 0x000000, 0x080000, CRC(7cdb01ce) SHA1(32cae2ddf5e26fb7e8a09132e600220db82df3b8) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) /* TC531024 */ - - NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) /* TC531001 */ - - ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) /* TC538200 */ - ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) /* TC534200 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) /* TC534200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0021 - . NGM-021 - NEO-MVS PROG-EP / NEO-MVS CHA-32 - . NGH-021 - NEO-AEG PROG B / NEO-AEG CHA-32 -****************************************/ - -ROM_START( joyjoy ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "021-p1.p1", 0x000000, 0x080000, CRC(39c3478f) SHA1(06ebe54c9c4e14c5c31e770013d58b7162359ecc) ) /* MB834200 */ - - NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) /* MB831000 */ - - NEO_BIOS_AUDIO_256K( "021-m1.m1", CRC(5a4be5e8) SHA1(552f025ce0d51c25f42e1a81cf0d08376ca5475d) ) /* MB832000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "021-v11.v11", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) ) /* MB834000 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) /* MB834000 */ - - ROM_REGION( 0x100000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) ) /* Plane 0,1 */ /* MB834200 */ - ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) ) /* Plane 2,3 */ /* MB834200 */ -ROM_END - -/**************************************** - ID-0022 - . ALM-001 - NEO-MVS PROG8M42 / NEO-MVS CHA-8M - . ALH-001 - NEO-AEG PROG 8M42 / NEO-AEG CHA-8M -****************************************/ - -ROM_START( bjourney ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "022-p1.p1", 0x000000, 0x100000, CRC(6a2f6d4a) SHA1(b8ca548e56f1c7abcdce415ba7329e0cf698ee13) ) /* TC538200 */ - - NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) ) /* TC538200 */ - ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0023 - . NGM-023 - NEO-MVS PROG42G / NEO-MVS CHA42G - NEO-MVS PROGTOP / NEO-MVS CHA-256 - Boards used for the Korean release - . NGH-023 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( quizdais ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "023-p1.p1", 0x000000, 0x100000, CRC(c488fda3) SHA1(4cdf2f1837fffd720efef42f81f933bdf2ef1402) ) /* TC538200 */ - - NEO_SFIX_128K( "023-s1.s1", CRC(ac31818a) SHA1(93c8d67a93606a2e02f12ca4cab849dc3f3de286) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "023-m1.m1", CRC(2a2105e0) SHA1(26fc13556fda2dbeb7b5b035abd994e302dc7662) ) /* TC531001 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "023-v1.v1", 0x000000, 0x100000, CRC(a53e5bd3) SHA1(cf115c6478ce155d889e6a5acb962339e08e024b) ) /* TC538200 */ - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "023-c1.c1", 0x000000, 0x100000, CRC(2999535a) SHA1(0deabf771039987b559edc2444eea741bd7ba861) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "023-c2.c2", 0x000001, 0x100000, CRC(876a99e6) SHA1(8d1dcfc0927d7523f8be8203573192406ec654b4) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( quizdaisk ) /* KOREAN VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "123-p1.p1", 0x000000, 0x100000, CRC(a6f35eae) SHA1(edd3fd5ba8eae2231e2b0a6605fa00e5c6de094a) ) - - NEO_SFIX_128K( "123-s1.s1", CRC(53de938a) SHA1(5024fee3b245f8a069d7ecfa6f033b70ed1a5fce) ) - - NEO_BIOS_AUDIO_128K( "123-m1.m1", CRC(d67f53f9) SHA1(73a1bd175ae29dd957a907a046884f8715bd0a34) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "123-v1.v1", 0x000000, 0x200000, CRC(986f4af9) SHA1(9e15d2142ec5e5d076582dc1cecfd724b0924f54) ) - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "123-c1.c1", 0x000000, 0x100000, CRC(e579a606) SHA1(b9430ec157902f0707e5d52e69bd5d93792e7118) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "123-c2.c2", 0x000001, 0x100000, CRC(e182c837) SHA1(a8f7648bf21ebd3efe3a49606b53220815a60d0f) ) /* Plane 2,3 */ -ROM_END - -/**************************************** - ID-0024 - . NGM-024 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-024 - - . prototype - NEO-MVS PROG-EP / NEO-MVS CHA-EPG -****************************************/ - -ROM_START( lresort ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "024-p1.p1", 0x000000, 0x080000, CRC(89c4ab97) SHA1(3a1817c427185ea1b44fe52f009c00b0a9007c85) ) /* TC534200 */ - - NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "024-m1.m1", CRC(cec19742) SHA1(ab6c6ba7737e68d2420a0617719c6d4c89039c45) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "024-v1.v1", 0x000000, 0x100000, CRC(efdfa063) SHA1(e4609ecbcc1c820758f229da5145f51285b50555) ) /* TC538200 */ - ROM_LOAD( "024-v2.v2", 0x100000, 0x100000, CRC(3c7997c0) SHA1(8cb7e8e69892b19d318978370dbc510d51b06a69) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "024-c1.c1", 0x000000, 0x100000, CRC(3617c2dc) SHA1(8de2643a618272f8aa1c705363edb007f4a5f5b7) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "024-c2.c2", 0x000001, 0x100000, CRC(3f0a7fd8) SHA1(d0c9c7a9dde9ce175fb243d33ec11fa719d0158c) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "024-c3.c3", 0x200000, 0x080000, CRC(e9f745f8) SHA1(bbe6141da28b0db7bf5cf321d69b7e613e2414d7) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "024-c4.c4", 0x200001, 0x080000, CRC(7382fefb) SHA1(e916dec5bb5462eb9ae9711f08c7388937abb980) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -ROM_START( lresortp ) /* prototype - all roms were hand labeled with CRCs */ /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_BYTE( "024_p1_5937.podd", 0x000001, 0x080000, CRC(8e6008ee) SHA1(6779663118782207156dc9fa9e24e81e30c6391c) ) - ROM_LOAD16_BYTE( "024_p2_8d37.peven", 0x000000, 0x080000, CRC(6d9ee90f) SHA1(ecd42182988092417bc96db8301ea408e47735f2) ) - - NEO_SFIX_128K( "024_s1_22fe.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) - - NEO_BIOS_AUDIO_128K( "024_m1_fc7a.m1", CRC(22122875) SHA1(540c21559163381467679f836cb068adaf526659) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "024_v11_b085.v11", 0x000000, 0x080000, CRC(0722da38) SHA1(66a9b463d5277908b3a01c03de82b3de9118f2cb) ) // 024_v11_b085.bin 024-v1.v1 [1/2] IDENTICAL - ROM_LOAD( "024_v12_d3b7.v12", 0x080000, 0x080000, CRC(670ce3ec) SHA1(9004aa85d4a9b0ecf9cf9357b073ed55a98fdb02) ) // 024_v12_d3b7.bin 024-v1.v1 [2/2] IDENTICAL - ROM_LOAD( "024_v13_a31e.v13", 0x100000, 0x080000, CRC(2e39462b) SHA1(b0a9b1a3377bf0369f3020192505c46ca52927d6) ) // 024_v13_a31e.bin 024-v2.v2 [1/2] IDENTICAL - ROM_LOAD( "024_v24_2f0f.v24", 0x180000, 0x080000, CRC(7944754f) SHA1(d42a46c5127c6c62041ebffb0007af8a24abd360) ) // 024_v24_2f0f.bin 024-v2.v2 [2/2] IDENTICAL - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE - ROM_LOAD32_BYTE( "024_c1_b764.c1", 0x000000, 0x80000, CRC(677749ec) SHA1(6f94675e037956a380652ab1056e6f1dec605bec) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "024_c2_1951.c2", 0x000002, 0x80000, CRC(104d7b59) SHA1(404e8776ee8df4ca282eb7b747759af8628ddca1) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "024_c3_0f63.c3", 0x000001, 0x80000, CRC(b0965a74) SHA1(e8026dd4f722ccab9c913261d09ab8843ef56a0e) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "024_c4_c5b5.c4", 0x000003, 0x80000, CRC(dcfc3860) SHA1(8443b455ae8de656adab57f3b7e68919f22d3b9d) ) /* Plane 3 */ - ROM_LOAD32_BYTE( "024_c5_dd03.c5", 0x200000, 0x80000, CRC(50322397) SHA1(3308fbe48ad165b9894a52fc3a8d9898bbbc0c0e) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "024_c6_c81a.c6", 0x200002, 0x80000, CRC(c3c93894) SHA1(f23b9d7e2b54d44c96370dde282bdf45cebd9cba) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "024_c7_5edc.c7", 0x200001, 0x80000, CRC(21faf72b) SHA1(00bf257b06180ae6ede57744cea6257b3488d9f0) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "024_c8_0850.c8", 0x200003, 0x80000, CRC(fb57217b) SHA1(607a98da754e8b1dd94a6432b21a36cc38e06a0f) ) /* Plane 3 */ -ROM_END - - -/**************************************** - ID-0025 - . NGM-025 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-025 - NEO-AEG PROG42G / NEO-AEG CHA42G -****************************************/ - -ROM_START( eightman ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "025-p1.p1", 0x000000, 0x080000, CRC(43344cb0) SHA1(29dfd699f35b0a74e20fedd6c9174c289f0ef6e0) ) /* TC574200 */ - - NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "025-m1.m1", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) ) /* TC541000 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "025-v1.v1", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) ) /* TC538200 */ - ROM_LOAD( "025-v2.v2", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "025-c1.c1", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "025-c2.c2", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "025-c3.c3", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "025-c4.c4", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0026 - Fun Fun Brothers (prototype) 1991 Alpha -****************************************/ - -/**************************************** - ID-0027 - . MOM-001 - NEO-MVS PROG-8MB / NEO-MVS CHA-8M - . MOH-001 - NEO-AEG PROG-8MB / NEO-AEG CHA-8M -****************************************/ - -ROM_START( minasan ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "027-p1.p1", 0x000000, 0x080000, CRC(c8381327) SHA1(c8f8be0ba276c6d12ef13d05af3cf83a2b924894) ) /* HN62422PC */ - - NEO_SFIX_128K( "027-s1.s1", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) ) /* HN62321BP */ - - NEO_BIOS_AUDIO_128K( "027-m1.m1", CRC(add5a226) SHA1(99995bef2584abbba16777bac52f55523f7aa97d) ) /* HN62321AP */ - - ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "027-v11.v11", 0x000000, 0x100000, CRC(59ad4459) SHA1(bbb8ba8a8e337dd2946eefda4757e80d0547d54a) ) /* HN62308BPC */ - - ROM_REGION( 0x100000, "cslot1:ymsnd.deltat", 0 ) - ROM_LOAD( "027-v21.v21", 0x000000, 0x100000, CRC(df5b4eeb) SHA1(134f3bcc3bb82e2a5711496af1019f343f9c0f7e) ) /* HN62308BPC */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "027-c1.c1", 0x000000, 0x100000, CRC(d0086f94) SHA1(7d6579530ccb5188f653be69b1df17e47e40e7a6) ) /* Plane 0,1 */ /* HN62408PD */ - ROM_LOAD16_BYTE( "027-c2.c2", 0x000001, 0x100000, CRC(da61f5a6) SHA1(82c5b4e5c5c5e30a3fd1c2e11c6157f39d033c42) ) /* Plane 2,3 */ /* HN62408PD */ - ROM_LOAD16_BYTE( "027-c3.c3", 0x200000, 0x100000, CRC(08df1228) SHA1(288b7ad328c2249f28d17df4dad3584995dca7bf) ) /* Plane 0,1 */ /* HN62408PD */ - ROM_LOAD16_BYTE( "027-c4.c4", 0x200001, 0x100000, CRC(54e87696) SHA1(90816dc86be3983dc57f56ededf7738475c0c61e) ) /* Plane 2,3 */ /* HN62408PD */ -ROM_END - -/**************************************** - ID-0028 - Dunk Star (prototype) 1991 Sammy -****************************************/ - -/**************************************** - ID-0029 - . ??M-029 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . ??H-029 -****************************************/ - -ROM_START( legendos ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "029-p1.p1", 0x000000, 0x080000, CRC(9d563f19) SHA1(9bff7bf9fdcf81a0a6c4ce3e196097d4f05e67b6) ) /* TC534200 */ - - NEO_SFIX_128K( "029-s1.s1", CRC(bcd502f0) SHA1(a3400f52c037aa6a42e59e602cc24fa45fcbc951) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "029-m1.m1", CRC(6f2843f0) SHA1(975fb1598b87a2798fff05e951fca2e2e0329e79) ) /* TC531001 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "029-v1.v1", 0x000000, 0x100000, CRC(85065452) SHA1(7154b7c59b16c32753ac6b5790fb50b51ce30a20) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "029-c1.c1", 0x000000, 0x100000, CRC(2f5ab875) SHA1(3e060973bba41a6c22ff7054104bdc5eee1fa13a) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "029-c2.c2", 0x000001, 0x100000, CRC(318b2711) SHA1(7014110cee98280317e1189f306ca40652b61f6f) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "029-c3.c3", 0x200000, 0x100000, CRC(6bc52cb2) SHA1(14323a4664b7dcbcde82e594168e535d7a921e44) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "029-c4.c4", 0x200001, 0x100000, CRC(37ef298c) SHA1(7a0c4c896dc3e730e06dcadbf00cf354f08a4466) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0030 - . NGM-030 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-030 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 - NEO-AEG PROG42G / NEO-AEG CHA42G -****************************************/ - -ROM_START( 2020bb ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "030-p1.p1", 0x000000, 0x080000, CRC(d396c9cb) SHA1(47ba421d14d05b965a8d44e7475b227a208e5a07) ) /* TC534200 */ - /* also found AES set with p1 label 030-P1 on TC534200 on NEO-AEG PROG42G and m1 label 030-M1 on TC531001 on NEO-AEG CHA42G; other chip labels are the same */ - - NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ - ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( 2020bba ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "030-epr.p1", 0x000000, 0x080000, CRC(c59be3dd) SHA1(4fbd462c1c18e85a252c58b04b54fd3b82b46cb0) ) /* TC574200 */ - /* P1 on eprom, correct chip label unknown */ - - NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ - ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( 2020bbh ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "030-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(12d048d7) SHA1(ee0d03a565b11ca3bee2d24f62ff46a85ef18d90) ) - /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */ - - NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ - ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0031 - . NGM-031 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-031 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( socbrawl ) /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "031-pg1.p1", 0x000000, 0x080000, CRC(17f034a7) SHA1(2e66c7bd93a08efe63c4894494db50bbf58f60e4) ) /* TC534200 */ - - NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) ) /* TC538200 */ - ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -ROM_START( socbrawlh ) /* AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "031-p1.p1", 0x000000, 0x080000, CRC(a2801c24) SHA1(627d76ff0740ca29586f37b268f47fb469822529) ) /* TC534200 */ - - NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) ) /* TC538200 */ - ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0032 - . NGM-032 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-032 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( roboarmy ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "032-p1.p1", 0x000000, 0x080000, CRC(cd11cbd4) SHA1(23163e3da2f07e830a7f4a02aea1cb01a54ccbf3) ) /* TC534200 */ - - NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */ - ROM_LOAD( "032-v2.v2", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "032-c1.c1", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "032-c2.c2", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "032-c3.c3", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "032-c4.c4", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -ROM_START( roboarma ) /* MVS AND AES VERSION*/ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "032-epr.p1", 0x000000, 0x080000, CRC(27c773cb) SHA1(597ca73f142b1129cc7780540bb9cfacd47bc6ce) ) /* D27C4000 */ - /* Found on legitimate Robo Army MVS and AES Carts. Debug code button which check control a sound test has been patched out because in a multislot situation that code could have been enabled - that would stop roboarmy from working, sending it into an infinite loop ; correct chip label unknown */ - - NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */ - ROM_LOAD( "032-v2.v2", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "032-c1.c1", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "032-c2.c2", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "032-c3.c3", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "032-c4.c4", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0033 - . NGM-033 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-033 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( fatfury1 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "033-p1.p1", 0x000000, 0x080000, CRC(47ebdc2f) SHA1(d46786502920fb510f1999db00c5e09fb641c0bd) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "033-p2.p2", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) ) /* TC531024 */ - - NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "033-m1.m1", CRC(5be10ffd) SHA1(90a5e6cbbc58a7883cd2a3a597180d631a466882) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "033-v1.v1", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) ) /* TC538200 */ - ROM_LOAD( "033-v2.v2", 0x100000, 0x100000, CRC(fa2ae47f) SHA1(80d0ba4cd30aab59b6f0db8fa341387bd7388afc) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "033-c1.c1", 0x000000, 0x100000, CRC(74317e54) SHA1(67b9c2814a12603b959612456f59de55f9bf6f57) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "033-c2.c2", 0x000001, 0x100000, CRC(5bb952f3) SHA1(ea964bbcc0408b6ae07cbb5043d003281b1aca15) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "033-c3.c3", 0x200000, 0x100000, CRC(9b714a7c) SHA1(b62bdcede3207d062a89e0a4a9adf706101bb681) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "033-c4.c4", 0x200001, 0x100000, CRC(9397476a) SHA1(a12dbb74020aeb6ebf24ec2abbfba5129cabcb7d) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0034 - . NGM-034 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-034 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( fbfrenzy ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "034-p1.p1", 0x000000, 0x080000, CRC(cdef6b19) SHA1(97482db0dffc6d625fb41fa38449c0a74d741a72) ) /* TC534200 */ - - NEO_SFIX_128K( "034-s1.s1", CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "034-m1.m1", CRC(f41b16b8) SHA1(f3e1cfc4cd2c5baece176f169906aa796367d303) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "034-v1.v1", 0x000000, 0x100000, CRC(50c9d0dd) SHA1(2b3f2875b00e5f307d274128bd73c1521a7d901b) ) /* TC538200 */ - ROM_LOAD( "034-v2.v2", 0x100000, 0x100000, CRC(5aa15686) SHA1(efe47954827a98d539ba719347c5f8aa60e6338b) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "034-c1.c1", 0x000000, 0x100000, CRC(91c56e78) SHA1(2944d49ebfc71239d345209ca7f25993c2cc5a77) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "034-c2.c2", 0x000001, 0x100000, CRC(9743ea2f) SHA1(cf4fccdf10d521d555e92bc24123142393c2b3bb) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "034-c3.c3", 0x200000, 0x080000, CRC(e5aa65f5) SHA1(714356a2cee976ec0f515b1034ce971018e5c02e) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "034-c4.c4", 0x200001, 0x080000, CRC(0eb138cc) SHA1(21d31e1f136c674caa6dd44073281cd07b72ea9b) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0035 - Mystic Wand (prototype) 1991 Alpha -****************************************/ - -/**************************************** - ID-0036 - . MOM-002 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1 - . MOH-002 - NEO-AEG PROG42G / NEO-AEG CHA42G -****************************************/ - -ROM_START( bakatono ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "036-p1.p1", 0x000000, 0x080000, CRC(1c66b6fa) SHA1(6c50cc452971c46c763ae0b2def95792671a1798) ) /* CXK384500 */ - - NEO_SFIX_128K( "036-s1.s1", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) ) /* CXK381000 */ - - NEO_BIOS_AUDIO_128K( "036-m1.m1", CRC(f1385b96) SHA1(e7e3d1484188a115e262511116aaf466b8b1f428) ) /* CXK381003 */ - - ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "036-v1.v1", 0x000000, 0x100000, CRC(1c335dce) SHA1(493c273fa71bf81861a20af4c4eaae159e169f39) ) /* CXK388000 */ - ROM_LOAD( "036-v2.v2", 0x100000, 0x100000, CRC(bbf79342) SHA1(45a4f40e415cdf35c3073851506648c8f7d53958) ) /* CXK388000 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "036-c1.c1", 0x000000, 0x100000, CRC(fe7f1010) SHA1(5b6f5053821f4da8dc3768371e2cd51bb29da963) ) /* Plane 0,1 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "036-c2.c2", 0x000001, 0x100000, CRC(bbf003f5) SHA1(054b2a3327e038836eece652055bb84c115cf8ed) ) /* Plane 2,3 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "036-c3.c3", 0x200000, 0x100000, CRC(9ac0708e) SHA1(8decfe06d73a3dd3c3cf280719978fcf6d559d29) ) /* Plane 0,1 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "036-c4.c4", 0x200001, 0x100000, CRC(f2577d22) SHA1(a37db8055ca4680e244c556dc6df8bdba16c2083) ) /* Plane 2,3 */ /* CXK388000 */ -ROM_END - -/**************************************** - ID-0037 - . ALM-002 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . ALH-002 - NEO-AEG PROG42G / NEO-AEG CHA42G -****************************************/ - -ROM_START( crsword ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "037-p1.p1", 0x000000, 0x080000, CRC(e7f2553c) SHA1(8469ecb900477feed05ae3311fe9515019bbec2a) ) /* TC534200 */ - - NEO_SFIX_128K( "037-s1.s1", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "037-m1.m1", CRC(9504b2c6) SHA1(9ce8e681b9df6eacd0d23a36bad836bd5074233d) ) /* TC531001 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "037-v1.v1", 0x000000, 0x100000, CRC(61fedf65) SHA1(98f31d1e23bf7c1f7844e67f14707a704134042e) ) /* TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "037-c1.c1", 0x000000, 0x100000, CRC(09df6892) SHA1(df2579dcf9c9dc88d461212cb74de106be2983c1) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "037-c2.c2", 0x000001, 0x100000, CRC(ac122a78) SHA1(7bfa4d29b7d7d9443f64d81caeafa74fe05c606e) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "037-c3.c3", 0x200000, 0x100000, CRC(9d7ed1ca) SHA1(2bbd25dc3a3f825d0af79a418f06a23a1bf03cc0) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "037-c4.c4", 0x200001, 0x100000, CRC(4a24395d) SHA1(943f911f40985db901eaef4c28dfcda299fca73e) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0038 - . ALM-003 - NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1 - . ALH-003 - NEO-AEG PROG42G-COM / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( trally ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "038-p1.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "038-p2.p2", 0x080000, 0x080000, CRC(a5193e2f) SHA1(96803480439e90da23cdca70d59ff519ee85beeb) ) /* TC534200 */ - - ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ - ROM_LOAD( "hd6301v1p.hd6301v1", 0x0000, 0x1000, NO_DUMP ) - - NEO_SFIX_128K( "038-s1.s1", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "038-m1.m1", CRC(0908707e) SHA1(df7489ea6abf84d7f137ba7a8f52a4fd1b088fd7) ) /* TC531001 */ - - ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "038-v1.v1", 0x000000, 0x100000, CRC(5ccd9fd5) SHA1(c3c8c758a320c39e4ceb0b6d9f188ed6d122eec4) ) /* TC538200 */ - ROM_LOAD( "038-v2.v2", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) ) /* TC534200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "038-c1.c1", 0x000000, 0x100000, CRC(c58323d4) SHA1(a6bd277471a4b612d165f8b804f3cb662f499b70) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "038-c2.c2", 0x000001, 0x100000, CRC(bba9c29e) SHA1(b70bbfdfa8c4f9ea76406530e86b16e42498d284) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "038-c3.c3", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "038-c4.c4", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0039 - . NGM-039 - NEO-MVS PROG16 / NEO-MVS CHA42G-1 - . NGH-039 - NEO-AEG PROG16 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( kotm2 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "039-p1.p1", 0x000000, 0x080000, CRC(b372d54c) SHA1(b70fc6f72e16a66b6e144cc01370548e3398b8b8) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "039-p2.p2", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) ) /* TC534200 */ - - NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) /* TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "039-v2.v2", 0x000000, 0x200000, CRC(86d34b25) SHA1(89bdb614b0c63d678962da52e2f596750d20828c) ) /* TC5316200 */ - ROM_LOAD( "039-v4.v4", 0x200000, 0x100000, CRC(8fa62a0b) SHA1(58ac2fdd73c542eb8178cfc4adfa0e5940183283) ) /* TC538200 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "039-c1.c1", 0x000000, 0x100000, CRC(6d1c4aa9) SHA1(4fbc9d7cb37522ec298eefbe38c75a2d050fbb4a) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "039-c2.c2", 0x000001, 0x100000, CRC(f7b75337) SHA1(4d85f85948c3e6ed38b0b0ccda79de3ce026e2d9) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "039-c3.c3", 0x200000, 0x080000, CRC(bfc4f0b2) SHA1(f4abe2b52882b966412f3b503b8f2c8f49b57968) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "039-c4.c4", 0x200001, 0x080000, CRC(81c9c250) SHA1(e3a34ff69081a8681b5ca895915892dcdccfa7aa) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -ROM_START( kotm2a ) /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "039_p1.p1", 0x000000, 0x080000, CRC(8d186638) SHA1(c3874bbb1bfcb220173afb2e0a2123ffaeb7bd2b) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "039-p2.p2", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) ) /* TC534200 */ - - NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) /* TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "039-v2.v2", 0x000000, 0x200000, CRC(86d34b25) SHA1(89bdb614b0c63d678962da52e2f596750d20828c) ) /* TC5316200 */ - ROM_LOAD( "039-v4.v4", 0x200000, 0x100000, CRC(8fa62a0b) SHA1(58ac2fdd73c542eb8178cfc4adfa0e5940183283) ) /* TC538200 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "039-c1.c1", 0x000000, 0x100000, CRC(6d1c4aa9) SHA1(4fbc9d7cb37522ec298eefbe38c75a2d050fbb4a) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "039-c2.c2", 0x000001, 0x100000, CRC(f7b75337) SHA1(4d85f85948c3e6ed38b0b0ccda79de3ce026e2d9) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "039-c3.c3", 0x200000, 0x080000, CRC(bfc4f0b2) SHA1(f4abe2b52882b966412f3b503b8f2c8f49b57968) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "039-c4.c4", 0x200001, 0x080000, CRC(81c9c250) SHA1(e3a34ff69081a8681b5ca895915892dcdccfa7aa) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -ROM_START( kotm2p ) /* fairly late prototype release, only the code differs from the main set */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_BYTE( "proto_039-p1.p1", 0x000001, 0x080000, CRC(3c1d17e7) SHA1(aeaff465fafa46ded903ed4e8cb8cd05de8dc096) ) - ROM_LOAD16_BYTE( "proto_039-p2.p2", 0x000000, 0x080000, CRC(bc9691f0) SHA1(3854659b952d4f8c2edd5d59858a61ce6d518604) ) - - NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) /* TC531001 */ - - // same data as main set, but prototype board layout - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "proto_039-v1.v1", 0x000000, 0x080000, CRC(dd3566f1) SHA1(f7c2a3747aaab2bc57cdfa33d8bb9fab057b5214) ) - ROM_LOAD( "proto_039-v2.v2", 0x080000, 0x080000, CRC(57f60274) SHA1(7e17740aa05cf7ad4f9084e147600a8eb82c7284) ) - ROM_LOAD( "proto_039-v3.v3", 0x100000, 0x080000, CRC(0f008a07) SHA1(ed243a0449232bbea409308c3fec7e057fcd8501) ) - ROM_LOAD( "proto_039-v4.v4", 0x180000, 0x080000, CRC(1943d0fe) SHA1(47fb716c76ea6b5fe64204ff6d72b7feea10bda9) ) - ROM_LOAD( "proto_039-v5.v5", 0x200000, 0x080000, CRC(13be045b) SHA1(0e3713ae6b164ebae434c0f18c466365b26b9a77) ) - ROM_LOAD( "proto_039-v6.v6", 0x280000, 0x080000, CRC(d1dd3fd6) SHA1(052b92168a76cf3a97c8cacebcc3ebab228726df) ) - - // same data as main set, but prototype board layout - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE - ROM_LOAD32_BYTE( "proto_039-c1.c1", 0x000000, 0x100000, CRC(7192a787) SHA1(7bef6ce79c618103485480aee3c6f856968eb51f) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "proto_039-c2.c2", 0x000002, 0x100000, CRC(7157eca1) SHA1(65f36c6a3834775b04076d2c38a6047bffe9a8cf) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "proto_039-c3.c3", 0x000001, 0x100000, CRC(11d75727) SHA1(5a4c7b5ca3f1195e7853b45c5e71c13fe74d16e9) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "proto_039-c4.c4", 0x000003, 0x100000, CRC(7ad48b28) SHA1(27e65d948f08c231107cb1a810e2b06731091fc3) ) /* Plane 3 */ - ROM_LOAD32_BYTE( "proto_039-c5.c5", 0x400000, 0x080000, CRC(5bdaf9ca) SHA1(60620d42ac6cd0e5da019fede2814a2f4171ff3f) ) /* Plane 0 */ - ROM_LOAD32_BYTE( "proto_039-c6.c6", 0x400002, 0x080000, CRC(21d4be8c) SHA1(f1b19d37d52d21584f304b7d37d5c096b58219d6) ) /* Plane 2 */ - ROM_LOAD32_BYTE( "proto_039-c7.c7", 0x400001, 0x080000, CRC(da55fd00) SHA1(52804f955597591fdd1d7478dc340b36d3c08c4a) ) /* Plane 1 */ - ROM_LOAD32_BYTE( "proto_039-c8.c8", 0x400003, 0x080000, CRC(592e9267) SHA1(0d27de59970ccbcaa1d47909ea3d741ffb0d9e07) ) /* Plane 3 */ -ROM_END - -/**************************************** - ID-0040 - . NGM-040 - NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 - . NGH-040 - NEO-AEG PROG16 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( sengoku2 ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "040-p1.p1", 0x000000, 0x100000, CRC(6dde02c2) SHA1(e432e63feb88c71629ec96aa84650dcfe356a551) ) /* TC538200 */ - - NEO_SFIX_128K( "040-s1.s1", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "040-m1.m1", CRC(d4de4bca) SHA1(ecf604d06f01d40b04e285facef66a6ae2d35661) ) /* TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "040-v1.v1", 0x000000, 0x200000, CRC(71cb4b5d) SHA1(56d9aca1d476c19c7d0f707176a8fed53e0189b7) ) /* TC5316200 */ - // AES has different label, data is the same: 040-v1.v2 - ROM_LOAD( "040-v2.v2", 0x200000, 0x100000, CRC(c5cece01) SHA1(923a3377dac1919e8c3d9ab316902250caa4785f) ) /* TC538200 */ - // AES has different label, data is the same: 040-v2.v4 - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "040-c1.c1", 0x000000, 0x100000, CRC(faa8ea99) SHA1(714575e57ea1990612f960ec42b38d2e157ad400) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "040-c2.c2", 0x000001, 0x100000, CRC(87d0ec65) SHA1(23645e0cf859fb4cec3745b3846ca0ef64c689fb) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "040-c3.c3", 0x200000, 0x080000, CRC(24b5ba80) SHA1(29d58a6b56bd24ee2046a8d45e023b4d7ab7685b) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "040-c4.c4", 0x200001, 0x080000, CRC(1c9e9930) SHA1(d017474873750a7602b7708c663d29b25ef7bb63) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0041 - . NGM-041 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-041 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( bstars2 ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "041-p1.p1", 0x000000, 0x080000, CRC(523567fd) SHA1(f1e81eb4678f586b214ea102cde6effea1b0f768) ) /* TC534200 */ - - NEO_SFIX_128K( "041-s1.s1", CRC(015c5c94) SHA1(f1c60cd3dc54986b39f630ef3bf48f68c68695dc) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "041-m1.m1", CRC(15c177a6) SHA1(3f4abed635102f9bc8b44809750828c82e79b44f) ) /* TC531001 */ - - ROM_REGION( 0x280000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "041-v1.v1", 0x000000, 0x100000, CRC(cb1da093) SHA1(4f4d1d5fefa9dda372083c045bf0d268a57ce8f1) ) /* TC538200 */ - ROM_LOAD( "041-v2.v2", 0x100000, 0x100000, CRC(1c954a9d) SHA1(159bc6efdd531615461f6e16f83f6d4c4e67c237) ) /* TC538200 */ - ROM_LOAD( "041-v3.v3", 0x200000, 0x080000, CRC(afaa0180) SHA1(c4a047e21f093830498a163598ed7bd48a8cf9d1) ) /* TC534200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "041-c1.c1", 0x000000, 0x100000, CRC(b39a12e1) SHA1(bafe383bd7c5a6aac4cb92dabbc56e3672fe174d) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "041-c2.c2", 0x000001, 0x100000, CRC(766cfc2f) SHA1(79e1063925d54a57df943019a88bea56c9152df3) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "041-c3.c3", 0x200000, 0x100000, CRC(fb31339d) SHA1(f4e821299680970b2e979acc4a170029b968c807) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "041-c4.c4", 0x200001, 0x100000, CRC(70457a0c) SHA1(a1e307f11ddab85d2e9c09d0428fac2e6da774b1) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0042 - . NGM-042 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . NGH-042 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( quizdai2 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "042-p1.p1", 0x000000, 0x100000, CRC(ed719dcf) SHA1(12baf2601e86c0e4358517b9fa1c55f2f5835f1d) ) /* TC538200 */ - - NEO_SFIX_128K( "042-s1.s1", CRC(164fd6e6) SHA1(dad35bedc33d502a5ae745a45a972af8d901b160) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "042-m1.m1", CRC(bb19995d) SHA1(ed458fad5a23c6bd0d099927d98c31e1e6562d1b) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "042-v1.v1", 0x000000, 0x100000, CRC(af7f8247) SHA1(99a47014017c20e4e22010c60612b6b7f6efc9e5) ) /* TC538200 */ - ROM_LOAD( "042-v2.v2", 0x100000, 0x100000, CRC(c6474b59) SHA1(a6c5054032b698116247b2f09a8b94a1b588c4f1) ) /* TC538200 */ - - ROM_REGION( 0x300000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "042-c1.c1", 0x000000, 0x100000, CRC(cb5809a1) SHA1(b53d06685246dd51b82b5c1d54d639d10e2ec26d) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "042-c2.c2", 0x000001, 0x100000, CRC(1436dfeb) SHA1(27d136fb1be793bd345a741f5e55a977275fff86) ) /* Plane 2,3 */ /* TC538200 */ - ROM_LOAD16_BYTE( "042-c3.c3", 0x200000, 0x080000, CRC(bcd4a518) SHA1(f355298fe0f2cf50ddcc0d613db56a5c04d7230f) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "042-c4.c4", 0x200001, 0x080000, CRC(d602219b) SHA1(34cf0f16db1e224396464ac838f4cd2e6d1c640e) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0043 - . NGM-043 - NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 - NEO-MVS PROG-G2 / NEO-MVS CHA 42G-2 - . NGH-043 - NEO-AEG PROG16 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( 3countb ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "043-p1.p1", 0x000000, 0x100000, CRC(ffbdd928) SHA1(05b24655ca32723661adc5509b450824deb0c176) ) /* TC538200 */ - /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */ - - NEO_SFIX_128K( "043-s1.s1", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "043-m1.m1", CRC(7eab59cb) SHA1(5ae4107457e091f73960bfba39b589ae36d51ca3) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "043-v1.v1", 0x000000, 0x200000, CRC(63688ce8) SHA1(5c6ac29a0cc0655a87cfe3ada8706838b86b86e4) ) /* TC5316200 */ - ROM_LOAD( "043-v2.v2", 0x200000, 0x200000, CRC(c69a827b) SHA1(f5197ea87bb6573fa6aef3a1713c3679c58c1e74) ) /* TC5316200 */ - - ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "043-c1.c1", 0x000000, 0x100000, CRC(bad2d67f) SHA1(04928e50ca75b7fbc52b64e816ec5701901f5893) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "043-c2.c2", 0x000001, 0x100000, CRC(a7fbda95) SHA1(9da3c5faf22592a7eaf8df9fa6454f48c2a927ae) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "043-c3.c3", 0x200000, 0x100000, CRC(f00be011) SHA1(2721cdba37a511a966a2a53b9bd6240f181d920c) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x600000, 0x100000 ) - ROM_LOAD16_BYTE( "043-c4.c4", 0x200001, 0x100000, CRC(1887e5c0) SHA1(9b915359add7c10c78d8b281b4084eceea8f0499) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x600001, 0x100000 ) -ROM_END - -/**************************************** - ID-0044 - . NGM-044 - NEO-MVS PROG16 / NEO-MVS CHA42G-1 - NEO-MVS PROG4096 / NEO-MVS CHA42G-1 - . NGH-044 - NEO-AEG PROG16 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( aof ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "044-p1.p1", 0x000000, 0x080000, CRC(ca9f7a6d) SHA1(4d28ef86696f7e832510a66d3e8eb6c93b5b91a1) ) /* TC534200 */ - /* also found sets with ep1 or p1 on eprom. */ - - NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "044-m1.m1", CRC(0987e4bb) SHA1(8fae4b7fac09d46d4727928e609ed9d3711dbded) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "044-v2.v2", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) ) /* TC5316200 */ - ROM_LOAD( "044-v4.v4", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) ) /* TC5316200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "044-c1.c1", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "044-c2.c2", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "044-c3.c3", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x600000, 0x100000 ) - ROM_LOAD16_BYTE( "044-c4.c4", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x600001, 0x100000 ) -ROM_END - -/**************************************** - ID-0045 - . NGM-045 - NEO-MVS PROGGSC / NEO-MVS CHA 42G-3 - . NGH-045 - NEO-AEG PROGGS / NEO-AEG CHA42G-4 -****************************************/ - -ROM_START( samsho ) /* MVS VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) ) /* TC538200 */ - /* also found set with ep1 / ep2 on eprom and sp2 on maskrom; same rom data as samshoh is used. */ - - NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) /* TC5316200 */ - ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) /* TC5316200 */ - - ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( samshoh ) /* AES VERSION */ - ROM_REGION( 0x180000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) ) /* TC534200 */ - - NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) /* TC5316200 */ - ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) /* TC5316200 */ - - ROM_REGION( 0x900000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) /* Plane 2,3 */ /* TC534200 */ - /* also found AES set with C6 on TC538200; label is 045-C61.C6 */ -ROM_END - -/**************************************** - ID-0046 - . NGM-046 - NEO-MVS PROGTOP / NEO-MVS CHA256B - . NGH-046 - NEO-AEG PROGTOP / NEO-AEG CHA256[B] -****************************************/ - -ROM_START( tophuntr ) /* MVS VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "046-p1.p1", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "046-s1.s1", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */ - ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */ - ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */ - ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -ROM_START( tophuntrh ) /* AES VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "046-pg1.p1",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "046-p2.sp2",0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "046-sg1.s1", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */ - ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */ - ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */ - ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0047 - . NGM-047 - NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA42G-1 - . NGH-047 - NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2B - NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2 -****************************************/ - -ROM_START( fatfury2 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "047-p1.p1", 0x000000, 0x100000, CRC(ecfdbb69) SHA1(59e2f137c6eaf043df4ddae865a9159a10265c60) ) /* TC538200 */ - /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */ - - NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) /* TC5316200 */ - ROM_LOAD( "047-v2.v2", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) ) /* TC5316200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "047-c1.c1", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "047-c2.c2", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "047-c3.c3", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x600000, 0x100000 ) - ROM_LOAD16_BYTE( "047-c4.c4", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x600001, 0x100000 ) -ROM_END - -/**************************************** - ID-0048 - . ??M-048 - NEO-MVS PROGGSC / NEO-MVS CHA256 -****************************************/ - -ROM_START( janshin ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "048-p1.p1", 0x000000, 0x100000, CRC(fa818cbb) SHA1(afee2c897b766c84f13891fb52c574fb18df0951) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "048-s1.s1", CRC(8285b25a) SHA1(d983640cda3e346e38469b4d3ec8048b116a7bb7) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "048-m1.m1", CRC(310467c7) SHA1(c529961195c9bdf5d1ce70a38ad129002d1f3b5f) ) /* mask rom TC531001 */ - - ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "048-v1.v1", 0x000000, 0x200000, CRC(f1947d2b) SHA1(955ff91ab24eb2a7ec51ff46c9f9f2ec060456b2) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "048-c1.c1", 0x000000, 0x200000, CRC(3fa890e9) SHA1(e73d2802bacfbc2b2b16fbbedddde17488e4bbde) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "048-c2.c1", 0x000001, 0x200000, CRC(59c48ad8) SHA1(2630817e735a6d197377558f4324c1442803fe15) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0049 - . NGM-049 - NEO-MVS PROG16 / NEO-MVS CHA42G-1 - . NGH-049 - NEO-AEG PROG16 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( androdun ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "049-p1.p1", 0x000000, 0x080000, CRC(3b857da2) SHA1(4dd86c739944696c16c3cdd85935d6dfa9fdc276) ) /* CXK384500 */ - ROM_LOAD16_WORD_SWAP( "049-p2.p2", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) ) /* CXK384500 */ - - NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) ) /* CXK381000 */ - - NEO_BIOS_AUDIO_128K( "049-m1.m1", CRC(edd2acf4) SHA1(c4ee6ba834d54b9fc5a854dbc41a05877e090371) ) /* CXK381003 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "049-v1.v1", 0x000000, 0x100000, CRC(ce43cb89) SHA1(47f82e077abb6efc6b1b0490412ae147d5d2acef) ) /* CXK388000 */ - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "049-c1.c1", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) ) /* Plane 0,1 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "049-c2.c2", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) ) /* Plane 2,3 */ /* CXK388000 */ -ROM_END - -/**************************************** - ID-0050 - . ALM-004 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . ALH-004 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( ncommand ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "050-p1.p1", 0x000000, 0x100000, CRC(4e097c40) SHA1(43311a7ca14a14dcd4a99d8576a12e897b078643) ) /* CXK388000 */ - - NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) ) /* CXK381000 */ - - NEO_BIOS_AUDIO_128K( "050-m1.m1", CRC(6fcf07d3) SHA1(e9ecff4bfec1f5964bf06645f75d80d611b6231c) ) /* CXK381003 */ - - ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "050-v1.v1", 0x000000, 0x100000, CRC(23c3ab42) SHA1(b6c59bb180f1aa34c95f3ec923f3aafb689d57b0) ) /* CXK388000 */ - ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) ) /* CXK384000 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "050-c1.c1", 0x000000, 0x100000, CRC(87421a0a) SHA1(1d8faaf03778f7c5b062554d7333bbd3f0ca12ad) ) /* Plane 0,1 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "050-c2.c2", 0x000001, 0x100000, CRC(c4cf5548) SHA1(ef9eca5aeff9dda2209a050c2af00ed8979ae2bc) ) /* Plane 2,3 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "050-c3.c3", 0x200000, 0x100000, CRC(03422c1e) SHA1(920e5015aebe2ffc5ce43a52365c7f0a705f3b9e) ) /* Plane 0,1 */ /* CXK388000 */ - ROM_LOAD16_BYTE( "050-c4.c4", 0x200001, 0x100000, CRC(0845eadb) SHA1(3c71a02bf0e07a5381846bb6d75bbe7dd546adea) ) /* Plane 2,3 */ /* CXK388000 */ -ROM_END - -/**************************************** - ID-0051 - . AIM-051 - NEO-MVS PROG-G2 / NEO-MVS CHA42G-1 - NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 - . AIH-051 -****************************************/ - -ROM_START( viewpoin ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "051-p1.p1", 0x000000, 0x100000, CRC(17aa899d) SHA1(674cd8ace7acdf4f407de741e3d0071bcb49c902) ) /* CXK388002 */ - - NEO_SFIX_128K( "051-s1.s1", CRC(9fea5758) SHA1(5c6f01da89f2639cf741ee7c39e27023b8083052) ) /* CXK381000 */ - - NEO_BIOS_AUDIO_128K( "051-m1.m1", CRC(8e69f29a) SHA1(7a25f4997996434ea1b7d0d1ca9e7aaf966cbd03) ) /* CXK381003 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - /* What board was originally used (labels 051-V2 and 051-V4)? MVS is twice confirmed on NEO-MVS PROG-G2 */ - ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) ) /* CXK381600 */ - ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) ) /* CXK381600 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) ) /* Plane 0,1 */ /* CXK381600 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) ) /* Plane 2,3 */ /* CXK381600 */ - ROM_CONTINUE( 0x400001, 0x100000 ) -ROM_END - -/**************************************** - ID-0052 - . NGM-052 - NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA 42G-2 - . NGH-052 - NEO-AEG PROG-G2 (SNK-9201) / NEO-AEG CHA42G-2 -****************************************/ - -ROM_START( ssideki ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "052-p1.p1", 0x000000, 0x080000, CRC(9cd97256) SHA1(1c780b711137fd79cc81b01941e84f3d59e0071f) ) /* TC534200 */ - - NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) ) /* TC5316200 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "052-c1.c1", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "052-c2.c2", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) -ROM_END - -/**************************************** - ID-0053 - . ALM-005 - NEO-MVS PROG16 / NEO-MVS CHA42G-1 - . ALH-005 - NEO-AEG PROG16 / NEO-AEG CHA42G-1 - NEO-AEG PROG-G2 / NEO-AEG CHA42G-2C -****************************************/ - -ROM_START( wh1 ) /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "053-epr.p1", 0x000000, 0x080000, CRC(d42e1e9a) SHA1(9d1911fe4bf6202466ec45557dd008cbf01ca9c6) ) /* D27C4000 */ - ROM_LOAD16_WORD_SWAP( "053-epr.p2", 0x080000, 0x080000, CRC(0e33e8a3) SHA1(4b7086edb504f3c30529d51ba8f453d48eba5164) ) /* D27C4000 */ - /* P's on eprom, correct chip label unknown */ - - NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC54H1000 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ - ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( wh1h ) /* AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "053-p1.p1", 0x000000, 0x080000, CRC(95b574cb) SHA1(b7b7af6a04c3d902e7f8852897741ecaf0b1062c) ) /* TC534200 */ - ROM_LOAD16_WORD_SWAP( "053-p2.p2", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) ) /* TC534200 */ - - NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ - ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( wh1ha ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "053-p1_a.p1", 0x000000, 0x080000, CRC(ed29fde2) SHA1(52b8ca5b804f786f95e1dfb348d8c7b82f1d4ddf) ) /* D27C4000 */ - ROM_LOAD16_WORD_SWAP( "053-p2_a.p2", 0x080000, 0x080000, CRC(98f2b158) SHA1(a64e1425970eb53cc910891db39973dee3d54ccc) ) /* D27C4000 */ - /* Correct chip labels for p1 and p2 unknown */ - - NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ - ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0054 - Crossed Swords 2 (CD only? not confirmed, MVS might exist) -****************************************/ - -/**************************************** - ID-0055 - . NGM-055 - NEO-MVS PROGTOP / NEO-MVS CHA256 - NEO-MVS PROGTOP / NEO-MVS CHA256B - . NGH-055 - NEO-AEG PROGRK / NEO-AEG CHA256 -****************************************/ - -ROM_START( kof94 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "055-p1.p1", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) /* mask rom TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) /* mask rom TC5316200 */ - ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) /* mask rom TC5316200 */ - ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0056 - . NGM-056 - NEO-MVS PROGGSC / NEO-MVS CHA256 - . NGH-056 - NEO-AEG PROGRKB / NEO-AEG CHA256[B] -****************************************/ - -ROM_START( aof2 ) /* MVS VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) /* TC538200 */ - - NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) /* TC531001 */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) /* TC5316200 */ - ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) /* TC5316200 */ - ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) /* TC538200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Different layout with 4xC (32mbit) also exists; chip labels are 056-C13, 056-C24, 056-C57 and 056-C68 */ - ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -ROM_START( aof2a ) /* AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) /* TC538200 */ - /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ - ROM_LOAD16_WORD_SWAP( "056-epr.ep1", 0x000000, 0x80000, CRC(75d6301c) SHA1(e72d15fba55f96be7b4fa29e705a7b78f56edf7d) ) /* M27C4002 */ - /* P is on eprom, correct chip label unknown */ - - NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) /* TC531001 */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) /* TC5316200 */ - ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) /* TC5316200 */ - ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) /* TC538200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0057 - . ALM-006 - NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 - . ALH-006 - NEO-AEG PROG4096 B / NEO-AEG CHA42G-3 -****************************************/ - -ROM_START( wh2 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "057-p1.p1", 0x100000, 0x100000, CRC(65a891d9) SHA1(ff8d5ccb0dd22c523902bb3db3c645583a335056) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) ) /* TC5316200 */ - ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) ) /* TC5316200 */ - - ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0058 - . NGM-058 - NEO-MVS PROGGSC / NEO-MVS CHA42G-3B - NEO-MVS PROGGSC / NEO-MVS CHA 42G-3 - . NGH-058 - NEO-AEG PROGGS / NEO-AEG CHA42G-4 -****************************************/ - -ROM_START( fatfursp ) /* MVS AND AES VERSION */ - ROM_REGION( 0x180000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */ - - NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */ - ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */ - ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */ - - ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -ROM_START( fatfurspa ) /* MVS AND AES VERSION */ - ROM_REGION( 0x180000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */ - /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ - ROM_LOAD16_WORD_SWAP( "058-epr.ep1", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) ) /* M27C4002 */ - /* P is on eprom, correct chip label unknown */ - - NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */ - ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */ - ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */ - - ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0059 - . NGM-059 - NEO-MVS PROGTOP / NEO-MVS CHA256 - NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 - . NGH-059 -****************************************/ - -ROM_START( savagere ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "059-p1.p1", 0x100000, 0x100000, CRC(01d4e9c0) SHA1(3179d2be59bf2de6918d506117cff50acf7e09f3) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ - ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) ) /* TC5316200 */ - ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0060 - . ??M-060 - NEO-MVS PROGGSC / NEO-MVS CHA256B -****************************************/ - -ROM_START( fightfev ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) /* VIC940800 */ - - NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) ) /* VIC930100 */ - - NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) /* VIC930100 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) /* VIC931600 */ - ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) ) /* VIC930800 */ - - ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) /* Plane 0,1 */ /* VIC931600 */ - ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) /* Plane 2,3 */ /* VIC931600 */ - ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) /* Plane 0,1 */ /* VIC931600 */ - ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) /* Plane 2,3 */ /* VIC931600 */ -ROM_END - -ROM_START( fightfeva ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) /* VIC940800 */ - /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ - ROM_LOAD16_WORD_SWAP( "1.sp2", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) ) - /* P is on eprom, has a Viccom logo at the top of the label with a circled '1' in the center */ - - NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) ) /* VIC930100 */ - - NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) /* VIC930100 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) /* VIC931600 */ - ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) ) /* VIC930800 */ - - ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) /* Plane 0,1 */ /* VIC931600 */ - ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) /* Plane 2,3 */ /* VIC931600 */ - ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) /* Plane 0,1 */ /* VIC931600 */ - ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) /* Plane 2,3 */ /* VIC931600 */ -ROM_END - -/**************************************** - ID-0061 - . NGM-061 - NEO-MVS PROGGSC / NEO-MVS CHA256 - NEO-MVS PROGTOP / NEO-MVS CHA256 - NEO-MVS PROG 4096 B / NEO-MVS CHA256 - . NGH-061 - NEO-AEG PROGRKB / NEO-AEG CHA256[B] -****************************************/ - -ROM_START( ssideki2 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "061-p1.p1", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) /* mask rom TC538200 */ - /* also found MVS sets with ep1 / ep2 on eprom; correct chip label unknown. */ - - NEO_SFIX_128K( "061-s1.s1", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "061-m1.m1", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) ) /* mask rom TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "061-v1.v1", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) ) /* mask rom TC5316200 */ - ROM_LOAD( "061-v2.v2", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - /* Different layout with 8xC (8 mbit) also exists; naming sheme 061-Cx */ - ROM_LOAD16_BYTE( "061-c1-16.c1", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "061-c2-16.c2", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "061-c3-16.c3", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "061-c4-16.c4", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0062 - . DEM-001 - NEO-MVS PROGGSC / NEO-MVS CHA256 - . DEH-001 -****************************************/ - -ROM_START( spinmast ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "062-p1.p1", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) /* mask rom TC531001 */ - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) /* mask rom TC538200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0063 - . NGM-063 - NEO-MVS PROGTOP / NEO-MVS CHA256 - . NGH-063 - NEO-AEG PROGTOP2 / NEO-AEG CHA256 B -****************************************/ - -ROM_START( samsho2 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "063-p1.p1", 0x100000, 0x100000, CRC(22368892) SHA1(0997f8284aa0f57a333be8a0fdea777d0d01afd6) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - /* also found MVS sets with ep1 / ep2 on eprom and p1 / sp2 on maskrom; correct chip label unknown */ - - NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) /* TC531001 */ - - ROM_REGION( 0x700000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) /* TC5316200 */ - ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) /* TC5316200 */ - ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) /* TC5316200 */ - ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) /* TC538200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -ROM_START( samsho2k ) /* KOREAN VERSION */ - // This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - // the roms below apply as patch over the main program (I haven't checked what they change, the game boots as the Korean version even with just the above program) - ROM_LOAD16_WORD_SWAP( "063-ep1-kan.ep1", 0x000000, 0x080000, CRC(fa32e2d8) SHA1(94f56759ec04ab3a1e557bc2dc51b92176b3c147) ) - ROM_LOAD16_WORD_SWAP( "063-ep2-kan.ep2", 0x080000, 0x080000, CRC(70b1a4d9) SHA1(387737e87a68d0ea4fd13693f1f30d3227a17c82) ) // this is exactly the same data anyway! - - NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) ) - - NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) /* TC531001 */ - - ROM_REGION( 0x700000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) /* TC5316200 */ - ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) /* TC5316200 */ - ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) /* TC5316200 */ - ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) /* TC538200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -ROM_START( samsho2ka ) /* KOREAN VERSION */ - // This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - // Basically samsho2k without loading ep1 and ep2 over p1-kan ; The game has been confirmed to exist in this state - - NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) ) - - NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) /* TC531001 */ - - ROM_REGION( 0x700000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) /* TC5316200 */ - ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) /* TC5316200 */ - ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) /* TC5316200 */ - ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) /* TC538200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0064 - . ADM-007 - NEO-MVS PROGGSC / NEO-MVS CHA256 - . ADH-007 - NEO-AEG PROGRK / NEO-AEG CHA256 - NEO-AEG PROGRKB / NEO-AEG CHA256[B] -****************************************/ - -ROM_START( wh2j ) /* MVS AND AES VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "064-p1.p1", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) ) /* TC5316200 */ - ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) /* TC5316200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Different layout with 4xC (32 mbit) also exists; chip labels are 064-C13, 064-C24, 064-C57 and 064-c68. */ - ROM_LOAD16_BYTE( "064-c1.c1", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "064-c2.c2", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "064-c3.c3", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "064-c4.c4", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "064-c5.c5", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "064-c6.c6", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "064-c7.c7", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "064-c8.c8", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0065 - . DEM-002 - NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 - . DEH-002 - NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 -****************************************/ - -ROM_START( wjammers ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "065-p1.p1", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) /* mask rom TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) /* mask rom TC538200 */ - ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) /* mask rom TC538200 */ - ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) /* mask rom TC538200 */ - ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) /* mask rom TC538200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "065-c1.c1", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "065-c2.c2", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0066 - . DEM-003 - NEO-MVS PROGGSC / NEO-MVS CHA256 - . DEH-003 -****************************************/ - -ROM_START( karnovr ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "066-p1.p1", 0x000000, 0x100000, CRC(8c86fd22) SHA1(8cf97c6fb9c5717167ccc54bf5856248ccaf32c6) ) /* TC538200 */ - - NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) ) /* TC5316200 */ - - ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0067 - . ??M-067 - NEO-MVS PROG16 / NEO-MVS CHA256B - NEO-MVS PROG16 / NEO-MVS CHA256 -****************************************/ - -ROM_START( gururin ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "067-p1.p1", 0x000000, 0x80000, CRC(4cea8a49) SHA1(cea4a35db8de898e30eb40dd339b3cbe77ac0856) ) /* UM8303B */ - - NEO_SFIX_128K( "067-s1.s1", CRC(b119e1eb) SHA1(f63a68a71aea220d3d4475847652e2a1f68b2b6f) ) /* UMK300 */ - - NEO_BIOS_AUDIO_128K( "067-m1.m1", CRC(9e3c6328) SHA1(17e8479c258f28a01d2283be9e692ff7685898cc) ) /* UML359 */ - - ROM_REGION( 0x80000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "067-v1.v1", 0x000000, 0x80000, CRC(cf23afd0) SHA1(10f87014ee10613f92b04f482f449721a6379db7) ) /* UM8302 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "067-c1.c1", 0x000000, 0x200000, CRC(35866126) SHA1(e4b24670ccc7901af5f66b11b15fae4e67f843ab) ) /* Plane 0,1 */ /* UMT301B */ - ROM_LOAD16_BYTE( "067-c2.c2", 0x000001, 0x200000, CRC(9db64084) SHA1(68a43c12f63f5e98d68ad0902a6551c5d30f8543) ) /* Plane 2,3 */ /* UMT302B */ -ROM_END - -/**************************************** - ID-0068 - . NGM-068 - NEO-MVS PROGTOP / NEO-MVS CHA256 -****************************************/ - -ROM_START( pspikes2 ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "068-pg1.p1", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "068-sg1.s1", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "068-mg1.m1", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) ) /* mask rom TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* mask rom TC538200 */ - ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* mask rom TC538200 */ - ROM_LOAD( "068-v3.v3", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) ) /* mask rom TC538200 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* Plane 2,3 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "068-c5.c5", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "068-c6.c6", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0069 - . NGM-069 - NEO-MVS PROGBK1 / NEO-MVS CHA256 -. NGH-069 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( fatfury3 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "069-p1.p1", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) /* TC5316200 */ - - NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) /* TC531001 */ - - ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ - ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ - ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) /* TC5316200 */ - - ROM_REGION( 0x1400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0070 - . ??M-070 - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) -****************************************/ - -ROM_START( zupapa ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "070-p1.p1", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) ) /* mask rom TC538200 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "070-epr.m1", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) ) /* M27C1001 */ - /* M1 on eprom, correct chip label unknown */ - - ROM_REGION( 0x0200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "070-v1.v1", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "070-c1.c1", 0x0000000, 0x800000, CRC(f8ad02d8) SHA1(9be54532332a8e963ec35ff1e518947bb11ebade) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "070-c2.c2", 0x0000001, 0x800000, CRC(70156dde) SHA1(06286bf043d50199b47df9a76ca91f39cb28cb90) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0071 - Bang Bang Busters (prototype) 1994 Visco - Prepared for release in 2000/2001, but apparently Zupapa was favored - The 2000 version was released in 2010 for MVS and AES (Releaser claims that it is officially licensed by VISCO) - - Reported UNIVERSE BIOS CRC32: - ROM EC861CAF - BANK 0 NOT USED - BANK 1 NOT USED - BANK 2 NOT USED - BANK 3 NOT USED - ****************************************/ -ROM_START( b2b ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "071.p1", 0x000000, 0x080000, CRC(7687197d) SHA1(4bb9cb7819807f7a7e1f85f1c4faac4a2f8761e8) ) - - NEO_SFIX_128K( "071.s1", CRC(44e5f154) SHA1(b3f80051789e60e5d8c5df0408f1aba51616e92d) ) - - NEO_BIOS_AUDIO_128K( "071.m1", CRC(6da739ad) SHA1(cbf5f55c54b4ee00943e2a411eeee4e465ce9c34) ) - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "071.v1", 0x000000, 0x100000, CRC(50feffb0) SHA1(00127dae0130889995bfa7560bc4b0662f74fba5) ) - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "071.c1", 0x000000, 0x200000, CRC(23d84a7a) SHA1(9034658ad40e2c45558abc3db312aa2764102fc4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "071.c2", 0x000001, 0x200000, CRC(ce7b6248) SHA1(ad1cd5adae5c151e183ff88b68afe10f7009f48e) ) /* Plane 2,3 */ -ROM_END - - -/**************************************** - ID-0072 - Last Odyssey Pinball Fantasia (prototype) 1995 Monolith - A video of this was on youtube in 2010/2011. - ****************************************/ - -/**************************************** - ID-0073 - . ??M-073 - NEO-MVS PROGTOP / NEO-MVS CHA256 -****************************************/ - -ROM_START( panicbom ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "073-p1.p1", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) ) /* mask rom TC534200 */ - - NEO_SFIX_128K( "073-s1.s1", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "073-m1.m1", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) ) /* mask rom TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "073-v1.v1", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) ) /* mask rom TC5316200 */ - ROM_LOAD( "073-v2.v2", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) ) /* mask rom TC538200 */ - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "073-c1.c1", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "073-c2.c2", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0074 - . ADM-008 - NEO-MVS PROGTOP / NEO-MVS CHA256B - . ADH-008 - NEO-AEG PROGRK / NEO-AEG CHA256 -****************************************/ - -ROM_START( aodk ) /* MVS AND AES VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "074-p1.p1", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "074-s1.s1", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "074-m1.m1", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "074-v1.v1", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) ) /* TC5316200 */ - ROM_LOAD( "074-v2.v2", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) ) /* TC5316200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "074-c1.c1", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "074-c2.c2", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "074-c3.c3", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "074-c4.c4", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "074-c5.c5", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "074-c6.c6", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "074-c7.c7", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "074-c8.c8", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0075 - . NGM-075 - NEO-MVS PROGGSC / NEO-MVS CHA256 - . NGH-075 - NEO-AEG PROGRK / NEO-AEG CHA256 -****************************************/ - -ROM_START( sonicwi2 ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "075-p1.p1", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) /* mask rom TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) /* mask rom TC5316200 */ - ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) ) /* mask rom TC538200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0076 - . ??M-076 - NEO-MVS PROGGSC / NEO-MVS CHA256 -****************************************/ - -ROM_START( zedblade ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "076-p1.p1", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "076-s1.s1", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "076-m1.m1", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) ) /* mask rom TC531001 */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "076-v1.v1", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) ) /* mask rom TC5316200 */ - ROM_LOAD( "076-v2.v2", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) ) /* mask rom TC5316200 */ - ROM_LOAD( "076-v3.v3", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) ) /* mask rom TC538200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "076-c1.c1", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "076-c2.c2", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "076-c3.c3", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "076-c4.c4", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0077 - The Warlocks of the Fates / Shinryu Senki (prototype) 1995 SNK/Astec21 - a video of intro and full gameplay was on youtube in 2014. -****************************************/ - -/**************************************** - ID-0078 - . NGM-078 - NEO-MVS PROGTOP / NEO-MVS CHA256 - . NGH-078 -****************************************/ - -ROM_START( galaxyfg ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "078-p1.p1", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) ) /* mask rom TC531001 */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) ) /* mask rom TC5316200 */ - ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) ) /* mask rom TC5316200 */ - ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) ) /* mask rom TC538200 */ - - ROM_REGION( 0xe00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0079 - . DEM-004 - NEO-MVS PROGGSC / NEO-MVS CHA256 - . DEH-004 - NEO-AEG PROGRK / NEO-AEG CHA256 -****************************************/ - -ROM_START( strhoop ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "079-p1.p1", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) ) /* TC538200 */ - - NEO_SFIX_128K( "079-s1.s1", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "079-m1.m1", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) ) /* TC531001 */ - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "079-v1.v1", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) ) /* TC5316200 */ - ROM_LOAD( "079-v2.v2", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) ) /* TC538200 */ - /* AES 079-v2 is only 4 mbit (TC534200), data is the same */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "079-c1.c1", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "079-c2.c2", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "079-c3.c3", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "079-c4.c4", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0080 - . SAM-080 - NEO-MVS PROGGSC / NEO-MVS CHA256 - NEO-MVS PROGTOP / NEO-MVS CHA256 - Boards used for the Korean release - . SAH-080 - NEO-AEG PROGTOP2 / NEO-AEG CHA256 B -****************************************/ - -ROM_START( quizkof ) /* MVS AND AES VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "080-p1.p1", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "080-s1.s1", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "080-m1.m1", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) ) /* mask rom TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) /* mask rom TC5316200 */ - ROM_LOAD( "080-v2.v2", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) ) /* mask rom TC5316200 */ - ROM_LOAD( "080-v3.v3", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "080-c1.c1", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "080-c2.c2", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "080-c3.c3", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "080-c4.c4", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -ROM_START( quizkofk ) /* KOREAN VERSION */ - /* Made by Viccom Corp.; proms have manufacturer stamp VICxxxxxx-xxx, chip labels same as quizkof; Cart ID 0080 */ - /* Due to parent set naming limitations, roms have been named vic-xxx */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "vic-080-p1.p1", 0x000000, 0x100000, CRC(2589488e) SHA1(609f3095c1cf8b11335b56f23c5d955eebd66dd2) ) - - NEO_SFIX_128K( "vic-080-s1.s1", CRC(af72c30f) SHA1(f6a2c583f38295b7da2cbcf4b2c7ed3d3e01db4f) ) - - NEO_BIOS_AUDIO_128K( "vic-080-m1.m1", CRC(4f157e9a) SHA1(8397bfdd5738914670ada7cd8c611c20ed1f74da) ) - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) /* mask rom TC5316200 */ - ROM_LOAD( "vic-080-v2.v2", 0x200000, 0x200000, CRC(719fee5b) SHA1(c94f8ca066c9693cd7c9fd311db1ad9b2665fc69) ) - ROM_LOAD( "vic-080-v3.v3", 0x400000, 0x200000, CRC(64b7efde) SHA1(11727f9a3c4da17fa7b00559c7081b66e7211c49) ) - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "vic-080-c1.c1", 0x000000, 0x200000, CRC(94d90170) SHA1(4ab63dadc6ee0d32b8784c327681376f5fef0df9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "vic-080-c2.c2", 0x000001, 0x200000, CRC(297f25a1) SHA1(0dd845726c640d70804b5fd5854921771e8dbf19) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "vic-080-c3.c3", 0x400000, 0x200000, CRC(cf484c4f) SHA1(f588908a693dbbb8362ffbfe5035dd5f867d9697) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "vic-080-c4.c4", 0x400001, 0x200000, CRC(36e5d997) SHA1(99955ff947e2e586e60c1146c978c70705787917) ) /* Plane 2,3 */ -ROM_END - -/**************************************** - ID-0081 - . NGM-081 - NEO-MVS PROGTOP / NEO-MVS CHA42G-3B - NEO-MVS PROGTOP / NEO-MVS CHA256 - NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - . NGH-081 - NEO-AEG PROGTOP2 / NEO-AEG CHA256 B -****************************************/ - -ROM_START( ssideki3 ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "081-p1.p1", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "081-s1.s1", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "081-m1.m1", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "081-v1.v1", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) ) /* TC5316200 */ - ROM_LOAD( "081-v2.v2", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) ) /* TC5316200 */ - ROM_LOAD( "081-v3.v3", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) ) /* TC5316200 */ - - ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "081-c1.c1", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "081-c2.c2", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "081-c3.c3", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "081-c4.c4", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "081-c5.c5", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "081-c6.c6", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0082 - . NGM-082 - NEO-MVS PROGTOP / NEO-MVS CHA256 - NEO-MVS PROGTOP / NEO-MVS CHA 42G-3 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - NEO-MVS PROGTOP / NEO-MVS CHA256B - NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 - . NGH-082 -****************************************/ - -ROM_START( doubledr ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "082-p1.p1", 0x100000, 0x100000, CRC(34ab832a) SHA1(fbb1bd195f5653f7b9c89648649f838eaf83cbe4) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) /* TC5316200 */ - ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) /* TC5316200 */ - - ROM_REGION( 0xe00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0083 - . NGM-083 - NEO-MVS PROGTOP / NEO-MVS CHA256 -****************************************/ - -ROM_START( pbobblen ) /* MVS ONLY RELEASE */ - /* This set uses CHA and PROG board from Power Spikes II. Six Power Spikes II prom's are replaced with - Puzzle Bobble prom's. Confirmed on several original carts. Do other layouts also exist? */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "d96-07.ep1", 0x000000, 0x080000, CRC(6102ca14) SHA1(328429d11de5b327a0654ae0548da4d0025a2ae6) ) /* 27C240 */ - - NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) /* M27C1001 */ - /* M1 on eprom with sticker; label is D96-06 */ - - ROM_REGION( 0x380000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */ /* mask rom TC538200 */ - ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */ /* mask rom TC538200 */ - ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) /* mask rom TC538200 */ - ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) /* mask rom TC534200 */ - - ROM_REGION( 0x500000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x080000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ /* mask rom TC534200 */ - ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x080000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ /* mask rom TC534200 */ -ROM_END - -/**************************************** - ID-0084 - . NGM-084 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - NEO-MVS PROGSM / NEO-MVS CHA256 - . NGH-084 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( kof95 ) /* MVS VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "084-p1.p1",0x100000, 0x100000, CRC(2cba2716) SHA1(f6c2d0537c9c3e0938065c65b1797c47198fcff8) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ - - ROM_REGION( 0x900000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ - ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ - /* 600000-7fffff empty */ - ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ - - ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( kof95a ) /* MVS VERSION */ - /* This set uses NEO-MVS PROGSM board; same rom data as in kof95h is used */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "084-epr.ep1", 0x000000, 0x080000, CRC(577ca1bb) SHA1(0d9d8b6db8a5a4ea47fd6602bc77df68b74b1691) ) /* M27C4002 */ - ROM_LOAD16_WORD_SWAP( "084-epr.ep2", 0x080000, 0x080000, CRC(30802a5d) SHA1(04109e7c4f8d171fcebbe1198f85a271b008f8f1) ) /* M27C4002 */ - ROM_LOAD16_WORD_SWAP( "084-epr.ep3", 0x100000, 0x080000, CRC(21ae248a) SHA1(87318a1bc667f31a9824beefee94617b4724dc2d) ) /* M27C4002 */ - ROM_LOAD16_WORD_SWAP( "084-epr.ep4", 0x180000, 0x080000, CRC(19d3fbee) SHA1(39225ec8a7ed5d2f5e83f5d575b9fa38800b0704) ) /* M27C4002 */ - /* P's on eprom, correct chip label unknown */ - - NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ - - ROM_REGION( 0x900000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ - ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ - /* 600000-7fffff empty */ - ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ - - ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( kof95h ) /* MVS AND AES VERSION */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "084-pg1.p1", 0x100000, 0x100000, CRC(5e54cf95) SHA1(41abe2042fdbb1526e92a0789976a9b1ac5e60f0) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ - - ROM_REGION( 0x900000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ - ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ - /* 600000-7fffff empty */ - ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ - - ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0085 - Shinsetsu Samurai Spirits Bushidoretsuden / Samurai Shodown RPG (CD only) -****************************************/ - -/**************************************** - ID-0086 - . ??M-086 - NEO-MVS PROGBK1 / NEO-MVS CHA256B -****************************************/ - -ROM_START( tws96 ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "086-p1.p1", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "086-s1.s1", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "086-m1.m1", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) ) /* mask rom TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "086-v1.v1", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) ) /* mask rom TC5316200 */ - ROM_LOAD( "086-v2.v2", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) ) /* mask rom TC5316200 */ - - ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "086-c1.c1", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "086-c2.c2", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "086-c3.c3", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "086-c4.c4", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0087 - . NGM-087 - NEO-MVS PROGSS3 / NEO-MVS CHA256 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-087 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( samsho3 ) /* MVS VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "087-epr.ep1", 0x000000, 0x080000, CRC(23e09bb8) SHA1(79da99fa50a639fce9d1266699b5e53c9ac55642) ) /* M27C4002 */ - ROM_LOAD16_WORD_SWAP( "087-epr.ep2", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) ) /* M27C4002 */ - ROM_LOAD16_WORD_SWAP( "087-epr.ep3", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) ) /* M27C4002 */ - ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) ) /* M27C4002 */ - /* P's on eprom, correct chip label unknown */ - ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) ) /* TC538200 */ - /* also found MVS set with p1 / sp2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */ - - NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* T531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ - ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ - - ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( samsho3h ) /* AES VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "087-pg1.p1", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom TC5316200 */ - - NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* T531000 */ - - NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* T531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ - ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ - - ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -ROM_START( fswords ) /* KOREAN VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "187-p1k.p1", 0x000000, 0x100000, CRC(c8e7c075) SHA1(7b74f2917114460d79d8f46ee24829a4c08cbf2a) ) - ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom TC5316200 */ - - NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ - ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ - - ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0088 - . NGM-088 - NEO-MVS PROGBK1 / NEO-MVS CHA42-3B - . NGH-088 - NEO-AEG PROGRKB / NEO-AEG CHA256[B] -****************************************/ - -ROM_START( stakwin ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "088-p1.p1", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000) - - NEO_SFIX_128K( "088-s1.s1", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "088-m1.m1", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "088-v1.v1", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) ) /* TC5316200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "088-c1.c1", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "088-c2.c2", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "088-c3.c3", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "088-c4.c4", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0089 - . NGM-089 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-089 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( pulstar ) - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "089-p1.p1", 0x000000, 0x100000, CRC(5e5847a2) SHA1(b864d0ec4184b785569ddbf67c2115b5ab86ee3e) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "089-p2.sp2", 0x100000, 0x200000, CRC(028b774c) SHA1(fc5da2821a5072f2b78245fc59b6e3eeef116d16) ) /* mask rom TC5316200 */ - - NEO_SFIX_128K( "089-s1.s1", CRC(c79fc2c8) SHA1(914c224fb3c461a68d7425cae724cf22bd5f985d) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "089-m1.m1", CRC(ff3df7c7) SHA1(59d2ef64f734f6026073b365300221909057a512) ) /* mask rom TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "089-v1.v1", 0x000000, 0x400000, CRC(6f726ecb) SHA1(e8e2a46af690ce6c7ee64a58ab5010d22df9548c) ) /* mask rom TC5332204 */ - ROM_LOAD( "089-v2.v2", 0x400000, 0x400000, CRC(9d2db551) SHA1(83f7e5db7fb1502ceadcd334df90b11b1bba78e5) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "089-c1.c1", 0x0000000, 0x400000, CRC(f4e97332) SHA1(54693827a99836e7d61c45d495dd78bf3fcf1544) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "089-c2.c2", 0x0000001, 0x400000, CRC(836d14da) SHA1(99cc4f9b764503eff7849ff2977d90bb47c5564a) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "089-c3.c3", 0x0800000, 0x400000, CRC(913611c4) SHA1(9664eb1fe1e6f8c3ddeeff872d38ea920ed38a82) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "089-c4.c4", 0x0800001, 0x400000, CRC(44cef0e3) SHA1(34f6f348ba86a2a06cb9c43a16b97cf6ee6158ac) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "089-c5.c5", 0x1000000, 0x400000, CRC(89baa1d7) SHA1(976c745c44967de61e2a23227835be580b1d283a) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "089-c6.c6", 0x1000001, 0x400000, CRC(b2594d56) SHA1(685c0bf8ff76c76e41c2ceaebb96349634cfdb2e) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "089-c7.c7", 0x1800000, 0x200000, CRC(6a5618ca) SHA1(9a1d5f998b0dfabacf9dad45c94bef2bb43e5e0c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "089-c8.c8", 0x1800001, 0x200000, CRC(a223572d) SHA1(2791b1212f57937b2b2a95bc9e420c06d0c37669) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0090 - . ADM-009 - NEO-MVS PROGTOP / NEO-MVS CHA256 - NEO-MVS PROGGSC / NEO-MVS CHA256 - NEO-MVS PROGGSC / NEO-MVS CHA256B - NEO-MVS PROGBK1 / NEO-MVS CHA256B - . ADH-009 -****************************************/ - -ROM_START( whp ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "090-p1.p1", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) /* mask rom TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) /* mask rom TC5316200 */ - ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) /* mask rom TC5316200 */ - ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - /* 0c00000-0ffffff empty */ - ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0091 - ADK World / ADK Special 1995 ADK (CD only) -****************************************/ - -/**************************************** - ID-0092 - . NGM-092 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - NEO-MVS PROGTOP / NEO-MVS CHA256 - . NGH-092 -****************************************/ - -ROM_START( kabukikl ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "092-p1.p1", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) /* mask rom TC531001 */ - - ROM_REGION( 0x700000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) /* mask rom TC5316200 */ - ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) /* mask rom TC5316200 */ - ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) /* mask rom TC5316200 */ - ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) /* mask rom TC538200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) /* Plane 2,3 */ /* mask rom TC5332205 */ -ROM_END - -/**************************************** - ID-0093 - . ??M-093 - NEO-MVS PROGBK1 / NEO-MVS CHA256 -****************************************/ - -ROM_START( neobombe ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "093-p1.p1", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) ) /* TC538200 */ - - NEO_SFIX_128K( "093-s1.s1", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "093-m1.m1", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "093-v1.v1", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) ) /* TC5332204 */ - ROM_LOAD( "093-v2.v2", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) ) /* TC5316200 */ - - ROM_REGION( 0x900000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "093-c1.c1", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "093-c2.c2", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "093-c3.c3", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) ) /* Plane 0,1 */ /* TC534200 */ - ROM_LOAD16_BYTE( "093-c4.c4", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) ) /* Plane 2,3 */ /* TC534200 */ -ROM_END - -/**************************************** - ID-0094 - . NGM-094 - NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B - . NGH-094 -****************************************/ - -ROM_START( gowcaizr ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "094-p1.p1", 0x100000, 0x100000, CRC(33019545) SHA1(213db6c0b7d24b74b809854f9c606dbea1d9ba00) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) /* TC531001 */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) /* TC5316200 */ - ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) /* TC5316200 */ - ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) /* TC538200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) ) /* Plane 2,3 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - dev board, same ID as gowcaizr -****************************************/ - -ROM_START( dragonsh ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_BYTE( "EP2.bin", 0x000000, 0x080000, CRC(f25c71ad) SHA1(803fb6cd6a7ada59678ad901ff9788b1e54ddd0c) ) - ROM_LOAD16_BYTE( "EP1.bin", 0x000001, 0x080000, CRC(f353448c) SHA1(f0f966ca15d503e01b40e901765ff0888463b65d) ) - - NEO_SFIX_128K( "s1.s1", BAD_DUMP CRC(706477a7) SHA1(8cbee7f6832e7edd2dc792ca330420a6a984b879) ) // was a dead AXS512PC 512KB sram card, this data is handcrafted to make the set usable (hence BAD_DUMP) - - NEOGEO_BIOS - ROM_REGION( 0x20000, "audiobios", 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) - ROM_REGION( 0x30000, "cslot1:audiocpu", ROMREGION_ERASEFF ) - // not present - - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) - ROM_REGION( 0x200000, "cslot1:ymsnd", ROMREGION_ERASE00 ) - ROM_LOAD( "sram.v1", 0x000000, 0x200000, NO_DUMP ) // was a dead AXS2000PC 2MB sram card, battery dead, data lost. - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "no3.bin", 0x000000, 0x1000000, CRC(81821826) SHA1(b7c1a53e32633383675206a16c68f6f2ff984865) ) - ROM_LOAD16_BYTE( "no4.bin", 0x000001, 0x1000000, CRC(3601d568) SHA1(800323e52f5d33b402f84d31850b42c688082d67) ) -ROM_END - -/**************************************** - ID-0095 - . NGM-095 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-095 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( rbff1 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ - - NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ - ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ - ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -ROM_START( rbff1a ) /* MVS VERSION */ - /* This is a bug fixed revision applied over the original cart. The original P1 and P2 stayed in the cart and this */ - /* 512k ROM was added to replace the first 512k of P1. */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ - /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ - ROM_LOAD16_WORD_SWAP( "095-epr.ep1", 0x000000, 0x080000, CRC(be0060a3) SHA1(fa741d34898ad5004a23e280139d1446f1a082c7) ) /* M27C4002 */ - /* P is on eprom, correct chip label unknown */ - - NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ - ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ - ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -ROM_START( rbff1k ) /* KOREAN VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "095-p1k.p1", 0x000000, 0x100000, CRC(f705364b) SHA1(2668e15663a2c7ec7396f40e4f5f454505968ce8) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ - - NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ - ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ - ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0096 - . NGM-096 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-096 -****************************************/ - -ROM_START( aof3 ) - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "096-p1.p1", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */ - - NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */ - ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */ - ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -ROM_START( aof3k ) /* KOREAN VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "196-p1k.p1", 0x000000, 0x100000, CRC(a0780789) SHA1(83657922a9a3502653ef8cda45b15d9f935aa96a) ) - ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */ - - NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */ - ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */ - ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0097 - . NGM-097 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-097 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( sonicwi3 ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "097-p1.p1", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) /* TC5332201 */ - ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) /* TC5316200 */ - - ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) /* Plane 0,1 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) /* Plane 2,3 */ /* TC5332202 */ - ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0098 - Idol Mahjong - final romance 2 (CD only? not confirmed, MVS might exist) -****************************************/ - - -/**************************************** - ID-0099 - Neo Pool Masters -****************************************/ - - -/* ID range from 100 - 199 is used for Korean (some) and Neo Print carts */ - -/* - The following ID's are used by Korean releases: - - ID-0122 - Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV) - ID-0123 - Quiz Daisousa Sen - The Last Count Down (Korean release) - ID-0124 - Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release) - ID-0134 - The Last Soldier (Korean release of The Last Blade) - ID-0140 - Real Bout Fatal Fury 2 - The Newcomers (Korean release) - ID-0152 - The King of Fighters '99 - Millennium Battle (Korean release) - ID-0163 - Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II) - ID-0187 - Fighters Swords (Korean release of Samurai Shodown III) - ID-0196 - Art of Fighting 3 - The Path of the Warrior (Korean release) -*/ - - -/**************************************** - ID-0200 - . NGM-200 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-200 -****************************************/ - -ROM_START( turfmast ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "200-p1.p1", 0x100000, 0x100000, CRC(28c83048) SHA1(e7ef87e1de21d2bb17ef17bb08657e92363f0e9a) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000) - - NEO_SFIX_128K( "200-s1.s1", CRC(9a5402b2) SHA1(ae1a0b5450869d61b2bb23671c744d3dda8769c4) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "200-m1.m1", CRC(9994ac00) SHA1(7bded797f3b80fd00bcbe451ac0abe6646b19a14) ) /* mask rom TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "200-v1.v1", 0x000000, 0x200000, CRC(00fd48d2) SHA1(ddfee09328632e598fd51537b3ae8593219b2111) ) /* mask rom TC5316200 */ - ROM_LOAD( "200-v2.v2", 0x200000, 0x200000, CRC(082acb31) SHA1(2f1c053040e9d50a6d45fd7bea1b96742bae694f) ) /* mask rom TC5316200 */ - ROM_LOAD( "200-v3.v3", 0x400000, 0x200000, CRC(7abca053) SHA1(e229bc0ea82a371d6ee8fd9fe442b0fd141d0a71) ) /* mask rom TC5316200 */ - ROM_LOAD( "200-v4.v4", 0x600000, 0x200000, CRC(6c7b4902) SHA1(d55e0f542d928a9a851133ff26763c8236cbbd4d) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "200-c1.c1", 0x000000, 0x400000, CRC(8e7bf41a) SHA1(148eb747f2f4d8e921eb0411c88a636022ceab80) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "200-c2.c2", 0x000001, 0x400000, CRC(5a65a8ce) SHA1(d6c7afe035411f3eacdf6868d36f91572dd593e0) ) /* Plane 2,3 */ /* mask rom TC5332205 */ -ROM_END - -/**************************************** - ID-0201 - . NGM-201 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - . NGH-201 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( mslug ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) ) /* TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) ) /* TC5332204 */ - ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) ) /* TC5332204 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0202 - . ??M-202 - NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 -****************************************/ - -ROM_START( puzzledp ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "202-p1.p1", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) ) /* TC534200 */ - /* also found set with p1 on eprom with sticker; label is 202-P1 */ - - NEO_SFIX_128K( "202-s1.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) /* TC531001 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) /* TC534200 */ - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0203 - . ADM-010 - NEO-MVS PROGTOP / NEO-MVS CHA42G-3B - . ADH-010 -****************************************/ - -ROM_START( moshougi ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "203-p1.p1", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) ) /* TC538200 */ - - NEO_SFIX_128K( "203-s1.s1", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "203-m1.m1", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "203-v1.v1", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) ) /* TC5316200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "203-c1.c1", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "203-c2.c2", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0204 - QP (prototype) 1997 Success -****************************************/ - -/**************************************** - ID-0205 - Neo-Geo CD Special (CD only) -****************************************/ - -/**************************************** - ID-0206 - . ??M-206 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . ??H-206 -****************************************/ - -ROM_START( marukodq ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "206-p1.p1", 0x000000, 0x100000, CRC(c33ed21e) SHA1(bffff0d17e587e67672227e60c0ebd3f3a7193e6) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "206-s1.s1", CRC(f0b68780) SHA1(3f60950b14d121a5af3e6a8155ae9832ddc6ec46) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "206-m1.m1", CRC(0e22902e) SHA1(fb8466c342d4abd8bb4cad01c6ceab03f96cdad8) ) /* mask rom TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "206-v1.v1", 0x000000, 0x200000, CRC(5385eca8) SHA1(1ca171ce74a5885ae8841d0924de21dc0af2214e) ) /* mask rom TC5316200 */ - ROM_LOAD( "206-v2.v2", 0x200000, 0x200000, CRC(f8c55404) SHA1(cecc41e9e08a7ff05b6f62e713fc86a816bf55a2) ) /* mask rom TC5316200 */ - - ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "206-c1.c1", 0x000000, 0x400000, CRC(846e4e8e) SHA1(ba9b96340aca7fadaff0e6d484391ddb5c5e7bd4) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "206-c2.c2", 0x000001, 0x400000, CRC(1cba876d) SHA1(3254ceb5a2f76c172930d9889d5d81e093e87628) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "206-c3.c3", 0x800000, 0x100000, CRC(79aa2b48) SHA1(31f94217cd35f48845c74a55256314c16fd26ed7) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "206-c4.c4", 0x800001, 0x100000, CRC(55e1314d) SHA1(fffbc9eb9000ff5b1063af1817de7ea4a267fedd) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0207 - . ??M-207 - NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B - NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B -****************************************/ - -ROM_START( neomrdo ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "207-p1.p1", 0x000000, 0x100000, CRC(334ea51e) SHA1(0a642f8565ec6e9587ed767bcf177f4677547162) ) /* TC538200 */ - - NEO_SFIX_128K( "207-s1.s1", CRC(6aebafce) SHA1(5db03715fbed62f2ff3cef7f93606f30261c0362) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "207-m1.m1", CRC(b5b74a95) SHA1(7b01f3b87c247cc7472591f8cdcf0ae8065e31c6) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "207-v1.v1", 0x000000, 0x200000, CRC(4143c052) SHA1(561b19bc8811b80f2f42ffc0b5df27132696470a) ) /* TC5316200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "207-c1.c1", 0x000000, 0x200000, CRC(c7541b9d) SHA1(25ca1a2b14cc2648d8dbe432cbd1396017af822c) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "207-c2.c2", 0x000001, 0x200000, CRC(f57166d2) SHA1(bf3aa47d17156485c2177fb63cba093f050abb98) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0208 - . ??M-208 - NEO-MVS PROGBK1 / NEO-MVS CHA256B -****************************************/ - -ROM_START( sdodgeb ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "208-p1.p1", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "208-s1.s1", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "208-m1.m1", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "208-v1.v1", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) ) /* TC5332204 */ - - ROM_REGION( 0x0c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "208-c1.c1", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "208-c2.c2", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "208-c3.c3", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "208-c4.c4", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0209 - . ??M-209 - NEO-MVS PROGBK1 / NEO-MVS CHA256 -****************************************/ - -ROM_START( goalx3 ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "209-p1.p1", 0x100000, 0x100000, CRC(2a019a79) SHA1(422a639e74284fef2e53e1b49cf8803b0a7e80c6) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "209-s1.s1", CRC(c0eaad86) SHA1(99412093c9707d51817893971e73fb8469cdc9d0) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "209-m1.m1", CRC(cd758325) SHA1(b51eac634fc646c07210dff993018ad9ebabd3f9) ) /* mask rom TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "209-v1.v1", 0x000000, 0x200000, CRC(ef214212) SHA1(3e05ccaa2d06decb18b379b96f900c0e6b39ce70) ) /* mask rom TC5316200 */ - - ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "209-c1.c1", 0x000000, 0x400000, CRC(b49d980e) SHA1(722d10074f16fa7f14c71270f43fdab427b85e2b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "209-c2.c2", 0x000001, 0x400000, CRC(5649b015) SHA1(9c9674f3841e6becd3b8e63bae9b9df45ac9f11e) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "209-c3.c3", 0x800000, 0x100000, CRC(5f91bace) SHA1(3864be27dce6d8f8828d3bf09bfc8116116a2b56) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "209-c4.c4", 0x800001, 0x100000, CRC(1e9f76f2) SHA1(b57fdc226bfe328b8848127fb4292295f1287bf6) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0210 - Karate Ninja Sho (prototype) 1995 Yumekobo -****************************************/ - -/**************************************** - ID-0211 - Oshidashi Zintrick (CD only? not confirmed, MVS might exist) 1996 SNK/ADK -****************************************/ - -/**************************************** - ID-0212 - . ADM-011 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . ADH-011 -****************************************/ - -ROM_START( overtop ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "212-p1.p1", 0x100000, 0x100000, CRC(16c063a9) SHA1(5432869f830eed816ee5ed71c7fd39f749d15619) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "212-s1.s1", CRC(481d3ddc) SHA1(7b0df3fc5b19f282abfd0eb5a4c6ed836a536ece) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "212-m1.m1", CRC(fcab6191) SHA1(488b8310b0957f0012fe50f73641b606f6ac4a57) ) /* mask rom TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "212-v1.v1", 0x000000, 0x400000, CRC(013d4ef9) SHA1(438a697c44525bdf78b54432c4f7217ab5667047) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x1400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "212-c1.c1", 0x0000000, 0x400000, CRC(50f43087) SHA1(e5a8c914ef8e77c7a29bffdeb18f1877b5c2fc7d) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "212-c2.c2", 0x0000001, 0x400000, CRC(a5b39807) SHA1(e98e82cf99576cb48cc5e8dc655b7e9a428c2843) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "212-c3.c3", 0x0800000, 0x400000, CRC(9252ea02) SHA1(269066e0f893d3e8e7c308528026a486c2b023a2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "212-c4.c4", 0x0800001, 0x400000, CRC(5f41a699) SHA1(abbb162658e06a37db8475b659ece7e1270ebb49) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "212-c5.c5", 0x1000000, 0x200000, CRC(fc858bef) SHA1(0031def13e7cf4a465a1eca7aa0d13d1b21427e2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "212-c6.c6", 0x1000001, 0x200000, CRC(0589c15e) SHA1(b1167caf7cb61f3e05a5d342290bfe00e02e9d38) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0213 - . ??M-213 - NEO-MVS PROGBK1 / NEO-MVS CHA256B -****************************************/ - -ROM_START( neodrift ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "213-p1.p1", 0x100000, 0x100000, CRC(e397d798) SHA1(10f459111db4bab7aaa63ca47e83304a84300812) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000) - - NEO_SFIX_128K( "213-s1.s1", CRC(b76b61bc) SHA1(5fdb407d16ab9e33c4f26ee09ff70891ae1d2bd0) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "213-m1.m1", CRC(200045f1) SHA1(7a6cd1c8d4447ea260d7ff4520c676b8d685f2e4) ) /* mask rom TC531001*/ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "213-v1.v1", 0x000000, 0x200000, CRC(a421c076) SHA1(129f05c1a28a6493442f47a79c2d3577a1a43ef5) ) /* mask rom TC5316200 */ - ROM_LOAD( "213-v2.v2", 0x200000, 0x200000, CRC(233c7dd9) SHA1(be7f980aa83831b6605aaaf4ec904180bb96c935) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "213-c1.c1", 0x000000, 0x400000, CRC(3edc8bd3) SHA1(71dcba9afd3b08ebfa13294644dcb365c2740780) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "213-c2.c2", 0x000001, 0x400000, CRC(46ae5f16) SHA1(a01310632734e776e889af6a531063cb1661c33a) ) /* Plane 2,3 */ /* mask rom TC5332205 */ -ROM_END - -/**************************************** - ID-0214 - . NGM-214 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - NEO-MVS PROGSS3 / NEO-MVS CHA256 - . NGH-214 - NEO-AEG PROGBK1Y / NEO-GEO AEG CHA256RY -****************************************/ - -ROM_START( kof96 ) /* MVS VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ - /* also found sets with ep1 / ep2 / ep3 / ep4 on eprom and 214-P5 on TC5316200; correct chip labels for eproms is unknown */ - - NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */ - - ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */ - ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */ - ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( kof96h ) /* AES VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "214-pg1.p1", 0x000000, 0x100000, CRC(bd3757c9) SHA1(35392a044117e46c088ff0fdd07d69a3faa4f96e) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ - - NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */ - - ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */ - ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */ - ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0215 - . NGM-215 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-215 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( ssideki4 ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "215-p1.p1", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "215-s1.s1", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "215-m1.m1", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "215-v1.v1", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) ) /* TC5332204 */ - ROM_LOAD( "215-v2.v2", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) ) /* TC5316200 */ - - ROM_REGION( 0x1400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "215-c1.c1", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "215-c2.c2", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "215-c3.c3", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "215-c4.c4", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "215-c5.c5", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "215-c6.c6", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0216 - . ??M-216 - NEO-MVS PROGTOP / NEO-MVS CHA256 - . ??H-216 - NEO-AEG PROGTOP2Y / NEO-AEG CHA256BY - NEO-AEG PROGTOP2Y / NEO-AEG CHA256[B] -****************************************/ - -ROM_START( kizuna ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) ) /* mask rom TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ - ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) ) /* mask rom TC5316200 */ - ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ - ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ - /* 400000-7fffff empty */ - ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - - -ROM_START( kizuna4p ) /* same cartridge as kizuna - 4-player mode is enabled by an extension board that plugs into a compatible MVS */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) ) /* mask rom TC531000 */ - - ROM_REGION16_BE( 0x80000, "mainbios", 0 ) - /* these two BIOSes are the only ones we have that are compatible with the 4-player extension board */ - ROM_SYSTEM_BIOS( 0, "asia", "NEO-MVH MV1C" ) - ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-45.sp1",0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) - ROM_SYSTEM_BIOS( 1, "japan", "Japan MVS (J3)" ) - ROM_LOAD16_WORD_SWAP_BIOS( 1, "japan-j3.bin",0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) - - ROM_REGION( 0x30000, "cslot1:audiocpu", 0 ) - ROM_LOAD( "216-m1.m1", 0x00000, 0x20000, CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) ) /* mask rom TC531001 */ - ROM_RELOAD( 0x10000, 0x20000 ) - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ - ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) ) /* mask rom TC5316200 */ - ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ - ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ - /* 400000-7fffff empty */ - ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - - -/**************************************** - ID-0217 - . ADM-012 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . ADH-012 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( ninjamas ) - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "217-p1.p1", 0x000000, 0x100000, CRC(3e97ed69) SHA1(336bcae375a5109945d11356503bf0d9f4a9a50a) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) ) /* TC5316200 */ - - NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) ) /* TC5332204 */ - ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) ) /* TC5316200 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0218 - . NGM-218 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-218 -****************************************/ - -ROM_START( ragnagrd ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "218-p1.p1", 0x100000, 0x100000, CRC(ca372303) SHA1(67991e4fef9b36bc7d909810eebb857ac2f906f1) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) ) /* mask rom TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) ) /* mask rom TC5332204 */ - ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) ) /* Plane 2,3 */ /* mask rom TC5332205 */ -ROM_END - -/**************************************** - ID-0219 - . NGM-219 - NEO-MVS PROGBK1 / NEO-MVS CHA256 -****************************************/ - -ROM_START( pgoal ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "219-p1.p1", 0x100000, 0x100000, CRC(6af0e574) SHA1(c3f0fed0d942e48c99c80b1713f271c033ce0f4f) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "219-s1.s1", CRC(002f3c88) SHA1(a8a5bbc5397c8ae9858e38997ebdc713b7b4f50a) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "219-m1.m1", CRC(958efdc8) SHA1(aacc6056b1ff48cde8f241a11a27473cfb4b4aa3) ) /* TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "219-v1.v1", 0x000000, 0x400000, CRC(d0ae33d9) SHA1(cb21a91184d9d84ff25ca86c00dcadfc210272a8) ) /* TC5332204 */ - - ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "219-c1.c1", 0x0000000, 0x400000, CRC(67fec4dc) SHA1(b99767972a2a4fce2b704df8d08e6b092665a696) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "219-c2.c2", 0x0000001, 0x400000, CRC(86ed01f2) SHA1(9d7d1493946e8fbbd572503d2362b0156c023b76) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "219-c3.c3", 0x0800000, 0x200000, CRC(5fdad0a5) SHA1(56f6d2a7224aa4e82a1858079f918e85cadbd6c2) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "219-c4.c4", 0x0800001, 0x200000, CRC(f57b4a1c) SHA1(875ca69afbc5304ec23f4bc9186abe92f477f6c8) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0220 - Choutetsu Brikin'ger - Iron clad (prototype) 1996 Saurus -****************************************/ - -ROM_START( ironclad ) /* Prototype - crcs should match the ones of the unreleased dump. */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "proto_220-p1.p1", 0x100000, 0x100000, CRC(62a942c6) SHA1(12aaa7d9bd84328d1bf4610e056b5c57d0252537) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) ) - - NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) ) - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) ) - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ironclado ) /* Prototype - bootleg/hack based on later release. */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "proto_220-p1o.p1", 0x100000, 0x100000, CRC(ce37e3a0) SHA1(488f95fa15f56eea6666dda13d96ec29dba18e19) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) ) - - NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) ) - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) ) - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) ) /* Plane 2,3 */ -ROM_END - -/**************************************** - ID-0221 - . NGM-221 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-221 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( magdrop2 ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "221-p1.p1", 0x000000, 0x80000, CRC(7be82353) SHA1(08ab39f52b893591c13a7d7aa26b20ce86e9ddf5) ) /* mask rom TC534200 */ - - NEO_SFIX_128K( "221-s1.s1", CRC(2a4063a3) SHA1(0e09a7d88d85b1a2100888f4211960ea56ef978b) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "221-m1.m1", CRC(bddae628) SHA1(02c77e6aaaed43e39778bf83a3184e7c21db63d4) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "221-v1.v1", 0x000000, 0x200000, CRC(7e5e53e4) SHA1(72b063b2d4acaaf72a20d14ad5bfc90cb64d3fed) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "221-c1.c1", 0x000000, 0x400000, CRC(1f862a14) SHA1(1253e8b65d863d552d00dbdbfc5c168f5fc7edd1) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "221-c2.c2", 0x000001, 0x400000, CRC(14b90536) SHA1(e0d41f6b84d8261729f154b44ddd95c9b9c0714a) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0222 - . NGM-222 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-222 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( samsho4 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "222-p1.p1", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) /* TC5332205 */ - - NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) /* TC531001 */ - - ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) /* TC5332204 */ - ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) /* TC5332204 */ - ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) /* TC5316200 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( samsho4k ) /* KOREAN VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "222-p1k.p1", 0x000000, 0x100000, CRC(06e0a25d) SHA1(81e6727e0acb67ae41383518c0fc07f28d232979) ) - ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) /* TC5332205 */ - - NEO_SFIX_128K( "222-s1k.s1", CRC(d313687d) SHA1(9ba468a9d582ef76c863f57ad9a0f811f3f08bd9) ) - - NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) /* TC531001 */ - - ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) /* TC5332204 */ - ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) /* TC5332204 */ - ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) /* TC5316200 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0223 - . NGM-223 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - . NGH-223 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( rbffspec ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "223-p1.p1", 0x000000, 0x100000, CRC(f84a2d1d) SHA1(fc19225d9dbdb6bd0808023ee32c7829f6ffdef6) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) /* TC5332205 */ - - NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) /* TC5332204 */ - ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) /* TC5332204 */ - ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) /* TC5332204 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( rbffspeck ) /* KOREAN VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "223-p1k.p1", 0x000000, 0x100000, CRC(b78c8391) SHA1(936b356ac135331b10a37bc10882ec2e4f6b400b) ) - /* Chip label is correct. They used Cart ID 0124 as 0123 was already used by quizdaisk */ - ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) /* TC5332205 */ - - NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) /* TC5332204 */ - ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) /* TC5332204 */ - ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) /* TC5332204 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0224 - . ADM-013 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - . ADH-013 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( twinspri ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "224-p1.p1", 0x100000, 0x100000, CRC(7697e445) SHA1(5b55ca120f77a931d40719b14e0bfc8cac1d628c) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "224-s1.s1", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "224-m1.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) ) /* mask rom TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "224-v1.v1", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) ) /* mask rom TC5332204 */ - ROM_LOAD( "224-v2.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) ) /* mask rom TC5316200 */ - - ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "224-c1.c1", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "224-c2.c2", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "224-c3.c3", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "224-c4.c4", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0225 - . SUM-225 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - . SUH-225 -****************************************/ - -ROM_START( wakuwak7 ) - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "225-p1.p1", 0x000000, 0x100000, CRC(b14da766) SHA1(bdffd72ff705fc6b085a4026217bac1c4bc93163) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) ) /* TC5316200 */ - /* also found Korean MVS set with ep1 /ep2 on eprom and sp2 on TC5316200 on NEO-MVS PROGBK1; correct chip label for eproms unknown */ - - NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) ) /* TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) ) /* TC5332204 */ - ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) ) /* TC5332204 */ - - ROM_REGION( 0x1800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0226 - Pair Pair Wars (prototype) 1996 Sunsoft? -****************************************/ - -/**************************************** - ID-0227 - . NGM-227 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-227 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( stakwin2 ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "227-p1.p1", 0x100000, 0x100000, CRC(daf101d2) SHA1(96b90f884bae2969ebd8c04aba509928464e2433) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "227-s1.s1", CRC(2a8c4462) SHA1(9155fbb5fee6d46a68d17ea780a7a92565f9aa47) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "227-m1.m1", CRC(c8e5e0f9) SHA1(09bb05ae6f09b59b9e4871fae1fc7c3bafd07394) ) /* mask rom TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "227-v1.v1", 0x000000, 0x400000, CRC(b8f24181) SHA1(0a3af88d20ff65b82c58325d32c20b99fc07f7f3) ) /* mask rom TC5332204 */ - ROM_LOAD( "227-v2.v2", 0x400000, 0x400000, CRC(ee39e260) SHA1(4ed6802564ce262ebe92c7276424056b70998758) ) /* mask rom TC5332204 */ - - ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "227-c1.c1", 0x0000000, 0x400000, CRC(7d6c2af4) SHA1(e54f0ab15c95d7a6f965b5d8ab28b5445100650b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "227-c2.c2", 0x0000001, 0x400000, CRC(7e402d39) SHA1(9d3a44f98ddd0b606c8b3efa0c6b9d5a46c0bfeb) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "227-c3.c3", 0x0800000, 0x200000, CRC(93dfd660) SHA1(5b473c556ef919cd7a872351dbb20a636aae32b6) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "227-c4.c4", 0x0800001, 0x200000, CRC(7efea43a) SHA1(3f2b1718fe7be06b6d75ec34badc2de2a3554d3e) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0228 - Ghostlop (prototype) 1996 Data East Corp. -****************************************/ - -ROM_START( ghostlop ) /* Prototype */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "proto_228-p1.p1", 0x000000, 0x100000, CRC(6033172e) SHA1(f57fb706aa8dd9e5f9e992a5d35c1799578b59f8) ) - - NEO_SFIX_128K( "proto_228-s1.s1", CRC(83c24e81) SHA1(585ef209d8bfc23bdccc1f37d8b764eeedfedc1c) ) - - NEO_BIOS_AUDIO_128K( "proto_228-m1.m1", CRC(fd833b33) SHA1(ab6c218c42cba821654cbdae154efecb69f844f6) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "proto_228-v1.v1", 0x000000, 0x200000, CRC(c603fce6) SHA1(5a866471d35895b2ae13cbd5d1cb41bf2e72e1b8) ) - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "proto_228-c1.c1", 0x000000, 0x400000, CRC(bfc99efe) SHA1(5cd2545310142080b8286e787cf5b859f627b3db) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_228-c2.c2", 0x000001, 0x400000, CRC(69788082) SHA1(c3ecb42ddcbd9e16d0018a0c3adb56a911d813ca) ) /* Plane 2,3 */ -ROM_END - -/**************************************** - ID-0229 - King of Fighters '96 CD Collection (CD only) -****************************************/ - - -/* With ID-0230 the product ID code changed from xxM-xxx / xxH-xxx to xxM-xxx0 / xxH-xxx0 */ - - -/**************************************** - ID-0230 - . NGM-2300 - NEO-MVS PROGBK1 / NEO-MVS CHA256B - . NGH-2300 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( breakers ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "230-p1.p1", 0x100000, 0x100000, CRC(ed24a6e6) SHA1(3fb77ae696d92d2f9a5d589e08b708545c7cda0a) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) ) /* TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) ) /* TC5332204 */ - ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) ) /* TC5332204 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0231 - . ??M-2310 - NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B -****************************************/ - -ROM_START( miexchng ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "231-p1.p1", 0x000000, 0x80000, CRC(61be1810) SHA1(1ab0e11352ca05329c6e3f5657b60e4a227fcbfb) ) /* mask rom TC534200 */ - - NEO_SFIX_128K( "231-s1.s1", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "231-m1.m1", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) ) /* mask rom TC531001 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "231-v1.v1", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x600000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "231-c1.c1", 0x000000, 0x200000, CRC(6c403ba3) SHA1(3830446fbd07d5a6564f9ac68a4bec5ff5b7d5c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "231-c2.c2", 0x000001, 0x200000, CRC(554bcd9b) SHA1(e658161618bd41a66f1040be409efdea28020cf6) ) /* Plane 2,3 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "231-c3.c3", 0x400000, 0x100000, CRC(4f6f7a63) SHA1(10935dbc1f52b95979a097b13a114cff18d4d446) ) /* Plane 0,1 */ /* mask rom TC538200 */ - ROM_LOAD16_BYTE( "231-c4.c4", 0x400001, 0x100000, CRC(2e35e71b) SHA1(6f248191c2c60ca1b1b4f2ebf08756e036682144) ) /* Plane 2,3 */ /* mask rom TC538200 */ -ROM_END - -/**************************************** - ID-0232 - . NGM-2320 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - . NGH-2320 - NEO-AEG PROGBK1Y / NEO-AEG CHA512Y -****************************************/ - -ROM_START( kof97 ) /* MVS VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ - - NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ - ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ - ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( kof97h ) /* AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "232-pg1.p1", 0x000000, 0x100000, CRC(5c2400b7) SHA1(49e23f80c012c62146a1bb8f254a7597823de430) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ - - NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ - ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ - ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( kof97k ) /* KOREAN VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ - - NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "232-m1k.m1", CRC(bbea9070) SHA1(c26c2e29fe90966dd574838be63f0037ea799aca) ) - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ - ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ - ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0233 - . NGM-2330 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-2330 - NEO-AEG PROGBK1Y / NEO-AEG CHA256RY -****************************************/ - -ROM_START( magdrop3 ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "233-p1.p1", 0x000000, 0x100000, CRC(931e17fa) SHA1(4a95c4b79d0878485ce272e9f4c4f647bec0e070) ) /* TC538200 */ - - NEO_SFIX_128K( "233-s1.s1", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "233-m1.m1", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) ) /* TC531001 */ - - ROM_REGION( 0x480000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "233-v1.v1", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) ) /* TC5332204 */ - ROM_LOAD( "233-v2.v2", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) ) /* TC534200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "233-c1.c1", 0x000000, 0x400000, CRC(65e3f4c4) SHA1(a6deb75d802225327f8f1c2733a7f2b47e722e59) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "233-c2.c2", 0x000001, 0x400000, CRC(35dea6c9) SHA1(ea133bf947f950236f49d0ae0d1a9af3bc1a9a50) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "233-c3.c3", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "233-c4.c4", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0234 - . NGM-2340 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - . NGH-2340 - NEO-AEG PROGBK1Y / NEO-AEG CHA512Y -****************************************/ - -ROM_START( lastblad ) /* MVS VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "234-p1.p1", 0x000000, 0x100000, CRC(e123a5a3) SHA1(a3ddabc00feeb54272b145246612ad4632b0e413) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ - /* also found sets with p1 / sp2 / ep1 / ep2 / m1 on eprom with sticker */ - /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1 */ - - NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ - ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ - ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ - ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( lastbladh ) /* AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "234-pg1.p1", 0x000000, 0x100000, CRC(cd01c06d) SHA1(d66142571afe07c6191b52f319f1bc8bc8541c14) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ - - NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ - ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ - ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ - ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( lastsold ) /* KOREAN VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "134-p1k.p1", 0x000000, 0x100000, CRC(906f3065) SHA1(25167665f1b8e82e13f7fcf4d0e3c54a925c2a58) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ - - NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ - ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ - ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ - ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0235 - . ??M-2350 - NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 -****************************************/ - -ROM_START( puzzldpr ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "235-p1.p1", 0x000000, 0x080000, CRC(afed5de2) SHA1(a5d82c6dbe687505e8c8d7339908da45cd379a0b) ) /* TC534200 */ - - NEO_SFIX_128K( "235-s1.s1", CRC(3b13a22f) SHA1(4506fc340d9658a50fa415676564f10bbfba2703) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) /* TC531001 */ - - ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) /* TC534200 */ - - ROM_REGION( 0x200000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0236 - . ??M-2360 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y -****************************************/ - -ROM_START( irrmaze ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "236-p1.p1", 0x100000, 0x100000, CRC(4c2ff660) SHA1(4a0cbd09044648ff9ec67723729f16d422c34bda) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "236-s1.s1", CRC(5d1ca640) SHA1(40a9668a1742a44597a07ce72273d17119815637) ) /* TC531000 */ - - ROM_REGION16_BE( 0x20000, "mainbios", 0 ) - /* special BIOS with trackball support, we only have one Irritating Maze bios and thats asia */ - ROM_LOAD16_WORD_SWAP("236-bios.sp1", 0x00000, 0x020000, CRC(853e6b96) SHA1(de369cb4a7df147b55168fa7aaf0b98c753b735e) ) - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) - - ROM_REGION( 0x30000, "cslot1:audiocpu", 0 ) - ROM_LOAD( "236-m1.m1", 0x00000, 0x20000, CRC(880a1abd) SHA1(905afa157aba700e798243b842792e50729b19a0) ) /* TC531001 */ - ROM_RELOAD( 0x10000, 0x20000 ) - - ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "236-v1.v1", 0x000000, 0x200000, CRC(5f89c3b4) SHA1(dc8fd561cf8dfdd41696dcf14ea8d2d0ac4eec4b) ) /* TC5316200 */ - ROM_LOAD( "236-v2.v2", 0x200000, 0x100000, CRC(72e3add7) SHA1(dc49f05274693255416d2e41ecc088027b798eb9) ) /* TC538200 */ - - ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "236-c1.c1", 0x000000, 0x400000, CRC(c1d47902) SHA1(727001c34f979226fc8f581113ce2aaac4fc0d42) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "236-c2.c2", 0x000001, 0x400000, CRC(e15f972e) SHA1(6a329559c57a67be73a6733513b59e9e6c8d61cc) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0237 - . ??M-2370 - NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B -****************************************/ - -ROM_START( popbounc ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "237-p1.p1", 0x000000, 0x100000, CRC(be96e44f) SHA1(43679da8664fbb491103a1108040ddf94d59fc2b) ) /* TC538200 */ - - NEO_SFIX_128K( "237-s1.s1", CRC(b61cf595) SHA1(b14f8b78af7c634d41cf34d36b11b116e61f7342) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "237-m1.m1", CRC(d4c946dd) SHA1(6ca09040b5db8d89511d627954c783154d58ab01) ) /* TC531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "237-v1.v1", 0x000000, 0x200000, CRC(edcb1beb) SHA1(62f086b9968b366b59276ee4ae3c32c4d76fc6ce) ) /* TC5316200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "237-c1.c1", 0x000000, 0x200000, CRC(eda42d66) SHA1(2735538fcb9dc0c16e043a8728c8b642650189f4) ) /* Plane 0,1 */ /* TC5316200 */ - ROM_LOAD16_BYTE( "237-c2.c2", 0x000001, 0x200000, CRC(5e633c65) SHA1(9a82107caf027317c173c1c1ef676f0fdeea79b2) ) /* Plane 2,3 */ /* TC5316200 */ -ROM_END - -/**************************************** - ID-0238 - . ??M-2380 - NEO-MVS PROGBK1 / NEO-MVS CHA256 -****************************************/ - -ROM_START( shocktro ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "238-p1.p1", 0x000000, 0x100000, CRC(5677456f) SHA1(f76169fa5c90871d65e2a16fd1bb036c90533ac8) ) - ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) /* TC5332205 */ - - NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) /* TC5332204 */ - ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) /* TC5316200 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( shocktroa ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "238-pg1.p1", 0x000000, 0x100000, CRC(efedf8dc) SHA1(f638df9bf7aa7d514ee2bccfc7f2adbf39ca83fc) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) /* TC5332205 */ - - NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) /* TC5332204 */ - ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) /* TC5316200 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0239 - . NGM-2390 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - . NGH-2390 - NEO-AEG PROGBK1Y / NEO-AEG CHA512Y -****************************************/ - -ROM_START( blazstar ) - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "239-p1.p1", 0x000000, 0x100000, CRC(183682f8) SHA1(dcee1c2cf4a991ca1f9f2b40c4a738f21682807b) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "239-p2.sp2", 0x100000, 0x200000, CRC(9a9f4154) SHA1(f8805453d0995c8fa16cd9accfb7a990071ca630) ) /* TC5316200 */ - - NEO_SFIX_128K( "239-s1.s1", CRC(d56cb498) SHA1(420ce56431dc7f3f7de84fcbc8c0a17b5eab205e) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "239-m1.m1", CRC(d31a3aea) SHA1(e23abfeb23052f0358edcf2c83401025fe632511) ) /* TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "239-v1.v1", 0x000000, 0x400000, CRC(1b8d5bf7) SHA1(67fc1f7e36e92a89cd1d415eb31a2892f57b0d04) ) /* TC5332204 */ - ROM_LOAD( "239-v2.v2", 0x400000, 0x400000, CRC(74cf0a70) SHA1(b00451a2a30de2517ae3eca35eb1fe985b950eb8) ) /* TC5332204 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "239-c1.c1", 0x0000000, 0x400000, CRC(84f6d584) SHA1(ff36db8504611b0d8d942d1e24823ff71e4aeb37) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "239-c2.c2", 0x0000001, 0x400000, CRC(05a0cb22) SHA1(4abe03e7f3a86f277131d413a3151c7b9c3646c8) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "239-c3.c3", 0x0800000, 0x400000, CRC(5fb69c9e) SHA1(77b96518d8ad8ad120537e0f8ba65d69d1c33566) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "239-c4.c4", 0x0800001, 0x400000, CRC(0be028c4) SHA1(d3f8b37786ca7838c3525895a7f2b49afc8530d4) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "239-c5.c5", 0x1000000, 0x400000, CRC(74bae5f8) SHA1(812c9a31f0721c2971a316b084ce69337dbe3747) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "239-c6.c6", 0x1000001, 0x400000, CRC(4e0700d2) SHA1(cd059fb713c403208923c17e1e8ef02fcfd2fe8d) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "239-c7.c7", 0x1800000, 0x400000, CRC(010ff4fd) SHA1(2571d406442f007a7458d8ccb0939a9201c9c9bf) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "239-c8.c8", 0x1800001, 0x400000, CRC(db60460e) SHA1(a5cb27c0983c8b400d96fd0828ef0639a66d4dba) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0240 - . NGM-2400 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - . NGH-2400 - NEO-AEG PROGBK1Y / NEO-AEG CHA512Y -****************************************/ - -ROM_START( rbff2 ) /* MVS VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "240-p1.p1", 0x000000, 0x100000, CRC(80e41205) SHA1(8f83eb8ff54be4ec40f8a0dd2cbe56c54908d00a) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ - - NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ - - NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ - ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ - ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ - ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( rbff2h ) /* AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "240-pg1.p1", 0x000000, 0x100000, CRC(b6969780) SHA1(e3373d18e0f0724d69efb8024a27cca121f1b5b2) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ - - NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ - - NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ - ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ - ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ - ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( rbff2k ) /* KOREAN VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "140-p1k.p1", 0x000000, 0x100000, CRC(965edee1) SHA1(7f4b947b19ccfee32fc73e4fd89645eb313b5c77) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ - - NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ - - NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ - ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ - ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ - ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0241 - . NGM-2410 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - NEO-MVS PROGBK1 / NEO-MVS CHA256 - . NGH-2410 - NEO-AEG PROGBK1Y / NEO-AEG CHA512Y -****************************************/ - -ROM_START( mslug2 ) /* MVS AND AES VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "241-p1.p1", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) /* TC5316200 */ - - NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) /* TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) /* TC5332204 */ - ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) /* TC5332204 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - /* Different layout with 8xC (16 mbit) also exists; naming sheme 241-Cx */ - ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - - -/**************************************** - ID-0941 - community produced hack -****************************************/ -ROM_START( mslug2t ) - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "941-p1.p1", 0x000000, 0x100000, CRC(df5d6fbc) SHA1(b9cc3e29afc12dc98daac9afb4f94e2cdd8b455c) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) /* TC5316200 */ - - NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) /* TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) /* TC5332204 */ - ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) /* TC5332204 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - /* Different layout with 8xC (16 mbit) also exists; naming sheme 241-Cx */ - ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - - -/**************************************** - ID-0242 - . NGM-2420 - NEO-MVS PROGSF1 (1998.6.17) (protected board) / NEO-MVS CHA512Y - NEO-MVS PROGSF1E (1998.6.18) (protected board) / NEO-MVS CHA512Y - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - . NGH-2420 - NEO-AEG PROGBK1Y / NEO-AEG CHA512Y -****************************************/ - -ROM_START( kof98 ) /* encrypted code + protection */ /* MVS VERSION */ - /* This set uses NEO-MVS PROGSF1 board */ - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ - ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ - - NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ - - NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) /* TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ - ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ - ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ - ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof98a ) /* encrypted code + protection */ /* MVS VERSION */ - /* This set uses NEO-MVS PROGSF1E board; same rom data as in kof98 is used */ - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ - ROM_LOAD16_WORD_SWAP( "242-ep1.ep1", 0x200000, 0x200000, CRC(3f74a000) SHA1(e887e0ac232683bd28703e08c4055fd0ea36402c) ) /* M27C160 */ - ROM_LOAD16_WORD_SWAP( "242-ep2.ep2", 0x400000, 0x200000, CRC(6e474841) SHA1(0ce401277f9c53435ea00b930efe361c8d25a7d9) ) /* M27C160 */ - - NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ - - NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) /* TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ - ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ - ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ - ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof98k ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */ - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ - ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ - - NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ - - /* Correct chip label */ - NEO_BIOS_AUDIO_256K( "242-m1k.m1", CRC(ce12da0c) SHA1(e7c01dae2852d543d1a58d55735239f6a5aa05a5) ) /* mask rom TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ - ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ - ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ - ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof98ka ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */ - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ - ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ - - NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ - - /* Correct chip label */ - NEO_BIOS_AUDIO_256K( "242-mg1k.m1", CRC(ce9fb07c) SHA1(631d995f1291dd803fb069f3b25e7b9ed30d8649) ) /* 27C2000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ - ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ - ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ - ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof98h ) /* MVS AND AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ - - NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ - - NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) /* TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ - ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ - ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ - ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0243 - . NGM-2430 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - . NGH-2430 - NEO-AEG PROGBK1Y / NEO-AEG CHA512Y -****************************************/ - -ROM_START( lastbld2 ) /* MVS AND AES VERSION */ /* later revision */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "243-pg1.p1", 0x000000, 0x100000, CRC(af1e6554) SHA1(bd8526f60c2472937728a5d933fbd19d899f2cba) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) /* TC5332205 */ - - NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) /* TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) /* TC5332204 */ - ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) /* TC5332204 */ - ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) /* TC5332204 */ - ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) /* TC5332204 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0244 - . ??M-2440 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - . ??H-2440 -****************************************/ - -ROM_START( neocup98 ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "244-p1.p1", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "244-s1.s1", CRC(9bddb697) SHA1(2f479bcd5a433201168792a578de3057252d649f) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "244-m1.m1", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) ) /* TC531001 */ - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "244-v1.v1", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) ) /* TC5332204 */ - ROM_LOAD( "244-v2.v2", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) ) /* TC5316200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "244-c1.c1", 0x000000, 0x800000, CRC(c7a62b23) SHA1(4534ecc9ade69c543188c66229dcad89dbc48668) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "244-c2.c2", 0x000001, 0x800000, CRC(33aa0f35) SHA1(3443c7765c6aa177003d42bbfcac9f31d1e12575) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0245 - . ??M-2450 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y -****************************************/ - -ROM_START( breakrev ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "245-p1.p1", 0x100000, 0x100000, CRC(c828876d) SHA1(1dcba850e5cf8219d0945612cfded6d20ca8682a) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) ) /* mask rom TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) ) /* mask rom TC5332204 */ - ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x1800000, "cslot1:sprites", 0 ) - /* The chip labels and sizes are correct */ - ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) /* Plane 2,3 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) ) /* Plane 0,1 */ /* mask rom TC5332205 */ - ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) ) /* Plane 2,3 */ /* mask rom TC5332205 */ -ROM_END - -/**************************************** - ID-0246 - . NGM-2460 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y - . NGH-2460 -****************************************/ - -ROM_START( shocktr2 ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "246-p1.p1", 0x000000, 0x100000, CRC(6d4b7781) SHA1(3c9d53d5da9842bfd45037c919064dda3fb2e089) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) ) /* TC5332205 */ - - NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) /* TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) ) /* TC5332204 */ - ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) ) /* TC5332204 */ - ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) ) /* TC5316200 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0247 - . ??M-2470 - NEO-MVS PROGBK1 / NEO-MVS CHA256 -****************************************/ - -ROM_START( flipshot ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "247-p1.p1", 0x000000, 0x100000, CRC(95779094) SHA1(a985e033bc6f137fa65855d3eed245d66d5b244a) ) /* mask rom TC538200 */ - - NEO_SFIX_128K( "247-s1.s1", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) ) /* mask rom TC531000 */ - - NEO_BIOS_AUDIO_128K( "247-m1.m1", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) ) /* mask rom TC 531001 */ - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "247-v1.v1", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "247-c1.c1", 0x000000, 0x200000, CRC(c9eedcb2) SHA1(7627f2810322c146511525eb70b573a6a5ede926) ) /* Plane 0,1 */ /* mask rom TC5316200 */ - ROM_LOAD16_BYTE( "247-c2.c2", 0x000001, 0x200000, CRC(7d6d6e87) SHA1(6475b58b9f91c20d1f465f3e892de0c68e12a92b) ) /* Plane 2,3 */ /* mask rom TC5316200 */ -ROM_END - -/**************************************** - ID-0248 - . ??M-2480 - NEO-MVS PROGBK1 / NEO-MVS CHA256 -****************************************/ - -ROM_START( pbobbl2n ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "248-p1.p1", 0x000000, 0x100000, CRC(9d6c0754) SHA1(95c70c2d51fc4de01e768e03cc800a850aaad5dc) ) /* TC538200 */ - - NEO_SFIX_128K( "248-s1.s1", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) ) /* TC531000DP */ - - NEO_BIOS_AUDIO_128K( "248-m1.m1", CRC(883097a9) SHA1(677bf9684c0c7977a9a3f0c1288e430040a53b49) ) /* TC531001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "248-v1.v1", 0x000000, 0x400000, CRC(57fde1fa) SHA1(af39bc141fc35b78dcacfd42b3abb29d7e5c2c89) ) /* TC5332204 */ - ROM_LOAD( "248-v2.v2", 0x400000, 0x400000, CRC(4b966ef3) SHA1(083c0e9fd7b8e506087648cdd8ec4206103984cd) ) /* TC5332204 */ - - ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "248-c1.c1", 0x000000, 0x400000, CRC(d9115327) SHA1(a49aa836a902326cfe785428e1699fefcf8566d4) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "248-c2.c2", 0x000001, 0x400000, CRC(77f9fdac) SHA1(4642d71d32b6a05dc8bfa0f95c936a77c7cef05e) ) /* Plane 2,3 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "248-c3.c3", 0x800000, 0x100000, CRC(8890bf7c) SHA1(a52f6bafd60e72003bfe38c80c1dde24b4983b2a) ) /* Plane 0,1 */ /* TC538200 */ - ROM_LOAD16_BYTE( "248-c4.c4", 0x800001, 0x100000, CRC(8efead3f) SHA1(f577d2f7c6f850b3d100c36947ad15e33dfa0bed) ) /* Plane 2,3 */ /* TC538200 */ -ROM_END - -/**************************************** - ID-0249 - . ??M-2490 - NEO-MVS PROGBK1 / NEO-MVS CHA256 - NEO-MVS PROGBK1 / NEO-MVS CHA512Y -****************************************/ - -ROM_START( ctomaday ) /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "249-p1.p1", 0x100000, 0x100000, CRC(c9386118) SHA1(5554662c7bc8605889cac4a67fee05bbb4eb786f) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "249-s1.s1", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) ) /* TC531000DP */ - - NEO_BIOS_AUDIO_128K( "249-m1.m1", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) ) /* TC531001 */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "249-v1.v1", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) ) /* TC5332204 */ - ROM_LOAD( "249-v2.v2", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) ) /* TC538200 */ - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "249-c1.c1", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "249-c2.c2", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -/**************************************** - ID-0250 - . NGM-2500 - NEO-MVS PROGEOP (1999.2.2) / NEO-MVS CHA512Y - . NGH-2500 - NEO-AEG PROGEOP (1999.4.2) / NEO-AEG CHA512Y -****************************************/ - -ROM_START( mslugx ) /* MVS AND AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) /* TC5332205 */ - - NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) /* TC531000 */ - - NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) /* TC531001 */ - - ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) /* TC5332204 */ - ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) /* TC5332204 */ - ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) /* TC5316200 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) /* Plane 0,1 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0251 - . NGM-2510 - SMA protected version found on: - NEO-MVS PROGLBA (NEO-SMA) (1999.4.12) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) - Non SMA protected version found on: - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) - . NGH-2510 - NEO-AEG PROGLBA (NEO-SMA) (1999.7.6) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) -****************************************/ - -ROM_START( kof99 ) /* Original Version - Encrypted Code & GFX */ /* MVS VERSION */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) /* mask rom TC5332205 */ - ROM_LOAD16_WORD_SWAP( "251-p2.p2", 0x500000, 0x400000, CRC(90175f15) SHA1(aa9e75810438a8b45808a8bf32cb04d91b5c0b3a) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ - ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ - ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ - ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof99h ) /* Original Version - Encrypted Code & GFX */ /* AES VERSION */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) /* mask rom TC5332205 */ - ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001DP */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ - ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ - ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ - ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof99e ) /* Original Version - Encrypted Code & GFX */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */ - /* Is the SMA for this set correct? A set with this layout and a SMA.KB is known */ - ROM_LOAD16_WORD_SWAP( "251-ep1.p1", 0x100000, 0x200000, CRC(1e8d692d) SHA1(eea1aa8c0a17f089ac14831889c36535e559072c) ) /* M27C160 */ - ROM_LOAD16_WORD_SWAP( "251-ep2.p2", 0x300000, 0x200000, CRC(d6206e5a) SHA1(0e1100d03c40c6d5cfa899d009e319ae73fce6b8) ) /* M27C160 */ - ROM_LOAD16_WORD_SWAP( "251-ep3.p3", 0x500000, 0x200000, CRC(d58c3ef8) SHA1(f927d90d55b49944f448d6286e0cb913cc70ade1) ) /* M27C160 */ - ROM_LOAD16_WORD_SWAP( "251-ep4.p4", 0x700000, 0x200000, CRC(52de02ae) SHA1(f16924ff8eef92da7716236a6a055e22e090a02b) ) /* M27C160 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ - ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ - ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ - ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof99k ) /* Original Version - Encrypted Code & GFX */ /* KOREAN VERSION */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "kb.neo-sma", 0x0c0000, 0x040000, CRC(9fccc688) SHA1(1a24d0fe7cabe7b346f538e099f1357bbf77bc89) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "151-pg1k.p1", 0x100000, 0x400000, CRC(ef259292) SHA1(e02f2d0c71eac74424507e4845991fbc12821045) ) /* mask rom TC5332205 */ - ROM_LOAD16_WORD_SWAP( "151-pg2k.p2", 0x500000, 0x400000, CRC(f3898ec2) SHA1(c7fd230fbb97a9b171aeae8ff1a5cd39ba7fa9eb) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ - ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ - ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ - ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof99ka ) /* Original Version - Encrypted GFX */ /* KOREAN VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) /* TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001DP */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ - ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ - ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ - ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof99p ) /* Prototype Version - Possibly Hacked */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "proto_251-p1.p1", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) ) - ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) - - /* This is the S1 from the prototype, the final is different */ - NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) - - /* Did the Prototype really use the same sound program / voice roms, sound isn't great .. */ - NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ - ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ - ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ - ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* these are probably decrypted versions of the roms found in the final */ - ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) /* Plane 2,3 */ -ROM_END - -/**************************************** - ID-0252 - . ??M-2520 - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) -****************************************/ - -ROM_START( ganryu ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "252-p1.p1", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "252-m1.m1", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) ) /* TC531001DP */ - - ROM_REGION( 0x0400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "252-v1.v1", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) ) /* TC5332204 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "252-c1.c1", 0x0000000, 0x800000, CRC(50ee7882) SHA1(ace0f95407c246d0456341cf2ad8a7668b81df8a) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "252-c2.c2", 0x0000001, 0x800000, CRC(62585474) SHA1(b35461598087aa82886af0030c61b26cc064af5f) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0253 - . NGM-2530 - NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) - . NGH-2530 - NEO-AEG PROGLBA (1999.7.6) (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) -****************************************/ - -ROM_START( garou ) /* Original Version - Encrypted GFX */ /* MVS VERSION - later revision */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) ) /* M27C160 */ - ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) ) /* M27C160 */ - ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) ) /* M27C160 */ - ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) ) /* M27C160 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) /* TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) /* TC5332204 */ - ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) /* TC5332204 */ - ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) /* TC5332204 */ - ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( garouh ) /* Original Version - Encrypted GFX */ /* MVS AND AES VERSION - earlier revision */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "ke.neo-sma", 0x0c0000, 0x040000, CRC(96c72233) SHA1(29e19effd40fdf7e5144332396857f4ad0eff13e) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "253-p1.p1", 0x100000, 0x400000, CRC(18ae5d7e) SHA1(bdb58ec9137d8653979b47132f2d10e1cc6aaa24) ) /* mask rom TC5332205 */ - ROM_LOAD16_WORD_SWAP( "253-p2.p2", 0x500000, 0x400000, CRC(afffa779) SHA1(ac017986f02277fbcd656b8c02492a3f4216a90e) ) /* mask rom TC5332205 */ - /* also found AES JP set with ep1 / ep2 / ep3 and ep4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) /* TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) /* TC5332204 */ - ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) /* TC5332204 */ - ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) /* TC5332204 */ - ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( garoup ) /* Prototype Version, seems genuine */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "proto_253-p1.p1", 0x000000, 0x100000, CRC(c72f0c16) SHA1(1ff6bb651682f93bef9ff02622c3cf63fe594986) ) - ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) - - NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) - - NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) - ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) - ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) - ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) /* Plane 2,3 */ -ROM_END - -/**************************************** - ID-0254 - . ??M-2540 - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) -****************************************/ - -ROM_START( s1945p ) /* Original Version, Encrypted GFX Roms */ /* MVS ONLY RELEASE */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "254-p1.p1", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) ) /* TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) ) /* TC531001DP */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) ) /* TC5332204 */ - ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) ) /* TC5332204 */ - ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) ) /* TC5332204 */ - ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0255 - . ??M-2550 - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) -****************************************/ - -ROM_START( preisle2 ) /* Original Version, Encrypted GFX */ /* MVS ONLY RELEASE */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "255-p1.p1", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) ) /* TC538200 */ - ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) ) /* TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) ) /* TC531001DP */ - - ROM_REGION( 0x0600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) ) /* TC5332204 */ - ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) ) /* TC5316200 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "255-c1.c1", 0x0000000, 0x800000, CRC(ea06000b) SHA1(1539b12e461fa48301190eb8171bbffff9d984b7) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "255-c2.c2", 0x0000001, 0x800000, CRC(04e67d79) SHA1(aadb6ee750da2c14c6eededa2218db95e051a32c) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "255-c3.c3", 0x1000000, 0x800000, CRC(60e31e08) SHA1(bd5b81ad9d04cdc4e0df31ac40eca305f98277eb) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "255-c4.c4", 0x1000001, 0x800000, CRC(40371d69) SHA1(90011ccc5672ff1b90737cf50c963e71b6217ce3) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "255-c5.c5", 0x2000000, 0x800000, CRC(0b2e6adf) SHA1(15c7d9aa8b1ad9a071e6fd0ef0de8a057c23b02e) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "255-c6.c6", 0x2000001, 0x800000, CRC(b001bdd3) SHA1(394ba8004644844ee97a120cfda48aeac685af8a) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0256 - . NGM-2560 - SMA protected version found on: - NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) - Non SMA protected version found on: - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) - . NGH-2560 - NEO-AEG PROGLBA (1999.7.6) (NEO-SMA)(LBA-SUB) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) -****************************************/ - -ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) /* stored in the custom chip */ - /* The SMA for this release has a green colour marking; the older revision has a white colour marking */ - ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) ) /* TC5332202 */ - ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) ) /* TC5332202 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ - ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ - ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ - ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( mslug3h ) /* Original Version - Encrypted GFX */ /* revision 2000.3.17 */ /* AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "256-ph1.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) ) - ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) - /* also found AES sets with p1 / p2 on maskrom on NEO-AEG PROGLBA (NEO-SMA); chip labels are 256-PG1 and 256-PG2 */ - /* The SMA on those sets has a pink or green color marking */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ - ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ - ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ - ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0257 - . NGM-2570 - SMA protected version found on: - NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) - Non SMA protected version found on: - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) - . NGH-2570 - NEO-AEG PROGLBA (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) -****************************************/ - -ROM_START( kof2000 ) /* Original Version, Encrypted Code + Sound + GFX Roms */ /* MVS AND AES VERSION */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "257-p1.p1", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) ) /* mask rom TC5332202 */ - ROM_LOAD16_WORD_SWAP( "257-p2.p2", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) ) /* mask rom TC5332202 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) /* mask rom TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) /* TC5332204 */ - ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) /* TC5332204 */ - ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) /* TC5332204 */ - ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -ROM_START( kof2000n ) /* Original Version, Encrypted Sound + GFX Roms */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) /* mask rom TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) /* TC5332204 */ - ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) /* TC5332204 */ - ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) /* TC5332204 */ - ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0258 - SNK vs. Capcom? -****************************************/ - -/**************************************** - ID-0259 - . ??M-2590 - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) -****************************************/ - -ROM_START( bangbead ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "259-p1.p1", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) ) /* TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "259-m1.m1", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) ) /* TC531001DP */ - - ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "259-v1.v1", 0x000000, 0x400000, CRC(088eb8ab) SHA1(608306e35501dd7d382d9f96b28e7550aa896a03) ) /* TC533204 */ - ROM_LOAD( "259-v2.v2", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) ) /* TC538200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "259-c1.c1", 0x0000000, 0x800000, CRC(1f537f74) SHA1(b8ef691e92191c20a5ed4f20a75cca3c7383bca6) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "259-c2.c2", 0x0000001, 0x800000, CRC(0efd98ff) SHA1(d350315d3c7f26d638458e5ccf2126069a4c7a5b) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0260 - . ??M-2600 - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) -****************************************/ - -ROM_START( nitd ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "260-p1.p1", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) ) /* TC534200 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) /* TC534000 */ - - ROM_REGION( 0x0400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) /* TC5332204 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/**************************************** - ID-0261 - . NGM-2610 - NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) - . NGH-2610 - NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) -****************************************/ - -ROM_START( sengoku3 ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "261-ph1.p1", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) ) /* mask rom TC5316200 */ - ROM_CONTINUE( 0x000000, 0x100000 ) - /* also found MVS set with p1 label 261-PG1; older revision? */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_512K( "261-m1.m1", CRC(7d501c39) SHA1(8e6bcc428f5ac7532d9c9be7e07ad0821461a080) ) /* mask rom TC534000 */ - - ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) /* mask rom TC5332204 */ - ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) /* mask rom TC5332204 */ - ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) /* mask rom TC5332204 */ - ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0262 - . NGM-262? - MVS PROGBK2 REV1.0 (NEO-PCM2 SNK)/ MVS CHAFIO REV1.0 (NEO-CMC 7050) - . NGH-2621 - NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) - - Distribution by BrezzaSoft -****************************************/ - -ROM_START( kof2001 ) /* MVS VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) /* mask rom TC5332205 */ - /* The first/early production run sets have proms with above labels. Some later? sets found have eproms instead of proms */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kof2001h ) /* AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "262-pg1.p1", 0x000000, 0x100000, CRC(2af7e741) SHA1(e41282d73ed6d521da056f1a16573bb61bfa3826) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0263 - . NGM-2630 - NEO-MVS PROGBK2 (NEO-PCM2 SNK)/ NEO-MVS CHAFIO (NEO-CMC 7050) - . NGH-2630 - NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) -****************************************/ - -ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ /* MVS VERSION */ - /* There also exist carts where p1 label is pg1; the PG1 revision has a Japanese cart label, SN 02Jxxxxx - The P1 revision has a US/EUR cart label, SN 02Txxxxx ; Rom data on both is identical. - These carts were manufactured by Mega Enterprise, not SNK. */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ - ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( mslug4h ) /* Original Version - Encrypted GFX */ /* AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "263-ph1.p1", 0x000000, 0x100000, CRC(c67f5c8d) SHA1(12af74964843f103520d9f0825069ea2f67eeb2f) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "263-ph2.sp2", 0x100000, 0x400000, CRC(bc3ec89e) SHA1(2cb0626bc4fa57e1d25f208e04532b570d87b3fb) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ - ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0264 - . NGM-264? - NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) - . NGH-2641 - NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) - - Distribution by BrezzaSoft -****************************************/ - -ROM_START( rotd ) /* Encrypted Set */ /* MVS VERSION */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) ) /* mask rom TC5364205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) ) /* mask rom 27c010 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) /* mask rom TC5364205 */ - ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - - -ROM_START( rotdh ) /* Encrypted Set */ /* AES VERSION */ - ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "264-pk1.p1", 0x000000, 0x100000, CRC(ff2fa719) SHA1(03009e3693648ac0d892390c3bba2ceac6c9564b) ) - ROM_LOAD16_WORD_SWAP( "264-pk2.sp2", 0x100000, 0x200000, CRC(0df2e112) SHA1(c521783483117859a2b250190be77f6d49412ae8) ) - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) ) /* mask rom 27c010 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) /* mask rom TC5364205 */ - ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0265 - . NGM-2650 - NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) - . NGH-2650 - NEO-AEG PROGBK2 (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) -****************************************/ - -ROM_START( kof2002 ) /* Encrypted Set */ /* MVS AND AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ - ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0266 - . NGM-2660 - NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) - . NGH-2660 - NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) -****************************************/ - -ROM_START( matrim ) /* Encrypted Set */ /* MVS AND AES VERSION */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x80000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "266-m1.m1", CRC(456c3e6c) SHA1(5a07d0186198a18d2dda1331093cf29b0b9b2984) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) ) /* mask rom TC5364205 */ - ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0267 - . ??M-2670 - NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) -****************************************/ - -ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "267-p1.p1", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) ) /* mask rom TC538200 */ - /* also found set with p1 and m1 on eprom with sticker; chip labels is PN 2.02 and M1 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) /* mask rom TC534000 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "267-c1.c1", 0x0000000, 0x800000, CRC(5eebee65) SHA1(7eb3eefdeb24e19831d0f51d4ea07a0292c25ab6) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "267-c2.c2", 0x0000001, 0x800000, CRC(2b67187b) SHA1(149c3efd3c444fd0d35a97fa2268102bf76be3ed) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0268 - . NGM-2680 - NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) - . NGH-2680 - NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) -****************************************/ - -ROM_START( mslug5 ) /* Encrypted Set */ /* MVS VERSION */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) /* mask rom TC5332205 */ - ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ - ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( mslug5h ) /* Encrypted Set */ /* AES release of the game but is also found in later MVS carts */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) ) - ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) ) - /* also found AES set with p1 / p2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ - ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0269 - . NGM-2690 - NEO-MVS PROGBK3R (2003.9.2) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) - . NGH-2690 - NEO-AEG PROGBK3R (2003.8.29) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) -****************************************/ - -ROM_START( svc ) /* Encrypted Set */ /* MVS AND AES VERSION */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) ) /* mask rom TC5332205 */ - ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) /* mask rom TC5364205 */ - ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0270 - . NGM-2700 - NEO-MVS PROGBK2R (2003.8.26) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) - . NGH-2700 - NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) -****************************************/ - -ROM_START( samsho5 ) /* Encrypted Set */ /* MVS VERSION */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) ) /* mask rom TC5332205 */ - ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) ) /* mask rom 27c040 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) /* mask rom TC5364205 */ - ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( samsho5h ) /* Encrypted Set, Alternate Set */ /* AES VERSION */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "270-p1c.p1", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) ) /* mask rom TC5332205 */ - ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) ) /* mask rom 27c040 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) /* mask rom TC5364205 */ - ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0271 - . NGM-2710 - NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) - . NGH-2710 - NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) -****************************************/ - -ROM_START( kof2003 ) /* Encrypted Code + Sound + GFX Roms */ /* MVS VERSION */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD32_WORD_SWAP( "271-p1c.p1", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) ) /* mask rom TC5332205 */ - ROM_LOAD32_WORD_SWAP( "271-p2c.p2", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) ) /* mask rom TC5332205 */ - ROM_LOAD16_WORD_SWAP( "271-p3c.p3", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) ) /* mask rom TC538200 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ - ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kof2003h ) /* Encrypted Code + Sound + GFX Roms */ /* AES VERSION */ - /* All chip labels for this set are correct */ - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD32_WORD_SWAP( "271-p1k.p1", 0x000000, 0x400000, CRC(d0d0ae3e) SHA1(538d054ac50c91694fbbfefcce548b063713e14e) ) /* mask rom TC5332205 */ - ROM_LOAD32_WORD_SWAP( "271-p2k.p2", 0x000002, 0x400000, CRC(fb3f79d9) SHA1(f253d10e732d6e23ae82d74ac9269d21f69ddb4d) ) /* mask rom TC5332205 */ - ROM_LOAD16_WORD_SWAP( "271-p3k.p3", 0x800000, 0x100000, CRC(232702ad) SHA1(6045046027dac1cbd4cbd14b5c1ece522bc6197f) ) /* mask rom TC538200 */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ - ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "271-c1k.c1", 0x0000000, 0x800000, CRC(efb9dd24) SHA1(1c6fe10fdbfc3306c3b7321c731f28ffdbfb15b8) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c2k.c2", 0x0000001, 0x800000, CRC(3fb90447) SHA1(04d196de7c54c77bc75eba56d3060d46efc2d406) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c3k.c3", 0x1000000, 0x800000, CRC(27950f28) SHA1(924f4de61c86b9efde6f1104b986886f1117055d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c4k.c4", 0x1000001, 0x800000, CRC(735177f8) SHA1(c95da1bc256995a7f44c9cc3312879ab6cbc15d6) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c5k.c5", 0x2000000, 0x800000, CRC(a51b7c0f) SHA1(53dcf692b35b8d32abe5962ac799b8d641f04710) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c6k.c6", 0x2000001, 0x800000, CRC(d5cae4e0) SHA1(248cd9eaac7a04d6b5d80c7534de90b057d566d7) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c7k.c7", 0x3000000, 0x800000, CRC(e65ae2d0) SHA1(39744e10697d7ac539ecfcfa597e75597f321955) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c8k.c8", 0x3000001, 0x800000, CRC(312f528c) SHA1(b4ad75f54f730ada6cb00112b74022250f055725) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - ID-0272 - . NGM-2720 - NEO-MVS PROGBK2S (2003.10.18) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) - . NGH-2720 - NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) -****************************************/ - -ROM_START( samsh5sp ) /* Encrypted Set */ /* MVS VERSION */ - /* Uncensored */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) ) - ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) ) - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) - ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ -ROM_END - - -/* Some info about the 2nd AES release of Samurai Shodown 5 Special (samsh5sph): - - The fixed carts have a small round neogeo sticker applied to the front side of the cart (top right near cart sticker). - SNK Playmore had authorized a recall of all Samurai Shodown V Special (Samurai Spirits 0 Special) home cartridges. This recall involved bug fixes - and the addition of fatalities. (The fatalities were originally removed at the last minute due to the Nagasaki incident, a murder caused by a child killing her classmate by knife.) - Bug fixes: Improvements on Voice, Back Ground Music, and Practice mode. - Fatalities: SNK PLAYMORE modified the game program by including the removed "Zetumei Ougi" in a modified version. - This new version does not show the complete fatalities, they are instead replaced by what SNK PLAYMORE refers to as "lessened fatalities". -*/ - -ROM_START( samsh5sph ) /* Encrypted Set */ /* AES VERSION, 2nd bugfix release */ - /* Less censored */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "272-p1ca.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) ) - ROM_LOAD16_WORD_SWAP( "272-p2ca.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) ) - /* Correct chip labels unknown */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) - ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsh5spho ) /* Encrypted Set */ /* AES VERSION, 1st release */ - /* Censored */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "272-p1c.p1", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) ) - ROM_LOAD16_WORD_SWAP( "272-p2c.sp2", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) ) - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) - ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ -ROM_END - - -/************************************* - * - * BrezzaSoft games, licensed? - * - *************************************/ - -/**************************************** - B-J-02 - . ???-???? - MVS PROGV (2000.11.17) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) -****************************************/ - -ROM_START( jockeygp ) /* MVS ONLY RELEASE */ - /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "008-epr.p1", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) ) /* M27C160 */ - /* P on eprom, correct chip label unknown */ - ROM_FILL( 0x100000, 0x100000, 0xff ) - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) ) /* M27C4001 */ - - ROM_REGION( 0x0200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( jockeygpa ) /* MVS ONLY RELEASE */ - /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "008-epr_a.p1", 0x000000, 0x100000, CRC(b8f35532) SHA1(b46c96677f1bfe324b678112e9c614a20c550d51) ) /* M27C800 */ - /* P on eprom, correct chip label unknown */ - - ROM_Y_ZOOM - - /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x20000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) ) /* M27C4001 */ - - ROM_REGION( 0x0200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) ) /* mask rom TC5316200 */ - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/**************************************** - B-V-01 - . ???-???? - MVS PROGV (2000.11.17) / MVS CHAV (2000.10.26) -****************************************/ - -ROM_START( vliner ) /* MVS ONLY RELEASE */ - /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "epr.p1", 0x000000, 0x080000, CRC(72a2c043) SHA1(b34bcc10ff33e4465126a6865fe8bf6b6a3d6cee) ) /* AM27C400 */ - /* P on eprom, correct chip label unknown */ - - NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) ) - - NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", ROMREGION_ERASE00 ) - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) ) /* Plane 2,3 */ -ROM_END - -ROM_START( vlinero ) /* MVS ONLY RELEASE */ - /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "epr_54.p1", 0x000000, 0x080000, CRC(172efc18) SHA1(8ca739f8780a9e6fa19ac2c3e931d75871603f58) ) - /* P on eprom, correct chip label unknown */ - - NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) ) - - NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", ROMREGION_ERASE00 ) - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) ) /* Plane 2,3 */ -ROM_END - - -/************************************* - * - * Vektorlogic games, unlicensed - * - *************************************/ - -/**************************************** - NSBP V1.0U - PROGRAM CART REVISION 2.0 COPYRIGHT VEKTORLOGIC (C) 2004 / GRAPHICS CART REVISION 1.2 COPYRIGHT VEKTORLOGIC (C) 2004 -****************************************/ - -// this doesn't boot, protection like kof98? -// you can force it to boot with a simple debugger trick, but then it resets when starting a game -ROM_START( sbp ) /* Unlicensed, no official game ID # */ /* MVS ONLY VERSION */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "001-003-02a.u2", 0x000000, 0x080000, CRC(d054d264) SHA1(d1b4bc626d000e0679def0545940fa75035921ab) ) /* HN27C4096HG */ - - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_LOAD( "001-003-02b.u2", 0x000000, 0x20000, CRC(2fd04b2a) SHA1(1acb446704ab56d0a33df7c48855aa8d00fd5a3c) ) /* M27C4001 */ - ROM_IGNORE(0x20000) - ROM_IGNORE(0x20000) - ROM_IGNORE(0x20000) - - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - ROM_Y_ZOOM - - NEO_BIOS_AUDIO_512K( "001-003-01b.u1", CRC(7b1f86f7) SHA1(15b6af7f9fbd0f1f6a1ecd912200ca8d0af2da2a) ) /* M27C4001 */ - - ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "001-003-12a.u12", 0x000000, 0x400000, CRC(c96723b9) SHA1(52eec88550781d45f84efbf9b905d7e7912e96fa) ) /* M27C322 */ - ROM_LOAD( "001-003-13a.u13", 0x400000, 0x400000, CRC(08c339a5) SHA1(badc9510ae243ef2a7877977eb36efa81b1489fe) ) /* M27C322 */ - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "001-003-03b.u3", 0x000000, 0x200000, CRC(44791317) SHA1(9e773eb9aae5ee767213bd17348ff8a312e9cb16) ) /* Plane 0,1 */ /* M27C160 */ - ROM_LOAD16_BYTE( "001-003-04b.u4", 0x000001, 0x200000, CRC(a3a1c0df) SHA1(3b1e5be673f7cbb04199a805b0e0de93dad8cb8c) ) /* Plane 2,3 */ /* M27C160 */ -ROM_END - - - -/************************************* - * - * Bootleg sets - * - *************************************/ - -/* - About supported sets: - - For many bootleg sets, only P's (program rom), M1 (sound driver) and S1 (text layer) roms were dumped. - For these sets it is assumed that the original V's (sound data) and C's (gfx data) are used. - This requires verification. - -*/ - - -/* Zintrick bootleg */ - -/* This Zintrick set appears to be a bootleg made from the CD version, not a genuine - prototype the code is based on that of the NeoCD version with some minor patches, - for example the ADK SAMPLE TEST text that appears on the screen is actually a hacked - PROG LOAD ERROR message. The set is supported in order to distinguish the hacks from - a real prototype should one turn up. */ - -ROM_START( zintrckb ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "zin-p1.bin", 0x000000, 0x100000, CRC(06c8fca7) SHA1(b7bf38965c3d0db4d7a9684d14cac94a45b4a45b)) - - NEO_SFIX_128K( "zin-s1.bin", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) ) - - NEO_BIOS_AUDIO_128K( "zin-m1.bin", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "zin-v1.bin", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) ) - - ROM_REGION( 0x400000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) ) /* Plane 2,3 */ -ROM_END - -/* Idol Mahjong Final Romance 2 */ - -/* This set has been added from HBMAME for completeness, being analogous to the Zintrick one. */ - -ROM_START( froman2b ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "098.p1", 0x000000, 0x80000, CRC(09675541) SHA1(6afb89d43e67f93e40f3877cbedfec9566e3ff0f)) - - NEO_SFIX_128K( "098.s1", CRC(0e6a7c73) SHA1(31b1194524dcc80ec4d63bac088b6fb4909f496c) ) - - NEO_BIOS_AUDIO_128K( "098.m1", CRC(da4878cf) SHA1(ce13d18a4c5d01974df8542c67c4df00dbc6e7c1) ) - - ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "098.v1", 0x000000, 0x100000, CRC(6f8ccddc) SHA1(696df2d0f416c2374b0eb7c858486054688c5bca) ) - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "098.c1", 0x0000000, 0x400000, CRC(29148bf7) SHA1(75097fbe8877720afbcbe4dbe30bc600466d759f) ) - ROM_LOAD16_BYTE( "098.c2", 0x0000001, 0x400000, CRC(226b1263) SHA1(dee6a4a0a727c1d8a6d298cb38ed1b9901992d5b) ) -ROM_END - - -ROM_START( crswd2bl ) - ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "054-p1.p1", 0x100000, 0x100000, CRC(64836147) SHA1(083cb1626885893e736fc9998036c952cd4d503b) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "054-s1.s1", CRC(22e02ddd) SHA1(ebd834affc763cc5854abf1c6c42f43f3f3755fd) ) - - NEO_BIOS_AUDIO_128K( "054-m1.m1", CRC(63e28343) SHA1(f46dbc2f1d6033b11047cca31a9a7d715dc69cb2) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "054-v1.v1", 0x000000, 0x200000, CRC(22d4b93b) SHA1(0515f2ee5d9a8ce424c80721e06f746ac6a543a8) ) - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "054-c1.c1", 0x000000, 0x400000, CRC(8221b712) SHA1(7e68871f1bfc402ef27c8fa088c680cbd133f71a) ) - ROM_LOAD16_BYTE( "054-c2.c2", 0x000001, 0x400000, CRC(d6c6183d) SHA1(cc546ff063fae2c01c109fabcd5b2d29ec3299db) ) -ROM_END - - -/* The King of Fighters '97 bootlegs */ - -ROM_START( kof97pls ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "kf97-p1p.bin", 0x000000, 0x100000, CRC(c01fda46) SHA1(bc6402f5082efc80a8936364c657165f19b49415) ) - ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) ) - - NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) ) - - NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ - ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ - ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ - ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ -ROM_END - -ROM_START( kof97oro ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "orochi-p1.bin", 0x0000000, 0x100000, CRC(6dcb2946) SHA1(3ccb3fdf3d32a75c7fcfefff5db1f3c75054731f) ) - ROM_LOAD16_WORD_SWAP( "orochi-p21.bin", 0x0200000, 0x100000, CRC(6e1c4d8c) SHA1(f514638a599a8a582c5f4df72f6a957bab776b7e) ) - ROM_CONTINUE( 0x100000, 0x100000 ) - ROM_LOAD16_WORD_SWAP( "orochi-p29.bin", 0x0400000, 0x100000, CRC(4c7c0221) SHA1(fdd05927743cb12210b74768155bb3f59bff01b5) ) - ROM_CONTINUE( 0x300000, 0x100000 ) - - NEO_SFIX_128K( "orochi-s1.bin", CRC(4ee2149a) SHA1(180a1a90021031eac1a643b769d9cdeda56518f5) ) - - NEO_BIOS_AUDIO_128K( "orochi-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "orochi-v1.bin", 0x000000, 0x0400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) - ROM_LOAD( "orochi-v2.bin", 0x400000, 0x0400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) - ROM_LOAD( "orochi-v3.bin", 0x800000, 0x0400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - // The C1 and C2 here are reconstructed but very likely to be correct. - ROM_LOAD16_BYTE( "orochi-c1.bin", 0x0000000, 0x1000000, BAD_DUMP CRC(f13e841c) SHA1(e24b3fb5f7e1c1f4752cad382c264f5f93e737a0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "orochi-c2.bin", 0x0000001, 0x1000000, BAD_DUMP CRC(2db1f6d3) SHA1(13d957c04bd69f0db140e4633c39db4a9e44eab8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "orochi-c51.bin", 0x2000000, 0x0200000, CRC(a90340cb) SHA1(97eaa89f0e860e2c591ca3a995fd910d8116347d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "orochi-c61.bin", 0x2000001, 0x0200000, CRC(188e351a) SHA1(ab724250bc07ace0873fc825b798ace934260988) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "orochi-c52.bin", 0x2400000, 0x0200000, CRC(d4eec50a) SHA1(0930cce5346fbbd5c1524f9148d0577cbe634420) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "orochi-c62.bin", 0x2400001, 0x0200000, CRC(031b1ad5) SHA1(d47b3452953b553348be0a55473b863ce2872f6e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kog ) - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "5232-p1.bin", 0x000000, 0x200000, CRC(d2413ec6) SHA1(c0bf409d1e714cba5fdc6f79e4c2aec805316634) ) - ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ - - NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) ) - - NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ - - ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ - ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ - ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ - - ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) ) /* Plane 2,3 */ -ROM_END - -/* Shock Troopers - 2nd Squad bootleg */ - -ROM_START( lans2004 ) - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "lnsq-p1.bin", 0x000000, 0x200000, CRC(b40a879a) SHA1(379f3d44b0bae430b32157fd5f4018d77b243c58) ) - ROM_LOAD16_WORD_SWAP( "lnsq-p21.bin", 0x200000, 0x200000, CRC(ecdb2d42) SHA1(0d930cd369dfbcab7778b144355e5f70874aa324) ) - ROM_LOAD16_WORD_SWAP( "lnsq-p22.bin", 0x400000, 0x200000, CRC(fac5e2e7) SHA1(5cce7226c137da80c969df00e1cda41ef9c5082c) ) - - NEO_SFIX_128K( "lnsq-s1.bin", CRC(39e82897) SHA1(24a8c94dd7e70ecde8f90ea17f75b6b5d065704f) ) - - NEO_BIOS_AUDIO_128K( "246-m1.bin", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) - - ROM_REGION( 0xA00000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "lnsq-v1.bin", 0x000000, 0x400000, CRC(4408ebc3) SHA1(e3f4d8a7e243a8cf48e97d91bbfec7829c0d9404) ) - ROM_LOAD( "lnsq-v2.bin", 0x400000, 0x400000, CRC(3d953975) SHA1(6a4ab02ab3d4416a65343cf16815007cb273f19b) ) - ROM_LOAD( "lnsq-v3.bin", 0x800000, 0x200000, CRC(437d1d8e) SHA1(95e015c21707b53ed7223eaa19f6cdcfb4d94f0c) ) - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "lnsq-c1.bin", 0x0000000, 0x800000, CRC(b83de59f) SHA1(8cc060f9a57ab7d4238543b0bce5f5cd1d271d4f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "lnsq-c2.bin", 0x0000001, 0x800000, CRC(e08969fd) SHA1(c192639d023cdad64a8f53dbcda02aa8cfb4168e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "lnsq-c3.bin", 0x1000000, 0x800000, CRC(013f2cda) SHA1(6261111ce69dc23fbf97241131e5a6a49355d18c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "lnsq-c4.bin", 0x1000001, 0x800000, CRC(d8c3a758) SHA1(d19ca3be06f9fb0cb1933b1eb3da318524c3145d) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "lnsq-c5.bin", 0x2000000, 0x800000, CRC(75500b82) SHA1(06d2afe94ea3eb3c4e523f593b8e709dd7c284a3) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "lnsq-c6.bin", 0x2000001, 0x800000, CRC(670ac13b) SHA1(f448a144caae51b69ea19e1f43940db135d1164a) ) /* Plane 2,3 */ -ROM_END - -/* Garou - Mark of the Wolves bootleg */ - -ROM_START( garoubl ) /* bootleg of garoup */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "garou-p1.bin", 0x000000, 0x100000, CRC(fd446d59) SHA1(e37484673a935b2af76c84cd26977c751c0f8cff) ) - ROM_LOAD16_WORD_SWAP( "garou-p2.bin", 0x100000, 0x400000, CRC(3fb10a84) SHA1(4e4a4f4cd7f0ad2520c938c64c8910e6f8805eaf) ) - - NEO_SFIX_128K( "garou-s1.bin", CRC(df720e33) SHA1(58d05002d4851682bd626241fa7b70f78f6f3bc8) ) - - NEO_BIOS_AUDIO_512K( "garou-m1.bin", CRC(7c51d002) SHA1(01ffba6cbc8da07804f7b21d8c71c39d64a1a4e2) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "garou-v1.bin", 0x000000, 0x400000, CRC(98d736e4) SHA1(3edda9a1d45b0e38a85156d24fc8ff2f0011239b) ) - ROM_LOAD( "garou-v2.bin", 0x400000, 0x400000, CRC(eb43c03f) SHA1(83c9c168b154e60a64f1033004b2d33e218bbb8b) ) - ROM_LOAD( "garou-v3.bin", 0x800000, 0x400000, CRC(10a0f814) SHA1(e86def80d6fb2a38ebc9f3338d22f28c15ce85da) ) - ROM_LOAD( "garou-v4.bin", 0xc00000, 0x400000, CRC(8918fdd3) SHA1(60ea2104a0f993341124728d8fde0e8e937c55ef) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "garou-c1.bin", 0x0000000, 0x1000000, CRC(e2ac83fa) SHA1(186f88a85d80efbb0371bd42cca152b6b59817fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "garou-c2.bin", 0x0000001, 0x1000000, CRC(7c344b24) SHA1(f8af62a917e0ce2bf8ae4f17736fdd84d55d0788) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "garou-c3.bin", 0x2000000, 0x1000000, CRC(d3aec5a6) SHA1(c1a584909a8a1519f676aa49351742b87c18276d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "garou-c4.bin", 0x2000001, 0x1000000, CRC(e02a242d) SHA1(8a73826d14880303a7bea2a903e842c733178aca) ) /* Plane 2,3 */ -ROM_END - -/* Metal Slug 3 bootleg */ - -ROM_START( mslug3b6 ) /* This "Metal Slug 6" is a hack/bootleg of Metal Slug 3, the real Metal Slug 6 is on Atomiswave Hardware */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "299-p1.bin", 0x000000, 0x200000, CRC(5f2fe228) SHA1(747775a2dfc0da87ad2ddd4f57ce5b2522f23fa5) ) - ROM_LOAD16_WORD_SWAP( "299-p2.bin", 0x100000, 0x400000, CRC(193fa835) SHA1(fb1f26db7998b0bb6b1c8b92500c1596ec5dfc71) ) - - NEO_SFIX_128K( "299-s1.bin", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) ) - - NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ - ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ - ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ - ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ - ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ -ROM_END - -/* Nightmare in the Dark bootleg */ - -ROM_START( nitdbl ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "nitd-p1.bin", 0x000000, 0x080000, CRC(1a05bd1b) SHA1(7bbddef842d50b0778711063af695b168a76ff61) ) - - NEO_SFIX_128K( "nitd-s1.bin", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) ) - - /* Bootleg m1 is 128k, data is identical */ - NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) /* TC534000 */ - - ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "nitd-v1.bin", 0x000000, 0x200000, CRC(79008868) SHA1(90bd6aaefd37341297ab1f4ae7246e52facd87d0) ) - ROM_LOAD( "nitd-v2.bin", 0x200000, 0x200000, CRC(728558f9) SHA1(309aa7c933c199b2e540a601b363e7af8744fe00) ) - - ROM_REGION( 0x800000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "nitd-c1.bin", 0x000000, 0x200000, CRC(b4353190) SHA1(90d5352e243a05f5c2be4fa7475667bb56e78016) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "nitd-c2.bin", 0x000001, 0x200000, CRC(6e27511f) SHA1(1fc5cf7786ad0f0bc7b1623acabe605ad04af3c1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "nitd-c3.bin", 0x400000, 0x200000, CRC(472cf075) SHA1(7cdd25019e37a3d127e68a4179c051881df19afa) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "nitd-c4.bin", 0x400001, 0x200000, CRC(4c3926e6) SHA1(7fc54a9886dbef911f7b226e3cd20081c535e989) ) /* Plane 2,3 */ -ROM_END - -/* The King of Fighters 2001 bootlegs */ - -ROM_START( cthd2003 ) /* Protected hack/bootleg of kof2001 Phenixsoft */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) ) - ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) - - NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) - - NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) - - /* sound roms are identical to kof2001 */ - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ct2k3sp ) /* Protected hack/bootleg of kof2001 Phenixsoft */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "5003-p1sp.bin", 0x000000, 0x100000, CRC(ab5c4de0) SHA1(ca9a6bfd4c32d791ecabb34ccbf2cbf0e84f97d5) ) - ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) - - ROM_Y_ZOOM - - ROM_REGION( 0x40000, "cslot1:fixed", 0 ) - ROM_LOAD( "5003-s1sp.bin", 0x00000, 0x40000, CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) - - /* sound roms are identical to kof2001 */ - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ct2k3sa ) /* Protected hack/bootleg of kof2001 Phenixsoft, alternate version */ - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "5003-p1sa.bin", 0x000000, 0x100000, CRC(013a509d) SHA1(c61c9b777e6e062b5f4ad87cdb78e9ca05e9bfb9) ) - ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) - - ROM_Y_ZOOM - - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_LOAD( "5003-s1sa.bin", 0x00000, 0x20000, CRC(4e1f7eae) SHA1(3302ad290804272447ccd2e8edd3ce968f043db1) ) - /* S1 needs redump, correct? */ - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) - - /* Original set has 2x64 mbit sound roms */ - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ - ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ -ROM_END - -/* Metal Slug 4 bootleg */ - -ROM_START( ms4plus ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "ms4-p1p.bin", 0x000000, 0x100000, CRC(806a6e04) SHA1(df503772d607271ea51285154c9fd68e18b143ce) ) - ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) /* mask rom TC5332205 */ - - NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ - ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/* The King of Fighters 2002 bootlegs */ - -ROM_START( kof2002b ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "2k2-p2.bin", 0x100000, 0x400000, CRC(6dbee4df) SHA1(9a9646c81b233b44213c624b898c19f83e9a07f8) ) - - NEO_SFIX_128K( "2k2-s1.bin", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ - ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "2k2-c1.bin", 0x0000000, 0x800000, CRC(f25d3d66) SHA1(eb1da3e171c126d91e851ce141840709a2f62f8a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "2k2-c2.bin", 0x0000001, 0x800000, CRC(e3e66f1d) SHA1(af93e9e134816353d6187a53959c6e418b83ad8d) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "2k2-c3.bin", 0x1000000, 0x800000, CRC(8732fa30) SHA1(81c482b375c04bcfbbc69e3e2a2e9ab567c9bb78) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "2k2-c4.bin", 0x1000001, 0x800000, CRC(0989fd40) SHA1(355d6b2c528319e41ce89952c5cf5bcc47cd6de0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "2k2-c5.bin", 0x2000000, 0x800000, CRC(60635cd2) SHA1(0cf2c54e003edfcdbed64e0570e6b800e7ed3c1b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "2k2-c6.bin", 0x2000001, 0x800000, CRC(bd736824) SHA1(d897fc8248ace145fef57d8aa393eaebc4a1ccc4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "2k2-c7.bin", 0x3000000, 0x800000, CRC(2da8d8cf) SHA1(ab8aa88b8e1baba88e5fc01d0f3cb55503b6c81a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "2k2-c8.bin", 0x3000001, 0x800000, CRC(2048404a) SHA1(d6d0f049ffc196334825328e0472b04e04bf6695) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf2k2pls ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "2k2-p1p.bin", 0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) ) - ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ - - NEO_SFIX_128K( "2k2-s1p.bin", CRC(595e0006) SHA1(ff086bdaa6f40e9ad963e1100a27f44618d684ed) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ - ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kf2k2pla ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "2k2-p1pa.bin", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) ) - ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ - - NEO_SFIX_128K( "2k2-s1pa.bin", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e)) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ - ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kf2k2mp ) - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "kf02m-p1.bin", 0x000000, 0x400000, CRC(ff7c6ec0) SHA1(704c14d671dcb4cfed44d9f978a289cb7dd9d065) ) - ROM_LOAD16_WORD_SWAP( "kf02m-p2.bin", 0x400000, 0x400000, CRC(91584716) SHA1(90da863037cf775957fa154cd42536e221df5740) ) - - NEO_SFIX_128K( "kf02m-s1.bin", CRC(348d6f2c) SHA1(586da8a936ebbb71af324339a4b60ec91dfa0990) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ - ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kf2k2mp2 ) - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "k2k2m2p1.bin", 0x000000, 0x200000, CRC(1016806c) SHA1(a583b45e9c0d6f67b95c52e44444aabe88f68d97) ) - ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x200000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) ) - - NEO_SFIX_128K( "k2k2m2s1.bin", CRC(446e74c5) SHA1(efc2afb26578bad9eb21659c70eb0f827d6d1ef6) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ - ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kof10th ) - ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) // Modified - ROM_LOAD16_WORD_SWAP( "kf10-p1.bin", 0x000000, 0x800000, CRC(b1fd0c43) SHA1(5f842a8a27be2d957fd4140d6431ae47154997bb) ) - - ROM_Y_ZOOM - - ROM_REGION( 0x40000, "cslot1:fixed", 0 ) // modified - ROM_FILL( 0x000000, 0x40000, 0x000000 ) // modified - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) - ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf10thep ) /* this is a hack of kof2002 much like the various korean hacks / bootlegs of games */ - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "5008-p1.bin", 0x000000, 0x200000, CRC(bf5469ba) SHA1(f05236d8fffab5836c0d27becdeeb80def32ee49) ) - ROM_LOAD16_WORD_SWAP( "5008-p2.bin", 0x200000, 0x400000, CRC(a649ec38) SHA1(5c63ed5e5c848940f587c966da4908d04cf1293c) ) - ROM_LOAD16_WORD_SWAP( "5008-p3.bin", 0x600000, 0x200000, CRC(e629e13c) SHA1(6ebe080ce01c51064cb2f4d89315ba98a45ae727) ) - - NEO_SFIX_128K( "5008-s1.bin", CRC(92410064) SHA1(1fb800b46341858207d3b6961a760289fbec7faa) ) - - NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) - //NEO_BIOS_AUDIO_128K( "5004-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) - ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5008-c7b.bin", 0x3800000, 0x400000, CRC(33604ef0) SHA1(57deec23c81d5d673ce5992cef1f2567f1a2148e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5008-c8b.bin", 0x3800001, 0x400000, CRC(51f6a8f8) SHA1(9ef1cdbdd125a2b430346c22b59f36902312905f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf2k5uni ) - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "5006-p2a.bin", 0x000000, 0x400000, CRC(ced883a2) SHA1(f93db4d74ce0a73a3e9631966fee37be22470c89) ) - ROM_LOAD16_WORD_SWAP( "5006-p1.bin", 0x400000, 0x400000, CRC(72c39c46) SHA1(4ba0657de20319c0bc30c7c3bba7d7331d0ce9a7) ) - - NEO_SFIX_128K( "5006-s1.bin", CRC(91f8c544) SHA1(9d16cafb9ca4bc54f31f7fd82b1be06ec8b11c79) ) - - NEO_BIOS_AUDIO_128K( "5006-m1.bin", CRC(9050bfe7) SHA1(765bf3d954f775231b7ef2504bb844cd0b29e3f7) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) - ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof2k4se ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "k2k4s-p2.bin", 0x000000, 0x080000, CRC(21a84084) SHA1(973e8a0bffa0e1f055803f663f81a8e03701802d) ) - ROM_LOAD16_WORD_SWAP( "k2k4s-p3.bin", 0x080000, 0x080000, CRC(febb484e) SHA1(4b1838795b84f22d578ad043641df0a7bf7d9774) ) - ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) ) - - NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) ) - - NEO_BIOS_AUDIO_128K( "k2k4s-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) ) - ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "k2k4s-c7.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) /* Plane 2,3 */ -ROM_END - -/* Matrimelee bootleg */ - -ROM_START( matrimbl ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) ) /* mask rom TC538200 */ - ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) /* mask rom TC5332205 */ - - ROM_Y_ZOOM - - ROM_REGION( 0x80000, "cslot1:fixed", 0 ) - ROM_FILL( 0x000000, 0x80000, 0x000000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEO_BIOS_AUDIO_128K( "mart-m1.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "mart-v1.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) ) - ROM_LOAD16_WORD_SWAP( "mart-v2.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) ) - ROM_LOAD( "mart-v3.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) ) - ROM_LOAD16_WORD_SWAP( "mart-v4.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "mart-c1.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "mart-c2.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "mart-c3.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "mart-c4.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "mart-c5.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "mart-c6.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "mart-c7.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "mart-c8.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) ) /* Plane 2,3 */ -ROM_END - -/* Metal Slug 5 bootleg */ - -ROM_START( ms5plus ) - ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "ms5-p1p.bin", 0x000000, 0x100000, CRC(106b276f) SHA1(0e840df95f3813145e5043573483c7610d2d3e68) ) - ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) ) - ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) ) - - ROM_Y_ZOOM - - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - /* Encrypted */ - NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ - ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -/* Puzzle Bobble / Bust-A-Move (Neo-Geo) bootleg */ - -ROM_START( pbobblenb ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "u7", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) ) - - NEO_SFIX_128K( "us1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) - - NEO_BIOS_AUDIO_128K( "um1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) - - ROM_REGION( 0x380000, "cslot1:ymsnd", 0 ) - /* 0x000000-0x1fffff empty */ - ROM_LOAD( "u8", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) - ROM_LOAD( "u9", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) ) - - ROM_REGION( 0x100000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "uc5", 0x000000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "uc6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ -ROM_END - -/* SNK vs. CAPCOM SVC CHAOS bootlegs */ - -ROM_START( svcboot ) - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "svc-p1.bin", 0x000000, 0x800000, CRC(0348f162) SHA1(c313351d68effd92aeb80ed320e4f8c26a3bb53e) ) - - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEOGEO_BIOS - - ROM_REGION( 0x20000, "audiobios", 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) - - ROM_REGION( 0x50000, "cslot1:audiocpu", 0 ) - ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_COPY( "cslot1:audiocpu", 0x000000, 0x10000, 0x10000 ) - - ROM_Y_ZOOM - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) - ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) - ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) - ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( svcplus ) - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "svc-p1p.bin", 0x000000, 0x200000, CRC(a194d842) SHA1(72b7bfa34a97632b1aa003488e074d766a6c2f08) ) - ROM_LOAD16_WORD_SWAP( "svc-p2p.bin", 0x200000, 0x200000, CRC(50c0e2b7) SHA1(97b396415ab0e692e43ddf371091e5a456712f0a) ) - ROM_LOAD16_WORD_SWAP( "svc-p3p.bin", 0x400000, 0x200000, CRC(58cdc293) SHA1(3c4f2418ec513bcc13ed33a727de11dfb98f7525) ) - - NEO_SFIX_128K( "svc-s1p.bin", CRC(73344711) SHA1(04d84c4fe241b9135cd210f8ed8c725f595d11d2) ) - - NEOGEO_BIOS - - ROM_REGION( 0x20000, "audiobios", 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) - - ROM_REGION( 0x50000, "cslot1:audiocpu", 0 ) - ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_COPY( "cslot1:audiocpu", 0x000000, 0x10000, 0x10000 ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) - ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) - ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) - ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( svcplusa ) - ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "svc-p1pl.bin", 0x000000, 0x200000, CRC(16b44144) SHA1(5eab530274b1b6f480a39a86c199da524cddfccc) ) - ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) ) - - ROM_REGION( 0x20000, "cslot1:fixed", 0 ) - ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_REGION( 0x20000, "fixedbios", 0 ) - ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) - - NEOGEO_BIOS - - ROM_REGION( 0x20000, "audiobios", 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) - - ROM_REGION( 0x50000, "cslot1:audiocpu", 0 ) - ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_COPY( "cslot1:audiocpu", 0x000000, 0x10000, 0x10000 ) - - ROM_Y_ZOOM - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) - ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) - ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) - ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( svcsplus ) - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "svc-p1sp.bin", 0x000000, 0x400000, CRC(2601902f) SHA1(202348a13c6480f7de37a3ee983823838822fc98) ) - ROM_LOAD16_WORD_SWAP( "svc-p2sp.bin", 0x400000, 0x400000, CRC(0ca13305) SHA1(ac8fbca71b754acbcdd11802161a62ae1cf32d88) ) - - NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) ) - - NEOGEO_BIOS - - ROM_REGION( 0x20000, "audiobios", 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) - ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) - - ROM_REGION( 0x50000, "cslot1:audiocpu", 0 ) - ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_COPY( "cslot1:audiocpu", 0x000000, 0x10000, 0x10000 ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) - ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) - ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) - ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ -ROM_END - -/* Samurai Shodown 5 bootleg */ - -ROM_START( samsho5b ) - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "ssv-p2.bin", 0x000000, 0x400000, CRC(5023067f) SHA1(b1d682fa7d158f19664356a919da6572e8cfeee0) ) - ROM_LOAD16_WORD_SWAP( "ssv-p1.bin", 0x400000, 0x400000, CRC(b6cbe386) SHA1(99c2407361116c2b2c5fe72df53e05c5f99163c1) ) - - NEO_SFIX_128K( "ssv-s1.bin", CRC(70f667d0) SHA1(6d7ce62bb77eb215cc22d6c3c677accfd740aa83) ) - - NEO_BIOS_AUDIO_128K( "ssv-m1.bin", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "ssv-v1.bin", 0x000000, 0x400000, CRC(a3609761) SHA1(6dce1dbfd228c739b3716ae1cf08fd7f925d8650) ) - ROM_LOAD( "ssv-v2.bin", 0x400000, 0x400000, CRC(cbd6ebd5) SHA1(00211be3fa32035b0947ac65920ea8acae7bfae2) ) - ROM_LOAD( "ssv-v3.bin", 0x800000, 0x400000, CRC(6f1c2703) SHA1(8015df3d788cb7926ebbcda64a96964fe102ba27) ) - ROM_LOAD( "ssv-v4.bin", 0xc00000, 0x400000, CRC(5020c055) SHA1(bd1e68d1b0a47b0e2b365159e210048f8b22823a) ) - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "ssv-c1.bin", 0x0000000, 0x1000000, CRC(9c564a01) SHA1(99dc8900fd8f56ae04fff72b34ddcaa8abe4c1be) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "ssv-c2.bin", 0x0000001, 0x1000000, CRC(4b73b8da) SHA1(a8b626de74cf57bbd8c222e8e24c953c9e8680f4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "ssv-c3.bin", 0x2000000, 0x1000000, CRC(029f9bb5) SHA1(6296c879aa0bbd22383ceeeac0326805cbc8b4ec) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "ssv-c4.bin", 0x2000001, 0x1000000, CRC(75722430) SHA1(30594c30a167e75463670249df7744755e39e75b) ) /* Plane 2,3 */ -ROM_END - -/* The King of Fighters 2003 bootlegs */ - -ROM_START( kf2k3bl ) - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "2k3-p1.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) ) - ROM_LOAD16_WORD_SWAP( "2k3-p2.bin", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) - - NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ - ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kf2k3bla ) - ROM_REGION( 0x700000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "2k3-p1bl.bin", 0x000000, 0x100000, CRC(4ea414dd) SHA1(c242c9709c20a8cde3ad562adbe640a5dd5abcf1) ) - ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) ) - ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) ) - - NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) - - NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ - ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kf2k3pl ) - ROM_REGION( 0x700000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "2k3-p1pl.bin", 0x000000, 0x100000, CRC(07b84112) SHA1(0b085a928a39ff9c0745a58bfa4ce6106b5f474a) ) - ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) ) - ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) ) - - NEO_SFIX_128K( "2k3-s1pl.bin", CRC(ad548a36) SHA1(7483dbe2d74a1bd1b4dc501e99e48a683416d08e) ) - - NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ - ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - -ROM_START( kf2k3upl ) - ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "2k3-p1up.bin", 0x000000, 0x800000, CRC(87294c01) SHA1(21420415a6b2ba1b43ecc1934270dc085d6bd7d9) ) - - NEO_SFIX_128K( "2k3-s1up.bin", CRC(e5708c0c) SHA1(5649446d3b0b1bd138b5a8b40b96a6d0f892f4d8) ) - - NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) - - ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) - /* Encrypted */ - ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ - ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ - - ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ - ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ -ROM_END - - - /* Unlicensed Prototypes */ - -ROM_START( diggerma ) /* Unlicensed Prototype, no official game ID # */ - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "dig-p1.bin", 0x000000, 0x080000, CRC(eda433d7) SHA1(abb14c66777ab0fe4ac76a402e253a49df7178d8) ) - - NEO_SFIX_128K( "dig-s1.bin", CRC(9b3168f0) SHA1(9be8c625686a1482f7399e5a856cfe2fef25ec52) ) - - NEO_BIOS_AUDIO_128K( "dig-m1.bin", CRC(e777a234) SHA1(9f3974ac07859337bc0203f903c40ae3f60dc1fb) ) - - ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "dig-v1.bin", 0x000000, 0x080000, CRC(ee15bda4) SHA1(fe2206728e6efd02d6302869a98b196eb19a17df) ) - - ROM_REGION( 0x100000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "dig-c1.bin", 0x000000, 0x080000, CRC(3db0a4ed) SHA1(6214faa883d97ea05809b6af7e0c85a236a18a28) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "dig-c2.bin", 0x000001, 0x080000, CRC(3e632161) SHA1(83711c4286fb1d9f3f91414ac6e5fed36618033e) ) /* Plane 2,3 */ -ROM_END - -// MVS cart -ROM_START( lasthope ) - ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) - ROM_LOAD16_WORD_SWAP( "ngdt-300-p1.bin", 0x000000, 0x100000, CRC(3776a88f) SHA1(ea8b669da06d7c6b5ff7fa97a195f56a9253a7a1) ) - - NEO_SFIX_64K( "ngdt-300-s1.bin", CRC(0c0ff9e6) SHA1(c87d1ea8731ac1e63ab960b8182dd1043bcc10bb) ) - - NEO_BIOS_AUDIO_128K( "ngdt-300-m1.bin", CRC(113c870f) SHA1(854425eb4be0d7fa088a6c3bf6078fdd011707f5) ) - - ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) - ROM_LOAD( "ngdt-300-v1.bin", 0x000000, 0x200000, CRC(b765bafe) SHA1(b2048c44089bf250c8dcfabb27c7981e9ee5002a) ) - ROM_LOAD( "ngdt-300-v2.bin", 0x200000, 0x200000, CRC(9fd0d559) SHA1(09e70d5e1c6e172a33f48feb3e442515c34a8f3d) ) - ROM_LOAD( "ngdt-300-v3.bin", 0x400000, 0x200000, CRC(6d5107e2) SHA1(4ba74836e3d0421a28af47d3d8341ac16af1d7d7) ) - - ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) - ROM_LOAD16_BYTE( "ngdt-300-c1.bin", 0x000000, 0x400000, CRC(53ef41b5) SHA1(a8f1fe546403b609e12f0df211c05d7ac479d98d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "ngdt-300-c2.bin", 0x000001, 0x400000, CRC(f9b15ab3) SHA1(d8ff2f43686bfc8c2f7ead3ef445e51c15dfbf16) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "ngdt-300-c3.bin", 0x800000, 0x400000, CRC(50cc21cf) SHA1(0350aaef480c5fa12e68e540a4c974dbf5870add) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "ngdt-300-c4.bin", 0x800001, 0x400000, CRC(8486ad9e) SHA1(19a2a73c825687e0cb9fd62bde00db91b5409529)) /* Plane 2,3 */ -ROM_END - - -/************************************* - * - * Title catalog - * (source: http://neogeomuseum.snkplaymore.co.jp/english/catalogue/index.php) - * - ************************************* - - In 2010, SNK Playmore, the successor of SNK, released a title catalogue which lists the released - games (MVS/AES/CD) including their release dates in Japan. It is not 100% complete. - The included title catalogue is the english one. - - Game Title Genre Publisher Date Released (in Japan) - ================================================================================================================================= - NAM-1975 3D Action SNK MVS Cartridge:1990/04/26 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/09/09 - MAHJONG KYORETSUDEN Mahjong SNK MVS Cartridge:1990/04/26 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/09/09 - MAGICIAN LORD Action ADK MVS Cartridge:1990/04/26 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/10/31 - BASEBALL STARS PROFESSIONAL Sports SNK MVS Cartridge:1990/04/26 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1995/04/21 - TOP PLAYER'S GOLF Sports SNK MVS Cartridge:1990/05/23 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/09/09 - NINJA COMBAT Action ADK MVS Cartridge:1990/07/24 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/10/31 - RIDING HERO 3D Racing SNK MVS Cartridge:1990/07/24 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1995/05/26 - THE SUPER SPY 3D Action SNK MVS Cartridge:1990/10/08 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/09/09 - CYBER-LIP Action SNK MVS Cartridge:1990/11/07 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1995/04/21 - PUZZLED Puzzle SNK MVS Cartridge:1990/11/20 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/09/09 - LEAGUE BOWLING Sports SNK MVS Cartridge:1990/12/10 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/09/09 - GHOST PILOTS Shooter SNK MVS Cartridge:1991/01/25 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1995/03/17 - SENGOKU Action SNK MVS Cartridge:1991/02/12 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1995/03/17 - KING OF THE MONSTERS Fighting SNK MVS Cartridge:1991/02/25 - NEOGEO ROM-cart:1991/07/01 - BLUE'S JOURNEY Action ADK MVS Cartridge:1991/03/14 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/10/31 - ALPHA MISSION II Shooter SNK MVS Cartridge:1991/03/25 - NEOGEO ROM-cart:1991/07/01 - NEOGEO CD:1994/09/09 - BURNING FIGHT Action SNK MVS Cartridge:1991/05/20 - NEOGEO ROM-cart:1991/08/09 - NEOGEO CD:1994/09/09 - MINNASAN NO OKAGESAMA DESU Table Monolith MVS Cartridge:1991/07/25 - NEOGEO ROM-cart:1991/07/21 - CROSSED SWORDS Action ADK MVS Cartridge:1991/07/25 - NEOGEO ROM-cart:1991/10/01 - NEOGEO CD:1994/10/31 - LEGEND OF SUCCESS JOE Action Wave MVS Cartridge:1991/07 - NEOGEO ROM-cart:1991/08/30 - QUIZ DAISUSA SEN: THE LAST COUNT DOWN Quiz SNK MVS Cartridge:1991/07 - NEOGEO ROM-cart:1991/08/30 - SUPER BASEBALL 2020 Sports SNK MVS Cartridge:1991/09/20 - NEOGEO ROM-cart:1991/10/25 - NEOGEO CD:1995/02/25 - ROBO ARMY Action SNK MVS Cartridge:1991/10/30 - NEOGEO ROM-cart:1991/12/20 - NEOGEO CD:1995/04/21 - THRASH RALLY Racing ADK MVS Cartridge:1991/11/08 - NEOGEO ROM-cart:1991/12/20 - NEOGEO CD:1994/10/31 - EIGHT MAN Action SNK NEOGEO ROM-cart:1991/11/20 - FATAL FURY Fighting SNK MVS Cartridge:1991/11/25 - NEOGEO ROM-cart:1991/12/20 - NEOGEO CD:1994/09/09 - BAKATONO-SAMA MAHJONG MAN'YUKI Mahjong Monolith MVS Cartridge:1991/11 - NEOGEO ROM-cart:1991/12/13 - THRASH RALLY Racing ADK NEOGEO ROM-cart:1991/12/20 - FOOTBALL FRENZY Sports SNK MVS Cartridge:1992/01/31 - NEOGEO ROM-cart:1992/02/21 - NEOGEO CD:1994/09/09 - SOCCER BRAWL Sports SNK MVS Cartridge:1992/02/14 - NEOGEO ROM-cart:1992/03/13 - NEOGEO CD:1995/03/31 - MUTATION NATION Action SNK MVS Cartridge:1992/03/16 - NEOGEO ROM-cart:1992/04/17 - NEOGEO CD:1995/02/25 - LAST RESORT Shooter SNK MVS Cartridge:1992/03/23 - NEOGEO ROM-cart:1992/04/24 - NEOGEO CD:1994/09/09 - QUIZ MEITANTEI NEO & GEO: QUIZ DAISOUSASEN PART 2 Quiz SNK MVS Cartridge:1992/03 - NEOGEO ROM-cart:1991/04/24 - BASEBALL STARS 2 Sports SNK MVS Cartridge:1992/04/15 - NEOGEO ROM-cart:1992/04/28 - NEOGEO CD:1994/09/09 - NINJA COMMANDO Shooter ADK MVS Cartridge:1992/04/30 - NEOGEO ROM-cart:1992/05/29 - NEOGEO CD:1994/10/31 - KING OF THE MONSTERS 2 Fighting SNK MVS Cartridge:1992/05/25 - NEOGEO ROM-cart:1992/06/19 - NEOGEO CD:1994/09/09 - ANDRO DUNOS Shooter Visco MVS Cartridge:1992/06/15 - NEOGEO ROM-cart:1992/07/17 - WORLD HEROES Fighting ADK MVS Cartridge:1992/07/28 - NEOGEO ROM-cart:1992/09/11 - NEOGEO CD:1995/03/17 - ART OF FIGHTING Fighting SNK MVS Cartridge:1992/09/24 - NEOGEO ROM-cart:1992/12/11 - NEOGEO CD:1994/09/09 - VIEWPOINT Shooter Sammy MVS Cartridge:1992/11/20 - NEOGEO ROM-cart:1992/12/11 - NEOGEO CD:1995/02/25 - FATAL FURY 2 Fighting SNK MVS Cartridge:1992/12/10 - NEOGEO ROM-cart:1993/03/05 - NEOGEO CD:1994/09/09 - SUPER SIDEKICKS Sports SNK MVS Cartridge:1992/12/14 - NEOGEO ROM-cart:1993/02/19 - NEOGEO CD:1995/03/31 - SENGOKU 2 Action SNK MVS Cartridge:1993/02/18 - NEOGEO ROM-cart:1993/04/09 - NEOGEO CD:1995/03/17 - 3 COUNT BOUT Fighting SNK MVS Cartridge:1993/03/25 - NEOGEO ROM-cart:1993/04/23 - NEOGEO CD:1995/04/21 - WORLD HEROES 2 Fighting ADK MVS Cartridge:1993/04/26 - NEOGEO ROM-cart:1993/06/04 - NEOGEO CD:1995/04/14 - SAMURAI SHODOWN Fighting SNK MVS Cartridge:1993/07/07 - NEOGEO ROM-cart:1993/08/11 - NEOGEO CD:1994/09/09 - FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1993/09/16 - NEOGEO ROM-cart:1993/12/22 - NEOGEO CD:1994/09/09 - SPINMASTER Sideview Action Data East MVS Cartridge:1993/12/16 - NEOGEO ROM-cart:1994/02/18 - ART OF FIGHTING 2 Fighting SNK MVS Cartridge:1994/02/03 - NEOGEO ROM-cart:1994/03/11 - NEOGEO CD:1994/09/09 - WINDJAMMERS Sports Data East MVS Cartridge:1994/02/17 - NEOGEO ROM-cart:1994/04/08 - NEOGEO CD:1995/01/20 - KARNOV'S REVENGE Fighting Data East MVS Cartridge:1994/03/17 - NEOGEO ROM-cart:1994/04/28 - NEOGEO CD:1994/12/22 - SUPER SIDEKICKS 2 Sports SNK MVS Cartridge:1994/04/19 - NEOGEO ROM-cart:1994/05/27 - NEOGEO CD:1994/09/09 - WORLD HEROES 2 JET Fighting ADK MVS Cartridge:1994/04/26 - NEOGEO ROM-cart:1994/06/10 - NEOGEO CD:1994/11/11 - TOP HUNTER Action SNK MVS Cartridge:1994/05/18 - NEOGEO ROM-cart:1994/06/24 - NEOGEO CD:1994/09/29 - GURURIN Puzzle Face MVS Cartridge:1994/05/25 - FIGHT FEVER Fighting VICCOM MVS Cartridge:1994/06/28 - JANSHIN DENSETSU: QUEST OF JONGMASTER Mahjong Aicom MVS Cartridge:1994/06/29 - NEOGEO CD:1995/03/31 - AERO FIGHTERS 2 Topview Shooter Video System MVS Cartridge:1994/07/18 - NEOGEO ROM-cart:1994/08/26 - NEOGEO CD:1994/09/29 - AGGRESSORS OF DARK KOMBAT Fighting ADK MVS Cartridge:1994/07/26 - NEOGEO ROM-cart:1994/08/26 - NEOGEO CD:1995/01/13 - THE KING OF FIGHTERS '94 Fighting SNK MVS Cartridge:1994/08/25 - NEOGEO ROM-cart:1994/10/01 - NEOGEO CD:1994/11/02 - ZED BLADE Shooter NMK MVS Cartridge:1994/09/13 - POWER SPIKES II Sports Video System MVS Cartridge:1994/10/19 - NEOGEO CD:1995/03/18 - SAMURAI SHODOWN II Fighting SNK MVS Cartridge:1994/10/28 - NEOGEO ROM-cart:1994/12/02 - NEOGEO CD:1994/12/15 - STREET HOOP Sports Data East MVS Cartridge:1994/12/08 - NEOGEO ROM-cart:1994/12/09 - NEOGEO CD:1995/01/20 - PUZZLE BOBBLE Puzzle TAITO MVS Cartridge:1994/12/21 - NEOGEO CD:1995/05/02 - SUPER VOLLEY '94 Sports TAITO MVS Cartridge:1994 - BOMBERMAN: PANIC BOMBER Puzzle Eighting MVS Cartridge:1995/01/18 - GALAXY FIGHT: UNIVERSAL WARRIORS Fighting Sunsoft MVS Cartridge:1995/01/24 - NEOGEO ROM-cart:1995/02/25 - NEOGEO CD:1995/04/21 - QUIZ KING OF FIGHTERS Quiz Saurus MVS Cartridge:1995/02/01 - NEOGEO ROM-cart:1995/03/10 - NEOGEO CD:1995/04/07 - DOUBLE DRAGON Fighting Technos MVS Cartridge:1995/03/03 - NEOGEO ROM-cart:1995/03/31 - NEOGEO CD:1995/06/02 - SUPER SIDEKICKS 3 Sports SNK MVS Cartridge:1995/03/07 - NEOGEO ROM-cart:1995/04/07 - NEOGEO CD:1995/06/23 - FATAL FURY 3 Fighting SNK MVS Cartridge:1995/03/27 - NEOGEO ROM-cart:1995/04/21 - NEOGEO CD:1995/04/28 - SAVAGE REIGN Fighting SNK MVS Cartridge:1995/04/25 - NEOGEO ROM-cart:1995/03/10 - NEOGEO CD:1995/06/16 - CROSSED SWORDS II Action ADK NEOGEO CD:1995/05/02 - WORLD HEROES PERFECT Fighting ADK MVS Cartridge:1995/05/25 - NEOGEO ROM-cart:1995/06/30 - NEOGEO CD:1995/07/21 - FAR EAST OF EDEN: KABUKI KLASH Fighting Hudson Soft MVS Cartridge:1995/06/20 - NEOGEO ROM-cart:1995/07/28 - NEOGEO CD:1995/11/24 - THE KING OF FIGHTERS '95 Fighting SNK MVS Cartridge:1995/07/25 - NEOGEO ROM-cart:1995/09/01 - NEOGEO CD:1995/09/29 - IDOL MAHJONG FINAL ROMANCE 2 Mahjong Video System NEOGEO CD:1995/08/25 - PULSTAR Sidevi. Shooter Aicom MVS Cartridge:1995/08/28 - NEOGEO ROM-cart:1995/09/29 - NEOGEO CD:1995/10/27 - VOLTAGE FIGHTER GOWCAIZER Fighting Technos MVS Cartridge:1995/09/18 - NEOGEO ROM-cart:1995/10/20 - NEOGEO CD:1995/11/24 - STAKES WINNER Action Saurus MVS Cartridge:1995/09/27 - NEOGEO ROM-cart:1995/10/27 - NEOGEO CD:1996/03/22 - SHOGI NO TATSUJIN - MASTER OF SHOUGI Japanese chess ADK MVS Cartridge:1995/09/28 - NEOGEO ROM-cart:1995/10/13 - NEOGEO CD:1995/10/20 - AERO FIGHTERS 3 Topview Action Video System MVS Cartridge:1995/10/12 - NEOGEO ROM-cart:1995/11/17 - NEOGEO CD:1995/12/08 - ADK WORLD Variety ADK NEOGEO CD:1995/11/10 - SAMURAI SHODOWN III Fighting SNK MVS Cartridge:1995/11/15 - NEOGEO ROM-cart:1995/12/01 - NEOGEO CD:1995/12/29 - CHIBI MARUKO-CHAN DELUXE QUIZ Variety Takara MVS Cartridge:1995/11/27 - NEOGEO ROM-cart:1996/01/26 - PUZZLE DE PON! Puzzle Visco MVS Cartridge:1995/11/28 - REAL BOUT FATAL FURY Fighting SNK MVS Cartridge:1995/12/21 - NEOGEO ROM-cart:1996/01/26 - NEOGEO CD:1996/02/23 - NEO-GEO CD SPECIAL Variety SNK NEOGEO CD:1995/12/22 - NEO TURF MASTERS Sports Nazca MVS Cartridge:1996/01/29 - NEOGEO ROM-cart:1996/03/01 - NEOGEO CD:1996/05/03 - ART OF FIGHTING 3 Fighting SNK MVS Cartridge:1996/03/12 - NEOGEO ROM-cart:1996/04/26 - NEOGEO CD:1996/06/14 - MAGICAL DROP II Puzzle Data East MVS Cartridge:1996/03/21 - NEOGEO ROM-cart:1996/04/19 - NEOGEO CD:1996/05/24 - OSHIDASHI JIN TRICK Puzzle ADK NEOGEO CD:1996/03/22 - NEO DRIFT OUT Racing Visco MVS Cartridge:1996/03/28 - NEOGEO CD:1996/07/26 - METAL SLUG Action Nazca MVS Cartridge:1996/04/19 - NEOGEO ROM-cart:1996/05/24 - NEOGEO CD:1996/07/05 - OVER TOP Racing ADK MVS Cartridge:1996/04/26 - NEOGEO ROM-cart:1996/06/07 - NEOGEO CD:1996/07/26 - NINJA MASTER'S Fighting ADK MVS Cartridge:1996/05/27 - NEOGEO ROM-cart:1996/06/28 - NEOGEO CD:1996/09/27 - RAGNAGARD Fighting Saurus MVS Cartridge:1996/06/13 - NEOGEO ROM-cart:1996/07/26 - NEOGEO CD:1996/08/23 - FUTSAL Sports Saurus NEOGEO CD:1996/07/19 - THE KING OF FIGHTERS '96 Fighting SNK MVS Cartridge:1996/07/30 - NEOGEO ROM-cart:1996/09/27 - NEOGEO CD:1996/10/25 - KIZUNA ENCOUNTER SUPER TAG BATTLE Fighting SNK MVS Cartridge:1996/09/20 - NEOGEO ROM-cart:1996/11/08 - CHOUTETSU BURIKINGA Shooter Saurus NEOGEO CD:1996/09/20 - STAKES WINNER 2 Real Jockey Act Saurus MVS Cartridge:1996/09/24 - NEOGEO ROM-cart:1996/12/13 - THE ULTIMATE 11 Sports SNK MVS Cartridge:1996/10/16 - NEOGEO ROM-cart:1996/12/20 - SAMURAI SHODOWN IV Fighting SNK MVS Cartridge:1996/10/25 - NEOGEO ROM-cart:1996/11/29 - NEOGEO CD:1996/12/27 - WAKU WAKU 7 Fighting Sunsoft MVS Cartridge:1996/11/21 - NEOGEO ROM-cart:1996/12/27 - TWINKLE STAR SPRITES Shooter ADK MVS Cartridge:1996/11/25 - NEOGEO ROM-cart:1997/01/31 - NEOGEO CD:1997/02/21 - BREAKERS Fighting Visco MVS Cartridge:1996/12/17 - NEOGEO ROM-cart:1997/03/21 - NEOGEO CD:1997/04/25 - MONEY IDOL EXCHANGER Puzzle Face MVS Cartridge:1997/01/15 - Real Bout FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1997/01/28 - NEOGEO ROM-cart:1997/02/28 - NEOGEO CD:1997/03/03 - THE KING OF FIGHTERS '96 NEOGEO COLLECTION Variety SNK NEOGEO CD:1997/02/14 - MAGICAL DROP III Puzzle Data East MVS Cartridge:1997/02/25 - NEOGEO ROM-cart:1997/04/25 - NEO BOMBERMAN Action Hudson Soft MVS Cartridge:1997/05/01 - NEO MR.DO! Action Visco MVS Cartridge:1997/06/26 - SHINSETSU SAMURAI SHODOWN BUSHIDO RETSUDEN Role-playing SNK NEOGEO CD:1997/06/27 - THE KING OF FIGHTERS '97 Fighting SNK MVS Cartridge:1997/07/28 - NEOGEO ROM-cart:1997/09/25 - NEOGEO CD:1997/10/30 - UCCHAN NANCHAN NO HONO NO CHALLENGER ULTRA DENRYU IRAIRABOU Action Saurus MVS Cartridge:1997/08/25 - SHOCK TROOPERS Shooter Saurus MVS Cartridge:1997/11/11 - THE LAST BLADE Fighting SNK MVS Cartridge:1997/12/05 - NEOGEO ROM-cart:1998/01/29 - NEOGEO CD:1998/03/26 - BLAZING STAR Shooter Yumekobo MVS Cartridge:1998/01/19 - NEOGEO ROM-cart:1998/02/26 - METAL SLUG 2 Action SNK MVS Cartridge:1998/02/23 - NEOGEO ROM-cart:1998/04/02 - NEOGEO CD:1998/06/25 - REAL BOUT FATAL FURY 2 Fighting SNK MVS Cartridge:1998/03/20 - NEOGEO ROM-cart:1998/04/29 - NEOGEO CD:1998/07/23 - NEOGEO CUP '98 Sports SNK MVS Cartridge:1998/05/28 - NEOGEO ROM-cart:1998/07/30 - BREAKERS REVENGE Fighting Visco MVS Cartridge:1998/07/03 - NEOGEO ROM-cart: - THE KING OF FIGHTERS '98 Fighting SNK MVS Cartridge:1998/07/23 - NEOGEO ROM-cart:1998/09/23 - NEOGEO CD:1998/12/23 - SHOCK TROOPERS 2nd Squad Action Shooter Saurus MVS Cartridge:1998/11/06 - NEOGEO ROM-cart:1999/06/24 - THE LAST BLADE 2 Fighting SNK MVS Cartridge:1998/11/25 - NEOGEO ROM-cart:1999/01/28 - NEOGEO CD:1999/02/27 - FLIP SHOT Action Visco MVS Cartridge:1998/12/08 - METAL SLUG X Action SNK MVS Cartridge:1999/03/19 - NEOGEO ROM-cart:1999/05/27 - CAPTAIN TOMADAY Shooter Visco MVS Cartridge:1999/05/27 - THE KING OF FIGHTERS '99 Fighting SNK MVS Cartridge:1999/07/22 - NEOGEO ROM-cart:1999/09/23 - NEOGEO CD:1999/12/02 - PREHISTORIC ISLE 2 Shooter Yumekobo MVS Cartridge:1999/09/27 - GAROU: MARK OF THE WOLVES Fighting SNK MVS Cartridge:1999/11/26 - NEOGEO ROM-cart:2000/02/25 - STRIKERS 1945 PLUS Shooter Psikyo MVS Cartridge:1999/12/24 - METAL SLUG 3 Action Shooter SNK MVS Cartridge:2000/03/23 - NEOGEO ROM-cart:2000/06/01 - THE KING OF FIGHTERS 2000 Fighting SNK MVS Cartridge:2000/07/26 - NEOGEO ROM-cart:2000/12/21 - NIGHTMARE IN THE DARK Horror Action Gavaking MVS Cartridge:2001 - ZUPAPA! Comical Action Video System MVS Cartridge:2001 - SENGOKU 3 Action SNK PLAYMORE MVS Cartridge:2001/07/18 - NEOGEO ROM-cart:2001/10/25 - THE KING OF FIGHTERS 2001 Fighting SNK PLAYMORE MVS Cartridge:2001/11/15 - NEOGEO ROM-cart:2002/03/14 - METAL SLUG 4 Action Shooter SNK PLAYMORE MVS Cartridge:2002/03/27 - NEOGEO ROM-cart:2002/06/13 - RAGE OF THE DRAGONS Fighting Evoga MVS Cartridge:2002/06/06 - NEOGEO ROM-cart:2002/09/26 - THE KING OF FIGHTERS 2002 Fighting SNK PLAYMORE MVS Cartridge:2002/10/10 - NEOGEO ROM-cart:2002/12/19 - POWER INSTINCT MATRIMELEE Fighting ATLUS/NOISE FA. MVS Cartridge:2003/03/20 - NEOGEO ROM-cart:2003/05/29 - SNK VS. CAPCOM: SVC CHAOS Fighting SNK PLAYMORE MV-0:2003/07/24 - NEOGEO ROM-cart:2003/11/13 - SAMURAI SHODOWN V Fighting SNK P/Yuki Ent MVS Cartridge:2003/10/10 - NEOGEO ROM-cart:2003/12/11 - METAL SLUG 5 Action Shooter SNK PLAYMORE MV-0:2003/11/14 - NEOGEO ROM-cart:2004/02/19 - THE KING OF FIGHTERS 2003 Fighting SNK PLAYMORE MV-0:2003/12/12 - NEOGEO ROM-cart:2004/03/18 - POCHI & NYAA Puzzle Aiky MVS Cartridge:2003/12/24 - SAMURAI SHODOWN V SPECIAL Fighting SNK P/Yuki Ent MVS Cartridge:2004/04/22 - NEOGEO ROM-cart:2004/07/15 -****************************************************************************/ - -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */ -/* SNK */ -GAME( 1990, nam1975, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "NAM-1975 (NGM-001 ~ NGH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bstars, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGM-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bstarsh, bstars, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGH-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, tpgolf, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (NGM-003 ~ NGH-003)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, mahretsu, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "SNK", "Mahjong Kyo Retsuden (NGM-004 ~ NGH-004)", MACHINE_SUPPORTS_SAVE ) // does not support mahjong panel in MVS mode <- it actually works fine??? -GAME( 1990, ridhero, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (NGM-006 ~ NGH-006)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ridheroh, ridhero, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, alpham2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (NGM-007 ~ NGH-007)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, alpham2p, alpham2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, cyberlip, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (NGM-010)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, superspy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (NGM-011 ~ NGH-011)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mutnat, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (NGM-014 ~ NGH-014)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, kotm, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, kotmh, kotm, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, sengoku, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGM-017 ~ NGH-017)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, sengokuh, sengoku, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGH-017, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningf, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGM-018 ~ NGH-018)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfh, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGH-018, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfpa, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype, ver 23.3, 910326)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, burningfp, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, lbowling, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (NGM-019 ~ NGH-019)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gpilots, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGM-020 ~ NGH-020)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, gpilotsh, gpilots, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGH-020, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, joyjoy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled / Joy Joy Kid (NGM-021 ~ NGH-021)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, quizdais, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (NGM-023 ~ NGH-023)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, quizdaisk, quizdais, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, lresort, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, lresortp, lresort, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, eightman, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (NGM-025 ~ NGH-025)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, legendos, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Legend of Success Joe / Ashita no Joe Densetsu", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bba, 2020bb, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, 2020bbh, 2020bb, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, socbrawl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGM-031)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, socbrawlh, socbrawl, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGH-031)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, fatfury1, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters / Garou Densetsu - Shukumei no Tatakai (NGM-033 ~ NGH-033)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, roboarmy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, roboarma, roboarmy, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army (NGM-032 ~ NGH-032)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fbfrenzy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (NGM-034 ~ NGH-034)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (NGM-039 ~ NGH-039)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2a, kotm2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, kotm2p, kotm2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sengoku2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, bstars2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, quizdai2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042 ~ NGH-042)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, 3countb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout / Fire Suplex (NGM-043 ~ NGH-043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, aof, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken (NGM-044 ~ NGH-044)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, samsho, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGM-045)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, samshoh, samsho, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGH-045)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, tophuntr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGM-046)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, tophuntrh, tophuntr, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGH-046)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, fatfury2, neogeo, fatfur2, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - Arata-naru Tatakai (NGM-047 ~ NGH-047)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, ssideki, neogeo, fatfur2, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, kof94, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '94 (NGM-055 ~ NGH-055)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aof2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aof2a, aof2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, fatfursp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, fatfurspa, fatfursp, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, savagere, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - Kakutou Sousei", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, ssideki2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - Real Fight Football (NGM-061 ~ NGH-061)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, samsho2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru Jigokuhen (NGM-063 ~ NGH-063)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, samsho2k, samsho2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, samsho2ka, samsho2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, fatfury3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - Haruka-naru Tatakai (NGM-069 ~ NGH-069)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, ssideki3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - Eikou e no Michi", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95a, kof95, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084, alt board)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kof95h, kof95, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGH-084)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, samsho3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, samsho3h, samsho3, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, fswords, samsho3, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095 ~ NGH-095)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1a, rbff1, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, rbff1k, rbff1, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, aof3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, aof3k, aof3, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode -GAME( 1996, kof96, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGM-214)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kof96h, kof96, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ssideki4, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kizuna, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, kizuna4p, kizuna, kizuna4p, kizuna4p, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, samsho4, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222 ~ NGH-222)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, samsho4k, samsho4, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, rbffspec, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, rbffspeck, rbffspec, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGM-2320)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97h, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGH-2320)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97k, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97pls, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kof97oro, kof97, kof97oro, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Chongchu Jianghu Plus 2003 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, kog, kof97, kog, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "King of Gladiator (The King of Fighters '97 bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // protected bootleg -GAME( 1997, lastblad, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, lastbladh, lastblad, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, lastsold, lastblad, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, irrmaze, neogeo, irrmaze, irrmaze, neogeo_state, neogeo, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, rbff2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGM-2400)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, rbff2h, rbff2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGH-2400)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, rbff2k, rbff2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode -GAME( 1998, mslug2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410 ~ NGH-2410)", MACHINE_SUPPORTS_SAVE ) -GAME( 2015, mslug2t, mslug2, neobase, neogeo, neogeo_state, neogeo, ROT0, "hack (trap15)", "Metal Slug 2 Turbo (NGM-9410) (hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98, neogeo, kof98, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98a, kof98, kof98, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420, alt board)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98k, kof98, kof98, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98ka, kof98, kof98, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, kof98h, kof98, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGH-2420)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, lastbld2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430 ~ NGH-2430)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, neocup98, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, mslugx, neogeo, mslugx, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug X - Super Vehicle-001 (NGM-2500 ~ NGH-2500)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, kof99, neogeo, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGM-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99h, kof99, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGH-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX, crashes going into attract demo */ -GAME( 1999, kof99e, kof99, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99k, kof99, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, kof99ka, kof99, kof99k, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release, non-encrypted program)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 1999, kof99p, kof99, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, garou, neogeo, garou, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, garouh, garou, garouh, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530 ~ NGH-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 1999, garoup, garou, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, garoubl, garou, garoubl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Bootleg of garoup */ -GAME( 2000, mslug3, neogeo, mslug3, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 2000, mslug3h, mslug3, mslug3h, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2000, mslug3b6, mslug3, mslug3b6, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */ -GAME( 2000, kof2000, neogeo, kof2000, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570 ~ NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ -GAME( 2000, kof2000n, kof2000, kof2000n, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, zupapa, neogeo, zupapa, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Zupapa!" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, sengoku3, neogeo, sengoku3, neogeo, neogeo_state, neogeo, ROT0, "Noise Factory / SNK", "Sengoku 3 / Sengoku Densho 2001" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, kof2001, neogeo, kof2001, neogeo, neogeo_state, neogeo, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGM-262?)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, kof2001h, kof2001, kof2001, neogeo, neogeo_state, neogeo, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGH-2621)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2003, cthd2003, kof2001, cthd2k3, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ -GAME( 2003, ct2k3sp, kof2001, ct2k3sp, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ -GAME( 2003, ct2k3sa, kof2001, ct2k3sa, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2001 */ -GAME( 2002, kof2002, neogeo, kof2002, neogeo, neogeo_state, neogeo, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (NGM-2650 ~ NGH-2650)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kof2002b, kof2002, kof2002b, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, kf2k2pls, kof2002, kf2k2pls, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 1)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2pla, kof2002, kf2k2pls, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2mp, kof2002, kf2k2mp, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kf2k2mp2, kof2002, kf2k2mp2, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2002, kof10th, kof2002, kof10th, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright -GAME( 2005, kf10thep, kof2002, kf10thep, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright -GAME( 2004, kf2k5uni, kof2002, kf2k5uni, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright -GAME( 2004, kof2k4se, kof2002, kof2k4se, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2002 */ -GAME( 2003, mslug5, neogeo, mslug5, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "Metal Slug 5 (NGM-2680)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, mslug5h, mslug5, mslug5, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", MACHINE_SUPPORTS_SAVE ) /* Also found in later MVS carts */ -GAME( 2003, ms5plus, mslug5, ms5plus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svc, neogeo, svc, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690 ~ NGH-2690)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcboot, svc, svcboot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcplus, svc, svcplus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcplusa, svc, svcplusa, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, svcsplus, svc, svcsplus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5, neogeo, samsho5, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5h, samsho5, samsho5, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, samsho5b, samsho5, samsho5b, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", MACHINE_SUPPORTS_SAVE ) // different program scrambling -GAME( 2003, kof2003, neogeo, kof2003, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, kof2003h, kof2003, kof2003h, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, kf2k3bl, kof2003, kf2k3bl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?) -GAME( 2003, kf2k3bla, kof2003, kf2k3pl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAME( 2003, kf2k3pl, kof2003, kf2k3pl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAME( 2003, kf2k3upl, kof2003, kf2k3upl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAME( 2004, samsh5sp, neogeo, samsh5sp, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, samsh5sph, samsh5sp, samsh5sp, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 2nd release, less censored)", MACHINE_SUPPORTS_SAVE ) -GAME( 2004, samsh5spho, samsh5sp, samsh5sp, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 1st release, censored)", MACHINE_SUPPORTS_SAVE ) - -/* Alpha Denshi Co. / ADK (changed name in 1993) */ -GAME( 1990, maglord, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGM-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, maglordh, maglord, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGH-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ncombat, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, ncombath, ncombat, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, bjourney, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001 ~ ALH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, crsword, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002 ~ ALH-002)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, trally, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003 ~ ALH-003)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, ncommand, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Commando", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALM-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1h, wh1, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALH-005)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, wh1ha, wh1, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, wh2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK", "World Heroes 2 (ALM-006 ~ ALH-006)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, wh2j, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007 ~ ADH-007)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, aodk, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008 ~ ADH-008)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, whp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes Perfect", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, moshougi, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Shougi No Tatsujin - Master of Shougi", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, overtop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK", "Over Top", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ninjamas, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Ninja Master's - Haoh-ninpo-cho", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, twinspri, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Twinkle Star Sprites", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, zintrckb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Zintrick / Oshidashi Zentrix (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, crswd2bl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg (Razoola)","Crossed Swords 2 (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) - - -/* Aicom (was a part of Sammy) / Yumekobo (changed name in 1996) */ -GAME( 1992, viewpoin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sammy / Aicom", "Viewpoint", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, janshin, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Aicom", "Janshin Densetsu - Quest of Jongmaster", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, pulstar, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Aicom", "Pulstar", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, blazstar, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Blazing Star", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, preisle2, neogeo, preisle2, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Prehistoric Isle 2" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ - -/* Data East Corporation */ -GAME( 1993, spinmast, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, wjammers, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, karnovr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, strhoop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream (DEM-004 ~ DEH-004)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ghostlop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Ghostlop (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, magdrop2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop II", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, magdrop3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop III", MACHINE_SUPPORTS_SAVE ) - -/* Eleven */ -GAME( 2000, nitd, neogeo, nitd, neogeo, neogeo_state, neogeo, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2001, nitdbl, nitd, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Nightmare in the Dark (bootleg)" , MACHINE_SUPPORTS_SAVE ) - -/* Face */ -GAME( 1994, gururin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Face", "Gururin", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, miexchng, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, dragonsh, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Face", "Dragon's Heaven (development board)", MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // same ID code as Voltage Fighter Gowkaizer, developed by ex-Technos staff - -/* Hudson Soft */ -GAME( 1994, panicbom, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Eighting / Hudson", "Panic Bomber", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kabukikl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, neobombe, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Neo Bomberman", MACHINE_SUPPORTS_SAVE ) - -/* Monolith Corp. */ -GAME( 1990, minasan, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minasan no Okagesamadesu! Dai Sugoroku Taikai (MOM-001 ~ MOH-001)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, bakatono, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuuki (MOM-002 ~ MOH-002)", MACHINE_SUPPORTS_SAVE ) - -/* Nazca (later acquired by SNK) */ -GAME( 1996, turfmast, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, mslug, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", MACHINE_SUPPORTS_SAVE ) - -/* NMK */ -GAME( 1994, zedblade, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "NMK", "Zed Blade / Operation Ragnarok", MACHINE_SUPPORTS_SAVE ) - -/* Psikyo */ -GAME( 1999, s1945p, neogeo, s1945p, neogeo, neogeo_state, neogeo, ROT0, "Psikyo", "Strikers 1945 Plus" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ - -/* Saurus */ -GAME( 1995, quizkof, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (SAM-080 ~ SAH-080)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, quizkofk, quizkof, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (Korean release)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, stakwin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ragnagrd, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, pgoal, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ironclad, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Choutetsu Brikin'ger - Iron Clad (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, ironclado, ironclad, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Choutetsu Brikin'ger - Iron Clad (prototype, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, stakwin2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shocktro, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, shocktroa, shocktro, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, shocktr2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers - 2nd Squad", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, lans2004, shocktr2, lans2004, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", MACHINE_SUPPORTS_SAVE ) - -/* Sunsoft */ -GAME( 1995, galaxyfg, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, wakuwak7, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Waku Waku 7", MACHINE_SUPPORTS_SAVE ) - -/* Taito */ -GAME( 1994, pbobblen, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo, NGM-083)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, pbobblenb, pbobblen, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, pbobbl2n, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) -GAME( 2003, pnyaa, neogeo, pnyaa, neogeo, neogeo_state, neogeo, ROT0, "Aiky / Taito", "Pochi and Nyaa", MACHINE_SUPPORTS_SAVE ) - -/* Takara */ -GAME( 1995, marukodq, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", MACHINE_SUPPORTS_SAVE ) - -/* Technos Japan */ -GAME( 1995, doubledr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, gowcaizr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, sdodgeb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", MACHINE_SUPPORTS_SAVE ) - -/* Tecmo */ -GAME( 1996, tws96, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Tecmo", "Tecmo World Soccer '96", MACHINE_SUPPORTS_SAVE ) - -/* Viccom */ -GAME( 1994, fightfev, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, fightfeva, fightfev, neobase, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 2)", MACHINE_SUPPORTS_SAVE ) - -/* Video System Co. */ -GAME( 1994, pspikes2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Power Spikes II (NGM-068)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, sonicwi2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, sonicwi3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, popbounc, neogeo, popbounc, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, froman2b, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Idol Mahjong Final Romance 2 (Neo-Geo, bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) - -/* Visco */ -GAME( 1992, androdun, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (NGM-049 ~ NGH-049)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, puzzledp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon!", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, neomrdo, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Mr. Do!", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, goalx3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Goal! Goal! Goal!", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, neodrift, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Drift Out - New Technology", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, breakers, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers", MACHINE_SUPPORTS_SAVE ) -GAME( 1997, puzzldpr, puzzledp, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, breakrev, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers Revenge", MACHINE_SUPPORTS_SAVE ) -GAME( 1998, flipshot, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Battle Flip Shot", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, ctomaday, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Captain Tomaday", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, ganryu, neogeo, ganryu, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2000, bangbead, neogeo, bangbead, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bead", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, b2b, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bang Busters (2010 NCI release)" , MACHINE_SUPPORTS_SAVE ) - -/* Mega Enterprise */ -GAME( 2002, mslug4, neogeo, mslug4, neogeo, neogeo_state, neogeo, ROT0, "Mega / Playmore", "Metal Slug 4 (NGM-2630)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, mslug4h, mslug4, mslug4, neogeo, neogeo_state, neogeo, ROT0, "Mega / Playmore", "Metal Slug 4 (NGH-2630)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, ms4plus, mslug4, ms4plus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) - -/* Evoga */ -GAME( 2002, rotd, neogeo, rotd, neogeo, neogeo_state, neogeo, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGM-2640?)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, rotdh, rotd, rotd, neogeo, neogeo_state, neogeo, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGH-2640?)", MACHINE_SUPPORTS_SAVE ) - -/* Atlus */ -GAME( 2002, matrim, neogeo, matrim, neogeo, neogeo_state, neogeo, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660 ~ NGH-2660)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, matrimbl, matrim, matrimbl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", MACHINE_SUPPORTS_SAVE ) - -/***** Unlicensed commercial releases *****/ - -/* BrezzaSoft */ -GAME( 2001, jockeygp, neogeo, jockeygp, jockeygp, neogeo_state, neogeo, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, jockeygpa, jockeygp, jockeygp, jockeygp, neogeo_state, neogeo, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, vliner, neogeo, vliner, vliner, neogeo_state, neogeo, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, vlinero, vliner, vliner, vliner, neogeo_state, neogeo, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 2)", MACHINE_SUPPORTS_SAVE ) - -/* Kyle Hodgetts */ -GAME( 2000, diggerma, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", MACHINE_SUPPORTS_SAVE ) - -/* Vektorlogic */ -GAME( 2004, sbp, neogeo, sbp, neogeo, neogeo_state, neogeo, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING ) - -/* NG:DEV.TEAM */ -GAME( 2005, lasthope, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope (bootleg AES to MVS conversion, no coin support)", MACHINE_SUPPORTS_SAVE ) // wasn't actually released on MVS but bootleg carts have been sold, this doesn't accept coins, runs like a console game -// Last Hope Pink Bullets (c)2008 - MVS/AES -// Fast Striker (c)2010 - MVS/AES -// Fast Striker 1.5 (c)2010 - MVS/AES -// GunLord (c)2012 - MVS/AES -// Neo XYX (c)2013 - MVS/AES -// Razion (c)2014 - MVS/AES? -// Kraut Buster (c)2016 - MVS/AES - -/* N.C.I - LE CORTEX */ -// Treasure of the Caribbean (c)2011 - AES only (no credits system if ran on an MVS, Freeplay) - -/* NEOBITZ */ -// Knight's Chance (c)2014 - MVS/AES - diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp index d0129e8374c..1151c1ab23b 100644 --- a/src/mame/drivers/neogeo.cpp +++ b/src/mame/drivers/neogeo.cpp @@ -2045,5 +2045,9102 @@ CONS( 1990, neogeo, 0, 0, mvs, neogeo_6slot, neogeo_state, neoge CONS( 1990, aes, 0, 0, aes, aes, aes_state, 0, "SNK", "Neo-Geo AES", MACHINE_SUPPORTS_SAVE ) -// Include standalone drivers for the single games -#include "neodriv.hxx" + + +// non-configurable slot (to be used for non-softlist sets, until we introduce some 'template' concept) +// a single cart in slot 1, with pre-defined cart type +#define NEOGEO_CONFIG_ONE_FIXED_CARTSLOT(_default) \ + MCFG_NEOGEO_CARTRIDGE_ADD("cslot1", neogeo_cart, _default) \ + MCFG_SET_IMAGE_LOADABLE(false) + + +// machine config for one-game fixed config, loaded without using softlists + +static MACHINE_CONFIG_DERIVED( neobase, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") +MACHINE_CONFIG_END + +// used by fatfury2 & ssideki +static MACHINE_CONFIG_DERIVED( fatfur2, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_fatfur2") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kizuna4p, neogeo_arcade ) + MCFG_DEVICE_REMOVE("edge") + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true) + + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof97oro, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kof97oro") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kog, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kog") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( irrmaze, neogeo_arcade ) + MCFG_DEVICE_REMOVE("edge") + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true) + + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof98, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_kof98") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mslugx, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_mslugx") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof99, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof99") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof99k, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_kof99k") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( garou, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garou") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( garouh, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garouh") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( garoubl, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_garoubl") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mslug3, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_mslug3") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mslug3h, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_mslug3h") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mslug3b6, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_mslug3b6") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof2000, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof2k") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof2000n, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2000n") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( zupapa, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_zupapa") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sengoku3, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_sengoku3") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof2001, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2001") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( cthd2k3, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_cthd2k3") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( ct2k3sp, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sp") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( ct2k3sa, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sa") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof2002, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kof2k2") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof2002b, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2b") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kf2k2pls, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kf2k2p") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kf2k2mp, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kf2k2mp2, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp2") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof10th, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10th") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kf10thep, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10thep") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kf2k5uni, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k5uni") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof2k4se, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k4se") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mslug5, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_mslug5") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( ms5plus, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ms5plus") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( svc, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_svc") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( svcboot, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcboot") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( svcplus, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplus") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( svcplusa, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplusa") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( svcsplus, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcsplus") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( samsho5, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_samsh5") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( samsho5b, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_samsho5b") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof2003, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kof2003h, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3h") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kf2k3bl, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3bl") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kf2k3pl, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3pl") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( kf2k3upl, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3upl") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( samsh5sp, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_sams5s") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( neogeo_mj, neogeo_arcade ) + //no joystick panel + MCFG_DEVICE_REMOVE("edge") + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "", true) + + //P1 mahjong controller + MCFG_DEVICE_REMOVE("ctrl1") + MCFG_DEVICE_REMOVE("ctrl2") + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "mahjong", true) + MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true) + + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( preisle2, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_preisle2") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( nitd, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_nitd") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( s1945p, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_s1945p") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( lans2004, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_lans2004") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( pnyaa, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_pnyaa") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( popbounc, neogeo_arcade ) + MCFG_DEVICE_REMOVE("edge") + MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "dial", true) + + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( ganryu, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_ganryu") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( bangbead, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_bangbead") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( mslug4, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_mslug4") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( ms4plus, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_ms4p") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( rotd, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_rotd") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( matrim, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_matrim") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( matrimbl, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_matrimbl") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( jockeygp, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_jockeygp") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( vliner, neogeo_arcade ) + // input handlers are installed at DRIVER_INIT... + MCFG_DEVICE_REMOVE("edge") + MCFG_DEVICE_REMOVE("ctrl1") + MCFG_DEVICE_REMOVE("ctrl2") + + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_vliner") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( sbp, neogeo_arcade ) + NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_sbp") +MACHINE_CONFIG_END + + + +/************************************* + * + * Official sets + * + ************************************* + + About supported sets: + ===================== + + MVS carts (arcade) were released before the AES carts (home) + The actual codepath taken depends entirely on the BIOS rom, not the roms in the cartridge, which (with + a few exceptions) support both codepaths. + + The initial AES releases are therefore later revisions of the game, often with bug fixes over the + initial MVS releases. It isn't uncommon for later production runs and bootlegs to use these newer sets, + so all of them are supported in MAME. + + Likewise, because the MVS carts were released first (and were produced in higher numbers and generally + have a lower cost) it's not uncommon for AES units to operate with converted MVS carts, so, with the + exception of the sets that specifically lock out the AES mode* these sets are all equally suitable + for MESS. + * nitd, kof2001 (initial release has no AES code), and a number of the hacked bootlegs. + + The 'MVS ONLY RELEASE' tagged sets were not officially released for the AES (home) system. + Information about this can be found at 'The NeoGeo Master List' (unofficial) - http://www.neo-geo.com + and the official NeoGeo museum - http://neogeomuseum.snkplaymore.co.jp/english/index.php + Several unofficial 'conversions' of these sets can be found across the internet. + For completeness sake: Some of these have sets have been released for the CD system. + + + M1 (sound driver) rom information: + ================================== + . Many 'M1' roms contain mirrored data (64k mirrored or 128k mirrored). + . Found on several early sets (ID 0001 ~ 0045) and on the last sets (ID 0267 ~ 0272). + . This caused some confusion and incorrect rom sizes. + . Minimum 'M1' size is 1mbit, maximum size 4mbit. + . The remaining 64k 'M1' are marked BAD_DUMP. + + + S1 (text layer) rom information: + ================================ + . All 'S1' roms found on prom are 1mbit. + . The remainig 64k 'S1' are marked BAD_DUMP. + + + MULTI PLAY MODE: + ================ + The NeoGeo has three games which support MULTI PLAY MODE (Riding Hero / League Bowling / Trash Rally). + This allows you to 'link' 4 games (MVS) / 2 games (AES) using in game 'Multi-Play' option. To establish + a link between the carts you have to connect the carts to each other by a communicator cable. The communicatior + cable is a regular headphone cable with stereo pin jack. It has been reported that you can also 'link' MVS <-> AES. + + All three games use a special PROG board for MULTI PLAY MODE support: + . Riding Hero (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO) + . League Bowling (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO) + . Trash Rally (AES - NEO-AEG PROG42G-COM / NEO-MVS PROG42G-COM) + + A HD6301V1P MCU on the above boards is used for establishing the 'link'. The MCU has a 4kb internal ROM which + is not dumped. + To use the MULTI PLAY MODE on your MVS you have to set the following hardware dips: + HARD DIP SETTING 4 5 6 + CABINET 1: OFF OFF ON + CABINET 2: OFF ON ON + CABINET 3: ON OFF ON + CABINET 4: ON ON ON + + + SPHERO SYMPHONY: + ================ + Several early games have a 'feature' called "sphero symphony". None of the games featuring "sphero symphony" + uses special hardware. It is something sound based, but what exactly it is (specially arragend samples, + FM synthesis etc.) is unknown. The AES and MVS releases share the same sound data and driver. + + The AES game-inserts and manuals have an eye-shaped logo with the following text (not to be found on MVS sets): + sphero + symphony + STEREOPHONIC SOUND + + Experience this "LIVE" 3 dimensional sound coming from all around you. + + Games featuring "sphero symphony": + ID-0006 - Riding Hero + ID-0007 - Alpha Mission II / ASO II - Last Guardian + ID-0009 - Ninja Combat + ID-0010 - Cyber-Lip + ID-0011 - The Super Spy + ID-0014 - Mutation Nation + ID-0017 - Sengoku / Sengoku Denshou + ID-0018 - Burning Fight + ID-0020 - Ghost Pilots + ID-0024 - Last Resort + ID-0031 - Soccer Brawl + ID-0033 - Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai + ID-0034 - Football Frenzy + ID-0037 - Crossed Swords + ID-0038 - Thrash Rally + ID-0039 - King of the Monsters 2 - The Next Thing + ID-0041 - Baseball Stars 2 + ID-0044 - Art of Fighting / Ryuuko no Ken + ID-0047 - Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai + ID-0049 - Andro Dunos + +*/ + + +// Game specific input definitions + +static INPUT_PORTS_START( mjneogeo ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3") + PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) ) + PORT_DIPSETTING( 0x00, "Mahjong Panel" ) +INPUT_PORTS_END + +static INPUT_PORTS_START( kizuna4p ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("DSW") + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Players ) ) PORT_DIPLOCATION("SW:2") + PORT_DIPSETTING( 0x02, "2" ) + PORT_DIPSETTING( 0x00, "4" ) + + PORT_MODIFY("SYSTEM") + PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state, kizuna4p_start_r, nullptr) +INPUT_PORTS_END + +static INPUT_PORTS_START( irrmaze ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("SYSTEM") + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END + +static INPUT_PORTS_START( vliner ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("DSW") + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("View Payout Table/Big") + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Bet/Small") + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Stop/Double Up") + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Start/Collect") + + PORT_MODIFY("SYSTEM") + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */ + + PORT_MODIFY("AUDIO/COIN") + PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("IN5") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Operator Menu") PORT_CODE(KEYCODE_F1) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Clear Credit") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Hopper Out") + PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + /* not sure what any of these bits are */ + PORT_START("IN6") + PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xffc0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( jockeygp ) + PORT_INCLUDE( neogeo ) + + PORT_MODIFY("SYSTEM") + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ +INPUT_PORTS_END + + +/**************************************** + ID-0001 + . NGM-001 + NEO-MVS PROG-NAM / NEO-MVS CHA-32 + . NGH-001 + NEO-AEG PROG-NAM / NEO-AEG CHA-32 +****************************************/ + +ROM_START( nam1975 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "001-p1.p1", 0x000000, 0x080000, CRC(cc9fc951) SHA1(92f4e6ddeeb825077d92dbb70b50afea985f15c0) ) /* MB834200 */ + + NEO_SFIX_128K( "001-s1.s1", CRC(7988ba51) SHA1(bc2f661f381b06b34ac2fa215dd5689d3bf84832) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "001-m1.m1", CRC(ba874463) SHA1(a83514f4b20301f84a98699900e2593f1c1b8846) ) /* MB832000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) ) /* MB834200 */ + // AES has different label, data is the same: 001-v1.v1 + + ROM_REGION( 0x180000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) /* MB834200 */ + // AES has different label, data is the same: 001-v2.v21 + ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) ) /* MB834000 */ + ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) ) /* MB834000 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0002 + . NGM-002 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-002 + NEO-AEG PROG-4A / NEO-AEG CHA-32 +****************************************/ + +ROM_START( bstars ) /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "002-pg.p1", 0x000000, 0x080000, CRC(c100b5f5) SHA1(4cea9f29ad67288c3eccfa4cf961ee9782e49165) ) /* MB834200 */ + + NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) ) /* MB832000 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) /* MB834000 */ + ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) /* MB834000 */ + ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) /* MB834000 */ + ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) /* MB834000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) /* MB834000 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +ROM_START( bstarsh ) /* AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "002-p1.p1", 0x000000, 0x080000, CRC(3bc7790e) SHA1(50b2fffb1278151bb4849fbe1f8cb23916019815) ) /* MB834200 */ + + NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) ) /* MB832000 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) /* MB834000 */ + ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) /* MB834000 */ + ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) /* MB834000 */ + ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) /* MB834000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) /* MB834000 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0003 + . NGM-003 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-003 + NEO-AEG PROG-4B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( tpgolf ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "003-p1.p1", 0x000000, 0x080000, CRC(f75549ba) SHA1(3f7bdf5e2964e921fe1dd87c51a79a1a501fc73f) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "003-p2.p2", 0x080000, 0x080000, CRC(b7809a8f) SHA1(1604c889592c9610668bff296de48a0d6906156d) ) /* TC534200 */ + + NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "003-m1.m1", CRC(4cc545e6) SHA1(8e014b8cab3e5b3995756a4ea52ce49c36866377) ) /* TC531001 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) ) /* TC534000 */ + // AES has different label, data is the same (also found on MVS): 003-v1.v11 + + ROM_REGION( 0x200000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "003-v21.v21", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) ) /* TC534000 */ + // AES has different label, data is the same (also found on MVS): 003-v2.v21 + ROM_LOAD( "003-v22.v22", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) ) /* TC534000 */ + ROM_LOAD( "003-v23.v23", 0x100000, 0x080000, CRC(30f53e54) SHA1(22461f88a56d272b78dbc23204c0c6816200532b) ) /* TC534000 */ + ROM_LOAD( "003-v24.v24", 0x180000, 0x080000, CRC(5ba0f501) SHA1(ca02937a611a2c50c9e4b54f8fd4eaea09259894) ) /* TC534000 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "003-c1.c1", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c2.c2", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c3.c3", 0x100000, 0x80000, CRC(8ce3e8da) SHA1(bc6c49b27d498f75a0d1a8c4d0cca75e140b9efc) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c4.c4", 0x100001, 0x80000, CRC(29725969) SHA1(f1407da84919c2b3fe0e8f1fca65934b147c86c7) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c5.c5", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c6.c6", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c7.c7", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "003-c8.c8", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0004 + . NGM-004 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-004 + NEO-AEG PROG B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( mahretsu ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "004-p1.p1", 0x000000, 0x080000, CRC(fc6f53db) SHA1(64a62ca4c8fb68954e06121399c9402278bd0467) ) /* TC534200 */ + + NEO_SFIX_128K( "004-s1.s1", CRC(2bd05a06) SHA1(876deadd4645373d82a503154eeddf18f440d743) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "004-m1.m1", CRC(c71fbb3b) SHA1(59c58665b53da61352359d191a0569de5dd1f4b3) ) /* TC531001 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "004-v11.v11", 0x000000, 0x080000, CRC(b2fb2153) SHA1(36e0cc8927b11105de40188af46f6cf532794c10) ) /* CXK384001 */ + ROM_LOAD( "004-v12.v12", 0x080000, 0x080000, CRC(8503317b) SHA1(ab22f1aba1e977ab234a4f1d73dc6ed789dbeb85) ) /* CXK384001 */ + + ROM_REGION( 0x180000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "004-v21.v21", 0x000000, 0x080000, CRC(4999fb27) SHA1(2d4926a220ea21bdd5e816bb16f985fff089500a) ) /* CXK384001 */ + ROM_LOAD( "004-v22.v22", 0x080000, 0x080000, CRC(776fa2a2) SHA1(e7d5a362ab7806b7b009700a435c815a20e8ec68) ) /* CXK384001 */ + ROM_LOAD( "004-v23.v23", 0x100000, 0x080000, CRC(b3e7eeea) SHA1(4d1e97f380702a3a06e7f954b4caddd9c4119d8f) ) /* CXK384001 */ + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "004-c1.c1", 0x000000, 0x80000, CRC(f1ae16bc) SHA1(df68feed4dcba1e1566032b01ebb7b478a1792bf) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "004-c2.c2", 0x000001, 0x80000, CRC(bdc13520) SHA1(2bc4c996d019a4c539f6c3188ef18089e54b7efa) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "004-c3.c3", 0x100000, 0x80000, CRC(9c571a37) SHA1(21388aeb92bb8e15a55a063701ca9df79e292127) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "004-c4.c4", 0x100001, 0x80000, CRC(7e81cb29) SHA1(5036f04df30cf6903bd1a8cc06ff6f015c24a74b) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0005 + . NGM-005 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-005 + NEO-AEG PROG-4B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( maglord ) /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "005-pg1.p1", 0x000000, 0x080000, CRC(bd0a492d) SHA1(d043d3710cf2b0d2b3798008e65e4c7c3ead1af3) ) /* MB834200 */ + + NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) ) /* MB832000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) /* MB834000 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) /* MB834000 */ + ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) /* MB834000 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +ROM_START( maglordh ) /* AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "005-p1.p1", 0x000000, 0x080000, CRC(599043c5) SHA1(43f234b0f89b72b4c6050c40d9daa5c4e96b94ce) ) /* MB834200 */ + + NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) ) /* MB832000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) /* MB834000 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) /* MB834000 */ + ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) /* MB834000 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) ) /* Plane 2,3 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0006 + . NGM-006 + NEO-MVS PROG-HERO / NEO-MVS CHA-32 + . NGH-006 + NEO-AEG PROG-HERO / NEO-AEG CHA-32 +****************************************/ + +ROM_START( ridhero ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "006-p1.p1", 0x000000, 0x080000, CRC(d4aaf597) SHA1(34d35b71adb5bd06f4f1b50ffd9c58ab9c440a84) ) /* MB834200 */ + + ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ + ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally) + + NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) ) /* MB832000 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) /* MB834000 */ + ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) /* MB834000 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) /* MB834000 */ + ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) /* MB834000 */ + ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) /* MB834000 */ + ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) /* MB834000 */ + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) ) /* Plane 0,1 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) ) /* Plane 2,3 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) ) /* Plane 0,1 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) ) /* Plane 2,3 */ /* CXK384000 */ +ROM_END + +ROM_START( ridheroh ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "006-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(52445646) SHA1(647bb31f2f68453c1366cb6e2e867e37d1df7a54) ) + /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */ + + ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ + ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally) + + NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) ) /* MB832000 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) /* MB834000 */ + ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) /* MB834000 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) /* MB834000 */ + ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) /* MB834000 */ + ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) /* MB834000 */ + ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) /* MB834000 */ + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) ) /* Plane 0,1 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) ) /* Plane 2,3 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) ) /* Plane 0,1 */ /* CXK384000 */ + ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) ) /* Plane 2,3 */ /* CXK384000 */ +ROM_END + +/**************************************** + ID-0007 + . NGM-007 + NEO-MVS PROG42G / NEO-MVS CHA42G + . NGH-007 + NEO-AEG PROG42G / NEO-AEG CHA42G + NEO-AEG PROG42G / NEO-AEG CHA-8M + . prototype + NEO-AEG PROG-EP / NEO-AEG CHA-EP +****************************************/ + +ROM_START( alpham2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "007-p1.p1", 0x000000, 0x080000, CRC(5b266f47) SHA1(8afbf995989f47ad93fea1f31a884afc7228b53a) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "007-p2.p2", 0x080000, 0x020000, CRC(eb9c1044) SHA1(65d3416dcd96663bc4e7cefe90ecb7c1eafb2dda) ) /* TC531024 */ + + NEO_SFIX_128K( "007-s1.s1", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "007-m1.m1", CRC(28dfe2cd) SHA1(1a1a99fb917c6c8db591e3be695ce03f843ee1df) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "007-v1.v1", 0x000000, 0x100000, CRC(cd5db931) SHA1(b59f9f2df29f49470312a6cd20f5669b6aaf51ff) ) /* TC538200 */ + ROM_LOAD( "007-v2.v2", 0x100000, 0x100000, CRC(63e9b574) SHA1(1ade4cd0b15c84dd4a0fb7f7abf0885eef3a3f71) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "007-c1.c1", 0x000000, 0x100000, CRC(8fba8ff3) SHA1(1a682292e99eb91b0edb9771c44bc5e762867e98) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "007-c2.c2", 0x000001, 0x100000, CRC(4dad2945) SHA1(ac85a146276537fed124bda892bb93ff549f1d93) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "007-c3.c3", 0x200000, 0x080000, CRC(68c2994e) SHA1(4f8dfc6e5188942e03b853a2c9f0ea6138dec791) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "007-c4.c4", 0x200001, 0x080000, CRC(7d588349) SHA1(a5ed789d7bbc25be5c5b2d99883b64d379c103a2) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( alpham2p ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION*/ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_BYTE( "007_p1_faac.p1", 0x000001, 0x080000, CRC(c763e52a) SHA1(b24acbac255c5ee1a2e92e77cdde6620a24081cf) ) + ROM_LOAD16_BYTE( "007_p2_1813.p2", 0x000000, 0x080000, CRC(7a0b435c) SHA1(40e6f42a92001d9f4e51898dd7489da143b6b74b) ) + + NEO_SFIX_128K( "007_s1_36f1.s1", CRC(efc9ae2e) SHA1(a594826b0082fe5a13191673e8d9aa42517230f5) ) + + NEO_BIOS_AUDIO_128K( "007_m1_9384.m1", CRC(5976b464) SHA1(ec824567ecc3579f6d86c9d9385710cbaeef16a3) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "007_v11_1bb4.v11", 0x000000, 0x080000, CRC(18eaa9e1) SHA1(85c94d8660f8a32e4ca8e015f0bd704208482d68) ) + ROM_LOAD( "007_v12_c8e8.v12", 0x080000, 0x080000, CRC(2487d495) SHA1(49af3c4dc6a38c5158d3641fd8f9a40041b42aa6) ) + ROM_LOAD( "007_v13_09fa.v13", 0x100000, 0x080000, CRC(25e60f25) SHA1(d06b0df872372de38fcf90187195070ac5f8c651) ) + ROM_LOAD( "007_v21_28c2.v21", 0x180000, 0x080000, CRC(ac44b75a) SHA1(7399a05cd4e2c7ecde4a7323d3e189255afe5fc2) ) + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_COPY( "cslot1:ymsnd", 0x180000, 0x00000, 0x80000 ) + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "007_c1_210e.c11", 0x000000, 0x80000, CRC(24841639) SHA1(fcc2a349121dad86ffefc44b9f0e8ba616ce0d30) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "007_c2_29ae.c12", 0x000002, 0x80000, CRC(912763ab) SHA1(cedf26d7d85ad140399ee62813c71f35e65498d6) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "007_c3_c873.c13", 0x000001, 0x80000, CRC(0743bde2) SHA1(0d13ad6333909ad3cf10f9ac360f9abf191318de) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "007_c4_2462.c14", 0x000003, 0x80000, CRC(61240212) SHA1(dee36f6604adaeb96e0d761a7256241c066b1cd2) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "007_c5_5f16.c15", 0x200000, 0x80000, CRC(cf9f4c53) SHA1(f979c85f83d9f76e554c2617f85f6d4efca6799c) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "007_c6_8abc.c16", 0x200002, 0x80000, CRC(3d903b19) SHA1(001a8c762336b855fe1df69fe2e605d30a3f00a1) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "007_c7_c983.c17", 0x200001, 0x80000, CRC(e41e3875) SHA1(730aceb8a66cb33d0194b096568f053ad7dc000a) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "007_c8_b599.c18", 0x200003, 0x80000, CRC(4483e2cf) SHA1(47c3364f5c36ae9dc3a49fe37ca60bcee0e73314) ) /* Plane 3 */ +ROM_END + +/**************************************** + ID-0008 + Sun Shine (prototype) 1990 SNK / Alpha +****************************************/ + +/**************************************** + ID-0009 + . NGM-009 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-009 + NEO-AEG PROG-4A / NEO-AEG CHA-32 +****************************************/ + +ROM_START( ncombat ) /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "009-p1.p1", 0x000000, 0x080000, CRC(b45fcfbf) SHA1(3872147dda2d1ba905d35f4571065d87b1958b4a) ) /* TC534200 */ + + NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) /* TC531001 */ + + ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) /* TC534000 */ + ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) /* TC534000 */ + ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) /* TC534000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) /* TC534000 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( ncombath ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "009-pg1.p1", 0x000000, 0x080000, CRC(8e9f0add) SHA1(d0b908a86a58f2537eea73a431038f1cd74a5a2f) ) /* TC534200 */ + + NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) /* TC531001 */ + + ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) /* TC534000 */ + ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) /* TC534000 */ + ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) /* TC534000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) /* TC534000 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0010 + . NGM-010 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-010 + NEO-AEG PROG-B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( cyberlip ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "010-p1.p1", 0x000000, 0x080000, CRC(69a6b42d) SHA1(6e7cb089de83f1d22cc4a87db5b1a94bf76fb1e8) ) /* TC534200 */ + + NEO_SFIX_128K( "010-s1.s1", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "010-m1.m1", CRC(8be3a078) SHA1(054ec6a061fcc88df1ecbb0a01611a31f37a7709) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "010-v11.v11", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) ) /* TC534000 */ + ROM_LOAD( "010-v12.v12", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) ) /* TC534000 */ + ROM_LOAD( "010-v13.v13", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) ) /* TC534000 */ + ROM_LOAD( "010-v14.v14", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) ) /* TC534000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "010-v21.v21", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) ) /* TC534000 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "010-c1.c1", 0x000000, 0x80000, CRC(8bba5113) SHA1(70f0926409ab265da4b8632500d1d32d63cf77cf) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c2.c2", 0x000001, 0x80000, CRC(cbf66432) SHA1(cc529640c475d08330e116ea9c5e5a28b7cd13db) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c3.c3", 0x100000, 0x80000, CRC(e4f86efc) SHA1(fa60863d8a7ed4f21d30f91eb1936d0b8329db7a) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c4.c4", 0x100001, 0x80000, CRC(f7be4674) SHA1(b4ad0432d4bb6d5a98e27015910343c964b73ed4) ) /* Plane 2,3 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c5.c5", 0x200000, 0x80000, CRC(e8076da0) SHA1(3ec5cc19809dea688041a42b32c13d257576f3da) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "010-c6.c6", 0x200001, 0x80000, CRC(c495c567) SHA1(2f58475fbb5f1adafce027d396fb05dd71e8fb55) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0011 + . NGM-011 + NEO-MVS PROG-8MB / NEO-MVS CHA-8M + . NGH-011 + NEO-AEG PROG-8MB / NEO-AEG CHA-8M +****************************************/ + +ROM_START( superspy ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "011-p1.p1", 0x000000, 0x080000, CRC(c7f944b5) SHA1(da7560e09187c68f1d9f7656218497b4464c56c9) ) /* MB834200 */ + ROM_LOAD16_WORD_SWAP( "sp2.p2", 0x080000, 0x020000, CRC(811a4faf) SHA1(8169dfaf79f52d80ecec402ce1b1ab9cafb7ebdd) ) /* TC531024 */ + + NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "011-m1.m1", CRC(ca661f1b) SHA1(4e3cb57db716ec48487c1b070c3a55a5faf40856) ) /* MB832000 */ + + ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "011-v11.v11", 0x000000, 0x100000, CRC(5c674d5c) SHA1(d7b9beddeb247b584cea9ca6c43ec6869809b673) ) /* MB838000 */ + ROM_LOAD( "011-v12.v12", 0x100000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) /* MB834000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "011-v21.v21", 0x000000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) ) /* MB834000 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "011-c1.c1", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) ) /* Plane 0,1 */ /* MB838200 */ + ROM_LOAD16_BYTE( "011-c2.c2", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) ) /* Plane 2,3 */ /* MB838200 */ + ROM_LOAD16_BYTE( "011-c3.c3", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) ) /* Plane 0,1 */ /* MB838200 */ + ROM_LOAD16_BYTE( "011-c4.c4", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) ) /* Plane 2,3 */ /* MB838200 */ +ROM_END + +/**************************************** + ID-0012 + unknown +****************************************/ + +/**************************************** + ID-0013 + unknown +****************************************/ + +/**************************************** + ID-0014 + . NGM-014 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-014 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( mutnat ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "014-p1.p1", 0x000000, 0x080000, CRC(6f1699c8) SHA1(87206f67a619dede7959230f9ff3701b8b78957a) ) /* CXK384500 */ + + NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "014-m1.m1", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) ) /* CXK381003A */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "014-v1.v1", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) ) /* CXK388000 */ + ROM_LOAD( "014-v2.v2", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) ) /* CXK388000 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "014-c1.c1", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "014-c2.c2", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) ) /* Plane 2,3 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "014-c3.c3", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "014-c4.c4", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) ) /* Plane 2,3 */ /* CXK388000 */ +ROM_END + +/**************************************** + ID-0015 + unknown +****************************************/ + +/**************************************** + ID-0016 + . NGM-016 + NEO-MVS PROG42G / NEO-MVS CHA42G + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-016 + NEO-AEG PROG42G / NEO-AEG CHA42G + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( kotm ) /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "016-p1.p1", 0x000000, 0x080000, CRC(1b818731) SHA1(b98b1b33c0301fd79aac908f6b635dd00d1cb08d) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) /* TC531024 */ + + NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) ) /* TC538200 */ + ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( kotmh ) /* AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "016-hp1.p1",0x000000, 0x080000, CRC(b774621e) SHA1(7684b2e07163aec68cd083ef1d8900f855f6cb42) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) /* TC531024 */ + + NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) ) /* TC538200 */ + ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0017 + . NGM-017 + NEO-MVS PROG42G / NEO-MVS CHA42G + . NGH-017 + NEO-AEG PROG42G / NEO-AEG CHA42G + NEO-AEG PRO42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( sengoku ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "017-p1.p1", 0x000000, 0x080000, CRC(f8a63983) SHA1(7a10ecb2f0fd8315641374c065d2602107b09e72) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) /* TC531024 */ + + NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) /* TC538200 */ + ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( sengokuh ) /* AES VERSION (US) */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "017-hp1.p1", 0x000000, 0x080000, CRC(33eccae0) SHA1(000ccf9a9c73df75eeba3f2c367c3a1a9e0a3a6b) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) /* TC531024 */ + + NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) /* TC538200 */ + ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0018 + . NGM-018 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + also found on (seen several times; CHA and PROG board are 'manually patched up' with wires and resistors) + NEO-MVS PROG42G / NEO-MVS CHA42G + . NGH-018 + NEO-AEG PROG42G / NEO-AEG CHA42G + . prototype + NEO-AEG PROG-EP / NEO-AEG CHA-EP +****************************************/ + +ROM_START( burningf ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "018-p1.p1", 0x000000, 0x080000, CRC(4092c8db) SHA1(df194a4ad2c35e0e18bc053ff9284183444a4666) ) /* HN62434 */ + + NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) /* HN62321 */ + + NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) /* HN62321A */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) /* HN62408 */ + ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) /* HN62408 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) /* Plane 0,1 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) /* Plane 2,3 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) /* Plane 0,1 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) /* Plane 2,3 */ /* HN62408 */ +ROM_END + +ROM_START( burningfh ) /* AES VERSION (US) */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "018-hp1.p1", 0x000000, 0x080000, CRC(ddffcbf4) SHA1(c646c4bbdb4e9b32df76c90f582ccd69fcc9f8e7) ) /* HN62434 */ + + NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) /* HN62321 */ + + NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) /* HN62321A */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) /* HN62408 */ + ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) /* HN62408 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) /* Plane 0,1 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) /* Plane 2,3 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) /* Plane 0,1 */ /* HN62408 */ + ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) /* Plane 2,3 */ /* HN62408 */ +ROM_END + +ROM_START( burningfpa ) /* later prototype - Sx, Vx and Cx data all matches final game, but with different rom arranagement, Px & Mx unique */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_BYTE( "018_p1_1f28.podd", 0x000001, 0x080000, CRC(f7d15752) SHA1(334b7e5c8e9099d39424e72db66846d0b9e534de) ) + ROM_LOAD16_BYTE( "018_p2_3217.peven", 0x000000, 0x080000, CRC(ffae22fb) SHA1(82f2f81fe96b3c6953985964e12e93e79410ab9e) ) + + NEO_SFIX_128K( "018_s1_4491.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) + + NEO_BIOS_AUDIO_128K( "018_m1_d13e.m1", CRC(2b0c0415) SHA1(a5a0d5e3ea2ef77b6f5cd14f2907ab2f1aed76b7) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "018_v11_6c00.v11", 0x000000, 0x080000, CRC(b55b9670) SHA1(b0ff38b2dca1361ad155e90be3674dbea1c0a53c) ) + ROM_LOAD( "018_v12_8146.v12", 0x080000, 0x080000, CRC(a0bcf260) SHA1(5d1f2613cf4a292557f37e6f44a90b20d11ed8cd) ) + ROM_LOAD( "018_v13_b813.v13", 0x100000, 0x080000, CRC(270f4707) SHA1(29e763acc9fd4b94d8b5d0ad917e20d8a66bbe49) ) + ROM_LOAD( "018_v24_22ee.v24", 0x180000, 0x080000, CRC(924e3d69) SHA1(927091f9a098f00eb303f5567f4ee926bcb170e3) ) + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "018_c1_2505.c1", 0x000000, 0x80000, CRC(3a441c6a) SHA1(0347d47a689af67426be42b4c99da101ee01ce11) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "018_c2_3f55.c2", 0x000002, 0x80000, CRC(bb72404b) SHA1(7620fccc50ecacf732bb1382abef42212d369f8c) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "018_c3_a20d.c3", 0x000001, 0x80000, CRC(87bffd2f) SHA1(0f7c835029a3f561861a1a07987dad23a32a899c) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "018_c4_c6e1.c4", 0x000003, 0x80000, CRC(33803163) SHA1(888ba63618a2ca541883a612f0c75ffa96f1c528) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "018_c5_2cd1.c5", 0x200000, 0x80000, CRC(74391952) SHA1(0f7451ff74901e7250214a7604a37add56ad7e1f) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "018_c6_8135.c6", 0x200002, 0x80000, CRC(95e220e6) SHA1(cef4f7c697ab6d20e1b5c85df773d0f1a79e3008) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "018_c7_d009.c7", 0x200001, 0x80000, CRC(41326c0d) SHA1(64bbecb560d2795ae5292776604ea318a9ae53a6) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "018_c8_dc63.c8", 0x200003, 0x80000, CRC(ed3b1f04) SHA1(0cb0d30e294e7ff398d553d0f08befb53ac65269) ) /* Plane 3 */ +ROM_END + +ROM_START( burningfp ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_BYTE( "018_p1_9397.p1", 0x000001, 0x080000, CRC(5b4032e7) SHA1(55df91dad6f484d3d49c28ab5972700bf71a8662) ) + ROM_LOAD16_BYTE( "018_p2_e335.p2", 0x000000, 0x080000, CRC(78762f68) SHA1(12170fc6efe75cb5d32624033d3d341032c97548) ) + + NEO_SFIX_128K( "018_s1_9899.s1", CRC(f3d130e8) SHA1(2fdeb93f4bb2a60d391cac2822be41661b1e1795) ) + + NEO_BIOS_AUDIO_128K( "018_m1_4586.m1", CRC(470dd5d4) SHA1(4291811b4aefe45261a1ae3631b6999fcd74fb3f) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "018_v11_56ac.v11", 0x000000, 0x080000, CRC(dc07ea3c) SHA1(c3e71aaec44ead7ddc581565d16b90030e6db5fd) ) + ROM_LOAD( "018_v12_db95.v12", 0x080000, 0x080000, CRC(f1ae637c) SHA1(02a4c7d4a544350a314ab7b26d8c9d3baa8f5778) ) + ROM_LOAD( "018_v21_98dd.v21", 0x100000, 0x080000, CRC(9f3b4eda) SHA1(7f516923d04daa483b4b99c9babba66505931a34) ) + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_COPY( "cslot1:ymsnd", 0x100000, 0x00000, 0x80000 ) + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "018_c1_ba06.c11", 0x000000, 0x80000, CRC(6569018b) SHA1(25040e0a9c2b72900100a22a2a41de5f6c339d8a) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "018_c2_d534.c12", 0x000002, 0x80000, CRC(6949b501) SHA1(d8ee48837faff6cc849046ee8757b2b94d440303) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "018_c3_9d70.c13", 0x000001, 0x80000, CRC(410f653b) SHA1(ce94667721baa7b2c318fc268e3bb9209671c9f5) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "018_c4_bf9d.c14", 0x000003, 0x80000, CRC(d43bf2a5) SHA1(c27985d8973611d02570f469a0d8cb4f5b63b614) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "018_c5_ac9d.c15", 0x200000, 0x80000, CRC(837d09d3) SHA1(d3b06931fca6123604549599544b04529ef34c53) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "018_c6_d2a5.c16", 0x200002, 0x80000, CRC(5fee51e7) SHA1(835c632fa12a1d5b4104cd80b8f686ac80b314a1) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "018_c7_d568.c17", 0x200001, 0x80000, CRC(0f3f0823) SHA1(ec1d681c1795de43d20f30f85956e2473ec39c95) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "018_c8_d256.c18", 0x200003, 0x80000, CRC(67cc9e34) SHA1(dc72a464c1456a4d2f7b992b416a984fb7885e99) ) /* Plane 3 */ +ROM_END + +/**************************************** + ID-0019 + . NGM-019 + NEO-MVS PROG-HERO / NEO-MVS CHA-32 + . NGH-019 + NEO-AEG PROG-HERO / NEO-AEG CHA-32 +****************************************/ + +ROM_START( lbowling ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "019-p1.p1", 0x000000, 0x080000, CRC(a2de8445) SHA1(893d7ae72b4644123469de143fa35fac1cbcd61e) ) /* TC534200 */ + + ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ + ROM_LOAD( "hd6301v1p.com", 0x0000, 0x1000, NO_DUMP ) + + NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "019-m1.m1", CRC(d568c17d) SHA1(a2e318ed6ad1809c79f3f0853d75e0dd1a2f275c) ) /* TC531001 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) ) /* TC534000 */ + ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) ) /* TC534000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) ) /* TC534000 */ + + ROM_REGION( 0x100000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "019-c1.c1", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "019-c2.c2", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0020 + . NGM-020 + NEO-MVS PROG8M42 / NEO-MVS CHA-8M + . NGH-020 + NEO-AEG PROG8M42 / NEO-AEG CHA-8M +****************************************/ + +ROM_START( gpilots ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "020-p1.p1", 0x000000, 0x080000, CRC(e6f2fe64) SHA1(50ab82517e077727d97668a4df2b9b96d2e78ab6) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) /* TC531024 */ + + NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) /* TC531001 */ + + ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) /* TC538200 */ + ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) /* TC534200 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) /* TC534200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( gpilotsh ) /* AES VERSION (US) */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "020-hp1.p1", 0x000000, 0x080000, CRC(7cdb01ce) SHA1(32cae2ddf5e26fb7e8a09132e600220db82df3b8) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) /* TC531024 */ + + NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) /* TC531001 */ + + ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) /* TC538200 */ + ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) /* TC534200 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) /* TC534200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0021 + . NGM-021 + NEO-MVS PROG-EP / NEO-MVS CHA-32 + . NGH-021 + NEO-AEG PROG B / NEO-AEG CHA-32 +****************************************/ + +ROM_START( joyjoy ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "021-p1.p1", 0x000000, 0x080000, CRC(39c3478f) SHA1(06ebe54c9c4e14c5c31e770013d58b7162359ecc) ) /* MB834200 */ + + NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) /* MB831000 */ + + NEO_BIOS_AUDIO_256K( "021-m1.m1", CRC(5a4be5e8) SHA1(552f025ce0d51c25f42e1a81cf0d08376ca5475d) ) /* MB832000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "021-v11.v11", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) ) /* MB834000 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) /* MB834000 */ + + ROM_REGION( 0x100000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) ) /* Plane 0,1 */ /* MB834200 */ + ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) ) /* Plane 2,3 */ /* MB834200 */ +ROM_END + +/**************************************** + ID-0022 + . ALM-001 + NEO-MVS PROG8M42 / NEO-MVS CHA-8M + . ALH-001 + NEO-AEG PROG 8M42 / NEO-AEG CHA-8M +****************************************/ + +ROM_START( bjourney ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "022-p1.p1", 0x000000, 0x100000, CRC(6a2f6d4a) SHA1(b8ca548e56f1c7abcdce415ba7329e0cf698ee13) ) /* TC538200 */ + + NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) ) /* TC538200 */ + ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0023 + . NGM-023 + NEO-MVS PROG42G / NEO-MVS CHA42G + NEO-MVS PROGTOP / NEO-MVS CHA-256 + Boards used for the Korean release + . NGH-023 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( quizdais ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "023-p1.p1", 0x000000, 0x100000, CRC(c488fda3) SHA1(4cdf2f1837fffd720efef42f81f933bdf2ef1402) ) /* TC538200 */ + + NEO_SFIX_128K( "023-s1.s1", CRC(ac31818a) SHA1(93c8d67a93606a2e02f12ca4cab849dc3f3de286) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "023-m1.m1", CRC(2a2105e0) SHA1(26fc13556fda2dbeb7b5b035abd994e302dc7662) ) /* TC531001 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "023-v1.v1", 0x000000, 0x100000, CRC(a53e5bd3) SHA1(cf115c6478ce155d889e6a5acb962339e08e024b) ) /* TC538200 */ + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "023-c1.c1", 0x000000, 0x100000, CRC(2999535a) SHA1(0deabf771039987b559edc2444eea741bd7ba861) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "023-c2.c2", 0x000001, 0x100000, CRC(876a99e6) SHA1(8d1dcfc0927d7523f8be8203573192406ec654b4) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( quizdaisk ) /* KOREAN VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "123-p1.p1", 0x000000, 0x100000, CRC(a6f35eae) SHA1(edd3fd5ba8eae2231e2b0a6605fa00e5c6de094a) ) + + NEO_SFIX_128K( "123-s1.s1", CRC(53de938a) SHA1(5024fee3b245f8a069d7ecfa6f033b70ed1a5fce) ) + + NEO_BIOS_AUDIO_128K( "123-m1.m1", CRC(d67f53f9) SHA1(73a1bd175ae29dd957a907a046884f8715bd0a34) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "123-v1.v1", 0x000000, 0x200000, CRC(986f4af9) SHA1(9e15d2142ec5e5d076582dc1cecfd724b0924f54) ) + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "123-c1.c1", 0x000000, 0x100000, CRC(e579a606) SHA1(b9430ec157902f0707e5d52e69bd5d93792e7118) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "123-c2.c2", 0x000001, 0x100000, CRC(e182c837) SHA1(a8f7648bf21ebd3efe3a49606b53220815a60d0f) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0024 + . NGM-024 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-024 + + . prototype + NEO-MVS PROG-EP / NEO-MVS CHA-EPG +****************************************/ + +ROM_START( lresort ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "024-p1.p1", 0x000000, 0x080000, CRC(89c4ab97) SHA1(3a1817c427185ea1b44fe52f009c00b0a9007c85) ) /* TC534200 */ + + NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "024-m1.m1", CRC(cec19742) SHA1(ab6c6ba7737e68d2420a0617719c6d4c89039c45) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "024-v1.v1", 0x000000, 0x100000, CRC(efdfa063) SHA1(e4609ecbcc1c820758f229da5145f51285b50555) ) /* TC538200 */ + ROM_LOAD( "024-v2.v2", 0x100000, 0x100000, CRC(3c7997c0) SHA1(8cb7e8e69892b19d318978370dbc510d51b06a69) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "024-c1.c1", 0x000000, 0x100000, CRC(3617c2dc) SHA1(8de2643a618272f8aa1c705363edb007f4a5f5b7) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "024-c2.c2", 0x000001, 0x100000, CRC(3f0a7fd8) SHA1(d0c9c7a9dde9ce175fb243d33ec11fa719d0158c) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "024-c3.c3", 0x200000, 0x080000, CRC(e9f745f8) SHA1(bbe6141da28b0db7bf5cf321d69b7e613e2414d7) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "024-c4.c4", 0x200001, 0x080000, CRC(7382fefb) SHA1(e916dec5bb5462eb9ae9711f08c7388937abb980) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( lresortp ) /* prototype - all roms were hand labeled with CRCs */ /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_BYTE( "024_p1_5937.podd", 0x000001, 0x080000, CRC(8e6008ee) SHA1(6779663118782207156dc9fa9e24e81e30c6391c) ) + ROM_LOAD16_BYTE( "024_p2_8d37.peven", 0x000000, 0x080000, CRC(6d9ee90f) SHA1(ecd42182988092417bc96db8301ea408e47735f2) ) + + NEO_SFIX_128K( "024_s1_22fe.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) + + NEO_BIOS_AUDIO_128K( "024_m1_fc7a.m1", CRC(22122875) SHA1(540c21559163381467679f836cb068adaf526659) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "024_v11_b085.v11", 0x000000, 0x080000, CRC(0722da38) SHA1(66a9b463d5277908b3a01c03de82b3de9118f2cb) ) // 024_v11_b085.bin 024-v1.v1 [1/2] IDENTICAL + ROM_LOAD( "024_v12_d3b7.v12", 0x080000, 0x080000, CRC(670ce3ec) SHA1(9004aa85d4a9b0ecf9cf9357b073ed55a98fdb02) ) // 024_v12_d3b7.bin 024-v1.v1 [2/2] IDENTICAL + ROM_LOAD( "024_v13_a31e.v13", 0x100000, 0x080000, CRC(2e39462b) SHA1(b0a9b1a3377bf0369f3020192505c46ca52927d6) ) // 024_v13_a31e.bin 024-v2.v2 [1/2] IDENTICAL + ROM_LOAD( "024_v24_2f0f.v24", 0x180000, 0x080000, CRC(7944754f) SHA1(d42a46c5127c6c62041ebffb0007af8a24abd360) ) // 024_v24_2f0f.bin 024-v2.v2 [2/2] IDENTICAL + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "024_c1_b764.c1", 0x000000, 0x80000, CRC(677749ec) SHA1(6f94675e037956a380652ab1056e6f1dec605bec) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "024_c2_1951.c2", 0x000002, 0x80000, CRC(104d7b59) SHA1(404e8776ee8df4ca282eb7b747759af8628ddca1) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "024_c3_0f63.c3", 0x000001, 0x80000, CRC(b0965a74) SHA1(e8026dd4f722ccab9c913261d09ab8843ef56a0e) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "024_c4_c5b5.c4", 0x000003, 0x80000, CRC(dcfc3860) SHA1(8443b455ae8de656adab57f3b7e68919f22d3b9d) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "024_c5_dd03.c5", 0x200000, 0x80000, CRC(50322397) SHA1(3308fbe48ad165b9894a52fc3a8d9898bbbc0c0e) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "024_c6_c81a.c6", 0x200002, 0x80000, CRC(c3c93894) SHA1(f23b9d7e2b54d44c96370dde282bdf45cebd9cba) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "024_c7_5edc.c7", 0x200001, 0x80000, CRC(21faf72b) SHA1(00bf257b06180ae6ede57744cea6257b3488d9f0) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "024_c8_0850.c8", 0x200003, 0x80000, CRC(fb57217b) SHA1(607a98da754e8b1dd94a6432b21a36cc38e06a0f) ) /* Plane 3 */ +ROM_END + + +/**************************************** + ID-0025 + . NGM-025 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-025 + NEO-AEG PROG42G / NEO-AEG CHA42G +****************************************/ + +ROM_START( eightman ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "025-p1.p1", 0x000000, 0x080000, CRC(43344cb0) SHA1(29dfd699f35b0a74e20fedd6c9174c289f0ef6e0) ) /* TC574200 */ + + NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "025-m1.m1", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) ) /* TC541000 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "025-v1.v1", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) ) /* TC538200 */ + ROM_LOAD( "025-v2.v2", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "025-c1.c1", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "025-c2.c2", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "025-c3.c3", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "025-c4.c4", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0026 + Fun Fun Brothers (prototype) 1991 Alpha +****************************************/ + +/**************************************** + ID-0027 + . MOM-001 + NEO-MVS PROG-8MB / NEO-MVS CHA-8M + . MOH-001 + NEO-AEG PROG-8MB / NEO-AEG CHA-8M +****************************************/ + +ROM_START( minasan ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "027-p1.p1", 0x000000, 0x080000, CRC(c8381327) SHA1(c8f8be0ba276c6d12ef13d05af3cf83a2b924894) ) /* HN62422PC */ + + NEO_SFIX_128K( "027-s1.s1", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) ) /* HN62321BP */ + + NEO_BIOS_AUDIO_128K( "027-m1.m1", CRC(add5a226) SHA1(99995bef2584abbba16777bac52f55523f7aa97d) ) /* HN62321AP */ + + ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "027-v11.v11", 0x000000, 0x100000, CRC(59ad4459) SHA1(bbb8ba8a8e337dd2946eefda4757e80d0547d54a) ) /* HN62308BPC */ + + ROM_REGION( 0x100000, "cslot1:ymsnd.deltat", 0 ) + ROM_LOAD( "027-v21.v21", 0x000000, 0x100000, CRC(df5b4eeb) SHA1(134f3bcc3bb82e2a5711496af1019f343f9c0f7e) ) /* HN62308BPC */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "027-c1.c1", 0x000000, 0x100000, CRC(d0086f94) SHA1(7d6579530ccb5188f653be69b1df17e47e40e7a6) ) /* Plane 0,1 */ /* HN62408PD */ + ROM_LOAD16_BYTE( "027-c2.c2", 0x000001, 0x100000, CRC(da61f5a6) SHA1(82c5b4e5c5c5e30a3fd1c2e11c6157f39d033c42) ) /* Plane 2,3 */ /* HN62408PD */ + ROM_LOAD16_BYTE( "027-c3.c3", 0x200000, 0x100000, CRC(08df1228) SHA1(288b7ad328c2249f28d17df4dad3584995dca7bf) ) /* Plane 0,1 */ /* HN62408PD */ + ROM_LOAD16_BYTE( "027-c4.c4", 0x200001, 0x100000, CRC(54e87696) SHA1(90816dc86be3983dc57f56ededf7738475c0c61e) ) /* Plane 2,3 */ /* HN62408PD */ +ROM_END + +/**************************************** + ID-0028 + Dunk Star (prototype) 1991 Sammy +****************************************/ + +/**************************************** + ID-0029 + . ??M-029 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . ??H-029 +****************************************/ + +ROM_START( legendos ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "029-p1.p1", 0x000000, 0x080000, CRC(9d563f19) SHA1(9bff7bf9fdcf81a0a6c4ce3e196097d4f05e67b6) ) /* TC534200 */ + + NEO_SFIX_128K( "029-s1.s1", CRC(bcd502f0) SHA1(a3400f52c037aa6a42e59e602cc24fa45fcbc951) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "029-m1.m1", CRC(6f2843f0) SHA1(975fb1598b87a2798fff05e951fca2e2e0329e79) ) /* TC531001 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "029-v1.v1", 0x000000, 0x100000, CRC(85065452) SHA1(7154b7c59b16c32753ac6b5790fb50b51ce30a20) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "029-c1.c1", 0x000000, 0x100000, CRC(2f5ab875) SHA1(3e060973bba41a6c22ff7054104bdc5eee1fa13a) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "029-c2.c2", 0x000001, 0x100000, CRC(318b2711) SHA1(7014110cee98280317e1189f306ca40652b61f6f) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "029-c3.c3", 0x200000, 0x100000, CRC(6bc52cb2) SHA1(14323a4664b7dcbcde82e594168e535d7a921e44) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "029-c4.c4", 0x200001, 0x100000, CRC(37ef298c) SHA1(7a0c4c896dc3e730e06dcadbf00cf354f08a4466) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0030 + . NGM-030 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-030 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 + NEO-AEG PROG42G / NEO-AEG CHA42G +****************************************/ + +ROM_START( 2020bb ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "030-p1.p1", 0x000000, 0x080000, CRC(d396c9cb) SHA1(47ba421d14d05b965a8d44e7475b227a208e5a07) ) /* TC534200 */ + /* also found AES set with p1 label 030-P1 on TC534200 on NEO-AEG PROG42G and m1 label 030-M1 on TC531001 on NEO-AEG CHA42G; other chip labels are the same */ + + NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ + ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( 2020bba ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "030-epr.p1", 0x000000, 0x080000, CRC(c59be3dd) SHA1(4fbd462c1c18e85a252c58b04b54fd3b82b46cb0) ) /* TC574200 */ + /* P1 on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ + ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( 2020bbh ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "030-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(12d048d7) SHA1(ee0d03a565b11ca3bee2d24f62ff46a85ef18d90) ) + /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */ + + NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) /* TC54H1000 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) /* TC538200 */ + ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0031 + . NGM-031 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-031 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( socbrawl ) /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "031-pg1.p1", 0x000000, 0x080000, CRC(17f034a7) SHA1(2e66c7bd93a08efe63c4894494db50bbf58f60e4) ) /* TC534200 */ + + NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) ) /* TC538200 */ + ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( socbrawlh ) /* AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "031-p1.p1", 0x000000, 0x080000, CRC(a2801c24) SHA1(627d76ff0740ca29586f37b268f47fb469822529) ) /* TC534200 */ + + NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) ) /* TC538200 */ + ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0032 + . NGM-032 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-032 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( roboarmy ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "032-p1.p1", 0x000000, 0x080000, CRC(cd11cbd4) SHA1(23163e3da2f07e830a7f4a02aea1cb01a54ccbf3) ) /* TC534200 */ + + NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */ + ROM_LOAD( "032-v2.v2", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "032-c1.c1", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "032-c2.c2", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "032-c3.c3", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "032-c4.c4", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( roboarma ) /* MVS AND AES VERSION*/ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "032-epr.p1", 0x000000, 0x080000, CRC(27c773cb) SHA1(597ca73f142b1129cc7780540bb9cfacd47bc6ce) ) /* D27C4000 */ + /* Found on legitimate Robo Army MVS and AES Carts. Debug code button which check control a sound test has been patched out because in a multislot situation that code could have been enabled + that would stop roboarmy from working, sending it into an infinite loop ; correct chip label unknown */ + + NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */ + ROM_LOAD( "032-v2.v2", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "032-c1.c1", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "032-c2.c2", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "032-c3.c3", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "032-c4.c4", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0033 + . NGM-033 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-033 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( fatfury1 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "033-p1.p1", 0x000000, 0x080000, CRC(47ebdc2f) SHA1(d46786502920fb510f1999db00c5e09fb641c0bd) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "033-p2.p2", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) ) /* TC531024 */ + + NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "033-m1.m1", CRC(5be10ffd) SHA1(90a5e6cbbc58a7883cd2a3a597180d631a466882) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "033-v1.v1", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) ) /* TC538200 */ + ROM_LOAD( "033-v2.v2", 0x100000, 0x100000, CRC(fa2ae47f) SHA1(80d0ba4cd30aab59b6f0db8fa341387bd7388afc) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "033-c1.c1", 0x000000, 0x100000, CRC(74317e54) SHA1(67b9c2814a12603b959612456f59de55f9bf6f57) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "033-c2.c2", 0x000001, 0x100000, CRC(5bb952f3) SHA1(ea964bbcc0408b6ae07cbb5043d003281b1aca15) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "033-c3.c3", 0x200000, 0x100000, CRC(9b714a7c) SHA1(b62bdcede3207d062a89e0a4a9adf706101bb681) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "033-c4.c4", 0x200001, 0x100000, CRC(9397476a) SHA1(a12dbb74020aeb6ebf24ec2abbfba5129cabcb7d) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0034 + . NGM-034 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-034 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( fbfrenzy ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "034-p1.p1", 0x000000, 0x080000, CRC(cdef6b19) SHA1(97482db0dffc6d625fb41fa38449c0a74d741a72) ) /* TC534200 */ + + NEO_SFIX_128K( "034-s1.s1", CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "034-m1.m1", CRC(f41b16b8) SHA1(f3e1cfc4cd2c5baece176f169906aa796367d303) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "034-v1.v1", 0x000000, 0x100000, CRC(50c9d0dd) SHA1(2b3f2875b00e5f307d274128bd73c1521a7d901b) ) /* TC538200 */ + ROM_LOAD( "034-v2.v2", 0x100000, 0x100000, CRC(5aa15686) SHA1(efe47954827a98d539ba719347c5f8aa60e6338b) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "034-c1.c1", 0x000000, 0x100000, CRC(91c56e78) SHA1(2944d49ebfc71239d345209ca7f25993c2cc5a77) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "034-c2.c2", 0x000001, 0x100000, CRC(9743ea2f) SHA1(cf4fccdf10d521d555e92bc24123142393c2b3bb) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "034-c3.c3", 0x200000, 0x080000, CRC(e5aa65f5) SHA1(714356a2cee976ec0f515b1034ce971018e5c02e) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "034-c4.c4", 0x200001, 0x080000, CRC(0eb138cc) SHA1(21d31e1f136c674caa6dd44073281cd07b72ea9b) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0035 + Mystic Wand (prototype) 1991 Alpha +****************************************/ + +/**************************************** + ID-0036 + . MOM-002 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1 + . MOH-002 + NEO-AEG PROG42G / NEO-AEG CHA42G +****************************************/ + +ROM_START( bakatono ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "036-p1.p1", 0x000000, 0x080000, CRC(1c66b6fa) SHA1(6c50cc452971c46c763ae0b2def95792671a1798) ) /* CXK384500 */ + + NEO_SFIX_128K( "036-s1.s1", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "036-m1.m1", CRC(f1385b96) SHA1(e7e3d1484188a115e262511116aaf466b8b1f428) ) /* CXK381003 */ + + ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "036-v1.v1", 0x000000, 0x100000, CRC(1c335dce) SHA1(493c273fa71bf81861a20af4c4eaae159e169f39) ) /* CXK388000 */ + ROM_LOAD( "036-v2.v2", 0x100000, 0x100000, CRC(bbf79342) SHA1(45a4f40e415cdf35c3073851506648c8f7d53958) ) /* CXK388000 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "036-c1.c1", 0x000000, 0x100000, CRC(fe7f1010) SHA1(5b6f5053821f4da8dc3768371e2cd51bb29da963) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "036-c2.c2", 0x000001, 0x100000, CRC(bbf003f5) SHA1(054b2a3327e038836eece652055bb84c115cf8ed) ) /* Plane 2,3 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "036-c3.c3", 0x200000, 0x100000, CRC(9ac0708e) SHA1(8decfe06d73a3dd3c3cf280719978fcf6d559d29) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "036-c4.c4", 0x200001, 0x100000, CRC(f2577d22) SHA1(a37db8055ca4680e244c556dc6df8bdba16c2083) ) /* Plane 2,3 */ /* CXK388000 */ +ROM_END + +/**************************************** + ID-0037 + . ALM-002 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . ALH-002 + NEO-AEG PROG42G / NEO-AEG CHA42G +****************************************/ + +ROM_START( crsword ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "037-p1.p1", 0x000000, 0x080000, CRC(e7f2553c) SHA1(8469ecb900477feed05ae3311fe9515019bbec2a) ) /* TC534200 */ + + NEO_SFIX_128K( "037-s1.s1", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "037-m1.m1", CRC(9504b2c6) SHA1(9ce8e681b9df6eacd0d23a36bad836bd5074233d) ) /* TC531001 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "037-v1.v1", 0x000000, 0x100000, CRC(61fedf65) SHA1(98f31d1e23bf7c1f7844e67f14707a704134042e) ) /* TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "037-c1.c1", 0x000000, 0x100000, CRC(09df6892) SHA1(df2579dcf9c9dc88d461212cb74de106be2983c1) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "037-c2.c2", 0x000001, 0x100000, CRC(ac122a78) SHA1(7bfa4d29b7d7d9443f64d81caeafa74fe05c606e) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "037-c3.c3", 0x200000, 0x100000, CRC(9d7ed1ca) SHA1(2bbd25dc3a3f825d0af79a418f06a23a1bf03cc0) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "037-c4.c4", 0x200001, 0x100000, CRC(4a24395d) SHA1(943f911f40985db901eaef4c28dfcda299fca73e) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0038 + . ALM-003 + NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1 + . ALH-003 + NEO-AEG PROG42G-COM / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( trally ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "038-p1.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "038-p2.p2", 0x080000, 0x080000, CRC(a5193e2f) SHA1(96803480439e90da23cdca70d59ff519ee85beeb) ) /* TC534200 */ + + ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */ + ROM_LOAD( "hd6301v1p.hd6301v1", 0x0000, 0x1000, NO_DUMP ) + + NEO_SFIX_128K( "038-s1.s1", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "038-m1.m1", CRC(0908707e) SHA1(df7489ea6abf84d7f137ba7a8f52a4fd1b088fd7) ) /* TC531001 */ + + ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "038-v1.v1", 0x000000, 0x100000, CRC(5ccd9fd5) SHA1(c3c8c758a320c39e4ceb0b6d9f188ed6d122eec4) ) /* TC538200 */ + ROM_LOAD( "038-v2.v2", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) ) /* TC534200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "038-c1.c1", 0x000000, 0x100000, CRC(c58323d4) SHA1(a6bd277471a4b612d165f8b804f3cb662f499b70) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "038-c2.c2", 0x000001, 0x100000, CRC(bba9c29e) SHA1(b70bbfdfa8c4f9ea76406530e86b16e42498d284) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "038-c3.c3", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "038-c4.c4", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0039 + . NGM-039 + NEO-MVS PROG16 / NEO-MVS CHA42G-1 + . NGH-039 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( kotm2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "039-p1.p1", 0x000000, 0x080000, CRC(b372d54c) SHA1(b70fc6f72e16a66b6e144cc01370548e3398b8b8) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "039-p2.p2", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) ) /* TC534200 */ + + NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) /* TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "039-v2.v2", 0x000000, 0x200000, CRC(86d34b25) SHA1(89bdb614b0c63d678962da52e2f596750d20828c) ) /* TC5316200 */ + ROM_LOAD( "039-v4.v4", 0x200000, 0x100000, CRC(8fa62a0b) SHA1(58ac2fdd73c542eb8178cfc4adfa0e5940183283) ) /* TC538200 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "039-c1.c1", 0x000000, 0x100000, CRC(6d1c4aa9) SHA1(4fbc9d7cb37522ec298eefbe38c75a2d050fbb4a) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "039-c2.c2", 0x000001, 0x100000, CRC(f7b75337) SHA1(4d85f85948c3e6ed38b0b0ccda79de3ce026e2d9) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "039-c3.c3", 0x200000, 0x080000, CRC(bfc4f0b2) SHA1(f4abe2b52882b966412f3b503b8f2c8f49b57968) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "039-c4.c4", 0x200001, 0x080000, CRC(81c9c250) SHA1(e3a34ff69081a8681b5ca895915892dcdccfa7aa) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( kotm2a ) /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "039_p1.p1", 0x000000, 0x080000, CRC(8d186638) SHA1(c3874bbb1bfcb220173afb2e0a2123ffaeb7bd2b) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "039-p2.p2", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) ) /* TC534200 */ + + NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) /* TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "039-v2.v2", 0x000000, 0x200000, CRC(86d34b25) SHA1(89bdb614b0c63d678962da52e2f596750d20828c) ) /* TC5316200 */ + ROM_LOAD( "039-v4.v4", 0x200000, 0x100000, CRC(8fa62a0b) SHA1(58ac2fdd73c542eb8178cfc4adfa0e5940183283) ) /* TC538200 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "039-c1.c1", 0x000000, 0x100000, CRC(6d1c4aa9) SHA1(4fbc9d7cb37522ec298eefbe38c75a2d050fbb4a) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "039-c2.c2", 0x000001, 0x100000, CRC(f7b75337) SHA1(4d85f85948c3e6ed38b0b0ccda79de3ce026e2d9) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "039-c3.c3", 0x200000, 0x080000, CRC(bfc4f0b2) SHA1(f4abe2b52882b966412f3b503b8f2c8f49b57968) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "039-c4.c4", 0x200001, 0x080000, CRC(81c9c250) SHA1(e3a34ff69081a8681b5ca895915892dcdccfa7aa) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +ROM_START( kotm2p ) /* fairly late prototype release, only the code differs from the main set */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_BYTE( "proto_039-p1.p1", 0x000001, 0x080000, CRC(3c1d17e7) SHA1(aeaff465fafa46ded903ed4e8cb8cd05de8dc096) ) + ROM_LOAD16_BYTE( "proto_039-p2.p2", 0x000000, 0x080000, CRC(bc9691f0) SHA1(3854659b952d4f8c2edd5d59858a61ce6d518604) ) + + NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) /* TC531001 */ + + // same data as main set, but prototype board layout + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "proto_039-v1.v1", 0x000000, 0x080000, CRC(dd3566f1) SHA1(f7c2a3747aaab2bc57cdfa33d8bb9fab057b5214) ) + ROM_LOAD( "proto_039-v2.v2", 0x080000, 0x080000, CRC(57f60274) SHA1(7e17740aa05cf7ad4f9084e147600a8eb82c7284) ) + ROM_LOAD( "proto_039-v3.v3", 0x100000, 0x080000, CRC(0f008a07) SHA1(ed243a0449232bbea409308c3fec7e057fcd8501) ) + ROM_LOAD( "proto_039-v4.v4", 0x180000, 0x080000, CRC(1943d0fe) SHA1(47fb716c76ea6b5fe64204ff6d72b7feea10bda9) ) + ROM_LOAD( "proto_039-v5.v5", 0x200000, 0x080000, CRC(13be045b) SHA1(0e3713ae6b164ebae434c0f18c466365b26b9a77) ) + ROM_LOAD( "proto_039-v6.v6", 0x280000, 0x080000, CRC(d1dd3fd6) SHA1(052b92168a76cf3a97c8cacebcc3ebab228726df) ) + + // same data as main set, but prototype board layout + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) // note, ROM_LOAD32_BYTE + ROM_LOAD32_BYTE( "proto_039-c1.c1", 0x000000, 0x100000, CRC(7192a787) SHA1(7bef6ce79c618103485480aee3c6f856968eb51f) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "proto_039-c2.c2", 0x000002, 0x100000, CRC(7157eca1) SHA1(65f36c6a3834775b04076d2c38a6047bffe9a8cf) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "proto_039-c3.c3", 0x000001, 0x100000, CRC(11d75727) SHA1(5a4c7b5ca3f1195e7853b45c5e71c13fe74d16e9) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "proto_039-c4.c4", 0x000003, 0x100000, CRC(7ad48b28) SHA1(27e65d948f08c231107cb1a810e2b06731091fc3) ) /* Plane 3 */ + ROM_LOAD32_BYTE( "proto_039-c5.c5", 0x400000, 0x080000, CRC(5bdaf9ca) SHA1(60620d42ac6cd0e5da019fede2814a2f4171ff3f) ) /* Plane 0 */ + ROM_LOAD32_BYTE( "proto_039-c6.c6", 0x400002, 0x080000, CRC(21d4be8c) SHA1(f1b19d37d52d21584f304b7d37d5c096b58219d6) ) /* Plane 2 */ + ROM_LOAD32_BYTE( "proto_039-c7.c7", 0x400001, 0x080000, CRC(da55fd00) SHA1(52804f955597591fdd1d7478dc340b36d3c08c4a) ) /* Plane 1 */ + ROM_LOAD32_BYTE( "proto_039-c8.c8", 0x400003, 0x080000, CRC(592e9267) SHA1(0d27de59970ccbcaa1d47909ea3d741ffb0d9e07) ) /* Plane 3 */ +ROM_END + +/**************************************** + ID-0040 + . NGM-040 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 + . NGH-040 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( sengoku2 ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "040-p1.p1", 0x000000, 0x100000, CRC(6dde02c2) SHA1(e432e63feb88c71629ec96aa84650dcfe356a551) ) /* TC538200 */ + + NEO_SFIX_128K( "040-s1.s1", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "040-m1.m1", CRC(d4de4bca) SHA1(ecf604d06f01d40b04e285facef66a6ae2d35661) ) /* TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "040-v1.v1", 0x000000, 0x200000, CRC(71cb4b5d) SHA1(56d9aca1d476c19c7d0f707176a8fed53e0189b7) ) /* TC5316200 */ + // AES has different label, data is the same: 040-v1.v2 + ROM_LOAD( "040-v2.v2", 0x200000, 0x100000, CRC(c5cece01) SHA1(923a3377dac1919e8c3d9ab316902250caa4785f) ) /* TC538200 */ + // AES has different label, data is the same: 040-v2.v4 + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "040-c1.c1", 0x000000, 0x100000, CRC(faa8ea99) SHA1(714575e57ea1990612f960ec42b38d2e157ad400) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "040-c2.c2", 0x000001, 0x100000, CRC(87d0ec65) SHA1(23645e0cf859fb4cec3745b3846ca0ef64c689fb) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "040-c3.c3", 0x200000, 0x080000, CRC(24b5ba80) SHA1(29d58a6b56bd24ee2046a8d45e023b4d7ab7685b) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "040-c4.c4", 0x200001, 0x080000, CRC(1c9e9930) SHA1(d017474873750a7602b7708c663d29b25ef7bb63) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0041 + . NGM-041 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-041 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( bstars2 ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "041-p1.p1", 0x000000, 0x080000, CRC(523567fd) SHA1(f1e81eb4678f586b214ea102cde6effea1b0f768) ) /* TC534200 */ + + NEO_SFIX_128K( "041-s1.s1", CRC(015c5c94) SHA1(f1c60cd3dc54986b39f630ef3bf48f68c68695dc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "041-m1.m1", CRC(15c177a6) SHA1(3f4abed635102f9bc8b44809750828c82e79b44f) ) /* TC531001 */ + + ROM_REGION( 0x280000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "041-v1.v1", 0x000000, 0x100000, CRC(cb1da093) SHA1(4f4d1d5fefa9dda372083c045bf0d268a57ce8f1) ) /* TC538200 */ + ROM_LOAD( "041-v2.v2", 0x100000, 0x100000, CRC(1c954a9d) SHA1(159bc6efdd531615461f6e16f83f6d4c4e67c237) ) /* TC538200 */ + ROM_LOAD( "041-v3.v3", 0x200000, 0x080000, CRC(afaa0180) SHA1(c4a047e21f093830498a163598ed7bd48a8cf9d1) ) /* TC534200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "041-c1.c1", 0x000000, 0x100000, CRC(b39a12e1) SHA1(bafe383bd7c5a6aac4cb92dabbc56e3672fe174d) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "041-c2.c2", 0x000001, 0x100000, CRC(766cfc2f) SHA1(79e1063925d54a57df943019a88bea56c9152df3) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "041-c3.c3", 0x200000, 0x100000, CRC(fb31339d) SHA1(f4e821299680970b2e979acc4a170029b968c807) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "041-c4.c4", 0x200001, 0x100000, CRC(70457a0c) SHA1(a1e307f11ddab85d2e9c09d0428fac2e6da774b1) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0042 + . NGM-042 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . NGH-042 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( quizdai2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "042-p1.p1", 0x000000, 0x100000, CRC(ed719dcf) SHA1(12baf2601e86c0e4358517b9fa1c55f2f5835f1d) ) /* TC538200 */ + + NEO_SFIX_128K( "042-s1.s1", CRC(164fd6e6) SHA1(dad35bedc33d502a5ae745a45a972af8d901b160) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "042-m1.m1", CRC(bb19995d) SHA1(ed458fad5a23c6bd0d099927d98c31e1e6562d1b) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "042-v1.v1", 0x000000, 0x100000, CRC(af7f8247) SHA1(99a47014017c20e4e22010c60612b6b7f6efc9e5) ) /* TC538200 */ + ROM_LOAD( "042-v2.v2", 0x100000, 0x100000, CRC(c6474b59) SHA1(a6c5054032b698116247b2f09a8b94a1b588c4f1) ) /* TC538200 */ + + ROM_REGION( 0x300000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "042-c1.c1", 0x000000, 0x100000, CRC(cb5809a1) SHA1(b53d06685246dd51b82b5c1d54d639d10e2ec26d) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "042-c2.c2", 0x000001, 0x100000, CRC(1436dfeb) SHA1(27d136fb1be793bd345a741f5e55a977275fff86) ) /* Plane 2,3 */ /* TC538200 */ + ROM_LOAD16_BYTE( "042-c3.c3", 0x200000, 0x080000, CRC(bcd4a518) SHA1(f355298fe0f2cf50ddcc0d613db56a5c04d7230f) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "042-c4.c4", 0x200001, 0x080000, CRC(d602219b) SHA1(34cf0f16db1e224396464ac838f4cd2e6d1c640e) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0043 + . NGM-043 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 + NEO-MVS PROG-G2 / NEO-MVS CHA 42G-2 + . NGH-043 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( 3countb ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "043-p1.p1", 0x000000, 0x100000, CRC(ffbdd928) SHA1(05b24655ca32723661adc5509b450824deb0c176) ) /* TC538200 */ + /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */ + + NEO_SFIX_128K( "043-s1.s1", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "043-m1.m1", CRC(7eab59cb) SHA1(5ae4107457e091f73960bfba39b589ae36d51ca3) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "043-v1.v1", 0x000000, 0x200000, CRC(63688ce8) SHA1(5c6ac29a0cc0655a87cfe3ada8706838b86b86e4) ) /* TC5316200 */ + ROM_LOAD( "043-v2.v2", 0x200000, 0x200000, CRC(c69a827b) SHA1(f5197ea87bb6573fa6aef3a1713c3679c58c1e74) ) /* TC5316200 */ + + ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "043-c1.c1", 0x000000, 0x100000, CRC(bad2d67f) SHA1(04928e50ca75b7fbc52b64e816ec5701901f5893) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "043-c2.c2", 0x000001, 0x100000, CRC(a7fbda95) SHA1(9da3c5faf22592a7eaf8df9fa6454f48c2a927ae) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "043-c3.c3", 0x200000, 0x100000, CRC(f00be011) SHA1(2721cdba37a511a966a2a53b9bd6240f181d920c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x600000, 0x100000 ) + ROM_LOAD16_BYTE( "043-c4.c4", 0x200001, 0x100000, CRC(1887e5c0) SHA1(9b915359add7c10c78d8b281b4084eceea8f0499) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x600001, 0x100000 ) +ROM_END + +/**************************************** + ID-0044 + . NGM-044 + NEO-MVS PROG16 / NEO-MVS CHA42G-1 + NEO-MVS PROG4096 / NEO-MVS CHA42G-1 + . NGH-044 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( aof ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "044-p1.p1", 0x000000, 0x080000, CRC(ca9f7a6d) SHA1(4d28ef86696f7e832510a66d3e8eb6c93b5b91a1) ) /* TC534200 */ + /* also found sets with ep1 or p1 on eprom. */ + + NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "044-m1.m1", CRC(0987e4bb) SHA1(8fae4b7fac09d46d4727928e609ed9d3711dbded) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "044-v2.v2", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) ) /* TC5316200 */ + ROM_LOAD( "044-v4.v4", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) ) /* TC5316200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "044-c1.c1", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "044-c2.c2", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "044-c3.c3", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x600000, 0x100000 ) + ROM_LOAD16_BYTE( "044-c4.c4", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x600001, 0x100000 ) +ROM_END + +/**************************************** + ID-0045 + . NGM-045 + NEO-MVS PROGGSC / NEO-MVS CHA 42G-3 + . NGH-045 + NEO-AEG PROGGS / NEO-AEG CHA42G-4 +****************************************/ + +ROM_START( samsho ) /* MVS VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) ) /* TC538200 */ + /* also found set with ep1 / ep2 on eprom and sp2 on maskrom; same rom data as samshoh is used. */ + + NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) /* TC5316200 */ + ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) /* TC5316200 */ + + ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( samshoh ) /* AES VERSION */ + ROM_REGION( 0x180000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) ) /* TC534200 */ + + NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) /* TC5316200 */ + ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) /* TC5316200 */ + + ROM_REGION( 0x900000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) /* Plane 2,3 */ /* TC534200 */ + /* also found AES set with C6 on TC538200; label is 045-C61.C6 */ +ROM_END + +/**************************************** + ID-0046 + . NGM-046 + NEO-MVS PROGTOP / NEO-MVS CHA256B + . NGH-046 + NEO-AEG PROGTOP / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( tophuntr ) /* MVS VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "046-p1.p1", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "046-s1.s1", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +ROM_START( tophuntrh ) /* AES VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "046-pg1.p1",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "046-p2.sp2",0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "046-sg1.s1", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */ + ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0047 + . NGM-047 + NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA42G-1 + . NGH-047 + NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2B + NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2 +****************************************/ + +ROM_START( fatfury2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "047-p1.p1", 0x000000, 0x100000, CRC(ecfdbb69) SHA1(59e2f137c6eaf043df4ddae865a9159a10265c60) ) /* TC538200 */ + /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */ + + NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) /* TC5316200 */ + ROM_LOAD( "047-v2.v2", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) ) /* TC5316200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "047-c1.c1", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "047-c2.c2", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "047-c3.c3", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x600000, 0x100000 ) + ROM_LOAD16_BYTE( "047-c4.c4", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x600001, 0x100000 ) +ROM_END + +/**************************************** + ID-0048 + . ??M-048 + NEO-MVS PROGGSC / NEO-MVS CHA256 +****************************************/ + +ROM_START( janshin ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "048-p1.p1", 0x000000, 0x100000, CRC(fa818cbb) SHA1(afee2c897b766c84f13891fb52c574fb18df0951) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "048-s1.s1", CRC(8285b25a) SHA1(d983640cda3e346e38469b4d3ec8048b116a7bb7) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "048-m1.m1", CRC(310467c7) SHA1(c529961195c9bdf5d1ce70a38ad129002d1f3b5f) ) /* mask rom TC531001 */ + + ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "048-v1.v1", 0x000000, 0x200000, CRC(f1947d2b) SHA1(955ff91ab24eb2a7ec51ff46c9f9f2ec060456b2) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "048-c1.c1", 0x000000, 0x200000, CRC(3fa890e9) SHA1(e73d2802bacfbc2b2b16fbbedddde17488e4bbde) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "048-c2.c1", 0x000001, 0x200000, CRC(59c48ad8) SHA1(2630817e735a6d197377558f4324c1442803fe15) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0049 + . NGM-049 + NEO-MVS PROG16 / NEO-MVS CHA42G-1 + . NGH-049 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( androdun ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "049-p1.p1", 0x000000, 0x080000, CRC(3b857da2) SHA1(4dd86c739944696c16c3cdd85935d6dfa9fdc276) ) /* CXK384500 */ + ROM_LOAD16_WORD_SWAP( "049-p2.p2", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) ) /* CXK384500 */ + + NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "049-m1.m1", CRC(edd2acf4) SHA1(c4ee6ba834d54b9fc5a854dbc41a05877e090371) ) /* CXK381003 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "049-v1.v1", 0x000000, 0x100000, CRC(ce43cb89) SHA1(47f82e077abb6efc6b1b0490412ae147d5d2acef) ) /* CXK388000 */ + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "049-c1.c1", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "049-c2.c2", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) ) /* Plane 2,3 */ /* CXK388000 */ +ROM_END + +/**************************************** + ID-0050 + . ALM-004 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . ALH-004 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( ncommand ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "050-p1.p1", 0x000000, 0x100000, CRC(4e097c40) SHA1(43311a7ca14a14dcd4a99d8576a12e897b078643) ) /* CXK388000 */ + + NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "050-m1.m1", CRC(6fcf07d3) SHA1(e9ecff4bfec1f5964bf06645f75d80d611b6231c) ) /* CXK381003 */ + + ROM_REGION( 0x180000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "050-v1.v1", 0x000000, 0x100000, CRC(23c3ab42) SHA1(b6c59bb180f1aa34c95f3ec923f3aafb689d57b0) ) /* CXK388000 */ + ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) ) /* CXK384000 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "050-c1.c1", 0x000000, 0x100000, CRC(87421a0a) SHA1(1d8faaf03778f7c5b062554d7333bbd3f0ca12ad) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "050-c2.c2", 0x000001, 0x100000, CRC(c4cf5548) SHA1(ef9eca5aeff9dda2209a050c2af00ed8979ae2bc) ) /* Plane 2,3 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "050-c3.c3", 0x200000, 0x100000, CRC(03422c1e) SHA1(920e5015aebe2ffc5ce43a52365c7f0a705f3b9e) ) /* Plane 0,1 */ /* CXK388000 */ + ROM_LOAD16_BYTE( "050-c4.c4", 0x200001, 0x100000, CRC(0845eadb) SHA1(3c71a02bf0e07a5381846bb6d75bbe7dd546adea) ) /* Plane 2,3 */ /* CXK388000 */ +ROM_END + +/**************************************** + ID-0051 + . AIM-051 + NEO-MVS PROG-G2 / NEO-MVS CHA42G-1 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 + . AIH-051 +****************************************/ + +ROM_START( viewpoin ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "051-p1.p1", 0x000000, 0x100000, CRC(17aa899d) SHA1(674cd8ace7acdf4f407de741e3d0071bcb49c902) ) /* CXK388002 */ + + NEO_SFIX_128K( "051-s1.s1", CRC(9fea5758) SHA1(5c6f01da89f2639cf741ee7c39e27023b8083052) ) /* CXK381000 */ + + NEO_BIOS_AUDIO_128K( "051-m1.m1", CRC(8e69f29a) SHA1(7a25f4997996434ea1b7d0d1ca9e7aaf966cbd03) ) /* CXK381003 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + /* What board was originally used (labels 051-V2 and 051-V4)? MVS is twice confirmed on NEO-MVS PROG-G2 */ + ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) ) /* CXK381600 */ + ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) ) /* CXK381600 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) ) /* Plane 0,1 */ /* CXK381600 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) ) /* Plane 2,3 */ /* CXK381600 */ + ROM_CONTINUE( 0x400001, 0x100000 ) +ROM_END + +/**************************************** + ID-0052 + . NGM-052 + NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA 42G-2 + . NGH-052 + NEO-AEG PROG-G2 (SNK-9201) / NEO-AEG CHA42G-2 +****************************************/ + +ROM_START( ssideki ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "052-p1.p1", 0x000000, 0x080000, CRC(9cd97256) SHA1(1c780b711137fd79cc81b01941e84f3d59e0071f) ) /* TC534200 */ + + NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) ) /* TC5316200 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "052-c1.c1", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "052-c2.c2", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) +ROM_END + +/**************************************** + ID-0053 + . ALM-005 + NEO-MVS PROG16 / NEO-MVS CHA42G-1 + . ALH-005 + NEO-AEG PROG16 / NEO-AEG CHA42G-1 + NEO-AEG PROG-G2 / NEO-AEG CHA42G-2C +****************************************/ + +ROM_START( wh1 ) /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "053-epr.p1", 0x000000, 0x080000, CRC(d42e1e9a) SHA1(9d1911fe4bf6202466ec45557dd008cbf01ca9c6) ) /* D27C4000 */ + ROM_LOAD16_WORD_SWAP( "053-epr.p2", 0x080000, 0x080000, CRC(0e33e8a3) SHA1(4b7086edb504f3c30529d51ba8f453d48eba5164) ) /* D27C4000 */ + /* P's on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC54H1000 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ + ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( wh1h ) /* AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "053-p1.p1", 0x000000, 0x080000, CRC(95b574cb) SHA1(b7b7af6a04c3d902e7f8852897741ecaf0b1062c) ) /* TC534200 */ + ROM_LOAD16_WORD_SWAP( "053-p2.p2", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) ) /* TC534200 */ + + NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ + ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( wh1ha ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "053-p1_a.p1", 0x000000, 0x080000, CRC(ed29fde2) SHA1(52b8ca5b804f786f95e1dfb348d8c7b82f1d4ddf) ) /* D27C4000 */ + ROM_LOAD16_WORD_SWAP( "053-p2_a.p2", 0x080000, 0x080000, CRC(98f2b158) SHA1(a64e1425970eb53cc910891db39973dee3d54ccc) ) /* D27C4000 */ + /* Correct chip labels for p1 and p2 unknown */ + + NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) /* TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) /* TC5316200 */ + ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) /* TC538200 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_CONTINUE( 0x400000, 0x100000 ) + ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_CONTINUE( 0x400001, 0x100000 ) + ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0054 + Crossed Swords 2 (CD only? not confirmed, MVS might exist) +****************************************/ + +/**************************************** + ID-0055 + . NGM-055 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256B + . NGH-055 + NEO-AEG PROGRK / NEO-AEG CHA256 +****************************************/ + +ROM_START( kof94 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "055-p1.p1", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) /* mask rom TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) /* mask rom TC5316200 */ + ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) /* mask rom TC5316200 */ + ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0056 + . NGM-056 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . NGH-056 + NEO-AEG PROGRKB / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( aof2 ) /* MVS VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) /* TC538200 */ + + NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) /* TC531001 */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) /* TC5316200 */ + ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) /* TC5316200 */ + ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Different layout with 4xC (32mbit) also exists; chip labels are 056-C13, 056-C24, 056-C57 and 056-C68 */ + ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( aof2a ) /* AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) /* TC538200 */ + /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ + ROM_LOAD16_WORD_SWAP( "056-epr.ep1", 0x000000, 0x80000, CRC(75d6301c) SHA1(e72d15fba55f96be7b4fa29e705a7b78f56edf7d) ) /* M27C4002 */ + /* P is on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) /* TC531001 */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) /* TC5316200 */ + ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) /* TC5316200 */ + ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0057 + . ALM-006 + NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 + . ALH-006 + NEO-AEG PROG4096 B / NEO-AEG CHA42G-3 +****************************************/ + +ROM_START( wh2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "057-p1.p1", 0x100000, 0x100000, CRC(65a891d9) SHA1(ff8d5ccb0dd22c523902bb3db3c645583a335056) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) ) /* TC5316200 */ + ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) ) /* TC5316200 */ + + ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0058 + . NGM-058 + NEO-MVS PROGGSC / NEO-MVS CHA42G-3B + NEO-MVS PROGGSC / NEO-MVS CHA 42G-3 + . NGH-058 + NEO-AEG PROGGS / NEO-AEG CHA42G-4 +****************************************/ + +ROM_START( fatfursp ) /* MVS AND AES VERSION */ + ROM_REGION( 0x180000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */ + + NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */ + ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */ + ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */ + + ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +ROM_START( fatfurspa ) /* MVS AND AES VERSION */ + ROM_REGION( 0x180000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */ + /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ + ROM_LOAD16_WORD_SWAP( "058-epr.ep1", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) ) /* M27C4002 */ + /* P is on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */ + ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */ + ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */ + + ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0059 + . NGM-059 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 + . NGH-059 +****************************************/ + +ROM_START( savagere ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "059-p1.p1", 0x100000, 0x100000, CRC(01d4e9c0) SHA1(3179d2be59bf2de6918d506117cff50acf7e09f3) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ + ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) ) /* TC5316200 */ + ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0060 + . ??M-060 + NEO-MVS PROGGSC / NEO-MVS CHA256B +****************************************/ + +ROM_START( fightfev ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) /* VIC940800 */ + + NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) ) /* VIC930100 */ + + NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) /* VIC930100 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) /* VIC931600 */ + ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) ) /* VIC930800 */ + + ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) /* Plane 0,1 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) /* Plane 2,3 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) /* Plane 0,1 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) /* Plane 2,3 */ /* VIC931600 */ +ROM_END + +ROM_START( fightfeva ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) /* VIC940800 */ + /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ + ROM_LOAD16_WORD_SWAP( "1.sp2", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) ) + /* P is on eprom, has a Viccom logo at the top of the label with a circled '1' in the center */ + + NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) ) /* VIC930100 */ + + NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) /* VIC930100 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) /* VIC931600 */ + ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) ) /* VIC930800 */ + + ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) /* Plane 0,1 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) /* Plane 2,3 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) /* Plane 0,1 */ /* VIC931600 */ + ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) /* Plane 2,3 */ /* VIC931600 */ +ROM_END + +/**************************************** + ID-0061 + . NGM-061 + NEO-MVS PROGGSC / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROG 4096 B / NEO-MVS CHA256 + . NGH-061 + NEO-AEG PROGRKB / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( ssideki2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "061-p1.p1", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) /* mask rom TC538200 */ + /* also found MVS sets with ep1 / ep2 on eprom; correct chip label unknown. */ + + NEO_SFIX_128K( "061-s1.s1", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "061-m1.m1", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "061-v1.v1", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) ) /* mask rom TC5316200 */ + ROM_LOAD( "061-v2.v2", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + /* Different layout with 8xC (8 mbit) also exists; naming sheme 061-Cx */ + ROM_LOAD16_BYTE( "061-c1-16.c1", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "061-c2-16.c2", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "061-c3-16.c3", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "061-c4-16.c4", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0062 + . DEM-001 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . DEH-001 +****************************************/ + +ROM_START( spinmast ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "062-p1.p1", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) /* mask rom TC531001 */ + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0063 + . NGM-063 + NEO-MVS PROGTOP / NEO-MVS CHA256 + . NGH-063 + NEO-AEG PROGTOP2 / NEO-AEG CHA256 B +****************************************/ + +ROM_START( samsho2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "063-p1.p1", 0x100000, 0x100000, CRC(22368892) SHA1(0997f8284aa0f57a333be8a0fdea777d0d01afd6) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + /* also found MVS sets with ep1 / ep2 on eprom and p1 / sp2 on maskrom; correct chip label unknown */ + + NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) /* TC531001 */ + + ROM_REGION( 0x700000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) /* TC5316200 */ + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) /* TC5316200 */ + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) /* TC5316200 */ + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( samsho2k ) /* KOREAN VERSION */ + // This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + // the roms below apply as patch over the main program (I haven't checked what they change, the game boots as the Korean version even with just the above program) + ROM_LOAD16_WORD_SWAP( "063-ep1-kan.ep1", 0x000000, 0x080000, CRC(fa32e2d8) SHA1(94f56759ec04ab3a1e557bc2dc51b92176b3c147) ) + ROM_LOAD16_WORD_SWAP( "063-ep2-kan.ep2", 0x080000, 0x080000, CRC(70b1a4d9) SHA1(387737e87a68d0ea4fd13693f1f30d3227a17c82) ) // this is exactly the same data anyway! + + NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) ) + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) /* TC531001 */ + + ROM_REGION( 0x700000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) /* TC5316200 */ + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) /* TC5316200 */ + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) /* TC5316200 */ + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( samsho2ka ) /* KOREAN VERSION */ + // This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + // Basically samsho2k without loading ep1 and ep2 over p1-kan ; The game has been confirmed to exist in this state + + NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) ) + + NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) /* TC531001 */ + + ROM_REGION( 0x700000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) /* TC5316200 */ + ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) /* TC5316200 */ + ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) /* TC5316200 */ + ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0064 + . ADM-007 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . ADH-007 + NEO-AEG PROGRK / NEO-AEG CHA256 + NEO-AEG PROGRKB / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( wh2j ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "064-p1.p1", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) ) /* TC5316200 */ + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) /* TC5316200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Different layout with 4xC (32 mbit) also exists; chip labels are 064-C13, 064-C24, 064-C57 and 064-c68. */ + ROM_LOAD16_BYTE( "064-c1.c1", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c2.c2", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c3.c3", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c4.c4", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c5.c5", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c6.c6", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c7.c7", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "064-c8.c8", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0065 + . DEM-002 + NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1 + . DEH-002 + NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1 +****************************************/ + +ROM_START( wjammers ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "065-p1.p1", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) /* mask rom TC538200 */ + ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) /* mask rom TC538200 */ + ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) /* mask rom TC538200 */ + ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) /* mask rom TC538200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "065-c1.c1", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "065-c2.c2", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0066 + . DEM-003 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . DEH-003 +****************************************/ + +ROM_START( karnovr ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "066-p1.p1", 0x000000, 0x100000, CRC(8c86fd22) SHA1(8cf97c6fb9c5717167ccc54bf5856248ccaf32c6) ) /* TC538200 */ + + NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) ) /* TC5316200 */ + + ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0067 + . ??M-067 + NEO-MVS PROG16 / NEO-MVS CHA256B + NEO-MVS PROG16 / NEO-MVS CHA256 +****************************************/ + +ROM_START( gururin ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "067-p1.p1", 0x000000, 0x80000, CRC(4cea8a49) SHA1(cea4a35db8de898e30eb40dd339b3cbe77ac0856) ) /* UM8303B */ + + NEO_SFIX_128K( "067-s1.s1", CRC(b119e1eb) SHA1(f63a68a71aea220d3d4475847652e2a1f68b2b6f) ) /* UMK300 */ + + NEO_BIOS_AUDIO_128K( "067-m1.m1", CRC(9e3c6328) SHA1(17e8479c258f28a01d2283be9e692ff7685898cc) ) /* UML359 */ + + ROM_REGION( 0x80000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "067-v1.v1", 0x000000, 0x80000, CRC(cf23afd0) SHA1(10f87014ee10613f92b04f482f449721a6379db7) ) /* UM8302 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "067-c1.c1", 0x000000, 0x200000, CRC(35866126) SHA1(e4b24670ccc7901af5f66b11b15fae4e67f843ab) ) /* Plane 0,1 */ /* UMT301B */ + ROM_LOAD16_BYTE( "067-c2.c2", 0x000001, 0x200000, CRC(9db64084) SHA1(68a43c12f63f5e98d68ad0902a6551c5d30f8543) ) /* Plane 2,3 */ /* UMT302B */ +ROM_END + +/**************************************** + ID-0068 + . NGM-068 + NEO-MVS PROGTOP / NEO-MVS CHA256 +****************************************/ + +ROM_START( pspikes2 ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "068-pg1.p1", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "068-sg1.s1", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "068-mg1.m1", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) ) /* mask rom TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* mask rom TC538200 */ + ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* mask rom TC538200 */ + ROM_LOAD( "068-v3.v3", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) ) /* mask rom TC538200 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* Plane 2,3 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c5.c5", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c6.c6", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0069 + . NGM-069 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +. NGH-069 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( fatfury3 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "069-p1.p1", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) /* TC5316200 */ + + NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ + ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) /* TC5316200 */ + + ROM_REGION( 0x1400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0070 + . ??M-070 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( zupapa ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "070-p1.p1", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) ) /* mask rom TC538200 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "070-epr.m1", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) ) /* M27C1001 */ + /* M1 on eprom, correct chip label unknown */ + + ROM_REGION( 0x0200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "070-v1.v1", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "070-c1.c1", 0x0000000, 0x800000, CRC(f8ad02d8) SHA1(9be54532332a8e963ec35ff1e518947bb11ebade) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "070-c2.c2", 0x0000001, 0x800000, CRC(70156dde) SHA1(06286bf043d50199b47df9a76ca91f39cb28cb90) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0071 + Bang Bang Busters (prototype) 1994 Visco + Prepared for release in 2000/2001, but apparently Zupapa was favored + The 2000 version was released in 2010 for MVS and AES (Releaser claims that it is officially licensed by VISCO) + + Reported UNIVERSE BIOS CRC32: + ROM EC861CAF + BANK 0 NOT USED + BANK 1 NOT USED + BANK 2 NOT USED + BANK 3 NOT USED + ****************************************/ +ROM_START( b2b ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "071.p1", 0x000000, 0x080000, CRC(7687197d) SHA1(4bb9cb7819807f7a7e1f85f1c4faac4a2f8761e8) ) + + NEO_SFIX_128K( "071.s1", CRC(44e5f154) SHA1(b3f80051789e60e5d8c5df0408f1aba51616e92d) ) + + NEO_BIOS_AUDIO_128K( "071.m1", CRC(6da739ad) SHA1(cbf5f55c54b4ee00943e2a411eeee4e465ce9c34) ) + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "071.v1", 0x000000, 0x100000, CRC(50feffb0) SHA1(00127dae0130889995bfa7560bc4b0662f74fba5) ) + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "071.c1", 0x000000, 0x200000, CRC(23d84a7a) SHA1(9034658ad40e2c45558abc3db312aa2764102fc4) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "071.c2", 0x000001, 0x200000, CRC(ce7b6248) SHA1(ad1cd5adae5c151e183ff88b68afe10f7009f48e) ) /* Plane 2,3 */ +ROM_END + + +/**************************************** + ID-0072 + Last Odyssey Pinball Fantasia (prototype) 1995 Monolith + A video of this was on youtube in 2010/2011. + ****************************************/ + +/**************************************** + ID-0073 + . ??M-073 + NEO-MVS PROGTOP / NEO-MVS CHA256 +****************************************/ + +ROM_START( panicbom ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "073-p1.p1", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) ) /* mask rom TC534200 */ + + NEO_SFIX_128K( "073-s1.s1", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "073-m1.m1", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) ) /* mask rom TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "073-v1.v1", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) ) /* mask rom TC5316200 */ + ROM_LOAD( "073-v2.v2", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) ) /* mask rom TC538200 */ + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "073-c1.c1", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "073-c2.c2", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0074 + . ADM-008 + NEO-MVS PROGTOP / NEO-MVS CHA256B + . ADH-008 + NEO-AEG PROGRK / NEO-AEG CHA256 +****************************************/ + +ROM_START( aodk ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "074-p1.p1", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "074-s1.s1", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "074-m1.m1", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "074-v1.v1", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) ) /* TC5316200 */ + ROM_LOAD( "074-v2.v2", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) ) /* TC5316200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "074-c1.c1", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c2.c2", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c3.c3", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c4.c4", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c5.c5", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c6.c6", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c7.c7", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "074-c8.c8", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0075 + . NGM-075 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . NGH-075 + NEO-AEG PROGRK / NEO-AEG CHA256 +****************************************/ + +ROM_START( sonicwi2 ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "075-p1.p1", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) /* mask rom TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) /* mask rom TC5316200 */ + ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0076 + . ??M-076 + NEO-MVS PROGGSC / NEO-MVS CHA256 +****************************************/ + +ROM_START( zedblade ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "076-p1.p1", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "076-s1.s1", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "076-m1.m1", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) ) /* mask rom TC531001 */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "076-v1.v1", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) ) /* mask rom TC5316200 */ + ROM_LOAD( "076-v2.v2", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) ) /* mask rom TC5316200 */ + ROM_LOAD( "076-v3.v3", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) ) /* mask rom TC538200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "076-c1.c1", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "076-c2.c2", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "076-c3.c3", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "076-c4.c4", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0077 + The Warlocks of the Fates / Shinryu Senki (prototype) 1995 SNK/Astec21 + a video of intro and full gameplay was on youtube in 2014. +****************************************/ + +/**************************************** + ID-0078 + . NGM-078 + NEO-MVS PROGTOP / NEO-MVS CHA256 + . NGH-078 +****************************************/ + +ROM_START( galaxyfg ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "078-p1.p1", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) ) /* mask rom TC531001 */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) ) /* mask rom TC5316200 */ + ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) ) /* mask rom TC5316200 */ + ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) ) /* mask rom TC538200 */ + + ROM_REGION( 0xe00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0079 + . DEM-004 + NEO-MVS PROGGSC / NEO-MVS CHA256 + . DEH-004 + NEO-AEG PROGRK / NEO-AEG CHA256 +****************************************/ + +ROM_START( strhoop ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "079-p1.p1", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) ) /* TC538200 */ + + NEO_SFIX_128K( "079-s1.s1", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "079-m1.m1", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) ) /* TC531001 */ + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "079-v1.v1", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) ) /* TC5316200 */ + ROM_LOAD( "079-v2.v2", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) ) /* TC538200 */ + /* AES 079-v2 is only 4 mbit (TC534200), data is the same */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "079-c1.c1", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "079-c2.c2", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "079-c3.c3", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "079-c4.c4", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0080 + . SAM-080 + NEO-MVS PROGGSC / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256 + Boards used for the Korean release + . SAH-080 + NEO-AEG PROGTOP2 / NEO-AEG CHA256 B +****************************************/ + +ROM_START( quizkof ) /* MVS AND AES VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "080-p1.p1", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "080-s1.s1", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "080-m1.m1", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) ) /* mask rom TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) /* mask rom TC5316200 */ + ROM_LOAD( "080-v2.v2", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) ) /* mask rom TC5316200 */ + ROM_LOAD( "080-v3.v3", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "080-c1.c1", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "080-c2.c2", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "080-c3.c3", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "080-c4.c4", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +ROM_START( quizkofk ) /* KOREAN VERSION */ + /* Made by Viccom Corp.; proms have manufacturer stamp VICxxxxxx-xxx, chip labels same as quizkof; Cart ID 0080 */ + /* Due to parent set naming limitations, roms have been named vic-xxx */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "vic-080-p1.p1", 0x000000, 0x100000, CRC(2589488e) SHA1(609f3095c1cf8b11335b56f23c5d955eebd66dd2) ) + + NEO_SFIX_128K( "vic-080-s1.s1", CRC(af72c30f) SHA1(f6a2c583f38295b7da2cbcf4b2c7ed3d3e01db4f) ) + + NEO_BIOS_AUDIO_128K( "vic-080-m1.m1", CRC(4f157e9a) SHA1(8397bfdd5738914670ada7cd8c611c20ed1f74da) ) + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) /* mask rom TC5316200 */ + ROM_LOAD( "vic-080-v2.v2", 0x200000, 0x200000, CRC(719fee5b) SHA1(c94f8ca066c9693cd7c9fd311db1ad9b2665fc69) ) + ROM_LOAD( "vic-080-v3.v3", 0x400000, 0x200000, CRC(64b7efde) SHA1(11727f9a3c4da17fa7b00559c7081b66e7211c49) ) + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "vic-080-c1.c1", 0x000000, 0x200000, CRC(94d90170) SHA1(4ab63dadc6ee0d32b8784c327681376f5fef0df9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "vic-080-c2.c2", 0x000001, 0x200000, CRC(297f25a1) SHA1(0dd845726c640d70804b5fd5854921771e8dbf19) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "vic-080-c3.c3", 0x400000, 0x200000, CRC(cf484c4f) SHA1(f588908a693dbbb8362ffbfe5035dd5f867d9697) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "vic-080-c4.c4", 0x400001, 0x200000, CRC(36e5d997) SHA1(99955ff947e2e586e60c1146c978c70705787917) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0081 + . NGM-081 + NEO-MVS PROGTOP / NEO-MVS CHA42G-3B + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . NGH-081 + NEO-AEG PROGTOP2 / NEO-AEG CHA256 B +****************************************/ + +ROM_START( ssideki3 ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "081-p1.p1", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "081-s1.s1", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "081-m1.m1", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "081-v1.v1", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) ) /* TC5316200 */ + ROM_LOAD( "081-v2.v2", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) ) /* TC5316200 */ + ROM_LOAD( "081-v3.v3", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) ) /* TC5316200 */ + + ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "081-c1.c1", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c2.c2", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c3.c3", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c4.c4", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c5.c5", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "081-c6.c6", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0082 + . NGM-082 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA 42G-3 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256B + NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3 + . NGH-082 +****************************************/ + +ROM_START( doubledr ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "082-p1.p1", 0x100000, 0x100000, CRC(34ab832a) SHA1(fbb1bd195f5653f7b9c89648649f838eaf83cbe4) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) /* TC5316200 */ + ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) /* TC5316200 */ + + ROM_REGION( 0xe00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0083 + . NGM-083 + NEO-MVS PROGTOP / NEO-MVS CHA256 +****************************************/ + +ROM_START( pbobblen ) /* MVS ONLY RELEASE */ + /* This set uses CHA and PROG board from Power Spikes II. Six Power Spikes II prom's are replaced with + Puzzle Bobble prom's. Confirmed on several original carts. Do other layouts also exist? */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "d96-07.ep1", 0x000000, 0x080000, CRC(6102ca14) SHA1(328429d11de5b327a0654ae0548da4d0025a2ae6) ) /* 27C240 */ + + NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) /* M27C1001 */ + /* M1 on eprom with sticker; label is D96-06 */ + + ROM_REGION( 0x380000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) /* mask rom TC538200 */ + ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) /* mask rom TC534200 */ + + ROM_REGION( 0x500000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x080000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ /* mask rom TC534200 */ + ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x080000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ /* mask rom TC534200 */ +ROM_END + +/**************************************** + ID-0084 + . NGM-084 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGSM / NEO-MVS CHA256 + . NGH-084 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( kof95 ) /* MVS VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "084-p1.p1",0x100000, 0x100000, CRC(2cba2716) SHA1(f6c2d0537c9c3e0938065c65b1797c47198fcff8) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ + + ROM_REGION( 0x900000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ + /* 600000-7fffff empty */ + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ + + ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( kof95a ) /* MVS VERSION */ + /* This set uses NEO-MVS PROGSM board; same rom data as in kof95h is used */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "084-epr.ep1", 0x000000, 0x080000, CRC(577ca1bb) SHA1(0d9d8b6db8a5a4ea47fd6602bc77df68b74b1691) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "084-epr.ep2", 0x080000, 0x080000, CRC(30802a5d) SHA1(04109e7c4f8d171fcebbe1198f85a271b008f8f1) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "084-epr.ep3", 0x100000, 0x080000, CRC(21ae248a) SHA1(87318a1bc667f31a9824beefee94617b4724dc2d) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "084-epr.ep4", 0x180000, 0x080000, CRC(19d3fbee) SHA1(39225ec8a7ed5d2f5e83f5d575b9fa38800b0704) ) /* M27C4002 */ + /* P's on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ + + ROM_REGION( 0x900000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ + /* 600000-7fffff empty */ + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ + + ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( kof95h ) /* MVS AND AES VERSION */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "084-pg1.p1", 0x100000, 0x100000, CRC(5e54cf95) SHA1(41abe2042fdbb1526e92a0789976a9b1ac5e60f0) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */ + + ROM_REGION( 0x900000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */ + ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */ + /* 600000-7fffff empty */ + ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */ + + ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0085 + Shinsetsu Samurai Spirits Bushidoretsuden / Samurai Shodown RPG (CD only) +****************************************/ + +/**************************************** + ID-0086 + . ??M-086 + NEO-MVS PROGBK1 / NEO-MVS CHA256B +****************************************/ + +ROM_START( tws96 ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "086-p1.p1", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "086-s1.s1", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "086-m1.m1", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "086-v1.v1", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) ) /* mask rom TC5316200 */ + ROM_LOAD( "086-v2.v2", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) ) /* mask rom TC5316200 */ + + ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "086-c1.c1", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "086-c2.c2", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "086-c3.c3", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "086-c4.c4", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0087 + . NGM-087 + NEO-MVS PROGSS3 / NEO-MVS CHA256 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-087 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( samsho3 ) /* MVS VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "087-epr.ep1", 0x000000, 0x080000, CRC(23e09bb8) SHA1(79da99fa50a639fce9d1266699b5e53c9ac55642) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "087-epr.ep2", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "087-epr.ep3", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) ) /* M27C4002 */ + ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) ) /* M27C4002 */ + /* P's on eprom, correct chip label unknown */ + ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) ) /* TC538200 */ + /* also found MVS set with p1 / sp2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */ + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* T531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ + + ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( samsho3h ) /* AES VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "087-pg1.p1", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom TC5316200 */ + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* T531000 */ + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* T531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ + + ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +ROM_START( fswords ) /* KOREAN VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "187-p1k.p1", 0x000000, 0x100000, CRC(c8e7c075) SHA1(7b74f2917114460d79d8f46ee24829a4c08cbf2a) ) + ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom TC5316200 */ + + NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) /* TC5332201 */ + ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) /* TC5316200 */ + + ROM_REGION( 0x1a00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0088 + . NGM-088 + NEO-MVS PROGBK1 / NEO-MVS CHA42-3B + . NGH-088 + NEO-AEG PROGRKB / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( stakwin ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "088-p1.p1", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000) + + NEO_SFIX_128K( "088-s1.s1", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "088-m1.m1", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "088-v1.v1", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) ) /* TC5316200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "088-c1.c1", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "088-c2.c2", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "088-c3.c3", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "088-c4.c4", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0089 + . NGM-089 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-089 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( pulstar ) + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "089-p1.p1", 0x000000, 0x100000, CRC(5e5847a2) SHA1(b864d0ec4184b785569ddbf67c2115b5ab86ee3e) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "089-p2.sp2", 0x100000, 0x200000, CRC(028b774c) SHA1(fc5da2821a5072f2b78245fc59b6e3eeef116d16) ) /* mask rom TC5316200 */ + + NEO_SFIX_128K( "089-s1.s1", CRC(c79fc2c8) SHA1(914c224fb3c461a68d7425cae724cf22bd5f985d) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "089-m1.m1", CRC(ff3df7c7) SHA1(59d2ef64f734f6026073b365300221909057a512) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "089-v1.v1", 0x000000, 0x400000, CRC(6f726ecb) SHA1(e8e2a46af690ce6c7ee64a58ab5010d22df9548c) ) /* mask rom TC5332204 */ + ROM_LOAD( "089-v2.v2", 0x400000, 0x400000, CRC(9d2db551) SHA1(83f7e5db7fb1502ceadcd334df90b11b1bba78e5) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "089-c1.c1", 0x0000000, 0x400000, CRC(f4e97332) SHA1(54693827a99836e7d61c45d495dd78bf3fcf1544) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c2.c2", 0x0000001, 0x400000, CRC(836d14da) SHA1(99cc4f9b764503eff7849ff2977d90bb47c5564a) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c3.c3", 0x0800000, 0x400000, CRC(913611c4) SHA1(9664eb1fe1e6f8c3ddeeff872d38ea920ed38a82) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c4.c4", 0x0800001, 0x400000, CRC(44cef0e3) SHA1(34f6f348ba86a2a06cb9c43a16b97cf6ee6158ac) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c5.c5", 0x1000000, 0x400000, CRC(89baa1d7) SHA1(976c745c44967de61e2a23227835be580b1d283a) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c6.c6", 0x1000001, 0x400000, CRC(b2594d56) SHA1(685c0bf8ff76c76e41c2ceaebb96349634cfdb2e) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "089-c7.c7", 0x1800000, 0x200000, CRC(6a5618ca) SHA1(9a1d5f998b0dfabacf9dad45c94bef2bb43e5e0c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "089-c8.c8", 0x1800001, 0x200000, CRC(a223572d) SHA1(2791b1212f57937b2b2a95bc9e420c06d0c37669) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0090 + . ADM-009 + NEO-MVS PROGTOP / NEO-MVS CHA256 + NEO-MVS PROGGSC / NEO-MVS CHA256 + NEO-MVS PROGGSC / NEO-MVS CHA256B + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . ADH-009 +****************************************/ + +ROM_START( whp ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "090-p1.p1", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) /* mask rom TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) /* mask rom TC5316200 */ + ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) /* mask rom TC5316200 */ + ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + /* 0c00000-0ffffff empty */ + ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0091 + ADK World / ADK Special 1995 ADK (CD only) +****************************************/ + +/**************************************** + ID-0092 + . NGM-092 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGTOP / NEO-MVS CHA256 + . NGH-092 +****************************************/ + +ROM_START( kabukikl ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "092-p1.p1", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) /* mask rom TC531001 */ + + ROM_REGION( 0x700000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) /* mask rom TC5316200 */ + ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) /* mask rom TC5316200 */ + ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) /* mask rom TC5316200 */ + ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) /* mask rom TC538200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0093 + . ??M-093 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( neobombe ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "093-p1.p1", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) ) /* TC538200 */ + + NEO_SFIX_128K( "093-s1.s1", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "093-m1.m1", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "093-v1.v1", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) ) /* TC5332204 */ + ROM_LOAD( "093-v2.v2", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) ) /* TC5316200 */ + + ROM_REGION( 0x900000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "093-c1.c1", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "093-c2.c2", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "093-c3.c3", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) ) /* Plane 0,1 */ /* TC534200 */ + ROM_LOAD16_BYTE( "093-c4.c4", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) ) /* Plane 2,3 */ /* TC534200 */ +ROM_END + +/**************************************** + ID-0094 + . NGM-094 + NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B + . NGH-094 +****************************************/ + +ROM_START( gowcaizr ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "094-p1.p1", 0x100000, 0x100000, CRC(33019545) SHA1(213db6c0b7d24b74b809854f9c606dbea1d9ba00) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) /* TC531001 */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) /* TC5316200 */ + ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) /* TC5316200 */ + ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) ) /* Plane 2,3 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + dev board, same ID as gowcaizr +****************************************/ + +ROM_START( dragonsh ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_BYTE( "EP2.bin", 0x000000, 0x080000, CRC(f25c71ad) SHA1(803fb6cd6a7ada59678ad901ff9788b1e54ddd0c) ) + ROM_LOAD16_BYTE( "EP1.bin", 0x000001, 0x080000, CRC(f353448c) SHA1(f0f966ca15d503e01b40e901765ff0888463b65d) ) + + NEO_SFIX_128K( "s1.s1", BAD_DUMP CRC(706477a7) SHA1(8cbee7f6832e7edd2dc792ca330420a6a984b879) ) // was a dead AXS512PC 512KB sram card, this data is handcrafted to make the set usable (hence BAD_DUMP) + + NEOGEO_BIOS + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + ROM_REGION( 0x30000, "cslot1:audiocpu", ROMREGION_ERASEFF ) + // not present + + ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) + ROM_REGION( 0x200000, "cslot1:ymsnd", ROMREGION_ERASE00 ) + ROM_LOAD( "sram.v1", 0x000000, 0x200000, NO_DUMP ) // was a dead AXS2000PC 2MB sram card, battery dead, data lost. + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "no3.bin", 0x000000, 0x1000000, CRC(81821826) SHA1(b7c1a53e32633383675206a16c68f6f2ff984865) ) + ROM_LOAD16_BYTE( "no4.bin", 0x000001, 0x1000000, CRC(3601d568) SHA1(800323e52f5d33b402f84d31850b42c688082d67) ) +ROM_END + +/**************************************** + ID-0095 + . NGM-095 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-095 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( rbff1 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ + + NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ + ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( rbff1a ) /* MVS VERSION */ + /* This is a bug fixed revision applied over the original cart. The original P1 and P2 stayed in the cart and this */ + /* 512k ROM was added to replace the first 512k of P1. */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ + /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ + ROM_LOAD16_WORD_SWAP( "095-epr.ep1", 0x000000, 0x080000, CRC(be0060a3) SHA1(fa741d34898ad5004a23e280139d1446f1a082c7) ) /* M27C4002 */ + /* P is on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ + ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( rbff1k ) /* KOREAN VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "095-p1k.p1", 0x000000, 0x100000, CRC(f705364b) SHA1(2668e15663a2c7ec7396f40e4f5f454505968ce8) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ + + NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ + ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ + ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0096 + . NGM-096 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-096 +****************************************/ + +ROM_START( aof3 ) + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "096-p1.p1", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */ + + NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */ + ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */ + ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +ROM_START( aof3k ) /* KOREAN VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "196-p1k.p1", 0x000000, 0x100000, CRC(a0780789) SHA1(83657922a9a3502653ef8cda45b15d9f935aa96a) ) + ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */ + + NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */ + ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */ + ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0097 + . NGM-097 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-097 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( sonicwi3 ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "097-p1.p1", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) /* TC5332201 */ + ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) /* TC5316200 */ + + ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) /* Plane 0,1 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) /* Plane 2,3 */ /* TC5332202 */ + ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0098 + Idol Mahjong - final romance 2 (CD only? not confirmed, MVS might exist) +****************************************/ + + +/**************************************** + ID-0099 + Neo Pool Masters +****************************************/ + + +/* ID range from 100 - 199 is used for Korean (some) and Neo Print carts */ + +/* + The following ID's are used by Korean releases: + + ID-0122 - Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV) + ID-0123 - Quiz Daisousa Sen - The Last Count Down (Korean release) + ID-0124 - Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release) + ID-0134 - The Last Soldier (Korean release of The Last Blade) + ID-0140 - Real Bout Fatal Fury 2 - The Newcomers (Korean release) + ID-0152 - The King of Fighters '99 - Millennium Battle (Korean release) + ID-0163 - Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II) + ID-0187 - Fighters Swords (Korean release of Samurai Shodown III) + ID-0196 - Art of Fighting 3 - The Path of the Warrior (Korean release) +*/ + + +/**************************************** + ID-0200 + . NGM-200 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-200 +****************************************/ + +ROM_START( turfmast ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "200-p1.p1", 0x100000, 0x100000, CRC(28c83048) SHA1(e7ef87e1de21d2bb17ef17bb08657e92363f0e9a) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000) + + NEO_SFIX_128K( "200-s1.s1", CRC(9a5402b2) SHA1(ae1a0b5450869d61b2bb23671c744d3dda8769c4) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "200-m1.m1", CRC(9994ac00) SHA1(7bded797f3b80fd00bcbe451ac0abe6646b19a14) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "200-v1.v1", 0x000000, 0x200000, CRC(00fd48d2) SHA1(ddfee09328632e598fd51537b3ae8593219b2111) ) /* mask rom TC5316200 */ + ROM_LOAD( "200-v2.v2", 0x200000, 0x200000, CRC(082acb31) SHA1(2f1c053040e9d50a6d45fd7bea1b96742bae694f) ) /* mask rom TC5316200 */ + ROM_LOAD( "200-v3.v3", 0x400000, 0x200000, CRC(7abca053) SHA1(e229bc0ea82a371d6ee8fd9fe442b0fd141d0a71) ) /* mask rom TC5316200 */ + ROM_LOAD( "200-v4.v4", 0x600000, 0x200000, CRC(6c7b4902) SHA1(d55e0f542d928a9a851133ff26763c8236cbbd4d) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "200-c1.c1", 0x000000, 0x400000, CRC(8e7bf41a) SHA1(148eb747f2f4d8e921eb0411c88a636022ceab80) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "200-c2.c2", 0x000001, 0x400000, CRC(5a65a8ce) SHA1(d6c7afe035411f3eacdf6868d36f91572dd593e0) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0201 + . NGM-201 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . NGH-201 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( mslug ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) ) /* TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) ) /* TC5332204 */ + ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) ) /* TC5332204 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0202 + . ??M-202 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 +****************************************/ + +ROM_START( puzzledp ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "202-p1.p1", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) ) /* TC534200 */ + /* also found set with p1 on eprom with sticker; label is 202-P1 */ + + NEO_SFIX_128K( "202-s1.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) /* TC531001 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) /* TC534200 */ + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0203 + . ADM-010 + NEO-MVS PROGTOP / NEO-MVS CHA42G-3B + . ADH-010 +****************************************/ + +ROM_START( moshougi ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "203-p1.p1", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) ) /* TC538200 */ + + NEO_SFIX_128K( "203-s1.s1", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "203-m1.m1", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "203-v1.v1", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) ) /* TC5316200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "203-c1.c1", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "203-c2.c2", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0204 + QP (prototype) 1997 Success +****************************************/ + +/**************************************** + ID-0205 + Neo-Geo CD Special (CD only) +****************************************/ + +/**************************************** + ID-0206 + . ??M-206 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . ??H-206 +****************************************/ + +ROM_START( marukodq ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "206-p1.p1", 0x000000, 0x100000, CRC(c33ed21e) SHA1(bffff0d17e587e67672227e60c0ebd3f3a7193e6) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "206-s1.s1", CRC(f0b68780) SHA1(3f60950b14d121a5af3e6a8155ae9832ddc6ec46) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "206-m1.m1", CRC(0e22902e) SHA1(fb8466c342d4abd8bb4cad01c6ceab03f96cdad8) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "206-v1.v1", 0x000000, 0x200000, CRC(5385eca8) SHA1(1ca171ce74a5885ae8841d0924de21dc0af2214e) ) /* mask rom TC5316200 */ + ROM_LOAD( "206-v2.v2", 0x200000, 0x200000, CRC(f8c55404) SHA1(cecc41e9e08a7ff05b6f62e713fc86a816bf55a2) ) /* mask rom TC5316200 */ + + ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "206-c1.c1", 0x000000, 0x400000, CRC(846e4e8e) SHA1(ba9b96340aca7fadaff0e6d484391ddb5c5e7bd4) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "206-c2.c2", 0x000001, 0x400000, CRC(1cba876d) SHA1(3254ceb5a2f76c172930d9889d5d81e093e87628) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "206-c3.c3", 0x800000, 0x100000, CRC(79aa2b48) SHA1(31f94217cd35f48845c74a55256314c16fd26ed7) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "206-c4.c4", 0x800001, 0x100000, CRC(55e1314d) SHA1(fffbc9eb9000ff5b1063af1817de7ea4a267fedd) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0207 + . ??M-207 + NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B + NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B +****************************************/ + +ROM_START( neomrdo ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "207-p1.p1", 0x000000, 0x100000, CRC(334ea51e) SHA1(0a642f8565ec6e9587ed767bcf177f4677547162) ) /* TC538200 */ + + NEO_SFIX_128K( "207-s1.s1", CRC(6aebafce) SHA1(5db03715fbed62f2ff3cef7f93606f30261c0362) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "207-m1.m1", CRC(b5b74a95) SHA1(7b01f3b87c247cc7472591f8cdcf0ae8065e31c6) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "207-v1.v1", 0x000000, 0x200000, CRC(4143c052) SHA1(561b19bc8811b80f2f42ffc0b5df27132696470a) ) /* TC5316200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "207-c1.c1", 0x000000, 0x200000, CRC(c7541b9d) SHA1(25ca1a2b14cc2648d8dbe432cbd1396017af822c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "207-c2.c2", 0x000001, 0x200000, CRC(f57166d2) SHA1(bf3aa47d17156485c2177fb63cba093f050abb98) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0208 + . ??M-208 + NEO-MVS PROGBK1 / NEO-MVS CHA256B +****************************************/ + +ROM_START( sdodgeb ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "208-p1.p1", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "208-s1.s1", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "208-m1.m1", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "208-v1.v1", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) ) /* TC5332204 */ + + ROM_REGION( 0x0c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "208-c1.c1", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "208-c2.c2", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "208-c3.c3", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "208-c4.c4", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0209 + . ??M-209 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( goalx3 ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "209-p1.p1", 0x100000, 0x100000, CRC(2a019a79) SHA1(422a639e74284fef2e53e1b49cf8803b0a7e80c6) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "209-s1.s1", CRC(c0eaad86) SHA1(99412093c9707d51817893971e73fb8469cdc9d0) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "209-m1.m1", CRC(cd758325) SHA1(b51eac634fc646c07210dff993018ad9ebabd3f9) ) /* mask rom TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "209-v1.v1", 0x000000, 0x200000, CRC(ef214212) SHA1(3e05ccaa2d06decb18b379b96f900c0e6b39ce70) ) /* mask rom TC5316200 */ + + ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "209-c1.c1", 0x000000, 0x400000, CRC(b49d980e) SHA1(722d10074f16fa7f14c71270f43fdab427b85e2b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "209-c2.c2", 0x000001, 0x400000, CRC(5649b015) SHA1(9c9674f3841e6becd3b8e63bae9b9df45ac9f11e) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "209-c3.c3", 0x800000, 0x100000, CRC(5f91bace) SHA1(3864be27dce6d8f8828d3bf09bfc8116116a2b56) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "209-c4.c4", 0x800001, 0x100000, CRC(1e9f76f2) SHA1(b57fdc226bfe328b8848127fb4292295f1287bf6) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0210 + Karate Ninja Sho (prototype) 1995 Yumekobo +****************************************/ + +/**************************************** + ID-0211 + Oshidashi Zintrick (CD only? not confirmed, MVS might exist) 1996 SNK/ADK +****************************************/ + +/**************************************** + ID-0212 + . ADM-011 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . ADH-011 +****************************************/ + +ROM_START( overtop ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "212-p1.p1", 0x100000, 0x100000, CRC(16c063a9) SHA1(5432869f830eed816ee5ed71c7fd39f749d15619) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "212-s1.s1", CRC(481d3ddc) SHA1(7b0df3fc5b19f282abfd0eb5a4c6ed836a536ece) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "212-m1.m1", CRC(fcab6191) SHA1(488b8310b0957f0012fe50f73641b606f6ac4a57) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "212-v1.v1", 0x000000, 0x400000, CRC(013d4ef9) SHA1(438a697c44525bdf78b54432c4f7217ab5667047) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x1400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "212-c1.c1", 0x0000000, 0x400000, CRC(50f43087) SHA1(e5a8c914ef8e77c7a29bffdeb18f1877b5c2fc7d) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "212-c2.c2", 0x0000001, 0x400000, CRC(a5b39807) SHA1(e98e82cf99576cb48cc5e8dc655b7e9a428c2843) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "212-c3.c3", 0x0800000, 0x400000, CRC(9252ea02) SHA1(269066e0f893d3e8e7c308528026a486c2b023a2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "212-c4.c4", 0x0800001, 0x400000, CRC(5f41a699) SHA1(abbb162658e06a37db8475b659ece7e1270ebb49) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "212-c5.c5", 0x1000000, 0x200000, CRC(fc858bef) SHA1(0031def13e7cf4a465a1eca7aa0d13d1b21427e2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "212-c6.c6", 0x1000001, 0x200000, CRC(0589c15e) SHA1(b1167caf7cb61f3e05a5d342290bfe00e02e9d38) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0213 + . ??M-213 + NEO-MVS PROGBK1 / NEO-MVS CHA256B +****************************************/ + +ROM_START( neodrift ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "213-p1.p1", 0x100000, 0x100000, CRC(e397d798) SHA1(10f459111db4bab7aaa63ca47e83304a84300812) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000) + + NEO_SFIX_128K( "213-s1.s1", CRC(b76b61bc) SHA1(5fdb407d16ab9e33c4f26ee09ff70891ae1d2bd0) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "213-m1.m1", CRC(200045f1) SHA1(7a6cd1c8d4447ea260d7ff4520c676b8d685f2e4) ) /* mask rom TC531001*/ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "213-v1.v1", 0x000000, 0x200000, CRC(a421c076) SHA1(129f05c1a28a6493442f47a79c2d3577a1a43ef5) ) /* mask rom TC5316200 */ + ROM_LOAD( "213-v2.v2", 0x200000, 0x200000, CRC(233c7dd9) SHA1(be7f980aa83831b6605aaaf4ec904180bb96c935) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "213-c1.c1", 0x000000, 0x400000, CRC(3edc8bd3) SHA1(71dcba9afd3b08ebfa13294644dcb365c2740780) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "213-c2.c2", 0x000001, 0x400000, CRC(46ae5f16) SHA1(a01310632734e776e889af6a531063cb1661c33a) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0214 + . NGM-214 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGSS3 / NEO-MVS CHA256 + . NGH-214 + NEO-AEG PROGBK1Y / NEO-GEO AEG CHA256RY +****************************************/ + +ROM_START( kof96 ) /* MVS VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ + /* also found sets with ep1 / ep2 / ep3 / ep4 on eprom and 214-P5 on TC5316200; correct chip labels for eproms is unknown */ + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */ + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */ + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( kof96h ) /* AES VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "214-pg1.p1", 0x000000, 0x100000, CRC(bd3757c9) SHA1(35392a044117e46c088ff0fdd07d69a3faa4f96e) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ + + NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */ + ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */ + ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0215 + . NGM-215 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-215 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( ssideki4 ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "215-p1.p1", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "215-s1.s1", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "215-m1.m1", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "215-v1.v1", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) ) /* TC5332204 */ + ROM_LOAD( "215-v2.v2", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) ) /* TC5316200 */ + + ROM_REGION( 0x1400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "215-c1.c1", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "215-c2.c2", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "215-c3.c3", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "215-c4.c4", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "215-c5.c5", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "215-c6.c6", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0216 + . ??M-216 + NEO-MVS PROGTOP / NEO-MVS CHA256 + . ??H-216 + NEO-AEG PROGTOP2Y / NEO-AEG CHA256BY + NEO-AEG PROGTOP2Y / NEO-AEG CHA256[B] +****************************************/ + +ROM_START( kizuna ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ + ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) ) /* mask rom TC5316200 */ + ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ + ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ + /* 400000-7fffff empty */ + ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + + +ROM_START( kizuna4p ) /* same cartridge as kizuna - 4-player mode is enabled by an extension board that plugs into a compatible MVS */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) ) /* mask rom TC531000 */ + + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) + /* these two BIOSes are the only ones we have that are compatible with the 4-player extension board */ + ROM_SYSTEM_BIOS( 0, "asia", "NEO-MVH MV1C" ) + ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-45.sp1",0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) + ROM_SYSTEM_BIOS( 1, "japan", "Japan MVS (J3)" ) + ROM_LOAD16_WORD_SWAP_BIOS( 1, "japan-j3.bin",0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) + ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) + + ROM_REGION( 0x30000, "cslot1:audiocpu", 0 ) + ROM_LOAD( "216-m1.m1", 0x00000, 0x20000, CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) ) /* mask rom TC531001 */ + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) /* TC5316200 */ + ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) ) /* mask rom TC5316200 */ + ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) /* TC5316200 */ + ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1c00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ /* TC5316200 */ + /* 400000-7fffff empty */ + ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ /* TC5316200 */ + /* 1400000-17fffff empty */ + ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + + +/**************************************** + ID-0217 + . ADM-012 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . ADH-012 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( ninjamas ) + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "217-p1.p1", 0x000000, 0x100000, CRC(3e97ed69) SHA1(336bcae375a5109945d11356503bf0d9f4a9a50a) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) ) /* TC5316200 */ + + NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) ) /* TC5332204 */ + ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0218 + . NGM-218 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-218 +****************************************/ + +ROM_START( ragnagrd ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "218-p1.p1", 0x100000, 0x100000, CRC(ca372303) SHA1(67991e4fef9b36bc7d909810eebb857ac2f906f1) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) ) /* mask rom TC5332204 */ + ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0219 + . NGM-219 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( pgoal ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "219-p1.p1", 0x100000, 0x100000, CRC(6af0e574) SHA1(c3f0fed0d942e48c99c80b1713f271c033ce0f4f) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "219-s1.s1", CRC(002f3c88) SHA1(a8a5bbc5397c8ae9858e38997ebdc713b7b4f50a) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "219-m1.m1", CRC(958efdc8) SHA1(aacc6056b1ff48cde8f241a11a27473cfb4b4aa3) ) /* TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "219-v1.v1", 0x000000, 0x400000, CRC(d0ae33d9) SHA1(cb21a91184d9d84ff25ca86c00dcadfc210272a8) ) /* TC5332204 */ + + ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "219-c1.c1", 0x0000000, 0x400000, CRC(67fec4dc) SHA1(b99767972a2a4fce2b704df8d08e6b092665a696) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "219-c2.c2", 0x0000001, 0x400000, CRC(86ed01f2) SHA1(9d7d1493946e8fbbd572503d2362b0156c023b76) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "219-c3.c3", 0x0800000, 0x200000, CRC(5fdad0a5) SHA1(56f6d2a7224aa4e82a1858079f918e85cadbd6c2) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "219-c4.c4", 0x0800001, 0x200000, CRC(f57b4a1c) SHA1(875ca69afbc5304ec23f4bc9186abe92f477f6c8) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0220 + Choutetsu Brikin'ger - Iron clad (prototype) 1996 Saurus +****************************************/ + +ROM_START( ironclad ) /* Prototype - crcs should match the ones of the unreleased dump. */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "proto_220-p1.p1", 0x100000, 0x100000, CRC(62a942c6) SHA1(12aaa7d9bd84328d1bf4610e056b5c57d0252537) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) ) + + NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) ) + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) ) + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) ) /* Plane 2,3 */ +ROM_END + +ROM_START( ironclado ) /* Prototype - bootleg/hack based on later release. */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "proto_220-p1o.p1", 0x100000, 0x100000, CRC(ce37e3a0) SHA1(488f95fa15f56eea6666dda13d96ec29dba18e19) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) ) + + NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) ) + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) ) + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0221 + . NGM-221 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-221 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( magdrop2 ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "221-p1.p1", 0x000000, 0x80000, CRC(7be82353) SHA1(08ab39f52b893591c13a7d7aa26b20ce86e9ddf5) ) /* mask rom TC534200 */ + + NEO_SFIX_128K( "221-s1.s1", CRC(2a4063a3) SHA1(0e09a7d88d85b1a2100888f4211960ea56ef978b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "221-m1.m1", CRC(bddae628) SHA1(02c77e6aaaed43e39778bf83a3184e7c21db63d4) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "221-v1.v1", 0x000000, 0x200000, CRC(7e5e53e4) SHA1(72b063b2d4acaaf72a20d14ad5bfc90cb64d3fed) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "221-c1.c1", 0x000000, 0x400000, CRC(1f862a14) SHA1(1253e8b65d863d552d00dbdbfc5c168f5fc7edd1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "221-c2.c2", 0x000001, 0x400000, CRC(14b90536) SHA1(e0d41f6b84d8261729f154b44ddd95c9b9c0714a) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0222 + . NGM-222 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-222 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( samsho4 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "222-p1.p1", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) /* TC5332205 */ + + NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) /* TC5332204 */ + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) /* TC5332204 */ + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( samsho4k ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "222-p1k.p1", 0x000000, 0x100000, CRC(06e0a25d) SHA1(81e6727e0acb67ae41383518c0fc07f28d232979) ) + ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) /* TC5332205 */ + + NEO_SFIX_128K( "222-s1k.s1", CRC(d313687d) SHA1(9ba468a9d582ef76c863f57ad9a0f811f3f08bd9) ) + + NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) /* TC5332204 */ + ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) /* TC5332204 */ + ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0223 + . NGM-223 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . NGH-223 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( rbffspec ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "223-p1.p1", 0x000000, 0x100000, CRC(f84a2d1d) SHA1(fc19225d9dbdb6bd0808023ee32c7829f6ffdef6) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) /* TC5332205 */ + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) /* TC5332204 */ + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) /* TC5332204 */ + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( rbffspeck ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "223-p1k.p1", 0x000000, 0x100000, CRC(b78c8391) SHA1(936b356ac135331b10a37bc10882ec2e4f6b400b) ) + /* Chip label is correct. They used Cart ID 0124 as 0123 was already used by quizdaisk */ + ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) /* TC5332205 */ + + NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) /* TC5332204 */ + ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) /* TC5332204 */ + ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0224 + . ADM-013 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . ADH-013 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( twinspri ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "224-p1.p1", 0x100000, 0x100000, CRC(7697e445) SHA1(5b55ca120f77a931d40719b14e0bfc8cac1d628c) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "224-s1.s1", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "224-m1.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) ) /* mask rom TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "224-v1.v1", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) ) /* mask rom TC5332204 */ + ROM_LOAD( "224-v2.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) ) /* mask rom TC5316200 */ + + ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "224-c1.c1", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "224-c2.c2", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "224-c3.c3", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "224-c4.c4", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0225 + . SUM-225 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . SUH-225 +****************************************/ + +ROM_START( wakuwak7 ) + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "225-p1.p1", 0x000000, 0x100000, CRC(b14da766) SHA1(bdffd72ff705fc6b085a4026217bac1c4bc93163) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) ) /* TC5316200 */ + /* also found Korean MVS set with ep1 /ep2 on eprom and sp2 on TC5316200 on NEO-MVS PROGBK1; correct chip label for eproms unknown */ + + NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) ) /* TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) ) /* TC5332204 */ + ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) ) /* TC5332204 */ + + ROM_REGION( 0x1800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0226 + Pair Pair Wars (prototype) 1996 Sunsoft? +****************************************/ + +/**************************************** + ID-0227 + . NGM-227 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-227 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( stakwin2 ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "227-p1.p1", 0x100000, 0x100000, CRC(daf101d2) SHA1(96b90f884bae2969ebd8c04aba509928464e2433) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "227-s1.s1", CRC(2a8c4462) SHA1(9155fbb5fee6d46a68d17ea780a7a92565f9aa47) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "227-m1.m1", CRC(c8e5e0f9) SHA1(09bb05ae6f09b59b9e4871fae1fc7c3bafd07394) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "227-v1.v1", 0x000000, 0x400000, CRC(b8f24181) SHA1(0a3af88d20ff65b82c58325d32c20b99fc07f7f3) ) /* mask rom TC5332204 */ + ROM_LOAD( "227-v2.v2", 0x400000, 0x400000, CRC(ee39e260) SHA1(4ed6802564ce262ebe92c7276424056b70998758) ) /* mask rom TC5332204 */ + + ROM_REGION( 0xc00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "227-c1.c1", 0x0000000, 0x400000, CRC(7d6c2af4) SHA1(e54f0ab15c95d7a6f965b5d8ab28b5445100650b) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "227-c2.c2", 0x0000001, 0x400000, CRC(7e402d39) SHA1(9d3a44f98ddd0b606c8b3efa0c6b9d5a46c0bfeb) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "227-c3.c3", 0x0800000, 0x200000, CRC(93dfd660) SHA1(5b473c556ef919cd7a872351dbb20a636aae32b6) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "227-c4.c4", 0x0800001, 0x200000, CRC(7efea43a) SHA1(3f2b1718fe7be06b6d75ec34badc2de2a3554d3e) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0228 + Ghostlop (prototype) 1996 Data East Corp. +****************************************/ + +ROM_START( ghostlop ) /* Prototype */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "proto_228-p1.p1", 0x000000, 0x100000, CRC(6033172e) SHA1(f57fb706aa8dd9e5f9e992a5d35c1799578b59f8) ) + + NEO_SFIX_128K( "proto_228-s1.s1", CRC(83c24e81) SHA1(585ef209d8bfc23bdccc1f37d8b764eeedfedc1c) ) + + NEO_BIOS_AUDIO_128K( "proto_228-m1.m1", CRC(fd833b33) SHA1(ab6c218c42cba821654cbdae154efecb69f844f6) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "proto_228-v1.v1", 0x000000, 0x200000, CRC(c603fce6) SHA1(5a866471d35895b2ae13cbd5d1cb41bf2e72e1b8) ) + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "proto_228-c1.c1", 0x000000, 0x400000, CRC(bfc99efe) SHA1(5cd2545310142080b8286e787cf5b859f627b3db) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_228-c2.c2", 0x000001, 0x400000, CRC(69788082) SHA1(c3ecb42ddcbd9e16d0018a0c3adb56a911d813ca) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0229 + King of Fighters '96 CD Collection (CD only) +****************************************/ + + +/* With ID-0230 the product ID code changed from xxM-xxx / xxH-xxx to xxM-xxx0 / xxH-xxx0 */ + + +/**************************************** + ID-0230 + . NGM-2300 + NEO-MVS PROGBK1 / NEO-MVS CHA256B + . NGH-2300 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( breakers ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "230-p1.p1", 0x100000, 0x100000, CRC(ed24a6e6) SHA1(3fb77ae696d92d2f9a5d589e08b708545c7cda0a) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) ) /* TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) ) /* TC5332204 */ + ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) ) /* TC5332204 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0231 + . ??M-2310 + NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B +****************************************/ + +ROM_START( miexchng ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "231-p1.p1", 0x000000, 0x80000, CRC(61be1810) SHA1(1ab0e11352ca05329c6e3f5657b60e4a227fcbfb) ) /* mask rom TC534200 */ + + NEO_SFIX_128K( "231-s1.s1", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "231-m1.m1", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) ) /* mask rom TC531001 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "231-v1.v1", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x600000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "231-c1.c1", 0x000000, 0x200000, CRC(6c403ba3) SHA1(3830446fbd07d5a6564f9ac68a4bec5ff5b7d5c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "231-c2.c2", 0x000001, 0x200000, CRC(554bcd9b) SHA1(e658161618bd41a66f1040be409efdea28020cf6) ) /* Plane 2,3 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "231-c3.c3", 0x400000, 0x100000, CRC(4f6f7a63) SHA1(10935dbc1f52b95979a097b13a114cff18d4d446) ) /* Plane 0,1 */ /* mask rom TC538200 */ + ROM_LOAD16_BYTE( "231-c4.c4", 0x400001, 0x100000, CRC(2e35e71b) SHA1(6f248191c2c60ca1b1b4f2ebf08756e036682144) ) /* Plane 2,3 */ /* mask rom TC538200 */ +ROM_END + +/**************************************** + ID-0232 + . NGM-2320 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2320 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( kof97 ) /* MVS VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( kof97h ) /* AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "232-pg1.p1", 0x000000, 0x100000, CRC(5c2400b7) SHA1(49e23f80c012c62146a1bb8f254a7597823de430) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( kof97k ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + + NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "232-m1k.m1", CRC(bbea9070) SHA1(c26c2e29fe90966dd574838be63f0037ea799aca) ) + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0233 + . NGM-2330 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-2330 + NEO-AEG PROGBK1Y / NEO-AEG CHA256RY +****************************************/ + +ROM_START( magdrop3 ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "233-p1.p1", 0x000000, 0x100000, CRC(931e17fa) SHA1(4a95c4b79d0878485ce272e9f4c4f647bec0e070) ) /* TC538200 */ + + NEO_SFIX_128K( "233-s1.s1", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "233-m1.m1", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) ) /* TC531001 */ + + ROM_REGION( 0x480000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "233-v1.v1", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) ) /* TC5332204 */ + ROM_LOAD( "233-v2.v2", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) ) /* TC534200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "233-c1.c1", 0x000000, 0x400000, CRC(65e3f4c4) SHA1(a6deb75d802225327f8f1c2733a7f2b47e722e59) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "233-c2.c2", 0x000001, 0x400000, CRC(35dea6c9) SHA1(ea133bf947f950236f49d0ae0d1a9af3bc1a9a50) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "233-c3.c3", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "233-c4.c4", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0234 + . NGM-2340 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2340 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( lastblad ) /* MVS VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "234-p1.p1", 0x000000, 0x100000, CRC(e123a5a3) SHA1(a3ddabc00feeb54272b145246612ad4632b0e413) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ + /* also found sets with p1 / sp2 / ep1 / ep2 / m1 on eprom with sticker */ + /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1 */ + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( lastbladh ) /* AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "234-pg1.p1", 0x000000, 0x100000, CRC(cd01c06d) SHA1(d66142571afe07c6191b52f319f1bc8bc8541c14) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( lastsold ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "134-p1k.p1", 0x000000, 0x100000, CRC(906f3065) SHA1(25167665f1b8e82e13f7fcf4d0e3c54a925c2a58) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */ + + NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) /* TC5332204 */ + ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) /* TC5332204 */ + ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) /* TC5332204 */ + ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0235 + . ??M-2350 + NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2 +****************************************/ + +ROM_START( puzzldpr ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "235-p1.p1", 0x000000, 0x080000, CRC(afed5de2) SHA1(a5d82c6dbe687505e8c8d7339908da45cd379a0b) ) /* TC534200 */ + + NEO_SFIX_128K( "235-s1.s1", CRC(3b13a22f) SHA1(4506fc340d9658a50fa415676564f10bbfba2703) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) /* TC531001 */ + + ROM_REGION( 0x080000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) /* TC534200 */ + + ROM_REGION( 0x200000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0236 + . ??M-2360 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y +****************************************/ + +ROM_START( irrmaze ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "236-p1.p1", 0x100000, 0x100000, CRC(4c2ff660) SHA1(4a0cbd09044648ff9ec67723729f16d422c34bda) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "236-s1.s1", CRC(5d1ca640) SHA1(40a9668a1742a44597a07ce72273d17119815637) ) /* TC531000 */ + + ROM_REGION16_BE( 0x20000, "mainbios", 0 ) + /* special BIOS with trackball support, we only have one Irritating Maze bios and thats asia */ + ROM_LOAD16_WORD_SWAP("236-bios.sp1", 0x00000, 0x020000, CRC(853e6b96) SHA1(de369cb4a7df147b55168fa7aaf0b98c753b735e) ) + ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) + + ROM_REGION( 0x30000, "cslot1:audiocpu", 0 ) + ROM_LOAD( "236-m1.m1", 0x00000, 0x20000, CRC(880a1abd) SHA1(905afa157aba700e798243b842792e50729b19a0) ) /* TC531001 */ + ROM_RELOAD( 0x10000, 0x20000 ) + + ROM_REGION( 0x300000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "236-v1.v1", 0x000000, 0x200000, CRC(5f89c3b4) SHA1(dc8fd561cf8dfdd41696dcf14ea8d2d0ac4eec4b) ) /* TC5316200 */ + ROM_LOAD( "236-v2.v2", 0x200000, 0x100000, CRC(72e3add7) SHA1(dc49f05274693255416d2e41ecc088027b798eb9) ) /* TC538200 */ + + ROM_REGION( 0x0800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "236-c1.c1", 0x000000, 0x400000, CRC(c1d47902) SHA1(727001c34f979226fc8f581113ce2aaac4fc0d42) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "236-c2.c2", 0x000001, 0x400000, CRC(e15f972e) SHA1(6a329559c57a67be73a6733513b59e9e6c8d61cc) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0237 + . ??M-2370 + NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B +****************************************/ + +ROM_START( popbounc ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "237-p1.p1", 0x000000, 0x100000, CRC(be96e44f) SHA1(43679da8664fbb491103a1108040ddf94d59fc2b) ) /* TC538200 */ + + NEO_SFIX_128K( "237-s1.s1", CRC(b61cf595) SHA1(b14f8b78af7c634d41cf34d36b11b116e61f7342) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "237-m1.m1", CRC(d4c946dd) SHA1(6ca09040b5db8d89511d627954c783154d58ab01) ) /* TC531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "237-v1.v1", 0x000000, 0x200000, CRC(edcb1beb) SHA1(62f086b9968b366b59276ee4ae3c32c4d76fc6ce) ) /* TC5316200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "237-c1.c1", 0x000000, 0x200000, CRC(eda42d66) SHA1(2735538fcb9dc0c16e043a8728c8b642650189f4) ) /* Plane 0,1 */ /* TC5316200 */ + ROM_LOAD16_BYTE( "237-c2.c2", 0x000001, 0x200000, CRC(5e633c65) SHA1(9a82107caf027317c173c1c1ef676f0fdeea79b2) ) /* Plane 2,3 */ /* TC5316200 */ +ROM_END + +/**************************************** + ID-0238 + . ??M-2380 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( shocktro ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "238-p1.p1", 0x000000, 0x100000, CRC(5677456f) SHA1(f76169fa5c90871d65e2a16fd1bb036c90533ac8) ) + ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) /* TC5332205 */ + + NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) /* TC5332204 */ + ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( shocktroa ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "238-pg1.p1", 0x000000, 0x100000, CRC(efedf8dc) SHA1(f638df9bf7aa7d514ee2bccfc7f2adbf39ca83fc) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) /* TC5332205 */ + + NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) /* TC5332204 */ + ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) /* TC5316200 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0239 + . NGM-2390 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2390 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( blazstar ) + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "239-p1.p1", 0x000000, 0x100000, CRC(183682f8) SHA1(dcee1c2cf4a991ca1f9f2b40c4a738f21682807b) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "239-p2.sp2", 0x100000, 0x200000, CRC(9a9f4154) SHA1(f8805453d0995c8fa16cd9accfb7a990071ca630) ) /* TC5316200 */ + + NEO_SFIX_128K( "239-s1.s1", CRC(d56cb498) SHA1(420ce56431dc7f3f7de84fcbc8c0a17b5eab205e) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "239-m1.m1", CRC(d31a3aea) SHA1(e23abfeb23052f0358edcf2c83401025fe632511) ) /* TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "239-v1.v1", 0x000000, 0x400000, CRC(1b8d5bf7) SHA1(67fc1f7e36e92a89cd1d415eb31a2892f57b0d04) ) /* TC5332204 */ + ROM_LOAD( "239-v2.v2", 0x400000, 0x400000, CRC(74cf0a70) SHA1(b00451a2a30de2517ae3eca35eb1fe985b950eb8) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "239-c1.c1", 0x0000000, 0x400000, CRC(84f6d584) SHA1(ff36db8504611b0d8d942d1e24823ff71e4aeb37) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c2.c2", 0x0000001, 0x400000, CRC(05a0cb22) SHA1(4abe03e7f3a86f277131d413a3151c7b9c3646c8) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c3.c3", 0x0800000, 0x400000, CRC(5fb69c9e) SHA1(77b96518d8ad8ad120537e0f8ba65d69d1c33566) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c4.c4", 0x0800001, 0x400000, CRC(0be028c4) SHA1(d3f8b37786ca7838c3525895a7f2b49afc8530d4) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c5.c5", 0x1000000, 0x400000, CRC(74bae5f8) SHA1(812c9a31f0721c2971a316b084ce69337dbe3747) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c6.c6", 0x1000001, 0x400000, CRC(4e0700d2) SHA1(cd059fb713c403208923c17e1e8ef02fcfd2fe8d) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c7.c7", 0x1800000, 0x400000, CRC(010ff4fd) SHA1(2571d406442f007a7458d8ccb0939a9201c9c9bf) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "239-c8.c8", 0x1800001, 0x400000, CRC(db60460e) SHA1(a5cb27c0983c8b400d96fd0828ef0639a66d4dba) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0240 + . NGM-2400 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2400 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( rbff2 ) /* MVS VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "240-p1.p1", 0x000000, 0x100000, CRC(80e41205) SHA1(8f83eb8ff54be4ec40f8a0dd2cbe56c54908d00a) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ + ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ + ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( rbff2h ) /* AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "240-pg1.p1", 0x000000, 0x100000, CRC(b6969780) SHA1(e3373d18e0f0724d69efb8024a27cca121f1b5b2) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ + ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ + ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( rbff2k ) /* KOREAN VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "140-p1k.p1", 0x000000, 0x100000, CRC(965edee1) SHA1(7f4b947b19ccfee32fc73e4fd89645eb313b5c77) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) /* TC5332205 */ + + NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) /* TC532000 */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) /* TC5332204 */ + ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) /* TC5332204 */ + ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) ) /* TC5332204 */ + ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0241 + . NGM-2410 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + NEO-MVS PROGBK1 / NEO-MVS CHA256 + . NGH-2410 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( mslug2 ) /* MVS AND AES VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "241-p1.p1", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) /* TC5316200 */ + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) /* TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) /* TC5332204 */ + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + /* Different layout with 8xC (16 mbit) also exists; naming sheme 241-Cx */ + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + + +/**************************************** + ID-0941 - community produced hack +****************************************/ +ROM_START( mslug2t ) + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "941-p1.p1", 0x000000, 0x100000, CRC(df5d6fbc) SHA1(b9cc3e29afc12dc98daac9afb4f94e2cdd8b455c) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) /* TC5316200 */ + + NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) /* TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) /* TC5332204 */ + ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) /* TC5332204 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + /* Different layout with 8xC (16 mbit) also exists; naming sheme 241-Cx */ + ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + + +/**************************************** + ID-0242 + . NGM-2420 + NEO-MVS PROGSF1 (1998.6.17) (protected board) / NEO-MVS CHA512Y + NEO-MVS PROGSF1E (1998.6.18) (protected board) / NEO-MVS CHA512Y + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2420 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( kof98 ) /* encrypted code + protection */ /* MVS VERSION */ + /* This set uses NEO-MVS PROGSF1 board */ + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof98a ) /* encrypted code + protection */ /* MVS VERSION */ + /* This set uses NEO-MVS PROGSF1E board; same rom data as in kof98 is used */ + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ + ROM_LOAD16_WORD_SWAP( "242-ep1.ep1", 0x200000, 0x200000, CRC(3f74a000) SHA1(e887e0ac232683bd28703e08c4055fd0ea36402c) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "242-ep2.ep2", 0x400000, 0x200000, CRC(6e474841) SHA1(0ce401277f9c53435ea00b930efe361c8d25a7d9) ) /* M27C160 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof98k ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */ + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + /* Correct chip label */ + NEO_BIOS_AUDIO_256K( "242-m1k.m1", CRC(ce12da0c) SHA1(e7c01dae2852d543d1a58d55735239f6a5aa05a5) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof98ka ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */ + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) /* mask rom 16mbit */ + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + /* Correct chip label */ + NEO_BIOS_AUDIO_256K( "242-mg1k.m1", CRC(ce9fb07c) SHA1(631d995f1291dd803fb069f3b25e7b9ed30d8649) ) /* 27C2000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof98h ) /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) /* TC5332205 */ + + NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) /* TC531000 */ + + NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) /* TC5332204 */ + ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) /* TC5332204 */ + ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) /* TC5332204 */ + ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0243 + . NGM-2430 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2430 + NEO-AEG PROGBK1Y / NEO-AEG CHA512Y +****************************************/ + +ROM_START( lastbld2 ) /* MVS AND AES VERSION */ /* later revision */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "243-pg1.p1", 0x000000, 0x100000, CRC(af1e6554) SHA1(bd8526f60c2472937728a5d933fbd19d899f2cba) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) /* TC5332205 */ + + NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) /* TC5332204 */ + ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) /* TC5332204 */ + ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) /* TC5332204 */ + ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) /* TC5332204 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0244 + . ??M-2440 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . ??H-2440 +****************************************/ + +ROM_START( neocup98 ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "244-p1.p1", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "244-s1.s1", CRC(9bddb697) SHA1(2f479bcd5a433201168792a578de3057252d649f) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "244-m1.m1", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) ) /* TC531001 */ + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "244-v1.v1", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) ) /* TC5332204 */ + ROM_LOAD( "244-v2.v2", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) ) /* TC5316200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "244-c1.c1", 0x000000, 0x800000, CRC(c7a62b23) SHA1(4534ecc9ade69c543188c66229dcad89dbc48668) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "244-c2.c2", 0x000001, 0x800000, CRC(33aa0f35) SHA1(3443c7765c6aa177003d42bbfcac9f31d1e12575) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0245 + . ??M-2450 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y +****************************************/ + +ROM_START( breakrev ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "245-p1.p1", 0x100000, 0x100000, CRC(c828876d) SHA1(1dcba850e5cf8219d0945612cfded6d20ca8682a) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) ) /* mask rom TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) ) /* mask rom TC5332204 */ + ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x1800000, "cslot1:sprites", 0 ) + /* The chip labels and sizes are correct */ + ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) /* Plane 2,3 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) ) /* Plane 0,1 */ /* mask rom TC5332205 */ + ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) ) /* Plane 2,3 */ /* mask rom TC5332205 */ +ROM_END + +/**************************************** + ID-0246 + . NGM-2460 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y + . NGH-2460 +****************************************/ + +ROM_START( shocktr2 ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "246-p1.p1", 0x000000, 0x100000, CRC(6d4b7781) SHA1(3c9d53d5da9842bfd45037c919064dda3fb2e089) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) ) /* TC5332205 */ + + NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) /* TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) ) /* TC5332204 */ + ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) ) /* TC5332204 */ + ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0247 + . ??M-2470 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( flipshot ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "247-p1.p1", 0x000000, 0x100000, CRC(95779094) SHA1(a985e033bc6f137fa65855d3eed245d66d5b244a) ) /* mask rom TC538200 */ + + NEO_SFIX_128K( "247-s1.s1", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) ) /* mask rom TC531000 */ + + NEO_BIOS_AUDIO_128K( "247-m1.m1", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) ) /* mask rom TC 531001 */ + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "247-v1.v1", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "247-c1.c1", 0x000000, 0x200000, CRC(c9eedcb2) SHA1(7627f2810322c146511525eb70b573a6a5ede926) ) /* Plane 0,1 */ /* mask rom TC5316200 */ + ROM_LOAD16_BYTE( "247-c2.c2", 0x000001, 0x200000, CRC(7d6d6e87) SHA1(6475b58b9f91c20d1f465f3e892de0c68e12a92b) ) /* Plane 2,3 */ /* mask rom TC5316200 */ +ROM_END + +/**************************************** + ID-0248 + . ??M-2480 + NEO-MVS PROGBK1 / NEO-MVS CHA256 +****************************************/ + +ROM_START( pbobbl2n ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "248-p1.p1", 0x000000, 0x100000, CRC(9d6c0754) SHA1(95c70c2d51fc4de01e768e03cc800a850aaad5dc) ) /* TC538200 */ + + NEO_SFIX_128K( "248-s1.s1", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) ) /* TC531000DP */ + + NEO_BIOS_AUDIO_128K( "248-m1.m1", CRC(883097a9) SHA1(677bf9684c0c7977a9a3f0c1288e430040a53b49) ) /* TC531001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "248-v1.v1", 0x000000, 0x400000, CRC(57fde1fa) SHA1(af39bc141fc35b78dcacfd42b3abb29d7e5c2c89) ) /* TC5332204 */ + ROM_LOAD( "248-v2.v2", 0x400000, 0x400000, CRC(4b966ef3) SHA1(083c0e9fd7b8e506087648cdd8ec4206103984cd) ) /* TC5332204 */ + + ROM_REGION( 0xa00000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "248-c1.c1", 0x000000, 0x400000, CRC(d9115327) SHA1(a49aa836a902326cfe785428e1699fefcf8566d4) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "248-c2.c2", 0x000001, 0x400000, CRC(77f9fdac) SHA1(4642d71d32b6a05dc8bfa0f95c936a77c7cef05e) ) /* Plane 2,3 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "248-c3.c3", 0x800000, 0x100000, CRC(8890bf7c) SHA1(a52f6bafd60e72003bfe38c80c1dde24b4983b2a) ) /* Plane 0,1 */ /* TC538200 */ + ROM_LOAD16_BYTE( "248-c4.c4", 0x800001, 0x100000, CRC(8efead3f) SHA1(f577d2f7c6f850b3d100c36947ad15e33dfa0bed) ) /* Plane 2,3 */ /* TC538200 */ +ROM_END + +/**************************************** + ID-0249 + . ??M-2490 + NEO-MVS PROGBK1 / NEO-MVS CHA256 + NEO-MVS PROGBK1 / NEO-MVS CHA512Y +****************************************/ + +ROM_START( ctomaday ) /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "249-p1.p1", 0x100000, 0x100000, CRC(c9386118) SHA1(5554662c7bc8605889cac4a67fee05bbb4eb786f) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "249-s1.s1", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) ) /* TC531000DP */ + + NEO_BIOS_AUDIO_128K( "249-m1.m1", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) ) /* TC531001 */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "249-v1.v1", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) ) /* TC5332204 */ + ROM_LOAD( "249-v2.v2", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) ) /* TC538200 */ + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "249-c1.c1", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "249-c2.c2", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +/**************************************** + ID-0250 + . NGM-2500 + NEO-MVS PROGEOP (1999.2.2) / NEO-MVS CHA512Y + . NGH-2500 + NEO-AEG PROGEOP (1999.4.2) / NEO-AEG CHA512Y +****************************************/ + +ROM_START( mslugx ) /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) /* TC5332205 */ + + NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) /* TC531000 */ + + NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) /* TC531001 */ + + ROM_REGION( 0xa00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) /* TC5332204 */ + ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) /* TC5332204 */ + ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) /* Plane 0,1 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0251 + . NGM-2510 + SMA protected version found on: + NEO-MVS PROGLBA (NEO-SMA) (1999.4.12) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + Non SMA protected version found on: + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + . NGH-2510 + NEO-AEG PROGLBA (NEO-SMA) (1999.7.6) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) +****************************************/ + +ROM_START( kof99 ) /* Original Version - Encrypted Code & GFX */ /* MVS VERSION */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "251-p2.p2", 0x500000, 0x400000, CRC(90175f15) SHA1(aa9e75810438a8b45808a8bf32cb04d91b5c0b3a) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99h ) /* Original Version - Encrypted Code & GFX */ /* AES VERSION */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001DP */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99e ) /* Original Version - Encrypted Code & GFX */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */ + /* Is the SMA for this set correct? A set with this layout and a SMA.KB is known */ + ROM_LOAD16_WORD_SWAP( "251-ep1.p1", 0x100000, 0x200000, CRC(1e8d692d) SHA1(eea1aa8c0a17f089ac14831889c36535e559072c) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "251-ep2.p2", 0x300000, 0x200000, CRC(d6206e5a) SHA1(0e1100d03c40c6d5cfa899d009e319ae73fce6b8) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "251-ep3.p3", 0x500000, 0x200000, CRC(d58c3ef8) SHA1(f927d90d55b49944f448d6286e0cb913cc70ade1) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "251-ep4.p4", 0x700000, 0x200000, CRC(52de02ae) SHA1(f16924ff8eef92da7716236a6a055e22e090a02b) ) /* M27C160 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99k ) /* Original Version - Encrypted Code & GFX */ /* KOREAN VERSION */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "kb.neo-sma", 0x0c0000, 0x040000, CRC(9fccc688) SHA1(1a24d0fe7cabe7b346f538e099f1357bbf77bc89) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "151-pg1k.p1", 0x100000, 0x400000, CRC(ef259292) SHA1(e02f2d0c71eac74424507e4845991fbc12821045) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "151-pg2k.p2", 0x500000, 0x400000, CRC(f3898ec2) SHA1(c7fd230fbb97a9b171aeae8ff1a5cd39ba7fa9eb) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99ka ) /* Original Version - Encrypted GFX */ /* KOREAN VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) /* TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001DP */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof99p ) /* Prototype Version - Possibly Hacked */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "proto_251-p1.p1", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) ) + ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) + + /* This is the S1 from the prototype, the final is different */ + NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) + + /* Did the Prototype really use the same sound program / voice roms, sound isn't great .. */ + NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) /* TC531001 */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) /* TC5332204 */ + ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) /* TC5332204 */ + ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) /* TC5332204 */ + ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) /* TC5316200 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* these are probably decrypted versions of the roms found in the final */ + ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0252 + . ??M-2520 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( ganryu ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "252-p1.p1", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "252-m1.m1", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) ) /* TC531001DP */ + + ROM_REGION( 0x0400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "252-v1.v1", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) ) /* TC5332204 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "252-c1.c1", 0x0000000, 0x800000, CRC(50ee7882) SHA1(ace0f95407c246d0456341cf2ad8a7668b81df8a) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "252-c2.c2", 0x0000001, 0x800000, CRC(62585474) SHA1(b35461598087aa82886af0030c61b26cc064af5f) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0253 + . NGM-2530 + NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + . NGH-2530 + NEO-AEG PROGLBA (1999.7.6) (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) +****************************************/ + +ROM_START( garou ) /* Original Version - Encrypted GFX */ /* MVS VERSION - later revision */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) ) /* M27C160 */ + ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) ) /* M27C160 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) /* TC5332204 */ + ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) /* TC5332204 */ + ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) /* TC5332204 */ + ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( garouh ) /* Original Version - Encrypted GFX */ /* MVS AND AES VERSION - earlier revision */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "ke.neo-sma", 0x0c0000, 0x040000, CRC(96c72233) SHA1(29e19effd40fdf7e5144332396857f4ad0eff13e) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "253-p1.p1", 0x100000, 0x400000, CRC(18ae5d7e) SHA1(bdb58ec9137d8653979b47132f2d10e1cc6aaa24) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "253-p2.p2", 0x500000, 0x400000, CRC(afffa779) SHA1(ac017986f02277fbcd656b8c02492a3f4216a90e) ) /* mask rom TC5332205 */ + /* also found AES JP set with ep1 / ep2 / ep3 and ep4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) /* TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) /* TC5332204 */ + ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) /* TC5332204 */ + ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) /* TC5332204 */ + ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( garoup ) /* Prototype Version, seems genuine */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "proto_253-p1.p1", 0x000000, 0x100000, CRC(c72f0c16) SHA1(1ff6bb651682f93bef9ff02622c3cf63fe594986) ) + ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) + + NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) + + NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) + ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) + ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) + ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) /* Plane 2,3 */ +ROM_END + +/**************************************** + ID-0254 + . ??M-2540 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( s1945p ) /* Original Version, Encrypted GFX Roms */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "254-p1.p1", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) ) /* TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) ) /* TC531001DP */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) ) /* TC5332204 */ + ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) ) /* TC5332204 */ + ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) ) /* TC5332204 */ + ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0255 + . ??M-2550 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( preisle2 ) /* Original Version, Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "255-p1.p1", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) ) /* TC538200 */ + ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) ) /* TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) ) /* TC531001DP */ + + ROM_REGION( 0x0600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) ) /* TC5332204 */ + ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) ) /* TC5316200 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "255-c1.c1", 0x0000000, 0x800000, CRC(ea06000b) SHA1(1539b12e461fa48301190eb8171bbffff9d984b7) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c2.c2", 0x0000001, 0x800000, CRC(04e67d79) SHA1(aadb6ee750da2c14c6eededa2218db95e051a32c) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c3.c3", 0x1000000, 0x800000, CRC(60e31e08) SHA1(bd5b81ad9d04cdc4e0df31ac40eca305f98277eb) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c4.c4", 0x1000001, 0x800000, CRC(40371d69) SHA1(90011ccc5672ff1b90737cf50c963e71b6217ce3) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c5.c5", 0x2000000, 0x800000, CRC(0b2e6adf) SHA1(15c7d9aa8b1ad9a071e6fd0ef0de8a057c23b02e) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "255-c6.c6", 0x2000001, 0x800000, CRC(b001bdd3) SHA1(394ba8004644844ee97a120cfda48aeac685af8a) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0256 + . NGM-2560 + SMA protected version found on: + NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + Non SMA protected version found on: + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + . NGH-2560 + NEO-AEG PROGLBA (1999.7.6) (NEO-SMA)(LBA-SUB) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) +****************************************/ + +ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) /* stored in the custom chip */ + /* The SMA for this release has a green colour marking; the older revision has a white colour marking */ + ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) ) /* TC5332202 */ + ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) ) /* TC5332202 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( mslug3h ) /* Original Version - Encrypted GFX */ /* revision 2000.3.17 */ /* AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "256-ph1.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) ) + ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) + /* also found AES sets with p1 / p2 on maskrom on NEO-AEG PROGLBA (NEO-SMA); chip labels are 256-PG1 and 256-PG2 */ + /* The SMA on those sets has a pink or green color marking */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0257 + . NGM-2570 + SMA protected version found on: + NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + Non SMA protected version found on: + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + . NGH-2570 + NEO-AEG PROGLBA (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) +****************************************/ + +ROM_START( kof2000 ) /* Original Version, Encrypted Code + Sound + GFX Roms */ /* MVS AND AES VERSION */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) ) /* stored in the custom chip */ + ROM_LOAD16_WORD_SWAP( "257-p1.p1", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) ) /* mask rom TC5332202 */ + ROM_LOAD16_WORD_SWAP( "257-p2.p2", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) ) /* mask rom TC5332202 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) /* TC5332204 */ + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) /* TC5332204 */ + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) /* TC5332204 */ + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +ROM_START( kof2000n ) /* Original Version, Encrypted Sound + GFX Roms */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) /* TC5332204 */ + ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) /* TC5332204 */ + ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) /* TC5332204 */ + ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0258 + SNK vs. Capcom? +****************************************/ + +/**************************************** + ID-0259 + . ??M-2590 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( bangbead ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "259-p1.p1", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) ) /* TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "259-m1.m1", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) ) /* TC531001DP */ + + ROM_REGION( 0x500000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "259-v1.v1", 0x000000, 0x400000, CRC(088eb8ab) SHA1(608306e35501dd7d382d9f96b28e7550aa896a03) ) /* TC533204 */ + ROM_LOAD( "259-v2.v2", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) ) /* TC538200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "259-c1.c1", 0x0000000, 0x800000, CRC(1f537f74) SHA1(b8ef691e92191c20a5ed4f20a75cca3c7383bca6) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "259-c2.c2", 0x0000001, 0x800000, CRC(0efd98ff) SHA1(d350315d3c7f26d638458e5ccf2126069a4c7a5b) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0260 + . ??M-2600 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) +****************************************/ + +ROM_START( nitd ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "260-p1.p1", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) ) /* TC534200 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) /* TC534000 */ + + ROM_REGION( 0x0400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) /* TC5332204 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/**************************************** + ID-0261 + . NGM-2610 + NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042) + . NGH-2610 + NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042) +****************************************/ + +ROM_START( sengoku3 ) /* Original Version - Encrypted GFX */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "261-ph1.p1", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) ) /* mask rom TC5316200 */ + ROM_CONTINUE( 0x000000, 0x100000 ) + /* also found MVS set with p1 label 261-PG1; older revision? */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_512K( "261-m1.m1", CRC(7d501c39) SHA1(8e6bcc428f5ac7532d9c9be7e07ad0821461a080) ) /* mask rom TC534000 */ + + ROM_REGION( 0x0e00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) /* mask rom TC5332204 */ + ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) /* mask rom TC5332204 */ + ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) /* mask rom TC5332204 */ + ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x2000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0262 + . NGM-262? + MVS PROGBK2 REV1.0 (NEO-PCM2 SNK)/ MVS CHAFIO REV1.0 (NEO-CMC 7050) + . NGH-2621 + NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) + - Distribution by BrezzaSoft +****************************************/ + +ROM_START( kof2001 ) /* MVS VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) /* mask rom TC5332205 */ + /* The first/early production run sets have proms with above labels. Some later? sets found have eproms instead of proms */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kof2001h ) /* AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "262-pg1.p1", 0x000000, 0x100000, CRC(2af7e741) SHA1(e41282d73ed6d521da056f1a16573bb61bfa3826) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0263 + . NGM-2630 + NEO-MVS PROGBK2 (NEO-PCM2 SNK)/ NEO-MVS CHAFIO (NEO-CMC 7050) + . NGH-2630 + NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) +****************************************/ + +ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ /* MVS VERSION */ + /* There also exist carts where p1 label is pg1; the PG1 revision has a Japanese cart label, SN 02Jxxxxx + The P1 revision has a US/EUR cart label, SN 02Txxxxx ; Rom data on both is identical. + These carts were manufactured by Mega Enterprise, not SNK. */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( mslug4h ) /* Original Version - Encrypted GFX */ /* AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "263-ph1.p1", 0x000000, 0x100000, CRC(c67f5c8d) SHA1(12af74964843f103520d9f0825069ea2f67eeb2f) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "263-ph2.sp2", 0x100000, 0x400000, CRC(bc3ec89e) SHA1(2cb0626bc4fa57e1d25f208e04532b570d87b3fb) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0264 + . NGM-264? + NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + . NGH-2641 + NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) + - Distribution by BrezzaSoft +****************************************/ + +ROM_START( rotd ) /* Encrypted Set */ /* MVS VERSION */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) ) /* mask rom TC5364205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) ) /* mask rom 27c010 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) /* mask rom TC5364205 */ + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + + +ROM_START( rotdh ) /* Encrypted Set */ /* AES VERSION */ + ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "264-pk1.p1", 0x000000, 0x100000, CRC(ff2fa719) SHA1(03009e3693648ac0d892390c3bba2ceac6c9564b) ) + ROM_LOAD16_WORD_SWAP( "264-pk2.sp2", 0x100000, 0x200000, CRC(0df2e112) SHA1(c521783483117859a2b250190be77f6d49412ae8) ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) ) /* mask rom 27c010 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) /* mask rom TC5364205 */ + ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0265 + . NGM-2650 + NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + . NGH-2650 + NEO-AEG PROGBK2 (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) +****************************************/ + +ROM_START( kof2002 ) /* Encrypted Set */ /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0266 + . NGM-2660 + NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) + . NGH-2660 + NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050) +****************************************/ + +ROM_START( matrim ) /* Encrypted Set */ /* MVS AND AES VERSION */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "266-m1.m1", CRC(456c3e6c) SHA1(5a07d0186198a18d2dda1331093cf29b0b9b2984) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) ) /* mask rom TC5364205 */ + ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0267 + . ??M-2670 + NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) +****************************************/ + +ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "267-p1.p1", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) ) /* mask rom TC538200 */ + /* also found set with p1 and m1 on eprom with sticker; chip labels is PN 2.02 and M1 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) /* mask rom TC534000 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "267-c1.c1", 0x0000000, 0x800000, CRC(5eebee65) SHA1(7eb3eefdeb24e19831d0f51d4ea07a0292c25ab6) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "267-c2.c2", 0x0000001, 0x800000, CRC(2b67187b) SHA1(149c3efd3c444fd0d35a97fa2268102bf76be3ed) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0268 + . NGM-2680 + NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2680 + NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( mslug5 ) /* Encrypted Set */ /* MVS VERSION */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) /* mask rom TC5332205 */ + ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( mslug5h ) /* Encrypted Set */ /* AES release of the game but is also found in later MVS carts */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) ) + ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) ) + /* also found AES set with p1 / p2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0269 + . NGM-2690 + NEO-MVS PROGBK3R (2003.9.2) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2690 + NEO-AEG PROGBK3R (2003.8.29) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( svc ) /* Encrypted Set */ /* MVS AND AES VERSION */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) ) /* mask rom TC5332205 */ + ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) /* mask rom TC5364205 */ + ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0270 + . NGM-2700 + NEO-MVS PROGBK2R (2003.8.26) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2700 + NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( samsho5 ) /* Encrypted Set */ /* MVS VERSION */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) ) /* mask rom 27c040 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) /* mask rom TC5364205 */ + ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( samsho5h ) /* Encrypted Set, Alternate Set */ /* AES VERSION */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "270-p1c.p1", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) ) /* mask rom 27c040 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) /* mask rom TC5364205 */ + ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0271 + . NGM-2710 + NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2710 + NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( kof2003 ) /* Encrypted Code + Sound + GFX Roms */ /* MVS VERSION */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD32_WORD_SWAP( "271-p1c.p1", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) ) /* mask rom TC5332205 */ + ROM_LOAD32_WORD_SWAP( "271-p2c.p2", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "271-p3c.p3", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) ) /* mask rom TC538200 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kof2003h ) /* Encrypted Code + Sound + GFX Roms */ /* AES VERSION */ + /* All chip labels for this set are correct */ + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD32_WORD_SWAP( "271-p1k.p1", 0x000000, 0x400000, CRC(d0d0ae3e) SHA1(538d054ac50c91694fbbfefcce548b063713e14e) ) /* mask rom TC5332205 */ + ROM_LOAD32_WORD_SWAP( "271-p2k.p2", 0x000002, 0x400000, CRC(fb3f79d9) SHA1(f253d10e732d6e23ae82d74ac9269d21f69ddb4d) ) /* mask rom TC5332205 */ + ROM_LOAD16_WORD_SWAP( "271-p3k.p3", 0x800000, 0x100000, CRC(232702ad) SHA1(6045046027dac1cbd4cbd14b5c1ece522bc6197f) ) /* mask rom TC538200 */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */ + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1k.c1", 0x0000000, 0x800000, CRC(efb9dd24) SHA1(1c6fe10fdbfc3306c3b7321c731f28ffdbfb15b8) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2k.c2", 0x0000001, 0x800000, CRC(3fb90447) SHA1(04d196de7c54c77bc75eba56d3060d46efc2d406) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3k.c3", 0x1000000, 0x800000, CRC(27950f28) SHA1(924f4de61c86b9efde6f1104b986886f1117055d) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4k.c4", 0x1000001, 0x800000, CRC(735177f8) SHA1(c95da1bc256995a7f44c9cc3312879ab6cbc15d6) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5k.c5", 0x2000000, 0x800000, CRC(a51b7c0f) SHA1(53dcf692b35b8d32abe5962ac799b8d641f04710) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6k.c6", 0x2000001, 0x800000, CRC(d5cae4e0) SHA1(248cd9eaac7a04d6b5d80c7534de90b057d566d7) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7k.c7", 0x3000000, 0x800000, CRC(e65ae2d0) SHA1(39744e10697d7ac539ecfcfa597e75597f321955) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8k.c8", 0x3000001, 0x800000, CRC(312f528c) SHA1(b4ad75f54f730ada6cb00112b74022250f055725) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + ID-0272 + . NGM-2720 + NEO-MVS PROGBK2S (2003.10.18) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) + . NGH-2720 + NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050) +****************************************/ + +ROM_START( samsh5sp ) /* Encrypted Set */ /* MVS VERSION */ + /* Uncensored */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) ) + ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ +ROM_END + + +/* Some info about the 2nd AES release of Samurai Shodown 5 Special (samsh5sph): + + The fixed carts have a small round neogeo sticker applied to the front side of the cart (top right near cart sticker). + SNK Playmore had authorized a recall of all Samurai Shodown V Special (Samurai Spirits 0 Special) home cartridges. This recall involved bug fixes + and the addition of fatalities. (The fatalities were originally removed at the last minute due to the Nagasaki incident, a murder caused by a child killing her classmate by knife.) + Bug fixes: Improvements on Voice, Back Ground Music, and Practice mode. + Fatalities: SNK PLAYMORE modified the game program by including the removed "Zetumei Ougi" in a modified version. + This new version does not show the complete fatalities, they are instead replaced by what SNK PLAYMORE refers to as "lessened fatalities". +*/ + +ROM_START( samsh5sph ) /* Encrypted Set */ /* AES VERSION, 2nd bugfix release */ + /* Less censored */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "272-p1ca.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) ) + ROM_LOAD16_WORD_SWAP( "272-p2ca.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) ) + /* Correct chip labels unknown */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ +ROM_END + +ROM_START( samsh5spho ) /* Encrypted Set */ /* AES VERSION, 1st release */ + /* Censored */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "272-p1c.p1", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) ) + ROM_LOAD16_WORD_SWAP( "272-p2c.sp2", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) + ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ +ROM_END + + +/************************************* + * + * BrezzaSoft games, licensed? + * + *************************************/ + +/**************************************** + B-J-02 + . ???-???? + MVS PROGV (2000.11.17) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050) +****************************************/ + +ROM_START( jockeygp ) /* MVS ONLY RELEASE */ + /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "008-epr.p1", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) ) /* M27C160 */ + /* P on eprom, correct chip label unknown */ + ROM_FILL( 0x100000, 0x100000, 0xff ) + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) ) /* M27C4001 */ + + ROM_REGION( 0x0200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( jockeygpa ) /* MVS ONLY RELEASE */ + /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "008-epr_a.p1", 0x000000, 0x100000, CRC(b8f35532) SHA1(b46c96677f1bfe324b678112e9c614a20c550d51) ) /* M27C800 */ + /* P on eprom, correct chip label unknown */ + + ROM_Y_ZOOM + + /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */ + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x20000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) ) /* M27C4001 */ + + ROM_REGION( 0x0200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) ) /* mask rom TC5316200 */ + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/**************************************** + B-V-01 + . ???-???? + MVS PROGV (2000.11.17) / MVS CHAV (2000.10.26) +****************************************/ + +ROM_START( vliner ) /* MVS ONLY RELEASE */ + /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "epr.p1", 0x000000, 0x080000, CRC(72a2c043) SHA1(b34bcc10ff33e4465126a6865fe8bf6b6a3d6cee) ) /* AM27C400 */ + /* P on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) ) + + NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", ROMREGION_ERASE00 ) + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) ) /* Plane 2,3 */ +ROM_END + +ROM_START( vlinero ) /* MVS ONLY RELEASE */ + /* Officially licensed? Cart has a holographic 'SNK' sticker applied */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "epr_54.p1", 0x000000, 0x080000, CRC(172efc18) SHA1(8ca739f8780a9e6fa19ac2c3e931d75871603f58) ) + /* P on eprom, correct chip label unknown */ + + NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) ) + + NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", ROMREGION_ERASE00 ) + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) ) /* Plane 2,3 */ +ROM_END + + +/************************************* + * + * Vektorlogic games, unlicensed + * + *************************************/ + +/**************************************** + NSBP V1.0U + PROGRAM CART REVISION 2.0 COPYRIGHT VEKTORLOGIC (C) 2004 / GRAPHICS CART REVISION 1.2 COPYRIGHT VEKTORLOGIC (C) 2004 +****************************************/ + +// this doesn't boot, protection like kof98? +// you can force it to boot with a simple debugger trick, but then it resets when starting a game +ROM_START( sbp ) /* Unlicensed, no official game ID # */ /* MVS ONLY VERSION */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "001-003-02a.u2", 0x000000, 0x080000, CRC(d054d264) SHA1(d1b4bc626d000e0679def0545940fa75035921ab) ) /* HN27C4096HG */ + + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_LOAD( "001-003-02b.u2", 0x000000, 0x20000, CRC(2fd04b2a) SHA1(1acb446704ab56d0a33df7c48855aa8d00fd5a3c) ) /* M27C4001 */ + ROM_IGNORE(0x20000) + ROM_IGNORE(0x20000) + ROM_IGNORE(0x20000) + + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + ROM_Y_ZOOM + + NEO_BIOS_AUDIO_512K( "001-003-01b.u1", CRC(7b1f86f7) SHA1(15b6af7f9fbd0f1f6a1ecd912200ca8d0af2da2a) ) /* M27C4001 */ + + ROM_REGION( 0x800000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "001-003-12a.u12", 0x000000, 0x400000, CRC(c96723b9) SHA1(52eec88550781d45f84efbf9b905d7e7912e96fa) ) /* M27C322 */ + ROM_LOAD( "001-003-13a.u13", 0x400000, 0x400000, CRC(08c339a5) SHA1(badc9510ae243ef2a7877977eb36efa81b1489fe) ) /* M27C322 */ + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "001-003-03b.u3", 0x000000, 0x200000, CRC(44791317) SHA1(9e773eb9aae5ee767213bd17348ff8a312e9cb16) ) /* Plane 0,1 */ /* M27C160 */ + ROM_LOAD16_BYTE( "001-003-04b.u4", 0x000001, 0x200000, CRC(a3a1c0df) SHA1(3b1e5be673f7cbb04199a805b0e0de93dad8cb8c) ) /* Plane 2,3 */ /* M27C160 */ +ROM_END + + + +/************************************* + * + * Bootleg sets + * + *************************************/ + +/* + About supported sets: + + For many bootleg sets, only P's (program rom), M1 (sound driver) and S1 (text layer) roms were dumped. + For these sets it is assumed that the original V's (sound data) and C's (gfx data) are used. + This requires verification. + +*/ + + +/* Zintrick bootleg */ + +/* This Zintrick set appears to be a bootleg made from the CD version, not a genuine + prototype the code is based on that of the NeoCD version with some minor patches, + for example the ADK SAMPLE TEST text that appears on the screen is actually a hacked + PROG LOAD ERROR message. The set is supported in order to distinguish the hacks from + a real prototype should one turn up. */ + +ROM_START( zintrckb ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "zin-p1.bin", 0x000000, 0x100000, CRC(06c8fca7) SHA1(b7bf38965c3d0db4d7a9684d14cac94a45b4a45b)) + + NEO_SFIX_128K( "zin-s1.bin", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) ) + + NEO_BIOS_AUDIO_128K( "zin-m1.bin", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "zin-v1.bin", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) ) + + ROM_REGION( 0x400000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) ) /* Plane 2,3 */ +ROM_END + +/* Idol Mahjong Final Romance 2 */ + +/* This set has been added from HBMAME for completeness, being analogous to the Zintrick one. */ + +ROM_START( froman2b ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "098.p1", 0x000000, 0x80000, CRC(09675541) SHA1(6afb89d43e67f93e40f3877cbedfec9566e3ff0f)) + + NEO_SFIX_128K( "098.s1", CRC(0e6a7c73) SHA1(31b1194524dcc80ec4d63bac088b6fb4909f496c) ) + + NEO_BIOS_AUDIO_128K( "098.m1", CRC(da4878cf) SHA1(ce13d18a4c5d01974df8542c67c4df00dbc6e7c1) ) + + ROM_REGION( 0x100000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "098.v1", 0x000000, 0x100000, CRC(6f8ccddc) SHA1(696df2d0f416c2374b0eb7c858486054688c5bca) ) + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "098.c1", 0x0000000, 0x400000, CRC(29148bf7) SHA1(75097fbe8877720afbcbe4dbe30bc600466d759f) ) + ROM_LOAD16_BYTE( "098.c2", 0x0000001, 0x400000, CRC(226b1263) SHA1(dee6a4a0a727c1d8a6d298cb38ed1b9901992d5b) ) +ROM_END + + +ROM_START( crswd2bl ) + ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "054-p1.p1", 0x100000, 0x100000, CRC(64836147) SHA1(083cb1626885893e736fc9998036c952cd4d503b) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "054-s1.s1", CRC(22e02ddd) SHA1(ebd834affc763cc5854abf1c6c42f43f3f3755fd) ) + + NEO_BIOS_AUDIO_128K( "054-m1.m1", CRC(63e28343) SHA1(f46dbc2f1d6033b11047cca31a9a7d715dc69cb2) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "054-v1.v1", 0x000000, 0x200000, CRC(22d4b93b) SHA1(0515f2ee5d9a8ce424c80721e06f746ac6a543a8) ) + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "054-c1.c1", 0x000000, 0x400000, CRC(8221b712) SHA1(7e68871f1bfc402ef27c8fa088c680cbd133f71a) ) + ROM_LOAD16_BYTE( "054-c2.c2", 0x000001, 0x400000, CRC(d6c6183d) SHA1(cc546ff063fae2c01c109fabcd5b2d29ec3299db) ) +ROM_END + + +/* The King of Fighters '97 bootlegs */ + +ROM_START( kof97pls ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "kf97-p1p.bin", 0x000000, 0x100000, CRC(c01fda46) SHA1(bc6402f5082efc80a8936364c657165f19b49415) ) + ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) ) + + NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ /* TC5332205 */ + ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ /* TC5332205 */ +ROM_END + +ROM_START( kof97oro ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "orochi-p1.bin", 0x0000000, 0x100000, CRC(6dcb2946) SHA1(3ccb3fdf3d32a75c7fcfefff5db1f3c75054731f) ) + ROM_LOAD16_WORD_SWAP( "orochi-p21.bin", 0x0200000, 0x100000, CRC(6e1c4d8c) SHA1(f514638a599a8a582c5f4df72f6a957bab776b7e) ) + ROM_CONTINUE( 0x100000, 0x100000 ) + ROM_LOAD16_WORD_SWAP( "orochi-p29.bin", 0x0400000, 0x100000, CRC(4c7c0221) SHA1(fdd05927743cb12210b74768155bb3f59bff01b5) ) + ROM_CONTINUE( 0x300000, 0x100000 ) + + NEO_SFIX_128K( "orochi-s1.bin", CRC(4ee2149a) SHA1(180a1a90021031eac1a643b769d9cdeda56518f5) ) + + NEO_BIOS_AUDIO_128K( "orochi-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "orochi-v1.bin", 0x000000, 0x0400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) + ROM_LOAD( "orochi-v2.bin", 0x400000, 0x0400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) + ROM_LOAD( "orochi-v3.bin", 0x800000, 0x0400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + // The C1 and C2 here are reconstructed but very likely to be correct. + ROM_LOAD16_BYTE( "orochi-c1.bin", 0x0000000, 0x1000000, BAD_DUMP CRC(f13e841c) SHA1(e24b3fb5f7e1c1f4752cad382c264f5f93e737a0) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "orochi-c2.bin", 0x0000001, 0x1000000, BAD_DUMP CRC(2db1f6d3) SHA1(13d957c04bd69f0db140e4633c39db4a9e44eab8) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "orochi-c51.bin", 0x2000000, 0x0200000, CRC(a90340cb) SHA1(97eaa89f0e860e2c591ca3a995fd910d8116347d) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "orochi-c61.bin", 0x2000001, 0x0200000, CRC(188e351a) SHA1(ab724250bc07ace0873fc825b798ace934260988) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "orochi-c52.bin", 0x2400000, 0x0200000, CRC(d4eec50a) SHA1(0930cce5346fbbd5c1524f9148d0577cbe634420) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "orochi-c62.bin", 0x2400001, 0x0200000, CRC(031b1ad5) SHA1(d47b3452953b553348be0a55473b863ce2872f6e) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kog ) + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "5232-p1.bin", 0x000000, 0x200000, CRC(d2413ec6) SHA1(c0bf409d1e714cba5fdc6f79e4c2aec805316634) ) + ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */ + + NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) ) + + NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) /* TC531001 */ + + ROM_REGION( 0xc00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) /* TC5332204 */ + ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) /* TC5332204 */ + ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) /* TC5332204 */ + + ROM_REGION( 0x2800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) ) /* Plane 2,3 */ +ROM_END + +/* Shock Troopers - 2nd Squad bootleg */ + +ROM_START( lans2004 ) + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "lnsq-p1.bin", 0x000000, 0x200000, CRC(b40a879a) SHA1(379f3d44b0bae430b32157fd5f4018d77b243c58) ) + ROM_LOAD16_WORD_SWAP( "lnsq-p21.bin", 0x200000, 0x200000, CRC(ecdb2d42) SHA1(0d930cd369dfbcab7778b144355e5f70874aa324) ) + ROM_LOAD16_WORD_SWAP( "lnsq-p22.bin", 0x400000, 0x200000, CRC(fac5e2e7) SHA1(5cce7226c137da80c969df00e1cda41ef9c5082c) ) + + NEO_SFIX_128K( "lnsq-s1.bin", CRC(39e82897) SHA1(24a8c94dd7e70ecde8f90ea17f75b6b5d065704f) ) + + NEO_BIOS_AUDIO_128K( "246-m1.bin", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) + + ROM_REGION( 0xA00000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "lnsq-v1.bin", 0x000000, 0x400000, CRC(4408ebc3) SHA1(e3f4d8a7e243a8cf48e97d91bbfec7829c0d9404) ) + ROM_LOAD( "lnsq-v2.bin", 0x400000, 0x400000, CRC(3d953975) SHA1(6a4ab02ab3d4416a65343cf16815007cb273f19b) ) + ROM_LOAD( "lnsq-v3.bin", 0x800000, 0x200000, CRC(437d1d8e) SHA1(95e015c21707b53ed7223eaa19f6cdcfb4d94f0c) ) + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "lnsq-c1.bin", 0x0000000, 0x800000, CRC(b83de59f) SHA1(8cc060f9a57ab7d4238543b0bce5f5cd1d271d4f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "lnsq-c2.bin", 0x0000001, 0x800000, CRC(e08969fd) SHA1(c192639d023cdad64a8f53dbcda02aa8cfb4168e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "lnsq-c3.bin", 0x1000000, 0x800000, CRC(013f2cda) SHA1(6261111ce69dc23fbf97241131e5a6a49355d18c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "lnsq-c4.bin", 0x1000001, 0x800000, CRC(d8c3a758) SHA1(d19ca3be06f9fb0cb1933b1eb3da318524c3145d) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "lnsq-c5.bin", 0x2000000, 0x800000, CRC(75500b82) SHA1(06d2afe94ea3eb3c4e523f593b8e709dd7c284a3) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "lnsq-c6.bin", 0x2000001, 0x800000, CRC(670ac13b) SHA1(f448a144caae51b69ea19e1f43940db135d1164a) ) /* Plane 2,3 */ +ROM_END + +/* Garou - Mark of the Wolves bootleg */ + +ROM_START( garoubl ) /* bootleg of garoup */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "garou-p1.bin", 0x000000, 0x100000, CRC(fd446d59) SHA1(e37484673a935b2af76c84cd26977c751c0f8cff) ) + ROM_LOAD16_WORD_SWAP( "garou-p2.bin", 0x100000, 0x400000, CRC(3fb10a84) SHA1(4e4a4f4cd7f0ad2520c938c64c8910e6f8805eaf) ) + + NEO_SFIX_128K( "garou-s1.bin", CRC(df720e33) SHA1(58d05002d4851682bd626241fa7b70f78f6f3bc8) ) + + NEO_BIOS_AUDIO_512K( "garou-m1.bin", CRC(7c51d002) SHA1(01ffba6cbc8da07804f7b21d8c71c39d64a1a4e2) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "garou-v1.bin", 0x000000, 0x400000, CRC(98d736e4) SHA1(3edda9a1d45b0e38a85156d24fc8ff2f0011239b) ) + ROM_LOAD( "garou-v2.bin", 0x400000, 0x400000, CRC(eb43c03f) SHA1(83c9c168b154e60a64f1033004b2d33e218bbb8b) ) + ROM_LOAD( "garou-v3.bin", 0x800000, 0x400000, CRC(10a0f814) SHA1(e86def80d6fb2a38ebc9f3338d22f28c15ce85da) ) + ROM_LOAD( "garou-v4.bin", 0xc00000, 0x400000, CRC(8918fdd3) SHA1(60ea2104a0f993341124728d8fde0e8e937c55ef) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "garou-c1.bin", 0x0000000, 0x1000000, CRC(e2ac83fa) SHA1(186f88a85d80efbb0371bd42cca152b6b59817fb) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "garou-c2.bin", 0x0000001, 0x1000000, CRC(7c344b24) SHA1(f8af62a917e0ce2bf8ae4f17736fdd84d55d0788) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "garou-c3.bin", 0x2000000, 0x1000000, CRC(d3aec5a6) SHA1(c1a584909a8a1519f676aa49351742b87c18276d) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "garou-c4.bin", 0x2000001, 0x1000000, CRC(e02a242d) SHA1(8a73826d14880303a7bea2a903e842c733178aca) ) /* Plane 2,3 */ +ROM_END + +/* Metal Slug 3 bootleg */ + +ROM_START( mslug3b6 ) /* This "Metal Slug 6" is a hack/bootleg of Metal Slug 3, the real Metal Slug 6 is on Atomiswave Hardware */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "299-p1.bin", 0x000000, 0x200000, CRC(5f2fe228) SHA1(747775a2dfc0da87ad2ddd4f57ce5b2522f23fa5) ) + ROM_LOAD16_WORD_SWAP( "299-p2.bin", 0x100000, 0x400000, CRC(193fa835) SHA1(fb1f26db7998b0bb6b1c8b92500c1596ec5dfc71) ) + + NEO_SFIX_128K( "299-s1.bin", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) ) + + NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */ + ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */ + ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */ + ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */ + ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */ +ROM_END + +/* Nightmare in the Dark bootleg */ + +ROM_START( nitdbl ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "nitd-p1.bin", 0x000000, 0x080000, CRC(1a05bd1b) SHA1(7bbddef842d50b0778711063af695b168a76ff61) ) + + NEO_SFIX_128K( "nitd-s1.bin", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) ) + + /* Bootleg m1 is 128k, data is identical */ + NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) /* TC534000 */ + + ROM_REGION( 0x400000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "nitd-v1.bin", 0x000000, 0x200000, CRC(79008868) SHA1(90bd6aaefd37341297ab1f4ae7246e52facd87d0) ) + ROM_LOAD( "nitd-v2.bin", 0x200000, 0x200000, CRC(728558f9) SHA1(309aa7c933c199b2e540a601b363e7af8744fe00) ) + + ROM_REGION( 0x800000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "nitd-c1.bin", 0x000000, 0x200000, CRC(b4353190) SHA1(90d5352e243a05f5c2be4fa7475667bb56e78016) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "nitd-c2.bin", 0x000001, 0x200000, CRC(6e27511f) SHA1(1fc5cf7786ad0f0bc7b1623acabe605ad04af3c1) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "nitd-c3.bin", 0x400000, 0x200000, CRC(472cf075) SHA1(7cdd25019e37a3d127e68a4179c051881df19afa) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "nitd-c4.bin", 0x400001, 0x200000, CRC(4c3926e6) SHA1(7fc54a9886dbef911f7b226e3cd20081c535e989) ) /* Plane 2,3 */ +ROM_END + +/* The King of Fighters 2001 bootlegs */ + +ROM_START( cthd2003 ) /* Protected hack/bootleg of kof2001 Phenixsoft */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + /* sound roms are identical to kof2001 */ + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ +ROM_END + +ROM_START( ct2k3sp ) /* Protected hack/bootleg of kof2001 Phenixsoft */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "5003-p1sp.bin", 0x000000, 0x100000, CRC(ab5c4de0) SHA1(ca9a6bfd4c32d791ecabb34ccbf2cbf0e84f97d5) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x40000, "cslot1:fixed", 0 ) + ROM_LOAD( "5003-s1sp.bin", 0x00000, 0x40000, CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + /* sound roms are identical to kof2001 */ + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ +ROM_END + +ROM_START( ct2k3sa ) /* Protected hack/bootleg of kof2001 Phenixsoft, alternate version */ + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "5003-p1sa.bin", 0x000000, 0x100000, CRC(013a509d) SHA1(c61c9b777e6e062b5f4ad87cdb78e9ca05e9bfb9) ) + ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_LOAD( "5003-s1sa.bin", 0x00000, 0x20000, CRC(4e1f7eae) SHA1(3302ad290804272447ccd2e8edd3ce968f043db1) ) + /* S1 needs redump, correct? */ + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) + + /* Original set has 2x64 mbit sound roms */ + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) /* mask rom TC5332204 */ + ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) /* mask rom TC5332204 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ +ROM_END + +/* Metal Slug 4 bootleg */ + +ROM_START( ms4plus ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "ms4-p1p.bin", 0x000000, 0x100000, CRC(806a6e04) SHA1(df503772d607271ea51285154c9fd68e18b143ce) ) + ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) /* mask rom TC5332205 */ + + NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) /* mask rom TC5364205 */ + ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x3000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/* The King of Fighters 2002 bootlegs */ + +ROM_START( kof2002b ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "2k2-p2.bin", 0x100000, 0x400000, CRC(6dbee4df) SHA1(9a9646c81b233b44213c624b898c19f83e9a07f8) ) + + NEO_SFIX_128K( "2k2-s1.bin", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "2k2-c1.bin", 0x0000000, 0x800000, CRC(f25d3d66) SHA1(eb1da3e171c126d91e851ce141840709a2f62f8a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "2k2-c2.bin", 0x0000001, 0x800000, CRC(e3e66f1d) SHA1(af93e9e134816353d6187a53959c6e418b83ad8d) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "2k2-c3.bin", 0x1000000, 0x800000, CRC(8732fa30) SHA1(81c482b375c04bcfbbc69e3e2a2e9ab567c9bb78) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "2k2-c4.bin", 0x1000001, 0x800000, CRC(0989fd40) SHA1(355d6b2c528319e41ce89952c5cf5bcc47cd6de0) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "2k2-c5.bin", 0x2000000, 0x800000, CRC(60635cd2) SHA1(0cf2c54e003edfcdbed64e0570e6b800e7ed3c1b) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "2k2-c6.bin", 0x2000001, 0x800000, CRC(bd736824) SHA1(d897fc8248ace145fef57d8aa393eaebc4a1ccc4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "2k2-c7.bin", 0x3000000, 0x800000, CRC(2da8d8cf) SHA1(ab8aa88b8e1baba88e5fc01d0f3cb55503b6c81a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "2k2-c8.bin", 0x3000001, 0x800000, CRC(2048404a) SHA1(d6d0f049ffc196334825328e0472b04e04bf6695) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kf2k2pls ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "2k2-p1p.bin", 0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ + + NEO_SFIX_128K( "2k2-s1p.bin", CRC(595e0006) SHA1(ff086bdaa6f40e9ad963e1100a27f44618d684ed) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k2pla ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "2k2-p1pa.bin", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) ) + ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) /* mask rom TC5332205 */ + + NEO_SFIX_128K( "2k2-s1pa.bin", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e)) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k2mp ) + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "kf02m-p1.bin", 0x000000, 0x400000, CRC(ff7c6ec0) SHA1(704c14d671dcb4cfed44d9f978a289cb7dd9d065) ) + ROM_LOAD16_WORD_SWAP( "kf02m-p2.bin", 0x400000, 0x400000, CRC(91584716) SHA1(90da863037cf775957fa154cd42536e221df5740) ) + + NEO_SFIX_128K( "kf02m-s1.bin", CRC(348d6f2c) SHA1(586da8a936ebbb71af324339a4b60ec91dfa0990) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k2mp2 ) + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "k2k2m2p1.bin", 0x000000, 0x200000, CRC(1016806c) SHA1(a583b45e9c0d6f67b95c52e44444aabe88f68d97) ) + ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x200000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) ) + + NEO_SFIX_128K( "k2k2m2s1.bin", CRC(446e74c5) SHA1(efc2afb26578bad9eb21659c70eb0f827d6d1ef6) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) /* mask rom TC531001 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) /* mask rom TC5364205 */ + ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kof10th ) + ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) // Modified + ROM_LOAD16_WORD_SWAP( "kf10-p1.bin", 0x000000, 0x800000, CRC(b1fd0c43) SHA1(5f842a8a27be2d957fd4140d6431ae47154997bb) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x40000, "cslot1:fixed", 0 ) // modified + ROM_FILL( 0x000000, 0x40000, 0x000000 ) // modified + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kf10thep ) /* this is a hack of kof2002 much like the various korean hacks / bootlegs of games */ + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "5008-p1.bin", 0x000000, 0x200000, CRC(bf5469ba) SHA1(f05236d8fffab5836c0d27becdeeb80def32ee49) ) + ROM_LOAD16_WORD_SWAP( "5008-p2.bin", 0x200000, 0x400000, CRC(a649ec38) SHA1(5c63ed5e5c848940f587c966da4908d04cf1293c) ) + ROM_LOAD16_WORD_SWAP( "5008-p3.bin", 0x600000, 0x200000, CRC(e629e13c) SHA1(6ebe080ce01c51064cb2f4d89315ba98a45ae727) ) + + NEO_SFIX_128K( "5008-s1.bin", CRC(92410064) SHA1(1fb800b46341858207d3b6961a760289fbec7faa) ) + + NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + //NEO_BIOS_AUDIO_128K( "5004-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "5008-c7b.bin", 0x3800000, 0x400000, CRC(33604ef0) SHA1(57deec23c81d5d673ce5992cef1f2567f1a2148e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "5008-c8b.bin", 0x3800001, 0x400000, CRC(51f6a8f8) SHA1(9ef1cdbdd125a2b430346c22b59f36902312905f) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kf2k5uni ) + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "5006-p2a.bin", 0x000000, 0x400000, CRC(ced883a2) SHA1(f93db4d74ce0a73a3e9631966fee37be22470c89) ) + ROM_LOAD16_WORD_SWAP( "5006-p1.bin", 0x400000, 0x400000, CRC(72c39c46) SHA1(4ba0657de20319c0bc30c7c3bba7d7331d0ce9a7) ) + + NEO_SFIX_128K( "5006-s1.bin", CRC(91f8c544) SHA1(9d16cafb9ca4bc54f31f7fd82b1be06ec8b11c79) ) + + NEO_BIOS_AUDIO_128K( "5006-m1.bin", CRC(9050bfe7) SHA1(765bf3d954f775231b7ef2504bb844cd0b29e3f7) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) + ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) /* Plane 2,3 */ +ROM_END + +ROM_START( kof2k4se ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "k2k4s-p2.bin", 0x000000, 0x080000, CRC(21a84084) SHA1(973e8a0bffa0e1f055803f663f81a8e03701802d) ) + ROM_LOAD16_WORD_SWAP( "k2k4s-p3.bin", 0x080000, 0x080000, CRC(febb484e) SHA1(4b1838795b84f22d578ad043641df0a7bf7d9774) ) + ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) ) + + NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) ) + + NEO_BIOS_AUDIO_128K( "k2k4s-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) ) + ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "k2k4s-c7.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) /* Plane 2,3 */ +ROM_END + +/* Matrimelee bootleg */ + +ROM_START( matrimbl ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) ) /* mask rom TC538200 */ + ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) /* mask rom TC5332205 */ + + ROM_Y_ZOOM + + ROM_REGION( 0x80000, "cslot1:fixed", 0 ) + ROM_FILL( 0x000000, 0x80000, 0x000000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEO_BIOS_AUDIO_128K( "mart-m1.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "mart-v1.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) ) + ROM_LOAD16_WORD_SWAP( "mart-v2.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) ) + ROM_LOAD( "mart-v3.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) ) + ROM_LOAD16_WORD_SWAP( "mart-v4.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "mart-c1.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "mart-c2.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "mart-c3.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "mart-c4.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "mart-c5.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "mart-c6.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "mart-c7.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "mart-c8.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) ) /* Plane 2,3 */ +ROM_END + +/* Metal Slug 5 bootleg */ + +ROM_START( ms5plus ) + ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "ms5-p1p.bin", 0x000000, 0x100000, CRC(106b276f) SHA1(0e840df95f3813145e5043573483c7610d2d3e68) ) + ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) ) + ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) ) + + ROM_Y_ZOOM + + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + /* Encrypted */ + NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */ + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) /* mask rom TC5364205 */ + ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +/* Puzzle Bobble / Bust-A-Move (Neo-Geo) bootleg */ + +ROM_START( pbobblenb ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "u7", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) ) + + NEO_SFIX_128K( "us1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) + + NEO_BIOS_AUDIO_128K( "um1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) + + ROM_REGION( 0x380000, "cslot1:ymsnd", 0 ) + /* 0x000000-0x1fffff empty */ + ROM_LOAD( "u8", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) + ROM_LOAD( "u9", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) ) + + ROM_REGION( 0x100000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "uc5", 0x000000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "uc6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ +ROM_END + +/* SNK vs. CAPCOM SVC CHAOS bootlegs */ + +ROM_START( svcboot ) + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "svc-p1.bin", 0x000000, 0x800000, CRC(0348f162) SHA1(c313351d68effd92aeb80ed320e4f8c26a3bb53e) ) + + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEOGEO_BIOS + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) + + ROM_REGION( 0x50000, "cslot1:audiocpu", 0 ) + ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_COPY( "cslot1:audiocpu", 0x000000, 0x10000, 0x10000 ) + + ROM_Y_ZOOM + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) + ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) + ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) + ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ +ROM_END + +ROM_START( svcplus ) + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "svc-p1p.bin", 0x000000, 0x200000, CRC(a194d842) SHA1(72b7bfa34a97632b1aa003488e074d766a6c2f08) ) + ROM_LOAD16_WORD_SWAP( "svc-p2p.bin", 0x200000, 0x200000, CRC(50c0e2b7) SHA1(97b396415ab0e692e43ddf371091e5a456712f0a) ) + ROM_LOAD16_WORD_SWAP( "svc-p3p.bin", 0x400000, 0x200000, CRC(58cdc293) SHA1(3c4f2418ec513bcc13ed33a727de11dfb98f7525) ) + + NEO_SFIX_128K( "svc-s1p.bin", CRC(73344711) SHA1(04d84c4fe241b9135cd210f8ed8c725f595d11d2) ) + + NEOGEO_BIOS + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) + + ROM_REGION( 0x50000, "cslot1:audiocpu", 0 ) + ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_COPY( "cslot1:audiocpu", 0x000000, 0x10000, 0x10000 ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) + ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) + ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) + ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ +ROM_END + +ROM_START( svcplusa ) + ROM_REGION( 0x600000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "svc-p1pl.bin", 0x000000, 0x200000, CRC(16b44144) SHA1(5eab530274b1b6f480a39a86c199da524cddfccc) ) + ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) ) + + ROM_REGION( 0x20000, "cslot1:fixed", 0 ) + ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_REGION( 0x20000, "fixedbios", 0 ) + ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) + + NEOGEO_BIOS + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) + + ROM_REGION( 0x50000, "cslot1:audiocpu", 0 ) + ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_COPY( "cslot1:audiocpu", 0x000000, 0x10000, 0x10000 ) + + ROM_Y_ZOOM + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) + ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) + ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) + ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ +ROM_END + +ROM_START( svcsplus ) + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "svc-p1sp.bin", 0x000000, 0x400000, CRC(2601902f) SHA1(202348a13c6480f7de37a3ee983823838822fc98) ) + ROM_LOAD16_WORD_SWAP( "svc-p2sp.bin", 0x400000, 0x400000, CRC(0ca13305) SHA1(ac8fbca71b754acbcdd11802161a62ae1cf32d88) ) + + NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) ) + + NEOGEO_BIOS + + ROM_REGION( 0x20000, "audiobios", 0 ) + ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) + ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) + + ROM_REGION( 0x50000, "cslot1:audiocpu", 0 ) + ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) + ROM_CONTINUE( 0x00000, 0x10000 ) + ROM_COPY( "cslot1:audiocpu", 0x000000, 0x10000, 0x10000 ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) + ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) + ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) + ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */ +ROM_END + +/* Samurai Shodown 5 bootleg */ + +ROM_START( samsho5b ) + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "ssv-p2.bin", 0x000000, 0x400000, CRC(5023067f) SHA1(b1d682fa7d158f19664356a919da6572e8cfeee0) ) + ROM_LOAD16_WORD_SWAP( "ssv-p1.bin", 0x400000, 0x400000, CRC(b6cbe386) SHA1(99c2407361116c2b2c5fe72df53e05c5f99163c1) ) + + NEO_SFIX_128K( "ssv-s1.bin", CRC(70f667d0) SHA1(6d7ce62bb77eb215cc22d6c3c677accfd740aa83) ) + + NEO_BIOS_AUDIO_128K( "ssv-m1.bin", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "ssv-v1.bin", 0x000000, 0x400000, CRC(a3609761) SHA1(6dce1dbfd228c739b3716ae1cf08fd7f925d8650) ) + ROM_LOAD( "ssv-v2.bin", 0x400000, 0x400000, CRC(cbd6ebd5) SHA1(00211be3fa32035b0947ac65920ea8acae7bfae2) ) + ROM_LOAD( "ssv-v3.bin", 0x800000, 0x400000, CRC(6f1c2703) SHA1(8015df3d788cb7926ebbcda64a96964fe102ba27) ) + ROM_LOAD( "ssv-v4.bin", 0xc00000, 0x400000, CRC(5020c055) SHA1(bd1e68d1b0a47b0e2b365159e210048f8b22823a) ) + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "ssv-c1.bin", 0x0000000, 0x1000000, CRC(9c564a01) SHA1(99dc8900fd8f56ae04fff72b34ddcaa8abe4c1be) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "ssv-c2.bin", 0x0000001, 0x1000000, CRC(4b73b8da) SHA1(a8b626de74cf57bbd8c222e8e24c953c9e8680f4) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "ssv-c3.bin", 0x2000000, 0x1000000, CRC(029f9bb5) SHA1(6296c879aa0bbd22383ceeeac0326805cbc8b4ec) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "ssv-c4.bin", 0x2000001, 0x1000000, CRC(75722430) SHA1(30594c30a167e75463670249df7744755e39e75b) ) /* Plane 2,3 */ +ROM_END + +/* The King of Fighters 2003 bootlegs */ + +ROM_START( kf2k3bl ) + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "2k3-p1.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) ) + ROM_LOAD16_WORD_SWAP( "2k3-p2.bin", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) ) + ROM_CONTINUE( 0x000000, 0x100000 ) + ROM_CONTINUE( 0x000000, 0x100000 ) + + NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k3bla ) + ROM_REGION( 0x700000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "2k3-p1bl.bin", 0x000000, 0x100000, CRC(4ea414dd) SHA1(c242c9709c20a8cde3ad562adbe640a5dd5abcf1) ) + ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) ) + ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) ) + + NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) + + NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k3pl ) + ROM_REGION( 0x700000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "2k3-p1pl.bin", 0x000000, 0x100000, CRC(07b84112) SHA1(0b085a928a39ff9c0745a58bfa4ce6106b5f474a) ) + ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) ) + ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) ) + + NEO_SFIX_128K( "2k3-s1pl.bin", CRC(ad548a36) SHA1(7483dbe2d74a1bd1b4dc501e99e48a683416d08e) ) + + NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + +ROM_START( kf2k3upl ) + ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "2k3-p1up.bin", 0x000000, 0x800000, CRC(87294c01) SHA1(21420415a6b2ba1b43ecc1934270dc085d6bd7d9) ) + + NEO_SFIX_128K( "2k3-s1up.bin", CRC(e5708c0c) SHA1(5649446d3b0b1bd138b5a8b40b96a6d0f892f4d8) ) + + NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) + + ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 ) + /* Encrypted */ + ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) /* mask rom TC5364205 */ + ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) /* mask rom TC5364205 */ + + ROM_REGION( 0x4000000, "cslot1:sprites", 0 ) + /* Encrypted */ + ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) /* Plane 2,3 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) /* Plane 0,1 */ /* mask rom TC5364205 */ + ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) /* Plane 2,3 */ /* mask rom TC5364205 */ +ROM_END + + + /* Unlicensed Prototypes */ + +ROM_START( diggerma ) /* Unlicensed Prototype, no official game ID # */ + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "dig-p1.bin", 0x000000, 0x080000, CRC(eda433d7) SHA1(abb14c66777ab0fe4ac76a402e253a49df7178d8) ) + + NEO_SFIX_128K( "dig-s1.bin", CRC(9b3168f0) SHA1(9be8c625686a1482f7399e5a856cfe2fef25ec52) ) + + NEO_BIOS_AUDIO_128K( "dig-m1.bin", CRC(e777a234) SHA1(9f3974ac07859337bc0203f903c40ae3f60dc1fb) ) + + ROM_REGION( 0x200000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "dig-v1.bin", 0x000000, 0x080000, CRC(ee15bda4) SHA1(fe2206728e6efd02d6302869a98b196eb19a17df) ) + + ROM_REGION( 0x100000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "dig-c1.bin", 0x000000, 0x080000, CRC(3db0a4ed) SHA1(6214faa883d97ea05809b6af7e0c85a236a18a28) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "dig-c2.bin", 0x000001, 0x080000, CRC(3e632161) SHA1(83711c4286fb1d9f3f91414ac6e5fed36618033e) ) /* Plane 2,3 */ +ROM_END + +// MVS cart +ROM_START( lasthope ) + ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT ) + ROM_LOAD16_WORD_SWAP( "ngdt-300-p1.bin", 0x000000, 0x100000, CRC(3776a88f) SHA1(ea8b669da06d7c6b5ff7fa97a195f56a9253a7a1) ) + + NEO_SFIX_64K( "ngdt-300-s1.bin", CRC(0c0ff9e6) SHA1(c87d1ea8731ac1e63ab960b8182dd1043bcc10bb) ) + + NEO_BIOS_AUDIO_128K( "ngdt-300-m1.bin", CRC(113c870f) SHA1(854425eb4be0d7fa088a6c3bf6078fdd011707f5) ) + + ROM_REGION( 0x600000, "cslot1:ymsnd", 0 ) + ROM_LOAD( "ngdt-300-v1.bin", 0x000000, 0x200000, CRC(b765bafe) SHA1(b2048c44089bf250c8dcfabb27c7981e9ee5002a) ) + ROM_LOAD( "ngdt-300-v2.bin", 0x200000, 0x200000, CRC(9fd0d559) SHA1(09e70d5e1c6e172a33f48feb3e442515c34a8f3d) ) + ROM_LOAD( "ngdt-300-v3.bin", 0x400000, 0x200000, CRC(6d5107e2) SHA1(4ba74836e3d0421a28af47d3d8341ac16af1d7d7) ) + + ROM_REGION( 0x1000000, "cslot1:sprites", 0 ) + ROM_LOAD16_BYTE( "ngdt-300-c1.bin", 0x000000, 0x400000, CRC(53ef41b5) SHA1(a8f1fe546403b609e12f0df211c05d7ac479d98d) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "ngdt-300-c2.bin", 0x000001, 0x400000, CRC(f9b15ab3) SHA1(d8ff2f43686bfc8c2f7ead3ef445e51c15dfbf16) ) /* Plane 2,3 */ + ROM_LOAD16_BYTE( "ngdt-300-c3.bin", 0x800000, 0x400000, CRC(50cc21cf) SHA1(0350aaef480c5fa12e68e540a4c974dbf5870add) ) /* Plane 0,1 */ + ROM_LOAD16_BYTE( "ngdt-300-c4.bin", 0x800001, 0x400000, CRC(8486ad9e) SHA1(19a2a73c825687e0cb9fd62bde00db91b5409529)) /* Plane 2,3 */ +ROM_END + + +/************************************* + * + * Title catalog + * (source: http://neogeomuseum.snkplaymore.co.jp/english/catalogue/index.php) + * + ************************************* + + In 2010, SNK Playmore, the successor of SNK, released a title catalogue which lists the released + games (MVS/AES/CD) including their release dates in Japan. It is not 100% complete. + The included title catalogue is the english one. + + Game Title Genre Publisher Date Released (in Japan) + ================================================================================================================================= + NAM-1975 3D Action SNK MVS Cartridge:1990/04/26 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + MAHJONG KYORETSUDEN Mahjong SNK MVS Cartridge:1990/04/26 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + MAGICIAN LORD Action ADK MVS Cartridge:1990/04/26 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/10/31 + BASEBALL STARS PROFESSIONAL Sports SNK MVS Cartridge:1990/04/26 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/04/21 + TOP PLAYER'S GOLF Sports SNK MVS Cartridge:1990/05/23 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + NINJA COMBAT Action ADK MVS Cartridge:1990/07/24 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/10/31 + RIDING HERO 3D Racing SNK MVS Cartridge:1990/07/24 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/05/26 + THE SUPER SPY 3D Action SNK MVS Cartridge:1990/10/08 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + CYBER-LIP Action SNK MVS Cartridge:1990/11/07 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/04/21 + PUZZLED Puzzle SNK MVS Cartridge:1990/11/20 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + LEAGUE BOWLING Sports SNK MVS Cartridge:1990/12/10 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + GHOST PILOTS Shooter SNK MVS Cartridge:1991/01/25 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/03/17 + SENGOKU Action SNK MVS Cartridge:1991/02/12 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1995/03/17 + KING OF THE MONSTERS Fighting SNK MVS Cartridge:1991/02/25 + NEOGEO ROM-cart:1991/07/01 + BLUE'S JOURNEY Action ADK MVS Cartridge:1991/03/14 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/10/31 + ALPHA MISSION II Shooter SNK MVS Cartridge:1991/03/25 + NEOGEO ROM-cart:1991/07/01 + NEOGEO CD:1994/09/09 + BURNING FIGHT Action SNK MVS Cartridge:1991/05/20 + NEOGEO ROM-cart:1991/08/09 + NEOGEO CD:1994/09/09 + MINNASAN NO OKAGESAMA DESU Table Monolith MVS Cartridge:1991/07/25 + NEOGEO ROM-cart:1991/07/21 + CROSSED SWORDS Action ADK MVS Cartridge:1991/07/25 + NEOGEO ROM-cart:1991/10/01 + NEOGEO CD:1994/10/31 + LEGEND OF SUCCESS JOE Action Wave MVS Cartridge:1991/07 + NEOGEO ROM-cart:1991/08/30 + QUIZ DAISUSA SEN: THE LAST COUNT DOWN Quiz SNK MVS Cartridge:1991/07 + NEOGEO ROM-cart:1991/08/30 + SUPER BASEBALL 2020 Sports SNK MVS Cartridge:1991/09/20 + NEOGEO ROM-cart:1991/10/25 + NEOGEO CD:1995/02/25 + ROBO ARMY Action SNK MVS Cartridge:1991/10/30 + NEOGEO ROM-cart:1991/12/20 + NEOGEO CD:1995/04/21 + THRASH RALLY Racing ADK MVS Cartridge:1991/11/08 + NEOGEO ROM-cart:1991/12/20 + NEOGEO CD:1994/10/31 + EIGHT MAN Action SNK NEOGEO ROM-cart:1991/11/20 + FATAL FURY Fighting SNK MVS Cartridge:1991/11/25 + NEOGEO ROM-cart:1991/12/20 + NEOGEO CD:1994/09/09 + BAKATONO-SAMA MAHJONG MAN'YUKI Mahjong Monolith MVS Cartridge:1991/11 + NEOGEO ROM-cart:1991/12/13 + THRASH RALLY Racing ADK NEOGEO ROM-cart:1991/12/20 + FOOTBALL FRENZY Sports SNK MVS Cartridge:1992/01/31 + NEOGEO ROM-cart:1992/02/21 + NEOGEO CD:1994/09/09 + SOCCER BRAWL Sports SNK MVS Cartridge:1992/02/14 + NEOGEO ROM-cart:1992/03/13 + NEOGEO CD:1995/03/31 + MUTATION NATION Action SNK MVS Cartridge:1992/03/16 + NEOGEO ROM-cart:1992/04/17 + NEOGEO CD:1995/02/25 + LAST RESORT Shooter SNK MVS Cartridge:1992/03/23 + NEOGEO ROM-cart:1992/04/24 + NEOGEO CD:1994/09/09 + QUIZ MEITANTEI NEO & GEO: QUIZ DAISOUSASEN PART 2 Quiz SNK MVS Cartridge:1992/03 + NEOGEO ROM-cart:1991/04/24 + BASEBALL STARS 2 Sports SNK MVS Cartridge:1992/04/15 + NEOGEO ROM-cart:1992/04/28 + NEOGEO CD:1994/09/09 + NINJA COMMANDO Shooter ADK MVS Cartridge:1992/04/30 + NEOGEO ROM-cart:1992/05/29 + NEOGEO CD:1994/10/31 + KING OF THE MONSTERS 2 Fighting SNK MVS Cartridge:1992/05/25 + NEOGEO ROM-cart:1992/06/19 + NEOGEO CD:1994/09/09 + ANDRO DUNOS Shooter Visco MVS Cartridge:1992/06/15 + NEOGEO ROM-cart:1992/07/17 + WORLD HEROES Fighting ADK MVS Cartridge:1992/07/28 + NEOGEO ROM-cart:1992/09/11 + NEOGEO CD:1995/03/17 + ART OF FIGHTING Fighting SNK MVS Cartridge:1992/09/24 + NEOGEO ROM-cart:1992/12/11 + NEOGEO CD:1994/09/09 + VIEWPOINT Shooter Sammy MVS Cartridge:1992/11/20 + NEOGEO ROM-cart:1992/12/11 + NEOGEO CD:1995/02/25 + FATAL FURY 2 Fighting SNK MVS Cartridge:1992/12/10 + NEOGEO ROM-cart:1993/03/05 + NEOGEO CD:1994/09/09 + SUPER SIDEKICKS Sports SNK MVS Cartridge:1992/12/14 + NEOGEO ROM-cart:1993/02/19 + NEOGEO CD:1995/03/31 + SENGOKU 2 Action SNK MVS Cartridge:1993/02/18 + NEOGEO ROM-cart:1993/04/09 + NEOGEO CD:1995/03/17 + 3 COUNT BOUT Fighting SNK MVS Cartridge:1993/03/25 + NEOGEO ROM-cart:1993/04/23 + NEOGEO CD:1995/04/21 + WORLD HEROES 2 Fighting ADK MVS Cartridge:1993/04/26 + NEOGEO ROM-cart:1993/06/04 + NEOGEO CD:1995/04/14 + SAMURAI SHODOWN Fighting SNK MVS Cartridge:1993/07/07 + NEOGEO ROM-cart:1993/08/11 + NEOGEO CD:1994/09/09 + FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1993/09/16 + NEOGEO ROM-cart:1993/12/22 + NEOGEO CD:1994/09/09 + SPINMASTER Sideview Action Data East MVS Cartridge:1993/12/16 + NEOGEO ROM-cart:1994/02/18 + ART OF FIGHTING 2 Fighting SNK MVS Cartridge:1994/02/03 + NEOGEO ROM-cart:1994/03/11 + NEOGEO CD:1994/09/09 + WINDJAMMERS Sports Data East MVS Cartridge:1994/02/17 + NEOGEO ROM-cart:1994/04/08 + NEOGEO CD:1995/01/20 + KARNOV'S REVENGE Fighting Data East MVS Cartridge:1994/03/17 + NEOGEO ROM-cart:1994/04/28 + NEOGEO CD:1994/12/22 + SUPER SIDEKICKS 2 Sports SNK MVS Cartridge:1994/04/19 + NEOGEO ROM-cart:1994/05/27 + NEOGEO CD:1994/09/09 + WORLD HEROES 2 JET Fighting ADK MVS Cartridge:1994/04/26 + NEOGEO ROM-cart:1994/06/10 + NEOGEO CD:1994/11/11 + TOP HUNTER Action SNK MVS Cartridge:1994/05/18 + NEOGEO ROM-cart:1994/06/24 + NEOGEO CD:1994/09/29 + GURURIN Puzzle Face MVS Cartridge:1994/05/25 + FIGHT FEVER Fighting VICCOM MVS Cartridge:1994/06/28 + JANSHIN DENSETSU: QUEST OF JONGMASTER Mahjong Aicom MVS Cartridge:1994/06/29 + NEOGEO CD:1995/03/31 + AERO FIGHTERS 2 Topview Shooter Video System MVS Cartridge:1994/07/18 + NEOGEO ROM-cart:1994/08/26 + NEOGEO CD:1994/09/29 + AGGRESSORS OF DARK KOMBAT Fighting ADK MVS Cartridge:1994/07/26 + NEOGEO ROM-cart:1994/08/26 + NEOGEO CD:1995/01/13 + THE KING OF FIGHTERS '94 Fighting SNK MVS Cartridge:1994/08/25 + NEOGEO ROM-cart:1994/10/01 + NEOGEO CD:1994/11/02 + ZED BLADE Shooter NMK MVS Cartridge:1994/09/13 + POWER SPIKES II Sports Video System MVS Cartridge:1994/10/19 + NEOGEO CD:1995/03/18 + SAMURAI SHODOWN II Fighting SNK MVS Cartridge:1994/10/28 + NEOGEO ROM-cart:1994/12/02 + NEOGEO CD:1994/12/15 + STREET HOOP Sports Data East MVS Cartridge:1994/12/08 + NEOGEO ROM-cart:1994/12/09 + NEOGEO CD:1995/01/20 + PUZZLE BOBBLE Puzzle TAITO MVS Cartridge:1994/12/21 + NEOGEO CD:1995/05/02 + SUPER VOLLEY '94 Sports TAITO MVS Cartridge:1994 + BOMBERMAN: PANIC BOMBER Puzzle Eighting MVS Cartridge:1995/01/18 + GALAXY FIGHT: UNIVERSAL WARRIORS Fighting Sunsoft MVS Cartridge:1995/01/24 + NEOGEO ROM-cart:1995/02/25 + NEOGEO CD:1995/04/21 + QUIZ KING OF FIGHTERS Quiz Saurus MVS Cartridge:1995/02/01 + NEOGEO ROM-cart:1995/03/10 + NEOGEO CD:1995/04/07 + DOUBLE DRAGON Fighting Technos MVS Cartridge:1995/03/03 + NEOGEO ROM-cart:1995/03/31 + NEOGEO CD:1995/06/02 + SUPER SIDEKICKS 3 Sports SNK MVS Cartridge:1995/03/07 + NEOGEO ROM-cart:1995/04/07 + NEOGEO CD:1995/06/23 + FATAL FURY 3 Fighting SNK MVS Cartridge:1995/03/27 + NEOGEO ROM-cart:1995/04/21 + NEOGEO CD:1995/04/28 + SAVAGE REIGN Fighting SNK MVS Cartridge:1995/04/25 + NEOGEO ROM-cart:1995/03/10 + NEOGEO CD:1995/06/16 + CROSSED SWORDS II Action ADK NEOGEO CD:1995/05/02 + WORLD HEROES PERFECT Fighting ADK MVS Cartridge:1995/05/25 + NEOGEO ROM-cart:1995/06/30 + NEOGEO CD:1995/07/21 + FAR EAST OF EDEN: KABUKI KLASH Fighting Hudson Soft MVS Cartridge:1995/06/20 + NEOGEO ROM-cart:1995/07/28 + NEOGEO CD:1995/11/24 + THE KING OF FIGHTERS '95 Fighting SNK MVS Cartridge:1995/07/25 + NEOGEO ROM-cart:1995/09/01 + NEOGEO CD:1995/09/29 + IDOL MAHJONG FINAL ROMANCE 2 Mahjong Video System NEOGEO CD:1995/08/25 + PULSTAR Sidevi. Shooter Aicom MVS Cartridge:1995/08/28 + NEOGEO ROM-cart:1995/09/29 + NEOGEO CD:1995/10/27 + VOLTAGE FIGHTER GOWCAIZER Fighting Technos MVS Cartridge:1995/09/18 + NEOGEO ROM-cart:1995/10/20 + NEOGEO CD:1995/11/24 + STAKES WINNER Action Saurus MVS Cartridge:1995/09/27 + NEOGEO ROM-cart:1995/10/27 + NEOGEO CD:1996/03/22 + SHOGI NO TATSUJIN - MASTER OF SHOUGI Japanese chess ADK MVS Cartridge:1995/09/28 + NEOGEO ROM-cart:1995/10/13 + NEOGEO CD:1995/10/20 + AERO FIGHTERS 3 Topview Action Video System MVS Cartridge:1995/10/12 + NEOGEO ROM-cart:1995/11/17 + NEOGEO CD:1995/12/08 + ADK WORLD Variety ADK NEOGEO CD:1995/11/10 + SAMURAI SHODOWN III Fighting SNK MVS Cartridge:1995/11/15 + NEOGEO ROM-cart:1995/12/01 + NEOGEO CD:1995/12/29 + CHIBI MARUKO-CHAN DELUXE QUIZ Variety Takara MVS Cartridge:1995/11/27 + NEOGEO ROM-cart:1996/01/26 + PUZZLE DE PON! Puzzle Visco MVS Cartridge:1995/11/28 + REAL BOUT FATAL FURY Fighting SNK MVS Cartridge:1995/12/21 + NEOGEO ROM-cart:1996/01/26 + NEOGEO CD:1996/02/23 + NEO-GEO CD SPECIAL Variety SNK NEOGEO CD:1995/12/22 + NEO TURF MASTERS Sports Nazca MVS Cartridge:1996/01/29 + NEOGEO ROM-cart:1996/03/01 + NEOGEO CD:1996/05/03 + ART OF FIGHTING 3 Fighting SNK MVS Cartridge:1996/03/12 + NEOGEO ROM-cart:1996/04/26 + NEOGEO CD:1996/06/14 + MAGICAL DROP II Puzzle Data East MVS Cartridge:1996/03/21 + NEOGEO ROM-cart:1996/04/19 + NEOGEO CD:1996/05/24 + OSHIDASHI JIN TRICK Puzzle ADK NEOGEO CD:1996/03/22 + NEO DRIFT OUT Racing Visco MVS Cartridge:1996/03/28 + NEOGEO CD:1996/07/26 + METAL SLUG Action Nazca MVS Cartridge:1996/04/19 + NEOGEO ROM-cart:1996/05/24 + NEOGEO CD:1996/07/05 + OVER TOP Racing ADK MVS Cartridge:1996/04/26 + NEOGEO ROM-cart:1996/06/07 + NEOGEO CD:1996/07/26 + NINJA MASTER'S Fighting ADK MVS Cartridge:1996/05/27 + NEOGEO ROM-cart:1996/06/28 + NEOGEO CD:1996/09/27 + RAGNAGARD Fighting Saurus MVS Cartridge:1996/06/13 + NEOGEO ROM-cart:1996/07/26 + NEOGEO CD:1996/08/23 + FUTSAL Sports Saurus NEOGEO CD:1996/07/19 + THE KING OF FIGHTERS '96 Fighting SNK MVS Cartridge:1996/07/30 + NEOGEO ROM-cart:1996/09/27 + NEOGEO CD:1996/10/25 + KIZUNA ENCOUNTER SUPER TAG BATTLE Fighting SNK MVS Cartridge:1996/09/20 + NEOGEO ROM-cart:1996/11/08 + CHOUTETSU BURIKINGA Shooter Saurus NEOGEO CD:1996/09/20 + STAKES WINNER 2 Real Jockey Act Saurus MVS Cartridge:1996/09/24 + NEOGEO ROM-cart:1996/12/13 + THE ULTIMATE 11 Sports SNK MVS Cartridge:1996/10/16 + NEOGEO ROM-cart:1996/12/20 + SAMURAI SHODOWN IV Fighting SNK MVS Cartridge:1996/10/25 + NEOGEO ROM-cart:1996/11/29 + NEOGEO CD:1996/12/27 + WAKU WAKU 7 Fighting Sunsoft MVS Cartridge:1996/11/21 + NEOGEO ROM-cart:1996/12/27 + TWINKLE STAR SPRITES Shooter ADK MVS Cartridge:1996/11/25 + NEOGEO ROM-cart:1997/01/31 + NEOGEO CD:1997/02/21 + BREAKERS Fighting Visco MVS Cartridge:1996/12/17 + NEOGEO ROM-cart:1997/03/21 + NEOGEO CD:1997/04/25 + MONEY IDOL EXCHANGER Puzzle Face MVS Cartridge:1997/01/15 + Real Bout FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1997/01/28 + NEOGEO ROM-cart:1997/02/28 + NEOGEO CD:1997/03/03 + THE KING OF FIGHTERS '96 NEOGEO COLLECTION Variety SNK NEOGEO CD:1997/02/14 + MAGICAL DROP III Puzzle Data East MVS Cartridge:1997/02/25 + NEOGEO ROM-cart:1997/04/25 + NEO BOMBERMAN Action Hudson Soft MVS Cartridge:1997/05/01 + NEO MR.DO! Action Visco MVS Cartridge:1997/06/26 + SHINSETSU SAMURAI SHODOWN BUSHIDO RETSUDEN Role-playing SNK NEOGEO CD:1997/06/27 + THE KING OF FIGHTERS '97 Fighting SNK MVS Cartridge:1997/07/28 + NEOGEO ROM-cart:1997/09/25 + NEOGEO CD:1997/10/30 + UCCHAN NANCHAN NO HONO NO CHALLENGER ULTRA DENRYU IRAIRABOU Action Saurus MVS Cartridge:1997/08/25 + SHOCK TROOPERS Shooter Saurus MVS Cartridge:1997/11/11 + THE LAST BLADE Fighting SNK MVS Cartridge:1997/12/05 + NEOGEO ROM-cart:1998/01/29 + NEOGEO CD:1998/03/26 + BLAZING STAR Shooter Yumekobo MVS Cartridge:1998/01/19 + NEOGEO ROM-cart:1998/02/26 + METAL SLUG 2 Action SNK MVS Cartridge:1998/02/23 + NEOGEO ROM-cart:1998/04/02 + NEOGEO CD:1998/06/25 + REAL BOUT FATAL FURY 2 Fighting SNK MVS Cartridge:1998/03/20 + NEOGEO ROM-cart:1998/04/29 + NEOGEO CD:1998/07/23 + NEOGEO CUP '98 Sports SNK MVS Cartridge:1998/05/28 + NEOGEO ROM-cart:1998/07/30 + BREAKERS REVENGE Fighting Visco MVS Cartridge:1998/07/03 + NEOGEO ROM-cart: + THE KING OF FIGHTERS '98 Fighting SNK MVS Cartridge:1998/07/23 + NEOGEO ROM-cart:1998/09/23 + NEOGEO CD:1998/12/23 + SHOCK TROOPERS 2nd Squad Action Shooter Saurus MVS Cartridge:1998/11/06 + NEOGEO ROM-cart:1999/06/24 + THE LAST BLADE 2 Fighting SNK MVS Cartridge:1998/11/25 + NEOGEO ROM-cart:1999/01/28 + NEOGEO CD:1999/02/27 + FLIP SHOT Action Visco MVS Cartridge:1998/12/08 + METAL SLUG X Action SNK MVS Cartridge:1999/03/19 + NEOGEO ROM-cart:1999/05/27 + CAPTAIN TOMADAY Shooter Visco MVS Cartridge:1999/05/27 + THE KING OF FIGHTERS '99 Fighting SNK MVS Cartridge:1999/07/22 + NEOGEO ROM-cart:1999/09/23 + NEOGEO CD:1999/12/02 + PREHISTORIC ISLE 2 Shooter Yumekobo MVS Cartridge:1999/09/27 + GAROU: MARK OF THE WOLVES Fighting SNK MVS Cartridge:1999/11/26 + NEOGEO ROM-cart:2000/02/25 + STRIKERS 1945 PLUS Shooter Psikyo MVS Cartridge:1999/12/24 + METAL SLUG 3 Action Shooter SNK MVS Cartridge:2000/03/23 + NEOGEO ROM-cart:2000/06/01 + THE KING OF FIGHTERS 2000 Fighting SNK MVS Cartridge:2000/07/26 + NEOGEO ROM-cart:2000/12/21 + NIGHTMARE IN THE DARK Horror Action Gavaking MVS Cartridge:2001 + ZUPAPA! Comical Action Video System MVS Cartridge:2001 + SENGOKU 3 Action SNK PLAYMORE MVS Cartridge:2001/07/18 + NEOGEO ROM-cart:2001/10/25 + THE KING OF FIGHTERS 2001 Fighting SNK PLAYMORE MVS Cartridge:2001/11/15 + NEOGEO ROM-cart:2002/03/14 + METAL SLUG 4 Action Shooter SNK PLAYMORE MVS Cartridge:2002/03/27 + NEOGEO ROM-cart:2002/06/13 + RAGE OF THE DRAGONS Fighting Evoga MVS Cartridge:2002/06/06 + NEOGEO ROM-cart:2002/09/26 + THE KING OF FIGHTERS 2002 Fighting SNK PLAYMORE MVS Cartridge:2002/10/10 + NEOGEO ROM-cart:2002/12/19 + POWER INSTINCT MATRIMELEE Fighting ATLUS/NOISE FA. MVS Cartridge:2003/03/20 + NEOGEO ROM-cart:2003/05/29 + SNK VS. CAPCOM: SVC CHAOS Fighting SNK PLAYMORE MV-0:2003/07/24 + NEOGEO ROM-cart:2003/11/13 + SAMURAI SHODOWN V Fighting SNK P/Yuki Ent MVS Cartridge:2003/10/10 + NEOGEO ROM-cart:2003/12/11 + METAL SLUG 5 Action Shooter SNK PLAYMORE MV-0:2003/11/14 + NEOGEO ROM-cart:2004/02/19 + THE KING OF FIGHTERS 2003 Fighting SNK PLAYMORE MV-0:2003/12/12 + NEOGEO ROM-cart:2004/03/18 + POCHI & NYAA Puzzle Aiky MVS Cartridge:2003/12/24 + SAMURAI SHODOWN V SPECIAL Fighting SNK P/Yuki Ent MVS Cartridge:2004/04/22 + NEOGEO ROM-cart:2004/07/15 +****************************************************************************/ + +/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */ +/* SNK */ +GAME( 1990, nam1975, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "NAM-1975 (NGM-001 ~ NGH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bstars, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGM-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bstarsh, bstars, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGH-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, tpgolf, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (NGM-003 ~ NGH-003)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, mahretsu, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "SNK", "Mahjong Kyo Retsuden (NGM-004 ~ NGH-004)", MACHINE_SUPPORTS_SAVE ) // does not support mahjong panel in MVS mode <- it actually works fine??? +GAME( 1990, ridhero, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (NGM-006 ~ NGH-006)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ridheroh, ridhero, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, alpham2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (NGM-007 ~ NGH-007)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, alpham2p, alpham2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, cyberlip, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (NGM-010)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, superspy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (NGM-011 ~ NGH-011)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mutnat, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (NGM-014 ~ NGH-014)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kotm, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, kotmh, kotm, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sengoku, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGM-017 ~ NGH-017)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sengokuh, sengoku, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGH-017, US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningf, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGM-018 ~ NGH-018)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfh, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGH-018, US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfpa, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype, ver 23.3, 910326)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, burningfp, burningf, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, lbowling, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (NGM-019 ~ NGH-019)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilots, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGM-020 ~ NGH-020)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, gpilotsh, gpilots, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGH-020, US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, joyjoy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled / Joy Joy Kid (NGM-021 ~ NGH-021)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, quizdais, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (NGM-023 ~ NGH-023)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, quizdaisk, quizdais, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, lresort, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, lresortp, lresort, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, eightman, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (NGM-025 ~ NGH-025)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, legendos, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Legend of Success Joe / Ashita no Joe Densetsu", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bba, 2020bb, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, 2020bbh, 2020bb, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, socbrawl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGM-031)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, socbrawlh, socbrawl, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGH-031)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, fatfury1, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters / Garou Densetsu - Shukumei no Tatakai (NGM-033 ~ NGH-033)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, roboarmy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, roboarma, roboarmy, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army (NGM-032 ~ NGH-032)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fbfrenzy, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (NGM-034 ~ NGH-034)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kotm2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (NGM-039 ~ NGH-039)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kotm2a, kotm2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, kotm2p, kotm2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, sengoku2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bstars2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, quizdai2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042 ~ NGH-042)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, 3countb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout / Fire Suplex (NGM-043 ~ NGH-043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, aof, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken (NGM-044 ~ NGH-044)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, samsho, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGM-045)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, samshoh, samsho, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGH-045)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, tophuntr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGM-046)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, tophuntrh, tophuntr, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGH-046)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, fatfury2, neogeo, fatfur2, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - Arata-naru Tatakai (NGM-047 ~ NGH-047)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ssideki, neogeo, fatfur2, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, kof94, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '94 (NGM-055 ~ NGH-055)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aof2a, aof2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfursp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, fatfurspa, fatfursp, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, savagere, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - Kakutou Sousei", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, ssideki2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - Real Fight Football (NGM-061 ~ NGH-061)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru Jigokuhen (NGM-063 ~ NGH-063)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2k, samsho2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, samsho2ka, samsho2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fatfury3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - Haruka-naru Tatakai (NGM-069 ~ NGH-069)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, ssideki3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - Eikou e no Michi", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95a, kof95, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084, alt board)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kof95h, kof95, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGH-084)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, samsho3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, samsho3h, samsho3, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, fswords, samsho3, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rbff1, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095 ~ NGH-095)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rbff1a, rbff1, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, rbff1k, rbff1, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, aof3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, aof3k, aof3, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode +GAME( 1996, kof96, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGM-214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kof96h, kof96, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ssideki4, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kizuna, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, kizuna4p, kizuna, kizuna4p, kizuna4p, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222 ~ NGH-222)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, samsho4k, samsho4, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffspec, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, rbffspeck, rbffspec, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGM-2320)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97h, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGH-2320)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97k, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97pls, kof97, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kof97oro, kof97, kof97oro, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Chongchu Jianghu Plus 2003 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, kog, kof97, kog, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "King of Gladiator (The King of Fighters '97 bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // protected bootleg +GAME( 1997, lastblad, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lastbladh, lastblad, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, lastsold, lastblad, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, irrmaze, neogeo, irrmaze, irrmaze, neogeo_state, neogeo, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGM-2400)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2h, rbff2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGH-2400)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, rbff2k, rbff2, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode +GAME( 1998, mslug2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410 ~ NGH-2410)", MACHINE_SUPPORTS_SAVE ) +GAME( 2015, mslug2t, mslug2, neobase, neogeo, neogeo_state, neogeo, ROT0, "hack (trap15)", "Metal Slug 2 Turbo (NGM-9410) (hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98, neogeo, kof98, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98a, kof98, kof98, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420, alt board)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98k, kof98, kof98, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98ka, kof98, kof98, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, kof98h, kof98, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGH-2420)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lastbld2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430 ~ NGH-2430)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, neocup98, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, mslugx, neogeo, mslugx, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug X - Super Vehicle-001 (NGM-2500 ~ NGH-2500)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, kof99, neogeo, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGM-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, kof99h, kof99, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGH-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX, crashes going into attract demo */ +GAME( 1999, kof99e, kof99, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, kof99k, kof99, kof99, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, kof99ka, kof99, kof99k, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release, non-encrypted program)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 1999, kof99p, kof99, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garou, neogeo, garou, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, garouh, garou, garouh, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530 ~ NGH-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 1999, garoup, garou, neobase, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, garoubl, garou, garoubl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Bootleg of garoup */ +GAME( 2000, mslug3, neogeo, mslug3, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 2000, mslug3h, mslug3, mslug3h, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2000, mslug3b6, mslug3, mslug3b6, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */ +GAME( 2000, kof2000, neogeo, kof2000, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570 ~ NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ +GAME( 2000, kof2000n, kof2000, kof2000n, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, zupapa, neogeo, zupapa, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Zupapa!" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, sengoku3, neogeo, sengoku3, neogeo, neogeo_state, neogeo, ROT0, "Noise Factory / SNK", "Sengoku 3 / Sengoku Densho 2001" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, kof2001, neogeo, kof2001, neogeo, neogeo_state, neogeo, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGM-262?)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, kof2001h, kof2001, kof2001, neogeo, neogeo_state, neogeo, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGH-2621)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2003, cthd2003, kof2001, cthd2k3, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ +GAME( 2003, ct2k3sp, kof2001, ct2k3sp, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */ +GAME( 2003, ct2k3sa, kof2001, ct2k3sa, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2001 */ +GAME( 2002, kof2002, neogeo, kof2002, neogeo, neogeo_state, neogeo, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (NGM-2650 ~ NGH-2650)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kof2002b, kof2002, kof2002b, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, kf2k2pls, kof2002, kf2k2pls, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 1)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2pla, kof2002, kf2k2pls, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2mp, kof2002, kf2k2mp, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kf2k2mp2, kof2002, kf2k2mp2, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2002, kof10th, kof2002, kof10th, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2005, kf10thep, kof2002, kf10thep, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2004, kf2k5uni, kof2002, kf2k5uni, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright +GAME( 2004, kof2k4se, kof2002, kof2k4se, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2002 */ +GAME( 2003, mslug5, neogeo, mslug5, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "Metal Slug 5 (NGM-2680)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, mslug5h, mslug5, mslug5, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", MACHINE_SUPPORTS_SAVE ) /* Also found in later MVS carts */ +GAME( 2003, ms5plus, mslug5, ms5plus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svc, neogeo, svc, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690 ~ NGH-2690)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcboot, svc, svcboot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcplus, svc, svcplus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcplusa, svc, svcplusa, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, svcsplus, svc, svcsplus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5, neogeo, samsho5, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5h, samsho5, samsho5, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, samsho5b, samsho5, samsho5b, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", MACHINE_SUPPORTS_SAVE ) // different program scrambling +GAME( 2003, kof2003, neogeo, kof2003, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kof2003h, kof2003, kof2003h, neogeo, neogeo_state, neogeo, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, kf2k3bl, kof2003, kf2k3bl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?) +GAME( 2003, kf2k3bla, kof2003, kf2k3pl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2003, kf2k3pl, kof2003, kf2k3pl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2003, kf2k3upl, kof2003, kf2k3upl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart +GAME( 2004, samsh5sp, neogeo, samsh5sp, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5sph, samsh5sp, samsh5sp, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 2nd release, less censored)", MACHINE_SUPPORTS_SAVE ) +GAME( 2004, samsh5spho, samsh5sp, samsh5sp, neogeo, neogeo_state, neogeo, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 1st release, censored)", MACHINE_SUPPORTS_SAVE ) + +/* Alpha Denshi Co. / ADK (changed name in 1993) */ +GAME( 1990, maglord, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGM-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, maglordh, maglord, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGH-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ncombat, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, ncombath, ncombat, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, bjourney, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001 ~ ALH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, crsword, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002 ~ ALH-002)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, trally, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003 ~ ALH-003)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, ncommand, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Commando", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALM-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1h, wh1, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALH-005)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, wh1ha, wh1, neobase, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, wh2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK", "World Heroes 2 (ALM-006 ~ ALH-006)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wh2j, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007 ~ ADH-007)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, aodk, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008 ~ ADH-008)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, whp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes Perfect", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, moshougi, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Shougi No Tatsujin - Master of Shougi", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, overtop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK", "Over Top", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ninjamas, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Ninja Master's - Haoh-ninpo-cho", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, twinspri, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Twinkle Star Sprites", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, zintrckb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Zintrick / Oshidashi Zentrix (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, crswd2bl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg (Razoola)","Crossed Swords 2 (bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) + + +/* Aicom (was a part of Sammy) / Yumekobo (changed name in 1996) */ +GAME( 1992, viewpoin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sammy / Aicom", "Viewpoint", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, janshin, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Aicom", "Janshin Densetsu - Quest of Jongmaster", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, pulstar, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Aicom", "Pulstar", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, blazstar, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Blazing Star", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, preisle2, neogeo, preisle2, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Prehistoric Isle 2" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ + +/* Data East Corporation */ +GAME( 1993, spinmast, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, wjammers, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, karnovr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, strhoop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream (DEM-004 ~ DEH-004)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ghostlop, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Ghostlop (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, magdrop2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop II", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, magdrop3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop III", MACHINE_SUPPORTS_SAVE ) + +/* Eleven */ +GAME( 2000, nitd, neogeo, nitd, neogeo, neogeo_state, neogeo, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2001, nitdbl, nitd, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Nightmare in the Dark (bootleg)" , MACHINE_SUPPORTS_SAVE ) + +/* Face */ +GAME( 1994, gururin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Face", "Gururin", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, miexchng, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, dragonsh, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Face", "Dragon's Heaven (development board)", MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // same ID code as Voltage Fighter Gowkaizer, developed by ex-Technos staff + +/* Hudson Soft */ +GAME( 1994, panicbom, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Eighting / Hudson", "Panic Bomber", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kabukikl, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, neobombe, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Neo Bomberman", MACHINE_SUPPORTS_SAVE ) + +/* Monolith Corp. */ +GAME( 1990, minasan, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minasan no Okagesamadesu! Dai Sugoroku Taikai (MOM-001 ~ MOH-001)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, bakatono, neogeo, neogeo_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuuki (MOM-002 ~ MOH-002)", MACHINE_SUPPORTS_SAVE ) + +/* Nazca (later acquired by SNK) */ +GAME( 1996, turfmast, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, mslug, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", MACHINE_SUPPORTS_SAVE ) + +/* NMK */ +GAME( 1994, zedblade, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "NMK", "Zed Blade / Operation Ragnarok", MACHINE_SUPPORTS_SAVE ) + +/* Psikyo */ +GAME( 1999, s1945p, neogeo, s1945p, neogeo, neogeo_state, neogeo, ROT0, "Psikyo", "Strikers 1945 Plus" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ + +/* Saurus */ +GAME( 1995, quizkof, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (SAM-080 ~ SAH-080)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, quizkofk, quizkof, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (Korean release)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, stakwin, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ragnagrd, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, pgoal, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ironclad, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Choutetsu Brikin'ger - Iron Clad (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, ironclado, ironclad, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Choutetsu Brikin'ger - Iron Clad (prototype, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, stakwin2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shocktro, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, shocktroa, shocktro, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, shocktr2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers - 2nd Squad", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, lans2004, shocktr2, lans2004, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", MACHINE_SUPPORTS_SAVE ) + +/* Sunsoft */ +GAME( 1995, galaxyfg, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, wakuwak7, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Waku Waku 7", MACHINE_SUPPORTS_SAVE ) + +/* Taito */ +GAME( 1994, pbobblen, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo, NGM-083)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, pbobblenb, pbobblen, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, pbobbl2n, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) +GAME( 2003, pnyaa, neogeo, pnyaa, neogeo, neogeo_state, neogeo, ROT0, "Aiky / Taito", "Pochi and Nyaa", MACHINE_SUPPORTS_SAVE ) + +/* Takara */ +GAME( 1995, marukodq, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", MACHINE_SUPPORTS_SAVE ) + +/* Technos Japan */ +GAME( 1995, doubledr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, gowcaizr, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, sdodgeb, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", MACHINE_SUPPORTS_SAVE ) + +/* Tecmo */ +GAME( 1996, tws96, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Tecmo", "Tecmo World Soccer '96", MACHINE_SUPPORTS_SAVE ) + +/* Viccom */ +GAME( 1994, fightfev, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, fightfeva, fightfev, neobase, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 2)", MACHINE_SUPPORTS_SAVE ) + +/* Video System Co. */ +GAME( 1994, pspikes2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Power Spikes II (NGM-068)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, sonicwi2, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, sonicwi3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, popbounc, neogeo, popbounc, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, froman2b, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Idol Mahjong Final Romance 2 (Neo-Geo, bootleg of CD version)", MACHINE_SUPPORTS_SAVE ) + +/* Visco */ +GAME( 1992, androdun, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (NGM-049 ~ NGH-049)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, puzzledp, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon!", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, neomrdo, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Mr. Do!", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, goalx3, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Goal! Goal! Goal!", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, neodrift, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Drift Out - New Technology", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, breakers, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers", MACHINE_SUPPORTS_SAVE ) +GAME( 1997, puzzldpr, puzzledp, neobase, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, breakrev, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers Revenge", MACHINE_SUPPORTS_SAVE ) +GAME( 1998, flipshot, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Battle Flip Shot", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ctomaday, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Captain Tomaday", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, ganryu, neogeo, ganryu, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ +GAME( 2000, bangbead, neogeo, bangbead, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bead", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, b2b, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bang Busters (2010 NCI release)" , MACHINE_SUPPORTS_SAVE ) + +/* Mega Enterprise */ +GAME( 2002, mslug4, neogeo, mslug4, neogeo, neogeo_state, neogeo, ROT0, "Mega / Playmore", "Metal Slug 4 (NGM-2630)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, mslug4h, mslug4, mslug4, neogeo, neogeo_state, neogeo, ROT0, "Mega / Playmore", "Metal Slug 4 (NGH-2630)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, ms4plus, mslug4, ms4plus, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", MACHINE_SUPPORTS_SAVE ) + +/* Evoga */ +GAME( 2002, rotd, neogeo, rotd, neogeo, neogeo_state, neogeo, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGM-2640?)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, rotdh, rotd, rotd, neogeo, neogeo_state, neogeo, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGH-2640?)", MACHINE_SUPPORTS_SAVE ) + +/* Atlus */ +GAME( 2002, matrim, neogeo, matrim, neogeo, neogeo_state, neogeo, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660 ~ NGH-2660)", MACHINE_SUPPORTS_SAVE ) +GAME( 2002, matrimbl, matrim, matrimbl, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", MACHINE_SUPPORTS_SAVE ) + +/***** Unlicensed commercial releases *****/ + +/* BrezzaSoft */ +GAME( 2001, jockeygp, neogeo, jockeygp, jockeygp, neogeo_state, neogeo, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, jockeygpa, jockeygp, jockeygp, jockeygp, neogeo_state, neogeo, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, vliner, neogeo, vliner, vliner, neogeo_state, neogeo, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, vlinero, vliner, vliner, vliner, neogeo_state, neogeo, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 2)", MACHINE_SUPPORTS_SAVE ) + +/* Kyle Hodgetts */ +GAME( 2000, diggerma, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", MACHINE_SUPPORTS_SAVE ) + +/* Vektorlogic */ +GAME( 2004, sbp, neogeo, sbp, neogeo, neogeo_state, neogeo, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING ) + +/* NG:DEV.TEAM */ +GAME( 2005, lasthope, neogeo, neobase, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope (bootleg AES to MVS conversion, no coin support)", MACHINE_SUPPORTS_SAVE ) // wasn't actually released on MVS but bootleg carts have been sold, this doesn't accept coins, runs like a console game +// Last Hope Pink Bullets (c)2008 - MVS/AES +// Fast Striker (c)2010 - MVS/AES +// Fast Striker 1.5 (c)2010 - MVS/AES +// GunLord (c)2012 - MVS/AES +// Neo XYX (c)2013 - MVS/AES +// Razion (c)2014 - MVS/AES? +// Kraut Buster (c)2016 - MVS/AES + +/* N.C.I - LE CORTEX */ +// Treasure of the Caribbean (c)2011 - AES only (no credits system if ran on an MVS, Freeplay) + +/* NEOBITZ */ +// Knight's Chance (c)2014 - MVS/AES + diff --git a/src/mame/drivers/opwolf.cpp b/src/mame/drivers/opwolf.cpp index 1d48b814a80..324d39629b5 100644 --- a/src/mame/drivers/opwolf.cpp +++ b/src/mame/drivers/opwolf.cpp @@ -979,6 +979,26 @@ ROM_START( opwolfj ) ROM_LOAD( "b20-08.21", 0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) ) ROM_END +ROM_START( opwolfjsc ) + ROM_REGION( 0x40000, "maincpu", 0 ) /* 256k for 68000 code */ + ROM_LOAD16_BYTE( "b20_27.ic40.27512", 0x000000, 0x010000, CRC(6bd02046) SHA1(3d3047b7665635e890337f1f46351427e307bfe7) ) + ROM_LOAD16_BYTE( "b20_26.ic30.27512", 0x000001, 0x010000, CRC(644dd415) SHA1(0cdc1152cb16fb872387f8cab3d9ee4b6286b965) ) + ROM_LOAD16_BYTE( "b20-04.39", 0x20000, 0x10000, CRC(216b4838) SHA1(2851cae00bb3e32e20f35fdab8ed6f149e658363) ) + ROM_LOAD16_BYTE( "b20-18.29", 0x20001, 0x10000, CRC(fd202470) SHA1(3108c14953d2f50d861946e9f646813b7050b58a) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ + ROM_LOAD( "b20-07.10", 0x00000, 0x10000, CRC(45c7ace3) SHA1(06f7393f6b973b7735c27e8380cb4148650cfc16) ) + + ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_LOAD( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */ + + ROM_REGION( 0x80000, "gfx2", 0 ) + ROM_LOAD( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */ + + ROM_REGION( 0x80000, "adpcm", 0 ) /* ADPCM samples */ + ROM_LOAD( "b20-08.21", 0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) ) +ROM_END + ROM_START( opwolfu ) /* Taito TC0030 C-Chip labeled B20-18 (yes, it has a specific label on it) */ ROM_REGION( 0x40000, "maincpu", 0 ) /* 256k for 68000 code */ ROM_LOAD16_BYTE( "b20-05-02.40", 0x00000, 0x10000, CRC(3ffbfe3a) SHA1(e41257e6af18bab4e36267a0c25a6aaa742972d2) ) @@ -1121,6 +1141,7 @@ DRIVER_INIT_MEMBER(opwolf_state,opwolfp) GAME( 1987, opwolf, 0, opwolf, opwolf, opwolf_state, opwolf, ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1987, opwolfa, opwolf, opwolf, opwolf, opwolf_state, opwolf, ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1987, opwolfj, opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito Corporation", "Operation Wolf (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, opwolfjsc,opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito Corporation", "Operation Wolf (Japan, SC)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1987, opwolfu, opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito America Corporation", "Operation Wolf (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1987, opwolfb, opwolf, opwolfb, opwolfb, opwolf_state, opwolfb, ROT0, "bootleg (Bear Corporation Korea)", "Operation Bear (bootleg of Operation Wolf)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1987, opwolfp, opwolf, opwolfp, opwolfp, opwolf_state, opwolfp, ROT0, "Taito Corporation", "Operation Wolf (Japan, prototype)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // unprotected diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp index 200cd82133a..bba8da85dae 100644 --- a/src/mame/drivers/pc9801.cpp +++ b/src/mame/drivers/pc9801.cpp @@ -410,10 +410,11 @@ Keyboard TX commands: #include "video/upd7220.h" -#include "machine/pc9801_26.h" -#include "machine/pc9801_86.h" -#include "machine/pc9801_118.h" -#include "machine/pc9801_cbus.h" +#include "bus/cbus/pc9801_26.h" +#include "bus/cbus/pc9801_86.h" +#include "bus/cbus/pc9801_118.h" +#include "bus/cbus/mpu_pc98.h" +#include "bus/cbus/pc9801_cbus.h" #include "machine/pc9801_kbd.h" #include "machine/pc9801_cd.h" @@ -693,7 +694,7 @@ public: private: uint8_t m_sdip_read(uint16_t port, uint8_t sdip_offset); void m_sdip_write(uint16_t port, uint8_t sdip_offset,uint8_t data); - uint16_t egc_do_partial_op(int plane, uint16_t src, uint16_t pat, uint16_t dst); + uint16_t egc_do_partial_op(int plane, uint16_t src, uint16_t pat, uint16_t dst) const; uint16_t egc_shift(int plane, uint16_t val); public: DECLARE_MACHINE_START(pc9801_common); @@ -1326,7 +1327,7 @@ uint16_t pc9801_state::egc_shift(int plane, uint16_t val) return out; } -uint16_t pc9801_state::egc_do_partial_op(int plane, uint16_t src, uint16_t pat, uint16_t dst) +uint16_t pc9801_state::egc_do_partial_op(int plane, uint16_t src, uint16_t pat, uint16_t dst) const { uint16_t out = 0; @@ -1453,7 +1454,8 @@ uint16_t pc9801_state::egc_blit_r(uint32_t offset, uint16_t mem_mask) if(m_egc.first && !m_egc.init) { m_egc.leftover[0] = m_egc.leftover[1] = m_egc.leftover[2] = m_egc.leftover[3] = 0; - m_egc.init = true; + if(((m_egc.regs[6] >> 4) & 0xf) >= (m_egc.regs[6] & 0xf)) // check if we have enough bits + m_egc.init = true; } for(int i = 0; i < 4; i++) m_egc.src[i] = egc_shift(i, m_video_ram_2[plane_off + (((i + 1) & 3) * 0x4000)]); @@ -3002,6 +3004,7 @@ static SLOT_INTERFACE_START( pc9801_cbus ) // Speak Board // Spark Board // AMD-98 (AmuseMent boarD) + SLOT_INTERFACE( "mpu_pc98", MPU_PC98 ) SLOT_INTERFACE_END // Jast Sound, could be put independently diff --git a/src/mame/drivers/segas18.cpp b/src/mame/drivers/segas18.cpp index 936dea2106b..ac03b4133cb 100644 --- a/src/mame/drivers/segas18.cpp +++ b/src/mame/drivers/segas18.cpp @@ -1537,7 +1537,7 @@ ROM_START( astorm3 ) ROM_LOAD16_BYTE( "epr-13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) ) ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU - ROM_LOAD( "epr-13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) ) + ROM_LOAD( "epr-13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) ) // Also known to have EPR-13083A ROM_LOAD( "epr-13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) ) ROM_LOAD( "epr-13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) ) ROM_LOAD( "epr-13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) ) diff --git a/src/mame/drivers/strnskil.cpp b/src/mame/drivers/strnskil.cpp index 363115c3c31..1b3f4b99ab7 100644 --- a/src/mame/drivers/strnskil.cpp +++ b/src/mame/drivers/strnskil.cpp @@ -119,12 +119,6 @@ static ADDRESS_MAP_START( strnskil_map2, AS_PROGRAM, 8, strnskil_state ) AM_RANGE(0xd802, 0xd802) AM_DEVWRITE("sn2", sn76496_device, write) ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, strnskil_state ) -// AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(mcu_portk_r) -// AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READWRITE(mcu_portr0_r, mcu_portr0_w) -ADDRESS_MAP_END - /****************************************************************************/ static INPUT_PORTS_START( strnskil ) @@ -383,7 +377,9 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( banbam, strnskil ) MCFG_CPU_ADD("mcu", MB8841, 8000000/2) - MCFG_CPU_IO_MAP(mcu_io_map) +// MCFG_MB88XX_READ_K_CB(READ8(strnskil_state, mcu_portk_r)) +// MCFG_MB88XX_READ_R0_CB(READ8(strnskil_state, mcu_portr0_r)) +// MCFG_MB88XX_WRITE_R0_CB(WRITE8(strnskil_state, mcu_portr0_w)) MACHINE_CONFIG_END /****************************************************************************/ diff --git a/src/mame/drivers/tecmo.cpp b/src/mame/drivers/tecmo.cpp index 6c34ab57213..ecd19a4b01f 100644 --- a/src/mame/drivers/tecmo.cpp +++ b/src/mame/drivers/tecmo.cpp @@ -1001,6 +1001,41 @@ ROM_START( silkwormj ) ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */ ROM_LOAD( "silkworm.1", 0x0000, 0x8000, CRC(5b553644) SHA1(5d39d2251094c17f7b732b4861401b3516fce9b1) ) ROM_END +// 6217A +// SILKWORM H T737 +// board have Japanese label "ADONO" +ROM_START( silkwormp ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "silkworm_pr4ma.4", 0x00000, 0x10000, CRC(5e2a39cc) SHA1(e2fb0fa2d4e3d439935b7814c8572224eddf271e) ) /* c000-ffff is not used */ + ROM_LOAD( "silkworm.5", 0x10000, 0x10000, CRC(a6c7bb51) SHA1(75f6625459ab65f2d47a282c1295d4db38f5fe51) ) /* banked at f000-f7ff */ + + ROM_REGION( 0x20000, "soundcpu", 0 ) + ROM_LOAD( "silkworm_sound.3", 0x0000, 0x8000, CRC(c67c5644) SHA1(0963eda467dbc18806a4f0a9525a093d2fcb82fb) ) + + ROM_REGION( 0x08000, "gfx1", 0 ) + ROM_LOAD( "sw.2", 0x00000, 0x08000, CRC(1acc54be) SHA1(b210e4c0753bc84171ca418f3fcf07f0e6965390) ) /* characters */ + + ROM_REGION( 0x40000, "gfx2", 0 ) + ROM_LOAD( "silkworm.6", 0x00000, 0x10000, CRC(1138d159) SHA1(3b938606d448c4effdfe414bbf495b50cc3bc1c1) ) /* sprites */ + ROM_LOAD( "silkworm.7", 0x10000, 0x10000, CRC(d96214f7) SHA1(a5b2be3ae6a6eb8afef2c18c865a998fbf4adf93) ) /* sprites */ + ROM_LOAD( "silkworm.8", 0x20000, 0x10000, CRC(0494b38e) SHA1(03255f153824056e430a0b8595103f3b58b1fd97) ) /* sprites */ + ROM_LOAD( "silkworm.9", 0x30000, 0x10000, CRC(8ce3cdf5) SHA1(635248514c4e1e5aab7a2ed4d620a5b970d4a43a) ) /* sprites */ + + ROM_REGION( 0x40000, "gfx3", 0 ) + ROM_LOAD( "silkworm.10", 0x00000, 0x10000, CRC(8c7138bb) SHA1(0cfd69fa77d5b546f7dad80537d8d2497ae758bc) ) /* tiles #1 */ + ROM_LOAD( "silkworm.11", 0x10000, 0x10000, CRC(6c03c476) SHA1(79ad800a2f4ba6d44ba5a31210cbd8566bb357b6) ) /* tiles #1 */ + ROM_LOAD( "silkworm.12", 0x20000, 0x10000, CRC(bb0f568f) SHA1(b66c6d0407ed0b068c6bf07987f1b923d4a6e4f8) ) /* tiles #1 */ + ROM_LOAD( "silkworm.13", 0x30000, 0x10000, CRC(773ad0a4) SHA1(f7576e1ac8c779b33d7ec393555fd097a34257fa) ) /* tiles #1 */ + + ROM_REGION( 0x40000, "gfx4", 0 ) + ROM_LOAD( "silkworm.14", 0x00000, 0x10000, CRC(409df64b) SHA1(cada970bf9cc8f6522e7a71e00fe873568852873) ) /* tiles #2 */ + ROM_LOAD( "silkworm.15", 0x10000, 0x10000, CRC(6e4052c9) SHA1(e2e3d7221b75cb044449a25a076a93c3def1f11b) ) /* tiles #2 */ + ROM_LOAD( "silkworm.16", 0x20000, 0x10000, CRC(9292ed63) SHA1(70aa46fcc187b8200c5d246870e2e2dc4b2985cb) ) /* tiles #2 */ + ROM_LOAD( "silkworm.17", 0x30000, 0x10000, CRC(3fa4563d) SHA1(46e3cc41491d63efcdda43c84c7ac1385a1926d0) ) /* tiles #2 */ + + ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */ + ROM_LOAD( "silkworm.1", 0x0000, 0x8000, CRC(5b553644) SHA1(5d39d2251094c17f7b732b4861401b3516fce9b1) ) // not dumped +ROM_END /* @@ -1181,4 +1216,5 @@ GAME( 1987, gemini, 0, gemini, gemini, tecmo_state, gemini, ROT9 GAME( 1987, geminib, gemini, geminib, gemini, tecmo_state, gemini, ROT90, "bootleg", "Gemini Wing (bootleg)", MACHINE_SUPPORTS_SAVE ) // Japan regional warning screen GAME( 1988, silkworm, 0, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (World)", MACHINE_SUPPORTS_SAVE ) // No regional "Warning, if you are playing ..." screen GAME( 1988, silkwormj, silkworm, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (Japan)", MACHINE_SUPPORTS_SAVE ) // Japan regional warning screen +GAME( 1988, silkwormp, silkworm, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (prototype?)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, backfirt, 0, backfirt, backfirt, tecmo_state, backfirt, ROT0, "Tecmo", "Back Fire (Tecmo, bootleg)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/vgmplay.cpp b/src/mame/drivers/vgmplay.cpp index 1401cda9294..ae2bf5ae34e 100644 --- a/src/mame/drivers/vgmplay.cpp +++ b/src/mame/drivers/vgmplay.cpp @@ -26,6 +26,8 @@ #include "sound/sn76496.h" #include "sound/ym2151.h" #include "sound/ym2413.h" +#include "sound/ymf271.h" +#include "sound/ymz280b.h" #include "debugger.h" #include "speaker.h" @@ -62,6 +64,8 @@ public: A_MULTIPCMB = 0x00013010, A_POKEYA = 0x00013020, A_POKEYB = 0x00013030, + A_YMF271 = 0x00013040, + A_YMZ280B = 0x00013050 }; enum io16_t @@ -91,6 +95,8 @@ public: virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; READ8_MEMBER(segapcm_rom_r); + READ8_MEMBER(ymf271_rom_r); + READ8_MEMBER(ymz280b_rom_r); READ8_MEMBER(multipcma_rom_r); READ8_MEMBER(multipcmb_rom_r); READ8_MEMBER(k053260_rom_r); @@ -171,6 +177,8 @@ private: required_device<pokey_device> m_pokeyb; required_device<c352_device> m_c352; required_device<okim6295_device> m_okim6295; + required_device<ymf271_device> m_ymf271; + required_device<ymz280b_device> m_ymz280b; uint32_t m_multipcma_bank_l; uint32_t m_multipcma_bank_r; @@ -355,6 +363,12 @@ void vgmplay_device::execute_run() m_pc += 3; break; + case 0x5d: + m_io->write_byte(A_YMZ280B+0, m_file->read_byte(m_pc+1)); + m_io->write_byte(A_YMZ280B+1, m_file->read_byte(m_pc+2)); + m_pc += 3; + break; + case 0x61: { uint32_t duration = m_file->read_word(m_pc+1); m_icount -= duration; @@ -495,6 +509,15 @@ void vgmplay_device::execute_run() break; } + case 0xd1: + { + uint8_t offset = m_file->read_byte(m_pc+1); + m_io->write_byte(A_YMF271 + (offset & 7) * 2, m_file->read_byte(m_pc+2)); + m_io->write_byte(A_YMF271 + (offset & 7) * 2 + 1, m_file->read_byte(m_pc+3)); + m_pc += 4; + break; + } + case 0xe0: m_ym2612_stream_offset = m_file->read_dword(m_pc+1); m_pc += 5; @@ -876,6 +899,16 @@ READ8_MEMBER(vgmplay_device::segapcm_rom_r) return rom_r(0, 0x80, offset); } +READ8_MEMBER(vgmplay_device::ymf271_rom_r) +{ + return rom_r(0, 0x85, offset); +} + +READ8_MEMBER(vgmplay_device::ymz280b_rom_r) +{ + return rom_r(0, 0x86, offset); +} + READ8_MEMBER(vgmplay_device::multipcma_rom_r) { return rom_r(0, 0x89, offset); @@ -927,6 +960,8 @@ vgmplay_state::vgmplay_state(const machine_config &mconfig, device_type type, co , m_pokeyb(*this, "pokeyb") , m_c352(*this, "c352") , m_okim6295(*this, "okim6295") + , m_ymf271(*this, "ymf271") + , m_ymz280b(*this, "ymz280b") { } @@ -1055,10 +1090,12 @@ void vgmplay_state::machine_start() logerror("Warning: file requests an unsupported YMF262\n"); if(version >= 0x151 && r32(0x60)) logerror("Warning: file requests an unsupported YMF278B\n"); - if(version >= 0x151 && r32(0x64)) - logerror("Warning: file requests an unsupported YMF271\n"); - if(version >= 0x151 && r32(0x68)) - logerror("Warning: file requests an unsupported YMZ280B\n"); + if(version >= 0x151 && r32(0x64)) { + m_ymf271->set_unscaled_clock(r32(0x64)); + } + if(version >= 0x151 && r32(0x68)) { + m_ymz280b->set_unscaled_clock(r32(0x68)); + } if(version >= 0x151 && r32(0x6c)) logerror("Warning: file requests an unsupported RF5C164\n"); if(version >= 0x151 && r32(0x70)) @@ -1251,6 +1288,8 @@ static ADDRESS_MAP_START( soundchips_map, AS_IO, 8, vgmplay_state ) AM_RANGE(vgmplay_device::A_MULTIPCMB+8, vgmplay_device::A_MULTIPCMB+11) AM_WRITE(multipcm_bank_lo_b_w) AM_RANGE(vgmplay_device::A_POKEYA, vgmplay_device::A_POKEYA+0xf) AM_DEVWRITE ("pokeya", pokey_device, write) AM_RANGE(vgmplay_device::A_POKEYB, vgmplay_device::A_POKEYB+0xf) AM_DEVWRITE ("pokeyb", pokey_device, write) + AM_RANGE(vgmplay_device::A_YMF271, vgmplay_device::A_YMF271+0xf) AM_DEVWRITE ("ymf271", ymf271_device, write) + AM_RANGE(vgmplay_device::A_YMZ280B, vgmplay_device::A_YMZ280B+0x1) AM_DEVWRITE ("ymz280b", ymz280b_device, write) ADDRESS_MAP_END static ADDRESS_MAP_START( segapcm_map, AS_0, 8, vgmplay_state ) @@ -1400,6 +1439,16 @@ static MACHINE_CONFIG_START( vgmplay ) MCFG_DEVICE_ADDRESS_MAP(AS_0, okim6295_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) + + MCFG_SOUND_ADD("ymf271", YMF271, 16934400) + MCFG_YMF271_EXT_READ_HANDLER(DEVREAD8("vgmplay", vgmplay_device, ymf271_rom_r)) + MCFG_SOUND_ROUTE(0, "lspeaker", 1) + MCFG_SOUND_ROUTE(1, "rspeaker", 1) + + MCFG_SOUND_ADD("ymz280b", YMZ280B, 16934400) + MCFG_YMZ280B_EXT_READ_HANDLER(DEVREAD8("vgmplay", vgmplay_device, ymz280b_rom_r)) + MCFG_SOUND_ROUTE(0, "lspeaker", 1) + MCFG_SOUND_ROUTE(1, "rspeaker", 1) MACHINE_CONFIG_END ROM_START( vgmplay ) diff --git a/src/mame/drivers/wpc_dcs.cpp b/src/mame/drivers/wpc_dcs.cpp index 6249a9ea5ce..9a0758151aa 100644 --- a/src/mame/drivers/wpc_dcs.cpp +++ b/src/mame/drivers/wpc_dcs.cpp @@ -616,8 +616,8 @@ ROM_START(jd_l7) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("jdrd_l7.rom", 0x00000, 0x80000, CRC(87b2a5c3) SHA1(e487e9ff78353ee96d5fb5f036b1a6cef586f5b4)) ROM_REGION16_LE(0x1000000, "dcs",0) - ROM_LOAD16_BYTE("jdsnd_u2.bin", 0x000000, 0x080000, CRC(d8f453c6) SHA1(5dd677fde46436dbf2d2e9058f06dd3048600234)) - ROM_LOAD16_BYTE("jdsnd_u3.bin", 0x200000, 0x080000, CRC(0a11f673) SHA1(ab556477a25e3493555b8a281ca86677caec8947)) + ROM_LOAD16_BYTE("jdsu2_l3.bin", 0x000000, 0x080000, CRC(7a59ec18) SHA1(ee073d4bea198fd66de3508f67061b7d19f12edc)) + ROM_LOAD16_BYTE("jdsu3_l3.bin", 0x200000, 0x080000, CRC(42f52faa) SHA1(3fac9d3ddfe21877929eaa4cb7101a690745b163)) ROM_LOAD16_BYTE("jdsnd_u4.bin", 0x400000, 0x080000, CRC(93f6ebc1) SHA1(5cb306afa693e60887069745588dfd5b930c5951)) ROM_LOAD16_BYTE("jdsnd_u5.bin", 0x600000, 0x080000, CRC(c9f28ba6) SHA1(8447372428e3b9fc86a98286c05f95a13abe26b0)) ROM_LOAD16_BYTE("jdsnd_u6.bin", 0x800000, 0x080000, CRC(ef0bf094) SHA1(c0860cecd436d352fe2c2208533ff6dc71bfced1)) @@ -644,8 +644,8 @@ ROM_START(jd_l6) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("jd_l6.u6", 0x00000, 0x80000, CRC(0a74cba4) SHA1(1872fd86bbfa772eac9cc2ef2634a90b72b3d5e2)) ROM_REGION16_LE(0x1000000, "dcs",0) - ROM_LOAD16_BYTE("jdsnd_u2.bin", 0x000000, 0x080000, CRC(d8f453c6) SHA1(5dd677fde46436dbf2d2e9058f06dd3048600234)) - ROM_LOAD16_BYTE("jdsnd_u3.bin", 0x200000, 0x080000, CRC(0a11f673) SHA1(ab556477a25e3493555b8a281ca86677caec8947)) + ROM_LOAD16_BYTE("jdsu2_l3.bin", 0x000000, 0x080000, CRC(7a59ec18) SHA1(ee073d4bea198fd66de3508f67061b7d19f12edc)) + ROM_LOAD16_BYTE("jdsu3_l3.bin", 0x200000, 0x080000, CRC(42f52faa) SHA1(3fac9d3ddfe21877929eaa4cb7101a690745b163)) ROM_LOAD16_BYTE("jdsnd_u4.bin", 0x400000, 0x080000, CRC(93f6ebc1) SHA1(5cb306afa693e60887069745588dfd5b930c5951)) ROM_LOAD16_BYTE("jdsnd_u5.bin", 0x600000, 0x080000, CRC(c9f28ba6) SHA1(8447372428e3b9fc86a98286c05f95a13abe26b0)) ROM_LOAD16_BYTE("jdsnd_u6.bin", 0x800000, 0x080000, CRC(ef0bf094) SHA1(c0860cecd436d352fe2c2208533ff6dc71bfced1)) @@ -658,8 +658,8 @@ ROM_START(jd_l5) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("jd_l5.u6", 0x00000, 0x80000, CRC(879b091e) SHA1(eaf1c86c0e72e8cdfa9ac942fc54ef4f70a65175)) ROM_REGION16_LE(0x1000000, "dcs",0) - ROM_LOAD16_BYTE("jdsnd_u2.bin", 0x000000, 0x080000, CRC(d8f453c6) SHA1(5dd677fde46436dbf2d2e9058f06dd3048600234)) - ROM_LOAD16_BYTE("jdsnd_u3.bin", 0x200000, 0x080000, CRC(0a11f673) SHA1(ab556477a25e3493555b8a281ca86677caec8947)) + ROM_LOAD16_BYTE("jdsu2_l3.bin", 0x000000, 0x080000, CRC(7a59ec18) SHA1(ee073d4bea198fd66de3508f67061b7d19f12edc)) + ROM_LOAD16_BYTE("jdsu3_l3.bin", 0x200000, 0x080000, CRC(42f52faa) SHA1(3fac9d3ddfe21877929eaa4cb7101a690745b163)) ROM_LOAD16_BYTE("jdsnd_u4.bin", 0x400000, 0x080000, CRC(93f6ebc1) SHA1(5cb306afa693e60887069745588dfd5b930c5951)) ROM_LOAD16_BYTE("jdsnd_u5.bin", 0x600000, 0x080000, CRC(c9f28ba6) SHA1(8447372428e3b9fc86a98286c05f95a13abe26b0)) ROM_LOAD16_BYTE("jdsnd_u6.bin", 0x800000, 0x080000, CRC(ef0bf094) SHA1(c0860cecd436d352fe2c2208533ff6dc71bfced1)) @@ -672,8 +672,8 @@ ROM_START(jd_l4) ROM_REGION(0x80000, "maincpu", 0) ROM_LOAD("jd_l4.u6", 0x00000, 0x80000, CRC(cc6f1068) SHA1(aef2a2eeb9110074eebff91318179ce97aba14ba)) ROM_REGION16_LE(0x1000000, "dcs",0) - ROM_LOAD16_BYTE("jdsnd_u2.bin", 0x000000, 0x080000, CRC(d8f453c6) SHA1(5dd677fde46436dbf2d2e9058f06dd3048600234)) - ROM_LOAD16_BYTE("jdsnd_u3.bin", 0x200000, 0x080000, CRC(0a11f673) SHA1(ab556477a25e3493555b8a281ca86677caec8947)) + ROM_LOAD16_BYTE("jdsu2_l3.bin", 0x000000, 0x080000, CRC(7a59ec18) SHA1(ee073d4bea198fd66de3508f67061b7d19f12edc)) + ROM_LOAD16_BYTE("jdsu3_l3.bin", 0x200000, 0x080000, CRC(42f52faa) SHA1(3fac9d3ddfe21877929eaa4cb7101a690745b163)) ROM_LOAD16_BYTE("jdsnd_u4.bin", 0x400000, 0x080000, CRC(93f6ebc1) SHA1(5cb306afa693e60887069745588dfd5b930c5951)) ROM_LOAD16_BYTE("jdsnd_u5.bin", 0x600000, 0x080000, CRC(c9f28ba6) SHA1(8447372428e3b9fc86a98286c05f95a13abe26b0)) ROM_LOAD16_BYTE("jdsnd_u6.bin", 0x800000, 0x080000, CRC(ef0bf094) SHA1(c0860cecd436d352fe2c2208533ff6dc71bfced1)) diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp index 0be83bea167..19da99f1a6e 100644 --- a/src/mame/drivers/x68k.cpp +++ b/src/mame/drivers/x68k.cpp @@ -728,7 +728,7 @@ WRITE8_MEMBER(x68k_state::x68k_ct_w) m_adpcm.clock = data & 0x02; x68k_set_adpcm(); - m_okim6258->set_clock(data & 0x02 ? 4000000 : 8000000); + m_okim6258->set_unscaled_clock(data & 0x02 ? 4000000 : 8000000); } /* diff --git a/src/mame/includes/arabian.h b/src/mame/includes/arabian.h index 4ff951bd724..bc56248d360 100644 --- a/src/mame/includes/arabian.h +++ b/src/mame/includes/arabian.h @@ -34,8 +34,14 @@ public: uint8_t m_mcu_port_o; uint8_t m_mcu_port_p; uint8_t m_mcu_port_r[4]; - DECLARE_READ8_MEMBER(mcu_port_r_r); - DECLARE_WRITE8_MEMBER(mcu_port_r_w); + DECLARE_READ8_MEMBER(mcu_port_r0_r); + DECLARE_READ8_MEMBER(mcu_port_r1_r); + DECLARE_READ8_MEMBER(mcu_port_r2_r); + DECLARE_READ8_MEMBER(mcu_port_r3_r); + DECLARE_WRITE8_MEMBER(mcu_port_r0_w); + DECLARE_WRITE8_MEMBER(mcu_port_r1_w); + DECLARE_WRITE8_MEMBER(mcu_port_r2_w); + DECLARE_WRITE8_MEMBER(mcu_port_r3_w); DECLARE_READ8_MEMBER(mcu_portk_r); DECLARE_WRITE8_MEMBER(mcu_port_o_w); DECLARE_WRITE8_MEMBER(mcu_port_p_w); diff --git a/src/mame/includes/busicom.h b/src/mame/includes/busicom.h index 8bb6e0faa63..0809af8f6af 100644 --- a/src/mame/includes/busicom.h +++ b/src/mame/includes/busicom.h @@ -6,18 +6,23 @@ * ****************************************************************************/ -#ifndef BUSICOM_H_ -#define BUSICOM_H_ +#ifndef MAME_INCLUDES_BUSICOM_H +#define MAME_INCLUDES_BUSICOM_H -#include "cpu/i4004/i4004.h" +#pragma once + +#include "cpu/mcs40/mcs40.h" class busicom_state : public driver_device { public: busicom_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_palette(*this, "palette") { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_palette(*this, "palette") + , m_input_lines(*this, "LINE%u", 0) + { + } uint8_t m_drum_index; uint16_t m_keyboard_shifter; @@ -37,9 +42,12 @@ public: DECLARE_PALETTE_INIT(busicom); uint32_t screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(timer_callback); + uint8_t get_bit_selected(uint32_t val,int num); + +private: required_device<i4004_cpu_device> m_maincpu; required_device<palette_device> m_palette; - uint8_t get_bit_selected(uint32_t val,int num); + required_ioport_array<10> m_input_lines; }; -#endif /* BUSICOM_H_ */ +#endif // MAME_INCLUDES_BUSICOM_H diff --git a/src/mame/includes/fidelbase.h b/src/mame/includes/fidelbase.h index cfadc5ed056..7d899b1ab76 100644 --- a/src/mame/includes/fidelbase.h +++ b/src/mame/includes/fidelbase.h @@ -54,7 +54,7 @@ public: DECLARE_DEVICE_IMAGE_LOAD_MEMBER(scc_cartridge); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h index 89c5a43b995..534c1c33511 100644 --- a/src/mame/includes/galaxian.h +++ b/src/mame/includes/galaxian.h @@ -44,14 +44,10 @@ public: m_audiocpu(*this, "audiocpu"), m_audio2(*this, "audio2"), m_dac(*this, "dac"), - m_ay8910_0(*this, "8910.0"), - m_ay8910_1(*this, "8910.1"), - m_ay8910_2(*this, "8910.2"), + m_ay8910(*this, "8910.%u", 0), m_ay8910_cclimber(*this, "cclimber_audio:aysnd"), m_digitalker(*this, "digitalker"), - m_ppi8255_0(*this, "ppi8255_0"), - m_ppi8255_1(*this, "ppi8255_1"), - m_ppi8255_2(*this, "ppi8255_2"), + m_ppi8255(*this, "ppi8255_%u", 0), m_gfxdecode(*this, "gfxdecode"), m_screen(*this, "screen"), m_palette(*this, "palette"), @@ -66,14 +62,10 @@ public: optional_device<cpu_device> m_audiocpu; optional_device<cpu_device> m_audio2; optional_device<dac_byte_interface> m_dac; - optional_device<ay8910_device> m_ay8910_0; - optional_device<ay8910_device> m_ay8910_1; - optional_device<ay8910_device> m_ay8910_2; + optional_device_array<ay8910_device, 3> m_ay8910; optional_device<ay8910_device> m_ay8910_cclimber; optional_device<digitalker_device> m_digitalker; - optional_device<i8255_device> m_ppi8255_0; - optional_device<i8255_device> m_ppi8255_1; - optional_device<i8255_device> m_ppi8255_2; + optional_device_array<i8255_device, 3> m_ppi8255; required_device<gfxdecode_device> m_gfxdecode; required_device<screen_device> m_screen; required_device<palette_device> m_palette; @@ -197,6 +189,8 @@ public: DECLARE_WRITE8_MEMBER(tenspot_unk_6000_w); DECLARE_WRITE8_MEMBER(tenspot_unk_8000_w); DECLARE_WRITE8_MEMBER(tenspot_unk_e000_w); + DECLARE_READ8_MEMBER(froggeram_ppi8255_r); + DECLARE_WRITE8_MEMBER(froggeram_ppi8255_w); DECLARE_WRITE8_MEMBER(artic_gfxbank_w); DECLARE_READ8_MEMBER(tenspot_dsw_read); DECLARE_INPUT_CHANGED_MEMBER(gmgalax_game_changed); diff --git a/src/mame/includes/hh_tms1k.h b/src/mame/includes/hh_tms1k.h index 8b680278876..5ef40435f63 100644 --- a/src/mame/includes/hh_tms1k.h +++ b/src/mame/includes/hh_tms1k.h @@ -52,7 +52,7 @@ public: virtual DECLARE_WRITE_LINE_MEMBER(auto_power_off); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/includes/hh_ucom4.h b/src/mame/includes/hh_ucom4.h index 3fbbdc3d63d..83fcaf0228c 100644 --- a/src/mame/includes/hh_ucom4.h +++ b/src/mame/includes/hh_ucom4.h @@ -44,7 +44,7 @@ public: DECLARE_INPUT_CHANGED_MEMBER(single_interrupt_line); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h index 13fb183775a..72f3efaec82 100644 --- a/src/mame/includes/megadriv.h +++ b/src/mame/includes/megadriv.h @@ -32,7 +32,7 @@ MACHINE_CONFIG_EXTERN( megadriv_timers ); MACHINE_CONFIG_EXTERN( md_ntsc ); MACHINE_CONFIG_EXTERN( md_pal ); MACHINE_CONFIG_EXTERN( md_bootleg ); // for topshoot.c & hshavoc.c -MACHINE_CONFIG_EXTERN( dcat16_megadriv ); +MACHINE_CONFIG_EXTERN( dcat16_megadriv_base ); struct genesis_z80_vars { diff --git a/src/mame/includes/namcond1.h b/src/mame/includes/namcond1.h index 0ff24757fc0..c30a35e095e 100644 --- a/src/mame/includes/namcond1.h +++ b/src/mame/includes/namcond1.h @@ -9,6 +9,7 @@ ***************************************************************************/ #include "video/ygv608.h" +#include "machine/nvram.h" class namcond1_state : public driver_device { @@ -18,11 +19,14 @@ public: m_maincpu(*this, "maincpu"), m_mcu(*this, "mcu"), m_ygv608(*this, "ygv608"), + m_zpr1(*this, "zpr1"), + m_zpr2(*this, "zpr2"), m_shared_ram(*this, "shared_ram") { } required_device<cpu_device> m_maincpu; required_device<cpu_device> m_mcu; required_device<ygv608_device> m_ygv608; + optional_device<nvram_device> m_zpr1, m_zpr2; required_shared_ptr<uint16_t> m_shared_ram; @@ -34,6 +38,7 @@ public: DECLARE_WRITE16_MEMBER(mcu_pa_write); DECLARE_READ16_MEMBER(cuskey_r); DECLARE_WRITE16_MEMBER(cuskey_w); + DECLARE_READ16_MEMBER(printer_r); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/includes/novagbase.h b/src/mame/includes/novagbase.h index 18b6870e920..728066a9b96 100644 --- a/src/mame/includes/novagbase.h +++ b/src/mame/includes/novagbase.h @@ -47,7 +47,7 @@ public: u16 read_inputs(int columns); // display common - int m_display_wait; // led/lamp off-delay in microseconds (default 33ms) + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) int m_display_maxy; // display matrix number of rows int m_display_maxx; // display matrix number of columns (max 31 for now) diff --git a/src/mame/machine/megadriv.cpp b/src/mame/machine/megadriv.cpp index c6bb93b5770..756c6ee00c7 100644 --- a/src/mame/machine/megadriv.cpp +++ b/src/mame/machine/megadriv.cpp @@ -939,22 +939,12 @@ MACHINE_CONFIG_START( md_ntsc ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker",0.25) /* 3.58 MHz */ MACHINE_CONFIG_END -MACHINE_CONFIG_START( dcat16_megadriv ) +MACHINE_CONFIG_START( dcat16_megadriv_base ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(dcat16_megadriv_map) MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(md_base_state,genesis_int_callback) - - MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common) - MCFG_MACHINE_RESET_OVERRIDE(md_cons_state, megadriv) - - MCFG_SCREEN_MODIFY("megadriv") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(md_cons_state, screen_vblank_console)) - -// has SD card slot instead? -// MCFG_MD_CARTRIDGE_ADD("mdslot", md_cart, nullptr) -// MCFG_SOFTWARE_LIST_ADD("cart_list","megadriv") MACHINE_CONFIG_END /************ PAL hardware has a different master clock *************/ diff --git a/src/mame/machine/mpu4.cpp b/src/mame/machine/mpu4.cpp new file mode 100644 index 00000000000..d6718c4b4c3 --- /dev/null +++ b/src/mame/machine/mpu4.cpp @@ -0,0 +1,3184 @@ +// license:BSD-3-Clause +// copyright-holders:James Wallace +// thanks-to:Chris Wren, Tony Friery, MFME +/* MPU4 hardware emulation + for sets see the various includes prefixed 'mpu4' +*/ + +/* Note 19/07/11 DH + - added lots of sets + + these are mostly unsorted and need to be split into clones + the original source of these was a mess, assume things to be mislabled, bad, duplicated, or otherwise + badly organized. a lot of work is needed to sort them out, especially the Barcrest sets! Some of this + stuff MIGHT be in the wrong driver, or missing roms (sound roms especially) +*/ + +/*********************************************************************************************************** + Barcrest MPU4 highly preliminary driver. + MAME Driver J. Wallace and Haze + + Thanks to Chris Wren and MFME for documentation. + + This is the core driver, no video specific stuff should go in here. + This driver holds all the mechanical games. + + 06-2011: Fixed boneheaded interface glitch that was causing samples to not be cancelled correctly. + Added the ability to read each segment of an LED display separately, this may be necessary for some + games that use them as surrogate lamp lines. + New persistence 'hack' to stop light flicker for the small extender. + 05-2011: Add better OKI emulation + 04-2011: More accurate gamball code, fixed ROM banking (Project Amber), added BwB CHR simulator (Amber) + This is still a hard coded system, but significantly different to Barcrest's version. + Started adding support for the Crystal Gaming program card, and the link keys for setting parameters. + 03-2011: Lamp timing fixes, support for all known expansion cards added. + 01-2011: Adding the missing 'OKI' sound card, and documented it, but it needs a 6376 rewrite. + 09-2007: Haze: Added Deal 'Em video support. + 03-08-2007: J Wallace: Removed audio filter for now, since sound is more accurate without them. + Connect 4 now has the right sound. + 03-07-2007: J Wallace: Several major changes, including input relabelling, and system timer improvements. + 06-2007: Atari Ace, many cleanups and optimizations of I/O routines + 09-06-2007: J Wallace: Fixed 50Hz detection circuit. + 17-02-2007: J Wallace: Added Deal 'Em - still needs some work. + 10-02-2007: J Wallace: Improved input timing. + 30-01-2007: J Wallace: Characteriser rewritten to run the 'extra' data needed by some games. + 24-01-2007: J Wallace: With thanks to Canonman and HIGHWAYMAN/System 80, I was able to confirm a seemingly + ghastly misuse of a PIA is actually on the real hardware. This fixes the meters. + +See http://agemame.mameworld.info/techinfo/mpu4.php for Information. + +--- Board Setup --- + +The MPU4 BOARD is the driver board, originally designed to run Fruit Machines made by the Barcrest Group, but later +licensed to other firms as a general purpose unit (even some old Photo-Me booths used the unit). + +This board uses a ~1.72 Mhz 6809B CPU, and a number of PIA6821 chips for multiplexing inputs and the like. + +To some extent, the hardware feels like a revision of the MPU3 design, integrating into the base unit features that were +previously added through expansion ports. However, there is no backwards compatibility, and the entire memory map has been +reworked. + +Like MPU3, a 6840PTM is used for internal timing, and other miscellaneous control functions, including as a crude analogue sound device +(a square wave from the PTM being used as the alarm sound generator). However, the main sound functionality is provided by +dedicated hardware (an AY8913). + +A MPU4 GAME CARD (cartridge) plugs into the MPU4 board containing the game, and a protection PAL (the 'characteriser'). +This PAL, as well as protecting the games, also controlled some of the lamp address matrix for many games, and acted as +an anti-tampering device which helped to prevent the hacking of certain titles in a manner which broke UK gaming laws. + +Like MPU3, over the years developers have added more capabilities through the spare inputs and outputs provided. These provided +support for more reels, lamps and LEDs through daughtercards. +Several solutions were released depending on the manufacturer of the machine, all are emulated here. + +In later revisions of the main board (MOD4 onwards), the AY8913 was removed entirely, as two official alternatives for sound had been produced. +In one, a YM2413 is built into the gameboard, and in the other an OKI MSM6376 is interfaced with a PIA and PTM to allow sophisticated +sampled sound. + +The lamping and input handling side of the machine rely entirely on a column by column 'strobe' system, with lights and LEDs selected in turn. +In the inputs there are two orange connectors (sampled every 8ms) and two black ones (sampled every 16ms), giving 32 multiplexed inputs. + +In addition there are two auxiliary ports that can be accessed separately to these and are bidirectional + +--- Preliminary MPU4 Memorymap --- + +(NV) indicates an item which is not present on the video version, which has a Comms card instead. + + hex |r/w| D D D D D D D D | + location | | 7 6 5 4 3 2 1 0 | function +-----------+---+-----------------+-------------------------------------------------------------------------- + 0000-07FF |R/W| D D D D D D D D | 2k RAM +-----------+---+-----------------+-------------------------------------------------------------------------- + 0800 |R/W| | Characteriser (Security PAL) (NV) +-----------+---+-----------------+-------------------------------------------------------------------------- + 0850 ? | W | ??????????????? | page latch (NV) +-----------+---+-----------------+-------------------------------------------------------------------------- + 0880 |R/W| D D D D D D D D | PIA6821 on soundboard (Oki MSM6376 clocked by 6840 (8C0)) + | | | port A = ?? + | | | port B (882) + | | | b7 = NAR + | | | b6 = 0 if OKI busy, 1 if OKI ready + | | | b5 = volume control clock + | | | b4 = volume control direction (0= up, 1 = down) + | | | b3 = ?? + | | | b2 = ?? + | | | b1 = 2ch + | | | b0 = ST +-----------+---+-----------------+-------------------------------------------------------------------------- + 08C0 | | | MC6840 on sound board +-----------+---+-----------------+-------------------------------------------------------------------------- + 0900- |R/W| D D D D D D D D | MC6840 PTM IC2 + + + Clock1 <-------------------------------------- + | | + V | + Output1 ---> Clock2 | + | + Output2 --+-> Clock3 | + | | + | Output3 ---> 'to audio amp' ?? + | + +--------> CA1 IC3 ( + +IRQ line connected to CPU + +-----------+---+-----------------+-------------------------------------------------------------------------- + 0A00-0A03 |R/W| D D D D D D D D | PIA6821 IC3 port A Lamp Drives 1,2,3,4,6,7,8,9 (sic)(IC14) + | | | + | | | CA1 <= output2 from PTM6840 (IC2) + | | | CA2 => alpha data + | | | + | | | port B Lamp Drives 10,11,12,13,14,15,16,17 (sic)(IC13) + | | | + | | | CB2 => alpha reset (clock on Dutch systems) + | | | +-----------+---+-----------------+-------------------------------------------------------------------------- + 0B00-0B03 |R/W| D D D D D D D D | PIA6821 IC4 port A = data for 7seg leds (pins 10 - 17, via IC32) + | | | + | | | CA1 INPUT, 50 Hz input (used to generate IRQ) + | | | CA2 OUTPUT, connected to pin2 74LS138 CE for multiplexer + | | | (B on LED strobe multiplexer) + | | | IRQA connected to IRQ of CPU + | | | port B + | | | PB7 = INPUT, serial port Receive data (Rx) + | | | PB6 = INPUT, reel A sensor + | | | PB5 = INPUT, reel B sensor + | | | PB4 = INPUT, reel C sensor + | | | PB3 = INPUT, reel D sensor + | | | PB2 = INPUT, Connected to CA1 (50Hz signal) + | | | PB1 = INPUT, undercurrent sense + | | | PB0 = INPUT, overcurrent sense + | | | + | | | CB1 INPUT, used to generate IRQ on edge of serial input line + | | | CB2 OUTPUT, enable signal for reel optics + | | | IRQB connected to IRQ of CPU + | | | +-----------+---+-----------------+-------------------------------------------------------------------------- + 0C00-0C03 |R/W| D D D D D D D D | PIA6821 IC5 port A + | | | + | | | PA0-PA7, INPUT AUX1 connector + | | | + | | | CA2 OUTPUT, serial port Transmit line + | | | CA1 not connected + | | | IRQA connected to IRQ of CPU + | | | + | | | port B + | | | + | | | PB0-PB7 INPUT, AUX2 connector + | | | + | | | CB1 INPUT, connected to PB7 (Aux2 connector pin 4) + | | | + | | | CB2 OUTPUT, AY8913 chip select line + | | | IRQB connected to IRQ of CPU + | | | +-----------+---+-----------------+-------------------------------------------------------------------------- + 0D00-0D03 |R/W| D D D D D D D D | PIA6821 IC6 + | | | + | | | port A + | | | + | | | PA0 - PA7 (INPUT/OUTPUT) data port AY8913 sound chip + | | | + | | | CA1 INPUT, not connected + | | | CA2 OUTPUT, BC1 pin AY8913 sound chip + | | | IRQA , connected to IRQ CPU + | | | + | | | port B + | | | + | | | PB0-PB3 OUTPUT, reel A + | | | PB4-PB7 OUTPUT, reel B + | | | + | | | CB1 INPUT, not connected + | | | CB2 OUTPUT, B01R pin AY8913 sound chip + | | | IRQB , connected to IRQ CPU + | | | +-----------+---+-----------------+-------------------------------------------------------------------------- + 0E00-0E03 |R/W| D D D D D D D D | PIA6821 IC7 + | | | + | | | port A + | | | + | | | PA0-PA3 OUTPUT, reel C + | | | PA4-PA7 OUTPUT, reel D + | | | CA1 INPUT, not connected + | | | CA2 OUTPUT, A on LED strobe multiplexer + | | | IRQA , connected to IRQ CPU + | | | + | | | port B + | | | + | | | PB0-PB6 OUTPUT mech meter 1-7 or reel E + F + | | | PB7 Voltage drop sensor + | | | CB1 INPUT, not connected + | | | CB2 OUTPUT,mech meter 8 + | | | IRQB , connected to IRQ CPU + | | | +-----------+---+-----------------+-------------------------------------------------------------------------- + 0F00-0F03 |R/W| D D D D D D D D | PIA6821 IC8 + | | | + | | | port A + | | | + | | | PA0-PA7 INPUT multiplexed inputs data + | | | + | | | CA1 INPUT, not connected + | | | CA2 OUTPUT, C on LED strobe multiplexer + | | | IRQA connected to IRQ CPU + | | | + | | | port B + | | | + | | | PB0-PB7 OUTPUT triacs outputs connector PL6 + | | | used for slides / hoppers + | | | + | | | CB1 INPUT, not connected + | | | CB2 OUTPUT, pin1 alpha display PL7 (clock signal) + | | | IRQB connected to IRQ CPU + | | | +-----------+---+-----------------+-------------------------------------------------------------------------- + 1000-FFFF | R | D D D D D D D D | ROM (can be bank switched by 0x850 in 8 banks of 64 k ) (NV) +-----------+---+-----------------+-------------------------------------------------------------------------- + +Additional Notes: + +Games from around the era of Road Hog and Chase Invaders had sufficient additional space to store three sets of reel +start/stop sounds. + +To change between them, follow these instructions: + +1) Load the game. +2) Open the cashbox door and insert the refill key. +3) Use Hi/Lo to adjust volume +4) Use Hold 1/2/3 to choose between "Default", "Standard" and "Alternative" sound sets +5) Use Cancel/collect to test the sounds. +6) To return to the game, remove the refill key and close the door + +TODO: - Distinguish door switches using manual + - Complete stubs for hoppers (needs slightly better 68681 emulation, and new 'hoppers' device emulation) + - It seems that the MPU4 core program relies on some degree of persistence when switching strobes and handling + writes to the various hardware ports. This explains the occasional lamping/LED blackout and switching bugs + For now, we're ignoring any extra writes to strobes, as the alternative is to assign a timer to *everything* and + start modelling the individual hysteresis curves of filament lamps. + - Fix BwB characteriser, need to be able to calculate stabiliser bytes. Anyone fancy reading 6809 source? + - Strange bug in Andy's Great Escape - Mystery nudge sound effect is not played, mpu4 latches in silence instead (?) + + - Per game inputs not currently supported, may need to do something about DIPs, inverted lines etc. +***********************************************************************************************************/ +#include "emu.h" +#include "includes/mpu4.h" + +#include "video/awpvid.h" //Fruit Machines Only + +#include "speaker.h" + +#include "mpu4.lh" +#include "mpu4ext.lh" + + +/* +LED Segments related to pins (5 is not connected): +Unlike the controllers emulated in the layout code, each +segment of an MPU4 LED can be set individually, even +being used as individual lamps. However, we can get away +with settings like this in the majority of cases. + _9_ + | | + 3 8 + | | + _2_ + | | + 4 7 + |_ _| + 6 1 + +8 display enables (pins 10 - 17) +*/ + +void mpu4_state::lamp_extend_small(int data) +{ + int lamp_ext_data,column,i; + column = data & 0x07; + + lamp_ext_data = 0x1f - ((data & 0xf8) >> 3);//remove the mux lines from the data + + if (m_lamp_strobe_ext_persistence == 0) + //One write to reset the drive lines, one with the data, one to clear the lines, so only the 2nd write does anything + //Once again, lamp persistences would take care of this, but we can't do that + { + for (i = 0; i < 5; i++) + { + output().set_lamp_value((8*column)+i+128,((lamp_ext_data & (1 << i)) != 0)); + } + } + m_lamp_strobe_ext_persistence ++; + if ((m_lamp_strobe_ext_persistence == 3)||(m_lamp_strobe_ext!=column)) + { + m_lamp_strobe_ext_persistence = 0; + m_lamp_strobe_ext=column; + } +} + +void mpu4_state::lamp_extend_large(int data,int column,int active) +{ + int lampbase,i,bit7; + + m_lamp_sense = 0; + bit7 = data & 0x80; + if ( bit7 != m_last_b7 ) + { + m_card_live = 1; + //depending on bit 7, we can access one of two 'blocks' of 64 lamps + lampbase = bit7 ? 0 : 64; + if ( data & 0x3f ) + { + m_lamp_sense = 1; + } + if ( active ) + { + if (m_lamp_strobe_ext != column) + { + for (i = 0; i < 8; i++) + {//CHECK, this includes bit 7 + output().set_lamp_value((8*column)+i+128+lampbase ,(data & (1 << i)) != 0); + } + m_lamp_strobe_ext = column; + } + } + m_last_b7 = bit7; + } + else + { + m_card_live = 0; + } +} + +void mpu4_state::led_write_latch(int latch, int data, int column) +{ + int diff,i,j; + + diff = (latch ^ m_last_latch) & latch; + column = 7 - column; // like main board, these are wired up in reverse + data = ~data;//inverted drive lines? + + for(i=0; i<5; i++) + { + if (diff & (1<<i)) + { + column += i; + } + } + for(j=0; j<8; j++) + { + output().set_indexed_value("mpu4led",(8*column)+j,(data & (1 << j)) !=0); + } + output().set_digit_value(column * 8, data); + + m_last_latch = diff; +} + + +void mpu4_state::update_meters() +{ + int meter; + int data = ((m_mmtr_data & 0x7f) | m_remote_meter); + switch (m_reel_mux) + { + case STANDARD_REEL: + // Change nothing + break; + + case FIVE_REEL_5TO8: + m_reel4->update(((data >> 4) & 0x0f)); + data = (data & 0x0F); //Strip reel data from meter drives, leaving active elements + awp_draw_reel(machine(),"reel5", *m_reel4); + break; + + case FIVE_REEL_8TO5: + m_reel4->update((((data & 0x01) + ((data & 0x08) >> 2) + ((data & 0x20) >> 3) + ((data & 0x80) >> 4)) & 0x0f)) ; + data = 0x00; //Strip all reel data from meter drives, nothing is connected + awp_draw_reel(machine(),"reel5", *m_reel4); + break; + + case FIVE_REEL_3TO6: + m_reel4->update(((data >> 2) & 0x0f)); + data = 0x00; //Strip all reel data from meter drives + awp_draw_reel(machine(),"reel5", *m_reel4); + break; + + case SIX_REEL_1TO8: + m_reel4->update( data & 0x0f); + m_reel5->update((data >> 4) & 0x0f); + data = 0x00; //Strip all reel data from meter drives + awp_draw_reel(machine(),"reel5", *m_reel4); + awp_draw_reel(machine(),"reel6", *m_reel5); + break; + + case SIX_REEL_5TO8: + m_reel4->update(((data >> 4) & 0x0f)); + data = 0x00; //Strip all reel data from meter drives + awp_draw_reel(machine(),"reel5", *m_reel4); + break; + + case SEVEN_REEL: + m_reel0->update((((data & 0x01) + ((data & 0x08) >> 2) + ((data & 0x20) >> 3) + ((data & 0x80) >> 4)) & 0x0f)) ; + data = 0x00; //Strip all reel data from meter drives + awp_draw_reel(machine(),"reel1", *m_reel0); + break; + + case FLUTTERBOX: //The backbox fan assembly fits in a reel unit sized box, wired to the remote meter pin, so we can handle it here + output().set_value("flutterbox", data & 0x80); + data &= ~0x80; //Strip flutterbox data from meter drives + break; + } + + m_meters->update(7, (data & 0x80)); + for (meter = 0; meter < 4; meter ++) + { + m_meters->update(meter, (data & (1 << meter))); + } + if (m_reel_mux == STANDARD_REEL) + { + for (meter = 4; meter < 7; meter ++) + { + m_meters->update(meter, (data & (1 << meter))); + } + } +} + +/* called if board is reset */ +MACHINE_RESET_MEMBER(mpu4_state,mpu4) +{ + m_vfd->reset(); + + m_lamp_strobe = 0; + m_lamp_strobe2 = 0; + m_led_strobe = 0; + m_mmtr_data = 0; + m_remote_meter = 0; + + m_IC23GC = 0; + m_IC23GB = 0; + m_IC23GA = 0; + m_IC23G1 = 1; + m_IC23G2A = 0; + m_IC23G2B = 0; + + m_prot_col = 0; + m_chr_counter = 0; + m_chr_value = 0; + + + { + if (m_numbanks) + m_bank1->set_entry(m_numbanks); + + m_maincpu->reset(); + } +} + + +/* 6809 IRQ handler */ +WRITE_LINE_MEMBER(mpu4_state::cpu0_irq) +{ + /* The PIA and PTM IRQ lines are all connected to a common PCB track, leading directly to the 6809 IRQ line. */ + int combined_state = m_pia3->irq_a_state() | m_pia3->irq_b_state() | + m_pia4->irq_a_state() | m_pia4->irq_b_state() | + m_pia5->irq_a_state() | m_pia5->irq_b_state() | + m_pia6->irq_a_state() | m_pia6->irq_b_state() | + m_pia7->irq_a_state() | m_pia7->irq_b_state() | + m_pia8->irq_a_state() | m_pia8->irq_b_state() | + m_6840ptm->irq_state(); + + if (!m_link7a_connected) //7B = IRQ, 7A = FIRQ, both = NMI + { + m_maincpu->set_input_line(M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + LOG(("6809 int%d \n", combined_state)); + } + else + { + m_maincpu->set_input_line(M6809_FIRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + LOG(("6809 fint%d \n", combined_state)); + } +} + +/* Bankswitching +The MOD 4 ROM cards are set up to handle 8 separate ROM pages, arranged as 2 sets of 4. +The bankswitch selects which of the 4 pages in the set is active, while the bankset +switches between the sets. +It appears that the cards were originally intended to be used in a 'half' page setup, +where the two halves of the ROM space could be mixed and matched as appropriate. +However, there is no evidence to suggest this was ever implemented. +The controls for it exist however, in the form of the Soundboard PIA CB2 pin, which is +used in some cabinets instead of the main control. +*/ +WRITE8_MEMBER(mpu4_state::bankswitch_w) +{ +// printf("bankswitch_w %02x\n", data); + + // m_pageset is never even set?? + m_pageval = (data & 0x03); + m_bank1->set_entry((m_pageval + (m_pageset ? 4 : 0)) & m_numbanks); +} + + +READ8_MEMBER(mpu4_state::bankswitch_r) +{ + return m_bank1->entry(); +} + + +WRITE8_MEMBER(mpu4_state::bankset_w) +{ +// printf("bankset_w %02x\n", data); + + // m_pageset is never even set?? + + m_pageval = (data - 2);//writes 2 and 3, to represent 0 and 1 - a hangover from the half page design? + m_bank1->set_entry((m_pageval + (m_pageset ? 4 : 0)) & m_numbanks); +} + + +/* IC2 6840 PTM handler */ +WRITE_LINE_MEMBER(mpu4_state::ic2_o1_callback) +{ + m_6840ptm->set_c2(state); /* copy output value to IC2 c2 + this output is the clock for timer2 */ + /* 1200Hz System interrupt timer */ +} + + +WRITE_LINE_MEMBER(mpu4_state::ic2_o2_callback) +{ + m_pia3->ca1_w(state); /* copy output value to IC3 ca1 */ + /* the output from timer2 is the input clock for timer3 */ + /* miscellaneous interrupts generated here */ + m_6840ptm->set_c3(state); +} + + +WRITE_LINE_MEMBER(mpu4_state::ic2_o3_callback) +{ + /* the output from timer3 is used as a square wave for the alarm output + and as an external clock source for timer 1! */ + /* also runs lamp fade */ + m_6840ptm->set_c1(state); +} + +/* 6821 PIA handlers */ +/* IC3, lamp data lines + alpha numeric display */ +WRITE8_MEMBER(mpu4_state::pia_ic3_porta_w) +{ + int i; + LOG_IC3(("%s: IC3 PIA Port A Set to %2x (lamp strobes 1 - 9)\n", machine().describe_context(),data)); + + if(m_ic23_active) + { + if (m_lamp_strobe != m_input_strobe) + { + // Because of the nature of the lamping circuit, there is an element of persistance + // As a consequence, the lamp column data can change before the input strobe without + // causing the relevant lamps to black out. + + for (i = 0; i < 8; i++) + { + output().set_lamp_value((8*m_input_strobe)+i, ((data & (1 << i)) !=0)); + } + m_lamp_strobe = m_input_strobe; + } + } +} + +WRITE8_MEMBER(mpu4_state::pia_ic3_portb_w) +{ + int i; + LOG_IC3(("%s: IC3 PIA Port B Set to %2x (lamp strobes 10 - 17)\n", machine().describe_context(),data)); + + if(m_ic23_active) + { + if (m_lamp_strobe2 != m_input_strobe) + { + for (i = 0; i < 8; i++) + { + output().set_lamp_value((8*m_input_strobe)+i+64, ((data & (1 << i)) !=0)); + } + m_lamp_strobe2 = m_input_strobe; + } + + if (m_led_lamp) + { + /* Some games (like Connect 4) use 'programmable' LED displays, built from light display lines in section 2. */ + /* These are mostly low-tech machines, where such wiring proved cheaper than an extender card */ + /* TODO: replace this with 'segment' lamp masks, to make it more generic */ + uint8_t pled_segs[2] = {0,0}; + + static const int lamps1[8] = { 106, 107, 108, 109, 104, 105, 110, 133 }; + static const int lamps2[8] = { 114, 115, 116, 117, 112, 113, 118, 119 }; + + for (i = 0; i < 8; i++) + { + if (output().get_lamp_value(lamps1[i])) pled_segs[0] |= (1 << i); + if (output().get_lamp_value(lamps2[i])) pled_segs[1] |= (1 << i); + } + + output().set_digit_value(8,pled_segs[0]); + output().set_digit_value(9,pled_segs[1]); + } + } +} + +WRITE_LINE_MEMBER(mpu4_state::pia_ic3_ca2_w) +{ + LOG_IC3(("%s: IC3 PIA Write CA2 (alpha data), %02X\n", machine().describe_context(),state)); + m_vfd->data(state); +} + + +WRITE_LINE_MEMBER(mpu4_state::pia_ic3_cb2_w) +{ + LOG_IC3(("%s: IC3 PIA Write CB (alpha reset), %02X\n",machine().describe_context(),state)); +// DM Data pin A + m_vfd->por(state); +} + + +/* +IC23 emulation + +IC23 is a 74LS138 1-of-8 Decoder + +It is used as a multiplexer for the LEDs, lamp selects and inputs.*/ + +void mpu4_state::ic23_update() +{ + if (!m_IC23G2A) + { + if (!m_IC23G2B) + { + if (m_IC23G1) + { + if ( m_IC23GA ) m_input_strobe |= 0x01; + else m_input_strobe &= ~0x01; + + if ( m_IC23GB ) m_input_strobe |= 0x02; + else m_input_strobe &= ~0x02; + + if ( m_IC23GC ) m_input_strobe |= 0x04; + else m_input_strobe &= ~0x04; + } + } + } + else + if ((m_IC23G2A)||(m_IC23G2B)) + { + m_input_strobe = 0x00; + } +} + + +/* +IC24 emulation + +IC24 is a 74LS122 pulse generator + +CLEAR and B2 are tied high and A1 and A2 tied low, meaning any pulse +on B1 will give a low pulse on the output pin. +*/ +void mpu4_state::ic24_output(int data) +{ + m_IC23G2A = data; + ic23_update(); +} + + +void mpu4_state::ic24_setup() +{ + if (m_IC23GA) + { + double duration = TIME_OF_74LS123((220*1000),(0.1*0.000001)); + { + m_ic23_active=1; + ic24_output(0); + m_ic24_timer->adjust(attotime::from_double(duration)); + } + } +} + + +void mpu4_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + switch(id) + { + case TIMER_IC24: + m_ic23_active=0; + ic24_output(1); + break; + } +} + + +/* IC4, 7 seg leds, 50Hz timer reel sensors, current sensors */ +WRITE8_MEMBER(mpu4_state::pia_ic4_porta_w) +{ + int i; + if(m_ic23_active) + { + if (((m_lamp_extender == NO_EXTENDER)||(m_lamp_extender == SMALL_CARD)||(m_lamp_extender == LARGE_CARD_C))&& (m_led_extender == NO_EXTENDER)) + { + if(m_led_strobe != m_input_strobe) + { + for(i=0; i<8; i++) + { + output().set_indexed_value("mpu4led",((7 - m_input_strobe) * 8) +i,(data & (1 << i)) !=0); + } + output().set_digit_value(7 - m_input_strobe,data); + } + m_led_strobe = m_input_strobe; + } + } +} + +WRITE8_MEMBER(mpu4_state::pia_ic4_portb_w) +{ + if (m_reel_mux) + { + /* A write here connects one reel (and only one) + to the optic test circuit. This allows 8 reels + to be supported instead of 4. */ + if (m_reel_mux == SEVEN_REEL) + { + m_active_reel= reel_mux_table7[(data >> 4) & 0x07]; + } + else + m_active_reel= reel_mux_table[(data >> 4) & 0x07]; + } +} + +READ8_MEMBER(mpu4_state::pia_ic4_portb_r) +{ + /// TODO: this shouldn't be clocked from a read callback + if ( m_serial_data ) + { + m_ic4_input_b |= 0x80; + m_pia4->cb1_w(1); + } + else + { + m_ic4_input_b &= ~0x80; + m_pia4->cb1_w(0); + } + + if (!m_reel_mux) + { + if ( m_optic_pattern & 0x01 ) m_ic4_input_b |= 0x40; /* reel A tab */ + else m_ic4_input_b &= ~0x40; + + if ( m_optic_pattern & 0x02 ) m_ic4_input_b |= 0x20; /* reel B tab */ + else m_ic4_input_b &= ~0x20; + + if ( m_optic_pattern & 0x04 ) m_ic4_input_b |= 0x10; /* reel C tab */ + else m_ic4_input_b &= ~0x10; + + if ( m_optic_pattern & 0x08 ) m_ic4_input_b |= 0x08; /* reel D tab */ + else m_ic4_input_b &= ~0x08; + + } + else + { + if (m_optic_pattern & (1<<m_active_reel)) + { + m_ic4_input_b |= 0x08; + } + else + { + m_ic4_input_b &= ~0x08; + } + } + if ( m_signal_50hz ) m_ic4_input_b |= 0x04; /* 50 Hz */ + else m_ic4_input_b &= ~0x04; + + if (m_ic4_input_b & 0x02) + { + m_ic4_input_b &= ~0x02; + } + else + { + m_ic4_input_b |= 0x02; //Pulse the overcurrent line with every read to show the CPU each lamp has lit + } + #ifdef UNUSED_FUNCTION + if ( lamp_undercurrent ) m_ic4_input_b |= 0x01; + #endif + + LOG_IC3(("%s: IC4 PIA Read of Port B %x\n",machine().describe_context(),m_ic4_input_b)); + return m_ic4_input_b; +} + + +WRITE_LINE_MEMBER(mpu4_state::pia_ic4_ca2_w) +{ + LOG_IC3(("%s: IC4 PIA Write CA (input MUX strobe /LED B), %02X\n", machine().describe_context(),state)); + + m_IC23GB = state; + ic23_update(); +} + +WRITE_LINE_MEMBER(mpu4_state::pia_ic4_cb2_w) +{ + LOG_IC3(("%s: IC4 PIA Write CA (input MUX strobe /LED B), %02X\n", machine().describe_context(),state)); + m_reel_flag=state; +} + +/* IC5, AUX ports, coin lockouts and AY sound chip select (MODs below 4 only) */ +READ8_MEMBER(mpu4_state::pia_ic5_porta_r) +{ + if (m_lamp_extender == LARGE_CARD_A) + { + if (m_lamp_sense && m_ic23_active) + { + m_aux1_input |= 0x40; + } + else + { + m_aux1_input &= ~0x40; //Pulse the overcurrent line with every read to show the CPU each lamp has lit + } + } + if (m_hopper == HOPPER_NONDUART_A) + { +/* if (hopper1_active) + { + m_aux1_input |= 0x04; + } + else + { + m_aux1_input &= ~0x04; + }*/ + } + LOG(("%s: IC5 PIA Read of Port A (AUX1)\n",machine().describe_context())); + + uint8_t tempinput = m_aux1_port->read()|m_aux1_input; + if (m_aux1_invert) + { + return ~tempinput; + } + else + { + return tempinput; + } +} + +WRITE8_MEMBER(mpu4_state::pia_ic5_porta_w) +{ + int i; + if (m_hopper == HOPPER_NONDUART_A) + { + //opto line + //hopper1_drive_sensor(data&0x10); + } + switch (m_lamp_extender) + { + case NO_EXTENDER: + if (m_led_extender == CARD_B) + { + led_write_latch(data & 0x1f, m_pia4->a_output(),m_input_strobe); + } + else if ((m_led_extender != CARD_A)&&(m_led_extender != NO_EXTENDER)) + { + for(i=0; i<8; i++) + { + output().set_indexed_value("mpu4led",((m_input_strobe + 8) * 8) +i,(data & (1 << i)) !=0); + } + output().set_digit_value((m_input_strobe+8),data); + } + break; + + case SMALL_CARD: + if(m_ic23_active) + { + lamp_extend_small(data); + } + break; + + case LARGE_CARD_A: + lamp_extend_large(data,m_input_strobe,m_ic23_active); + break; + + case LARGE_CARD_B: + lamp_extend_large(data,m_input_strobe,m_ic23_active); + if ((m_ic23_active) && m_card_live) + { + for(i=0; i<8; i++) + { + output().set_indexed_value("mpu4led",(((8*(m_last_b7 >>7))+ m_input_strobe) * 8) +i,(~data & (1 << i)) !=0); + } + output().set_digit_value(((8*(m_last_b7 >>7))+m_input_strobe),~data); + } + break; + + case LARGE_CARD_C: + lamp_extend_large(data,m_input_strobe,m_ic23_active); + break; + } + if (m_reel_mux == SIX_REEL_5TO8) + { + m_reel4->update( data &0x0F); + m_reel5->update((data >> 4)&0x0F); + awp_draw_reel(machine(),"reel5", *m_reel4); + awp_draw_reel(machine(),"reel6", *m_reel5); + } + else + if (m_reel_mux == SEVEN_REEL) + { + m_reel1->update( data &0x0F); + m_reel2->update((data >> 4)&0x0F); + awp_draw_reel(machine(),"reel2", *m_reel1); + awp_draw_reel(machine(),"reel3", *m_reel2); + } + + if (core_stricmp(machine().system().name, "m4gambal") == 0) + { + /* The 'Gamball' device is a unique piece of mechanical equipment, designed to + provide a truly fair hi-lo gamble for an AWP. Functionally, it consists of + a ping-pong ball or similar enclosed in the machine's backbox, on a platform with 12 + holes. When the low 4 bytes of AUX1 are triggered, this fires the ball out from the + hole it's currently in, to land in another. Landing in the same hole causes the machine to + refire the ball. The ball detection is done by the high 4 bytes of AUX1. + Here we call the MAME RNG, once to pick a row, once to pick from the four pockets within it. We + then trigger the switches corresponding to the correct number. This appears to be the best way + of making the game fair, short of simulating the physics of a bouncing ball ;)*/ + if (data & 0x0f) + { + switch ((machine().rand()>>5) % 0x3) + { + case 0x00: //Top row + switch (machine().rand() & 0x3) + { + case 0x00: //7 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0xa0; + break; + + case 0x01://4 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0xb0; + break; + + case 0x02://9 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0xc0; + break; + + case 0x03://8 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0xd0; + break; + } + + case 0x01: //Middle row - note switches don't match pattern + switch (machine().rand() & 0x3) + { + case 0x00://12 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0x40; + break; + + case 0x01://1 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0x50; + break; + + case 0x02://11 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0x80; + break; + + case 0x03://2 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0x90; + break; + } + + case 0x02: //Bottom row + switch (machine().rand() & 0x3) + { + case 0x00://5 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0x00; + break; + + case 0x01://10 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0x10; + break; + + case 0x02://3 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0x20; + break; + + case 0x03://6 + m_aux1_input = (m_aux1_input & 0x0f); + m_aux1_input|= 0x30; + break; + } + } + } + } +} + +WRITE8_MEMBER(mpu4_state::pia_ic5_portb_w) +{ + if (m_hopper == HOPPER_NONDUART_B) + { + //hopper1_drive_motor(data &0x01) motor + //hopper1_drive_sensor(data &0x08) opto + } + if (m_led_extender == CARD_A) + { + led_write_latch(data & 0x07, m_pia4->a_output(),m_input_strobe); + } + +} +READ8_MEMBER(mpu4_state::pia_ic5_portb_r) +{ + if (m_hopper == HOPPER_NONDUART_B) + {/* + if (hopper1_active) + { + m_aux2_input |= 0x08; + } + else + { + m_aux2_input &= ~0x08; + }*/ + } + + LOG(("%s: IC5 PIA Read of Port B (coin input AUX2)\n",machine().describe_context())); + machine().bookkeeping().coin_lockout_w(0, (m_pia5->b_output() & 0x01) ); + machine().bookkeeping().coin_lockout_w(1, (m_pia5->b_output() & 0x02) ); + machine().bookkeeping().coin_lockout_w(2, (m_pia5->b_output() & 0x04) ); + machine().bookkeeping().coin_lockout_w(3, (m_pia5->b_output() & 0x08) ); + + uint8_t tempinput = m_aux2_port->read()|m_aux2_input; + if (m_aux2_invert) + { + return ~tempinput; + } + else + { + return tempinput; + } +} + + +WRITE_LINE_MEMBER(mpu4_state::pia_ic5_ca2_w) +{ + LOG(("%s: IC5 PIA Write CA2 (Serial Tx) %2x\n",machine().describe_context(),state)); + m_serial_data = state; +} + + +/* --------------------------------------- + AY Chip sound function selection - + --------------------------------------- +The databus of the AY sound chip is connected to IC6 Port A. +Data is read from/written to the AY chip through this port. + +If this sounds familiar, Amstrad did something very similar with their home computers. + +The PSG function, defined by the BC1,BC2 and BDIR signals, is controlled by CA2 and CB2 of IC6. + +PSG function selection: +----------------------- +BDIR = IC6 CB2 and BC1 = IC6 CA2 + +Pin | PSG Function +BDIR BC1 | +0 0 | Inactive +0 1 | Read from selected PSG register. When function is set, the PSG will make the register data available to Port A. +1 0 | Write to selected PSG register. When set, the PSG will take the data at Port A and write it into the selected PSG register. +1 1 | Select PSG register. When set, the PSG will take the data at Port A and select a register. +*/ + +/* PSG function selected */ +void mpu4_state::update_ay(device_t *device) +{ + ay8910_device *ay8910 = machine().device<ay8910_device>("ay8913"); + if (!ay8910) return; + + pia6821_device *pia = downcast<pia6821_device *>(device); + if (!pia->cb2_output()) + { + switch (m_ay8913_address) + { + case 0x00: + /* Inactive */ + break; + + case 0x01: + /* CA2 = 1 CB2 = 0? : Read from selected PSG register and make the register data available to Port A */ + LOG(("AY8913 address = %d \n",m_pia6->a_output()&0x0f)); + break; + + case 0x02: + /* CA2 = 0 CB2 = 1? : Write to selected PSG register and write data to Port A */ + ay8910->data_w(generic_space(), 0, m_pia6->a_output()); + LOG(("AY Chip Write \n")); + break; + + case 0x03: + /* CA2 = 1 CB2 = 1? : The register will now be selected and the user can read from or write to it. + The register will remain selected until another is chosen.*/ + ay8910->address_w(generic_space(), 0, m_pia6->a_output()); + LOG(("AY Chip Select \n")); + break; + + default: + LOG(("AY Chip error \n")); + break; + } + } +} + + +WRITE_LINE_MEMBER(mpu4_state::pia_ic5_cb2_w) +{ + update_ay(m_pia5); +} + + +/* IC6, Reel A and B and AY registers (MODs below 4 only) */ +WRITE8_MEMBER(mpu4_state::pia_ic6_portb_w) +{ + LOG(("%s: IC6 PIA Port B Set to %2x (Reel A and B)\n", machine().describe_context(),data)); + + if (m_reel_mux == SEVEN_REEL) + { + m_reel3->update( data &0x0F); + m_reel4->update((data >> 4)&0x0F); + awp_draw_reel(machine(),"reel4", *m_reel3); + awp_draw_reel(machine(),"reel5", *m_reel4); + } + else if (m_reels) + { + m_reel0->update( data &0x0F); + m_reel1->update((data >> 4)&0x0F); + awp_draw_reel(machine(),"reel1", *m_reel0); + awp_draw_reel(machine(),"reel2", *m_reel1); + } +} + + +WRITE8_MEMBER(mpu4_state::pia_ic6_porta_w) +{ + LOG(("%s: IC6 PIA Write A %2x\n", machine().describe_context(),data)); + if (m_mod_number <4) + { + m_ay_data = data; + update_ay(m_pia6); + } +} + + +WRITE_LINE_MEMBER(mpu4_state::pia_ic6_ca2_w) +{ + LOG(("%s: IC6 PIA write CA2 %2x (AY8913 BC1)\n", machine().describe_context(),state)); + if (m_mod_number <4) + { + if ( state ) m_ay8913_address |= 0x01; + else m_ay8913_address &= ~0x01; + update_ay(m_pia6); + } +} + + +WRITE_LINE_MEMBER(mpu4_state::pia_ic6_cb2_w) +{ + LOG(("%s: IC6 PIA write CB2 %2x (AY8913 BCDIR)\n", machine().describe_context(),state)); + if (m_mod_number <4) + { + if ( state ) m_ay8913_address |= 0x02; + else m_ay8913_address &= ~0x02; + update_ay(m_pia6); + } +} + + +/* IC7 Reel C and D, mechanical meters/Reel E and F, input strobe bit A */ +WRITE8_MEMBER(mpu4_state::pia_ic7_porta_w) +{ + LOG(("%s: IC7 PIA Port A Set to %2x (Reel C and D)\n", machine().describe_context(),data)); + if (m_reel_mux == SEVEN_REEL) + { + m_reel5->update( data &0x0F); + m_reel6->update((data >> 4)&0x0F); + awp_draw_reel(machine(),"reel6", *m_reel5); + awp_draw_reel(machine(),"reel7", *m_reel7); + } + else if (m_reels) + { + m_reel2->update( data &0x0F); + m_reel3->update((data >> 4)&0x0F); + awp_draw_reel(machine(),"reel3", *m_reel2); + awp_draw_reel(machine(),"reel4", *m_reel3); + } +} + +WRITE8_MEMBER(mpu4_state::pia_ic7_portb_w) +{ + if (m_hopper == HOPPER_DUART_A) + { + //duart write data + } + else if (m_hopper == HOPPER_NONDUART_A) + { + //hoppr1_drive_motor(data & 0x10); + } + + m_mmtr_data = data; +} + +READ8_MEMBER(mpu4_state::pia_ic7_portb_r) +{ +/* The meters are connected to a voltage drop sensor, where current +flowing through them also passes through pin B7, meaning that when +any meter is activated, pin B7 goes high. +As for why they connected this to an output port rather than using +CB1, no idea, although it proved of benefit when the reel multiplexer was designed +as it allows a separate meter to be used when the rest of the port is blocked. +This appears to have confounded the schematic drawer, who has assumed that +all eight meters are driven from this port, giving the 8 line driver chip +9 connections in total. */ + + //This may be overkill, but the meter sensing is VERY picky + + int combined_meter = m_meters->GetActivity(0) | m_meters->GetActivity(1) | + m_meters->GetActivity(2) | m_meters->GetActivity(3) | + m_meters->GetActivity(4) | m_meters->GetActivity(5) | + m_meters->GetActivity(6) | m_meters->GetActivity(7); + + if(combined_meter) + { + return 0x80; + } + else + { + return 0x00; + } +} + +WRITE_LINE_MEMBER(mpu4_state::pia_ic7_ca2_w) +{ + LOG(("%s: IC7 PIA write CA2 %2x (input strobe bit 0 / LED A)\n", machine().describe_context(),state)); + + m_IC23GA = state; + ic24_setup(); + ic23_update(); +} + +WRITE_LINE_MEMBER(mpu4_state::pia_ic7_cb2_w) +{ + m_remote_meter = state?0x80:0x00; +} + + +/* IC8, Inputs, TRIACS, alpha clock */ +READ8_MEMBER(mpu4_state::pia_ic8_porta_r) +{ + LOG_IC8(("%s: IC8 PIA Read of Port A (MUX input data)\n", machine().describe_context())); +/* The orange inputs are polled twice as often as the black ones, for reasons of efficiency. + This is achieved via connecting every input line to an AND gate, thus allowing two strobes + to represent each orange input bank (strobes are active low). */ + m_pia5->cb1_w(m_aux2_port->read() & 0x80); + if ( (m_input_strobe == 2) && (m_door_invert ==1) ) + { + return ((m_port_mux[m_input_strobe])->read() ^ 0x01); + } + else + { + return (m_port_mux[m_input_strobe])->read(); + } +} + + +WRITE8_MEMBER(mpu4_state::pia_ic8_portb_w) +{ + if (m_hopper == HOPPER_DUART_B) + { +// duart.drive_sensor(data & 0x04, data & 0x01, 0, 0); + } + else if (m_hopper == HOPPER_DUART_C) + { +// duart.drive_sensor(data & 0x04, data & 0x01, data & 0x04, data & 0x02); + } + int i; + LOG_IC8(("%s: IC8 PIA Port B Set to %2x (OUTPUT PORT, TRIACS)\n", machine().describe_context(),data)); + for (i = 0; i < 8; i++) + { + output().set_indexed_value("triac", i, data & (1 << i)); + } +} + +WRITE_LINE_MEMBER(mpu4_state::pia_ic8_ca2_w) +{ + LOG_IC8(("%s: IC8 PIA write CA2 (input_strobe bit 2 / LED C) %02X\n", machine().describe_context(), state & 0xFF)); + + m_IC23GC = state; + ic23_update(); +} + + +WRITE_LINE_MEMBER(mpu4_state::pia_ic8_cb2_w) +{ + LOG_IC8(("%s: IC8 PIA write CB2 (alpha clock) %02X\n", machine().describe_context(), state & 0xFF)); + + // DM Data pin B + + m_vfd->sclk(!state); +} + +// universal sampled sound program card PCB 683077 +// Sampled sound card, using a PIA and PTM for timing and data handling +WRITE8_MEMBER(mpu4_state::pia_gb_porta_w) +{ + LOG_SS(("%s: GAMEBOARD: PIA Port A Set to %2x\n", machine().describe_context(),data)); + m_msm6376->write(space, 0, data); +} + +WRITE8_MEMBER(mpu4_state::pia_gb_portb_w) +{ + int changed = m_expansion_latch^data; + + LOG_SS(("%s: GAMEBOARD: PIA Port B Set to %2x\n", machine().describe_context(),data)); + + if ( changed & 0x20) + { // digital volume clock line changed + if ( !(data & 0x20) ) + { // changed from high to low, + if ( !(data & 0x10) )//down + { + if ( m_global_volume < 32 ) m_global_volume++; //steps unknown + } + else + {//up + if ( m_global_volume > 0 ) m_global_volume--; + } + + { + float percent = (32-m_global_volume)/32.0; + m_msm6376->set_output_gain(0, percent); + m_msm6376->set_output_gain(1, percent); + } + } + } + m_msm6376->ch2_w(data&0x02); + m_msm6376->st_w(data&0x01); +} +READ8_MEMBER(mpu4_state::pia_gb_portb_r) +{ + LOG_SS(("%s: GAMEBOARD: PIA Read of Port B\n",machine().describe_context())); + int data=0; + // b7 NAR - we can load another address into Channel 1 + // b6, 1 = OKI ready, 0 = OKI busy + // b5, vol clock + // b4, 1 = Vol down, 0 = Vol up + // + + if ( m_msm6376->nar_r() ) data |= 0x80; + else data &= ~0x80; + + if ( m_msm6376->busy_r() ) data |= 0x40; + else data &= ~0x40; + + return ( data | m_expansion_latch ); +} + +WRITE_LINE_MEMBER(mpu4_state::pia_gb_ca2_w) +{ + LOG_SS(("%s: GAMEBOARD: OKI RESET data = %02X\n", machine().describe_context(), state)); + +// reset line +} + +WRITE_LINE_MEMBER(mpu4_state::pia_gb_cb2_w) +{ + //Some BWB games use this to drive the bankswitching + if (m_bwb_bank) + { + //printf("pia_gb_cb2_w %d\n", state); + m_pageval = state; + m_bank1->set_entry((m_pageval + (m_pageset ? 4 : 0)) & m_numbanks); + } +} + +//Sampled sound timer +/* +The MSM6376 sound chip is configured in a slightly strange way, to enable dynamic +sample rate changes (8Khz, 10.6 Khz, 16 KHz) by varying the clock. +According to the BwB programmer's guide, the formula is: +MSM6376 clock frequency:- +freq = (1720000/((t3L+1)(t3H+1)))*[(t3H(T3L+1)+1)/(2(t1+1))] +where [] means rounded up integer, +t3L is the LSB of Clock 3, +t3H is the MSB of Clock 3, +and t1 is the initial value in clock 1. +*/ + +//O3 -> G1 O1 -> c2 o2 -> c1 + +/* This is a bit of a cheat - since we don't clock into the OKI chip directly, we need to +calculate the oscillation frequency in advance. We're running the timer for interrupt +purposes, but the frequency calculation is done by plucking the values out as they are written.*/ +WRITE8_MEMBER(mpu4_state::ic3ss_w) +{ + device_t *ic3ss = machine().device("ptm_ic3ss"); + downcast<ptm6840_device *>(ic3ss)->write(offset,data); + + if (offset == 3) + { + m_t1 = data; + } + if (offset == 6) + { + m_t3h = data; + } + if (offset == 7) + { + m_t3l = data; + } + + float num = (1720000/((m_t3l + 1)*(m_t3h + 1))); + float denom1 = ((m_t3h *(m_t3l + 1)+ 1)/(2*(m_t1 + 1))); + + int denom2 = denom1 + 0.5f;//need to round up, this gives same precision as chip + int freq=num*denom2; + + if (freq) + { + m_msm6376->set_unscaled_clock(freq); + } +} + +/* input ports for MPU4 board */ +INPUT_PORTS_START( mpu4 ) + PORT_START("ORANGE1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("00")// 20p level + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("01")// 100p level + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("02")// Token 1 level + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("03")// Token 2 level + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("04") + PORT_CONFNAME( 0xE0, 0x00, "Stake Key" ) + PORT_CONFSETTING( 0x00, "Not fitted / 5p" ) + PORT_CONFSETTING( 0x20, "10p" ) + PORT_CONFSETTING( 0x40, "20p" ) + PORT_CONFSETTING( 0x60, "25p" ) + PORT_CONFSETTING( 0x80, "30p" ) + PORT_CONFSETTING( 0xA0, "40p" ) + PORT_CONFSETTING( 0xC0, "50p" ) + PORT_CONFSETTING( 0xE0, "1 GBP" ) + + PORT_START("ORANGE2") + PORT_CONFNAME( 0x0F, 0x00, "Jackpot / Prize Key" ) + PORT_CONFSETTING( 0x00, "Not fitted" ) + PORT_CONFSETTING( 0x01, "3 GBP" ) + PORT_CONFSETTING( 0x02, "4 GBP" ) + PORT_CONFSETTING( 0x08, "5 GBP" ) + PORT_CONFSETTING( 0x03, "6 GBP" ) + PORT_CONFSETTING( 0x04, "6 GBP Token" ) + PORT_CONFSETTING( 0x05, "8 GBP" ) + PORT_CONFSETTING( 0x06, "8 GBP Token" ) + PORT_CONFSETTING( 0x07, "10 GBP" ) + PORT_CONFSETTING( 0x09, "15 GBP" ) + PORT_CONFSETTING( 0x0A, "25 GBP" ) + PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) + PORT_CONFSETTING( 0x0C, "35 GBP" ) + PORT_CONFSETTING( 0x0D, "70 GBP" ) + PORT_CONFSETTING( 0x0E, "Reserved" ) + PORT_CONFSETTING( 0x0F, "Reserved" ) + + PORT_CONFNAME( 0xF0, 0x00, "Percentage Key" ) + PORT_CONFSETTING( 0x00, "Not fitted / 68% (Invalid for UK Games)" ) + PORT_CONFSETTING( 0x10, "70" ) + PORT_CONFSETTING( 0x20, "72" ) + PORT_CONFSETTING( 0x30, "74" ) + PORT_CONFSETTING( 0x40, "76" ) + PORT_CONFSETTING( 0x50, "78" ) + PORT_CONFSETTING( 0x60, "80" ) + PORT_CONFSETTING( 0x70, "82" ) + PORT_CONFSETTING( 0x80, "84" ) + PORT_CONFSETTING( 0x90, "86" ) + PORT_CONFSETTING( 0xA0, "88" ) + PORT_CONFSETTING( 0xB0, "90" ) + PORT_CONFSETTING( 0xC0, "92" ) + PORT_CONFSETTING( 0xD0, "94" ) + PORT_CONFSETTING( 0xE0, "96" ) + PORT_CONFSETTING( 0xF0, "98" ) + + PORT_START("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Hi") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Lo") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("18") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("19") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("20") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox (Back) Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE + + PORT_START("BLACK2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("24") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("25") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Cancel") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 1") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Hold 2") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Hold 3") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("Hold 4") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_START1) + + PORT_START("DIL1") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:01") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:02") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:03") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:04") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0xF0, 0x00, "Target Percentage (if key not fitted)" )PORT_DIPLOCATION("DIL1:05,06,07,08") + PORT_DIPSETTING( 0x00, "Unset (Program Optimum)" ) + PORT_DIPSETTING( 0x10, "70" ) + PORT_DIPSETTING( 0x20, "72" ) + PORT_DIPSETTING( 0x30, "74" ) + PORT_DIPSETTING( 0x40, "76" ) + PORT_DIPSETTING( 0x50, "78" ) + PORT_DIPSETTING( 0x60, "80" ) + PORT_DIPSETTING( 0x70, "82" ) + PORT_DIPSETTING( 0x80, "84" ) + PORT_DIPSETTING( 0x90, "86" ) + PORT_DIPSETTING( 0xA0, "88" ) + PORT_DIPSETTING( 0xB0, "90" ) + PORT_DIPSETTING( 0xC0, "92" ) + PORT_DIPSETTING( 0xD0, "94" ) + PORT_DIPSETTING( 0xE0, "96" ) + PORT_DIPSETTING( 0xF0, "98" ) + + PORT_START("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Token Lockout when full" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused )) PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, "Scottish Coin Handling" ) PORT_DIPLOCATION("DIL2:03")//20p payout + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Out of Credit Display Inhibit" ) PORT_DIPLOCATION("DIL2:04") // many games need this on to boot + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, "OCD Audio Enable" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "Token Refill Level Inhibit" ) PORT_DIPLOCATION("DIL2:07") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("AUX1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("0") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("6") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7") + + PORT_START("AUX2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p")//PORT_IMPULSE(5) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")//PORT_IMPULSE(5) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")//PORT_IMPULSE(5) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")//PORT_IMPULSE(5) +INPUT_PORTS_END + + +INPUT_PORTS_START( mpu4_cw ) +//Inputs for CoinWorld games + PORT_INCLUDE( mpu4 ) + PORT_MODIFY("DIL1") + PORT_DIPNAME( 0x01, 0x00, "Profile Type" ) PORT_DIPLOCATION("DIL1:01") + PORT_DIPSETTING( 0x00, "Bingo Profile" ) + PORT_DIPSETTING( 0x01, "Arcade" ) + PORT_DIPNAME( 0x02, 0x00, "Accept 2 GBP Coin?" ) PORT_DIPLOCATION("DIL1:02") + PORT_DIPSETTING( 0x00, DEF_STR( No ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x0C, 0x00, "Jackpot" ) PORT_DIPLOCATION("DIL1:03,04") + PORT_DIPSETTING( 0x04, "15 GBP" ) + PORT_DIPSETTING( 0x00, "10 GBP" ) + PORT_DIPSETTING( 0x08, "5 GBP" ) + PORT_DIPNAME( 0x10, 0x00, "Hold Mode" ) PORT_DIPLOCATION("DIL1:05") + PORT_DIPSETTING( 0x00, "Show Hints" ) + PORT_DIPSETTING( 0x10, "Auto Hold" ) + PORT_DIPNAME( 0x20, 0x00, "Coin Mech Type" ) PORT_DIPLOCATION("DIL1:05") + PORT_DIPSETTING( 0x00, "6 Coin" ) + PORT_DIPSETTING( 0x20, "5 Coin" ) + PORT_DIPNAME( 0x40, 0x00, "Reel Motor Type" ) PORT_DIPLOCATION("DIL1:05") + PORT_DIPSETTING( 0x00, "Slim motor" ) + PORT_DIPSETTING( 0x40, "Fat motor" ) + PORT_DIPNAME( 0x80, 0x00, "Payout Tube" ) PORT_DIPLOCATION("DIL1:05") + PORT_DIPSETTING( 0x00, "20p" ) + PORT_DIPSETTING( 0x80, "10p" ) + + PORT_MODIFY("DIL2") + PORT_DIPNAME( 0x07, 0x00, "Stake Setting" ) + PORT_DIPSETTING( 0x00, "Not fitted / 5p" ) + PORT_DIPSETTING( 0x01, "10p" ) + PORT_DIPSETTING( 0x02, "20p" ) + PORT_DIPSETTING( 0x03, "25p" ) + PORT_DIPSETTING( 0x04, "30p" ) + PORT_BIT(0xE0, IP_ACTIVE_HIGH, IPT_UNUSED) + INPUT_PORTS_END + +INPUT_PORTS_START( mpu4jackpot8tkn ) + PORT_INCLUDE( mpu4 ) + + PORT_MODIFY("ORANGE2") + PORT_CONFNAME( 0x0F, 0x06, "Jackpot / Prize Key" ) + PORT_CONFSETTING( 0x00, "Not fitted" ) + PORT_CONFSETTING( 0x01, "3 GBP" ) + PORT_CONFSETTING( 0x02, "4 GBP" ) + PORT_CONFSETTING( 0x08, "5 GBP" ) + PORT_CONFSETTING( 0x03, "6 GBP" ) + PORT_CONFSETTING( 0x04, "6 GBP Token" ) + PORT_CONFSETTING( 0x05, "8 GBP" ) + PORT_CONFSETTING( 0x06, "8 GBP Token" ) + PORT_CONFSETTING( 0x07, "10 GBP" ) + PORT_CONFSETTING( 0x09, "15 GBP" ) + PORT_CONFSETTING( 0x0A, "25 GBP" ) + PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) + PORT_CONFSETTING( 0x0C, "35 GBP" ) + PORT_CONFSETTING( 0x0D, "70 GBP" ) + PORT_CONFSETTING( 0x0E, "Reserved" ) + PORT_CONFSETTING( 0x0F, "Reserved" ) +INPUT_PORTS_END + +INPUT_PORTS_START( mpu4jackpot8per ) + PORT_INCLUDE( mpu4 ) + + PORT_MODIFY("ORANGE2") + PORT_CONFNAME( 0x0F, 0x06, "Jackpot / Prize Key" ) + PORT_CONFSETTING( 0x00, "Not fitted" ) + PORT_CONFSETTING( 0x01, "3 GBP" ) + PORT_CONFSETTING( 0x02, "4 GBP" ) + PORT_CONFSETTING( 0x08, "5 GBP" ) + PORT_CONFSETTING( 0x03, "6 GBP" ) + PORT_CONFSETTING( 0x04, "6 GBP Token" ) + PORT_CONFSETTING( 0x05, "8 GBP" ) + PORT_CONFSETTING( 0x06, "8 GBP Token" ) + PORT_CONFSETTING( 0x07, "10 GBP" ) + PORT_CONFSETTING( 0x09, "15 GBP" ) + PORT_CONFSETTING( 0x0A, "25 GBP" ) + PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) + PORT_CONFSETTING( 0x0C, "35 GBP" ) + PORT_CONFSETTING( 0x0D, "70 GBP" ) + PORT_CONFSETTING( 0x0E, "Reserved" ) + PORT_CONFSETTING( 0x0F, "Reserved" ) + + PORT_CONFNAME( 0xF0, 0x10, "Percentage Key" ) + PORT_CONFSETTING( 0x00, "Not fitted / 68% (Invalid for UK Games)" ) + PORT_CONFSETTING( 0x10, "70" ) + PORT_CONFSETTING( 0x20, "72" ) + PORT_CONFSETTING( 0x30, "74" ) + PORT_CONFSETTING( 0x40, "76" ) + PORT_CONFSETTING( 0x50, "78" ) + PORT_CONFSETTING( 0x60, "80" ) + PORT_CONFSETTING( 0x70, "82" ) + PORT_CONFSETTING( 0x80, "84" ) + PORT_CONFSETTING( 0x90, "86" ) + PORT_CONFSETTING( 0xA0, "88" ) + PORT_CONFSETTING( 0xB0, "90" ) + PORT_CONFSETTING( 0xC0, "92" ) + PORT_CONFSETTING( 0xD0, "94" ) + PORT_CONFSETTING( 0xE0, "96" ) + PORT_CONFSETTING( 0xF0, "98" ) +INPUT_PORTS_END + + + + +INPUT_PORTS_START( grtecp ) + PORT_START("ORANGE1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("00")// 20p level + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("01")// 100p level + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("02")// Token 1 level + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("03")// Token 2 level + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("04") + PORT_CONFNAME( 0xE0, 0x00, "Stake Key" ) + PORT_CONFSETTING( 0x00, "Not fitted / 5p" ) + PORT_CONFSETTING( 0x20, "10p" ) + PORT_CONFSETTING( 0x40, "20p" ) + PORT_CONFSETTING( 0x60, "25p" ) + PORT_CONFSETTING( 0x80, "30p" ) + PORT_CONFSETTING( 0xA0, "40p" ) + PORT_CONFSETTING( 0xC0, "50p" ) + PORT_CONFSETTING( 0xE0, "1 GBP" ) + + PORT_START("ORANGE2") + PORT_CONFNAME( 0x0F, 0x00, "Jackpot / Prize Key" ) + PORT_CONFSETTING( 0x00, "Not fitted" ) + PORT_CONFSETTING( 0x01, "3 GBP" ) + PORT_CONFSETTING( 0x02, "4 GBP" ) + PORT_CONFSETTING( 0x08, "5 GBP" ) + PORT_CONFSETTING( 0x03, "6 GBP" ) + PORT_CONFSETTING( 0x04, "6 GBP Token" ) + PORT_CONFSETTING( 0x05, "8 GBP" ) + PORT_CONFSETTING( 0x06, "8 GBP Token" ) + PORT_CONFSETTING( 0x07, "10 GBP" ) + PORT_CONFSETTING( 0x09, "15 GBP" ) + PORT_CONFSETTING( 0x0A, "25 GBP" ) + PORT_CONFSETTING( 0x0B, "25 GBP (Licensed Betting Office Profile)" ) + PORT_CONFSETTING( 0x0C, "35 GBP" ) + PORT_CONFSETTING( 0x0D, "70 GBP" ) + PORT_CONFSETTING( 0x0E, "Reserved" ) + PORT_CONFSETTING( 0x0F, "Reserved" ) + + PORT_CONFNAME( 0xF0, 0x00, "Percentage Key" ) + PORT_CONFSETTING( 0x00, "As Option Switches" ) + PORT_CONFSETTING( 0x10, "70" ) + PORT_CONFSETTING( 0x20, "72" ) + PORT_CONFSETTING( 0x30, "74" ) + PORT_CONFSETTING( 0x40, "76" ) + PORT_CONFSETTING( 0x50, "78" ) + PORT_CONFSETTING( 0x60, "80" ) + PORT_CONFSETTING( 0x70, "82" ) + PORT_CONFSETTING( 0x80, "84" ) + PORT_CONFSETTING( 0x90, "86" ) + PORT_CONFSETTING( 0xA0, "88" ) + PORT_CONFSETTING( 0xB0, "90" ) + PORT_CONFSETTING( 0xC0, "92" ) + PORT_CONFSETTING( 0xD0, "94" ) + PORT_CONFSETTING( 0xE0, "96" ) + PORT_CONFSETTING( 0xF0, "98" ) + + PORT_START("BLACK1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Test Button") PORT_CODE(KEYCODE_W) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Cashbox (Back) Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE + + PORT_START("BLACK2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Collect/Cancel") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hold 1") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hold 2") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 3") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Hi") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Lo") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("Exchange") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_START1) + + PORT_START("DIL1") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:01") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:02") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:03") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DIL1:04") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0xF0, 0x00, "Target Percentage (if key not fitted)" )PORT_DIPLOCATION("DIL1:05,06,07,08") + PORT_DIPSETTING( 0x00, "Unset (Program Optimum)" ) + PORT_DIPSETTING( 0x10, "70" ) + PORT_DIPSETTING( 0x20, "72" ) + PORT_DIPSETTING( 0x30, "74" ) + PORT_DIPSETTING( 0x40, "76" ) + PORT_DIPSETTING( 0x50, "78" ) + PORT_DIPSETTING( 0x60, "80" ) + PORT_DIPSETTING( 0x70, "82" ) + PORT_DIPSETTING( 0x80, "84" ) + PORT_DIPSETTING( 0x90, "86" ) + PORT_DIPSETTING( 0xA0, "88" ) + PORT_DIPSETTING( 0xB0, "90" ) + PORT_DIPSETTING( 0xC0, "92" ) + PORT_DIPSETTING( 0xD0, "94" ) + PORT_DIPSETTING( 0xE0, "96" ) + PORT_DIPSETTING( 0xF0, "98" ) + + PORT_START("DIL2") + PORT_DIPNAME( 0x01, 0x00, "Token Lockout when full" ) PORT_DIPLOCATION("DIL2:01") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused )) PORT_DIPLOCATION("DIL2:02") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x00, "Scottish Coin Handling" ) PORT_DIPLOCATION("DIL2:03")//20p payout + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x00, "Out of Credit Display Inhibit" ) PORT_DIPLOCATION("DIL2:04") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x00, "OCD Audio Enable" ) PORT_DIPLOCATION("DIL2:05") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x00, "Coin Alarm Inhibit" ) PORT_DIPLOCATION("DIL2:06") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x00, "Token Refill Level Inhibit" ) PORT_DIPLOCATION("DIL2:07") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x40, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x00, "Single Credit Entry" ) PORT_DIPLOCATION("DIL2:08") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("AUX1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("0") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("6") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7") + + PORT_START("AUX2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SPECIAL) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SPECIAL) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SPECIAL) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SPECIAL) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("10p")//PORT_IMPULSE(5) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("20p")//PORT_IMPULSE(5) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN3) PORT_NAME("50p")//PORT_IMPULSE(5) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_COIN4) PORT_NAME("100p")//PORT_IMPULSE(5) +INPUT_PORTS_END + + + +/* +Characteriser (CHR) + +As built, the CHR is a PAL which can perform basic bit manipulation according to +an as yet unknown unique key. However, the programmers decided to best use this protection device in read/write/compare +cycles, storing almost the entire 'hidden' data table in the ROMs in plain sight. Only later rebuilds by BwB +avoided this 'feature' of the development kit, and will need a different setup. + +This information has been used to generate the CHR tables loaded by the programs, until a key can be determined. + +For most Barcrest games, the following method was used: + +The initial 'PALTEST' routine as found in the Barcrest programs simply writes the first 'call' to the CHR space, +to read back the 'response'. There is no attempt to alter the order or anything else, just +a simple runthrough of the entire data table. The only 'catch' in this is to note that the CHR chip always scans +through the table starting at the last accessed data value, unless 00 is used to reset to the beginning. This is obviously +a simplification, in fact the PAL does bit manipulation with some latching. + +However, a final 8 byte row, that controls the lamp matrix is not tested - to date, no-one outside of Barcrest knows +how this is generated, and currently trial and error is the only sensible method. It is noted that the default, +of all 00, is sometimes the correct answer, particularly in non-Barcrest use of the CHR chip, though when used normally, +there are again fixed call values. + +Apparently, just before the characteriser is checked bit 1 at 0x61DF is checked and if zero the characteriser +check is bypassed. This may be something to look at for prototype ROMs and hacks. + +*/ + + +WRITE8_MEMBER(mpu4_state::characteriser_w) +{ + int x; + int call=data; + LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X", space.device().safe_pcbase(),offset,data)); + if (!m_current_chr_table) + { + logerror("No Characteriser Table @ %04x\n", space.device().safe_pcbase()); + return; + } + + + + if (offset == 0) + { + { + if (call == 0) + { + m_prot_col = 0; + } + else + { + for (x = m_prot_col; x < 64; x++) + { + if (m_current_chr_table[(x)].call == call) + { + m_prot_col = x; + LOG_CHR(("Characteriser find column %02X\n",m_prot_col)); + break; + } + } + } + } + } + else if (offset == 2) + { + LOG_CHR(("Characteriser write 2 data %02X\n",data)); + // Rather than the search strategy, we can map the calls directly here. Note that they are hex versions of the square number series + switch (call) + { + case 0x00: + m_lamp_col = 0; + break; + + case 0x01: + m_lamp_col = 1; + break; + + case 0x04: + m_lamp_col = 2; + break; + + case 0x09: + m_lamp_col = 3; + break; + + case 0x10: + m_lamp_col = 4; + break; + + case 0x19: + m_lamp_col = 5; + break; + + case 0x24: + m_lamp_col = 6; + break; + + case 0x31: + m_lamp_col = 7; + break; + } + LOG_CHR(("Characteriser find 2 column %02X\n",m_lamp_col)); + } +} + + +READ8_MEMBER(mpu4_state::characteriser_r) +{ + if (!m_current_chr_table) + { + logerror("No Characteriser Table @ %04x", space.device().safe_pcbase()); + + /* a cheat ... many early games use a standard check */ + int addr = space.device().state().state_int(M6809_X); + if ((addr>=0x800) && (addr<=0xfff)) return 0x00; // prevent recursion, only care about ram/rom areas for this cheat. + + uint8_t ret = space.read_byte(addr); + logerror(" (returning %02x)",ret); + + logerror("\n"); + + return ret; + } + + LOG_CHR(("Characteriser read offset %02X \n",offset)); + if (offset == 0) + { + LOG_CHR(("Characteriser read data %02X \n",m_current_chr_table[m_prot_col].response)); + return m_current_chr_table[m_prot_col].response; + } + + if (offset == 3) + { + LOG_CHR(("Characteriser read data off 3 %02X \n",m_current_chr_table[m_lamp_col+64].response)); + return m_current_chr_table[m_lamp_col+64].response; + } + return 0; +} + +/* +BwB Characteriser (CHR) + +The BwB method of protection is considerably different to the Barcrest one, with any +incorrect behaviour manifesting in ridiculously large payouts. The hardware is the +same, however the main weakness of the software has been eliminated. + +In fact, the software seems deliberately designed to mislead, but is (fortunately for +us) prone to similar weaknesses that allow a per game solution. + +Project Amber performed a source analysis (available on request) which appears to make things work. +Said weaknesses (A Cheats Guide according to Project Amber) + +The common initialisation sequence is "00 04 04 0C 0C 1C 14 2C 5C 2C" + 0 1 2 3 4 5 6 7 8 +Using debug search for the first read from said string (best to find it first). + +At this point, the X index on the CPU is at the magic number address. + +The subsequent calls for each can be found based on the magic address + + (0) = ( (BWBMagicAddress)) + (1) = ( (BWBMagicAddress + 1)) + (2) = ( (BWBMagicAddress + 2)) + (3) = ( (BWBMagicAddress + 4)) + (4) = ( (BWBMagicAddress - 5)) + (5) = ( (BWBMagicAddress - 4)) + (6) = ( (BWBMagicAddress - 3)) + (7) = ( (BWBMagicAddress - 2)) + (8) = ( (BWBMagicAddress - 1)) + +These return the standard init sequence as above. + +For ease of understanding, we use three tables, one holding the common responses +and two holding the appropriate call and response pairs for the two stages of operation +*/ + + +WRITE8_MEMBER(mpu4_state::bwb_characteriser_w) +{ + int x; + int call=data; + LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X \n", space.device().safe_pcbase(),offset,data)); + if (!m_current_chr_table) + fatalerror("No Characteriser Table @ %04x\n", space.device().safe_pcbase()); + + if ((offset & 0x3f)== 0)//initialisation is always at 0x800 + { + if (!m_chr_state) + { + m_chr_state=1; + m_chr_counter=0; + } + if (call == 0) + { + m_init_col ++; + } + else + { + m_init_col =0; + } + } + + m_chr_value = machine().rand(); + for (x = 0; x < 4; x++) + { + if (m_current_chr_table[(x)].call == call) + { + if (x == 0) // reinit + { + m_bwb_return = 0; + } + m_chr_value = bwb_chr_table_common[(m_bwb_return)]; + m_bwb_return++; + break; + } + } +} + +READ8_MEMBER(mpu4_state::bwb_characteriser_r) +{ + LOG_CHR(("Characteriser read offset %02X \n",offset)); + + + if (offset ==0) + { + switch (m_chr_counter) + { + case 6: + case 13: + case 20: + case 27: + case 34: + return m_bwb_chr_table1[(((m_chr_counter + 1) / 7) - 1)].response; + + default: + if (m_chr_counter > 34) + { + m_chr_counter = 35; + m_chr_state = 2; + } + m_chr_counter ++; + return m_chr_value; + } + } + else + { + return m_chr_value; + } +} + +/* Common configurations */ + +WRITE8_MEMBER(mpu4_state::mpu4_ym2413_w) +{ + ym2413_device *ym2413 = machine().device<ym2413_device>("ym2413"); + if (ym2413) ym2413->write(space,offset,data); +} + +READ8_MEMBER(mpu4_state::mpu4_ym2413_r) +{ +// ym2413_device *ym2413 = machine().device<ym2413_device>("ym2413"); +// if (ym2413) return ym2413->read(space,offset); + return 0xff; +} + + +void mpu4_state::mpu4_install_mod4yam_space(address_space &space) +{ + space.install_read_handler(0x0880, 0x0882, read8_delegate(FUNC(mpu4_state::mpu4_ym2413_r),this)); + space.install_write_handler(0x0880, 0x0881, write8_delegate(FUNC(mpu4_state::mpu4_ym2413_w),this)); +} + +void mpu4_state::mpu4_install_mod4oki_space(address_space &space) +{ + pia6821_device *pia_ic4ss = space.machine().device<pia6821_device>("pia_ic4ss"); + ptm6840_device *ptm_ic3ss = space.machine().device<ptm6840_device>("ptm_ic3ss"); + + space.install_readwrite_handler(0x0880, 0x0883, read8_delegate(FUNC(pia6821_device::read), pia_ic4ss), write8_delegate(FUNC(pia6821_device::write), pia_ic4ss)); + space.install_read_handler(0x08c0, 0x08c7, read8_delegate(FUNC(ptm6840_device::read), ptm_ic3ss)); + space.install_write_handler(0x08c0, 0x08c7, write8_delegate(FUNC(mpu4_state::ic3ss_w),this)); +} + +void mpu4_state::mpu4_install_mod4bwb_space(address_space &space) +{ + space.install_readwrite_handler(0x0810, 0x0810, read8_delegate(FUNC(mpu4_state::bwb_characteriser_r),this),write8_delegate(FUNC(mpu4_state::bwb_characteriser_w),this)); + mpu4_install_mod4oki_space(space); +} + + +void mpu4_state::mpu4_config_common() +{ + m_ic24_timer = timer_alloc(TIMER_IC24); + m_lamp_strobe_ext_persistence = 0; +} + +MACHINE_START_MEMBER(mpu4_state,mod2) +{ + mpu4_config_common(); + + m_link7a_connected=0; + m_mod_number=2; +} + +MACHINE_START_MEMBER(mpu4_state,mpu4yam) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + mpu4_config_common(); + + m_link7a_connected=0; + m_mod_number=4; + mpu4_install_mod4yam_space(space); +} + +MACHINE_START_MEMBER(mpu4_state,mpu4oki) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + mpu4_config_common(); + + m_link7a_connected=0; + m_mod_number=4; + mpu4_install_mod4oki_space(space); +} + +MACHINE_START_MEMBER(mpu4_state,mpu4bwb) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + mpu4_config_common(); + + m_link7a_connected=0; + m_mod_number=4; + mpu4_install_mod4bwb_space(space); +} + +MACHINE_START_MEMBER(mpu4_state,mpu4cry) +{ + mpu4_config_common(); + + m_link7a_connected=0; + m_mod_number=4; +} + +/* CHR Tables */ + +static mpu4_chr_table andycp10c_data[72] = { +{0x00, 0x00},{0x1a, 0x14},{0x04, 0x04},{0x10, 0x54},{0x18, 0x4c},{0x0f, 0x20},{0x13, 0x50},{0x1b, 0x44}, +{0x03, 0x5c},{0x07, 0x78},{0x17, 0x70},{0x1d, 0x48},{0x36, 0x6c},{0x35, 0x60},{0x2b, 0x14},{0x28, 0x48}, +{0x39, 0x2c},{0x21, 0x6c},{0x22, 0x6c},{0x25, 0x28},{0x2c, 0x64},{0x29, 0x10},{0x31, 0x08},{0x34, 0x6c}, +{0x0a, 0x24},{0x1f, 0x5c},{0x06, 0x78},{0x0e, 0x34},{0x1c, 0x00},{0x12, 0x50},{0x1e, 0x00},{0x0d, 0x50}, +{0x14, 0x0c},{0x0a, 0x6c},{0x19, 0x2c},{0x15, 0x60},{0x06, 0x54},{0x0f, 0x00},{0x08, 0x58},{0x1b, 0x74}, +{0x1e, 0x00},{0x04, 0x14},{0x01, 0x4c},{0x0c, 0x60},{0x18, 0x1c},{0x1a, 0x74},{0x11, 0x4c},{0x0b, 0x64}, +{0x03, 0x5c},{0x17, 0x78},{0x10, 0x78},{0x1d, 0x78},{0x0e, 0x34},{0x07, 0x44},{0x12, 0x54},{0x09, 0x40}, +{0x0d, 0x50},{0x1f, 0x48},{0x16, 0x6c},{0x05, 0x28},{0x13, 0x60},{0x1c, 0x14},{0x02, 0x4c},{0x00, 0x00}, +{0x00, 0x04},{0x01, 0x58},{0x04, 0x14},{0x09, 0x58},{0x10, 0x50},{0x19, 0x1c},{0x24, 0x10},{0x31, 0x10} +}; + +static mpu4_chr_table ccelbr_data[72] = { +{0x00, 0x00},{0x1a, 0x84},{0x04, 0x8c},{0x10, 0xb8},{0x18, 0x74},{0x0f, 0x80},{0x13, 0x1c},{0x1b, 0xb4}, +{0x03, 0xd8},{0x07, 0x74},{0x17, 0x00},{0x1d, 0xd4},{0x36, 0xc8},{0x35, 0x78},{0x2b, 0xa4},{0x28, 0x4c}, +{0x39, 0xe0},{0x21, 0xdc},{0x22, 0xf4},{0x25, 0x88},{0x2c, 0x78},{0x29, 0x24},{0x31, 0x84},{0x34, 0xcc}, +{0x0a, 0xb8},{0x1f, 0x74},{0x06, 0x90},{0x0e, 0x48},{0x1c, 0xa0},{0x12, 0x1c},{0x1e, 0x24},{0x0d, 0x94}, +{0x14, 0xc8},{0x0a, 0xb8},{0x19, 0x74},{0x15, 0x00},{0x06, 0x94},{0x0f, 0x48},{0x08, 0x30},{0x1b, 0x90}, +{0x1e, 0x08},{0x04, 0x60},{0x01, 0xd4},{0x0c, 0x58},{0x18, 0xf4},{0x1a, 0x18},{0x11, 0x74},{0x0b, 0x80}, +{0x03, 0xdc},{0x17, 0x74},{0x10, 0xd0},{0x1d, 0x58},{0x0e, 0x24},{0x07, 0x94},{0x12, 0xd8},{0x09, 0x34}, +{0x0d, 0x90},{0x1f, 0x58},{0x16, 0xf4},{0x05, 0x88},{0x13, 0x38},{0x1c, 0x24},{0x02, 0xd4},{0x00, 0x00}, +{0x00, 0x00},{0x01, 0x50},{0x04, 0x00},{0x09, 0x50},{0x10, 0x10},{0x19, 0x40},{0x24, 0x04},{0x31, 0x00} +}; + + +static mpu4_chr_table gmball_data[72] = { +{0x00, 0x00},{0x1a, 0x0c},{0x04, 0x50},{0x10, 0x90},{0x18, 0xb0},{0x0f, 0x38},{0x13, 0xd4},{0x1b, 0xa0}, +{0x03, 0xbc},{0x07, 0xd4},{0x17, 0x30},{0x1d, 0x90},{0x36, 0x38},{0x35, 0xc4},{0x2b, 0xac},{0x28, 0x70}, +{0x39, 0x98},{0x21, 0xdc},{0x22, 0xdc},{0x25, 0x54},{0x2c, 0x80},{0x29, 0xb4},{0x31, 0x38},{0x34, 0xcc}, +{0x0a, 0xe8},{0x1f, 0xf8},{0x06, 0xd4},{0x0e, 0x30},{0x1c, 0x00},{0x12, 0x84},{0x1e, 0x2c},{0x0d, 0xc8}, +{0x14, 0xf8},{0x0a, 0x4c},{0x19, 0x58},{0x15, 0xd4},{0x06, 0xa8},{0x0f, 0x78},{0x08, 0x44},{0x1b, 0x0c}, +{0x1e, 0x48},{0x04, 0x50},{0x01, 0x98},{0x0c, 0xd4},{0x18, 0xb0},{0x1a, 0xa0},{0x11, 0xa4},{0x0b, 0x3c}, +{0x03, 0xdc},{0x17, 0xd4},{0x10, 0xb8},{0x1d, 0xd4},{0x0e, 0x30},{0x07, 0x88},{0x12, 0xe0},{0x09, 0x24}, +{0x0d, 0x8c},{0x1f, 0xf8},{0x16, 0xcc},{0x05, 0x70},{0x13, 0x90},{0x1c, 0x20},{0x02, 0x9c},{0x00, 0x00}, +{0x00, 0x00},{0x01, 0x18},{0x04, 0x08},{0x09, 0x10},{0x10, 0x00},{0x19, 0x18},{0x24, 0x08},{0x31, 0x00} +}; + + + + +static mpu4_chr_table grtecp_data[72] = { +{0x00, 0x00},{0x1a, 0x84},{0x04, 0xa4},{0x10, 0xac},{0x18, 0x70},{0x0f, 0x80},{0x13, 0x2c},{0x1b, 0xc0}, +{0x03, 0xbc},{0x07, 0x5c},{0x17, 0x5c},{0x1d, 0x5c},{0x36, 0xdc},{0x35, 0x5c},{0x2b, 0xcc},{0x28, 0x68}, +{0x39, 0xd0},{0x21, 0xb8},{0x22, 0xdc},{0x25, 0x54},{0x2c, 0x08},{0x29, 0x58},{0x31, 0x54},{0x34, 0x90}, +{0x0a, 0xb8},{0x1f, 0x5c},{0x06, 0x5c},{0x0e, 0x44},{0x1c, 0x84},{0x12, 0xac},{0x1e, 0xe0},{0x0d, 0xbc}, +{0x14, 0xcc},{0x0a, 0xe8},{0x19, 0x70},{0x15, 0x00},{0x06, 0x8c},{0x0f, 0x70},{0x08, 0x00},{0x1b, 0x84}, +{0x1e, 0xa4},{0x04, 0xa4},{0x01, 0xbc},{0x0c, 0xdc},{0x18, 0x5c},{0x1a, 0xcc},{0x11, 0xe8},{0x0b, 0xe0}, +{0x03, 0xbc},{0x17, 0x4c},{0x10, 0xc8},{0x1d, 0xf8},{0x0e, 0xd4},{0x07, 0xa8},{0x12, 0x68},{0x09, 0x40}, +{0x0d, 0x0c},{0x1f, 0xd8},{0x16, 0xdc},{0x05, 0x54},{0x13, 0x98},{0x1c, 0x44},{0x02, 0x9c},{0x00, 0x00}, +{0x00, 0x00},{0x01, 0x18},{0x04, 0x00},{0x09, 0x18},{0x10, 0x08},{0x19, 0x10},{0x24, 0x00},{0x31, 0x00} +}; + +static mpu4_chr_table oldtmr_data[72] = { +{0x00, 0x00},{0x1a, 0x90},{0x04, 0xc0},{0x10, 0x54},{0x18, 0xa4},{0x0f, 0xf0},{0x13, 0x64},{0x1b, 0x90}, +{0x03, 0xe4},{0x07, 0xd4},{0x17, 0x60},{0x1d, 0xb4},{0x36, 0xc0},{0x35, 0x70},{0x2b, 0x80},{0x28, 0x74}, +{0x39, 0xa4},{0x21, 0xf4},{0x22, 0xe4},{0x25, 0xd0},{0x2c, 0x64},{0x29, 0x10},{0x31, 0x20},{0x34, 0x90}, +{0x0a, 0xe4},{0x1f, 0xf4},{0x06, 0xc4},{0x0e, 0x70},{0x1c, 0x00},{0x12, 0x14},{0x1e, 0x00},{0x0d, 0x14}, +{0x14, 0xa0},{0x0a, 0xf0},{0x19, 0x64},{0x15, 0x10},{0x06, 0x84},{0x0f, 0x70},{0x08, 0x00},{0x1b, 0x90}, +{0x1e, 0x40},{0x04, 0x90},{0x01, 0xe4},{0x0c, 0xf4},{0x18, 0x64},{0x1a, 0x90},{0x11, 0x64},{0x0b, 0x90}, +{0x03, 0xe4},{0x17, 0x50},{0x10, 0x24},{0x1d, 0xb4},{0x0e, 0xe0},{0x07, 0xd4},{0x12, 0xe4},{0x09, 0x50}, +{0x0d, 0x04},{0x1f, 0xb4},{0x16, 0xc0},{0x05, 0xd0},{0x13, 0x64},{0x1c, 0x90},{0x02, 0xe4},{0x00, 0x00}, +{0x00, 0x00},{0x01, 0x00},{0x04, 0x00},{0x09, 0x00},{0x10, 0x00},{0x19, 0x10},{0x24, 0x00},{0x31, 0x00} +}; + +static const bwb_chr_table blsbys_data1[5] = { +//Magic number 724A + +// PAL Codes +// 0 1 2 3 4 5 6 7 8 +// ?? ?? 20 0F 24 3C 36 27 09 + + {0x67},{0x17},{0x0f},{0x24},{0x3c}, +}; + +static mpu4_chr_table blsbys_data[8] = { +{0xEF, 0x02},{0x81, 0x00},{0xCE, 0x00},{0x00, 0x2e}, +{0x06, 0x20},{0xC6, 0x0f},{0xF8, 0x24},{0x8E, 0x3c}, +}; + +// set percentage and other options. 2e 20 0f +// PAL Codes +// 0 1 2 3 4 5 6 7 8 +// 42 2E 20 0F 24 3C 36 27 09 + // 6 0 7 0 8 0 7 0 0 8 +//request 36 42 27 42 09 42 27 42 42 09 +//verify 00 04 04 0C 0C 1C 14 2C 5C 2C + +DRIVER_INIT_MEMBER(mpu4_state,m4_low_volt_alt) +{ + //Some games can't use the 50Hz circuit to check voltage issues, handle it here + m_low_volt_detect_disable =1; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_aux1_invert) +{ + m_aux1_invert =1; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_aux2_invert) +{ + m_aux2_invert =1; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_door_invert) +{ + m_aux2_invert =1; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_small_extender) +{ + m_lamp_extender=SMALL_CARD; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_large_extender_a) +{ + m_lamp_extender=LARGE_CARD_A; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_large_extender_b) +{ + m_lamp_extender=LARGE_CARD_B; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_large_extender_c) +{ + m_lamp_extender=LARGE_CARD_C; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_tubes) +{ + m_hopper = TUBES; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_duart_a) +{ + m_hopper = HOPPER_DUART_A; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_duart_b) +{ + m_hopper = HOPPER_DUART_B; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_duart_c) +{ + m_hopper = HOPPER_DUART_C; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_nonduart_a) +{ + m_hopper = HOPPER_NONDUART_A; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_hopper_nonduart_b) +{ + m_hopper = HOPPER_NONDUART_B; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_led_a) +{ + m_led_extender = CARD_A; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_led_b) +{ + m_led_extender = CARD_B; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_led_c) +{ + m_led_extender = CARD_C; +} + +//TODO: Replace with standard six reels once sets are sorted out - is really six_reel_std +DRIVER_INIT_MEMBER(mpu4_state,m4altreels) +{ + m_reel_mux=SIX_REEL_1TO8; + m_reels = 6; + DRIVER_INIT_CALL(m4default_banks); +} +DRIVER_INIT_MEMBER(mpu4_state,m4default_reels) +{ + m_reel_mux=STANDARD_REEL; + m_reels = 4; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_five_reel_std) +{ + m_reel_mux=FIVE_REEL_5TO8; + m_reels = 5; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_five_reel_rev) +{ + m_reel_mux=FIVE_REEL_8TO5; + m_reels = 5; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_five_reel_alt) +{ + m_reel_mux=FIVE_REEL_3TO6; + m_reels = 5; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_six_reel_std) +{ + m_reel_mux=SIX_REEL_1TO8; + m_reels = 6; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_six_reel_alt) +{ + m_reel_mux=SIX_REEL_5TO8; + m_reels = 6; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4_seven_reel) +{ + m_reel_mux=SEVEN_REEL; + m_reels = 7; +} + + +DRIVER_INIT_MEMBER(mpu4_state,m4_andycp10c) +{ + DRIVER_INIT_CALL(m4default); + DRIVER_INIT_CALL(m4_small_extender); + m_current_chr_table = andycp10c_data; +} + +DRIVER_INIT_MEMBER(mpu4_state,m_oldtmr) +{ + DRIVER_INIT_CALL(m4_six_reel_std); + DRIVER_INIT_CALL(m4default_banks); + + m_current_chr_table = oldtmr_data; +} + +DRIVER_INIT_MEMBER(mpu4_state,m_ccelbr) +{ + DRIVER_INIT_CALL(m4default); + m_current_chr_table = ccelbr_data; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4gambal) +{ + DRIVER_INIT_CALL(m4default); + m_current_chr_table = gmball_data; +} + +DRIVER_INIT_MEMBER(mpu4_state,m_grtecp) +{ + m_current_chr_table = grtecp_data; +} + +DRIVER_INIT_MEMBER(mpu4_state,m_blsbys) +{ + m_bwb_bank=1; + DRIVER_INIT_CALL(m4_five_reel_std); + m_bwb_chr_table1 = blsbys_data1; + m_current_chr_table = blsbys_data; + DRIVER_INIT_CALL(m4default_big); +} + + +DRIVER_INIT_MEMBER(mpu4_state,m4default_banks) +{ + //Initialise paging for non-extended ROM space + uint8_t *rom = memregion("maincpu")->base(); + membank("bank1")->configure_entries(0, 4, &rom[0x01000], 0x10000); + membank("bank1")->set_entry(0); +} + +DRIVER_INIT_MEMBER(mpu4_state,m4default_alt) +{ + m_reel_mux=STANDARD_REEL; + m_reels = 8; + DRIVER_INIT_CALL(m4default_banks); + + m_bwb_bank=0; +} + +DRIVER_INIT_MEMBER(mpu4_state,m4default) +{ + DRIVER_INIT_CALL(m4default_reels); + m_bwb_bank=0; + m_aux1_invert=0; + m_aux2_invert=0; + m_door_invert=0; + DRIVER_INIT_CALL(m4default_banks); +} + + +DRIVER_INIT_MEMBER(mpu4_state,m4default_big) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + m_aux1_invert=0; + m_aux2_invert=0; + m_door_invert=0; + + int size = memregion( "maincpu" )->bytes(); + if (size<=0x10000) + { + printf("Error: Extended banking selected on set <=0x10000 in size, ignoring\n"); + DRIVER_INIT_CALL(m4default_reels); + m_bwb_bank=0; + DRIVER_INIT_CALL(m4default_banks); + } + else + { + m_bwb_bank=1; + space.install_write_handler(0x0858, 0x0858, write8_delegate(FUNC(mpu4_state::bankswitch_w),this)); + space.install_write_handler(0x0878, 0x0878, write8_delegate(FUNC(mpu4_state::bankset_w),this)); + uint8_t *rom = memregion("maincpu")->base(); + + m_numbanks = size / 0x10000; + + m_bank1->configure_entries(0, m_numbanks, &rom[0x01000], 0x10000); + + m_numbanks--; + + // some Bwb games must default to the last bank, does anything not like this + // behavior? + // some Bwb games don't work anyway tho, they seem to dislike something else + // about the way the regular banking behaves, not related to the CB2 stuff + m_bank1->set_entry(m_numbanks); + } +} + + + + + +READ8_MEMBER(mpu4_state::crystal_sound_r) +{ + return machine().rand(); +} +//this may be a YMZ280B +WRITE8_MEMBER(mpu4_state::crystal_sound_w) +{ + printf("crystal_sound_w %02x\n",data); +} + +DRIVER_INIT_MEMBER(mpu4_state,m_frkstn) +{ + address_space &space = m_maincpu->space(AS_PROGRAM); + DRIVER_INIT_CALL(m4default_big); + space.install_read_handler(0x0880, 0x0880, read8_delegate(FUNC(mpu4_state::crystal_sound_r),this)); + space.install_write_handler(0x0881, 0x0881, write8_delegate(FUNC(mpu4_state::crystal_sound_w),this)); +} + +// thanks to Project Amber for descramble information +static void descramble_crystal( uint8_t* region, int start, int end, uint8_t extra_xor) +{ + for (int i=start;i<end;i++) + { + uint8_t x = region[i]; + switch (i & 0x58) + { + case 0x00: // same as 0x08 + case 0x08: x = BITSWAP8( x^0xca , 3,2,1,0,7,4,6,5 ); break; + case 0x10: x = BITSWAP8( x^0x30 , 3,0,4,6,1,5,7,2 ); break; + case 0x18: x = BITSWAP8( x^0x89 , 4,1,2,5,7,0,6,3 ); break; + case 0x40: x = BITSWAP8( x^0x14 , 6,1,4,3,2,5,0,7 ); break; + case 0x48: x = BITSWAP8( x^0x40 , 1,0,3,2,5,4,7,6 ); break; + case 0x50: x = BITSWAP8( x^0xcb , 3,2,1,0,7,6,5,4 ); break; + case 0x58: x = BITSWAP8( x^0xc0 , 2,3,6,0,5,1,7,4 ); break; + } + region[i] = x ^ extra_xor; + } +} + + +DRIVER_INIT_MEMBER(mpu4_state,crystal) +{ + DRIVER_INIT_CALL(m_frkstn); + descramble_crystal(memregion( "maincpu" )->base(), 0x0000, 0x10000, 0x00); +} + +DRIVER_INIT_MEMBER(mpu4_state,crystali) +{ + DRIVER_INIT_CALL(m_frkstn); + descramble_crystal(memregion( "maincpu" )->base(), 0x0000, 0x10000, 0xff); // invert after decrypt?! +} + +/* generate a 50 Hz signal (based on an RC time) */ +TIMER_DEVICE_CALLBACK_MEMBER(mpu4_state::gen_50hz) +{ + if (!m_low_volt_detect_disable) + { + /* Although reported as a '50Hz' signal, the fact that both rising and + falling edges of the pulse are used means the timer actually gives a 100Hz + oscillating signal.*/ + m_signal_50hz = m_signal_50hz?0:1; + m_pia4->ca1_w(m_signal_50hz); /* signal is connected to IC4 CA1 */ + } + update_meters();//run at 100Hz to sync with PIAs +} + +static ADDRESS_MAP_START( mpu4_memmap, AS_PROGRAM, 8, mpu4_state ) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0x0800, 0x0810) AM_READWRITE(characteriser_r,characteriser_w) + AM_RANGE(0x0850, 0x0850) AM_READWRITE(bankswitch_r,bankswitch_w) /* write bank (rom page select) */ +/* AM_RANGE(0x08e0, 0x08e7) AM_READWRITE(68681_duart_r,68681_duart_w) */ //Runs hoppers + AM_RANGE(0x0900, 0x0907) AM_DEVREADWRITE("ptm_ic2", ptm6840_device, read, write)/* PTM6840 IC2 */ + AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE("pia_ic3", pia6821_device, read, write) /* PIA6821 IC3 */ + AM_RANGE(0x0b00, 0x0b03) AM_DEVREADWRITE("pia_ic4", pia6821_device, read, write) /* PIA6821 IC4 */ + AM_RANGE(0x0c00, 0x0c03) AM_DEVREADWRITE("pia_ic5", pia6821_device, read, write) /* PIA6821 IC5 */ + AM_RANGE(0x0d00, 0x0d03) AM_DEVREADWRITE("pia_ic6", pia6821_device, read, write) /* PIA6821 IC6 */ + AM_RANGE(0x0e00, 0x0e03) AM_DEVREADWRITE("pia_ic7", pia6821_device, read, write) /* PIA6821 IC7 */ + AM_RANGE(0x0f00, 0x0f03) AM_DEVREADWRITE("pia_ic8", pia6821_device, read, write) /* PIA6821 IC8 */ + AM_RANGE(0x1000, 0xffff) AM_ROMBANK("bank1") /* 64k paged ROM (4 pages) */ +ADDRESS_MAP_END + +#define MCFG_MPU4_STD_REEL_ADD(_tag)\ + MCFG_STEPPER_ADD(_tag)\ + MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ + MCFG_STEPPER_START_INDEX(1)\ + MCFG_STEPPER_END_INDEX(3)\ + MCFG_STEPPER_INDEX_PATTERN(0x00)\ + MCFG_STEPPER_INIT_PHASE(2) + +#define MCFG_MPU4_TYPE2_REEL_ADD(_tag)\ + MCFG_STEPPER_ADD(_tag)\ + MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ + MCFG_STEPPER_START_INDEX(4)\ + MCFG_STEPPER_END_INDEX(12)\ + MCFG_STEPPER_INDEX_PATTERN(0x00)\ + MCFG_STEPPER_INIT_PHASE(2) + +#define MCFG_MPU4_TYPE3_REEL_ADD(_tag)\ + MCFG_STEPPER_ADD(_tag)\ + MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ + MCFG_STEPPER_START_INDEX(92)\ + MCFG_STEPPER_END_INDEX(3)\ + MCFG_STEPPER_INDEX_PATTERN(0x00)\ + MCFG_STEPPER_INIT_PHASE(2) + +#define MCFG_MPU4_TYPE4_REEL_ADD(_tag)\ + MCFG_STEPPER_ADD(_tag)\ + MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ + MCFG_STEPPER_START_INDEX(93)\ + MCFG_STEPPER_END_INDEX(2)\ + MCFG_STEPPER_INDEX_PATTERN(0x00)\ + MCFG_STEPPER_INIT_PHASE(2) + +#define MCFG_MPU4_BWB_REEL_ADD(_tag)\ + MCFG_STEPPER_ADD(_tag)\ + MCFG_STEPPER_REEL_TYPE(BARCREST_48STEP_REEL)\ + MCFG_STEPPER_START_INDEX(96)\ + MCFG_STEPPER_END_INDEX(3)\ + MCFG_STEPPER_INDEX_PATTERN(0x00)\ + MCFG_STEPPER_INIT_PHASE(2) + +MACHINE_CONFIG_START( mpu4_std_3reel ) + MCFG_MPU4_STD_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type2_3reel ) + MCFG_MPU4_TYPE2_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type3_3reel ) + MCFG_MPU4_TYPE3_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type4_3reel ) + MCFG_MPU4_TYPE4_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_bwb_3reel ) + MCFG_MPU4_BWB_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_std_4reel ) + MCFG_MPU4_STD_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type2_4reel ) + MCFG_MPU4_TYPE2_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type3_4reel ) + MCFG_MPU4_TYPE3_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type4_4reel ) + MCFG_MPU4_TYPE4_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_bwb_4reel ) + MCFG_MPU4_BWB_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_std_5reel ) + MCFG_MPU4_STD_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type2_5reel ) + MCFG_MPU4_TYPE2_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type3_5reel ) + MCFG_MPU4_TYPE3_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type4_5reel ) + MCFG_MPU4_TYPE4_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_bwb_5reel ) + MCFG_MPU4_BWB_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_std_6reel ) + MCFG_MPU4_STD_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type2_6reel ) + MCFG_MPU4_TYPE2_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type3_6reel ) + MCFG_MPU4_TYPE3_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type4_6reel ) + MCFG_MPU4_TYPE4_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_bwb_6reel ) + MCFG_MPU4_BWB_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) +MACHINE_CONFIG_END + + +MACHINE_CONFIG_START( mpu4_std_7reel ) + MCFG_MPU4_STD_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel6") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) + MCFG_MPU4_STD_REEL_ADD("reel7") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type2_7reel ) + MCFG_MPU4_TYPE2_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel6") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) + MCFG_MPU4_TYPE2_REEL_ADD("reel7") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type3_7reel ) + MCFG_MPU4_TYPE3_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel6") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) + MCFG_MPU4_TYPE3_REEL_ADD("reel7") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_type4_7reel ) + MCFG_MPU4_TYPE4_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel6") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) + MCFG_MPU4_TYPE4_REEL_ADD("reel7") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_bwb_7reel ) + MCFG_MPU4_BWB_REEL_ADD("reel0") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel0_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel1") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel1_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel2") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel2_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel3") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel3_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel4") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel4_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel5") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel5_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel6") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel6_optic_cb)) + MCFG_MPU4_BWB_REEL_ADD("reel7") + MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(mpu4_state, reel7_optic_cb)) +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_common ) + MCFG_TIMER_DRIVER_ADD_PERIODIC("50hz", mpu4_state, gen_50hz, attotime::from_hz(100)) + + MCFG_MSC1937_ADD("vfd",0) + /* 6840 PTM */ + MCFG_DEVICE_ADD("ptm_ic2", PTM6840, MPU4_MASTER_CLOCK / 4) + MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0) + MCFG_PTM6840_OUT0_CB(WRITELINE(mpu4_state, ic2_o1_callback)) + MCFG_PTM6840_OUT1_CB(WRITELINE(mpu4_state, ic2_o2_callback)) + MCFG_PTM6840_OUT2_CB(WRITELINE(mpu4_state, ic2_o3_callback)) + MCFG_PTM6840_IRQ_CB(WRITELINE(mpu4_state, cpu0_irq)) + + MCFG_DEVICE_ADD("pia_ic3", PIA6821, 0) + MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic3_porta_w)) + MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic3_portb_w)) + MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic3_ca2_w)) + MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic3_cb2_w)) + MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + + MCFG_DEVICE_ADD("pia_ic4", PIA6821, 0) + MCFG_PIA_READPB_HANDLER(READ8(mpu4_state, pia_ic4_portb_r)) + MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic4_porta_w)) + MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic4_portb_w)) + MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state,pia_ic4_ca2_w)) + MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state,pia_ic4_cb2_w)) + MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state,cpu0_irq)) + MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state,cpu0_irq)) + + MCFG_DEVICE_ADD("pia_ic5", PIA6821, 0) + MCFG_PIA_READPA_HANDLER(READ8(mpu4_state, pia_ic5_porta_r)) + MCFG_PIA_READPB_HANDLER(READ8(mpu4_state, pia_ic5_portb_r)) + MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic5_porta_w)) + MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic5_portb_w)) + MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic5_ca2_w)) + MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic5_cb2_w)) + MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + + MCFG_DEVICE_ADD("pia_ic6", PIA6821, 0) + MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic6_porta_w)) + MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic6_portb_w)) + MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic6_ca2_w)) + MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic6_cb2_w)) + MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + + MCFG_DEVICE_ADD("pia_ic7", PIA6821, 0) + MCFG_PIA_READPB_HANDLER(READ8(mpu4_state, pia_ic7_portb_r)) + MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_ic7_porta_w)) + MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic7_portb_w)) + MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic7_ca2_w)) + MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic7_cb2_w)) + MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + + MCFG_DEVICE_ADD("pia_ic8", PIA6821, 0) + MCFG_PIA_READPA_HANDLER(READ8(mpu4_state, pia_ic8_porta_r)) + MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_ic8_portb_w)) + MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_ic8_ca2_w)) + MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_ic8_cb2_w)) + MCFG_PIA_IRQA_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + MCFG_PIA_IRQB_HANDLER(WRITELINE(mpu4_state, cpu0_irq)) + + MCFG_DEVICE_ADD("meters", METERS, 0) + MCFG_METERS_NUMBER(8) + +MACHINE_CONFIG_END + +MACHINE_CONFIG_START( mpu4_common2 ) + MCFG_DEVICE_ADD("ptm_ic3ss", PTM6840, MPU4_MASTER_CLOCK / 4) + MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0) + MCFG_PTM6840_OUT0_CB(DEVWRITELINE("ptm_ic3ss", ptm6840_device, set_c2)) + MCFG_PTM6840_OUT1_CB(DEVWRITELINE("ptm_ic3ss", ptm6840_device, set_c1)) + //MCFG_PTM6840_OUT2_CB(DEVWRITELINE("ptm_ic3ss", ptm6840_device, set_g1)) + //MCFG_PTM6840_IRQ_CB(WRITELINE(mpu4_state, cpu1_ptm_irq)) + + MCFG_DEVICE_ADD("pia_ic4ss", PIA6821, 0) + MCFG_PIA_READPB_HANDLER(READ8(mpu4_state, pia_gb_portb_r)) + MCFG_PIA_WRITEPA_HANDLER(WRITE8(mpu4_state, pia_gb_porta_w)) + MCFG_PIA_WRITEPB_HANDLER(WRITE8(mpu4_state, pia_gb_portb_w)) + MCFG_PIA_CA2_HANDLER(WRITELINE(mpu4_state, pia_gb_ca2_w)) + MCFG_PIA_CB2_HANDLER(WRITELINE(mpu4_state, pia_gb_cb2_w)) +MACHINE_CONFIG_END + +/* machine driver for MOD 2 board */ +MACHINE_CONFIG_START( mpu4base ) + + MCFG_MACHINE_START_OVERRIDE(mpu4_state,mod2 ) + MCFG_MACHINE_RESET_OVERRIDE(mpu4_state,mpu4) + MCFG_CPU_ADD("maincpu", M6809, MPU4_MASTER_CLOCK/4) + MCFG_CPU_PROGRAM_MAP(mpu4_memmap) + + MCFG_FRAGMENT_ADD(mpu4_common) + + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + + MCFG_NVRAM_ADD_0FILL("nvram") + + MCFG_DEFAULT_LAYOUT(layout_mpu4) +MACHINE_CONFIG_END + + +MACHINE_CONFIG_DERIVED( mod2 , mpu4base ) + MCFG_SOUND_ADD("ay8913", AY8913, MPU4_MASTER_CLOCK/4) + MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) + MCFG_AY8910_RES_LOADS(820, 0, 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + MCFG_FRAGMENT_ADD(mpu4_std_6reel) +MACHINE_CONFIG_END + +MACHINE_CONFIG_DERIVED( mod2_alt , mpu4base ) + MCFG_SOUND_ADD("ay8913", AY8913, MPU4_MASTER_CLOCK/4) + MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) + MCFG_AY8910_RES_LOADS(820, 0, 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + MCFG_FRAGMENT_ADD(mpu4_type2_6reel) +MACHINE_CONFIG_END + + + +MACHINE_CONFIG_DERIVED( mod4yam, mpu4base ) + MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4yam) + + MCFG_FRAGMENT_ADD(mpu4_std_6reel) + + MCFG_SOUND_ADD("ym2413", YM2413, MPU4_MASTER_CLOCK/4) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) +MACHINE_CONFIG_END + +MACHINE_CONFIG_DERIVED( mod4oki, mpu4base ) + MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki) + + MCFG_FRAGMENT_ADD(mpu4_common2) + MCFG_FRAGMENT_ADD(mpu4_std_6reel) + + MCFG_SOUND_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) +MACHINE_CONFIG_END + +MACHINE_CONFIG_DERIVED( mod4oki_alt, mpu4base ) + MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki) + + MCFG_FRAGMENT_ADD(mpu4_common2) + MCFG_FRAGMENT_ADD(mpu4_type2_6reel) + + MCFG_SOUND_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) +MACHINE_CONFIG_END + +MACHINE_CONFIG_DERIVED( mod4oki_5r, mpu4base ) + MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki) + + MCFG_FRAGMENT_ADD(mpu4_common2) + MCFG_FRAGMENT_ADD(mpu4_std_5reel) + + MCFG_SOUND_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) +MACHINE_CONFIG_END + +MACHINE_CONFIG_DERIVED( bwboki, mpu4base ) + MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4bwb) + MCFG_FRAGMENT_ADD(mpu4_common2) + MCFG_FRAGMENT_ADD(mpu4_bwb_5reel) + + MCFG_SOUND_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) +MACHINE_CONFIG_END + +MACHINE_CONFIG_DERIVED(mpu4crys, mod2 ) + MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4cry) + + MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) +MACHINE_CONFIG_END + +#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) diff --git a/src/mame/machine/namco50.cpp b/src/mame/machine/namco50.cpp index f36601b1d85..7aa4b49a0cc 100644 --- a/src/mame/machine/namco50.cpp +++ b/src/mame/machine/namco50.cpp @@ -217,14 +217,6 @@ READ8_MEMBER( namco_50xx_device::read ) DEVICE INTERFACE ***************************************************************************/ -static ADDRESS_MAP_START( namco_50xx_map_io, AS_IO, 8, namco_50xx_device ) - AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(K_r) - AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(O_w) - AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(R0_r) - AM_RANGE(MB88_PORTR2, MB88_PORTR2) AM_READ(R2_r) -ADDRESS_MAP_END - - ROM_START( namco_50xx ) ROM_REGION( 0x800, "mcu", 0 ) ROM_LOAD( "50xx.bin", 0x0000, 0x0800, CRC(a0acbaf7) SHA1(f03c79451e73b3a93c1591cdb27fedc9f130508d) ) @@ -260,7 +252,10 @@ void namco_50xx_device::device_start() MACHINE_CONFIG_MEMBER( namco_50xx_device::device_add_mconfig ) MCFG_CPU_ADD("mcu", MB8842, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ - MCFG_CPU_IO_MAP(namco_50xx_map_io) + MCFG_MB88XX_READ_K_CB(READ8(namco_50xx_device, K_r)) + MCFG_MB88XX_WRITE_O_CB(WRITE8(namco_50xx_device, O_w)) + MCFG_MB88XX_READ_R0_CB(READ8(namco_50xx_device, R0_r)) + MCFG_MB88XX_READ_R2_CB(READ8(namco_50xx_device, R2_r)) MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/mame/machine/namco51.cpp b/src/mame/machine/namco51.cpp index 2fe1b736d79..76c34a5a76b 100644 --- a/src/mame/machine/namco51.cpp +++ b/src/mame/machine/namco51.cpp @@ -321,14 +321,6 @@ READ8_MEMBER( namco_51xx_device::read ) DEVICE INTERFACE ***************************************************************************/ -static ADDRESS_MAP_START( namco_51xx_map_io, AS_IO, 8, namco_51xx_device ) -// AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_51xx_K_r) -// AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_51xx_O_w) -// AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(namco_51xx_R0_r) -// AM_RANGE(MB88_PORTR2, MB88_PORTR2) AM_READ(namco_51xx_R2_r) -ADDRESS_MAP_END - - ROM_START( namco_51xx ) ROM_REGION( 0x400, "mcu", 0 ) ROM_LOAD( "51xx.bin", 0x0000, 0x0400, CRC(c2f57ef8) SHA1(50de79e0d6a76bda95ffb02fcce369a79e6abfec) ) @@ -398,7 +390,10 @@ void namco_51xx_device::device_reset() MACHINE_CONFIG_MEMBER( namco_51xx_device::device_add_mconfig ) MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ - MCFG_CPU_IO_MAP(namco_51xx_map_io) +// MCFG_MB88XX_READ_K_CB(READ8(namco_51xx_device, namco_51xx_K_r)) +// MCFG_MB88XX_WRITE_O_CB(WRITE8(namco_51xx_device, namco_51xx_O_w)) +// MCFG_MB88XX_READ_R0_CB(READ8(namco_51xx_device, namco_51xx_R0_r)) +// MCFG_MB88XX_READ_R2_CB(READ8(namco_51xx_device, namco_51xx_R2_r)) MCFG_DEVICE_DISABLE() MACHINE_CONFIG_END diff --git a/src/mame/machine/namco53.cpp b/src/mame/machine/namco53.cpp index 79ea617b26d..d730d408483 100644 --- a/src/mame/machine/namco53.cpp +++ b/src/mame/machine/namco53.cpp @@ -67,9 +67,24 @@ READ8_MEMBER( namco_53xx_device::K_r ) return m_k(0); } -READ8_MEMBER( namco_53xx_device::Rx_r ) +READ8_MEMBER( namco_53xx_device::R0_r ) { - return (offset < ARRAY_LENGTH(m_in)) ? m_in[offset](0) : 0xff; + return m_in[0](0); +} + +READ8_MEMBER( namco_53xx_device::R1_r ) +{ + return m_in[1](0); +} + +READ8_MEMBER( namco_53xx_device::R2_r ) +{ + return m_in[2](0); +} + +READ8_MEMBER( namco_53xx_device::R3_r ) +{ + return m_in[3](0); } WRITE8_MEMBER( namco_53xx_device::O_w ) @@ -118,14 +133,6 @@ READ8_MEMBER( namco_53xx_device::read ) DEVICE INTERFACE ***************************************************************************/ -static ADDRESS_MAP_START( namco_53xx_map_io, AS_IO, 8,namco_53xx_device ) - AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(K_r) - AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(O_w) - AM_RANGE(MB88_PORTP, MB88_PORTP) AM_WRITE(P_w) - AM_RANGE(MB88_PORTR0, MB88_PORTR3) AM_READ(Rx_r) -ADDRESS_MAP_END - - ROM_START( namco_53xx ) ROM_REGION( 0x400, "mcu", 0 ) ROM_LOAD( "53xx.bin", 0x0000, 0x0400, CRC(b326fecb) SHA1(758d8583d658e4f1df93184009d86c3eb8713899) ) @@ -163,7 +170,13 @@ void namco_53xx_device::device_start() MACHINE_CONFIG_MEMBER( namco_53xx_device::device_add_mconfig ) MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ - MCFG_CPU_IO_MAP(namco_53xx_map_io) + MCFG_MB88XX_READ_K_CB(READ8(namco_53xx_device, K_r)) + MCFG_MB88XX_WRITE_O_CB(WRITE8(namco_53xx_device, O_w)) + MCFG_MB88XX_WRITE_P_CB(WRITE8(namco_53xx_device, P_w)) + MCFG_MB88XX_READ_R0_CB(READ8(namco_53xx_device, R0_r)) + MCFG_MB88XX_READ_R1_CB(READ8(namco_53xx_device, R1_r)) + MCFG_MB88XX_READ_R2_CB(READ8(namco_53xx_device, R2_r)) + MCFG_MB88XX_READ_R3_CB(READ8(namco_53xx_device, R3_r)) MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/mame/machine/namco53.h b/src/mame/machine/namco53.h index 86f0360002a..f6c3c66aef2 100644 --- a/src/mame/machine/namco53.h +++ b/src/mame/machine/namco53.h @@ -40,7 +40,10 @@ public: template <class Object> static devcb_base &set_p_port_callback(device_t &device, Object &&cb) { return downcast<namco_53xx_device &>(device).m_p.set_callback(std::forward<Object>(cb)); } DECLARE_READ8_MEMBER( K_r ); - DECLARE_READ8_MEMBER( Rx_r ); + DECLARE_READ8_MEMBER( R0_r ); + DECLARE_READ8_MEMBER( R1_r ); + DECLARE_READ8_MEMBER( R2_r ); + DECLARE_READ8_MEMBER( R3_r ); DECLARE_WRITE8_MEMBER( O_w ); DECLARE_WRITE8_MEMBER( P_w ); diff --git a/src/mame/machine/namco62.cpp b/src/mame/machine/namco62.cpp index 2131a8d2e07..d44d7c5c6b0 100644 --- a/src/mame/machine/namco62.cpp +++ b/src/mame/machine/namco62.cpp @@ -22,14 +22,6 @@ DEVICE INTERFACE ***************************************************************************/ -static ADDRESS_MAP_START( namco_62xx_map_io, AS_IO, 8, namco_62xx_device ) -// AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_62xx_K_r) -// AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_62xx_O_w) -// AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(namco_62xx_R0_r) -// AM_RANGE(MB88_PORTR2, MB88_PORTR2) AM_READ(namco_62xx_R2_r) -ADDRESS_MAP_END - - ROM_START( namco_62xx ) ROM_REGION( 0x800, "mcu", 0 ) ROM_LOAD( "62xx.bin", 0x0000, 0x0800, CRC(308dc115) SHA1(fe0a60fc339ac2eeed4879a64c1aab130f9d4cfe) ) @@ -67,7 +59,10 @@ void namco_62xx_device::device_start() MACHINE_CONFIG_MEMBER( namco_62xx_device::device_add_mconfig ) MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 (TODO: Correct?) */ - MCFG_CPU_IO_MAP(namco_62xx_map_io) +// MCFG_MB88XX_READ_K_CB(READ8(namco_62xx_device, namco_62xx_K_r)) +// MCFG_MB88XX_WRITE_O_CB(WRITE8(namco_62xx_device, namco_62xx_O_w)) +// MCFG_MB88XX_READ_R0_CB(READ8(namco_62xx_device, namco_62xx_R0_r)) +// MCFG_MB88XX_READ_R2_CB(READ8(namco_62xx_device, namco_62xx_R2_r)) MCFG_DEVICE_DISABLE() MACHINE_CONFIG_END diff --git a/src/mame/machine/saturn.cpp b/src/mame/machine/saturn.cpp index 08a41b862af..4167ccca48d 100644 --- a/src/mame/machine/saturn.cpp +++ b/src/mame/machine/saturn.cpp @@ -358,6 +358,7 @@ TIMER_CALLBACK_MEMBER(saturn_state::dma_lv0_ended ) m_scu.ist |= (IRQ_DMALV0); DnMV_0(0); + machine().scheduler().synchronize(); // force resync } /*Lv 1 DMA end irq*/ @@ -369,6 +370,7 @@ TIMER_CALLBACK_MEMBER(saturn_state::dma_lv1_ended) m_scu.ist |= (IRQ_DMALV1); DnMV_0(1); + machine().scheduler().synchronize(); // force resync } /*Lv 2 DMA end irq*/ @@ -380,6 +382,7 @@ TIMER_CALLBACK_MEMBER(saturn_state::dma_lv2_ended) m_scu.ist |= (IRQ_DMALV2); DnMV_0(2); + machine().scheduler().synchronize(); // force resync } void saturn_state::scu_single_transfer(address_space &space, uint32_t src, uint32_t dst,uint8_t *src_shift) @@ -423,7 +426,7 @@ void saturn_state::scu_dma_direct(address_space &space, uint8_t dma_ch) m_scu.ist |= (IRQ_DMAILL); return; } - + DnMV_1(dma_ch); /* max size */ diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 0120246bb74..5fc652ca5d9 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9007,6 +9007,7 @@ xsandos // @source:by6803.cpp atlantip // beatclck // +beatclck2 // black100 // black100s // blackblt // @@ -10030,7 +10031,8 @@ sf2em // 29/01/1991 (c) 1991 (World) sf2hf // 09/12/1992 (c) 1992 (World) sf2hfj // 09/12/1992 (c) 1992 (Japan) sf2hfu // 09/12/1992 (c) 1992 (USA) -sf2j // 10/12/1991 (c) 1991 (Japan) +sf2j // 10/12/1991 (c) 1991 (Japan, CPS-B-13) +sf2j17 // 10/12/1991 (c) 1991 (Japan, CPS-B-17) sf2ja // 14/02/1991 (c) 1991 (Japan) sf2jc // 06/03/1991 (c) 1991 (Japan) sf2jf // 11/04/1991 (c) 1991 (Japan) @@ -10994,7 +10996,8 @@ slyspy3 // (c) 1989 Data East USA (US) @source:dec8.cpp breywood // (c) 1986 Data East Corporation (Japan) -cobracom // (c) 1988 Data East Corporation (World) +cobracom // (c) 1988 Data East Corporation (World/US) +cobracoma // (c) 1988 Data East Corporation (World/US) cobracomj // (c) 1988 Data East Corporation (Japan) csilver // (c) 1987 Data East Corporation (Japan) csilverj // (c) 1987 Data East Corporation (Japan) @@ -14524,9 +14527,11 @@ us2pfball // US Games uspbball // US Games @source:hh_sm510.cpp +exospace // Elektronika gnw_bx301 // Nintendo gnw_dj101 // Nintendo gnw_dm53 // Nintendo +gnw_eg26 // Nintendo gnw_jr55 // Nintendo gnw_mc25 // Nintendo gnw_ml102 // Nintendo @@ -14536,6 +14541,7 @@ kgradius // Konami kloneran // Konami ktmnt // Konami ktopgun // Konami +nupogodi // Elektronika @source:hh_tms1k.cpp 7in1ss // Tiger Electronics @@ -15056,6 +15062,9 @@ instantm // @source:instruct.cpp instruct // +@source:intellec4.cpp +intlc440 // + @source:interact.cpp hector1 // interact // @@ -21388,7 +21397,7 @@ m4wnud // Unknown MPU4 'W Nudge' m4zill // Zillionare's Challenge (Pure Leisure) m4zilla // -//@source:mpu4avan.inc +@source:mpu4avan.cpp m4abeaut // m4abeaut_1 // m4abeaut_2 // @@ -21890,7 +21899,7 @@ m4trg__x // m4trg__y // m4trg__z // -//@source:mpu4bwb.inc +@source:mpu4bwb.cpp m4abra // Abracadabra (Bwb) m4abra__a // m4abra__b // @@ -22352,7 +22361,7 @@ m4xtrm // X-treme (Bwb) m4xtrm__a // m4xtrm__b // -//@source:mpu4concept.inc +@source:mpu4concept.cpp m4nudgwc // Nudge a Win (Concept) m4nudgwc__a // m4nudgwc__b // @@ -22424,7 +22433,7 @@ m4spnwnc // Spin-A-Win (Concept) m4spnwnc__a // m4spnwnc__b // -//@source:mpu4crystal.inc +@source:mpu4crystal.cpp m4aladn // Aladdin's Cave (Crystal) m4aladna // m4aladnb // @@ -22527,7 +22536,7 @@ m4twstrd // m4tylb // Thank Your Lucky Bars (Crystal) m4tylba // -//@source:mpu4empire.inc +@source:mpu4empire.cpp m4apachg // Apache Gold (Empire) m4apachga // m4apachgb // @@ -22610,7 +22619,7 @@ m4ttrail // Treasure Trail (Empire) m4ttraila // m4ttrailb // -//@source:mpu4mdm.inc +@source:mpu4mdm.cpp m42punlm // 2p Unlimited (Mdm) m4bigapl // The Big Apple (Mdm) m4bigapla // @@ -22656,7 +22665,7 @@ m4themob // The Mob (Mdm) m4themoba // m4themobb // -//@source:mpu4misc.inc +@source:mpu4misc.cpp m4bangin // Bangin' Away (Global) m4bangina // m4banginb // @@ -22795,7 +22804,7 @@ m4wwc // Wacky Weekend Club (Global) m4wwca // m4wwcb // -//@source:mpu4mod2sw.inc +@source:mpu4mod2sw.cpp m421 // Twenty One (Barcrest) m421club // 21 Club (Barcrest) m4actbnka // @@ -23040,7 +23049,7 @@ m4wayin // Way In (Barcrest) m4wayina // m4wildms // Wild Mystery (Barcrest) -//@source:mpu4mod4yam.inc +@source:mpu4mod4yam.cpp m4acechs // Ace Chase (Bwb) m4acechs__a // m4acechs__b // @@ -23324,7 +23333,7 @@ m4vivalv__y // m4vivalv__z // m4voodoo // Voodoo 1000 (Barcrest) -//@source:mpu4sw.inc +@source:mpu4sw.cpp m4actbnk // Action Bank (Barcrest) m4actbnk__a // m4actbnk__b // @@ -26703,7 +26712,7 @@ m4wta__x // m4wta__y // m4wta__z // -//@source:mpu4union.inc +@source:mpu4union.cpp m4crzbn // Crazy Bingo m4cwalk // Cake Walk (Union) m4eezee // Eezee Fruits (Union) @@ -28235,6 +28244,7 @@ ncv1j // (c) 1995 (Japan) ncv1j2 // (c) 1995 (Japan) ncv2 // (c) 1996 ncv2j // (c) 1996 (Japan) +abcheck // (c) 1996 (Japan) @source:namcops2.cpp bldyr3b // @@ -29735,6 +29745,7 @@ opwolf // B20 (c) 1987 Taito Corporation Japan (World) opwolfa // B20 (c) 1987 Taito Corporation Japan (World) opwolfb // bootleg opwolfj // B20 (c) 1987 Taito Corporation (Japan) +opwolfjsc // B20 (c) 1987 Taito Corporation (Japan) opwolfu // B20 (c) 1987 Taito America Corporation (US) opwolfp // prototype? @@ -35882,6 +35893,7 @@ rygar3 // 6002 - (c) 1986 Tecmo rygarj // 6002 - (c) 1986 Tecmo silkworm // 6217 - (c) 1988 Tecmo silkwormj // 6217 - (c) 1988 Tecmo +silkwormp // 6217 - (c) 1988 Tecmo @source:tecmo16.cpp fstarfrc // (c) 1992 Tecmo diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 984ed80b3cc..187db5a91bd 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -276,6 +276,7 @@ indiana.cpp indigo.cpp indy_indigo2.cpp instruct.cpp +intellec4.cpp interact.cpp interpro.cpp intv.cpp diff --git a/src/mame/video/cps1.cpp b/src/mame/video/cps1.cpp index 7efc92a4813..8cb2ee1b776 100644 --- a/src/mame/video/cps1.cpp +++ b/src/mame/video/cps1.cpp @@ -113,7 +113,8 @@ Street Fighter II: The World Warrior (Japan 910214) 90629B-2 ST Street Fighter II: The World Warrior (Japan 910306) 90629B-3 STF29 IOB1 90632C-1 CPS-B-12 DL-0411-10007 C632 Street Fighter II: The World Warrior (Japan 910411) 90629B-3 STF29 IOB1 90632C-1 CPS-B-15 DL-0411-10010 C632 Street Fighter II: The World Warrior (Japan 910522) 90629B-3 STF29 IOB1 90632C-1 CPS-B-13 DL-0411-10008 C632 -Street Fighter II: The World Warrior (Japan 911210) 90629B-? STF29 IOB1 ? CPS-B-13 DL-0411-10008 C632 +Street Fighter II: The World Warrior (Japan 911210, CPS-B-13) 90629B-? STF29 IOB1 ? CPS-B-13 DL-0411-10008 C632 +Street Fighter II: The World Warrior (Japan 911210, CPS-B-17) 90629B-3 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 Street Fighter II: The World Warrior (Japan 920312) 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632 Three Wonders* (World 910513) 1991 89624B-3 RT24B IOB1 90630C-4 CPS-B-21 DL-0921-10014 IOC1 @@ -1483,6 +1484,7 @@ static const struct CPS1config cps1_config_table[]= {"sf2ui", CPS_B_14, mapper_STF29, 0x36 }, {"sf2uk", CPS_B_17, mapper_STF29, 0x36 }, {"sf2j", CPS_B_13, mapper_STF29, 0x36 }, + {"sf2j17", CPS_B_17, mapper_STF29, 0x36 }, {"sf2ja", CPS_B_17, mapper_STF29, 0x36 }, {"sf2jc", CPS_B_12, mapper_STF29, 0x36 }, {"sf2jf", CPS_B_15, mapper_STF29, 0x36 }, diff --git a/src/mame/video/dec8.cpp b/src/mame/video/dec8.cpp index 6f44238d372..cf46a380697 100644 --- a/src/mame/video/dec8.cpp +++ b/src/mame/video/dec8.cpp @@ -50,28 +50,19 @@ sprites. Convert the color PROMs into a more useable format. - Real Ghostbusters has two 1024x8 palette PROM. - I don't know the exact values of the resistors between the RAM and the - RGB output. I assumed these values (the same as Commando) - - bit 7 -- 220 ohm resistor -- GREEN - -- 470 ohm resistor -- GREEN - -- 1 kohm resistor -- GREEN - -- 2.2kohm resistor -- GREEN - -- 220 ohm resistor -- RED - -- 470 ohm resistor -- RED - -- 1 kohm resistor -- RED - bit 0 -- 2.2kohm resistor -- RED - - bit 7 -- unused - -- unused - -- unused - -- unused - -- 220 ohm resistor -- BLUE - -- 470 ohm resistor -- BLUE - -- 1 kohm resistor -- BLUE - bit 0 -- 2.2kohm resistor -- BLUE - + Real Ghostbusters has two 1024x8 palette PROM, other games in this driver + use palette RAM. + + Real Ghostbusters, Cobra Command, Gondomania, Oscar at least are confirmed + to use two custom resistor packs marked DECO RM-C3 to convert the digital + palette for analog output. + + Each pack contains two channels with resistor values of 220 ohms, + 470 ohms, 1 kohm, 2.2 kohm and 4.8 kohm, however the highest resistance is + not used as these games are only 4 bits per channel. + + This leads to weightings per bit of 0xe, 0x1f, 0x43, 0x8f. + ***************************************************************************/ PALETTE_INIT_MEMBER(dec8_state,ghostb) diff --git a/src/mame/video/ygv608.cpp b/src/mame/video/ygv608.cpp index 2b622eaf786..6eee7ddac1f 100644 --- a/src/mame/video/ygv608.cpp +++ b/src/mame/video/ygv608.cpp @@ -586,7 +586,7 @@ TILE_GET_INFO_MEMBER( ygv608_device::get_tile_info_A_16 ) uint8_t attr = 0; int pattern_name_base = 0; int set = ((m_regs.s.r7 & r7_md) == MD_1PLANE_256COLOUR - ? GFX_16X16_8BIT : GFX_16X16_4BIT ); + ? GFX_16X16_8BIT : GFX_16X16_4BIT ); int base = row >> m_base_y_shift; if( col >= m_page_x ) { @@ -1208,13 +1208,10 @@ uint32_t ygv608_device::update_screen(screen_device &screen, bitmap_ind16 &bitma return 0; } -READ16_MEMBER( ygv608_device::read ) +READ8_MEMBER( ygv608_device::read ) { - static int p0_state = 0; - static int p3_state = 0; - static int pattern_name_base = 0; /* pattern name table base address */ int pn=0; - uint16_t data = 0; + uint8_t data = 0; switch (offset) { @@ -1223,20 +1220,20 @@ READ16_MEMBER( ygv608_device::read ) uint8_t xTile = m_regs.s.r1 & r1_pnx; uint8_t yTile = m_regs.s.r0 & r0_pny; - switch (p0_state) + switch (p0_state_r) { case 0: /* Are we reading from plane B? */ if (!((m_regs.s.r7 & r7_md) & MD_1PLANE) && (m_regs.s.r0 & r0_b_a)) - pattern_name_base = ((m_page_y << m_pny_shift) << m_bits16); + pattern_name_base_r = ((m_page_y << m_pny_shift) << m_bits16); /* read character from ram */ - pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16); + pn = pattern_name_base_r + (((yTile << m_pny_shift) + xTile) << m_bits16); break; case 1: /* read character from ram */ - pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1; + pn = pattern_name_base_r + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1; break; } @@ -1244,23 +1241,23 @@ READ16_MEMBER( ygv608_device::read ) { logerror( "attempt (%d) to read pattern name %d\n" "mode = %d, pgs = %d (%dx%d)\n" - "pattern_name_base = %d\n" + "pattern_name_base_r = %d\n" "pnx = %d, pny = %d, pny_shift = %d, bits16 = %d\n", - p0_state, + p0_state_r, pn, m_regs.s.r7 & r7_md, m_regs.s.r8 & r8_pgs, m_page_x, m_page_y, - pattern_name_base, + pattern_name_base_r, xTile, yTile, m_pny_shift, m_bits16 ); pn = 0; } data = m_pattern_name_table[pn]; - p0_state++; + p0_state_r++; if ((m_regs.s.r7 & r7_md) == MD_2PLANE_8BIT ) - p0_state++; + p0_state_r++; - if (p0_state == 2) + if (p0_state_r == 2) { if (m_regs.s.r0 & r0_pnya) { @@ -1296,17 +1293,17 @@ READ16_MEMBER( ygv608_device::read ) m_regs.s.r1 &= ~r1_pnx; m_regs.s.r1 |= xTile; } - p0_state = 0; - pattern_name_base = 0; + p0_state_r = 0; + pattern_name_base_r = 0; } - return (data << 8); + return (data); } case 0x01: /* P#1 - sprite data port */ data = m_sprite_attribute_table.b[m_regs.s.saa]; if (m_regs.s.r2 & r2_saar) m_regs.s.saa++; - return (data << 8); + return (data); case 0x02: /* P#2 - scroll data port */ data = m_scroll_data_table[(m_regs.s.r2 & r2_b_a) >> 4][m_regs.s.sca]; @@ -1317,17 +1314,17 @@ READ16_MEMBER( ygv608_device::read ) if (m_regs.s.sca == 0) m_regs.s.r2 ^= r2_b_a; } - return( data << 8 ); + return( data ); case 0x03: /* P#3 - color palette data port */ - data = m_colour_palette[m_regs.s.cc][p3_state]; - if( ++p3_state == 3 ) + data = m_colour_palette[m_regs.s.cc][p3_state_r]; + if( ++p3_state_r == 3 ) { - p3_state = 0; + p3_state_r = 0; if( m_regs.s.r2 & r2_cpar) m_regs.s.cc++; } - return( data << 8 ); + return( data ); case 0x04: /* P#4 - register data port */ { @@ -1344,7 +1341,7 @@ READ16_MEMBER( ygv608_device::read ) m_ports.s.p5 &= ~p5_rn; m_ports.s.p5 |= regNum; } - return (data << 8); + return (data ); } case 0x05: @@ -1352,7 +1349,7 @@ READ16_MEMBER( ygv608_device::read ) case 0x06: case 0x07: - return( (uint16_t)(m_ports.b[offset]) << 8 ); + return( (uint8_t)(m_ports.b[offset]) ); default : logerror( "unknown ygv608 register (%d)\n", offset ); @@ -1362,14 +1359,11 @@ READ16_MEMBER( ygv608_device::read ) return( 0 ); } -WRITE16_MEMBER( ygv608_device::write ) +WRITE8_MEMBER( ygv608_device::write ) { - static int p0_state = 0; - static int p3_state = 0; - static int pattern_name_base = 0; /* pattern name table base address */ int pn=0; - data = ( data >> 8 ) & 0xff; + //data = ( data >> 8 ) & 0xff; switch (offset) { @@ -1378,20 +1372,20 @@ WRITE16_MEMBER( ygv608_device::write ) uint8_t xTile = m_regs.s.r1 & r1_pnx; uint8_t yTile = m_regs.s.r0 & r0_pny; - switch (p0_state) + switch (p0_state_w) { case 0: /* Are we reading from plane B? */ if (!((m_regs.s.r7 & r7_md) & MD_1PLANE) && (m_regs.s.r0 & r0_b_a)) - pattern_name_base = ((m_page_y << m_pny_shift) << m_bits16); + pattern_name_base_w = ((m_page_y << m_pny_shift) << m_bits16); /* read character from ram */ - pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16); + pn = pattern_name_base_w + (((yTile << m_pny_shift) + xTile) << m_bits16); break; case 1: /* read character from ram */ - pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1; + pn = pattern_name_base_w + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1; break; } @@ -1399,23 +1393,23 @@ WRITE16_MEMBER( ygv608_device::write ) { logerror( "attempt (%d) to read pattern name %d\n" "mode = %d, pgs = %d (%dx%d)\n" - "pattern_name_base = %d\n" + "pattern_name_base_w = %d\n" "pnx = %d, pny = %d, pny_shift = %d, bits16 = %d\n", - p0_state, + p0_state_w, pn, m_regs.s.r7 & r7_md, m_regs.s.r8 & r8_pgs, m_page_x, m_page_y, - pattern_name_base, + pattern_name_base_w, xTile, yTile, m_pny_shift, m_bits16 ); pn = 0; } m_pattern_name_table[pn] = data; - p0_state++; + p0_state_w++; if ((m_regs.s.r7 & r7_md) == MD_2PLANE_8BIT ) - p0_state++; + p0_state_w++; - if (p0_state == 2) + if (p0_state_w == 2) { if (m_regs.s.r0 & r0_pnya) { @@ -1449,8 +1443,8 @@ WRITE16_MEMBER( ygv608_device::write ) m_regs.s.r1 &= ~r1_pnx; m_regs.s.r1 |= xTile; } - p0_state = 0; - pattern_name_base = 0; + p0_state_w = 0; + pattern_name_base_w = 0; } } break; @@ -1473,10 +1467,10 @@ WRITE16_MEMBER( ygv608_device::write ) break; case 0x03: /* P#3 - colour palette data port */ - m_colour_palette[m_regs.s.cc][p3_state] = data; - if (++p3_state == 3) + m_colour_palette[m_regs.s.cc][p3_state_w] = data; + if (++p3_state_w == 3) { - p3_state = 0; + p3_state_w = 0; palette().set_pen_color(m_regs.s.cc, pal6bit(m_colour_palette[m_regs.s.cc][0]), pal6bit(m_colour_palette[m_regs.s.cc][1]), diff --git a/src/mame/video/ygv608.h b/src/mame/video/ygv608.h index bbe1e90ced7..5e71feb4800 100644 --- a/src/mame/video/ygv608.h +++ b/src/mame/video/ygv608.h @@ -17,8 +17,8 @@ public: // construction/destruction ygv608_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE16_MEMBER( write ); - DECLARE_READ16_MEMBER( read ); + DECLARE_WRITE8_MEMBER( write ); + DECLARE_READ8_MEMBER( read ); void set_gfxbank(uint8_t gfxbank); @@ -195,6 +195,11 @@ private: uint8_t m_screen_resize; // screen requires resize uint8_t m_tilemap_resize; // tilemap requires resize + + /* These were statically allocated in the r/w routines, looks hackish? */ + int p0_state_r,p3_state_r; + int p0_state_w,p3_state_w; + int pattern_name_base_r,pattern_name_base_w; /* pattern name table base address */ }; // device type definition diff --git a/src/osd/modules/lib/osdobj_common.h b/src/osd/modules/lib/osdobj_common.h index df8096840cf..2c2f750fdbe 100644 --- a/src/osd/modules/lib/osdobj_common.h +++ b/src/osd/modules/lib/osdobj_common.h @@ -270,7 +270,7 @@ private: // FIXME: should be elsewhere osd_module *select_module_options(const core_options &opts, const std::string &opt_name) { - std::string opt_val = opts.value(opt_name.c_str()); + std::string opt_val = opts.exists(opt_name) ? opts.value(opt_name.c_str()) : ""; if (opt_val.compare("auto")==0) opt_val = ""; else if (!m_mod_man.type_has_name(opt_name.c_str(), opt_val.c_str())) diff --git a/src/osd/modules/render/drawbgfx.cpp b/src/osd/modules/render/drawbgfx.cpp index 2fb0d0b3a1e..31ddc58c145 100644 --- a/src/osd/modules/render/drawbgfx.cpp +++ b/src/osd/modules/render/drawbgfx.cpp @@ -85,7 +85,6 @@ renderer_bgfx::renderer_bgfx(std::shared_ptr<osd_window> w) , m_avi_writer(nullptr) , m_avi_target(nullptr) { - m_options = downcast<osd_options &>(assert_window()->machine().options()); } //============================================================ diff --git a/src/osd/modules/sound/sdl_sound.cpp b/src/osd/modules/sound/sdl_sound.cpp index 6ea3af913d9..ad38fab4bab 100644 --- a/src/osd/modules/sound/sdl_sound.cpp +++ b/src/osd/modules/sound/sdl_sound.cpp @@ -359,6 +359,7 @@ static void sdl_callback(void *userdata, Uint8 *stream, int len) if (LOG_SOUND) fprintf(sound_log, "Underflow at sdl_callback: SPP=%d SBI=%d(%d) Len=%d\n", (int)thiz->stream_playpos, (int)sb_in, (int)thiz->stream_buffer_in, (int)len); + memset(stream, 0, len); return; } else if ((thiz->stream_playpos+len) > thiz->stream_buffer_size) diff --git a/src/osd/sdl/sdlmain.cpp b/src/osd/sdl/sdlmain.cpp index 31f65e2ba66..10e57ec5766 100644 --- a/src/osd/sdl/sdlmain.cpp +++ b/src/osd/sdl/sdlmain.cpp @@ -408,14 +408,12 @@ void sdl_osd_interface::init(running_machine &machine) // determine if we are benchmarking, and adjust options appropriately int bench = options().bench(); - std::string error_string; if (bench > 0) { - options().set_value(OPTION_THROTTLE, false, OPTION_PRIORITY_MAXIMUM, error_string); - options().set_value(OSDOPTION_SOUND, "none", OPTION_PRIORITY_MAXIMUM, error_string); - options().set_value(OSDOPTION_VIDEO, "none", OPTION_PRIORITY_MAXIMUM, error_string); - options().set_value(OPTION_SECONDS_TO_RUN, bench, OPTION_PRIORITY_MAXIMUM, error_string); - assert(error_string.c_str()[0] == 0); + options().set_value(OPTION_THROTTLE, false, OPTION_PRIORITY_MAXIMUM); + options().set_value(OSDOPTION_SOUND, "none", OPTION_PRIORITY_MAXIMUM); + options().set_value(OSDOPTION_VIDEO, "none", OPTION_PRIORITY_MAXIMUM); + options().set_value(OPTION_SECONDS_TO_RUN, bench, OPTION_PRIORITY_MAXIMUM); } // Some driver options - must be before audio init! diff --git a/src/osd/sdl/window.cpp b/src/osd/sdl/window.cpp index ea86d851bdd..ba805e517ec 100644 --- a/src/osd/sdl/window.cpp +++ b/src/osd/sdl/window.cpp @@ -737,7 +737,7 @@ int sdl_window_info::complete_create() // create the SDL window // soft driver also used | SDL_WINDOW_INPUT_GRABBED | SDL_WINDOW_MOUSE_FOCUS m_extra_flags |= (fullscreen() ? - /*SDL_WINDOW_BORDERLESS |*/ SDL_WINDOW_INPUT_FOCUS | SDL_WINDOW_FULLSCREEN : SDL_WINDOW_RESIZABLE); + SDL_WINDOW_BORDERLESS | SDL_WINDOW_INPUT_FOCUS | SDL_WINDOW_FULLSCREEN : SDL_WINDOW_RESIZABLE); #if defined(SDLMAME_WIN32) SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0"); diff --git a/src/osd/windows/winmain.cpp b/src/osd/windows/winmain.cpp index efec6700849..805a769d1b8 100644 --- a/src/osd/windows/winmain.cpp +++ b/src/osd/windows/winmain.cpp @@ -515,23 +515,20 @@ void windows_osd_interface::init(running_machine &machine) // determine if we are benchmarking, and adjust options appropriately int bench = options.bench(); - std::string error_string; if (bench > 0) { - options.set_value(OPTION_THROTTLE, false, OPTION_PRIORITY_MAXIMUM, error_string); - options.set_value(OSDOPTION_SOUND, "none", OPTION_PRIORITY_MAXIMUM, error_string); - options.set_value(OSDOPTION_VIDEO, "none", OPTION_PRIORITY_MAXIMUM, error_string); - options.set_value(OPTION_SECONDS_TO_RUN, bench, OPTION_PRIORITY_MAXIMUM, error_string); - assert(error_string.empty()); + options.set_value(OPTION_THROTTLE, false, OPTION_PRIORITY_MAXIMUM); + options.set_value(OSDOPTION_SOUND, "none", OPTION_PRIORITY_MAXIMUM); + options.set_value(OSDOPTION_VIDEO, "none", OPTION_PRIORITY_MAXIMUM); + options.set_value(OPTION_SECONDS_TO_RUN, bench, OPTION_PRIORITY_MAXIMUM); } // determine if we are profiling, and adjust options appropriately int profile = options.profile(); if (profile > 0) { - options.set_value(OPTION_THROTTLE, false, OPTION_PRIORITY_MAXIMUM, error_string); - options.set_value(OSDOPTION_NUMPROCESSORS, 1, OPTION_PRIORITY_MAXIMUM, error_string); - assert(error_string.empty()); + options.set_value(OPTION_THROTTLE, false, OPTION_PRIORITY_MAXIMUM); + options.set_value(OSDOPTION_NUMPROCESSORS, 1, OPTION_PRIORITY_MAXIMUM); } // thread priority diff --git a/src/tools/unidasm.cpp b/src/tools/unidasm.cpp index 72f4cc68856..6ea7939af2c 100644 --- a/src/tools/unidasm.cpp +++ b/src/tools/unidasm.cpp @@ -110,6 +110,7 @@ CPU_DISASSEMBLE( hp_5061_3001 ); CPU_DISASSEMBLE( hp_nanoprocessor ); CPU_DISASSEMBLE( hyperstone_generic ); CPU_DISASSEMBLE( i4004 ); +CPU_DISASSEMBLE( i4040 ); CPU_DISASSEMBLE( i8008 ); CPU_DISASSEMBLE( i8051 ); CPU_DISASSEMBLE( i8052 ); @@ -284,6 +285,7 @@ static const dasm_table_entry dasm_table[] = { "hp_5061_3001",_16be, -1, CPU_DISASSEMBLE_NAME(hp_5061_3001) }, { "hyperstone", _16be, 0, CPU_DISASSEMBLE_NAME(hyperstone_generic) }, { "i4004", _8bit, 0, CPU_DISASSEMBLE_NAME(i4004) }, + { "i4040", _8bit, 0, CPU_DISASSEMBLE_NAME(i4040) }, { "i8008", _8bit, 0, CPU_DISASSEMBLE_NAME(i8008) }, { "i8051", _8bit, 0, CPU_DISASSEMBLE_NAME(i8051) }, { "i8052", _8bit, 0, CPU_DISASSEMBLE_NAME(i8052) }, |