new clones

Air Duel (World, M82) [system11, The Dumping Union]
This commit is contained in:
David Haywood 2015-10-04 12:39:01 +01:00
parent 39e97dc9f4
commit 2da1bb0f8d
3 changed files with 86 additions and 85 deletions

View File

@ -1852,7 +1852,8 @@ dkgensanm72 // (c) 1990 (Japan)
poundfor // (c) 1990 (World) poundfor // (c) 1990 (World)
poundforj // (c) 1990 (Japan) poundforj // (c) 1990 (Japan)
poundforu // (c) 1990 Irem America (US) poundforu // (c) 1990 Irem America (US)
airduel // (c) 1990 (Japan) airduelm72 // (c) 1990 (Japan)
airduel // (c) 1990 (World)
cosmccop // (c) 1991 (World) cosmccop // (c) 1991 (World)
gallop // (c) 1991 (Japan) gallop // (c) 1991 (Japan)
ltswords // (c) 1991 (World) ltswords // (c) 1991 (World)

View File

@ -22,7 +22,8 @@ Major Title 1990 M84 N
Hammerin' Harry / Daiku no Gensan 1990 M82(3) N Hammerin' Harry / Daiku no Gensan 1990 M82(3) N
Daiku no Gensan 1990 M72(4) Y Daiku no Gensan 1990 M72(4) Y
Pound for Pound 1990 M85 N 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 Cosmic Cop / 1991 M84 N
Gallop - Armed Police Unit 1991 M72 N Gallop - Armed Police Unit 1991 M72 N
Ken-Go 1991 ? Encrypted 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]); 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] = { static const int a[16] = {
0x00000, 0x00020, 0x03ec0, 0x05640, 0x06dc0, 0x083a0, 0x0c000, 0x0eb60, 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 }; 0x84,0xe6,0xd6,0xca, 0x00,0x00 };
/* Air Duel */ /* Air Duel */
static const UINT8 airduel_code[CODE_LEN] = static const UINT8 airduelm72_code[CODE_LEN] =
{ {
0x68,0x00,0xd0, // push 0d000h 0x68,0x00,0xd0, // push 0d000h
0x1f, // pop ds 0x1f, // pop ds
@ -640,7 +641,7 @@ static const UINT8 airduel_code[CODE_LEN] =
0xc6,0x06,0xc0,0x1c,0x57, // mov [1cc0h], byte 057h 0xc6,0x06,0xc0,0x1c,0x57, // mov [1cc0h], byte 057h
0xea,0x69,0x0b,0x00,0x00 // jmp 0000:$0b69 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 }; 0x00,0x00 };
/* Daiku no Gensan */ /* 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)); 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); install_protection_handler(airduelm72_code,airduelm72_crc);
m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::airduel_sample_trigger_w),this)); 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) 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 AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END 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 ) static ADDRESS_MAP_START( kengo_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram") 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) MCFG_FRAGMENT_ADD(m72_audio_chips)
MACHINE_CONFIG_END 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 */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu",V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(hharryu_map)
MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( airduelm82, rtype2 ) // m82
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(airduelm82_map)
MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu)
MACHINE_CONFIG_END
// 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_PROGRAM_MAP(dbreed_map)
MCFG_CPU_IO_MAP(hharry_portmap) 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) 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_VIDEO_START_OVERRIDE(m72_state,hharry)
MCFG_FRAGMENT_ADD(m72_audio_chips)
MACHINE_CONFIG_END MACHINE_CONFIG_END
// not m72, different video system (less tiles regions?) // not m72, different video system (less tiles regions?)
static MACHINE_CONFIG_START( hharry, m72_state ) static MACHINE_CONFIG_DERIVED( hharry, rtype2 )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */ MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(hharry_map) MCFG_CPU_PROGRAM_MAP(hharry_map)
MCFG_CPU_IO_MAP(hharry_portmap) 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) 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_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 )
/* 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_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)
MACHINE_CONFIG_END MACHINE_CONFIG_END
// not m72, different video system (less tiles regions?) // not m72, different video system (less tiles regions?)
@ -3368,7 +3336,37 @@ ROM_START( poundforu )
ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) ) ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) )
ROM_END ROM_END
ROM_START( airduel ) 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_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "ad-c-h0.bin", 0x00001, 0x20000, CRC(12140276) SHA1(f218c5f2e6795b6295dea064817d7d6b1a7762b6) ) 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-l0.bin", 0x00000, 0x20000, CRC(4ac0b91d) SHA1(97e2f633181cd5c25927fd0e2988af2acdb3f388) )
@ -3402,6 +3400,7 @@ ROM_START( airduel )
ROM_LOAD( "ad-v0.bin", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) ) ROM_LOAD( "ad-v0.bin", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) )
ROM_END ROM_END
ROM_START( cosmccop ) ROM_START( cosmccop )
ROM_REGION( 0x100000, "maincpu", 0 ) ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "cc-d-h0b.bin", 0x00001, 0x40000, CRC(38958b01) SHA1(7d7e217742e33a1fe096adf5bbc93d63ddcfb375) ) 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, 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, 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, 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 ) GAME( 1991, gallop, cosmccop, m72, gallop, m72_state, gallop, ROT0, "Irem", "Gallop - Armed Police Unit (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )

View File

@ -114,7 +114,7 @@ public:
DECLARE_WRITE16_MEMBER(imgfight_sample_trigger_w); DECLARE_WRITE16_MEMBER(imgfight_sample_trigger_w);
DECLARE_WRITE16_MEMBER(loht_sample_trigger_w); DECLARE_WRITE16_MEMBER(loht_sample_trigger_w);
DECLARE_WRITE16_MEMBER(dbreedm72_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(dkgenm72_sample_trigger_w);
DECLARE_WRITE16_MEMBER(gallop_sample_trigger_w); DECLARE_WRITE16_MEMBER(gallop_sample_trigger_w);
DECLARE_READ16_MEMBER(poundfor_trackball_r); DECLARE_READ16_MEMBER(poundfor_trackball_r);
@ -145,7 +145,7 @@ public:
DECLARE_DRIVER_INIT(gallop); DECLARE_DRIVER_INIT(gallop);
DECLARE_DRIVER_INIT(m72_8751); DECLARE_DRIVER_INIT(m72_8751);
DECLARE_DRIVER_INIT(dbreedm72); DECLARE_DRIVER_INIT(dbreedm72);
DECLARE_DRIVER_INIT(airduel); DECLARE_DRIVER_INIT(airduelm72);
DECLARE_DRIVER_INIT(nspirit); DECLARE_DRIVER_INIT(nspirit);
DECLARE_DRIVER_INIT(loht); DECLARE_DRIVER_INIT(loht);
DECLARE_DRIVER_INIT(imgfight); DECLARE_DRIVER_INIT(imgfight);