From 531057bafae8138e63b03202a2aee7621327ec56 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Fri, 12 Aug 2016 20:47:28 +0100 Subject: [PATCH 1/2] new clones Air Gallet (older) [Artemio Urbina] --- src/mame/drivers/cave.cpp | 94 ++++++++++++++++++++++++++++++++++++--- src/mame/includes/cave.h | 2 + src/mame/mame.lst | 6 +++ 3 files changed, 95 insertions(+), 7 deletions(-) diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp index c22b7b48539..41a308110bf 100644 --- a/src/mame/drivers/cave.cpp +++ b/src/mame/drivers/cave.cpp @@ -2596,10 +2596,24 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state ) MACHINE_CONFIG_END + + /*************************************************************************** Sailor Moon / Air Gallet ***************************************************************************/ +TIMER_DEVICE_CALLBACK_MEMBER( cave_state::sailormn_startup ) +{ + m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE); +} + +MACHINE_RESET_MEMBER(cave_state,sailormn) +{ + timer_device *startup = machine().device("startup"); + startup->adjust(attotime::from_usec(1000), 0, attotime::zero); + MACHINE_RESET_CALL_MEMBER(cave); +} + static MACHINE_CONFIG_START( sailormn, cave_state ) /* basic machine hardware */ @@ -2607,6 +2621,9 @@ static MACHINE_CONFIG_START( sailormn, cave_state ) MCFG_CPU_PROGRAM_MAP(sailormn_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", cave_state, cave_interrupt) + // could be a wachdog, but if it is then our watchdog address is incorrect as there are periods where the game doesn't write it. + MCFG_TIMER_DRIVER_ADD("startup", cave_state, sailormn_startup) + MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz) // Bidirectional Communication MCFG_CPU_PROGRAM_MAP(sailormn_sound_map) MCFG_CPU_IO_MAP(sailormn_sound_portmap) @@ -2614,7 +2631,7 @@ static MACHINE_CONFIG_START( sailormn, cave_state ) // MCFG_QUANTUM_TIME(attotime::from_hz(600)) MCFG_MACHINE_START_OVERRIDE(cave_state,cave) - MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave) + MCFG_MACHINE_RESET_OVERRIDE(cave_state,sailormn) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start) @@ -2649,6 +2666,8 @@ static MACHINE_CONFIG_START( sailormn, cave_state ) MCFG_OKIM6295_ADD("oki2", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) + + MACHINE_CONFIG_END @@ -2849,12 +2868,7 @@ BP962A.U77 23C16000 GFX ***************************************************************************/ - - -#define ROMS_AGALLET \ - ROM_REGION( 0x400000, "maincpu", 0 ) \ - ROM_LOAD16_WORD_SWAP( "bp962a.u45", 0x000000, 0x080000, CRC(24815046) SHA1(f5eeae60b923ae850b335e7898a2760407631d8b) ) \ - \ +#define ROMS_AGALLET_COMMON \ ROM_REGION( 0x80000, "audiocpu", 0 ) \ ROM_LOAD( "bp962a.u9", 0x00000, 0x80000, CRC(06caddbe) SHA1(6a3cc50558ba19a31b21b7f3ec6c6e2846244ff1) ) \ \ @@ -2881,6 +2895,14 @@ BP962A.U77 23C16000 GFX \ ROM_REGION( 0x200000, "oki2", 0 ) \ ROM_LOAD( "bp962a.u47", 0x000000, 0x200000, CRC(6d4e9737) SHA1(81c7ecdfc2d38d0b35e26745866f6672f566f936) ) + + +// these roms were dumped from a board set to Taiwanese region. +#define ROMS_AGALLET \ + ROM_REGION( 0x400000, "maincpu", 0 ) \ + ROM_LOAD16_WORD_SWAP( "bp962a.u45", 0x000000, 0x080000, CRC(24815046) SHA1(f5eeae60b923ae850b335e7898a2760407631d8b) ) \ + ROMS_AGALLET_COMMON + /* the regions differ only in the EEPROM, hence the macro above - all EEPROMs are Factory Defaulted */ ROM_START( agallet ) ROMS_AGALLET @@ -2924,6 +2946,55 @@ ROM_START( agalleth ) ROM_LOAD16_WORD( "agallet_hongkong.nv", 0x0000, 0x0080, CRC(998d1a74) SHA1(13e7e27a18417949d49e97d521781fc0feeef792) ) ROM_END +// these roms were dumped from a board set to the Japanese region. +#define ROMS_AGALLETA \ + ROM_REGION( 0x400000, "maincpu", 0 ) \ + ROM_LOAD16_WORD_SWAP( "u45", 0x000000, 0x080000, CRC(2cab18b0) SHA1(5e779b74d8520cb482697b5efba4746854e7c9fe) ) \ + ROMS_AGALLET_COMMON + +/* the regions differ only in the EEPROM, hence the macro above - all EEPROMs are Factory Defaulted */ +ROM_START( agalleta ) + ROMS_AGALLETA + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "agallet_europe.nv", 0x0000, 0x0080, CRC(ec38bf65) SHA1(cb8d9eacc0cf55a0c6b187e6673e3354554314b5) ) +ROM_END + +ROM_START( agalletau ) + ROMS_AGALLETA + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "agallet_usa.nv", 0x0000, 0x0080, CRC(72e65056) SHA1(abf1a86df01064d9d5d8c418e8367817319ec335) ) +ROM_END + +ROM_START( agalletaj ) // the dumped board was this region + ROMS_AGALLETA + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "agallet_japan.nv", 0x0000, 0x0080, CRC(0753f547) SHA1(aabb987470406b8729894108bc4d050f7200917d) ) +ROM_END + +ROM_START( agalletak ) + ROMS_AGALLETA + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "agallet_korea.nv", 0x0000, 0x0080, CRC(7f41c253) SHA1(50793d4da0ad6eb590941d26a729a1cf4b3c25c2) ) +ROM_END + +ROM_START( agalletat ) + ROMS_AGALLETA + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "agallet_taiwan.nv", 0x0000, 0x0080, CRC(0af46742) SHA1(37b704c4c573b2aabd6f016e9e8dd458f95148f7) ) +ROM_END + +ROM_START( agalletah ) + ROMS_AGALLETA + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD( "agallet_hongkong.nv", 0x0000, 0x0080, CRC(998d1a74) SHA1(13e7e27a18417949d49e97d521781fc0feeef792) ) +ROM_END + /*************************************************************************** Fever SOS (International) / Dangun Feveron (Japan) @@ -5032,6 +5103,15 @@ GAME( 1996, agalletj, agallet, sailormn, cave, cave_state, agallet, ROT2 GAME( 1996, agalletk, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Korea)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, agallett, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Taiwan)", MACHINE_SUPPORTS_SAVE ) GAME( 1996, agalleth, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Hong Kong)", MACHINE_SUPPORTS_SAVE ) +// this set appears to be older, there is some kind of reset circuit / watchdog circuit check on startup, the same check exists in the above set but the code skips over it so presumably it was removed +// to avoid boards simply hanging on a black screen if the circuit didn't fire. +GAME( 1996, agalleta, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Europe)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletau, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, USA)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletaj, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Akuu Gallet (older, Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletak, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Korea)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletat, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Taiwan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, agalletah, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (older, Hong Kong)", MACHINE_SUPPORTS_SAVE ) + GAME( 1996, hotdogst, 0, hotdogst, cave, cave_state, hotdogst, ROT90, "Marble", "Hotdog Storm (International)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h index 187444027fa..cc0533ce479 100644 --- a/src/mame/includes/cave.h +++ b/src/mame/includes/cave.h @@ -216,6 +216,7 @@ public: TILE_GET_INFO_MEMBER(get_tile_info_3); DECLARE_MACHINE_START(cave); DECLARE_MACHINE_RESET(cave); + DECLARE_MACHINE_RESET(sailormn); DECLARE_VIDEO_START(cave_2_layers); DECLARE_PALETTE_INIT(dfeveron); DECLARE_VIDEO_START(cave_3_layers); @@ -241,6 +242,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(cave_vblank_start_left); TIMER_DEVICE_CALLBACK_MEMBER(cave_vblank_start_right); TIMER_DEVICE_CALLBACK_MEMBER(timer_lev2_cb); + TIMER_DEVICE_CALLBACK_MEMBER(sailormn_startup); void cave_get_sprite_info(int chip); void cave_get_sprite_info_all(); void sailormn_tilebank_w(int bank); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 07582df5d80..3878c00c4eb 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9076,6 +9076,12 @@ agalletj // (c) 1996 Banpresto / Gazelle (country is in E agalletk // (c) 1996 Banpresto / Gazelle (country is in EEPROM) agallett // (c) 1996 Banpresto / Gazelle (country is in EEPROM) agalletu // (c) 1996 Banpresto / Gazelle (country is in EEPROM) +agalleta // (c) 1996 Banpresto / Gazelle (country is in EEPROM) +agalletah // (c) 1996 Banpresto / Gazelle (country is in EEPROM) +agalletaj // (c) 1996 Banpresto / Gazelle (country is in EEPROM) +agalletak // (c) 1996 Banpresto / Gazelle (country is in EEPROM) +agalletat // (c) 1996 Banpresto / Gazelle (country is in EEPROM) +agalletau // (c) 1996 Banpresto / Gazelle (country is in EEPROM) crusherm // (c) 1999 Takumi ddonpach // (c) 1997 Atlus/Cave ddonpacha // hack From 0deba4d476167d870c05820d5b69d429bda07545 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sat, 13 Aug 2016 18:42:10 +0100 Subject: [PATCH 2/2] new clones Super Hang-On (Hang-On conversion, Japan, FD1094 317-0039) [Charles MacDonald, ShouTime] --- src/mame/drivers/segahang.cpp | 61 +++++++++++++++++++++++++++++++++-- src/mame/mame.lst | 1 + 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/segahang.cpp b/src/mame/drivers/segahang.cpp index b374f09182a..8e6950c430e 100644 --- a/src/mame/drivers/segahang.cpp +++ b/src/mame/drivers/segahang.cpp @@ -1194,7 +1194,61 @@ ROM_START( shangonro ) ROM_REGION16_BE( 0x00e0000, "sprites", 0 ) // sprites ROM_LOAD16_BYTE( "epr-10675.22", 0x000001, 0x010000, CRC(d6ac012b) SHA1(305023b1a0a9d84cfc081ffc2ad7578b53d562f2) ) - ROM_LOAD16_BYTE( "epr-10682.11", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) ) + ROM_LOAD16_BYTE( "epr-10682.13", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) ) + ROM_LOAD16_BYTE( "epr-10676.21", 0x020001, 0x010000, CRC(25ebf2c5) SHA1(abcf673ae4e280417dd9f46d18c0ec7c0e4802ae) ) + ROM_LOAD16_BYTE( "epr-10683.12", 0x020000, 0x010000, CRC(6365d2e9) SHA1(688e2ba194e859f86cd3486c2575ebae257e975a) ) + ROM_LOAD16_BYTE( "epr-10677.20", 0x040001, 0x010000, CRC(8a57b8d6) SHA1(df1a31559dd2d1e7c2c9d800bf97526bdf3e84e6) ) + ROM_LOAD16_BYTE( "epr-10684.11", 0x040000, 0x010000, CRC(3aff8910) SHA1(4b41a49a7f02363424e814b37edce9a7a44a112e) ) + ROM_LOAD16_BYTE( "epr-10678.19", 0x060001, 0x010000, CRC(af473098) SHA1(a2afaba1cbf672949dc50e407b46d7e9ae183774) ) + ROM_LOAD16_BYTE( "epr-10685.10", 0x060000, 0x010000, CRC(80bafeef) SHA1(f01bcf65485e60f34e533295a896fca0b92e5b14) ) + ROM_LOAD16_BYTE( "epr-10679.18", 0x080001, 0x010000, CRC(03bc4878) SHA1(548fc58bcc620204e30fa12fa4c4f0a3f6a1e4c0) ) + ROM_LOAD16_BYTE( "epr-10686.9", 0x080000, 0x010000, CRC(274b734e) SHA1(906fa528659bc17c9b4744cec52f7096711adce8) ) + ROM_LOAD16_BYTE( "epr-10680.17", 0x0a0001, 0x010000, CRC(9f0677ed) SHA1(5964642b70bfad418da44f2d91476f887b021f74) ) + ROM_LOAD16_BYTE( "epr-10687.8", 0x0a0000, 0x010000, CRC(508a4701) SHA1(d17aea2aadc2e2cd65d81bf91feb3ef6923d5c0b) ) + ROM_LOAD16_BYTE( "epr-10681.16", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) ) + ROM_LOAD16_BYTE( "epr-10688.7", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) ) + + ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx + ROM_LOAD( "epr-10866.108", 0x0000, 0x08000, CRC(1bbe4fc8) SHA1(30f7f301e4d10d3b254d12bf3d32e5371661a566) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU + ROM_LOAD( "epr-10834a.52", 0x0000, 0x08000, CRC(83347dc0) SHA1(079bb750edd6372750a207764e8c84bb6abf2f79) ) + + ROM_REGION( 0x20000, "pcm", 0 ) // Sega PCM sound data + ROM_LOAD( "epr-10835.55", 0x00000, 0x10000, CRC(da08ca2b) SHA1(2c94c127efd66f6cf86b25e2653637818a99aed1) ) + ROM_LOAD( "epr-10836.56", 0x10000, 0x10000, CRC(8b10e601) SHA1(75e9bcdd3f096be9bed672d61064b9240690deec) ) + + ROM_REGION( 0x2000, "sprites:zoom", 0 ) // zoom table + ROM_LOAD( "epr-6844.119", 0x0000, 0x2000, CRC(e3ec7bd6) SHA1(feec0fe664e16fac0fde61cf64b401b9b0575323) ) +ROM_END + + +ROM_START( shangonho ) + ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "epr-10865.ic22", 0x00000, 0x08000, CRC(98e861dd) SHA1(f2059f4559893d38d7d781c8599aeb7a5074eec0) ) + ROM_LOAD16_BYTE( "epr-10862.ic8", 0x00001, 0x08000, CRC(d6f058c7) SHA1(72f25455ed619d988bcceb1cfe39a7e06722c9dc) ) + ROM_LOAD16_BYTE( "epr-10864.ic20", 0x10000, 0x08000, CRC(b3048f44) SHA1(8e559df140f1ddf307d8430c7976ecbbe8907260) ) + ROM_LOAD16_BYTE( "epr-10861.ic6", 0x10001, 0x08000, CRC(0a131e14) SHA1(088a7ff479462a6a5aa1e096805fc50883a1c245) ) + ROM_LOAD16_BYTE( "epr-10863.ic18", 0x20000, 0x08000, CRC(12ee8716) SHA1(8e798d23d22f85cd046641184d104c17b27995b2) ) + ROM_LOAD16_BYTE( "epr-10860.ic4", 0x20001, 0x08000, CRC(155e0cfd) SHA1(e51734351c887fe3920c881f57abdfbb7d075f57) ) + + ROM_REGION( 0x40000, "subcpu", 0 ) // second 68000 CPU (encrypted FD1094) + ROM_LOAD16_BYTE( "epr-10859.ic31", 0x000001, 0x10000, CRC(a22bc1a2) SHA1(74b535fb72228807aafe835bfb69e97f58bda12d) ) + ROM_LOAD16_BYTE( "epr-10857.ic25", 0x000000, 0x10000, CRC(064827a3) SHA1(c72cb799b4535f9faa7f3d37bc4d0763f52f5361) ) + ROM_LOAD16_BYTE( "epr-10858.ic30", 0x020001, 0x10000, CRC(8f8f4af0) SHA1(1dac21b7df6ec6874d36a07e30de7129b7f7f33a) ) + ROM_LOAD16_BYTE( "epr-10856.ic24", 0x020000, 0x10000, CRC(000ad595) SHA1(eb80e798159c09bc5142a7ea8b9b0f895976b0d4) ) + + ROM_REGION( 0x2000, "subcpu:key", 0 ) // FD1094 decryption key + ROM_LOAD( "317-0039.key", 0x0000, 0x2000, CRC(97b05dd6) SHA1(c16033021a0fbc8d9759c40deab41d58babdaf90) ) + + ROM_REGION( 0x18000, "gfx1", 0 ) // tiles + ROM_LOAD( "epr-10652.38", 0x00000, 0x08000, CRC(260286f9) SHA1(dc7c8d2c6ef924a937328685eed19bda1c8b1819) ) + ROM_LOAD( "epr-10651.23", 0x08000, 0x08000, CRC(c609ee7b) SHA1(c6dacf81cbfe7e5df1f9a967cf571be1dcf1c429) ) + ROM_LOAD( "epr-10650.7", 0x10000, 0x08000, CRC(b236a403) SHA1(af02b8122794c083a66f2ab35d2c73b84b2df0be) ) + + ROM_REGION16_BE( 0x00e0000, "sprites", 0 ) // sprites + ROM_LOAD16_BYTE( "epr-10675.22", 0x000001, 0x010000, CRC(d6ac012b) SHA1(305023b1a0a9d84cfc081ffc2ad7578b53d562f2) ) + ROM_LOAD16_BYTE( "epr-10682.13", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) ) ROM_LOAD16_BYTE( "epr-10676.21", 0x020001, 0x010000, CRC(25ebf2c5) SHA1(abcf673ae4e280417dd9f46d18c0ec7c0e4802ae) ) ROM_LOAD16_BYTE( "epr-10683.12", 0x020000, 0x010000, CRC(6365d2e9) SHA1(688e2ba194e859f86cd3486c2575ebae257e975a) ) ROM_LOAD16_BYTE( "epr-10677.20", 0x040001, 0x010000, CRC(8a57b8d6) SHA1(df1a31559dd2d1e7c2c9d800bf97526bdf3e84e6) ) @@ -1949,8 +2003,9 @@ GAME( 1985, hangon, 0, hangon, hangon, segahang_state,generic, RO GAME( 1985, hangon1, hangon, hangon, hangon, segahang_state,generic, ROT0, "Sega", "Hang-On", 0 ) GAME( 1985, hangon2, hangon, hangon, hangon2, segahang_state,generic, ROT0, "Sega", "Hang-On (ride-on)", 0 ) -GAME( 1987, shangonro, shangon, shangonro,shangonro, segahang_state,generic, ROT0, "Sega", "Super Hang-On (ride-on, Japan, FD1094 317-0038)", 0 ) -GAME( 1992, shangonrb, shangon, shangupb, shangupb, segahang_state,generic, ROT0, "bootleg", "Super Hang-On (bootleg)", 0 ) +GAME( 1987, shangonro, shangon, shangonro,shangonro, segahang_state,generic, ROT0, "Sega", "Super Hang-On (Hang-On conversion, ride-on, Japan, FD1094 317-0038)", 0 ) +GAME( 1987, shangonho, shangon, shangonro,shangupb, segahang_state,generic, ROT0, "Sega", "Super Hang-On (Hang-On conversion, Japan, FD1094 317-0039)", 0 ) +GAME( 1992, shangonrb, shangon, shangupb, shangupb, segahang_state,generic, ROT0, "bootleg", "Super Hang-On (Hang-On conversion, bootleg)", 0 ) GAME( 1985, sharrier, 0, sharrier, sharrier, segahang_state,sharrier,ROT0, "Sega", "Space Harrier (Rev A, 8751 315-5163A)", 0 ) GAME( 1985, sharrier1, sharrier, sharrier, sharrier, segahang_state,sharrier,ROT0, "Sega", "Space Harrier (8751 315-5163)", 0 ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 3878c00c4eb..5426b279797 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -32176,6 +32176,7 @@ hangon1 // (c) 1985 hangon2 // (c) 1985 shangonrb // (c) 1992 (but bootleg, hangon hw?) shangonro // (c) 1987 (FD1094) +shangonho // (c) 1987 (FD1094) sharrier // (c) 1985 sharrier1 // (c) 1985