diff options
author | David Haywood <mamehaze@users.noreply.github.com> | 2015-10-04 12:39:01 +0100 |
---|---|---|
committer | David Haywood <mamehaze@users.noreply.github.com> | 2015-10-04 12:39:01 +0100 |
commit | 2da1bb0f8dee1665058b0d6cd1baa2ab8bf9dc8d (patch) | |
tree | b798fb35ac44dbb4670d9f6c861a82c4b8a94efb | |
parent | 39e97dc9f43278c222bf12e0164fc520a9955f7e (diff) |
new clones
Air Duel (World, M82) [system11, The Dumping Union]
-rw-r--r-- | src/mame/arcade.lst | 3 | ||||
-rw-r--r-- | src/mame/drivers/m72.c | 154 | ||||
-rw-r--r-- | src/mame/includes/m72.h | 4 |
3 files changed, 81 insertions, 80 deletions
diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index 6059394211d..98a979bc2a9 100644 --- a/src/mame/arcade.lst +++ b/src/mame/arcade.lst @@ -1852,7 +1852,8 @@ dkgensanm72 // (c) 1990 (Japan) poundfor // (c) 1990 (World) poundforj // (c) 1990 (Japan) poundforu // (c) 1990 Irem America (US) -airduel // (c) 1990 (Japan) +airduelm72 // (c) 1990 (Japan) +airduel // (c) 1990 (World) cosmccop // (c) 1991 (World) gallop // (c) 1991 (Japan) ltswords // (c) 1991 (World) diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c index 4bf6607651e..7f0fb223f4b 100644 --- a/src/mame/drivers/m72.c +++ b/src/mame/drivers/m72.c @@ -22,7 +22,8 @@ Major Title 1990 M84 N Hammerin' Harry / Daiku no Gensan 1990 M82(3) N Daiku no Gensan 1990 M72(4) Y Pound for Pound 1990 M85 N -Air Duel 1990 M72? Y +Air Duel (World) 1990 M82 N +Air Duel (Japan) 1990 M72? Y Cosmic Cop / 1991 M84 N Gallop - Armed Police Unit 1991 M72 N Ken-Go 1991 ? Encrypted @@ -458,7 +459,7 @@ WRITE16_MEMBER(m72_state::dbreedm72_sample_trigger_w) if (ACCESSING_BITS_0_7 && (data & 0xff) < 9) m_audio->set_sample_start(a[data & 0xff]); } -WRITE16_MEMBER(m72_state::airduel_sample_trigger_w) +WRITE16_MEMBER(m72_state::airduelm72_sample_trigger_w) { static const int a[16] = { 0x00000, 0x00020, 0x03ec0, 0x05640, 0x06dc0, 0x083a0, 0x0c000, 0x0eb60, @@ -630,7 +631,7 @@ static const UINT8 dbreedm72_crc[CRC_LEN] = { 0xa4,0x96,0x5f,0xc0, 0xab,0x49,0 0x84,0xe6,0xd6,0xca, 0x00,0x00 }; /* Air Duel */ -static const UINT8 airduel_code[CODE_LEN] = +static const UINT8 airduelm72_code[CODE_LEN] = { 0x68,0x00,0xd0, // push 0d000h 0x1f, // pop ds @@ -640,7 +641,7 @@ static const UINT8 airduel_code[CODE_LEN] = 0xc6,0x06,0xc0,0x1c,0x57, // mov [1cc0h], byte 057h 0xea,0x69,0x0b,0x00,0x00 // jmp 0000:$0b69 }; -static const UINT8 airduel_crc[CRC_LEN] = { 0x72,0x9c,0xca,0x85, 0xc9,0x12,0xcc,0xea, +static const UINT8 airduelm72_crc[CRC_LEN] = { 0x72,0x9c,0xca,0x85, 0xc9,0x12,0xcc,0xea, 0x00,0x00 }; /* Daiku no Gensan */ @@ -727,10 +728,10 @@ DRIVER_INIT_MEMBER(m72_state,dbreedm72) m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::dbreedm72_sample_trigger_w),this)); } -DRIVER_INIT_MEMBER(m72_state,airduel) +DRIVER_INIT_MEMBER(m72_state,airduelm72) { - install_protection_handler(airduel_code,airduel_crc); - m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::airduel_sample_trigger_w),this)); + install_protection_handler(airduelm72_code,airduelm72_crc); + m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::airduelm72_sample_trigger_w),this)); } DRIVER_INIT_MEMBER(m72_state,dkgenm72) @@ -893,6 +894,23 @@ static ADDRESS_MAP_START( hharryu_map, AS_PROGRAM, 16, m72_state ) AM_RANGE(0xffff0, 0xfffff) AM_ROM ADDRESS_MAP_END +static ADDRESS_MAP_START( airduelm82_map, AS_PROGRAM, 16, m72_state ) + AM_RANGE(0x00000, 0x7ffff) AM_ROM + AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram") + AM_RANGE(0xa4000, 0xa4bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2") +// AM_RANGE(0xec000, 0xec001) AM_WRITE(irq_line_w) + AM_RANGE(0xec000, 0xec001) AM_WRITE(dmaon_w) + + AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram") +// AM_RANGE(0xc8000, 0xc83ff) AM_RAM // written to, but not tested? + + AM_RANGE(0xac000, 0xaffff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1") + AM_RANGE(0xb0000, 0xb3fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2") + AM_RANGE(0xd0000, 0xd3fff) AM_RAM /* work RAM */ + + AM_RANGE(0xffff0, 0xfffff) AM_ROM +ADDRESS_MAP_END + static ADDRESS_MAP_START( kengo_map, AS_PROGRAM, 16, m72_state ) AM_RANGE(0x00000, 0x7ffff) AM_ROM AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram") @@ -1925,99 +1943,49 @@ static MACHINE_CONFIG_START( rtype2, m72_state ) MCFG_FRAGMENT_ADD(m72_audio_chips) MACHINE_CONFIG_END -// not m72, different video system (less tiles regions?) -static MACHINE_CONFIG_START( dbreed, m72_state ) +// not m72, different video system (less tiles regions?) +static MACHINE_CONFIG_DERIVED( hharryu, rtype2 ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ - MCFG_CPU_PROGRAM_MAP(dbreed_map) - MCFG_CPU_IO_MAP(hharry_portmap) - - MCFG_CPU_ADD("soundcpu",Z80, SOUND_CLOCK) - MCFG_CPU_PROGRAM_MAP(sound_rom_map) - MCFG_CPU_IO_MAP(rtype2_sound_portmap) - MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(hharryu_map) MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl) - /* video hardware */ - MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2) - MCFG_PALETTE_ADD("palette", 512) + MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu) +MACHINE_CONFIG_END - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_VIDEO_START_OVERRIDE(m72_state,hharry) +static MACHINE_CONFIG_DERIVED( airduelm82, rtype2 ) // m82 + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(airduelm82_map) - MCFG_FRAGMENT_ADD(m72_audio_chips) + MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu) MACHINE_CONFIG_END -// not m72, different video system (less tiles regions?) -static MACHINE_CONFIG_START( hharry, m72_state ) - /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ - MCFG_CPU_PROGRAM_MAP(hharry_map) +// not m72, different video system (less tiles regions?) +static MACHINE_CONFIG_DERIVED( dbreed, rtype2 ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(dbreed_map) MCFG_CPU_IO_MAP(hharry_portmap) - MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK) - MCFG_CPU_PROGRAM_MAP(sound_rom_map) - MCFG_CPU_IO_MAP(rtype2_sound_portmap) - MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - - MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl) - /* video hardware */ - MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2) - MCFG_PALETTE_ADD("palette", 512) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_VIDEO_START_OVERRIDE(m72_state,hharry) - - MCFG_FRAGMENT_ADD(m72_audio_chips) - MACHINE_CONFIG_END // not m72, different video system (less tiles regions?) -static MACHINE_CONFIG_START( hharryu, m72_state ) +static MACHINE_CONFIG_DERIVED( hharry, rtype2 ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ - MCFG_CPU_PROGRAM_MAP(hharryu_map) - MCFG_CPU_IO_MAP(rtype2_portmap) - - MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK) - MCFG_CPU_PROGRAM_MAP(sound_rom_map) - MCFG_CPU_IO_MAP(rtype2_sound_portmap) - MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(hharry_map) + MCFG_CPU_IO_MAP(hharry_portmap) MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl) - /* video hardware */ - MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2) - MCFG_PALETTE_ADD("palette", 512) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - - MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu) - - MCFG_FRAGMENT_ADD(m72_audio_chips) - + MCFG_VIDEO_START_OVERRIDE(m72_state,hharry) MACHINE_CONFIG_END // not m72, different video system (less tiles regions?) @@ -3368,8 +3336,38 @@ ROM_START( poundforu ) ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) ) ROM_END + ROM_START( airduel ) ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "AD_(M82)_A-H0-D.IC52", 0x00001, 0x20000, CRC(dbecc726) SHA1(526e9fdf0ca3af3eae462524df71af8e6bfa85d0) ) + ROM_LOAD16_BYTE( "AD_(M82)_A-L0-D.IC60", 0x00000, 0x20000, CRC(6a9fcf59) SHA1(a2ae64d290137036c350f84c38054cf6681473a5) ) + ROM_LOAD16_BYTE( "AD_(M82)_A-H1-D.IC51", 0x40001, 0x20000, CRC(bafc152a) SHA1(e20fa8b832ebfb7a4407fc162f28388858686d61) ) + ROM_RELOAD( 0xc0001, 0x20000 ) + ROM_LOAD16_BYTE( "AD_(M82)_A-L1-D.IC59", 0x40000, 0x20000, CRC(9e2b1ae7) SHA1(838ccffb760b464d7d7e108e033a09e6295e5fc8) ) + ROM_RELOAD( 0xc0000, 0x20000 ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "AD_(M82)_A-SP-D.IC15", 0x00000, 0x10000, CRC(16a858a3) SHA1(51dbac5b37ecb30b46072f5a300a29dc7f7b8542) ) + + ROM_REGION( 0x080000, "gfx1", 0 ) + ROM_LOAD( "AD_(M82)_B-N0-D.IC44", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) /* sprites */ + ROM_LOAD( "AD_(M82)_B-N1-D.IC45", 0x20000, 0x20000, CRC(9865856b) SHA1(b18a06899ae29d45e2351594df544220f3f4485a) ) + ROM_LOAD( "AD_(M82)_B-N2-D.IC46", 0x40000, 0x20000, CRC(d392aef2) SHA1(0f639a07066cadddc3884eb490885a8745571567) ) + ROM_LOAD( "AD_(M82)_B-N3-D.IC36", 0x60000, 0x20000, CRC(923240c3) SHA1(f587a83329087a715a3e42110f74f104e8c8ef1f) ) + + ROM_REGION( 0x080000, "gfx2", 0 ) + ROM_LOAD( "AD_(M82)_A-C0-D.IC49", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #2 */ + ROM_LOAD( "AD_(M82)_A-C1-D.IC48", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) ) + ROM_LOAD( "AD_(M82)_A-C2-D.IC57", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) ) + ROM_LOAD( "AD_(M82)_A-C3-D.IC56", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) ) + + ROM_REGION( 0x20000, "samples", 0 ) /* samples */ + ROM_LOAD( "AD_(M82)_A-V0-D.IC12", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) ) +ROM_END + + +ROM_START( airduelm72 ) + ROM_REGION( 0x100000, "maincpu", 0 ) ROM_LOAD16_BYTE( "ad-c-h0.bin", 0x00001, 0x20000, CRC(12140276) SHA1(f218c5f2e6795b6295dea064817d7d6b1a7762b6) ) ROM_LOAD16_BYTE( "ad-c-l0.bin", 0x00000, 0x20000, CRC(4ac0b91d) SHA1(97e2f633181cd5c25927fd0e2988af2acdb3f388) ) ROM_LOAD16_BYTE( "ad-c-h3.bin", 0x40001, 0x20000, CRC(9f7cfca3) SHA1(becf827aa7749c54f1c435ea224e1fd9c8b3f5f9) ) @@ -3402,6 +3400,7 @@ ROM_START( airduel ) ROM_LOAD( "ad-v0.bin", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) ) ROM_END + ROM_START( cosmccop ) ROM_REGION( 0x100000, "maincpu", 0 ) ROM_LOAD16_BYTE( "cc-d-h0b.bin", 0x00001, 0x40000, CRC(38958b01) SHA1(7d7e217742e33a1fe096adf5bbc93d63ddcfb375) ) @@ -3561,7 +3560,8 @@ GAME( 1990, poundfor, 0, poundfor, poundfor, driver_device, 0, GAME( 1990, poundforj, poundfor, poundfor, poundfor, driver_device, 0, ROT270, "Irem", "Pound for Pound (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1990, poundforu, poundfor, poundfor, poundfor, driver_device, 0, ROT270, "Irem America", "Pound for Pound (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, airduel, 0, m72, airduel, m72_state, airduel, ROT270, "Irem", "Air Duel (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, airduel, 0, airduelm82, airduel, driver_device, 0, ROT270, "Irem", "Air Duel (World, M82)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, airduelm72, airduel, m72, airduel, m72_state, airduelm72, ROT270, "Irem", "Air Duel (Japan, M72)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, cosmccop, 0, cosmccop, gallop, driver_device, 0, ROT0, "Irem", "Cosmic Cop (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) GAME( 1991, gallop, cosmccop, m72, gallop, m72_state, gallop, ROT0, "Irem", "Gallop - Armed Police Unit (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/m72.h b/src/mame/includes/m72.h index f0dab51ca7d..91acc3ada96 100644 --- a/src/mame/includes/m72.h +++ b/src/mame/includes/m72.h @@ -114,7 +114,7 @@ public: DECLARE_WRITE16_MEMBER(imgfight_sample_trigger_w); DECLARE_WRITE16_MEMBER(loht_sample_trigger_w); DECLARE_WRITE16_MEMBER(dbreedm72_sample_trigger_w); - DECLARE_WRITE16_MEMBER(airduel_sample_trigger_w); + DECLARE_WRITE16_MEMBER(airduelm72_sample_trigger_w); DECLARE_WRITE16_MEMBER(dkgenm72_sample_trigger_w); DECLARE_WRITE16_MEMBER(gallop_sample_trigger_w); DECLARE_READ16_MEMBER(poundfor_trackball_r); @@ -145,7 +145,7 @@ public: DECLARE_DRIVER_INIT(gallop); DECLARE_DRIVER_INIT(m72_8751); DECLARE_DRIVER_INIT(dbreedm72); - DECLARE_DRIVER_INIT(airduel); + DECLARE_DRIVER_INIT(airduelm72); DECLARE_DRIVER_INIT(nspirit); DECLARE_DRIVER_INIT(loht); DECLARE_DRIVER_INIT(imgfight); |