From dde8dd5fef712af670a4657898d5d40e949ab744 Mon Sep 17 00:00:00 2001 From: Scott Stone Date: Thu, 19 Jul 2012 11:30:44 +0000 Subject: [PATCH] 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] --- src/mame/drivers/tnzs.c | 343 ++++++++++++++++----------------------- src/mame/includes/tnzs.h | 9 +- src/mame/machine/tnzs.c | 107 ++++++------ 3 files changed, 205 insertions(+), 254 deletions(-) diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c index 902c237ed70..65aafd762b8 100644 --- a/src/mame/drivers/tnzs.c +++ b/src/mame/drivers/tnzs.c @@ -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) ) diff --git a/src/mame/includes/tnzs.h b/src/mame/includes/tnzs.h index 097c60cb55c..cc1e57064f1 100644 --- a/src/mame/includes/tnzs.h +++ b/src/mame/includes/tnzs.h @@ -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); + }; diff --git a/src/mame/machine/tnzs.c b/src/mame/machine/tnzs.c index 18e3fc17fab..8d35913fc2b 100644 --- a/src/mame/machine/tnzs.c +++ b/src/mame/machine/tnzs.c @@ -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(); - 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(); + 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(); - 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(); - 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); }