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

View File

@ -48,6 +48,9 @@ public:
int m_bank1; int m_bank1;
int m_bank2; int m_bank2;
UINT8* m_bankedram;
UINT8* m_ROM;
/* devices */ /* devices */
device_t *m_audiocpu; device_t *m_audiocpu;
device_t *m_subcpu; device_t *m_subcpu;
@ -61,7 +64,7 @@ public:
DECLARE_READ8_MEMBER(arknoid2_sh_f000_r); DECLARE_READ8_MEMBER(arknoid2_sh_f000_r);
DECLARE_READ8_MEMBER(tnzs_mcu_r); DECLARE_READ8_MEMBER(tnzs_mcu_r);
DECLARE_WRITE8_MEMBER(tnzs_mcu_w); 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_WRITE8_MEMBER(tnzs_bankswitch1_w);
DECLARE_READ8_MEMBER(mcu_tnzs_r); DECLARE_READ8_MEMBER(mcu_tnzs_r);
DECLARE_WRITE8_MEMBER(mcu_tnzs_w); DECLARE_WRITE8_MEMBER(mcu_tnzs_w);
@ -74,6 +77,10 @@ public:
DECLARE_WRITE8_MEMBER(kageki_csport_w); DECLARE_WRITE8_MEMBER(kageki_csport_w);
DECLARE_WRITE8_MEMBER(kabukiz_sound_bank_w); DECLARE_WRITE8_MEMBER(kabukiz_sound_bank_w);
DECLARE_WRITE8_MEMBER(kabukiz_sample_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 "cpu/mcs48/mcs48.h"
#include "includes/tnzs.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) READ8_MEMBER(tnzs_state::mcu_tnzs_r)
{ {
@ -538,7 +564,7 @@ DRIVER_INIT( kabukiz )
UINT8 *SOUND = state->memregion("audiocpu")->base(); UINT8 *SOUND = state->memregion("audiocpu")->base();
state->m_mcu_type = MCU_NONE_KABUKIZ; 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 ) DRIVER_INIT( insectx )
@ -657,37 +683,43 @@ MACHINE_RESET( jpopnics )
static void tnzs_postload(running_machine &machine) static void tnzs_postload(running_machine &machine)
{ {
tnzs_state *state = machine.driver_data<tnzs_state>(); 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) MACHINE_START( jpopnics )
space->install_write_bank(0x8000, 0xbfff, "bank1"); {
else tnzs_state *state = machine.driver_data<tnzs_state>();
space->unmap_write(0x8000, 0xbfff); 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 ) MACHINE_START( tnzs )
{ {
tnzs_state *state = machine.driver_data<tnzs_state>(); 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); MACHINE_START_CALL( jpopnics );
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;
state->m_audiocpu = machine.device("audiocpu"); state->m_audiocpu = machine.device("audiocpu");
state->m_subcpu = machine.device("sub");
state->m_mcu = machine.device("mcu"); 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_kageki_csport_sel));
state->save_item(NAME(state->m_input_select)); state->save_item(NAME(state->m_input_select));
state->save_item(NAME(state->m_mcu_readcredits)); 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_credits));
state->save_item(NAME(state->m_mcu_reportcoin)); state->save_item(NAME(state->m_mcu_reportcoin));
state->save_item(NAME(state->m_mcu_command)); 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); // 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 */ /* bits 0-2 select RAM/ROM bank */
m_bank1 = data & 0x07; 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) WRITE8_MEMBER(tnzs_state::tnzs_bankswitch1_w)
@ -798,5 +799,5 @@ WRITE8_MEMBER(tnzs_state::tnzs_bankswitch1_w)
/* bits 0-1 select ROM bank */ /* bits 0-1 select ROM bank */
m_bank2 = data & 0x03; m_bank2 = data & 0x03;
membank("bank2")->set_entry(m_bank2); membank("subbank")->set_entry(m_bank2);
} }