From f3bce9a9c426dab9300c696785898417f6590ae9 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sun, 6 Apr 2025 09:18:55 +0200 Subject: [PATCH] New working clones ------------------ Rail Chase 2 [lukemorse1] - misc/gms.cpp: added DIP definitions for cjdlz [little0] --- src/mame/mame.lst | 1 + src/mame/misc/gms.cpp | 169 +++++++++++++++++++-------------------- src/mame/sega/model2.cpp | 70 +++++++++++++++- 3 files changed, 152 insertions(+), 88 deletions(-) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d6d40be4593..9a2ff79fec4 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -40057,6 +40057,7 @@ powsledr powsledm rascot2 rchase2 +rchase2a schamp segawski sfight diff --git a/src/mame/misc/gms.cpp b/src/mame/misc/gms.cpp index 8083bf53827..7a6bec0ed5c 100644 --- a/src/mame/misc/gms.cpp +++ b/src/mame/misc/gms.cpp @@ -1758,78 +1758,75 @@ static INPUT_PORTS_START( cjdlz ) // TODO // Only 4 DIP banks are actually populated on PCBs, but test mode reads all 6. // TODO: dips PORT_START("DSW1") // 16bit, in test mode first 8 are recognized as dsw1, second 8 as dsw4. - PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:1") - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:2") - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:3") - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:4") - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:5") - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:6") - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:7") - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:8") - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:1") + PORT_DIPNAME( 0x0007, 0x0000, "Pay Out Rate" ) PORT_DIPLOCATION("DSW1:1,2,3") + PORT_DIPSETTING( 0x0000, "72" ) + PORT_DIPSETTING( 0x0001, "75" ) + PORT_DIPSETTING( 0x0002, "78" ) + PORT_DIPSETTING( 0x0003, "80" ) + PORT_DIPSETTING( 0x0004, "82" ) + PORT_DIPSETTING( 0x0005, "85" ) + PORT_DIPSETTING( 0x0006, "88" ) + PORT_DIPSETTING( 0x0007, "90" ) + PORT_DIPNAME( 0x0008, 0x0000, "Odd Rate" ) PORT_DIPLOCATION("DSW1:4") + PORT_DIPSETTING( 0x0008, DEF_STR( High ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Low ) ) + PORT_DIPNAME( 0x0010, 0x0000, "Double Up Direct" ) PORT_DIPLOCATION("DSW1:5") + PORT_DIPSETTING( 0x0010, DEF_STR( No ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x0020, 0x0000, "Double Up" ) PORT_DIPLOCATION("DSW1:6") + PORT_DIPSETTING( 0x0020, DEF_STR( No ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) + PORT_DIPNAME( 0x00c0, 0x0000, "Double Up Rate" ) PORT_DIPLOCATION("DSW1:7,8") + PORT_DIPSETTING( 0x0000, "70" ) + PORT_DIPSETTING( 0x0040, "75" ) + PORT_DIPSETTING( 0x0080, "80" ) + PORT_DIPSETTING( 0x00c0, "85" ) + PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DSW4:1") PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:2") - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:3") - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:4") - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:5") - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:6") - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:7") - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:8") - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0e00, 0x0000, "Break Max" ) PORT_DIPLOCATION("DSW4:2,3,4") + PORT_DIPSETTING( 0x0000, "1000" ) + PORT_DIPSETTING( 0x0200, "2000" ) + PORT_DIPSETTING( 0x0400, "3000" ) + PORT_DIPSETTING( 0x0600, "5000" ) + PORT_DIPSETTING( 0x0800, "10000" ) + PORT_DIPSETTING( 0x0a00, "20000" ) + PORT_DIPSETTING( 0x0c00, "30000" ) + PORT_DIPSETTING( 0x0e00, "50000" ) + PORT_DIPNAME( 0x3000, 0x0000, "Credits Max" ) PORT_DIPLOCATION("DSW4:5,6") + PORT_DIPSETTING( 0x0000, "500" ) + PORT_DIPSETTING( 0x1000, "1000" ) + PORT_DIPSETTING( 0x2000, "2000" ) + PORT_DIPSETTING( 0x3000, "5000" ) + PORT_DIPNAME( 0x4000, 0x0000, "Golden Rush" ) PORT_DIPLOCATION("DSW4:7") + PORT_DIPSETTING( 0x4000, "Less" ) + PORT_DIPSETTING( 0x0000, "More" ) + PORT_DIPNAME( 0x8000, 0x0000, "Number Type" ) PORT_DIPLOCATION("DSW4:8") + PORT_DIPSETTING( 0x8000, "Dice" ) + PORT_DIPSETTING( 0x0000, "Number" ) PORT_START("DSW2") // 16bit, in test mode first 8 are recognized as dsw2, second 8 as dsw5 - PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:1") - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:2") - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:3") - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:4") - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:5") - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:6") + PORT_DIPNAME( 0x0007, 0x0000, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW2:1,2,3") + PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x0001, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x0004, "1 Coin/10 Credits" ) + PORT_DIPSETTING( 0x0005, "1 Coin/20 Credits" ) + PORT_DIPSETTING( 0x0006, "1 Coin/50 Credits" ) + PORT_DIPSETTING( 0x0007, "1 Coin/100 Credits" ) + PORT_DIPNAME( 0x0018, 0x0000, "Credits per Note" ) PORT_DIPLOCATION("DSW2:4,5,") + PORT_DIPSETTING( 0x0018, "1 Note/5 Credits" ) + PORT_DIPSETTING( 0x0000, "1 Note/10 Credits" ) + PORT_DIPSETTING( 0x0008, "1 Note/20 Credits" ) + PORT_DIPSETTING( 0x0010, "1 Note/50 Credits" ) + PORT_DIPNAME( 0x0020, 0x0000, "Show Tiles after Reach" ) PORT_DIPLOCATION("DSW2:6") PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7") - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0040, 0x0000, "Pay Out Type" ) PORT_DIPLOCATION("DSW2:7") + PORT_DIPSETTING( 0x0040, "Credits" ) + PORT_DIPSETTING( 0x0000, "Coins" ) PORT_DIPNAME( 0x0080, 0x0080, "Controls" ) PORT_DIPLOCATION("DSW2:8") // should default to keyboard, but set on joystick since the former isn't emulated yet PORT_DIPSETTING( 0x0080, DEF_STR( Joystick ) ) PORT_DIPSETTING( 0x0000, "Keyboard" ) @@ -1859,28 +1856,26 @@ static INPUT_PORTS_START( cjdlz ) // TODO PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_START("DSW3") // 16bit, in test mode first 8 are recognized as dsw3, second 8 as dsw6 - PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:1") - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:2") - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:3") - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:4") - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:5") - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:6") - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:7") - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:8") + PORT_DIPNAME( 0x0003, 0x0000, "Min Bet" ) PORT_DIPLOCATION("DSW3:1,2") + PORT_DIPSETTING( 0x0000, "1" ) + PORT_DIPSETTING( 0x0001, "2" ) + PORT_DIPSETTING( 0x0002, "5" ) + PORT_DIPSETTING( 0x0003, "10" ) + PORT_DIPNAME( 0x000c, 0x0000, "Max Bet" ) PORT_DIPLOCATION("DSW3:3,4") + PORT_DIPSETTING( 0x0000, "10" ) + PORT_DIPSETTING( 0x0004, "20" ) + PORT_DIPSETTING( 0x0008, "30" ) + PORT_DIPSETTING( 0x000c, "50" ) + PORT_DIPNAME( 0x0010, 0x0000, "Main Credits Game" ) PORT_DIPLOCATION("DSW3:5") + PORT_DIPSETTING( 0x0010, "Introduction" ) + PORT_DIPSETTING( 0x0000, "Lucky Door" ) + PORT_DIPNAME( 0x0020, 0x0000, "Insert Coin Continue" ) PORT_DIPLOCATION("DSW3:6") + PORT_DIPSETTING( 0x0000, "30 Seconds" ) + PORT_DIPSETTING( 0x0020, "Unlimited" ) + PORT_DIPNAME( 0x0040, 0x0000, "Introduction" ) PORT_DIPLOCATION("DSW3:7") + PORT_DIPSETTING( 0x0040, "1" ) + PORT_DIPSETTING( 0x0000, "2" ) + PORT_DIPNAME( 0x0080, 0x0000, "Tiles Sound" ) PORT_DIPLOCATION("DSW3:8") PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW6:1") diff --git a/src/mame/sega/model2.cpp b/src/mame/sega/model2.cpp index 54e95f78234..9ede74c40d9 100644 --- a/src/mame/sega/model2.cpp +++ b/src/mame/sega/model2.cpp @@ -675,7 +675,8 @@ void model2b_state::copro_sharc_iop_w(offs_t offset, u32 data) (strcmp(machine().system().name, "vonj" ) == 0) || (strcmp(machine().system().name, "vonr" ) == 0) || (strcmp(machine().system().name, "vonu" ) == 0) || - (strcmp(machine().system().name, "rchase2" ) == 0)) + (strcmp(machine().system().name, "rchase2" ) == 0) || + (strcmp(machine().system().name, "rchase2a" ) == 0)) { m_copro_adsp->external_iop_write(offset, data); } @@ -2039,6 +2040,30 @@ static INPUT_PORTS_START( rchase2 ) PORT_BIT(0xff, 0x80, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(2) PORT_REVERSE INPUT_PORTS_END +static INPUT_PORTS_START( rchase2a ) + PORT_INCLUDE(model2crx) + + PORT_MODIFY("IN1") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) + PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED) + + PORT_MODIFY("IN2") + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) + + PORT_START("P1_X") + PORT_BIT(0xff, 0x80, IPT_AD_STICK_X) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1) + + PORT_START("P1_Y") + PORT_BIT(0xff, 0x80, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1) + + PORT_START("P2_X") + PORT_BIT(0xff, 0x80, IPT_AD_STICK_X) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(2) + + PORT_START("P2_Y") + PORT_BIT(0xff, 0x80, IPT_AD_STICK_Y) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(2) +INPUT_PORTS_END + static INPUT_PORTS_START( vstriker ) PORT_INCLUDE(model2crx) @@ -5447,6 +5472,48 @@ ROM_START( rchase2 ) /* Rail Chase 2 Revision A, Model 2B. Sega game ID# 833-118 ROM_LOAD("epr-17895.ic8", 0x0000, 0x8000, CRC(8fd7003d) SHA1(b8b16e20e3ed07326330ba335ea1e701cc0bec17) ) ROM_END +ROM_START( rchase2a ) /* Rail Chase 2, Model 2B */ + ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program + ROM_LOAD32_WORD("epr-18143.15", 0x000000, 0x080000, CRC(07ae7e58) SHA1(8802529e33a598618480a81dcd2b9541ff481e04) ) // X & Y axis controls reversed compared to rchase2 + ROM_LOAD32_WORD("epr-18144.16", 0x000002, 0x080000, CRC(a1aa3e54) SHA1(6fc0394abce176b503a350d669f7b54d2c0c4033) ) // maybe a factory conversion set?? + ROM_LOAD32_WORD("epr-18145.13", 0x100000, 0x080000, CRC(8d685f38) SHA1(4a8997d0fd20c771a5d66aff7d2c6170e94b130e) ) + ROM_LOAD32_WORD("epr-18146.14", 0x100002, 0x080000, CRC(412df17a) SHA1(f963dd72bbf1bc7ab707aecf21471677177e0f5a) ) + + ROM_REGION32_LE( 0x2000000, "main_data", 0 ) // Data + ROM_LOAD32_WORD("mpr-18037.11", 0x000000, 0x200000, CRC(dea8f896) SHA1(8eb45e46bd14a2ffbdaac47d381a1ea9b9a03ca2) ) + ROM_LOAD32_WORD("mpr-18038.12", 0x000002, 0x200000, CRC(441f7709) SHA1(cbfa687839b6cad6a5ace45b44b95c45e4cfab0d) ) + ROM_LOAD32_WORD("mpr-18039.9", 0x400000, 0x200000, CRC(b98c6f06) SHA1(dd1ff9c682778de1c6c09e7a5cbc95a8149488c4) ) + ROM_LOAD32_WORD("mpr-18040.10", 0x400002, 0x200000, CRC(0d872667) SHA1(33e56486ec6b953341552b6bc21dc66f6f8aaf74) ) + ROM_LOAD32_WORD("mpr-18041.7", 0x800000, 0x200000, CRC(e511ab0a) SHA1(c6ea14b3bdefdc59603bd2fc152ac0421fae4d6f) ) + ROM_LOAD32_WORD("mpr-18042.8", 0x800002, 0x200000, CRC(e9a04159) SHA1(0204ba86af2707bc9e277cac68dd9ef759189c23) ) + ROM_LOAD32_WORD("mpr-18043.5", 0xc00000, 0x200000, CRC(ff84dfd6) SHA1(82833bf4cb1f367aea5fec6cffb7023cbbd3c8cb) ) + ROM_LOAD32_WORD("mpr-18044.6", 0xc00002, 0x200000, CRC(ab9b406d) SHA1(62e95ceea6f71eedbebae59e188aac03e6129e62) ) + + ROM_REGION32_LE( 0x800000, "copro_data", ROMREGION_ERASEFF ) // Copro extra data (collision/height map/etc) + /* empty?? */ + + ROM_REGION( 0x1000000, "polygons", 0 ) // Models + ROM_LOAD32_WORD("mpr-18031.17", 0x0000000, 0x200000, CRC(25d0deae) SHA1(2d0339dd7eeb2625f78e2fbe4ebdc976967175a4) ) + ROM_LOAD32_WORD("mpr-18032.21", 0x0000002, 0x200000, CRC(dbae35c2) SHA1(9510104975192a0ef1750251636daff7f089feb9) ) + ROM_LOAD32_WORD("mpr-18033.18", 0x0400000, 0x200000, CRC(1e75946c) SHA1(7dee991f0c43de9bfe17ae44767f65f12e83c811) ) + ROM_LOAD32_WORD("mpr-18034.22", 0x0400002, 0x200000, CRC(215235ad) SHA1(48227544209412fca3035e85a00d33ea654dc7b5) ) + + ROM_REGION( 0x1000000, "textures", 0 ) // Textures + ROM_LOAD32_WORD("mpr-18035.27", 0x000000, 0x200000, CRC(4423f66e) SHA1(c1f8dda4781dea00bd97dbf9ecfbb626dadd2c35) ) + ROM_LOAD32_WORD("mpr-18036.25", 0x000002, 0x200000, CRC(69221cf5) SHA1(e39644a08aa631dbdcfc7c0dc356e73f6a4412a9) ) + + ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program + ROM_LOAD16_WORD_SWAP("epr-18047.31", 0x000000, 0x080000, CRC(4c31d459) SHA1(424d5e5a7787d0d4c68aa919ba7d575babfd1ce0) ) + + ROM_REGION16_BE( 0x800000, "samples", 0 ) // Samples + ROM_LOAD16_WORD_SWAP("mpr-18029.32", 0x0000000, 0x200000, CRC(f6804150) SHA1(ef40c11008c75d04159772ad30f02cdb8c5464f3) ) + ROM_LOAD16_WORD_SWAP("mpr-18030.34", 0x0400000, 0x200000, CRC(1167615d) SHA1(bae0060aec3c15f08342f11df665c05c5703523d) ) + + /* Z80 code located on the I/O board type 837-11694. Z80 @ 4Mhz with 8-way DSW & SONY CXD1095Q QFP64 chip */ + ROM_REGION( 0x8000, "iocpu", 0 ) + ROM_LOAD("epr-17895.ic8", 0x0000, 0x8000, CRC(8fd7003d) SHA1(b8b16e20e3ed07326330ba335ea1e701cc0bec17) ) +ROM_END + /* Behind Enemy Lines @@ -7467,6 +7534,7 @@ GAME( 1998, hpyagu98, 0, model2a, vf2, model2a_state, empty_ // Model 2B-CRX (SHARC, SCSP sound board) GAME( 1994, rchase2, 0, rchase2, rchase2, model2b_state, empty_init, ROT0, "Sega", "Rail Chase 2 (Revision A)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND ) +GAME( 1994, rchase2a, rchase2, rchase2, rchase2a, model2b_state, empty_init, ROT0, "Sega", "Rail Chase 2", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND ) GAME( 1994, vstriker, 0, model2b, vstriker, model2b_state, empty_init, ROT0, "Sega", "Virtua Striker (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1994, vstrikero, vstriker, model2b, vstriker, model2b_state, empty_init, ROT0, "Sega", "Virtua Striker", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, fvipers, 0, model2b, vf2, model2b_state, empty_init, ROT0, "Sega", "Fighting Vipers (Revision D)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )