From 531057bafae8138e63b03202a2aee7621327ec56 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Fri, 12 Aug 2016 20:47:28 +0100 Subject: [PATCH] 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