From 67339c5dfd9b4ce6ea870ea6e609fe4a78c5477f Mon Sep 17 00:00:00 2001 From: David Haywood Date: Wed, 23 Mar 2016 14:55:59 +0000 Subject: [PATCH] corrected rom names in seganinj set [Mathieu Patard] - also added correct 'rev A' sprite rom (the program roms were rev A, looks like this ROM was missed when it was dumped before) new NOT WORKING clone Sega Ninja (315-5113) [Mathieu Patard] - we don't have a decryption function for this set also added some bootleg decrypted sets that are being used on PCBs. --- src/mame/drivers/system1.cpp | 953 ++++++++++++++++++++--------------- src/mame/includes/system1.h | 44 +- src/mame/mame.lst | 4 + 3 files changed, 586 insertions(+), 415 deletions(-) diff --git a/src/mame/drivers/system1.cpp b/src/mame/drivers/system1.cpp index 3f2e454e1f7..4954002a392 100644 --- a/src/mame/drivers/system1.cpp +++ b/src/mame/drivers/system1.cpp @@ -2955,9 +2955,36 @@ ROM_END ROM_START( seganinj ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "epr-.116", 0x0000, 0x4000, CRC(a5d0c9d0) SHA1(b60caccab8269f40d4f6e7a50f3aa0d4901c1e57) ) /* encrypted */ - ROM_LOAD( "epr-.109", 0x4000, 0x4000, CRC(b9e6775c) SHA1(f39e815c3c034015125b96de34a2a225b81392b5) ) /* encrypted */ - ROM_LOAD( "epr-6552.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) /* epr-7151.96 */ + ROM_LOAD( "epr-6594a.116", 0x0000, 0x4000, CRC(a5d0c9d0) SHA1(b60caccab8269f40d4f6e7a50f3aa0d4901c1e57) ) /* encrypted */ + ROM_LOAD( "epr-6595a.109", 0x4000, 0x4000, CRC(b9e6775c) SHA1(f39e815c3c034015125b96de34a2a225b81392b5) ) /* encrypted */ + ROM_LOAD( "epr-6596a.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) /* == epr-6552.96 */ + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) + + ROM_REGION( 0xc000, "tiles", 0 ) + ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) + ROM_LOAD( "epr-6592.61", 0x2000, 0x2000, CRC(7804db86) SHA1(8229781b8296d3ffdfa2f0901e2eed297cc3e160) ) + ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) + ROM_LOAD( "epr-6590.63", 0x6000, 0x2000, CRC(bf858cad) SHA1(1c18c4aa4b9a59f3c06aa459eab6bdd1b298d848) ) + ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) + ROM_LOAD( "epr-6588.65", 0xa000, 0x2000, CRC(dc931dbb) SHA1(4729b27843f226ba5861c3106f8418db70e7c47d) ) + + ROM_REGION( 0x10000, "sprites", 0 ) + ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) + ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) + ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) + ROM_LOAD( "epr-6549a.05", 0xc000, 0x4000, CRC(7c51488c) SHA1(adc835d86e8b51ac47b8619655b3cc2c01aa8c7a) ) // note 'a' revision + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END + +ROM_START( seganinju ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "epr-7149.116", 0x0000, 0x4000, CRC(cd9fade7) SHA1(958ef5c449df6ef5346b8634cb34a646950f706e) ) + ROM_LOAD( "epr-7150.109", 0x4000, 0x4000, CRC(c36351e2) SHA1(17734d3f410feb4cad617d1931b3356192b69ac0) ) + ROM_LOAD( "epr-7151.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) /* == epr-6552.96 */ ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) @@ -2980,11 +3007,11 @@ ROM_START( seganinj ) ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) ROM_END -ROM_START( seganinju ) +ROM_START( seganinja ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "epr-7149.116", 0x0000, 0x4000, CRC(cd9fade7) SHA1(958ef5c449df6ef5346b8634cb34a646950f706e) ) - ROM_LOAD( "epr-7150.109", 0x4000, 0x4000, CRC(c36351e2) SHA1(17734d3f410feb4cad617d1931b3356192b69ac0) ) - ROM_LOAD( "epr-6552.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) /* epr-7151.96 */ + ROM_LOAD( "epr-6879.116", 0x0000, 0x4000, CRC(cae7e51f) SHA1(de6aec8e83cfbe71ed2c52b8f5692aff5ef596a7) ) + ROM_LOAD( "epr-6880.109", 0x4000, 0x4000, CRC(7af85e01) SHA1(57d2a8662efc878ae132cd66de8d46d506ddd6e5) ) + ROM_LOAD( "epr-6881.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) /* == epr-6552.96 */ ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) @@ -3013,7 +3040,7 @@ ROM_START( nprinces ) ROM_LOAD( "epr-6613.130", 0x2000, 0x2000, CRC(18281f27) SHA1(3fcf2fbd1fc13eda678b77c58c53aa881882286c) ) /* encrypted */ ROM_LOAD( "epr-6614.131", 0x4000, 0x2000, CRC(69fc3d73) SHA1(287e6b252ae3cd23812b56afe23d4f239f3a76d5) ) /* encrypted */ ROM_LOAD( "epr-6615.132", 0x6000, 0x2000, CRC(1d0374c8) SHA1(6d818470e294c03b51ec6db8a285d7b71ab2b61f) ) /* encrypted */ - ROM_LOAD( "epr-6577.133", 0x8000, 0x2000, CRC(73616e03) SHA1(429615ee1e041d3e14fc557ec39c380fea07de71) ) /* epr-6616.133 */ + ROM_LOAD( "epr-6616.133", 0x8000, 0x2000, CRC(73616e03) SHA1(429615ee1e041d3e14fc557ec39c380fea07de71) ) ROM_LOAD( "epr-6617.134", 0xa000, 0x2000, CRC(20b6f895) SHA1(9c9cb3b0c33c4da2850a5756b63c3886634ec544) ) ROM_REGION( 0x10000, "soundcpu", 0 ) @@ -4339,6 +4366,66 @@ ROM_START( wbmljo ) ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) ROM_END + +ROM_START( wbmld ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "decrypted_ep11031a.90", 0x00000, 0x8000, CRC(aba42eb7) SHA1(d2bb16a52404ba867930140e71f981cfa225dd21) ) + ROM_LOAD( "decrypted_epr11032.91", 0x10000, 0x8000, CRC(1b158845) SHA1(26360f4bc2884746fbcc5fd6dc21fd848a3d2157) ) + ROM_LOAD( "decrypted_epr11033.92", 0x18000, 0x8000, CRC(39e07286) SHA1(70192f03e52dd34c9fe5698a5ec1c24d3c58543c) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) + + ROM_REGION( 0x18000, "tiles", 0 ) + ROM_LOAD( "epr11034.4", 0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) ) + ROM_LOAD( "epr11035.5", 0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) ) + ROM_LOAD( "epr11036.6", 0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) ) + + ROM_REGION( 0x20000, "sprites", 0 ) + ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) + ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) + ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) + ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) + + ROM_REGION( 0x0300, "palette", 0 ) + ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) + ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) + ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END + +ROM_START( wbmljod ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "decrypted_epr11031.90", 0x00000, 0x8000, CRC(940b35bf) SHA1(b0e3b494d17cfad3b4bb1de996931ee813e91f92) ) + ROM_LOAD( "decrypted_epr11032.91", 0x10000, 0x8000, CRC(1b158845) SHA1(26360f4bc2884746fbcc5fd6dc21fd848a3d2157) ) + ROM_LOAD( "decrypted_epr11033.92", 0x18000, 0x8000, CRC(39e07286) SHA1(70192f03e52dd34c9fe5698a5ec1c24d3c58543c) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) + + ROM_REGION( 0x18000, "tiles", 0 ) + ROM_LOAD( "epr11034.4", 0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) ) + ROM_LOAD( "epr11035.5", 0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) ) + ROM_LOAD( "epr11036.6", 0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) ) + + ROM_REGION( 0x20000, "sprites", 0 ) + ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) + ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) + ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) + ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) + + ROM_REGION( 0x0300, "palette", 0 ) + ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) + ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) + ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END + + ROM_START( wbmljb ) ROM_REGION( 0x40000, "maincpu", 0 ) ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) ) /* Unencrypted opcodes */ @@ -4482,8 +4569,8 @@ ROM_START( wbmlvc ) ROM_REGION( 0x18000, "tiles", 0 ) ROM_LOAD( "vc.ic4", 0x00000, 0x8000, CRC(820bee59) SHA1(47afff58387eb67a8b0849d74023bd2c176a45e9) ) - ROM_LOAD( "vc.ic6", 0x08000, 0x8000, CRC(a9a1447e) SHA1(f7e55080c4fd6e1ff9e21a19b2f71dfd512d62c3) ) - ROM_LOAD( "vc.ic5", 0x10000, 0x8000, CRC(359026a0) SHA1(a20c801dbc758f172fcfc505a5083ddb76604243) ) + ROM_LOAD( "vc.ic5", 0x08000, 0x8000, CRC(a9a1447e) SHA1(f7e55080c4fd6e1ff9e21a19b2f71dfd512d62c3) ) + ROM_LOAD( "vc.ic6", 0x10000, 0x8000, CRC(359026a0) SHA1(a20c801dbc758f172fcfc505a5083ddb76604243) ) ROM_REGION( 0x20000, "sprites", 0 ) ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) @@ -4500,6 +4587,34 @@ ROM_START( wbmlvc ) ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) ROM_END +ROM_START( wbmlvcd ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "wbmlvcd.ic90", 0x00000, 0x8000, CRC(f9c04c07) SHA1(736013b01451c38f7ede207f3154c7387e60ac29) ) + ROM_LOAD( "wbmlvcd.ic91", 0x10000, 0x8000, CRC(87167a57) SHA1(853e029e2875a2250471f3f405c906c9b5a4829d) ) + ROM_LOAD( "wbmlvcd.ic92", 0x18000, 0x8000, CRC(ffb69e82) SHA1(0d48ce1e3cc02a992c495a92fec4e2d03fc27193) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) + + ROM_REGION( 0x18000, "tiles", 0 ) + ROM_LOAD( "vc.ic4", 0x00000, 0x8000, CRC(820bee59) SHA1(47afff58387eb67a8b0849d74023bd2c176a45e9) ) + ROM_LOAD( "vc.ic5", 0x08000, 0x8000, CRC(a9a1447e) SHA1(f7e55080c4fd6e1ff9e21a19b2f71dfd512d62c3) ) + ROM_LOAD( "vc.ic6", 0x10000, 0x8000, CRC(359026a0) SHA1(a20c801dbc758f172fcfc505a5083ddb76604243) ) + + ROM_REGION( 0x20000, "sprites", 0 ) + ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) + ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) + ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) + ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) + + ROM_REGION( 0x0300, "palette", 0 ) + ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) + ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) + ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END ROM_START( dakkochn ) ROM_REGION( 0x20000, "maincpu", 0 ) @@ -4838,7 +4953,7 @@ DRIVER_INIT_MEMBER(system1_state,bank0c) m_banked_decrypted_opcodes = nullptr; } -DRIVER_INIT_MEMBER(system1_state,regulus) +DRIVER_INIT_MEMBER(system1_state,sega315_5033) { static const UINT8 convtable[32][4] = { @@ -4866,7 +4981,7 @@ DRIVER_INIT_MEMBER(system1_state,regulus) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,mrviking) +DRIVER_INIT_MEMBER(system1_state,sega315_5041) { static const UINT8 convtable[32][4] = { @@ -4894,7 +5009,7 @@ DRIVER_INIT_MEMBER(system1_state,mrviking) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,swat) +DRIVER_INIT_MEMBER(system1_state,sega315_5048) { static const UINT8 convtable[32][4] = { @@ -4922,7 +5037,7 @@ DRIVER_INIT_MEMBER(system1_state,swat) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,flicky) +DRIVER_INIT_MEMBER(system1_state,sega315_5051) { static const UINT8 convtable[32][4] = { @@ -4950,7 +5065,7 @@ DRIVER_INIT_MEMBER(system1_state,flicky) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,wmatch) +DRIVER_INIT_MEMBER(system1_state,sega315_5064) { static const UINT8 convtable[32][4] = { @@ -4978,7 +5093,7 @@ DRIVER_INIT_MEMBER(system1_state,wmatch) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,bullfgtj) +DRIVER_INIT_MEMBER(system1_state,sega315_5065) { static const UINT8 convtable[32][4] = { @@ -5006,7 +5121,7 @@ DRIVER_INIT_MEMBER(system1_state,bullfgtj) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,spatter) +DRIVER_INIT_MEMBER(system1_state,sega315_spat) { static const UINT8 convtable[32][4] = { @@ -5034,7 +5149,7 @@ DRIVER_INIT_MEMBER(system1_state,spatter) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,spattera) +DRIVER_INIT_MEMBER(system1_state,sega315_5099) { static const UINT8 convtable[32][4] = { @@ -5062,7 +5177,7 @@ DRIVER_INIT_MEMBER(system1_state,spattera) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,pitfall2) +DRIVER_INIT_MEMBER(system1_state,sega315_5093) { static const UINT8 convtable[32][4] = { @@ -5090,7 +5205,7 @@ DRIVER_INIT_MEMBER(system1_state,pitfall2) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,nprinces) +DRIVER_INIT_MEMBER(system1_state,sega315_5098) // also 315-5030 ? { static const UINT8 convtable[32][4] = { @@ -5118,7 +5233,7 @@ DRIVER_INIT_MEMBER(system1_state,nprinces) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,seganinj) +DRIVER_INIT_MEMBER(system1_state,sega315_5102) { static const UINT8 convtable[32][4] = { @@ -5146,7 +5261,38 @@ DRIVER_INIT_MEMBER(system1_state,seganinj) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,imsorry) + +// THIS TABLE IS WRONG +DRIVER_INIT_MEMBER(system1_state,sega315_5133) +{ + static const UINT8 convtable[32][4] = + { + /* opcode data address */ + /* A B C D A B C D */ + { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x08,0x80,0x00 }, /* ...0...0...0...0 */ + { 0x28,0xa8,0x08,0x88 }, { 0xa0,0xa8,0x80,0x88 }, /* ...0...0...0...1 */ + { 0xa8,0xa0,0x28,0x20 }, { 0xa8,0xa0,0x28,0x20 }, /* ...0...0...1...0 */ + { 0x28,0xa8,0x08,0x88 }, { 0xa0,0xa8,0x80,0x88 }, /* ...0...0...1...1 */ + { 0x28,0x08,0xa8,0x88 }, { 0x28,0x08,0xa8,0x88 }, /* ...0...1...0...0 */ + { 0x28,0xa8,0x08,0x88 }, { 0x88,0x08,0x80,0x00 }, /* ...0...1...0...1 */ + { 0x28,0x08,0xa8,0x88 }, { 0x28,0x08,0xa8,0x88 }, /* ...0...1...1...0 */ + { 0x28,0xa8,0x08,0x88 }, { 0xa8,0xa0,0x28,0x20 }, /* ...0...1...1...1 */ + { 0x88,0x08,0x80,0x00 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...0 */ + { 0xa0,0xa8,0x80,0x88 }, { 0x28,0xa8,0x08,0x88 }, /* ...1...0...0...1 */ + { 0xa8,0xa0,0x28,0x20 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...1...0 */ + { 0xa8,0xa0,0x28,0x20 }, { 0x28,0xa8,0x08,0x88 }, /* ...1...0...1...1 */ + { 0x28,0x08,0xa8,0x88 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...1...0...0 */ + { 0x28,0x08,0xa8,0x88 }, { 0x28,0x08,0xa8,0x88 }, /* ...1...1...0...1 */ + { 0x88,0xa8,0x80,0xa0 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...1...1...0 */ + { 0xa8,0xa0,0x28,0x20 }, { 0x28,0x08,0xa8,0x88 } /* ...1...1...1...1 */ + }; + + DRIVER_INIT_CALL(bank00); + sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); +} + + +DRIVER_INIT_MEMBER(system1_state,sega315_5110) { static const UINT8 convtable[32][4] = { @@ -5174,7 +5320,7 @@ DRIVER_INIT_MEMBER(system1_state,imsorry) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,teddybb) +DRIVER_INIT_MEMBER(system1_state,sega315_5155) { static const UINT8 convtable[32][4] = { @@ -5202,7 +5348,7 @@ DRIVER_INIT_MEMBER(system1_state,teddybb) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,myheroj) +DRIVER_INIT_MEMBER(system1_state,sega315_5132) { static const UINT8 convtable[32][4] = { @@ -5230,300 +5376,7 @@ DRIVER_INIT_MEMBER(system1_state,myheroj) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } -DRIVER_INIT_MEMBER(system1_state,4dwarrio) -{ - // 315-5162 - static const UINT8 xor_table[128] = - { - 0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, - 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, - 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, - 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, - 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, - 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, - 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, - 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, - 0x00, - }; - - static const int swap_table[128] = - { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 12, - }; - - DRIVER_INIT_CALL(bank00); - sega_decode_2(m_maincpu_region->base(), m_decrypted_opcodes, xor_table, swap_table); -} - -DRIVER_INIT_MEMBER(system1_state,wboy) -{ - // 315-5177 - static const UINT8 xor_table[128] = - { - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14, - - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14, - }; - - static const int swap_table[128] = - { - 0,0,0,0, - 1,1,1,1,1, - 2,2,2,2,2, - 3,3,3,3, - 4,4,4,4,4, - 5,5,5,5,5, - 6,6,6,6,6, - 7,7,7,7,7, - 8,8,8,8, - 9,9,9,9,9, - 10,10,10,10,10, - 11,11,11,11,11, - 12,12,12,12,12, - 13,13, - - 8,8,8,8, - 9,9,9,9,9, - 10,10,10,10,10, - 11,11,11,11, - 12,12,12,12,12, - 13,13,13,13,13, - 14,14,14,14,14, - 15,15,15,15,15, - 16,16,16,16, - 17,17,17,17,17, - 18,18,18,18,18, - 19,19,19,19,19, - 20,20,20,20,20, - 21,21, - }; - - DRIVER_INIT_CALL(bank00); - sega_decode_2(m_maincpu_region->base(), m_decrypted_opcodes, xor_table, swap_table); -} - -DRIVER_INIT_MEMBER(system1_state,wboy2) -{ - // 315-5178 - static const UINT8 xor_table[128] = - { - 0x00,0x55,0x45,0x05,0x11,0x41,0x01,0x14,0x44,0x50,0x10, - 0x00,0x55,0x15,0x05,0x51,0x41,0x01,0x14,0x44,0x04,0x10, - 0x40,0x55,0x15,0x05,0x51,0x11, - 0x01,0x54,0x44,0x04,0x10,0x40,0x00,0x15,0x45,0x51,0x11, - 0x01,0x54,0x14,0x04,0x50,0x40,0x00,0x15,0x45,0x05,0x11, - 0x41,0x54,0x14,0x04,0x50,0x10, - 0x00,0x55,0x45,0x05,0x11,0x41,0x01,0x14, - - 0x00,0x55,0x45,0x05,0x11,0x41,0x01,0x14,0x44,0x50,0x10, - 0x00,0x55,0x15,0x05,0x51,0x41,0x01,0x14,0x44,0x04,0x10, - 0x40,0x55,0x15,0x05,0x51,0x11, - 0x01,0x54,0x44,0x04,0x10,0x40,0x00,0x15,0x45,0x51,0x11, - 0x01,0x54,0x14,0x04,0x50,0x40,0x00,0x15,0x45,0x05,0x11, - 0x41,0x54,0x14,0x04,0x50,0x10, - 0x00,0x55,0x45,0x05,0x11,0x41,0x01,0x14, - }; - - static const int swap_table[128] = - { - 2, - 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7, - 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, - 5, 7, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, - 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, - 8, - 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, - 6, 0, 2, 4, 6, 0, 2, - - 10, - 11,13,15, 9,11,13,15, 9,11,13,15, - 8,10,12,14, 8,10,12,14, 8,10,12, - 13,15, 9,11,13,15, 9,11,13,15, 9,11, - 12,14, 8,10,12,14, 8,10,12,14, - 16, - 9,11,13,15, 9,11,13,15, 9,11,13, - 14, 8,10,12,14, 8,10, - }; - - DRIVER_INIT_CALL(bank00); - sega_decode_2(m_maincpu_region->base(), m_decrypted_opcodes, xor_table, swap_table); -} - -DRIVER_INIT_MEMBER(system1_state,wboyo) -{ - static const UINT8 convtable[32][4] = - { - /* opcode data address */ - /* A B C D A B C D */ - { 0x88,0xa8,0x80,0xa0 }, { 0xa0,0x80,0xa8,0x88 }, /* ...0...0...0...0 */ - { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x80,0x08,0x00 }, /* ...0...0...0...1 */ - { 0xa0,0x80,0xa8,0x88 }, { 0x88,0xa8,0x80,0xa0 }, /* ...0...0...1...0 */ - { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x80,0x08,0x00 }, /* ...0...0...1...1 */ - { 0xa0,0x80,0xa8,0x88 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...0...0 */ - { 0x88,0x80,0x08,0x00 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...0...1 */ - { 0xa0,0x80,0xa8,0x88 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...1...0 */ - { 0x88,0x80,0x08,0x00 }, { 0x28,0x08,0xa8,0x88 }, /* ...0...1...1...1 */ - { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...0 */ - { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...1 */ - { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...1...0 */ - { 0x88,0xa8,0x80,0xa0 }, { 0x28,0x08,0xa8,0x88 }, /* ...1...0...1...1 */ - { 0x28,0xa8,0x08,0x88 }, { 0xa0,0x20,0xa8,0x28 }, /* ...1...1...0...0 */ - { 0xa0,0x20,0xa8,0x28 }, { 0x28,0xa8,0x08,0x88 }, /* ...1...1...0...1 */ - { 0x28,0xa8,0x08,0x88 }, { 0xa0,0x20,0xa8,0x28 }, /* ...1...1...1...0 */ - { 0x28,0x08,0xa8,0x88 }, { 0x28,0xa8,0x08,0x88 } /* ...1...1...1...1 */ - }; - - DRIVER_INIT_CALL(bank00); - sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); -} - -DRIVER_INIT_MEMBER(system1_state,blockgal) -{ - DRIVER_INIT_CALL(bank00); - mc8123_decode(m_maincpu_region->base(), m_decrypted_opcodes, memregion("key")->base(), 0x8000); -} - -DRIVER_INIT_MEMBER(system1_state,hvymetal) -{ - static const UINT8 convtable[32][4] = - { - /* opcode data address */ - /* A B C D A B C D */ - { 0x88,0xa8,0x80,0xa0 }, { 0xa0,0x80,0xa8,0x88 }, /* ...0...0...0...0 */ - { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x80,0x08,0x00 }, /* ...0...0...0...1 */ - { 0xa0,0x80,0xa8,0x88 }, { 0x88,0xa8,0x80,0xa0 }, /* ...0...0...1...0 */ - { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x80,0x08,0x00 }, /* ...0...0...1...1 */ - { 0xa0,0x80,0xa8,0x88 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...0...0 */ - { 0x88,0x80,0x08,0x00 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...0...1 */ - { 0xa0,0x80,0xa8,0x88 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...1...0 */ - { 0x88,0x80,0x08,0x00 }, { 0x28,0x08,0xa8,0x88 }, /* ...0...1...1...1 */ - { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...0 */ - { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...1 */ - { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...1...0 */ - { 0x88,0xa8,0x80,0xa0 }, { 0x28,0x08,0xa8,0x88 }, /* ...1...0...1...1 */ - { 0x28,0xa8,0x08,0x88 }, { 0xa0,0x20,0xa8,0x28 }, /* ...1...1...0...0 */ - { 0xa0,0x20,0xa8,0x28 }, { 0x28,0xa8,0x08,0x88 }, /* ...1...1...0...1 */ - { 0x28,0xa8,0x08,0x88 }, { 0xa0,0x20,0xa8,0x28 }, /* ...1...1...1...0 */ - { 0x28,0x08,0xa8,0x88 }, { 0x28,0xa8,0x08,0x88 } /* ...1...1...1...1 */ - }; - - DRIVER_INIT_CALL(bank44); - sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); -} - -DRIVER_INIT_MEMBER(system1_state,gardia) -{ - // 317-0006 - DRIVER_INIT_CALL(bank44); - sega_decode_317(m_maincpu_region->base(), m_decrypted_opcodes, 2); -} - -DRIVER_INIT_MEMBER(system1_state,gardiab) -{ - // 317-0007 - DRIVER_INIT_CALL(bank44); - sega_decode_317(m_maincpu_region->base(), m_decrypted_opcodes, 3); -} - -DRIVER_INIT_MEMBER(system1_state,wbml) -{ - DRIVER_INIT_CALL(bank0c); - m_banked_decrypted_opcodes = std::make_unique(m_maincpu_region->bytes()); - mc8123_decode(m_maincpu_region->base(), m_banked_decrypted_opcodes.get(), memregion("key")->base(), m_maincpu_region->bytes()); -} - -DRIVER_INIT_MEMBER(system1_state,ufosensi) -{ - DRIVER_INIT_CALL(bank0c); - m_banked_decrypted_opcodes = std::make_unique(m_maincpu_region->bytes()); - mc8123_decode(m_maincpu_region->base(), m_banked_decrypted_opcodes.get(), memregion("key")->base(), m_maincpu_region->bytes()); -} - -DRIVER_INIT_MEMBER(system1_state,wboysys2) -{ - // 315-5177 - static const UINT8 xor_table[128] = - { - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14, - - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, - 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, - 0x05,0x55,0x50,0x14, - }; - - static const int swap_table[128] = - { - 0,0,0,0, - 1,1,1,1,1, - 2,2,2,2,2, - 3,3,3,3, - 4,4,4,4,4, - 5,5,5,5,5, - 6,6,6,6,6, - 7,7,7,7,7, - 8,8,8,8, - 9,9,9,9,9, - 10,10,10,10,10, - 11,11,11,11,11, - 12,12,12,12,12, - 13,13, - - 8,8,8,8, - 9,9,9,9,9, - 10,10,10,10,10, - 11,11,11,11, - 12,12,12,12,12, - 13,13,13,13,13, - 14,14,14,14,14, - 15,15,15,15,15, - 16,16,16,16, - 17,17,17,17,17, - 18,18,18,18,18, - 19,19,19,19,19, - 20,20,20,20,20, - 21,21, - }; - - DRIVER_INIT_CALL(bank0c); - sega_decode_2(m_maincpu_region->base(), m_decrypted_opcodes, xor_table, swap_table); -} - - - -DRIVER_INIT_MEMBER(system1_state,dakkochn) -{ - m_videomode_custom = &system1_state::dakkochn_custom_w; - m_banked_decrypted_opcodes = std::make_unique(m_maincpu_region->bytes()); - mc8123_decode(m_maincpu_region->base(), m_banked_decrypted_opcodes.get(), memregion("key")->base(), m_maincpu_region->bytes()); -} - - +// todo, collapse with above (this is sega315_5132 with an extra layer, probably bootleg) DRIVER_INIT_MEMBER(system1_state,myherok) { static const UINT8 convtable[32][4] = @@ -5593,6 +5446,304 @@ DRIVER_INIT_MEMBER(system1_state,myherok) sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); } +DRIVER_INIT_MEMBER(system1_state,sega315_5162) +{ + // 315-5162 + static const UINT8 xor_table[128] = + { + 0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, + 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, + 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, + 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, + 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, + 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, + 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, + 0x00,0x40,0x10,0x50,0x04,0x44,0x14,0x54,0x01,0x41,0x11,0x51,0x05,0x45,0x15,0x55, + 0x00, + }; + + static const int swap_table[128] = + { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 12, + }; + + DRIVER_INIT_CALL(bank00); + sega_decode_2(m_maincpu_region->base(), m_decrypted_opcodes, xor_table, swap_table); +} + +DRIVER_INIT_MEMBER(system1_state,sega315_5177) +{ + // 315-5177 + static const UINT8 xor_table[128] = + { + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14, + + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14, + }; + + static const int swap_table[128] = + { + 0,0,0,0, + 1,1,1,1,1, + 2,2,2,2,2, + 3,3,3,3, + 4,4,4,4,4, + 5,5,5,5,5, + 6,6,6,6,6, + 7,7,7,7,7, + 8,8,8,8, + 9,9,9,9,9, + 10,10,10,10,10, + 11,11,11,11,11, + 12,12,12,12,12, + 13,13, + + 8,8,8,8, + 9,9,9,9,9, + 10,10,10,10,10, + 11,11,11,11, + 12,12,12,12,12, + 13,13,13,13,13, + 14,14,14,14,14, + 15,15,15,15,15, + 16,16,16,16, + 17,17,17,17,17, + 18,18,18,18,18, + 19,19,19,19,19, + 20,20,20,20,20, + 21,21, + }; + + DRIVER_INIT_CALL(bank00); + sega_decode_2(m_maincpu_region->base(), m_decrypted_opcodes, xor_table, swap_table); +} + +// todo, refactor into above +DRIVER_INIT_MEMBER(system1_state,sega315_5177_s2) +{ + // 315-5177 + static const UINT8 xor_table[128] = + { + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14, + + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14,0x41,0x45,0x00,0x50,0x54,0x11,0x45,0x40, + 0x04,0x54,0x51,0x15,0x40,0x44,0x01,0x51,0x55,0x10,0x44,0x41, + 0x05,0x55,0x50,0x14, + }; + + static const int swap_table[128] = + { + 0,0,0,0, + 1,1,1,1,1, + 2,2,2,2,2, + 3,3,3,3, + 4,4,4,4,4, + 5,5,5,5,5, + 6,6,6,6,6, + 7,7,7,7,7, + 8,8,8,8, + 9,9,9,9,9, + 10,10,10,10,10, + 11,11,11,11,11, + 12,12,12,12,12, + 13,13, + + 8,8,8,8, + 9,9,9,9,9, + 10,10,10,10,10, + 11,11,11,11, + 12,12,12,12,12, + 13,13,13,13,13, + 14,14,14,14,14, + 15,15,15,15,15, + 16,16,16,16, + 17,17,17,17,17, + 18,18,18,18,18, + 19,19,19,19,19, + 20,20,20,20,20, + 21,21, + }; + + DRIVER_INIT_CALL(bank0c); + sega_decode_2(m_maincpu_region->base(), m_decrypted_opcodes, xor_table, swap_table); +} + + + +DRIVER_INIT_MEMBER(system1_state,sega315_5178) +{ + // 315-5178 + static const UINT8 xor_table[128] = + { + 0x00,0x55,0x45,0x05,0x11,0x41,0x01,0x14,0x44,0x50,0x10, + 0x00,0x55,0x15,0x05,0x51,0x41,0x01,0x14,0x44,0x04,0x10, + 0x40,0x55,0x15,0x05,0x51,0x11, + 0x01,0x54,0x44,0x04,0x10,0x40,0x00,0x15,0x45,0x51,0x11, + 0x01,0x54,0x14,0x04,0x50,0x40,0x00,0x15,0x45,0x05,0x11, + 0x41,0x54,0x14,0x04,0x50,0x10, + 0x00,0x55,0x45,0x05,0x11,0x41,0x01,0x14, + + 0x00,0x55,0x45,0x05,0x11,0x41,0x01,0x14,0x44,0x50,0x10, + 0x00,0x55,0x15,0x05,0x51,0x41,0x01,0x14,0x44,0x04,0x10, + 0x40,0x55,0x15,0x05,0x51,0x11, + 0x01,0x54,0x44,0x04,0x10,0x40,0x00,0x15,0x45,0x51,0x11, + 0x01,0x54,0x14,0x04,0x50,0x40,0x00,0x15,0x45,0x05,0x11, + 0x41,0x54,0x14,0x04,0x50,0x10, + 0x00,0x55,0x45,0x05,0x11,0x41,0x01,0x14, + }; + + static const int swap_table[128] = + { + 2, + 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7, + 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, + 5, 7, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, + 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, + 8, + 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, + 6, 0, 2, 4, 6, 0, 2, + + 10, + 11,13,15, 9,11,13,15, 9,11,13,15, + 8,10,12,14, 8,10,12,14, 8,10,12, + 13,15, 9,11,13,15, 9,11,13,15, 9,11, + 12,14, 8,10,12,14, 8,10,12,14, + 16, + 9,11,13,15, 9,11,13,15, 9,11,13, + 14, 8,10,12,14, 8,10, + }; + + DRIVER_INIT_CALL(bank00); + sega_decode_2(m_maincpu_region->base(), m_decrypted_opcodes, xor_table, swap_table); +} + +DRIVER_INIT_MEMBER(system1_state,sega315_5135) +{ + static const UINT8 convtable[32][4] = + { + /* opcode data address */ + /* A B C D A B C D */ + { 0x88,0xa8,0x80,0xa0 }, { 0xa0,0x80,0xa8,0x88 }, /* ...0...0...0...0 */ + { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x80,0x08,0x00 }, /* ...0...0...0...1 */ + { 0xa0,0x80,0xa8,0x88 }, { 0x88,0xa8,0x80,0xa0 }, /* ...0...0...1...0 */ + { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x80,0x08,0x00 }, /* ...0...0...1...1 */ + { 0xa0,0x80,0xa8,0x88 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...0...0 */ + { 0x88,0x80,0x08,0x00 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...0...1 */ + { 0xa0,0x80,0xa8,0x88 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...1...0 */ + { 0x88,0x80,0x08,0x00 }, { 0x28,0x08,0xa8,0x88 }, /* ...0...1...1...1 */ + { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...0 */ + { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...1 */ + { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...1...0 */ + { 0x88,0xa8,0x80,0xa0 }, { 0x28,0x08,0xa8,0x88 }, /* ...1...0...1...1 */ + { 0x28,0xa8,0x08,0x88 }, { 0xa0,0x20,0xa8,0x28 }, /* ...1...1...0...0 */ + { 0xa0,0x20,0xa8,0x28 }, { 0x28,0xa8,0x08,0x88 }, /* ...1...1...0...1 */ + { 0x28,0xa8,0x08,0x88 }, { 0xa0,0x20,0xa8,0x28 }, /* ...1...1...1...0 */ + { 0x28,0x08,0xa8,0x88 }, { 0x28,0xa8,0x08,0x88 } /* ...1...1...1...1 */ + }; + + DRIVER_INIT_CALL(bank00); + sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); +} + +DRIVER_INIT_MEMBER(system1_state,blockgal) +{ + DRIVER_INIT_CALL(bank00); + mc8123_decode(m_maincpu_region->base(), m_decrypted_opcodes, memregion("key")->base(), 0x8000); +} + +DRIVER_INIT_MEMBER(system1_state,sega315_3135) +{ + static const UINT8 convtable[32][4] = + { + /* opcode data address */ + /* A B C D A B C D */ + { 0x88,0xa8,0x80,0xa0 }, { 0xa0,0x80,0xa8,0x88 }, /* ...0...0...0...0 */ + { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x80,0x08,0x00 }, /* ...0...0...0...1 */ + { 0xa0,0x80,0xa8,0x88 }, { 0x88,0xa8,0x80,0xa0 }, /* ...0...0...1...0 */ + { 0x88,0xa8,0x80,0xa0 }, { 0x88,0x80,0x08,0x00 }, /* ...0...0...1...1 */ + { 0xa0,0x80,0xa8,0x88 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...0...0 */ + { 0x88,0x80,0x08,0x00 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...0...1 */ + { 0xa0,0x80,0xa8,0x88 }, { 0x88,0x80,0x08,0x00 }, /* ...0...1...1...0 */ + { 0x88,0x80,0x08,0x00 }, { 0x28,0x08,0xa8,0x88 }, /* ...0...1...1...1 */ + { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...0 */ + { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...0...1 */ + { 0xa0,0x20,0xa8,0x28 }, { 0x88,0xa8,0x80,0xa0 }, /* ...1...0...1...0 */ + { 0x88,0xa8,0x80,0xa0 }, { 0x28,0x08,0xa8,0x88 }, /* ...1...0...1...1 */ + { 0x28,0xa8,0x08,0x88 }, { 0xa0,0x20,0xa8,0x28 }, /* ...1...1...0...0 */ + { 0xa0,0x20,0xa8,0x28 }, { 0x28,0xa8,0x08,0x88 }, /* ...1...1...0...1 */ + { 0x28,0xa8,0x08,0x88 }, { 0xa0,0x20,0xa8,0x28 }, /* ...1...1...1...0 */ + { 0x28,0x08,0xa8,0x88 }, { 0x28,0xa8,0x08,0x88 } /* ...1...1...1...1 */ + }; + + DRIVER_INIT_CALL(bank44); + sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable); +} + +DRIVER_INIT_MEMBER(system1_state,gardia) +{ + // 317-0006 + DRIVER_INIT_CALL(bank44); + sega_decode_317(m_maincpu_region->base(), m_decrypted_opcodes, 2); +} + +DRIVER_INIT_MEMBER(system1_state,gardiab) +{ + // 317-0007 + DRIVER_INIT_CALL(bank44); + sega_decode_317(m_maincpu_region->base(), m_decrypted_opcodes, 3); +} + +DRIVER_INIT_MEMBER(system1_state,wbml) +{ + DRIVER_INIT_CALL(bank0c); + m_banked_decrypted_opcodes = std::make_unique(m_maincpu_region->bytes()); + mc8123_decode(m_maincpu_region->base(), m_banked_decrypted_opcodes.get(), memregion("key")->base(), m_maincpu_region->bytes()); +} + +DRIVER_INIT_MEMBER(system1_state,ufosensi) +{ + DRIVER_INIT_CALL(bank0c); + m_banked_decrypted_opcodes = std::make_unique(m_maincpu_region->bytes()); + mc8123_decode(m_maincpu_region->base(), m_banked_decrypted_opcodes.get(), memregion("key")->base(), m_maincpu_region->bytes()); +} + + + +DRIVER_INIT_MEMBER(system1_state,dakkochn) +{ + m_videomode_custom = &system1_state::dakkochn_custom_w; + m_banked_decrypted_opcodes = std::make_unique(m_maincpu_region->bytes()); + mc8123_decode(m_maincpu_region->base(), m_banked_decrypted_opcodes.get(), memregion("key")->base(), m_maincpu_region->bytes()); +} + + + READ8_MEMBER(system1_state::nob_start_r) { /* in reality, it's likely some M1-dependent behavior */ @@ -5661,6 +5812,14 @@ DRIVER_INIT_MEMBER(system1_state,bootsys2) m_bank1d->configure_entries(0, 4, m_maincpu_region->base() + 0x30000, 0x4000); } +DRIVER_INIT_MEMBER(system1_state,bootsys2d) +{ + DRIVER_INIT_CALL(bank0c); + m_bank0d->set_base(m_maincpu_region->base()); + m_bank1d->configure_entries(0, 4, m_maincpu_region->base() + 0x10000, 0x4000); +} + + DRIVER_INIT_MEMBER(system1_state,choplift) { UINT8 *mcurom = memregion("mcu")->base(); @@ -5692,86 +5851,90 @@ DRIVER_INIT_MEMBER(system1_state,shtngmst) *************************************/ /* PPI-based System 1 */ -GAME( 1983, starjack, 0, sys1ppis, starjack, system1_state, bank00, ROT270, "Sega", "Star Jacker (Sega)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, starjacks, starjack, sys1ppis, starjacks, system1_state, bank00, ROT270, "Sega (Stern Electronics license)", "Star Jacker (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, upndown, 0, sys1ppix, upndown, system1_state, nprinces, ROT270, "Sega", "Up'n Down (315-5030)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, upndownu, upndown, sys1ppi, upndown, system1_state, bank00, ROT270, "Sega", "Up'n Down (not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, regulus, 0, sys1ppix, regulus, system1_state, regulus, ROT270, "Sega", "Regulus (315-5033, Rev A.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, reguluso, regulus, sys1ppix, reguluso, system1_state, regulus, ROT270, "Sega", "Regulus (315-5033)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, regulusu, regulus, sys1ppi, regulus, system1_state, bank00, ROT270, "Sega", "Regulus (not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, mrviking, 0, sys1ppisx, mrviking, system1_state, mrviking, ROT270, "Sega", "Mister Viking (315-5041)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, mrvikingj, mrviking, sys1ppisx, mrvikingj, system1_state, mrviking, ROT270, "Sega", "Mister Viking (315-5041, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, swat, 0, sys1ppix, swat, system1_state, swat, ROT270, "Coreland / Sega", "SWAT (315-5048)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, flickyo, flicky, sys1ppix, flicky, system1_state, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, flickys1, flicky, sys1ppix, flickys1, system1_state, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, wmatch, 0, sys1ppisx, wmatch, system1_state, wmatch, ROT270, "Sega", "Water Match (315-5064)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, bullfgt, 0, sys1ppix, bullfgt, system1_state, bullfgtj, ROT0, "Coreland / Sega", "Bullfight (315-5065)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nprinces, seganinj, sys1ppix, seganinj, system1_state, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051, 64k Ver. bootleg?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nprincesu, seganinj, sys1ppi, seganinj, system1_state, bank00, ROT0, "Sega", "Ninja Princess (64k Ver. not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboy2, wboy, sys1ppix, wboy, system1_state, wboy2, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, 315-5178)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboy2u, wboy, sys1ppi, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wbdeluxe, wboy, sys1ppi, wbdeluxe, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy Deluxe", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, nob, 0, nobm, nob, system1_state, nob, ROT270, "Coreland / Data East Corporation", "Noboranka (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, nobb, nob, nob, nob, system1_state, nobb, ROT270, "bootleg (Game Electronics)", "Noboranka (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, starjack, 0, sys1ppis, starjack, system1_state, bank00, ROT270, "Sega", "Star Jacker (Sega)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, starjacks, starjack, sys1ppis, starjacks, system1_state, bank00, ROT270, "Sega (Stern Electronics license)", "Star Jacker (Stern Electronics)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, upndown, 0, sys1ppix, upndown, system1_state, sega315_5098, ROT270, "Sega", "Up'n Down (315-5030)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, upndownu, upndown, sys1ppi, upndown, system1_state, bank00, ROT270, "Sega", "Up'n Down (not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, regulus, 0, sys1ppix, regulus, system1_state, sega315_5033, ROT270, "Sega", "Regulus (315-5033, Rev A.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, reguluso, regulus, sys1ppix, reguluso, system1_state, sega315_5033, ROT270, "Sega", "Regulus (315-5033)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, regulusu, regulus, sys1ppi, regulus, system1_state, bank00, ROT270, "Sega", "Regulus (not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, mrviking, 0, sys1ppisx, mrviking, system1_state, sega315_5041, ROT270, "Sega", "Mister Viking (315-5041)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, mrvikingj, mrviking, sys1ppisx, mrvikingj, system1_state, sega315_5041, ROT270, "Sega", "Mister Viking (315-5041, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, swat, 0, sys1ppix, swat, system1_state, sega315_5048, ROT270, "Coreland / Sega", "SWAT (315-5048)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, flickyo, flicky, sys1ppix, flicky, system1_state, sega315_5051, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, flickys1, flicky, sys1ppix, flickys1, system1_state, sega315_5051, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, wmatch, 0, sys1ppisx, wmatch, system1_state, sega315_5064, ROT270, "Sega", "Water Match (315-5064)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, bullfgt, 0, sys1ppix, bullfgt, system1_state, sega315_5065, ROT0, "Coreland / Sega", "Bullfight (315-5065)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nprinces, seganinj, sys1ppix, seganinj, system1_state, sega315_5051, ROT0, "bootleg?", "Ninja Princess (315-5051, 64k Ver. bootleg?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nprincesu, seganinj, sys1ppi, seganinj, system1_state, bank00, ROT0, "Sega", "Ninja Princess (64k Ver. not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboy2, wboy, sys1ppix, wboy, system1_state, sega315_5178, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, 315-5178)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboy2u, wboy, sys1ppi, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wbdeluxe, wboy, sys1ppi, wbdeluxe, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy Deluxe", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, nob, 0, nobm, nob, system1_state, nob, ROT270, "Coreland / Data East Corporation", "Noboranka (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, nobb, nob, nob, nob, system1_state, nobb, ROT270, "bootleg (Game Electronics)", "Noboranka (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) /* PIO-based System 1 */ -GAME( 1984, flicky, 0, sys1piox, flicky, system1_state, flicky, ROT0, "Sega", "Flicky (128k Version, System 2, 315-5051)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, flickys2, flicky, sys1pio, flickys2, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, System 2, not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, thetogyu, bullfgt, sys1piox, bullfgt, system1_state, bullfgtj, ROT0, "Coreland / Sega", "The Togyu (315-5065, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, spatter, 0, sys1piosx, spatter, system1_state, spatter, ROT0, "Sega", "Spatter (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, spattera, spatter, sys1piosx, spatter, system1_state, spattera, ROT0, "Sega", "Spatter (315-5099)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, ssanchan, spatter, sys1piosx, spatter, system1_state, spatter, ROT0, "Sega", "Sanrin San Chan (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pitfall2, 0, sys1piox, pitfall2, system1_state, pitfall2, ROT0, "Sega", "Pitfall II (315-5093)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pitfall2a, pitfall2, sys1piox, pitfall2, system1_state, pitfall2, ROT0, "Sega", "Pitfall II (315-5093, Flicky Conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, pitfall2u, pitfall2, sys1pio, pitfall2u, system1_state, bank00, ROT0, "Sega", "Pitfall II (not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, seganinj, 0, sys1piox, seganinj, system1_state, seganinj, ROT0, "Sega", "Sega Ninja (315-5102)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, seganinju, seganinj, sys1pio, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, ninja, seganinj, sys1piox, seganinj, system1_state, seganinj, ROT0, "Sega", "Ninja (315-5102)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nprinceso, seganinj, sys1piox, seganinj, system1_state, nprinces, ROT0, "Sega", "Ninja Princess (315-5098, 128k Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nprincesb, seganinj, sys1piox, seganinj, system1_state, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, imsorry, 0, sys1piox, imsorry, system1_state, imsorry, ROT0, "Coreland / Sega", "I'm Sorry (315-5110, US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, imsorryj, imsorry, sys1piox, imsorry, system1_state, imsorry, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, teddybb, 0, sys1piox, teddybb, system1_state, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, teddybbo, teddybb, sys1piox, teddybb, system1_state, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, teddybbobl, teddybb, sys1piox, teddybb, system1_state, teddybb, ROT0, "bootleg", "TeddyBoy Blues (Old Ver. bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, myhero, 0, sys1pio, myhero, system1_state, bank00, ROT0, "Coreland / Sega", "My Hero (US, not encrypted)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, sscandal, myhero, sys1piox, myhero, system1_state, myheroj, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, myherobl, myhero, sys1piox, myhero, system1_state, myheroj, ROT0, "bootleg", "My Hero (bootleg, 315-5132 encryption)", MACHINE_SUPPORTS_SAVE ) // cloned 315-5132 encryption? might be a direct copy of an undumped original set -GAME( 1985, myherok, myhero, sys1piox, myhero, system1_state, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, 4dwarrio, 0, sys1piox, 4dwarrio, system1_state, 4dwarrio, ROT0, "Coreland / Sega", "4-D Warriors (315-5162)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, raflesia, 0, sys1piox, raflesia, system1_state, 4dwarrio, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboy, 0, sys1piox, wboy, system1_state, wboy, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5177)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboyo, wboy, sys1piox, wboy, system1_state, wboyo, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5135)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboy3, wboy, sys1piox, wboy3, system1_state, wboyo, ROT0, "Escape (Sega license)", "Wonder Boy (set 3, 315-5135)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboy4, wboy, sys1piox, wboy, system1_state, 4dwarrio, ROT0, "Escape (Sega license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboyu, wboy, sys1pio, wboyu, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (prototype?)", MACHINE_SUPPORTS_SAVE ) // appears to be a very early / unfinished version. -GAME( 1986, wboy5, wboy, sys1piox, wboy3, system1_state, wboyo, ROT0, "bootleg", "Wonder Boy (set 5, bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboyub, wboy, sys1piox, wboy, system1_state, wboyo, ROT0, "bootleg", "Wonder Boy (US bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1987, blockgal, 0, sys1piox, blockgal, system1_state, blockgal, ROT90, "Sega / Vic Tokai","Block Gal (MC-8123B, 317-0029)", MACHINE_SUPPORTS_SAVE) +GAME( 1984, flicky, 0, sys1piox, flicky, system1_state, sega315_5051, ROT0, "Sega", "Flicky (128k Version, System 2, 315-5051)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, flickys2, flicky, sys1pio, flickys2, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, System 2, not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, thetogyu, bullfgt, sys1piox, bullfgt, system1_state, sega315_5065, ROT0, "Coreland / Sega", "The Togyu (315-5065, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, spatter, 0, sys1piosx, spatter, system1_state, sega315_spat, ROT0, "Sega", "Spatter (315-xxxx)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, spattera, spatter, sys1piosx, spatter, system1_state, sega315_5099, ROT0, "Sega", "Spatter (315-5099)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, ssanchan, spatter, sys1piosx, spatter, system1_state, sega315_spat, ROT0, "Sega", "Sanrin San Chan (Japan, 315-xxxx)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pitfall2, 0, sys1piox, pitfall2, system1_state, sega315_5093, ROT0, "Sega", "Pitfall II (315-5093)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pitfall2a, pitfall2, sys1piox, pitfall2, system1_state, sega315_5093, ROT0, "Sega", "Pitfall II (315-5093, Flicky Conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, pitfall2u, pitfall2, sys1pio, pitfall2u, system1_state, bank00, ROT0, "Sega", "Pitfall II (not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, seganinj, 0, sys1piox, seganinj, system1_state, sega315_5102, ROT0, "Sega", "Sega Ninja (315-5102)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, seganinju, seganinj, sys1pio, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, seganinja, seganinj, sys1piox, seganinj, system1_state, sega315_5133, ROT0, "Sega", "Sega Ninja (315-5113)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // needs decrypting +GAME( 1985, ninja, seganinj, sys1piox, seganinj, system1_state, sega315_5102, ROT0, "Sega", "Ninja (315-5102)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nprinceso, seganinj, sys1piox, seganinj, system1_state, sega315_5098, ROT0, "Sega", "Ninja Princess (315-5098, 128k Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nprincesb, seganinj, sys1piox, seganinj, system1_state, sega315_5051, ROT0, "bootleg?", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, imsorry, 0, sys1piox, imsorry, system1_state, sega315_5110, ROT0, "Coreland / Sega", "I'm Sorry (315-5110, US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, imsorryj, imsorry, sys1piox, imsorry, system1_state, sega315_5110, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, teddybb, 0, sys1piox, teddybb, system1_state, sega315_5155, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, teddybbo, teddybb, sys1piox, teddybb, system1_state, sega315_5155, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, teddybbobl, teddybb, sys1piox, teddybb, system1_state, sega315_5155, ROT0, "bootleg", "TeddyBoy Blues (Old Ver. bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, myhero, 0, sys1pio, myhero, system1_state, bank00, ROT0, "Coreland / Sega", "My Hero (US, not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sscandal, myhero, sys1piox, myhero, system1_state, sega315_5132, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, myherobl, myhero, sys1piox, myhero, system1_state, sega315_5132, ROT0, "bootleg", "My Hero (bootleg, 315-5132 encryption)", MACHINE_SUPPORTS_SAVE ) // cloned 315-5132 encryption? might be a direct copy of an undumped original set +GAME( 1985, myherok, myhero, sys1piox, myhero, system1_state, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", MACHINE_SUPPORTS_SAVE ) // possible bootleg, has extra encryption +GAME( 1985, 4dwarrio, 0, sys1piox, 4dwarrio, system1_state, sega315_5162, ROT0, "Coreland / Sega", "4-D Warriors (315-5162)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, raflesia, 0, sys1piox, raflesia, system1_state, sega315_5162, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboy, 0, sys1piox, wboy, system1_state, sega315_5177, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5177)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboyo, wboy, sys1piox, wboy, system1_state, sega315_5135, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5135)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboy3, wboy, sys1piox, wboy3, system1_state, sega315_5135, ROT0, "Escape (Sega license)", "Wonder Boy (set 3, 315-5135)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboy4, wboy, sys1piox, wboy, system1_state, sega315_5162, ROT0, "Escape (Sega license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboyu, wboy, sys1pio, wboyu, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (prototype?)", MACHINE_SUPPORTS_SAVE ) // appears to be a very early / unfinished version. +GAME( 1986, wboy5, wboy, sys1piox, wboy3, system1_state, sega315_5135, ROT0, "bootleg", "Wonder Boy (set 5, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboyub, wboy, sys1piox, wboy, system1_state, sega315_5135, ROT0, "bootleg", "Wonder Boy (US bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1987, blockgal, 0, sys1piox, blockgal, system1_state, blockgal, ROT90, "Sega / Vic Tokai","Block Gal (MC-8123B, 317-0029)", MACHINE_SUPPORTS_SAVE) /* PIO-based System 1 with ROM banking */ -GAME( 1985, hvymetal, 0, sys1piox, hvymetal, system1_state, hvymetal, ROT0, "Sega", "Heavy Metal (315-5135)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, gardia, 0, sys1piox, gardia, system1_state, gardia, ROT270, "Coreland / Sega", "Gardia (317-0006)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE) -GAME( 1986, brain, 0, sys1pio, brain, system1_state, bank44, ROT0, "Coreland / Sega", "Brain", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, hvymetal, 0, sys1piox, hvymetal, system1_state, sega315_3135, ROT0, "Sega", "Heavy Metal (315-5135)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gardia, 0, sys1piox, gardia, system1_state, gardia, ROT270, "Coreland / Sega", "Gardia (317-0006)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE) +GAME( 1986, brain, 0, sys1pio, brain, system1_state, bank44, ROT0, "Coreland / Sega", "Brain", MACHINE_SUPPORTS_SAVE ) /* System 2 */ -GAME( 1985, choplift, 0, sys2rowm, choplift, system1_state, choplift, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (8751 315-5151)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, chopliftu, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (unprotected)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, chopliftbl, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "bootleg", "Choplifter (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, shtngmst, 0, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega", "Shooting Master (8751 315-5159)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1985, shtngmste, shtngmst, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega / EVG", "Shooting Master (EVG, 8751 315-5159a)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, gardiab, gardia, sys2x, gardia, system1_state, gardiab, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, gardiaj, gardia, sys2x, gardia, system1_state, gardia, ROT270, "Coreland / Sega", "Gardia (Japan, 317-0006)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, wboysys2, wboy, sys2x, wboysys2, system1_state, wboysys2, ROT0, "Escape (Sega license)", "Wonder Boy (system 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, tokisens, 0, sys2, tokisens, system1_state, bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbml, 0, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmljo, wbml, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmljb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmlb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg set 1)", MACHINE_SUPPORTS_SAVE) -GAME( 1987, wbmlbg, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg (Galaxy Electronics)", "Wonder Boy in Monster Land (English bootleg set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wbmlbge, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg (Gecas)", "Wonder Boy in Monster Land (English bootleg set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 2009, wbmlvc, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "Sega", "Wonder Boy in Monster Land (English, Virtual Console)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, dakkochn, 0, sys2xb, dakkochn, system1_state, dakkochn, ROT0, "White Board", "DakkoChan House (MC-8123B, 317-5014)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, blockgalb, blockgal, sys2x, blockgal, system1_state, bootleg, ROT90, "bootleg", "Block Gal (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ufosensi, 0, sys2rowxb, ufosensi, system1_state, ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ufosensib, ufosensi, sys2rowxb, ufosensi, system1_state, bootsys2, ROT0, "bootleg", "Ufo Senshi Yohko Chan (bootleg, not encrypted)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, choplift, 0, sys2rowm, choplift, system1_state, choplift, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (8751 315-5151)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, chopliftu, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (unprotected)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, chopliftbl, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "bootleg", "Choplifter (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, shtngmst, 0, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega", "Shooting Master (8751 315-5159)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 1985, shtngmste, shtngmst, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega / EVG", "Shooting Master (EVG, 8751 315-5159a)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gardiab, gardia, sys2x, gardia, system1_state, gardiab, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gardiaj, gardia, sys2x, gardia, system1_state, gardia, ROT270, "Coreland / Sega", "Gardia (Japan, 317-0006)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, wboysys2, wboy, sys2x, wboysys2, system1_state, sega315_5177_s2, ROT0, "Escape (Sega license)", "Wonder Boy (system 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, tokisens, 0, sys2, tokisens, system1_state, bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbml, 0, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmljo, wbml, sys2xb, wbml, system1_state, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmljb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmlb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg set 1)", MACHINE_SUPPORTS_SAVE) +GAME( 1987, wbmlbg, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg (Galaxy Electronics)", "Wonder Boy in Monster Land (English bootleg set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmlbge, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg (Gecas)", "Wonder Boy in Monster Land (English bootleg set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, wbmlvc, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "Sega", "Wonder Boy in Monster Land (English, Virtual Console)", MACHINE_SUPPORTS_SAVE ) +GAME( 2009, wbmlvcd, wbml, sys2xb, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of English, Virtual Console release)", MACHINE_SUPPORTS_SAVE ) // fully decrypted version +GAME( 1987, wbmld, wbml, sys2xb, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, wbmljod, wbml, sys2xb, wbml, system1_state, bootsys2d, ROT0, "bootleg (mpatou)", "Wonder Boy in Monster Land (decrypted bootleg of Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, dakkochn, 0, sys2xb, dakkochn, system1_state, dakkochn, ROT0, "White Board", "DakkoChan House (MC-8123B, 317-5014)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, blockgalb, blockgal, sys2x, blockgal, system1_state, bootleg, ROT90, "bootleg", "Block Gal (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ufosensi, 0, sys2rowxb, ufosensi, system1_state, ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ufosensib, ufosensi, sys2rowxb, ufosensi, system1_state, bootsys2, ROT0, "bootleg", "Ufo Senshi Yohko Chan (bootleg, not encrypted)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h index 8f3cf559276..14a00ebc8da 100644 --- a/src/mame/includes/system1.h +++ b/src/mame/includes/system1.h @@ -83,41 +83,45 @@ public: DECLARE_WRITE8_MEMBER(sound_control_w); DECLARE_DRIVER_INIT(nobb); - DECLARE_DRIVER_INIT(wboy2); - DECLARE_DRIVER_INIT(imsorry); - DECLARE_DRIVER_INIT(pitfall2); + DECLARE_DRIVER_INIT(sega315_5178); + DECLARE_DRIVER_INIT(sega315_5110); + DECLARE_DRIVER_INIT(sega315_5093); DECLARE_DRIVER_INIT(dakkochn); DECLARE_DRIVER_INIT(bootleg); - DECLARE_DRIVER_INIT(wboysys2); + DECLARE_DRIVER_INIT(shtngmst); - DECLARE_DRIVER_INIT(wboyo); - DECLARE_DRIVER_INIT(swat); - DECLARE_DRIVER_INIT(regulus); + DECLARE_DRIVER_INIT(sega315_5135); + DECLARE_DRIVER_INIT(sega315_5048); + DECLARE_DRIVER_INIT(sega315_5033); DECLARE_DRIVER_INIT(bank0c); DECLARE_DRIVER_INIT(blockgal); DECLARE_DRIVER_INIT(nob); - DECLARE_DRIVER_INIT(mrviking); - DECLARE_DRIVER_INIT(teddybb); - DECLARE_DRIVER_INIT(flicky); + DECLARE_DRIVER_INIT(sega315_5041); + DECLARE_DRIVER_INIT(sega315_5155); + DECLARE_DRIVER_INIT(sega315_5051); DECLARE_DRIVER_INIT(bank44); DECLARE_DRIVER_INIT(myherok); - DECLARE_DRIVER_INIT(wmatch); + DECLARE_DRIVER_INIT(sega315_5064); DECLARE_DRIVER_INIT(bank00); - DECLARE_DRIVER_INIT(myheroj); + DECLARE_DRIVER_INIT(sega315_5132); DECLARE_DRIVER_INIT(ufosensi); - DECLARE_DRIVER_INIT(nprinces); + DECLARE_DRIVER_INIT(sega315_5098); DECLARE_DRIVER_INIT(wbml); DECLARE_DRIVER_INIT(bootsys2); - DECLARE_DRIVER_INIT(bullfgtj); - DECLARE_DRIVER_INIT(wboy); - DECLARE_DRIVER_INIT(hvymetal); + DECLARE_DRIVER_INIT(bootsys2d); + DECLARE_DRIVER_INIT(sega315_5065); + DECLARE_DRIVER_INIT(sega315_5177); + DECLARE_DRIVER_INIT(sega315_5177_s2); + DECLARE_DRIVER_INIT(sega315_3135); DECLARE_DRIVER_INIT(gardiab); - DECLARE_DRIVER_INIT(4dwarrio); + DECLARE_DRIVER_INIT(sega315_5162); DECLARE_DRIVER_INIT(choplift); - DECLARE_DRIVER_INIT(seganinj); + DECLARE_DRIVER_INIT(sega315_5102); + DECLARE_DRIVER_INIT(sega315_5133); + DECLARE_DRIVER_INIT(gardia); - DECLARE_DRIVER_INIT(spatter); - DECLARE_DRIVER_INIT(spattera); + DECLARE_DRIVER_INIT(sega315_spat); + DECLARE_DRIVER_INIT(sega315_5099); TILE_GET_INFO_MEMBER(tile_get_info); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 22552b94b27..3e54093afcf 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -33794,6 +33794,7 @@ reguluso // 834-5328?(c) 1983 (S1) regulusu // 834-5328?(c) 1983 (S1) seganinj // 834-5677 (c) 1985 (S1) seganinju // 834-5677 (c) 1985 (S1) +seganinja // shtngmst // 834-5719/5720 (c) 1985 (S2) shtngmste // 834-5719/5720 (c) 1985 (S2) spatter // 834-5583 (c) 1984 (S1) @@ -33820,6 +33821,9 @@ wbmlbge // bootleg (Gecas) wbmljb // (c) 1987 Sega/Westone (S2) wbmljo // (c) 1987 Sega/Westone (S2) wbmlvc // Virtual Console +wbmlvcd // +wbmld // +wbmljod // wboy // 834-5984 (c) 1986 + Escape license (S1) wboy2 // 834-5984 (c) 1986 + Escape license (S1) wboy2u // 834-5984 (c) 1986 + Escape license (S1)