diff options
author | David Haywood <hazemamewip@hotmail.com> | 2018-09-03 22:16:59 +0100 |
---|---|---|
committer | MetalliC <0vetal0@gmail.com> | 2018-09-04 00:16:59 +0300 |
commit | dd58bab60c4b2abd625a4141d434d5c6b5a953c5 (patch) | |
tree | 3a8851c84d56941830b67ceeea366a8a16337c5a | |
parent | dc1ad55f9fdd07e14e7c81c11772ef8da7551674 (diff) |
new WORKING clones - Toki no Senshi - Chrono Soldier (MC-8123, 317-0040) [ShouTime] (#3952)
* new WORKING clones - Toki no Senshi - Chrono Soldier (MC-8123, 317-0040) [ShouTime]
(key was brute forced)
* list key (nw)
* leftover (nw)
* make sure attract mode plays properly without giving a continue screen (nw)
* dipswitch is inverted compared to other set
-rw-r--r-- | src/mame/drivers/system1.cpp | 92 | ||||
-rw-r--r-- | src/mame/includes/system1.h | 1 | ||||
-rw-r--r-- | src/mame/machine/mc8123.cpp | 1 | ||||
-rw-r--r-- | src/mame/mame.lst | 3 |
4 files changed, 71 insertions, 26 deletions
diff --git a/src/mame/drivers/system1.cpp b/src/mame/drivers/system1.cpp index 51975be2023..ed69c687ecd 100644 --- a/src/mame/drivers/system1.cpp +++ b/src/mame/drivers/system1.cpp @@ -1952,9 +1952,9 @@ static INPUT_PORTS_START( tokisens ) PORT_INCLUDE( choplift ) PORT_MODIFY("SWA") - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:3,4") PORT_DIPSETTING( 0x00, "1" ) PORT_DIPSETTING( 0x08, "2" ) @@ -1974,6 +1974,15 @@ static INPUT_PORTS_START( tokisens ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END +static INPUT_PORTS_START( tokisensa ) + PORT_INCLUDE( tokisens ) + + PORT_MODIFY("SWA") + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x02, DEF_STR( On ) ) +INPUT_PORTS_END + static INPUT_PORTS_START( wbml ) PORT_INCLUDE( choplift ) @@ -4635,30 +4644,62 @@ ROM_START( brain ) ROM_END -ROM_START( tokisens ) /* Sega game ID# 834-6409 - should use a Sega MC-8123, 317-0040 */ +ROM_START( tokisens ) /* Sega game ID# 834-6409 - Sega MC-8123, 317-0040 */ ROM_REGION( 0x20000, "maincpu", 0 ) - ROM_LOAD( "epr-10961.90", 0x00000, 0x8000, CRC(1466b61d) SHA1(99f93813834d3a7c9f6228076d400f74d9b6dea9) ) /* Possible bootleg or hacked? Should be MC-8123, 317-0040 encrypted */ - ROM_LOAD( "epr-10962.91", 0x10000, 0x8000, CRC(a8479f91) SHA1(0700746fb481fd2bd22ae82c9881aa61222a6379) ) - ROM_LOAD( "epr-10963.92", 0x18000, 0x8000, CRC(b7193b39) SHA1(d40fb8591b1ff83f3d56b955ac11a07496a0adbb) ) + ROM_LOAD( "epr-10961.ic90", 0x00000, 0x8000, CRC(5c71c203) SHA1(65c3730d2255be5e09fda2f8eae1c7f3d245ce9b) ) + ROM_LOAD( "epr-10962.ic91", 0x10000, 0x8000, CRC(db9080e3) SHA1(591b1bd4ab694f45d472bb50483dadb980cd2f86) ) + ROM_LOAD( "epr-10963.ic92", 0x18000, 0x8000, CRC(d17ad93f) SHA1(870dbd3558a4c3a47f36d3d3c0c71c647baacf10) ) + + ROM_REGION( 0x2000, "maincpu:key", 0 ) /* MC8123 key */ + ROM_LOAD( "317-0040.key", 0x0000, 0x2000, CRC(e2b67fd6) SHA1(4fcf457279dac317ccf700591cfaa9a4cff81b4a) ) ROM_REGION( 0x10000, "soundcpu", 0 ) - ROM_LOAD( "epr-10967.126", 0x0000, 0x8000, CRC(97966bf2) SHA1(b5a3d36afbb3d6e2e2e2c121609a30dc080ccf13) ) + ROM_LOAD( "epr-10967.ic126", 0x0000, 0x8000, CRC(97966bf2) SHA1(b5a3d36afbb3d6e2e2e2c121609a30dc080ccf13) ) ROM_REGION( 0x18000, "tiles", 0 ) - ROM_LOAD( "epr-10964.4", 0x00000, 0x8000, CRC(9013b85c) SHA1(c27322245052ffc9d840fe683ed35965c61bf9e8) ) - ROM_LOAD( "epr-10965.5", 0x08000, 0x8000, CRC(e4755cc6) SHA1(33370d556a70e19edce5e0c7fa8b11453ccbe91b) ) - ROM_LOAD( "epr-10966.6", 0x10000, 0x8000, CRC(5bbfbdcc) SHA1(e7e679da874a79dfdda0be58d1352c192635296d) ) + ROM_LOAD( "epr-10964.ic4", 0x00000, 0x8000, CRC(25af5c93) SHA1(da6e6244b14c9ad51cee012bf46d591928d13050) ) + ROM_LOAD( "epr-10965.ic5", 0x08000, 0x8000, CRC(cc8eb99a) SHA1(b66c2a786a3401021a05740f36103cf8e6129a85) ) + ROM_LOAD( "epr-10966.ic6", 0x10000, 0x8000, CRC(7ecf2459) SHA1(2dc6c4295d0e6f18efd26f8e15e0f31cf0a6820e) ) ROM_REGION( 0x20000, "sprites", 0 ) - ROM_LOAD( "epr-10958.87", 0x00000, 0x8000, CRC(fc2bcbd7) SHA1(6b9007f2057e4c860ecae4ba5db4e02b8aaae8fd) ) - ROM_LOAD( "epr-10957.86", 0x08000, 0x8000, CRC(4ec56860) SHA1(9fd6ba8a68b4cb98183e8ac8643656c251f1c72d) ) - ROM_LOAD( "epr-10960.89", 0x10000, 0x8000, CRC(880e0d44) SHA1(2b2dc144807d1d048ffe81bfd33a77ccf618dd3e) ) - ROM_LOAD( "epr-10959.88", 0x18000, 0x8000, CRC(4deda48f) SHA1(12db2a69286f22cd8243be6faa9a075fafec1dfd) ) + ROM_LOAD( "epr-10958.ic87", 0x00000, 0x8000, CRC(bb62dbc8) SHA1(f48aa1b38077d801521afe6cd43f1463a22b9431) ) + ROM_LOAD( "epr-10957.ic86", 0x08000, 0x8000, CRC(4ec56860) SHA1(9fd6ba8a68b4cb98183e8ac8643656c251f1c72d) ) + ROM_LOAD( "epr-10960.ic89", 0x10000, 0x8000, CRC(880e0d44) SHA1(2b2dc144807d1d048ffe81bfd33a77ccf618dd3e) ) + ROM_LOAD( "epr-10959.ic88", 0x18000, 0x8000, CRC(4deda48f) SHA1(12db2a69286f22cd8243be6faa9a075fafec1dfd) ) ROM_REGION( 0x0300, "palette", 0 ) - ROM_LOAD( "pri10956.ic20", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* MMI 63S141AN - palette red component */ - ROM_LOAD( "pri10955.ic14", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* MMI 63S141AN - palette green component */ - ROM_LOAD( "pri10954.ic8", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* MMI 63S141AN - palette blue component */ + ROM_LOAD( "pr10956.ic20", 0x0000, 0x0100, CRC(fd1bba8a) SHA1(4a38239d89f70291df71976b18be49fb24f071ca) ) /* MMI 63S141AN - palette red component */ + ROM_LOAD( "pr10955.ic14", 0x0100, 0x0100, CRC(72b35df7) SHA1(ef782fb7012c359ed7ca8f4ab42734c4994e473a) ) /* MMI 63S141AN - palette green component */ + ROM_LOAD( "pr10954.ic8", 0x0200, 0x0100, CRC(b7984867) SHA1(8a03cc98c33e4defe880d10a02a5d0108fa0c9da) ) /* MMI 63S141AN - palette blue component */ + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "pr-5317.ic28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) +ROM_END + +ROM_START( tokisensa ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "ic90", 0x00000, 0x8000, CRC(1466b61d) SHA1(99f93813834d3a7c9f6228076d400f74d9b6dea9) ) + ROM_LOAD( "ic91", 0x10000, 0x8000, CRC(a8479f91) SHA1(0700746fb481fd2bd22ae82c9881aa61222a6379) ) + ROM_LOAD( "ic92", 0x18000, 0x8000, CRC(b7193b39) SHA1(d40fb8591b1ff83f3d56b955ac11a07496a0adbb) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "epr-10967.ic126", 0x0000, 0x8000, CRC(97966bf2) SHA1(b5a3d36afbb3d6e2e2e2c121609a30dc080ccf13) ) + + ROM_REGION( 0x18000, "tiles", 0 ) + ROM_LOAD( "ic4", 0x00000, 0x8000, CRC(9013b85c) SHA1(c27322245052ffc9d840fe683ed35965c61bf9e8) ) + ROM_LOAD( "ic5", 0x08000, 0x8000, CRC(e4755cc6) SHA1(33370d556a70e19edce5e0c7fa8b11453ccbe91b) ) + ROM_LOAD( "ic6", 0x10000, 0x8000, CRC(5bbfbdcc) SHA1(e7e679da874a79dfdda0be58d1352c192635296d) ) + + ROM_REGION( 0x20000, "sprites", 0 ) + ROM_LOAD( "ic87", 0x00000, 0x8000, CRC(fc2bcbd7) SHA1(6b9007f2057e4c860ecae4ba5db4e02b8aaae8fd) ) + ROM_LOAD( "epr-10957.ic86", 0x08000, 0x8000, CRC(4ec56860) SHA1(9fd6ba8a68b4cb98183e8ac8643656c251f1c72d) ) + ROM_LOAD( "epr-10960.ic89", 0x10000, 0x8000, CRC(880e0d44) SHA1(2b2dc144807d1d048ffe81bfd33a77ccf618dd3e) ) + ROM_LOAD( "epr-10959.ic88", 0x18000, 0x8000, CRC(4deda48f) SHA1(12db2a69286f22cd8243be6faa9a075fafec1dfd) ) + + ROM_REGION( 0x0300, "palette", 0 ) + ROM_LOAD( "ic20", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* MMI 63S141AN - palette red component */ + ROM_LOAD( "ic14", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* MMI 63S141AN - palette green component */ + ROM_LOAD( "ic8", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* MMI 63S141AN - palette blue component */ ROM_REGION( 0x0100, "proms", 0 ) ROM_LOAD( "pr-5317.ic28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) @@ -5371,7 +5412,6 @@ void system1_state::init_blockgal() } - void system1_state::init_wbml() { init_bank0c(); @@ -5379,11 +5419,12 @@ void system1_state::init_wbml() downcast<mc8123_device &>(*m_maincpu).decode(m_maincpu_region->base(), m_banked_decrypted_opcodes.get(), m_maincpu_region->bytes()); } -void system1_state::init_ufosensi() +void system1_state::init_tokisens() { - init_bank0c(); - m_banked_decrypted_opcodes = std::make_unique<uint8_t[]>(m_maincpu_region->bytes()); - downcast<mc8123_device &>(*m_maincpu).decode(m_maincpu_region->base(), m_banked_decrypted_opcodes.get(), m_maincpu_region->bytes()); + // HACK otherwise player dies in attract mode and game gives a continue screen, probably the other Z80 timing kludges aren't quite accurate (or the encrypted CPU differs) + // could also be different screen refresh, or even just exactly when the first interrupt occurs + m_maincpu->set_clock_scale(1.07f); + init_wbml(); } void system1_state::init_dakkochn() @@ -5578,7 +5619,8 @@ GAME( 1986, gardiab, gardia, sys2_317_0007, gardia, system1_state, i GAME( 1986, gardiaj, gardia, sys2_317_0006, gardia, system1_state, init_bank44, ROT270, "Coreland / Sega", "Gardia (Japan, 317-0006)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1986, wboysys2, wboy, sys2_315_5177, wboysys2, system1_state, init_bank0c, ROT0, "Escape (Sega license)", "Wonder Boy (system 2, set 1, 315-5177)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, wboysys2a, wboy, sys2_315_5176, wboysys2, system1_state, init_bank0c, ROT0, "Escape (Sega license)", "Wonder Boy (system 2, set 2, 315-5176)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, tokisens, 0, sys2, tokisens, system1_state, init_bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, tokisens, 0, sys2xb, tokisens, system1_state, init_tokisens, ROT90, "Sega", "Toki no Senshi - Chrono Soldier (MC-8123, 317-0040)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, tokisensa, tokisens, sys2, tokisensa, system1_state, init_bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier (prototype?)", MACHINE_SUPPORTS_SAVE ) // or bootleg? GAME( 1987, wbml, 0, sys2xb, wbml, system1_state, init_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, init_wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, wbmljb, wbml, sys2xboot, wbml, system1_state, init_bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan bootleg)", MACHINE_SUPPORTS_SAVE ) @@ -5591,5 +5633,5 @@ GAME( 1987, wbmld, wbml, sys2xboot, wbml, system1_state, i GAME( 1987, wbmljod, wbml, sys2xboot, wbml, system1_state, init_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, init_dakkochn, ROT0, "White Board", "DakkoChan House (MC-8123B, 317-5014)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, blockgalb, blockgal, sys2x, blockgal, system1_state, init_bootleg, ROT90, "bootleg", "Block Gal (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ufosensi, 0, sys2rowxb, ufosensi, system1_state, init_ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ufosensi, 0, sys2rowxb, ufosensi, system1_state, init_wbml, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, ufosensib, ufosensi, sys2rowxboot, ufosensi, system1_state, init_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 5c8a77f4bd4..0430bcd2587 100644 --- a/src/mame/includes/system1.h +++ b/src/mame/includes/system1.h @@ -96,6 +96,7 @@ public: void init_myherok(); void init_ufosensi(); void init_wbml(); + void init_tokisens(); void init_bootsys2(); void init_bootsys2d(); void init_choplift(); diff --git a/src/mame/machine/mc8123.cpp b/src/mame/machine/mc8123.cpp index bb446f89992..0ba137c78c3 100644 --- a/src/mame/machine/mc8123.cpp +++ b/src/mame/machine/mc8123.cpp @@ -62,6 +62,7 @@ CPU # Game Notes Seed Upper Limit 317-5014 DakkoChan Jansoh NEC MC-8123B 206850 1C00 317-0029 Block Gal NEC MC-8123B 651 091755 1800? 317-0030 Perfect Billiard 9451EC 1C00 +317-0040 Toki no Senshi - Chrono Soldier 068713 1c00 317-0042 Opa Opa B31FD0 1C00 317-0043 Wonder Boy Monster Land 640708 1C00 317-0054 Shinobi (sound CPU) NEC MC-8123B 652 088992 1800 diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d949ac1cad7..fd68cca56b3 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -36248,7 +36248,8 @@ teddybb // 834-5712 (c) 1985 (S1) teddybbo // 834-5712 (c) 1985 (S1) teddybbobl // bootleg thetogyu // 834-5478 (c) 1984 Sega / Coreland (S1) -tokisens // (c) 1987 (from a bootleg board) (S2) +tokisens // (c) 1987 +tokisensa // ufosensi // 834-6659 (S2) ufosensib // bootleg upndown // (c) 1983 (S1) |