Handle the memory banking manually in tnzs.c, avoiding the periodic crippling slowdowns related to mapping. Also, cleaned up all the rom loading so that we're not using RAM allocated in the ROM_REGIONs .. which may well help with save states too. Fixes MT#4404 [David Haywood]

This commit is contained in:
Scott Stone 2012-07-19 11:30:44 +00:00
parent 94664d3f57
commit dde8dd5fef
3 changed files with 205 additions and 254 deletions

View File

@ -737,7 +737,7 @@ WRITE8_MEMBER(tnzs_state::kabukiz_sound_bank_w)
{
// to avoid the write when the sound chip is initialized
if (data != 0xff)
machine().root_device().membank("bank3")->set_entry(data & 0x07);
machine().root_device().membank("audiobank")->set_entry(data & 0x07);
}
WRITE8_MEMBER(tnzs_state::kabukiz_sample_w)
@ -750,14 +750,14 @@ WRITE8_MEMBER(tnzs_state::kabukiz_sample_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1") /* ROM + RAM */
AM_RANGE(0x8000, 0xbfff) AM_READWRITE( tnzs_ramrom_bank_r, tnzs_ramrom_bank_w ) /* ROM + RAM */
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritecodelow_r8, spritecodelow_w8)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritecodehigh_r8, spritecodehigh_w8)
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xf000, 0xf2ff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spriteylow_r8, spriteylow_w8)
AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_DEVWRITE_LEGACY("spritegen", spritectrl_w8) /* control registers (0x80 mirror used by Arkanoid 2) */
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("spritegen", spritebgflag_w8) /* enable / disable background transparency */
AM_RANGE(0xf600, 0xf600) AM_READNOP AM_WRITE(tnzs_bankswitch_w)
AM_RANGE(0xf600, 0xf600) AM_READNOP AM_WRITE(tnzs_ramrom_bankswitch_w)
/* arknoid2, extrmatn, plumppop and drtoppel have PROMs instead of RAM */
/* drtoppel writes here anyway! (maybe leftover from tests during development) */
/* so the handler is patched out in init_drtopple() */
@ -766,21 +766,21 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu0_type2, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank1") /* ROM + RAM */
AM_RANGE(0x8000, 0xbfff) AM_READWRITE( tnzs_ramrom_bank_r, tnzs_ramrom_bank_w ) /* ROM + RAM */
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritecodelow_r8, spritecodelow_w8)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritecodehigh_r8, spritecodehigh_w8)
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xf000, 0xf2ff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spriteylow_r8, spriteylow_w8)
AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_DEVWRITE_LEGACY("spritegen", spritectrl_w8) /* control registers (0x80 mirror used by Arkanoid 2) */
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("spritegen", spritebgflag_w8) /* enable / disable background transparency */
AM_RANGE(0xf600, 0xf600) AM_WRITE(tnzs_bankswitch_w)
AM_RANGE(0xf600, 0xf600) AM_WRITE(tnzs_ramrom_bankswitch_w)
/* kabukiz still writes here but it's not used (it's paletteram in type1 map) */
AM_RANGE(0xf800, 0xfbff) AM_WRITENOP
ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("subbank")
AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xc000, 0xc001) AM_READWRITE(tnzs_mcu_r, tnzs_mcu_w) /* not present in insectx */
@ -793,7 +793,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kageki_sub_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("subbank")
AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
@ -813,7 +813,7 @@ WRITE8_MEMBER(tnzs_state::tnzsb_sound_command_w)
static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("subbank")
AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
AM_RANGE(0xb002, 0xb002) AM_READ_PORT("DSWA")
AM_RANGE(0xb003, 0xb003) AM_READ_PORT("DSWB")
@ -829,7 +829,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("subbank")
AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
AM_RANGE(0xb002, 0xb002) AM_READ_PORT("DSWA")
AM_RANGE(0xb003, 0xb003) AM_READ_PORT("DSWB")
@ -849,7 +849,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kabukiz_cpu2_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank3")
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("audiobank")
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
@ -889,26 +889,26 @@ WRITE8_MEMBER(tnzs_state::jpopnics_palette_w)
static ADDRESS_MAP_START( jpopnics_main_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xbfff) AM_READWRITE( tnzs_ramrom_bank_r, tnzs_ramrom_bank_w )
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritecodelow_r8, spritecodelow_w8)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritecodehigh_r8, spritecodehigh_w8)
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("share1") /* WORK RAM (shared by the 2 z80's) */
AM_RANGE(0xf000, 0xf2ff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spriteylow_r8, spriteylow_w8)
AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_DEVWRITE_LEGACY("spritegen", spritectrl_w8) /* control registers (0x80 mirror used by Arkanoid 2) */
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("spritegen", spritebgflag_w8) /* enable / disable background transparency */
AM_RANGE(0xf600, 0xf600) AM_READNOP AM_WRITE(tnzs_bankswitch_w)
AM_RANGE(0xf600, 0xf600) AM_READNOP AM_WRITE(tnzs_ramrom_bankswitch_w)
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(jpopnics_palette_w) AM_SHARE("paletteram")
ADDRESS_MAP_END
WRITE8_MEMBER(tnzs_state::jpopnics_subbankswitch_w)
{
/* bits 0-1 select ROM bank */
membank("bank2")->set_entry(data & 0x03);
membank("subbank")->set_entry(data & 0x03);
}
static ADDRESS_MAP_START( jpopnics_sub_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("subbank")
AM_RANGE(0xa000, 0xa000) AM_WRITE(jpopnics_subbankswitch_w)
AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
@ -1931,14 +1931,12 @@ MACHINE_CONFIG_END
***************************************************************************/
ROM_START( plumppop )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "a98-09.bin", 0x00000, 0x08000, CRC(107f9e06) SHA1(0aa7f32721c3cab96eccc7c831b9f57877c4e1dc) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "a98-10.bin", 0x20000, 0x10000, CRC(df6e6af2) SHA1(792f97f587e84cdd67f0d1efe1fd13ea904d7e20) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "a98-09.bin", 0x00000, 0x10000, CRC(107f9e06) SHA1(0aa7f32721c3cab96eccc7c831b9f57877c4e1dc) )
ROM_LOAD( "a98-10.bin", 0x10000, 0x10000, CRC(df6e6af2) SHA1(792f97f587e84cdd67f0d1efe1fd13ea904d7e20) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "a98-11.bin", 0x00000, 0x08000, CRC(bc56775c) SHA1(0c22c22c0e9d7ec0e34f8ab4bfe61068f65e8759) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "a98-11.bin", 0x00000, 0x10000, CRC(bc56775c) SHA1(0c22c22c0e9d7ec0e34f8ab4bfe61068f65e8759) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "plmp8742.bin", 0x0000, 0x0800, NO_DUMP )
@ -1967,14 +1965,11 @@ ROM_START( plumppop )
ROM_END
ROM_START( jpopnics )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "u96cpu2", 0x00000, 0x08000, CRC(649e951c) SHA1(b26bb157da9fcf5d3eddbb637a4cb2cb1b0fedac) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_CONTINUE( 0x20000, 0x10000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "u96cpu2", 0x00000, 0x20000, CRC(649e951c) SHA1(b26bb157da9fcf5d3eddbb637a4cb2cb1b0fedac) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "u124cpu1", 0x00000, 0x08000, CRC(8453e8e4) SHA1(aac1bd501a15f79e3ed566c949504169b2aa762d) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "u124cpu1", 0x00000, 0x10000, CRC(8453e8e4) SHA1(aac1bd501a15f79e3ed566c949504169b2aa762d) )
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_LOAD( "u94gfx", 0x00000, 0x10000, CRC(e49f2fdd) SHA1(6824c6520d0039c062f028e69cbfa7b3790ea756) )
@ -1988,14 +1983,12 @@ ROM_START( jpopnics )
ROM_END
ROM_START( extrmatn )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b06-05.11c", 0x00000, 0x08000, CRC(918e1fe3) SHA1(1aa69e7ae393f275d440b3d5bf817475e443045d) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b06-06.9c", 0x20000, 0x10000, CRC(8842e105) SHA1(68675e77801504c5f67f82fae42f55152ffadebe) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b06-05.11c", 0x00000, 0x10000, CRC(918e1fe3) SHA1(1aa69e7ae393f275d440b3d5bf817475e443045d) )
ROM_LOAD( "b06-06.9c", 0x10000, 0x10000, CRC(8842e105) SHA1(68675e77801504c5f67f82fae42f55152ffadebe) )
ROM_REGION( 0x18000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b06-19.4e", 0x00000, 0x08000, CRC(8de43ed9) SHA1(53e6d8fa93889c38733d169e983f2caf1da71f43) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b06-19.4e", 0x00000, 0x10000, CRC(8de43ed9) SHA1(53e6d8fa93889c38733d169e983f2caf1da71f43) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "extr8742.4f", 0x0000, 0x0800, NO_DUMP ) /* Labeled B06-14 */
@ -2012,14 +2005,12 @@ ROM_START( extrmatn )
ROM_END
ROM_START( extrmatnu )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b06-20.11c", 0x00000, 0x08000, CRC(04e3fc1f) SHA1(b1cf2f79f43fa33d6175368c897f84ec6aa6e746) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b06-21.9c", 0x20000, 0x10000, CRC(1614d6a2) SHA1(f23d465af231ab5653c55748f686d8f25f52394b) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b06-20.11c", 0x00000, 0x10000, CRC(04e3fc1f) SHA1(b1cf2f79f43fa33d6175368c897f84ec6aa6e746) )
ROM_LOAD( "b06-21.9c", 0x10000, 0x10000, CRC(1614d6a2) SHA1(f23d465af231ab5653c55748f686d8f25f52394b) )
ROM_REGION( 0x18000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b06-22.4e", 0x00000, 0x08000, CRC(744f2c84) SHA1(7565c1594c2a3bae1ae45afcbf93363fe2b12d58) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b06-22.4e", 0x00000, 0x10000, CRC(744f2c84) SHA1(7565c1594c2a3bae1ae45afcbf93363fe2b12d58) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "extr8742.4f", 0x0000, 0x0800, NO_DUMP ) /* Labeled B06-14 */
@ -2036,14 +2027,12 @@ ROM_START( extrmatnu )
ROM_END
ROM_START( extrmatnj )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b06-05.11c", 0x00000, 0x08000, CRC(918e1fe3) SHA1(1aa69e7ae393f275d440b3d5bf817475e443045d) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b06-06.9c", 0x20000, 0x10000, CRC(8842e105) SHA1(68675e77801504c5f67f82fae42f55152ffadebe) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b06-05.11c", 0x00000, 0x10000, CRC(918e1fe3) SHA1(1aa69e7ae393f275d440b3d5bf817475e443045d) )
ROM_LOAD( "b06-06.9c", 0x10000, 0x10000, CRC(8842e105) SHA1(68675e77801504c5f67f82fae42f55152ffadebe) )
ROM_REGION( 0x18000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b06-07.4e", 0x00000, 0x08000, CRC(b37fb8b3) SHA1(10696914b9e39d34d56069a69b9d641339ea2309) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b06-07.4e", 0x00000, 0x10000, CRC(b37fb8b3) SHA1(10696914b9e39d34d56069a69b9d641339ea2309) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "extr8742.4f", 0x0000, 0x0800, NO_DUMP ) /* Labeled B06-14 */
@ -2060,14 +2049,12 @@ ROM_START( extrmatnj )
ROM_END
ROM_START( arknoid2 )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b08_05.11c", 0x00000, 0x08000, CRC(136edf9d) SHA1(f632321650897eee585511a84f451a205d1f7704) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
/* 20000-2ffff empty */
ROM_REGION( 0x20000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b08_05.11c", 0x00000, 0x10000, CRC(136edf9d) SHA1(f632321650897eee585511a84f451a205d1f7704) )
/* 0x10000 - 0x1ffff empty */
ROM_REGION( 0x18000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b08_13.3e", 0x00000, 0x08000, CRC(e8035ef1) SHA1(9a54e952cff0036c4b6affd9ffb1097cdccbe255) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b08_13.3e", 0x00000, 0x10000, CRC(e8035ef1) SHA1(9a54e952cff0036c4b6affd9ffb1097cdccbe255) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "ark28742.3g", 0x0000, 0x0800, NO_DUMP )
@ -2084,14 +2071,12 @@ ROM_START( arknoid2 )
ROM_END
ROM_START( arknoid2u )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b08_11.11c", 0x00000, 0x08000, CRC(99555231) SHA1(2798f3f5b3f1fa27598fe7a6e95c75d9142c8d34) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
/* 20000-2ffff empty */
ROM_REGION( 0x20000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b08_11.11c", 0x00000, 0x10000, CRC(99555231) SHA1(2798f3f5b3f1fa27598fe7a6e95c75d9142c8d34) )
/* 0x10000 - 0x1ffff empty */
ROM_REGION( 0x18000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b08_12.3e", 0x00000, 0x08000, CRC(dc84e27d) SHA1(d549d8c9fbec0521517f0c5f5cee763e27d48633) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b08_12.3e", 0x00000, 0x10000, CRC(dc84e27d) SHA1(d549d8c9fbec0521517f0c5f5cee763e27d48633) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "ark28742.3g", 0x0000, 0x0800, NO_DUMP )
@ -2108,14 +2093,12 @@ ROM_START( arknoid2u )
ROM_END
ROM_START( arknoid2j )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b08_05.11c", 0x00000, 0x08000, CRC(136edf9d) SHA1(f632321650897eee585511a84f451a205d1f7704) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
/* 20000-2ffff empty */
ROM_REGION( 0x20000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "b08_05.11c", 0x00000, 0x10000, CRC(136edf9d) SHA1(f632321650897eee585511a84f451a205d1f7704) )
/* 0x10000 - 0x1ffff empty */
ROM_REGION( 0x18000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b08_06.3e", 0x00000, 0x08000, CRC(adfcd40c) SHA1(f91299407ed21e2dd244c9b1a315b27ed32f5514) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b08_06.3e", 0x00000, 0x10000, CRC(adfcd40c) SHA1(f91299407ed21e2dd244c9b1a315b27ed32f5514) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "ark28742.3g", 0x0000, 0x0800, NO_DUMP )
@ -2132,14 +2115,12 @@ ROM_START( arknoid2j )
ROM_END
ROM_START( arknoid2b )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "boot.11c", 0x00000, 0x08000, CRC(3847dfb0) SHA1(993c8af3df7a4d5a2523f0e31a6df1c07ba13c7d) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
/* 20000-2ffff empty */
ROM_REGION( 0x20000, "maincpu", 0 ) /* Region 0 - main cpu */
ROM_LOAD( "boot.11c", 0x00000, 0x10000, CRC(3847dfb0) SHA1(993c8af3df7a4d5a2523f0e31a6df1c07ba13c7d) )
/* 0x10000 - 0x1ffff empty */
ROM_REGION( 0x18000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b08_13.3e", 0x00000, 0x08000, CRC(e8035ef1) SHA1(9a54e952cff0036c4b6affd9ffb1097cdccbe255) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* Region 2 - sound cpu */
ROM_LOAD( "b08_13.3e", 0x00000, 0x10000, CRC(e8035ef1) SHA1(9a54e952cff0036c4b6affd9ffb1097cdccbe255) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "ark28742.3g", 0x0000, 0x0800, NO_DUMP )
@ -2156,14 +2137,12 @@ ROM_START( arknoid2b )
ROM_END
ROM_START( drtoppel )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b19-09.11c", 0x00000, 0x08000, CRC(3e654f82) SHA1(d9e351d82546b08eb7887ea1d976fa97a259db6e) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b19-10.9c", 0x20000, 0x10000, CRC(7e72fd25) SHA1(6035e4db75e6dc57b13bb6e92217d1c2d0ffdfd2) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b19-09.11c", 0x00000, 0x10000, CRC(3e654f82) SHA1(d9e351d82546b08eb7887ea1d976fa97a259db6e) )
ROM_LOAD( "b19-10.9c", 0x10000, 0x10000, CRC(7e72fd25) SHA1(6035e4db75e6dc57b13bb6e92217d1c2d0ffdfd2) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b19-15.3e", 0x00000, 0x08000, CRC(37a0d3fb) SHA1(f65fb9382af5f5b09725c39b660c5138b3912f53) ) /* Hacked??, need correct Taito rom number */
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b19-15.3e", 0x00000, 0x10000, CRC(37a0d3fb) SHA1(f65fb9382af5f5b09725c39b660c5138b3912f53) ) /* Hacked??, need correct Taito rom number */
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "drt8742.3g", 0x0000, 0x0800, NO_DUMP ) /* Labeled B06-14, reused from Extermination, under printed label "Taito M-001, 128P, 720100" */
@ -2184,14 +2163,12 @@ ROM_START( drtoppel )
ROM_END
ROM_START( drtoppelu )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b19-09.11c", 0x00000, 0x08000, CRC(3e654f82) SHA1(d9e351d82546b08eb7887ea1d976fa97a259db6e) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b19-10.9c", 0x20000, 0x10000, CRC(7e72fd25) SHA1(6035e4db75e6dc57b13bb6e92217d1c2d0ffdfd2) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b19-09.11c", 0x00000, 0x10000, CRC(3e654f82) SHA1(d9e351d82546b08eb7887ea1d976fa97a259db6e) )
ROM_LOAD( "b19-10.9c", 0x10000, 0x10000, CRC(7e72fd25) SHA1(6035e4db75e6dc57b13bb6e92217d1c2d0ffdfd2) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b19-14.3e", 0x00000, 0x08000, CRC(05565b22) SHA1(d1aa47b438d3b44c5177337809e38b50f6445c36) ) /* Hacked??, need correct Taito rom number */
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b19-14.3e", 0x00000, 0x10000, CRC(05565b22) SHA1(d1aa47b438d3b44c5177337809e38b50f6445c36) ) /* Hacked??, need correct Taito rom number */
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "drt8742.3g", 0x0000, 0x0800, NO_DUMP ) /* Labeled B06-14, reused from Extermination, under printed label "Taito M-001, 128P, 720100" */
@ -2212,14 +2189,12 @@ ROM_START( drtoppelu )
ROM_END
ROM_START( drtoppelj )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b19-09.11c", 0x00000, 0x08000, CRC(3e654f82) SHA1(d9e351d82546b08eb7887ea1d976fa97a259db6e) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b19-10.9c", 0x20000, 0x10000, CRC(7e72fd25) SHA1(6035e4db75e6dc57b13bb6e92217d1c2d0ffdfd2) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b19-09.11c", 0x00000, 0x10000, CRC(3e654f82) SHA1(d9e351d82546b08eb7887ea1d976fa97a259db6e) )
ROM_LOAD( "b19-10.9c", 0x10000, 0x10000, CRC(7e72fd25) SHA1(6035e4db75e6dc57b13bb6e92217d1c2d0ffdfd2) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b19-11.3e", 0x00000, 0x08000, CRC(524dc249) SHA1(158b2de0fcd17ad16ba72bb24888122bf704e216) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b19-11.3e", 0x00000, 0x10000, CRC(524dc249) SHA1(158b2de0fcd17ad16ba72bb24888122bf704e216) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "drt8742.3g", 0x0000, 0x0800, NO_DUMP ) /* Labeled B06-14, reused from Extermination, under printed label "Taito M-001, 128P, 720100" */
@ -2240,14 +2215,12 @@ ROM_START( drtoppelj )
ROM_END
ROM_START( kageki )
ROM_REGION( 0x30000, "maincpu", 0 )
ROM_LOAD( "b35-16.11c", 0x00000, 0x08000, CRC(a4e6fd58) SHA1(7cfe5b3fa6c88cdab45719f5b58541270825ad30) ) /* US ver */
ROM_CONTINUE( 0x18000, 0x08000 )
ROM_LOAD( "b35-10.9c", 0x20000, 0x10000, CRC(b150457d) SHA1(a58e46e7dfdc93c2cc7c04d623d7754f85ba693b) )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "b35-16.11c", 0x00000, 0x10000, CRC(a4e6fd58) SHA1(7cfe5b3fa6c88cdab45719f5b58541270825ad30) ) /* US ver */
ROM_LOAD( "b35-10.9c", 0x10000, 0x10000, CRC(b150457d) SHA1(a58e46e7dfdc93c2cc7c04d623d7754f85ba693b) )
ROM_REGION( 0x18000, "sub", 0 )
ROM_LOAD( "b35-17.43e", 0x00000, 0x08000, CRC(fdd9c246) SHA1(ac7a59ed19d0d81748cabd8b77a6ba3937e3cc99) ) /* US ver */
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x10000, "sub", 0 )
ROM_LOAD( "b35-17.43e", 0x00000, 0x10000, CRC(fdd9c246) SHA1(ac7a59ed19d0d81748cabd8b77a6ba3937e3cc99) ) /* US ver */
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_LOAD( "b35-01.13a", 0x00000, 0x20000, CRC(01d83a69) SHA1(92a84329306b58a45f7bb443a8642eeaeb04d553) )
@ -2264,14 +2237,12 @@ ROM_START( kageki )
ROM_END
ROM_START( kagekij )
ROM_REGION( 0x30000, "maincpu", 0 )
ROM_LOAD( "b35-09.11c", 0x00000, 0x08000, CRC(829637d5) SHA1(0239ae925968336a90cbe16e23519773b6f2f2ac) ) /* JP ver */
ROM_CONTINUE( 0x18000, 0x08000 )
ROM_LOAD( "b35-10.9c", 0x20000, 0x10000, CRC(b150457d) SHA1(a58e46e7dfdc93c2cc7c04d623d7754f85ba693b) )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "b35-09.11c", 0x00000, 0x10000, CRC(829637d5) SHA1(0239ae925968336a90cbe16e23519773b6f2f2ac) ) /* JP ver */
ROM_LOAD( "b35-10.9c", 0x10000, 0x10000, CRC(b150457d) SHA1(a58e46e7dfdc93c2cc7c04d623d7754f85ba693b) )
ROM_REGION( 0x18000, "sub", 0 )
ROM_LOAD( "b35-11.43e", 0x00000, 0x08000, CRC(64d093fc) SHA1(3ca3f69d8946c453c0edb8586b92e2948a2d0b6c) ) /* JP ver */
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x10000, "sub", 0 )
ROM_LOAD( "b35-11.43e", 0x00000, 0x10000, CRC(64d093fc) SHA1(3ca3f69d8946c453c0edb8586b92e2948a2d0b6c) ) /* JP ver */
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_LOAD( "b35-01.13a", 0x00000, 0x20000, CRC(01d83a69) SHA1(92a84329306b58a45f7bb443a8642eeaeb04d553) )
@ -2292,14 +2263,12 @@ ROM_END
*/
ROM_START( kagekih )
ROM_REGION( 0x30000, "maincpu", 0 )
ROM_LOAD( "b35_16.11c", 0x00000, 0x08000, CRC(1cf67603) SHA1(0627285ac69e44312d7694c64b96a81489d8663c) ) /* hacked ver */
ROM_CONTINUE( 0x18000, 0x08000 )
ROM_LOAD( "b35-10.9c", 0x20000, 0x10000, CRC(b150457d) SHA1(a58e46e7dfdc93c2cc7c04d623d7754f85ba693b) )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "b35_16.11c", 0x00000, 0x10000, CRC(1cf67603) SHA1(0627285ac69e44312d7694c64b96a81489d8663c) ) /* hacked ver */
ROM_LOAD( "b35-10.9c", 0x10000, 0x10000, CRC(b150457d) SHA1(a58e46e7dfdc93c2cc7c04d623d7754f85ba693b) )
ROM_REGION( 0x18000, "sub", 0 )
ROM_LOAD( "b35-11.43e", 0x00000, 0x08000, CRC(64d093fc) SHA1(3ca3f69d8946c453c0edb8586b92e2948a2d0b6c) ) /* JP ver */
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x10000, "sub", 0 )
ROM_LOAD( "b35-11.43e", 0x00000, 0x10000, CRC(64d093fc) SHA1(3ca3f69d8946c453c0edb8586b92e2948a2d0b6c) ) /* JP ver */
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_LOAD( "b35-01.13a", 0x00000, 0x20000, CRC(01d83a69) SHA1(92a84329306b58a45f7bb443a8642eeaeb04d553) )
@ -2356,14 +2325,12 @@ Notes:
*/
ROM_START( chukatai )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b44-10", 0x00000, 0x08000, CRC(8c69e008) SHA1(7825965f517f3562a508345b7c0d32b8a57bd38a) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b44-11", 0x20000, 0x10000, CRC(32484094) SHA1(f320fea2910816b5085ca9aa37e30af665fb6be1) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b44-10", 0x00000, 0x10000, CRC(8c69e008) SHA1(7825965f517f3562a508345b7c0d32b8a57bd38a) )
ROM_LOAD( "b44-11", 0x10000, 0x10000, CRC(32484094) SHA1(f320fea2910816b5085ca9aa37e30af665fb6be1) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b44-12w", 0x00000, 0x08000, CRC(e80ecdca) SHA1(cd96403ca97f18f630118dcb3dc2179c01147213) ) /* Hacked??, need correct Taito rom number */
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b44-12w", 0x00000, 0x10000, CRC(e80ecdca) SHA1(cd96403ca97f18f630118dcb3dc2179c01147213) ) /* Hacked??, need correct Taito rom number */
ROM_REGION( 0x10000, "mcu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "b44-8742.mcu", 0x0000, 0x0800, CRC(7dff3f9f) SHA1(bbf4e036d025fe8179b053d639f9b8ad401e6e68) )
@ -2380,14 +2347,12 @@ ROM_START( chukatai )
ROM_END
ROM_START( chukataiu )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b44-10", 0x00000, 0x08000, CRC(8c69e008) SHA1(7825965f517f3562a508345b7c0d32b8a57bd38a) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b44-11", 0x20000, 0x10000, CRC(32484094) SHA1(f320fea2910816b5085ca9aa37e30af665fb6be1) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b44-10", 0x00000, 0x10000, CRC(8c69e008) SHA1(7825965f517f3562a508345b7c0d32b8a57bd38a) )
ROM_LOAD( "b44-11", 0x10000, 0x10000, CRC(32484094) SHA1(f320fea2910816b5085ca9aa37e30af665fb6be1) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b44-12u", 0x00000, 0x08000, CRC(9f09fd5c) SHA1(ae92f2e893e1e666dcabbd793f1a778c5e3d7bab) ) /* Hacked??, need correct Taito rom number */
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b44-12u", 0x00000, 0x10000, CRC(9f09fd5c) SHA1(ae92f2e893e1e666dcabbd793f1a778c5e3d7bab) ) /* Hacked??, need correct Taito rom number */
ROM_REGION( 0x1000, "mcu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "b44-8742.mcu", 0x0000, 0x0800, CRC(7dff3f9f) SHA1(bbf4e036d025fe8179b053d639f9b8ad401e6e68) )
@ -2404,14 +2369,12 @@ ROM_START( chukataiu )
ROM_END
ROM_START( chukataij )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b44-10", 0x00000, 0x08000, CRC(8c69e008) SHA1(7825965f517f3562a508345b7c0d32b8a57bd38a) )
ROM_CONTINUE( 0x18000, 0x08000 ) /* banked at 8000-bfff */
ROM_LOAD( "b44-11", 0x20000, 0x10000, CRC(32484094) SHA1(f320fea2910816b5085ca9aa37e30af665fb6be1) ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b44-10", 0x00000, 0x10000, CRC(8c69e008) SHA1(7825965f517f3562a508345b7c0d32b8a57bd38a) )
ROM_LOAD( "b44-11", 0x10000, 0x10000, CRC(32484094) SHA1(f320fea2910816b5085ca9aa37e30af665fb6be1) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b44-12", 0x00000, 0x08000, CRC(0600ace6) SHA1(3d5767b91ea63128bfbff3527ddcf90fcf43af2e) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b44-12", 0x00000, 0x10000, CRC(0600ace6) SHA1(3d5767b91ea63128bfbff3527ddcf90fcf43af2e) )
ROM_REGION( 0x10000, "mcu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "b44-8742.mcu", 0x0000, 0x0800, CRC(7dff3f9f) SHA1(bbf4e036d025fe8179b053d639f9b8ad401e6e68) )
@ -2503,13 +2466,11 @@ Notes:
/* tnzs - new style PCB sets */
ROM_START( tnzs )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b53-24.1", 0x00000, 0x08000, CRC(d66824c6) SHA1(fd381ac0dc52ce670c3fde320ea60a209e288a52) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b53-24.1", 0x00000, 0x20000, CRC(d66824c6) SHA1(fd381ac0dc52ce670c3fde320ea60a209e288a52) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b53-25.3", 0x00000, 0x08000, CRC(d6ac4e71) SHA1(f3e71624a8a5e4e4c8a6aa01711ed26bdd5abf5a) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b53-25.3", 0x00000, 0x10000, CRC(d6ac4e71) SHA1(f3e71624a8a5e4e4c8a6aa01711ed26bdd5abf5a) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */
ROM_LOAD( "b53-26.34", 0x00000, 0x10000, CRC(cfd5649c) SHA1(4f6afccd535d39b41661dc3ccd17af125bfac015) )
@ -2526,13 +2487,11 @@ ROM_START( tnzs )
ROM_END
ROM_START( tnzsj )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b53-24.1", 0x00000, 0x08000, CRC(d66824c6) SHA1(fd381ac0dc52ce670c3fde320ea60a209e288a52) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b53-24.1", 0x00000, 0x20000, CRC(d66824c6) SHA1(fd381ac0dc52ce670c3fde320ea60a209e288a52) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b53-27.u3", 0x00000, 0x08000, CRC(b3415fc3) SHA1(a12b1788509e2ac2b05a083f432eecdce00769f6) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b53-27.u3", 0x00000, 0x10000, CRC(b3415fc3) SHA1(a12b1788509e2ac2b05a083f432eecdce00769f6) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */
ROM_LOAD( "b53-26.34", 0x00000, 0x10000, CRC(cfd5649c) SHA1(4f6afccd535d39b41661dc3ccd17af125bfac015) )
@ -2551,13 +2510,11 @@ ROM_END
/* tnzs - old style PCB sets */
ROM_START( tnzsjo )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b53-10.32", 0x00000, 0x08000, CRC(a73745c6) SHA1(73eb38e75e08312d752332f988dc655084b4a86d) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b53-10.32", 0x00000, 0x20000, CRC(a73745c6) SHA1(73eb38e75e08312d752332f988dc655084b4a86d) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b53-11.38", 0x00000, 0x08000, CRC(9784d443) SHA1(bc3647aac9974031dbe4898417fbaa99841f9548) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b53-11.38", 0x00000, 0x10000, CRC(9784d443) SHA1(bc3647aac9974031dbe4898417fbaa99841f9548) )
ROM_REGION( 0x10000, "mcu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "b53-09.u46", 0x0000, 0x0800, CRC(a4bfce19) SHA1(9340862d5bdc1ad4799dc92cae9bce1428b47478) )
@ -2575,13 +2532,11 @@ ROM_START( tnzsjo )
ROM_END
ROM_START( tnzso )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "u32", 0x00000, 0x08000, CRC(edf3b39e) SHA1(be221c99e50795d569611dba454c3954a259a859) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "u32", 0x00000, 0x20000, CRC(edf3b39e) SHA1(be221c99e50795d569611dba454c3954a259a859) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "u38", 0x00000, 0x08000, CRC(60340d63) SHA1(12a26d19dc8e407e502f25617a5a4c9cea131ce2) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "u38", 0x00000, 0x10000, CRC(60340d63) SHA1(12a26d19dc8e407e502f25617a5a4c9cea131ce2) )
ROM_REGION( 0x10000, "mcu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "b53-06.u46", 0x0000, 0x0800, CRC(a4bfce19) SHA1(9340862d5bdc1ad4799dc92cae9bce1428b47478) )
@ -2599,13 +2554,11 @@ ROM_END
ROM_END
ROM_START( tnzsop )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "ns_c-11.rom", 0x00000, 0x08000, CRC(3c1dae7b) SHA1(0004fccc171714c80565326f8690f9662c5b75d9) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "ns_c-11.rom", 0x00000, 0x20000, CRC(3c1dae7b) SHA1(0004fccc171714c80565326f8690f9662c5b75d9) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "ns_e-3.rom", 0x00000, 0x08000, CRC(c7662e96) SHA1(be28298bfde4e3867cfe75633ffb0f8611dbbd8b) )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "ns_e-3.rom", 0x00000, 0x10000, CRC(c7662e96) SHA1(be28298bfde4e3867cfe75633ffb0f8611dbbd8b) )
ROM_REGION( 0x10000, "mcu", 0 ) /* M-Chip (i8742 internal ROM) */
ROM_LOAD( "b53-09.u46", 0x0000, 0x0800, CRC(a4bfce19) SHA1(9340862d5bdc1ad4799dc92cae9bce1428b47478) )
@ -2667,17 +2620,14 @@ Notes:
*/
ROM_START( kabukiz )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b50-05.u1", 0x00000, 0x08000, CRC(9cccb129) SHA1(054faf7657bad7237182e36bcc4388b1748af935) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b50-05.u1", 0x00000, 0x20000, CRC(9cccb129) SHA1(054faf7657bad7237182e36bcc4388b1748af935) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b50-08.1e", 0x00000, 0x08000, CRC(cb92d34c) SHA1(3a666f0e3ff9d3daa599123edee228d94eeae754) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b50-08.1e", 0x00000, 0x10000, CRC(cb92d34c) SHA1(3a666f0e3ff9d3daa599123edee228d94eeae754) )
ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k + bankswitch areas for the third CPU */
ROM_LOAD( "b50-07.u34", 0x00000, 0x08000, CRC(bf7fc2ed) SHA1(77008d12d9bdbfa100dcd87cd6ca7de3748408c5) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k + bankswitch areas for the third CPU */
ROM_LOAD( "b50-07.u34", 0x00000, 0x20000, CRC(bf7fc2ed) SHA1(77008d12d9bdbfa100dcd87cd6ca7de3748408c5) )
ROM_REGION( 0x200000, "gfx1", 0 )
ROM_LOAD( "b50-04.u35", 0x000000, 0x80000, CRC(04829aa9) SHA1(a501ec7c802478fc41ec8ef4270b1a6872bcbf34) )
@ -2687,17 +2637,14 @@ ROM_START( kabukiz )
ROM_END
ROM_START( kabukizj )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b50-05.u1", 0x00000, 0x08000, CRC(9cccb129) SHA1(054faf7657bad7237182e36bcc4388b1748af935) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b50-05.u1", 0x00000, 0x20000, CRC(9cccb129) SHA1(054faf7657bad7237182e36bcc4388b1748af935) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b50-06.u3", 0x00000, 0x08000, CRC(45650aab) SHA1(00d1fc6044a6ad1e82476ccbe730907b4d780cb9) )
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b50-06.u3", 0x00000, 0x10000, CRC(45650aab) SHA1(00d1fc6044a6ad1e82476ccbe730907b4d780cb9) )
ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k + bankswitch areas for the third CPU */
ROM_LOAD( "b50-07.u34", 0x00000, 0x08000, CRC(bf7fc2ed) SHA1(77008d12d9bdbfa100dcd87cd6ca7de3748408c5) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k + bankswitch areas for the third CPU */
ROM_LOAD( "b50-07.u34", 0x00000, 0x20000, CRC(bf7fc2ed) SHA1(77008d12d9bdbfa100dcd87cd6ca7de3748408c5) )
ROM_REGION( 0x200000, "gfx1", 0 )
ROM_LOAD( "b50-04.u35", 0x000000, 0x80000, CRC(04829aa9) SHA1(a501ec7c802478fc41ec8ef4270b1a6872bcbf34) )
@ -2707,13 +2654,11 @@ ROM_START( kabukizj )
ROM_END
ROM_START( insectx )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b97-03.u32", 0x00000, 0x08000, CRC(18eef387) SHA1(b22633930d39be1e72fbd5b080972122da3cb3ef) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b97-03.u32", 0x00000, 0x20000, CRC(18eef387) SHA1(b22633930d39be1e72fbd5b080972122da3cb3ef) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b97-07.u38", 0x00000, 0x08000, CRC(324b28c9) SHA1(db77a4ac60196d0f0f35dbc5c951ec29d6392463) ) /* Label is B97 07* with an astrix */
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b97-07.u38", 0x00000, 0x10000, CRC(324b28c9) SHA1(db77a4ac60196d0f0f35dbc5c951ec29d6392463) ) /* Label is B97 07* with an astrix */
ROM_REGION( 0x100000, "gfx1", 0 ) /* Mask roms */
ROM_LOAD( "b97-01.u1", 0x00000, 0x80000, CRC(d00294b1) SHA1(f43a4f7d13193ddbbcdef71a5085c1db0fc062d4) )
@ -2721,13 +2666,11 @@ ROM_START( insectx )
ROM_END
ROM_START( insectxj )
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b97-03.u32", 0x00000, 0x08000, CRC(18eef387) SHA1(b22633930d39be1e72fbd5b080972122da3cb3ef) )
ROM_CONTINUE( 0x18000, 0x18000 ) /* banked at 8000-bfff */
ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */
ROM_LOAD( "b97-03.u32", 0x00000, 0x20000, CRC(18eef387) SHA1(b22633930d39be1e72fbd5b080972122da3cb3ef) )
ROM_REGION( 0x18000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b97-04.u38", 0x00000, 0x08000, CRC(dc4549e5) SHA1(9920f7c12e047ee165418d33b3add51ea615df7e) ) /* Label is B97 04* with an astrix */
ROM_CONTINUE( 0x10000, 0x08000 ) /* banked at 8000-9fff */
ROM_REGION( 0x10000, "sub", 0 ) /* 64k for the second CPU */
ROM_LOAD( "b97-04.u38", 0x00000, 0x10000, CRC(dc4549e5) SHA1(9920f7c12e047ee165418d33b3add51ea615df7e) ) /* Label is B97 04* with an astrix */
ROM_REGION( 0x100000, "gfx1", 0 ) /* Mask roms */
ROM_LOAD( "b97-01.u1", 0x00000, 0x80000, CRC(d00294b1) SHA1(f43a4f7d13193ddbbcdef71a5085c1db0fc062d4) )

View File

@ -48,6 +48,9 @@ public:
int m_bank1;
int m_bank2;
UINT8* m_bankedram;
UINT8* m_ROM;
/* devices */
device_t *m_audiocpu;
device_t *m_subcpu;
@ -61,7 +64,7 @@ public:
DECLARE_READ8_MEMBER(arknoid2_sh_f000_r);
DECLARE_READ8_MEMBER(tnzs_mcu_r);
DECLARE_WRITE8_MEMBER(tnzs_mcu_w);
DECLARE_WRITE8_MEMBER(tnzs_bankswitch_w);
DECLARE_WRITE8_MEMBER(tnzs_ramrom_bankswitch_w);
DECLARE_WRITE8_MEMBER(tnzs_bankswitch1_w);
DECLARE_READ8_MEMBER(mcu_tnzs_r);
DECLARE_WRITE8_MEMBER(mcu_tnzs_w);
@ -74,6 +77,10 @@ public:
DECLARE_WRITE8_MEMBER(kageki_csport_w);
DECLARE_WRITE8_MEMBER(kabukiz_sound_bank_w);
DECLARE_WRITE8_MEMBER(kabukiz_sample_w);
DECLARE_READ8_MEMBER(tnzs_ramrom_bank_r);
DECLARE_WRITE8_MEMBER(tnzs_ramrom_bank_w);
};

View File

@ -16,6 +16,32 @@
#include "cpu/mcs48/mcs48.h"
#include "includes/tnzs.h"
READ8_MEMBER(tnzs_state::tnzs_ramrom_bank_r)
{
// the first 2 banks would correspond to the fixed section of ROM, since this is
// a waste of time the hardware maps 2 banks of RAM there instead.
if (m_bank1<2)
{
return m_bankedram[m_bank1 * 0x4000 + offset];
}
else
{
return m_ROM[m_bank1 * 0x4000 + offset];
}
}
WRITE8_MEMBER(tnzs_state::tnzs_ramrom_bank_w)
{
if (m_bank1<2)
{
m_bankedram[m_bank1 * 0x4000 + offset] = data;
}
else
{
// illegal write to ROM
}
}
READ8_MEMBER(tnzs_state::mcu_tnzs_r)
{
@ -538,7 +564,7 @@ DRIVER_INIT( kabukiz )
UINT8 *SOUND = state->memregion("audiocpu")->base();
state->m_mcu_type = MCU_NONE_KABUKIZ;
state->membank("bank3")->configure_entries(0, 8, &SOUND[0x10000], 0x4000);
state->membank("audiobank")->configure_entries(0, 8, &SOUND[0x00000], 0x4000);
}
DRIVER_INIT( insectx )
@ -657,37 +683,43 @@ MACHINE_RESET( jpopnics )
static void tnzs_postload(running_machine &machine)
{
tnzs_state *state = machine.driver_data<tnzs_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
state->membank("subbank")->set_entry(state->m_bank2);
}
state->membank("bank1")->set_entry(state->m_bank1);
state->membank("bank2")->set_entry(state->m_bank2);
if (state->m_bank1 <= 1)
space->install_write_bank(0x8000, 0xbfff, "bank1");
else
space->unmap_write(0x8000, 0xbfff);
MACHINE_START( jpopnics )
{
tnzs_state *state = machine.driver_data<tnzs_state>();
UINT8 *SUB = state->memregion("sub")->base();
state->m_ROM = machine.root_device().memregion("maincpu")->base();
state->m_bankedram = auto_alloc_array(machine, UINT8, 0x8000); // 2 banks of 0x4000
state->membank("subbank")->configure_entries(0, 4, &SUB[0x08000], 0x2000);
state->membank("subbank")->set_entry(state->m_bank2);
state->m_subcpu = machine.device("sub");
state->m_mcu = NULL;
state->m_bank1 = 2;
state->m_bank2 = 0;
state->save_item(NAME(*state->m_bankedram));
state->save_item(NAME(state->m_screenflip));
state->save_item(NAME(state->m_bank1));
state->save_item(NAME(state->m_bank2));
machine.save().register_postload(save_prepost_delegate(FUNC(tnzs_postload), &machine));
}
MACHINE_START( tnzs )
{
tnzs_state *state = machine.driver_data<tnzs_state>();
UINT8 *ROM = state->memregion("maincpu")->base();
UINT8 *SUB = state->memregion("sub")->base();
state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
state->membank("bank2")->configure_entries(0, 4, &SUB[0x10000], 0x2000);
state->membank("bank1")->set_entry(2);
state->membank("bank2")->set_entry(0);
state->m_bank1 = 2;
state->m_bank2 = 0;
MACHINE_START_CALL( jpopnics );
state->m_audiocpu = machine.device("audiocpu");
state->m_subcpu = machine.device("sub");
state->m_mcu = machine.device("mcu");
state->save_item(NAME(state->m_screenflip));
state->save_item(NAME(state->m_kageki_csport_sel));
state->save_item(NAME(state->m_input_select));
state->save_item(NAME(state->m_mcu_readcredits));
@ -700,36 +732,11 @@ MACHINE_START( tnzs )
state->save_item(NAME(state->m_mcu_credits));
state->save_item(NAME(state->m_mcu_reportcoin));
state->save_item(NAME(state->m_mcu_command));
state->save_item(NAME(state->m_bank1));
state->save_item(NAME(state->m_bank2));
machine.save().register_postload(save_prepost_delegate(FUNC(tnzs_postload), &machine));
}
MACHINE_START( jpopnics )
{
tnzs_state *state = machine.driver_data<tnzs_state>();
UINT8 *ROM = state->memregion("maincpu")->base();
UINT8 *SUB = state->memregion("sub")->base();
state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
state->membank("bank2")->configure_entries(0, 4, &SUB[0x10000], 0x2000);
state->m_subcpu = machine.device("sub");
state->m_mcu = NULL;
state->m_bank1 = 2;
state->m_bank2 = 0;
state->save_item(NAME(state->m_screenflip));
state->save_item(NAME(state->m_bank1));
state->save_item(NAME(state->m_bank2));
machine.save().register_postload(save_prepost_delegate(FUNC(tnzs_postload), &machine));
}
WRITE8_MEMBER(tnzs_state::tnzs_bankswitch_w)
WRITE8_MEMBER(tnzs_state::tnzs_ramrom_bankswitch_w)
{
// logerror("PC %04x: writing %02x to bankswitch\n", cpu_get_pc(&space.device()),data);
@ -742,12 +749,6 @@ WRITE8_MEMBER(tnzs_state::tnzs_bankswitch_w)
/* bits 0-2 select RAM/ROM bank */
m_bank1 = data & 0x07;
membank("bank1")->set_entry(m_bank1);
if (m_bank1 <= 1)
space.install_write_bank(0x8000, 0xbfff, "bank1");
else
space.unmap_write(0x8000, 0xbfff);
}
WRITE8_MEMBER(tnzs_state::tnzs_bankswitch1_w)
@ -798,5 +799,5 @@ WRITE8_MEMBER(tnzs_state::tnzs_bankswitch1_w)
/* bits 0-1 select ROM bank */
m_bank2 = data & 0x03;
membank("bank2")->set_entry(m_bank2);
membank("subbank")->set_entry(m_bank2);
}