From 70c9f899957d0472aa2756ea30f576a79ad78468 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 17 May 2018 08:32:59 +0900 Subject: toaplan2.cpp, gp9001.cpp Cleanups (#3460) * toaplan2.cpp : Reduce duplicates, Unnecessary things, Runtime tag lookups, Fix DMA'd palette/text things, Add input_merger_any_high_device for batrider sound IRQ gp9001.cpp : Minor cleanups, Reduce duplicates, Make sprite draw function related by MAX_SPRITE (it's possibly lower than 256 at real hardware), Add notes * gp9001.cpp : Add notes * gp9001.cpp : Add notes * toaplan2.h : Fix typo * toaplan2.cpp : Fix bgaregga audiobank * toaplan2.cpp : Cleanup unused, ACCESSING_BITS, Make batsugun screen update related to cliprect * toaplan2.cpp : Add notes * toaplan2.cpp : Fix build * toaplan2.cpp : Revert GFXDECODE_RAM things, Fix sound error at batrider --- src/mame/drivers/toaplan2.cpp | 556 ++++++++++++++++++++---------------------- src/mame/includes/toaplan2.h | 78 +++--- src/mame/video/gp9001.cpp | 217 +++++++---------- src/mame/video/gp9001.h | 24 +- src/mame/video/toaplan2.cpp | 91 +++---- 5 files changed, 442 insertions(+), 524 deletions(-) diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp index b099bad81bc..db54eb5fbab 100644 --- a/src/mame/drivers/toaplan2.cpp +++ b/src/mame/drivers/toaplan2.cpp @@ -455,9 +455,9 @@ void toaplan2_state::init_fixeight() void toaplan2_state::init_fixeightbl() { - uint8_t *ROM = memregion("oki")->base(); + uint8_t *ROM = memregion("oki1")->base(); - membank("bank1")->configure_entries(0, 5, &ROM[0x30000], 0x10000); + m_okibank->configure_entries(0, 5, &ROM[0x30000], 0x10000); } @@ -485,8 +485,8 @@ void toaplan2_state::init_bgaregga() { uint8_t *Z80 = memregion("audiocpu")->base(); - // seems to only use banks 0x0a to 0x0f - membank("bank1")->configure_entries(8, 8, Z80, 0x4000); + m_audiobank->configure_entries(0, 8, Z80, 0x4000); // Test mode only, Mirror of First 128KB Areas? + m_audiobank->configure_entries(8, 8, Z80, 0x4000); } @@ -494,7 +494,7 @@ void toaplan2_state::init_batrider() { uint8_t *Z80 = memregion("audiocpu")->base(); - membank("bank1")->configure_entries(0, 16, Z80, 0x4000); + m_audiobank->configure_entries(0, 16, Z80, 0x4000); m_sndirq_line = 4; } @@ -506,10 +506,10 @@ void toaplan2_state::init_bbakraid() void toaplan2_state::init_enmadaio() { - uint8_t *ROM = memregion("oki")->base(); + uint8_t *ROM = memregion("oki1")->base(); - membank("bank1")->configure_entries(0, 0x60, ROM, 0x40000); - membank("bank1")->set_entry(0); + m_okibank->configure_entries(0, 0x60, ROM, 0x40000); + m_okibank->set_entry(0); } @@ -545,11 +545,11 @@ READ16_MEMBER(toaplan2_state::video_count_r) vpos = (vpos + 15) % 262; - if (!m_vdp0->hsync_r()) + if (!m_vdp[0]->hsync_r()) video_status &= ~0x8000; - if (!m_vdp0->vsync_r()) + if (!m_vdp[0]->vsync_r()) video_status &= ~0x4000; - if (!m_vdp0->fblank_r()) + if (!m_vdp[0]->fblank_r()) video_status &= ~0x0100; if (vpos < 256) video_status |= (vpos & 0xff); @@ -636,7 +636,7 @@ WRITE16_MEMBER(toaplan2_state::shippumd_coin_word_w) if (ACCESSING_BITS_0_7) { toaplan2_coin_w(space, offset, data & 0xff); - m_oki->set_rom_bank((data & 0x10) >> 4); + m_oki[0]->set_rom_bank((data & 0x10) >> 4); } if (ACCESSING_BITS_8_15 && (data & 0xff00) ) { @@ -698,30 +698,16 @@ WRITE16_MEMBER(toaplan2_state::fixeight_subcpu_ctrl_w) m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE); } - -WRITE16_MEMBER(toaplan2_state::oki_bankswitch_w) +template +WRITE8_MEMBER(toaplan2_state::oki_bankswitch_w) { - if (ACCESSING_BITS_0_7) - { - m_oki->set_rom_bank(data & 1); - } + m_oki[Chip]->set_rom_bank(data & 1); } -WRITE16_MEMBER(toaplan2_state::oki1_bankswitch_w) +WRITE8_MEMBER(toaplan2_state::fixeightbl_oki_bankswitch_w) { - if (ACCESSING_BITS_0_7) - { - m_oki1->set_rom_bank(data & 1); - } -} - -WRITE16_MEMBER(toaplan2_state::fixeightbl_oki_bankswitch_w) -{ - if (ACCESSING_BITS_0_7) - { - data &= 7; - if (data <= 4) membank("bank1")->set_entry(data); - } + data &= 7; + if (data <= 4) m_okibank->set_entry(data); } @@ -732,7 +718,7 @@ WRITE16_MEMBER(toaplan2_state::fixeightbl_oki_bankswitch_w) WRITE8_MEMBER(toaplan2_state::raizing_z80_bankswitch_w) { - membank("bank1")->set_entry(data & 0x0f); + m_audiobank->set_entry(data & 0x0f); } @@ -767,44 +753,31 @@ READ16_MEMBER(toaplan2_state::batrider_z80_busack_r) } -WRITE16_MEMBER(toaplan2_state::batrider_z80_busreq_w) +WRITE8_MEMBER(toaplan2_state::batrider_z80_busreq_w) { - if (ACCESSING_BITS_0_7) - { - m_z80_busreq = (data & 0x01); // see batrider_z80_busack_r above - } + m_z80_busreq = (data & 0x01); // see batrider_z80_busack_r above } READ16_MEMBER(toaplan2_state::batrider_z80rom_r) { - uint8_t *Z80 = memregion("audiocpu")->base(); - - return Z80[offset]; + return m_z80_rom[offset]; } - // these two latches are always written together, via a single move.l instruction -WRITE16_MEMBER(toaplan2_state::batrider_soundlatch_w) +WRITE8_MEMBER(toaplan2_state::batrider_soundlatch_w) { - if (ACCESSING_BITS_0_7) - { - m_soundlatch->write(space, offset, data & 0xff); - m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); - } + m_soundlatch->write(space, offset, data & 0xff); + m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } -WRITE16_MEMBER(toaplan2_state::batrider_soundlatch2_w) +WRITE8_MEMBER(toaplan2_state::batrider_soundlatch2_w) { - if (ACCESSING_BITS_0_7) - { - m_soundlatch2->write(space, offset, data & 0xff); - m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); - } + m_soundlatch2->write(space, offset, data & 0xff); + m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } - WRITE16_MEMBER(toaplan2_state::batrider_unknown_sound_w) { // the 68K writes here when it wants a sound acknowledge IRQ from the Z80 @@ -873,7 +846,7 @@ void toaplan2_state::tekipaki_68k_mem(address_map &map) map(0x020000, 0x03ffff).rom(); // extra for Whoopee map(0x080000, 0x082fff).ram(); map(0x0c0000, 0x0c0fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x140000, 0x14000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x140000, 0x14000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x180000, 0x180001).portr("DSWA"); map(0x180010, 0x180011).portr("DSWB"); map(0x180020, 0x180021).portr("SYS"); @@ -893,7 +866,7 @@ void toaplan2_state::ghox_68k_mem(address_map &map) map(0x080000, 0x083fff).ram(); map(0x0c0000, 0x0c0fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x100000, 0x100001).r(this, FUNC(toaplan2_state::ghox_p1_h_analog_r)); - map(0x140000, 0x14000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x140000, 0x14000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x180000, 0x180fff).rw(this, FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); map(0x181000, 0x181001).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); map(0x18100c, 0x18100d).portr("JMPR"); @@ -909,9 +882,9 @@ void toaplan2_state::dogyuun_68k_mem(address_map &map) map(0x200018, 0x200019).portr("SYS"); map(0x20001c, 0x20001d).w(this, FUNC(toaplan2_state::toaplan2_v25_coin_word_w)); // Coin count/lock + v25 reset line map(0x210000, 0x21ffff).rw(this, FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x500000, 0x50000d).rw(m_vdp1, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x500000, 0x50000d).rw(m_vdp[1], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x700000, 0x700001).r(this, FUNC(toaplan2_state::video_count_r)); // test bit 8 } @@ -925,7 +898,7 @@ void toaplan2_state::kbash_68k_mem(address_map &map) map(0x208014, 0x208015).portr("IN2"); map(0x208018, 0x208019).portr("SYS"); map(0x20801c, 0x20801d).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x700000, 0x700001).r(this, FUNC(toaplan2_state::video_count_r)); // test bit 8 } @@ -945,10 +918,10 @@ void toaplan2_state::kbash2_68k_mem(address_map &map) map(0x200014, 0x200015).portr("IN2"); map(0x200018, 0x200019).portr("SYS"); map(0x200021, 0x200021).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); - map(0x200025, 0x200025).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); - map(0x200028, 0x200029).w(this, FUNC(toaplan2_state::oki1_bankswitch_w)); + map(0x200025, 0x200025).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x200029, 0x200029).w(this, FUNC(toaplan2_state::oki_bankswitch_w<0>)); map(0x20002c, 0x20002d).r(this, FUNC(toaplan2_state::video_count_r)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); } @@ -957,7 +930,7 @@ void toaplan2_state::truxton2_68k_mem(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x100000, 0x10ffff).ram(); - map(0x200000, 0x20000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x200000, 0x20000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x300000, 0x300fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x400000, 0x401fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); map(0x402000, 0x402fff).ram().share("tx_lineselect"); @@ -971,7 +944,7 @@ void toaplan2_state::truxton2_68k_mem(address_map &map) map(0x700006, 0x700007).portr("IN1"); map(0x700008, 0x700009).portr("IN2"); map(0x70000a, 0x70000b).portr("SYS"); - map(0x700011, 0x700011).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x700011, 0x700011).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x700014, 0x700017).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff); map(0x70001e, 0x70001f).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); } @@ -982,7 +955,7 @@ void toaplan2_state::pipibibs_68k_mem(address_map &map) map(0x000000, 0x03ffff).rom(); map(0x080000, 0x082fff).ram(); map(0x0c0000, 0x0c0fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x140000, 0x14000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x140000, 0x14000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x190000, 0x190fff).rw(this, FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); map(0x19c01c, 0x19c01d).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); map(0x19c020, 0x19c021).portr("DSWA"); @@ -998,13 +971,13 @@ void toaplan2_state::pipibibi_bootleg_68k_mem(address_map &map) { map(0x000000, 0x03ffff).rom(); map(0x080000, 0x082fff).ram(); - map(0x083000, 0x0837ff).rw(m_vdp0, FUNC(gp9001vdp_device::pipibibi_bootleg_spriteram16_r), FUNC(gp9001vdp_device::pipibibi_bootleg_spriteram16_w)); // SpriteRAM + map(0x083000, 0x0837ff).rw(m_vdp[0], FUNC(gp9001vdp_device::pipibibi_bootleg_spriteram16_r), FUNC(gp9001vdp_device::pipibibi_bootleg_spriteram16_w)); // SpriteRAM map(0x083800, 0x087fff).ram(); // SpriteRAM (unused) map(0x0c0000, 0x0c0fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x120000, 0x120fff).ram(); // Copy of SpriteRAM ? // AM_RANGE(0x13f000, 0x13f001) AM_WRITENOP // ??? - map(0x180000, 0x182fff).rw(m_vdp0, FUNC(gp9001vdp_device::pipibibi_bootleg_videoram16_r), FUNC(gp9001vdp_device::pipibibi_bootleg_videoram16_w)); // TileRAM - map(0x188000, 0x18800f).w(m_vdp0, FUNC(gp9001vdp_device::pipibibi_bootleg_scroll_w)); + map(0x180000, 0x182fff).rw(m_vdp[0], FUNC(gp9001vdp_device::pipibibi_bootleg_videoram16_r), FUNC(gp9001vdp_device::pipibibi_bootleg_videoram16_w)); // TileRAM + map(0x188000, 0x18800f).w(m_vdp[0], FUNC(gp9001vdp_device::pipibibi_bootleg_scroll_w)); map(0x190002, 0x190003).r(this, FUNC(toaplan2_state::shared_ram_r)); // Z80 ready ? map(0x190010, 0x190011).w(this, FUNC(toaplan2_state::shared_ram_w)); // Z80 task to perform map(0x19c01c, 0x19c01d).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); @@ -1027,7 +1000,7 @@ void toaplan2_state::fixeight_68k_mem(address_map &map) map(0x200010, 0x200011).portr("SYS"); map(0x20001c, 0x20001d).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); map(0x280000, 0x28ffff).rw(this, FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x500000, 0x501fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); map(0x502000, 0x5021ff).ram().share("tx_lineselect"); @@ -1047,10 +1020,10 @@ void toaplan2_state::fixeightbl_68k_mem(address_map &map) map(0x200008, 0x200009).portr("IN3"); map(0x20000c, 0x20000d).portr("DSWB"); map(0x200010, 0x200011).portr("SYS"); - map(0x200014, 0x200015).w(this, FUNC(toaplan2_state::fixeightbl_oki_bankswitch_w)); // Sound banking. Code at $4084c, $5070 - map(0x200019, 0x200019).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x200015, 0x200015).w(this, FUNC(toaplan2_state::fixeightbl_oki_bankswitch_w)); // Sound banking. Code at $4084c, $5070 + map(0x200019, 0x200019).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x20001c, 0x20001d).portr("DSWA"); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x500000, 0x501fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); map(0x700000, 0x700001).r(this, FUNC(toaplan2_state::video_count_r)); @@ -1068,7 +1041,7 @@ void toaplan2_state::vfive_68k_mem(address_map &map) map(0x200018, 0x200019).portr("SYS"); map(0x20001c, 0x20001d).w(this, FUNC(toaplan2_state::toaplan2_v25_coin_word_w)); // Coin count/lock + v25 reset line map(0x210000, 0x21ffff).rw(this, FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x700000, 0x700001).r(this, FUNC(toaplan2_state::video_count_r)); } @@ -1083,9 +1056,9 @@ void toaplan2_state::batsugun_68k_mem(address_map &map) map(0x200018, 0x200019).portr("SYS"); map(0x20001c, 0x20001d).w(this, FUNC(toaplan2_state::toaplan2_v25_coin_word_w)); // Coin count/lock + v25 reset line map(0x210000, 0x21ffff).rw(this, FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x500000, 0x50000d).rw(m_vdp1, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x500000, 0x50000d).rw(m_vdp[1], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x700000, 0x700001).r(this, FUNC(toaplan2_state::video_count_r)); } @@ -1096,9 +1069,9 @@ void toaplan2_state::pwrkick_68k_mem(address_map &map) map(0x104000, 0x10ffff).ram(); map(0x200000, 0x20000f).rw(m_rtc, FUNC(upd4992_device::read), FUNC(upd4992_device::write)).umask16(0x00ff); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x600001, 0x600001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x700000, 0x700001).r(this, FUNC(toaplan2_state::video_count_r)); map(0x700004, 0x700005).portr("DSWA"); @@ -1107,7 +1080,7 @@ void toaplan2_state::pwrkick_68k_mem(address_map &map) map(0x700014, 0x700015).portr("IN2"); map(0x700018, 0x700019).portr("DSWC"); map(0x70001c, 0x70001d).portr("SYS"); - map(0x700030, 0x700031).w(this, FUNC(toaplan2_state::oki_bankswitch_w)); + map(0x700031, 0x700031).w(this, FUNC(toaplan2_state::oki_bankswitch_w<0>)); map(0x700035, 0x700035).w(this, FUNC(toaplan2_state::pwrkick_coin_w)); map(0x700039, 0x700039).w(this, FUNC(toaplan2_state::pwrkick_coin_lockout_w)); } @@ -1119,9 +1092,9 @@ void toaplan2_state::othldrby_68k_mem(address_map &map) map(0x104000, 0x10ffff).ram(); map(0x200000, 0x20000f).rw(m_rtc, FUNC(upd4992_device::read), FUNC(upd4992_device::write)).umask16(0x00ff); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x600001, 0x600001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x700000, 0x700001).r(this, FUNC(toaplan2_state::video_count_r)); map(0x700004, 0x700005).portr("DSWA"); @@ -1129,7 +1102,7 @@ void toaplan2_state::othldrby_68k_mem(address_map &map) map(0x70000c, 0x70000d).portr("IN1"); map(0x700010, 0x700011).portr("IN2"); map(0x70001c, 0x70001d).portr("SYS"); - map(0x700030, 0x700031).w(this, FUNC(toaplan2_state::oki_bankswitch_w)); + map(0x700031, 0x700031).w(this, FUNC(toaplan2_state::oki_bankswitch_w<0>)); map(0x700034, 0x700035).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); } @@ -1140,13 +1113,12 @@ WRITE16_MEMBER(toaplan2_state::enmadaio_oki_bank_w) if (data < 0x60) { - membank("bank1")->set_entry(data); + m_okibank->set_entry(data); } else { logerror("enmadaio_oki_bank_w >=0x60 (%04x)\n",data); } - } void toaplan2_state::enmadaio_68k_mem(address_map &map) @@ -1155,10 +1127,10 @@ void toaplan2_state::enmadaio_68k_mem(address_map &map) map(0x100000, 0x103fff).ram(); // AM_SHARE("nvram") map(0x104000, 0x10ffff).ram(); - map(0x200000, 0x20000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x200000, 0x20000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x300000, 0x300fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x400000, 0x400003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff); - map(0x500001, 0x500001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x500001, 0x500001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x700000, 0x700001).r(this, FUNC(toaplan2_state::video_count_r)); @@ -1180,10 +1152,10 @@ void toaplan2_state::snowbro2_68k_mem(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x100000, 0x10ffff).ram(); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x500000, 0x500003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0x00ff); - map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x600001, 0x600001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x700000, 0x700001).portr("JMPR"); map(0x700004, 0x700005).portr("DSWA"); map(0x700008, 0x700009).portr("DSWB"); @@ -1192,7 +1164,7 @@ void toaplan2_state::snowbro2_68k_mem(address_map &map) map(0x700014, 0x700015).portr("IN3"); map(0x700018, 0x700019).portr("IN4"); map(0x70001c, 0x70001d).portr("SYS"); - map(0x700030, 0x700031).w(this, FUNC(toaplan2_state::oki_bankswitch_w)); + map(0x700031, 0x700031).w(this, FUNC(toaplan2_state::oki_bankswitch_w<0>)); map(0x700034, 0x700035).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); } @@ -1210,7 +1182,7 @@ void toaplan2_state::mahoudai_68k_mem(address_map &map) map(0x21c030, 0x21c031).portr("DSWB"); map(0x21c034, 0x21c035).portr("JMPR"); map(0x21c03c, 0x21c03d).r(this, FUNC(toaplan2_state::video_count_r)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x401000, 0x4017ff).ram(); // Unused palette RAM map(0x500000, 0x501fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); @@ -1234,7 +1206,7 @@ void toaplan2_state::shippumd_68k_mem(address_map &map) map(0x21c030, 0x21c031).portr("DSWB"); map(0x21c034, 0x21c035).portr("JMPR"); map(0x21c03c, 0x21c03d).r(this, FUNC(toaplan2_state::video_count_r)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x401000, 0x4017ff).ram(); // Unused palette RAM map(0x500000, 0x501fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); @@ -1257,7 +1229,7 @@ void toaplan2_state::bgaregga_68k_mem(address_map &map) map(0x21c030, 0x21c031).portr("DSWB"); map(0x21c034, 0x21c035).portr("JMPR"); map(0x21c03c, 0x21c03d).r(this, FUNC(toaplan2_state::video_count_r)); - map(0x300000, 0x30000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x500000, 0x501fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); map(0x502000, 0x502fff).ram().share("tx_lineselect"); @@ -1267,18 +1239,25 @@ void toaplan2_state::bgaregga_68k_mem(address_map &map) } +void toaplan2_state::batrider_dma_mem(address_map &map) +{ + map(0x0000, 0x1fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); + map(0x2000, 0x2fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x3000, 0x31ff).ram().share("tx_lineselect"); + map(0x3200, 0x33ff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); + map(0x3400, 0x7fff).ram(); + map(0x8000, 0xffff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_gfxram16_w)).share("tx_gfxram16"); +} + + void toaplan2_state::batrider_68k_mem(address_map &map) { map(0x000000, 0x1fffff).rom(); // actually 200000 - 20ffff is probably all main RAM, and the text and palette RAM are written via DMA - map(0x200000, 0x201fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); - map(0x202000, 0x202fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x203000, 0x2031ff).ram().share("tx_lineselect"); - map(0x203200, 0x2033ff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); - map(0x203400, 0x207fff).ram().share("mainram16"); + map(0x200000, 0x207fff).ram().share("mainram16"); map(0x208000, 0x20ffff).ram(); map(0x300000, 0x37ffff).r(this, FUNC(toaplan2_state::batrider_z80rom_r)); - map(0x400000, 0x40000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_alt_r), FUNC(gp9001vdp_device::gp9001_vdp_alt_w)); + map(0x400000, 0x40000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_alt_r), FUNC(gp9001vdp_device::gp9001_vdp_alt_w)); map(0x500000, 0x500001).portr("IN"); map(0x500002, 0x500003).portr("SYS-DSW"); map(0x500004, 0x500005).portr("DSW"); @@ -1287,14 +1266,14 @@ void toaplan2_state::batrider_68k_mem(address_map &map) map(0x50000b, 0x50000b).r("soundlatch4", FUNC(generic_latch_8_device::read)); map(0x50000c, 0x50000d).r(this, FUNC(toaplan2_state::batrider_z80_busack_r)); map(0x500010, 0x500011).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); - map(0x500020, 0x500021).w(this, FUNC(toaplan2_state::batrider_soundlatch_w)); - map(0x500022, 0x500023).w(this, FUNC(toaplan2_state::batrider_soundlatch2_w)); + map(0x500021, 0x500021).w(this, FUNC(toaplan2_state::batrider_soundlatch_w)); + map(0x500023, 0x500023).w(this, FUNC(toaplan2_state::batrider_soundlatch2_w)); map(0x500024, 0x500025).w(this, FUNC(toaplan2_state::batrider_unknown_sound_w)); map(0x500026, 0x500027).w(this, FUNC(toaplan2_state::batrider_clear_sndirq_w)); - map(0x500060, 0x500061).w(this, FUNC(toaplan2_state::batrider_z80_busreq_w)); + map(0x500061, 0x500061).w(this, FUNC(toaplan2_state::batrider_z80_busreq_w)); map(0x500080, 0x500081).w(this, FUNC(toaplan2_state::batrider_textdata_dma_w)); - map(0x500082, 0x500083).w(this, FUNC(toaplan2_state::batrider_unknown_dma_w)); - map(0x5000c0, 0x5000cf).w(this, FUNC(toaplan2_state::batrider_objectbank_w)); + map(0x500082, 0x500083).w(this, FUNC(toaplan2_state::batrider_pal_text_dma_w)); + map(0x5000c0, 0x5000cf).w(this, FUNC(toaplan2_state::batrider_objectbank_w)).umask16(0x00ff); } @@ -1302,14 +1281,10 @@ void toaplan2_state::bbakraid_68k_mem(address_map &map) { map(0x000000, 0x1fffff).rom(); // actually 200000 - 20ffff is probably all main RAM, and the text and palette RAM are written via DMA - map(0x200000, 0x201fff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); - map(0x202000, 0x202fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x203000, 0x2031ff).ram().share("tx_lineselect"); - map(0x203200, 0x2033ff).ram().w(this, FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); - map(0x203400, 0x207fff).ram().share("mainram16"); + map(0x200000, 0x207fff).ram().share("mainram16"); map(0x208000, 0x20ffff).ram(); map(0x300000, 0x33ffff).r(this, FUNC(toaplan2_state::batrider_z80rom_r)); - map(0x400000, 0x40000d).rw(m_vdp0, FUNC(gp9001vdp_device::gp9001_vdp_alt_r), FUNC(gp9001vdp_device::gp9001_vdp_alt_w)); + map(0x400000, 0x40000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_alt_r), FUNC(gp9001vdp_device::gp9001_vdp_alt_w)); map(0x500000, 0x500001).portr("IN"); map(0x500002, 0x500003).portr("SYS-DSW"); map(0x500004, 0x500005).portr("DSW"); @@ -1317,15 +1292,15 @@ void toaplan2_state::bbakraid_68k_mem(address_map &map) map(0x500008, 0x500009).w(this, FUNC(toaplan2_state::toaplan2_coin_word_w)); map(0x500011, 0x500011).r("soundlatch3", FUNC(generic_latch_8_device::read)); map(0x500013, 0x500013).r("soundlatch4", FUNC(generic_latch_8_device::read)); - map(0x500014, 0x500015).w(this, FUNC(toaplan2_state::batrider_soundlatch_w)); - map(0x500016, 0x500017).w(this, FUNC(toaplan2_state::batrider_soundlatch2_w)); + map(0x500015, 0x500015).w(this, FUNC(toaplan2_state::batrider_soundlatch_w)); + map(0x500017, 0x500017).w(this, FUNC(toaplan2_state::batrider_soundlatch2_w)); map(0x500018, 0x500019).r(this, FUNC(toaplan2_state::bbakraid_eeprom_r)); map(0x50001a, 0x50001b).w(this, FUNC(toaplan2_state::batrider_unknown_sound_w)); map(0x50001c, 0x50001d).w(this, FUNC(toaplan2_state::batrider_clear_sndirq_w)); map(0x50001e, 0x50001f).w(this, FUNC(toaplan2_state::bbakraid_eeprom_w)); map(0x500080, 0x500081).w(this, FUNC(toaplan2_state::batrider_textdata_dma_w)); - map(0x500082, 0x500083).w(this, FUNC(toaplan2_state::batrider_unknown_dma_w)); - map(0x5000c0, 0x5000cf).w(this, FUNC(toaplan2_state::batrider_objectbank_w)); + map(0x500082, 0x500083).w(this, FUNC(toaplan2_state::batrider_pal_text_dma_w)); + map(0x5000c0, 0x5000cf).w(this, FUNC(toaplan2_state::batrider_objectbank_w)).umask16(0x00ff); } @@ -1343,7 +1318,7 @@ void toaplan2_state::raizing_sound_z80_mem(address_map &map) map(0x0000, 0xbfff).rom(); map(0xc000, 0xdfff).ram().share("shared_ram"); map(0xe000, 0xe001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0xe004, 0xe004).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0xe004, 0xe004).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0xe00e, 0xe00e).w(this, FUNC(toaplan2_state::toaplan2_coin_w)); } @@ -1351,10 +1326,10 @@ void toaplan2_state::raizing_sound_z80_mem(address_map &map) void toaplan2_state::bgaregga_sound_z80_mem(address_map &map) { map(0x0000, 0x7fff).rom(); - map(0x8000, 0xbfff).bankr("bank1"); + map(0x8000, 0xbfff).bankr("audiobank"); map(0xc000, 0xdfff).ram().share("shared_ram"); map(0xe000, 0xe001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0xe004, 0xe004).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0xe004, 0xe004).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0xe006, 0xe008).w(this, FUNC(toaplan2_state::raizing_oki_bankswitch_w)); map(0xe00a, 0xe00a).w(this, FUNC(toaplan2_state::raizing_z80_bankswitch_w)); map(0xe00c, 0xe00c).w(m_soundlatch, FUNC(generic_latch_8_device::acknowledge_w)); @@ -1366,7 +1341,7 @@ void toaplan2_state::bgaregga_sound_z80_mem(address_map &map) void toaplan2_state::batrider_sound_z80_mem(address_map &map) { map(0x0000, 0x7fff).rom(); - map(0x8000, 0xbfff).bankr("bank1"); + map(0x8000, 0xbfff).bankr("audiobank"); map(0xc000, 0xdfff).ram(); } @@ -1381,7 +1356,7 @@ void toaplan2_state::batrider_sound_z80_port(address_map &map) map(0x48, 0x48).r(m_soundlatch, FUNC(generic_latch_8_device::read)); map(0x4a, 0x4a).r(m_soundlatch2, FUNC(generic_latch_8_device::read)); map(0x80, 0x81).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x82, 0x82).rw(m_oki1, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x82, 0x82).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x84, 0x84).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x88, 0x88).w(this, FUNC(toaplan2_state::raizing_z80_bankswitch_w)); map(0xc0, 0xc6).w(this, FUNC(toaplan2_state::raizing_oki_bankswitch_w)); @@ -1411,7 +1386,7 @@ void toaplan2_state::bbakraid_sound_z80_port(address_map &map) void toaplan2_state::v25_mem(address_map &map) { map(0x00000, 0x00001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x00004, 0x00004).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x00004, 0x00004).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x80000, 0x87fff).mirror(0x78000).ram().share("shared_ram"); } @@ -1420,7 +1395,7 @@ void toaplan2_state::kbash_v25_mem(address_map &map) { map(0x00000, 0x007ff).ram().share("shared_ram"); map(0x04000, 0x04001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x04002, 0x04002).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x04002, 0x04002).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x80000, 0x87fff).mirror(0x78000).rom().region("audiocpu", 0); } @@ -1431,7 +1406,7 @@ void toaplan2_state::fixeight_v25_mem(address_map &map) map(0x00002, 0x00002).portr("IN2"); map(0x00004, 0x00004).portr("IN3"); map(0x0000a, 0x0000b).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x0000c, 0x0000c).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x0000c, 0x0000c).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x80000, 0x87fff).mirror(0x78000).ram().share("shared_ram"); } @@ -1446,12 +1421,12 @@ void toaplan2_state::vfive_v25_mem(address_map &map) void toaplan2_state::fixeightbl_oki(address_map &map) { map(0x00000, 0x2ffff).rom(); - map(0x30000, 0x3ffff).bankr("bank1"); + map(0x30000, 0x3ffff).bankr("okibank"); } void toaplan2_state::enmadaio_oki(address_map &map) { - map(0x00000, 0x3ffff).bankr("bank1"); + map(0x00000, 0x3ffff).bankr("okibank"); } @@ -3171,17 +3146,17 @@ INPUT_PORTS_END // Text layer graphics -- ROM based in some games, RAM based in others -// See video/gp9001.c for the main graphics layouts +// See video/gp9001.cpp for the main graphics layouts -static const gfx_layout raizing_textlayout = +static const gfx_layout rom_textlayout = { - 8,8, /* 8x8 characters */ - 1024, /* 1024 characters */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 8*32 + 8,8, + RGN_FRAC(1,1), + 4, + { STEP4(0,1) }, + { STEP8(0,4) }, + { STEP8(0,4*8) }, + 8*8*4 }; #define XOR(a) WORD_XOR_LE(a) @@ -3192,10 +3167,10 @@ static const gfx_layout truxton2_tx_tilelayout = 8,8, /* 8x8 characters */ 1024, /* 1024 characters */ 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, + { STEP4(0,1) }, { LOC(0)*4, LOC(1)*4, LOC(4)*4, LOC(5)*4, LOC(8)*4, LOC(9)*4, LOC(12)*4, LOC(13)*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, - 8*64 + { STEP8(0,8*8) }, + 8*8*8 }; static const gfx_layout batrider_tx_tilelayout = @@ -3203,37 +3178,22 @@ static const gfx_layout batrider_tx_tilelayout = 8,8, /* 8x8 characters */ 1024, /* 1024 characters */ 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, + { STEP4(0,1) }, { XOR(0)*4, XOR(1)*4, XOR(2)*4, XOR(3)*4, XOR(4)*4, XOR(5)*4, XOR(6)*4, XOR(7)*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 8*32 -}; - -static const gfx_layout fixeightblayout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0,1,2,3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4}, - { 0*4*8, 1*4*8, 2*4*8, 3*4*8, 4*4*8, 5*4*8, 6*4*8, 7*4*8}, + { STEP8(0,4*8) }, 8*8*4 }; static GFXDECODE_START( gfx_truxton2 ) - GFXDECODE_ENTRY( nullptr, 0, truxton2_tx_tilelayout, 64*16, 64 ) + GFXDECODE_ENTRY( nullptr, 0, truxton2_tx_tilelayout, 64*16, 64 ) GFXDECODE_END -static GFXDECODE_START( gfx_raizing ) - GFXDECODE_ENTRY( "text", 0, raizing_textlayout, 64*16, 64 ) +static GFXDECODE_START( gfx_textrom ) + GFXDECODE_ENTRY( "text", 0, rom_textlayout, 64*16, 64 ) GFXDECODE_END static GFXDECODE_START( gfx_batrider ) - GFXDECODE_ENTRY( nullptr, 0, batrider_tx_tilelayout, 64*16, 64 ) -GFXDECODE_END - -static GFXDECODE_START( gfx_fixeightbl ) - GFXDECODE_ENTRY( "text", 0, fixeightblayout, 64*16, 64 ) + GFXDECODE_ENTRY( nullptr, 0, batrider_tx_tilelayout, 64*16, 64 ) GFXDECODE_END @@ -3265,7 +3225,7 @@ MACHINE_CONFIG_START(toaplan2_state::tekipaki) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3308,7 +3268,7 @@ MACHINE_CONFIG_START(toaplan2_state::ghox) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3396,7 +3356,7 @@ MACHINE_CONFIG_START(toaplan2_state::dogyuun) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3411,7 +3371,7 @@ MACHINE_CONFIG_START(toaplan2_state::dogyuun) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(25'000'000)/24, okim6295_device::PIN7_HIGH) /* verified on pcb */ + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(25'000'000)/24, okim6295_device::PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3445,7 +3405,7 @@ MACHINE_CONFIG_START(toaplan2_state::kbash) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3457,7 +3417,7 @@ MACHINE_CONFIG_START(toaplan2_state::kbash) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(32'000'000)/32, okim6295_device::PIN7_HIGH) + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'000'000)/32, okim6295_device::PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3482,7 +3442,7 @@ MACHINE_CONFIG_START(toaplan2_state::kbash2) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3517,7 +3477,7 @@ MACHINE_CONFIG_START(toaplan2_state::truxton2) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_2)) @@ -3532,7 +3492,7 @@ MACHINE_CONFIG_START(toaplan2_state::truxton2) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4, okim6295_device::PIN7_LOW) + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(16'000'000)/4, okim6295_device::PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) #else // ...but the hardware is mono @@ -3541,7 +3501,7 @@ MACHINE_CONFIG_START(toaplan2_state::truxton2) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4, okim6295_device::PIN7_LOW) /* verified on pcb */ + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(16'000'000)/4, okim6295_device::PIN7_LOW) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) #endif MACHINE_CONFIG_END @@ -3574,7 +3534,7 @@ MACHINE_CONFIG_START(toaplan2_state::pipibibs) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3617,7 +3577,7 @@ MACHINE_CONFIG_START(toaplan2_state::pipibibsbl) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(ASSERTLINE("maincpu", M68K_IRQ_4)) @@ -3696,7 +3656,7 @@ MACHINE_CONFIG_START(toaplan2_state::fixeight) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3708,7 +3668,7 @@ MACHINE_CONFIG_START(toaplan2_state::fixeight) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH) /* verified on pcb */ + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3731,11 +3691,11 @@ MACHINE_CONFIG_START(toaplan2_state::fixeightbl) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, toaplan2_state, screen_vblank_toaplan2)) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fixeightbl) + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_textrom) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(ASSERTLINE("maincpu", M68K_IRQ_2)) @@ -3744,7 +3704,7 @@ MACHINE_CONFIG_START(toaplan2_state::fixeightbl) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(14'000'000)/16, okim6295_device::PIN7_LOW) + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(14'000'000)/16, okim6295_device::PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADDRESS_MAP(0, fixeightbl_oki) MACHINE_CONFIG_END @@ -3775,7 +3735,7 @@ MACHINE_CONFIG_START(toaplan2_state::vfive) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3816,7 +3776,7 @@ MACHINE_CONFIG_START(toaplan2_state::batsugun) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3831,7 +3791,7 @@ MACHINE_CONFIG_START(toaplan2_state::batsugun) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(32'000'000)/8, okim6295_device::PIN7_LOW) + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'000'000)/8, okim6295_device::PIN7_LOW) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3858,7 +3818,7 @@ MACHINE_CONFIG_START(toaplan2_state::pwrkick) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3867,7 +3827,7 @@ MACHINE_CONFIG_START(toaplan2_state::pwrkick) /* sound hardware */ SPEAKER(config, "mono").front_center(); /* empty YM2151 socket*/ - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(27'000'000)/8, okim6295_device::PIN7_HIGH) // not confirmed + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(27'000'000)/8, okim6295_device::PIN7_HIGH) // not confirmed MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3891,7 +3851,7 @@ MACHINE_CONFIG_START(toaplan2_state::othldrby) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3900,7 +3860,7 @@ MACHINE_CONFIG_START(toaplan2_state::othldrby) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(27'000'000)/8, okim6295_device::PIN7_HIGH) // not confirmed + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(27'000'000)/8, okim6295_device::PIN7_HIGH) // not confirmed MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3921,7 +3881,7 @@ MACHINE_CONFIG_START(toaplan2_state::enmadaio) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3933,7 +3893,7 @@ MACHINE_CONFIG_START(toaplan2_state::enmadaio) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4, okim6295_device::PIN7_LOW) // pin7 not confirmed + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(16'000'000)/4, okim6295_device::PIN7_LOW) // pin7 not confirmed MCFG_DEVICE_ADDRESS_MAP(0, enmadaio_oki) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END @@ -3958,7 +3918,7 @@ MACHINE_CONFIG_START(toaplan2_state::snowbro2) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -3970,7 +3930,7 @@ MACHINE_CONFIG_START(toaplan2_state::snowbro2) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(27'000'000)/10, okim6295_device::PIN7_HIGH) + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(27'000'000)/10, okim6295_device::PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -3999,11 +3959,11 @@ MACHINE_CONFIG_START(toaplan2_state::mahoudai) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, toaplan2_state, screen_vblank_toaplan2)) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_raizing) + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_textrom) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -4015,7 +3975,7 @@ MACHINE_CONFIG_START(toaplan2_state::mahoudai) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(32'000'000)/32, okim6295_device::PIN7_HIGH) + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'000'000)/32, okim6295_device::PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -4044,11 +4004,11 @@ MACHINE_CONFIG_START(toaplan2_state::shippumd) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, toaplan2_state, screen_vblank_toaplan2)) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_raizing) + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_textrom) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -4060,7 +4020,7 @@ MACHINE_CONFIG_START(toaplan2_state::shippumd) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(27'000'000)/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(32'000'000)/32, okim6295_device::PIN7_HIGH) + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'000'000)/32, okim6295_device::PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -4088,11 +4048,11 @@ MACHINE_CONFIG_START(toaplan2_state::bgaregga) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, toaplan2_state, screen_vblank_toaplan2)) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_raizing) + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_textrom) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4)) @@ -4108,11 +4068,11 @@ MACHINE_CONFIG_START(toaplan2_state::bgaregga) MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(32'000'000)/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(32'000'000)/16, okim6295_device::PIN7_HIGH) + MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'000'000)/16, okim6295_device::PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_DEVICE_ADD("nmk112", NMK112, 0) - MCFG_NMK112_ROM0("oki") + MCFG_NMK112_ROM0("oki1") MACHINE_CONFIG_END @@ -4138,6 +4098,13 @@ MACHINE_CONFIG_START(toaplan2_state::batrider) MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2) + MCFG_DEVICE_ADD("dma_space", ADDRESS_MAP_BANK, 0) + MCFG_DEVICE_PROGRAM_MAP(batrider_dma_mem) + MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG) + MCFG_ADDRESS_MAP_BANK_DATA_WIDTH(16) + MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(16) + MCFG_ADDRESS_MAP_BANK_STRIDE(0x8000) + /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) @@ -4153,7 +4120,7 @@ MACHINE_CONFIG_START(toaplan2_state::batrider) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_2)) @@ -4162,6 +4129,7 @@ MACHINE_CONFIG_START(toaplan2_state::batrider) /* sound hardware */ SPEAKER(config, "mono").front_center(); + // these two latches are always written together, via a single move.l instruction MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_8_ADD("soundlatch2") MCFG_GENERIC_LATCH_8_ADD("soundlatch3") @@ -4199,6 +4167,13 @@ MACHINE_CONFIG_START(toaplan2_state::bbakraid) MCFG_EEPROM_SERIAL_93C66_8BIT_ADD("eeprom") + MCFG_DEVICE_ADD("dma_space", ADDRESS_MAP_BANK, 0) + MCFG_DEVICE_PROGRAM_MAP(batrider_dma_mem) + MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG) + MCFG_ADDRESS_MAP_BANK_DATA_WIDTH(16) + MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(16) + MCFG_ADDRESS_MAP_BANK_STRIDE(0x8000) + /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) @@ -4214,7 +4189,7 @@ MACHINE_CONFIG_START(toaplan2_state::bbakraid) MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("gp9001", GP9001_VDP, XTAL(27'000'000)) + MCFG_DEVICE_ADD("gp9001_0", GP9001_VDP, XTAL(27'000'000)) MCFG_GFX_PALETTE("palette") MCFG_GP9001_VINT_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_1)) @@ -4223,6 +4198,7 @@ MACHINE_CONFIG_START(toaplan2_state::bbakraid) /* sound hardware */ SPEAKER(config, "mono").front_center(); + // these two latches are always written together, via a single move.l instruction MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_8_ADD("soundlatch2") MCFG_GENERIC_LATCH_8_ADD("soundlatch3") @@ -4250,7 +4226,7 @@ ROM_START( tekipaki ) ROM_REGION( 0x8000, "audiocpu", 0 ) /* Sound HD647180 code */ ROM_LOAD( "hd647180.020", 0x00000, 0x08000, CRC(d5157c12) SHA1(b2c6c087bb539456a9e562d0b40f05dde26cacd3) ) - ROM_REGION( 0x100000, "gp9001", 0 ) + ROM_REGION( 0x100000, "gp9001_0", 0 ) ROM_LOAD( "tp020-4.bin", 0x000000, 0x080000, CRC(3ebbe41e) SHA1(cea196c5f83e1a23d5b538a0db9bbbffa7af5118) ) ROM_LOAD( "tp020-3.bin", 0x080000, 0x080000, CRC(2d5e2201) SHA1(5846c844eedd48305c1c67dc645b6e070b3f5b98) ) ROM_END @@ -4264,7 +4240,7 @@ ROM_START( tekipakit ) /* Location Test version */ ROM_REGION( 0x8000, "audiocpu", 0 ) /* Sound HD647180 code */ ROM_LOAD( "hd647180.020", 0x00000, 0x08000, CRC(d5157c12) SHA1(b2c6c087bb539456a9e562d0b40f05dde26cacd3) ) - ROM_REGION( 0x100000, "gp9001", 0 ) + ROM_REGION( 0x100000, "gp9001_0", 0 ) ROM_LOAD( "0-1_4.4_cb45.a16", 0x000000, 0x080000, CRC(35e14729) SHA1(8c929604953b78c6e72744a38e06a988510193a5) ) /* hand written "0-1 4/4 CB45" 27C402 chip */ ROM_LOAD( "3-4_4.4_547d.a15", 0x080000, 0x080000, CRC(41975fcc) SHA1(f850d5a9638d41bb69f204a9cd54e2fd693b57ef) ) /* hand written "3-4 4/4 547D" 27C402 chip */ ROM_END @@ -4278,7 +4254,7 @@ ROM_START( ghox ) /* Spinner with single axis (up/down) controls */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound HD647180 code */ ROM_LOAD( "hd647180.021", 0x00000, 0x08000, CRC(6ab59e5b) SHA1(d814dd3a8f1ee638794e2bd422eed4247ba4a15e) ) - ROM_REGION( 0x100000, "gp9001", 0 ) + ROM_REGION( 0x100000, "gp9001_0", 0 ) ROM_LOAD( "tp021-03.u36", 0x000000, 0x080000, CRC(a15d8e9d) SHA1(640a33997bdce8e84bea6a944139716379839037) ) ROM_LOAD( "tp021-04.u37", 0x080000, 0x080000, CRC(26ed1c9a) SHA1(37da8af86ea24327444c2d4ad3dfbd936208d43d) ) ROM_END @@ -4292,7 +4268,7 @@ ROM_START( ghoxj ) /* 8-way joystick for controls */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound HD647180 code */ ROM_LOAD( "hd647180.021", 0x00000, 0x08000, CRC(6ab59e5b) SHA1(d814dd3a8f1ee638794e2bd422eed4247ba4a15e) ) - ROM_REGION( 0x100000, "gp9001", 0 ) + ROM_REGION( 0x100000, "gp9001_0", 0 ) ROM_LOAD( "tp021-03.u36", 0x000000, 0x080000, CRC(a15d8e9d) SHA1(640a33997bdce8e84bea6a944139716379839037) ) ROM_LOAD( "tp021-04.u37", 0x080000, 0x080000, CRC(26ed1c9a) SHA1(37da8af86ea24327444c2d4ad3dfbd936208d43d) ) ROM_END @@ -4305,7 +4281,7 @@ ROM_START( ghoxjo ) /* older version (with fewer regions) of the 8-way joystick ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound HD647180 code */ ROM_LOAD( "hd647180.021", 0x00000, 0x08000, CRC(6ab59e5b) SHA1(d814dd3a8f1ee638794e2bd422eed4247ba4a15e) ) - ROM_REGION( 0x100000, "gp9001", 0 ) + ROM_REGION( 0x100000, "gp9001_0", 0 ) ROM_LOAD( "tp021-03.u36", 0x000000, 0x080000, CRC(a15d8e9d) SHA1(640a33997bdce8e84bea6a944139716379839037) ) ROM_LOAD( "tp021-04.u37", 0x080000, 0x080000, CRC(26ed1c9a) SHA1(37da8af86ea24327444c2d4ad3dfbd936208d43d) ) ROM_END @@ -4318,7 +4294,7 @@ ROM_START( dogyuun ) /* Secondary CPU is a Toaplan marked chip, (TS-002-MACH TOA PLAN) */ /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */ - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD16_WORD_SWAP( "tp022_3.w92", 0x000000, 0x100000, CRC(191b595f) SHA1(89344946daa18087cc83f92027cf5da659b1c7a5) ) ROM_LOAD16_WORD_SWAP( "tp022_4.w93", 0x100000, 0x100000, CRC(d58d29ca) SHA1(90d142fef37764ef817347a2bed77892a288a077) ) @@ -4326,7 +4302,7 @@ ROM_START( dogyuun ) ROM_LOAD16_WORD_SWAP( "tp022_5.w16", 0x000000, 0x200000, CRC(d4c1db45) SHA1(f5655467149ba737128c2f54c9c6cdaca6e4c35c) ) ROM_LOAD16_WORD_SWAP( "tp022_6.w17", 0x200000, 0x200000, CRC(d48dc74f) SHA1(081b5a00a2ff2bd82b98b30aab3cb5b6ae1014d5) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp022_2.w30", 0x00000, 0x40000, CRC(043271b3) SHA1(c7eaa929e55dd956579b824ea9d20a1d0129a925) ) ROM_END @@ -4338,7 +4314,7 @@ ROM_START( dogyuuna ) /* Secondary CPU is a Toaplan marked chip, (TS-002-MACH TOA PLAN) */ /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */ - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD16_WORD_SWAP( "tp022_3.w92", 0x000000, 0x100000, CRC(191b595f) SHA1(89344946daa18087cc83f92027cf5da659b1c7a5) ) ROM_LOAD16_WORD_SWAP( "tp022_4.w93", 0x100000, 0x100000, CRC(d58d29ca) SHA1(90d142fef37764ef817347a2bed77892a288a077) ) @@ -4346,7 +4322,7 @@ ROM_START( dogyuuna ) ROM_LOAD16_WORD_SWAP( "tp022_5.w16", 0x000000, 0x200000, CRC(d4c1db45) SHA1(f5655467149ba737128c2f54c9c6cdaca6e4c35c) ) ROM_LOAD16_WORD_SWAP( "tp022_6.w17", 0x200000, 0x200000, CRC(d48dc74f) SHA1(081b5a00a2ff2bd82b98b30aab3cb5b6ae1014d5) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp022_2.w30", 0x00000, 0x40000, CRC(043271b3) SHA1(c7eaa929e55dd956579b824ea9d20a1d0129a925) ) ROM_END @@ -4358,7 +4334,7 @@ ROM_START( dogyuunt ) /* Secondary CPU is a Toaplan marked chip, (TS-002-MACH TOA PLAN) */ /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */ - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD16_WORD_SWAP( "tp022_3.w92", 0x000000, 0x100000, CRC(191b595f) SHA1(89344946daa18087cc83f92027cf5da659b1c7a5) ) ROM_LOAD16_WORD_SWAP( "tp022_4.w93", 0x100000, 0x100000, CRC(d58d29ca) SHA1(90d142fef37764ef817347a2bed77892a288a077) ) @@ -4366,7 +4342,7 @@ ROM_START( dogyuunt ) ROM_LOAD16_WORD_SWAP( "tp022_5.w16", 0x000000, 0x200000, CRC(d4c1db45) SHA1(f5655467149ba737128c2f54c9c6cdaca6e4c35c) ) ROM_LOAD16_WORD_SWAP( "tp022_6.w17", 0x200000, 0x200000, CRC(d48dc74f) SHA1(081b5a00a2ff2bd82b98b30aab3cb5b6ae1014d5) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp022_2.w30", 0x00000, 0x40000, CRC(043271b3) SHA1(c7eaa929e55dd956579b824ea9d20a1d0129a925) ) ROM_END @@ -4381,13 +4357,13 @@ ROM_START( kbash ) ROM_REGION( 0x8000, "audiocpu", 0 ) /* Sound CPU code */ ROM_LOAD( "tp023_02.bin", 0x0000, 0x8000, CRC(4cd882a1) SHA1(7199a5c384918f775f0815e09c46b2a58141814a) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "tp023_3.bin", 0x000000, 0x200000, CRC(32ad508b) SHA1(e473489beaf649d3e5236770eb043327e309850c) ) ROM_LOAD( "tp023_5.bin", 0x200000, 0x200000, CRC(b84c90eb) SHA1(17a1531d884d9a9696d1b25d65f9155f02396e0e) ) ROM_LOAD( "tp023_4.bin", 0x400000, 0x200000, CRC(e493c077) SHA1(0edcfb70483ad07206695d9283031b85cd198a36) ) ROM_LOAD( "tp023_6.bin", 0x600000, 0x200000, CRC(9084b50a) SHA1(03b58278619524d2f09a4b1c152d5e057e792a56) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp023_7.bin", 0x00000, 0x40000, CRC(3732318f) SHA1(f0768459f5ad2dee53d408a0a5ae3a314864e667) ) ROM_END @@ -4401,13 +4377,13 @@ ROM_START( kbashk ) ROM_REGION( 0x8000, "audiocpu", 0 ) /* Sound CPU code */ ROM_LOAD( "tp023_02.bin", 0x0000, 0x8000, CRC(4cd882a1) SHA1(7199a5c384918f775f0815e09c46b2a58141814a) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "tp023_3.bin", 0x000000, 0x200000, CRC(32ad508b) SHA1(e473489beaf649d3e5236770eb043327e309850c) ) ROM_LOAD( "tp023_5.bin", 0x200000, 0x200000, CRC(b84c90eb) SHA1(17a1531d884d9a9696d1b25d65f9155f02396e0e) ) ROM_LOAD( "tp023_4.bin", 0x400000, 0x200000, CRC(e493c077) SHA1(0edcfb70483ad07206695d9283031b85cd198a36) ) ROM_LOAD( "tp023_6.bin", 0x600000, 0x200000, CRC(9084b50a) SHA1(03b58278619524d2f09a4b1c152d5e057e792a56) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp023_7.bin", 0x00000, 0x40000, CRC(3732318f) SHA1(f0768459f5ad2dee53d408a0a5ae3a314864e667) ) ROM_END /* @@ -4454,7 +4430,7 @@ ROM_START( kbash2 ) ROM_REGION( 0x80000, "maincpu", 0 ) /* Main 68K code */ ROM_LOAD16_WORD_SWAP( "mecat-m", 0x000000, 0x80000, CRC(bd2263c6) SHA1(eb794c0fc9c1fb4337114d48149283d42d22e4b3) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "mecat-34", 0x000000, 0x400000, CRC(6be7b37e) SHA1(13160ad0712fee932bb98cc226e651895b19228a) ) ROM_LOAD( "mecat-12", 0x400000, 0x400000, CRC(49e46b1f) SHA1(d12b12696a8473eb34f3cd247ab060289a6c0e9c) ) @@ -4474,11 +4450,11 @@ ROM_START( truxton2 ) /* program ROM is byte swapped ! */ ROM_LOAD16_WORD( "tp024_1.bin", 0x000000, 0x080000, CRC(f5cfe6ee) SHA1(30979888a4cd6500244117748f28386a7e20a169) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "tp024_4.bin", 0x000000, 0x100000, CRC(805c449e) SHA1(fdf985344145bd320b88b9b0c25e73066c9b2ada) ) ROM_LOAD( "tp024_3.bin", 0x100000, 0x100000, CRC(47587164) SHA1(bac493e2d5507286b984957b289c929335d27eaa) ) - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x80000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp024_2.bin", 0x00000, 0x80000, CRC(f2f6cae4) SHA1(bb4e8c36531bed97ced4696ca12fd40ede2531aa) ) ROM_END @@ -4491,7 +4467,7 @@ ROM_START( pipibibs ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "tp025-5.bin", 0x0000, 0x8000, CRC(bf8ffde5) SHA1(79c09cc9a0ea979f5af5a7e5ad671ea486f5f43e) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) ) ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) ) ROM_END @@ -4505,7 +4481,7 @@ ROM_START( pipibibsa ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "tp025-5.bin", 0x0000, 0x8000, CRC(bf8ffde5) SHA1(79c09cc9a0ea979f5af5a7e5ad671ea486f5f43e) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) ) ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) ) ROM_END @@ -4519,7 +4495,7 @@ ROM_START( whoopee ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound HD647180 code */ ROM_LOAD( "hd647180.025", 0x00000, 0x08000, CRC(c02436f6) SHA1(385343f88991646ec23b385eaea82718f1251ea6) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) ) ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) ) ROM_END @@ -4533,7 +4509,7 @@ ROM_START( pipibibsp ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "pip_snd", 0x0000, 0x8000, CRC(8ebf183b) SHA1(602b138c85b02d121d007f6788b322aa107c7d91) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "cg_01_l", 0x000000, 0x080000, CRC(21d1ef46) SHA1(d7ccbe56eb08be421c241065cbaa99cc9cca4d73) ) ROM_LOAD( "cg_01_h", 0x080000, 0x080000, CRC(d5726328) SHA1(26401ba8ce22fda161306b91d70afefa959cde8c) ) ROM_LOAD( "cg_23_l", 0x100000, 0x080000, CRC(114d41d0) SHA1(d1166d495d92c6082fffbed422deb7605c5a41a2) ) @@ -4549,7 +4525,7 @@ ROM_START( pipibibsbl ) /* Based off the proto code. */ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "ppbb08.bin", 0x0000, 0x8000, CRC(101c0358) SHA1(162e02d00b7bdcdd3b48a0cd0527b7428435ec50) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) /* GFX data differs slightly from Toaplan boards ??? */ ROM_LOAD16_BYTE( "ppbb01.bin", 0x000000, 0x080000, CRC(0fcae44b) SHA1(ac72bc79e3a5d0a81647c312d310d00ace017272) ) ROM_LOAD16_BYTE( "ppbb02.bin", 0x000001, 0x080000, CRC(8bfcdf87) SHA1(4537a7d646d3014f069c6fd0be457bb32e2f18ac) ) @@ -4564,10 +4540,10 @@ ROM_END #define ROMS_FIXEIGHT \ ROM_REGION( 0x080000, "maincpu", 0 ) \ ROM_LOAD16_WORD_SWAP( "tp-026-1", 0x000000, 0x080000, CRC(f7b1746a) SHA1(0bbea6f111b818bc9b9b2060af4fe900f37cf7f9) ) \ - ROM_REGION( 0x400000, "gp9001", 0 ) \ + ROM_REGION( 0x400000, "gp9001_0", 0 ) \ ROM_LOAD( "tp-026-3", 0x000000, 0x200000, CRC(e5578d98) SHA1(280d2b716d955e767d311fc9596823852435b6d7) ) \ ROM_LOAD( "tp-026-4", 0x200000, 0x200000, CRC(b760cb53) SHA1(bc9c5e49e45cdda0f774be0038aa4deb21d4d285) ) \ - ROM_REGION( 0x40000, "oki", 0 ) \ + ROM_REGION( 0x40000, "oki1", 0 ) \ ROM_LOAD( "tp-026-2", 0x00000, 0x40000, CRC(85063f1f) SHA1(1bf4d77494de421c98f6273b9876e60d827a6826) ) // note you may need to byteswap these EEPROM files to reprogram the original chip, this is the same for many supported in MAME. @@ -4698,14 +4674,14 @@ ROM_START( fixeightbl ) ROM_LOAD16_BYTE( "3.bin", 0x000000, 0x80000, CRC(cc77d4b4) SHA1(4d3376cbae13d90c6314d8bb9236c2183fc6253c) ) ROM_LOAD16_BYTE( "2.bin", 0x000001, 0x80000, CRC(ed715488) SHA1(37be9bc8ff6b54a1f660d89469c6c2da6301e9cd) ) - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD( "tp-026-3", 0x000000, 0x200000, CRC(e5578d98) SHA1(280d2b716d955e767d311fc9596823852435b6d7) ) ROM_LOAD( "tp-026-4", 0x200000, 0x200000, CRC(b760cb53) SHA1(bc9c5e49e45cdda0f774be0038aa4deb21d4d285) ) ROM_REGION( 0x08000, "text", 0) ROM_LOAD( "4.bin", 0x00000, 0x08000, CRC(a6aca465) SHA1(2b331faeee1832e0adc5218254a99d66331862c6) ) - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x80000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(888f19ac) SHA1(d2f4f8b7be7a0fdb95baa0af8930e50e2f875c05) ) ROM_REGION( 0x8000, "user1", 0 ) /* ??? Some sort of table - same as in pipibibsbl */ @@ -4720,7 +4696,7 @@ ROM_START( grindstm ) /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */ /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */ - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) ) ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) ) ROM_END @@ -4733,7 +4709,7 @@ ROM_START( grindstma ) /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */ /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */ - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) ) ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) ) ROM_END @@ -4746,7 +4722,7 @@ ROM_START( vfive ) /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */ /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */ - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) ) ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) ) ROM_END @@ -4759,7 +4735,7 @@ ROM_START( batsugun ) /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */ /* It's a NEC V25 (PLCC94) (program uploaded by main CPU) */ - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) ) ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) ) ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) ) @@ -4769,7 +4745,7 @@ ROM_START( batsugun ) ROM_LOAD( "tp030_5.bin", 0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) ) ROM_LOAD( "tp030_6.bin", 0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) ) ROM_REGION( 0x1000, "plds", 0 ) /* Logic for mixing output of both GP9001 GFX controllers */ @@ -4784,7 +4760,7 @@ ROM_START( batsuguna ) /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */ /* It's a NEC V25 (PLCC94) (program uploaded by main CPU) */ - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) ) ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) ) ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) ) @@ -4794,7 +4770,7 @@ ROM_START( batsuguna ) ROM_LOAD( "tp030_5.bin", 0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) ) ROM_LOAD( "tp030_6.bin", 0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) ) ROM_REGION( 0x1000, "plds", 0 ) /* Logic for mixing output of both GP9001 GFX controllers */ @@ -4808,7 +4784,7 @@ ROM_START( batsugunb ) /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */ /* It's a NEC V25 (PLCC94) (program uploaded by main CPU) */ - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD16_BYTE( "rom12.bin", 0x000000, 0x080000, CRC(d25affc6) SHA1(00803ae5a2bc06edbfb9ea6e3df51f195bbee8cb) ) ROM_LOAD16_BYTE( "rom6.bin", 0x000001, 0x080000, CRC(ddd6df60) SHA1(3b46945c51e7b10b473d98916f075e8def336ce7) ) ROM_LOAD16_BYTE( "rom11.bin", 0x100000, 0x080000, CRC(ed72fe3e) SHA1(5c0f4d5cc84b45e1924dacfa4c0b602cc1600b2f) ) @@ -4824,7 +4800,7 @@ ROM_START( batsugunb ) ROM_LOAD16_BYTE( "rom7.bin", 0x100000, 0x080000, CRC(8644518f) SHA1(570141deeb796cfae57600d5a518d34bb6dc14d0) ) ROM_LOAD16_BYTE( "rom1.bin", 0x100001, 0x080000, CRC(8e339897) SHA1(80e84c291f287c0783bddfcb1b7ebf78c154cadc) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom13.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) ) ROM_REGION( 0x1000, "plds", 0 ) /* Logic for mixing output of both GP9001 GFX controllers */ @@ -4841,7 +4817,7 @@ ROM_START( batsugunsp ) /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy TOA PLAN) */ /* It's a NEC V25 (PLCC94) (program uploaded by main CPU) */ - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) ) ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) ) ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) ) @@ -4851,7 +4827,7 @@ ROM_START( batsugunsp ) ROM_LOAD( "tp030_5.bin", 0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) ) ROM_LOAD( "tp030_6.bin", 0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) ) ROM_REGION( 0x1000, "plds", 0 ) /* Logic for mixing output of both GP9001 GFX controllers */ @@ -4863,11 +4839,11 @@ ROM_START( pwrkick ) ROM_REGION( 0x80000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "1.u61", 0x000000, 0x080000, CRC(118b5899) SHA1(7a1637a63eb17e3892d79aede5730013a1dc00f9) ) - ROM_REGION( 0x100000, "gp9001", ROMREGION_ERASE00 ) + ROM_REGION( 0x100000, "gp9001_0", ROMREGION_ERASE00 ) ROM_LOAD( "2.u26", 0x000000, 0x080000, CRC(a190eaea) SHA1(2c7b8c8026873e0f591fbcbc2e72b196ef84e162) ) ROM_LOAD( "3.u27", 0x080000, 0x080000, CRC(0b81e038) SHA1(8376617ae519a8ef604f20b26e941aa5b8066602) ) - ROM_REGION( 0x80000, "oki", ROMREGION_ERASE00 ) + ROM_REGION( 0x80000, "oki1", ROMREGION_ERASE00 ) ROM_LOAD( "4.u33", 0x000000, 0x080000, CRC(3ab742f1) SHA1(ce8ca02ca57fd77872e421ce601afd017d3518a0) ) ROM_END @@ -4875,11 +4851,11 @@ ROM_START( othldrby ) ROM_REGION( 0x080000, "maincpu", 0 ) ROM_LOAD16_WORD_SWAP( "db0.1", 0x00000, 0x80000, CRC(6b4008d3) SHA1(4cf838c47563ba482be8364b2e115569a4a06c83) ) - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD( "db0-r2", 0x000000, 0x200000, CRC(4efff265) SHA1(4cd239ff42f532495946cb52bd1fee412f84e192) ) ROM_LOAD( "db0-r3", 0x200000, 0x200000, CRC(5c142b38) SHA1(5466a8b061a0f2545493de0f96fd4387beea276a) ) - ROM_REGION( 0x080000, "oki", 0 ) /* OKIM6295 samples */ + ROM_REGION( 0x080000, "oki1", 0 ) /* OKIM6295 samples */ ROM_LOAD( "db0.4", 0x00000, 0x80000, CRC(a9701868) SHA1(9ee89556666d358e8d3915622573b3ba660048b8) ) ROM_END @@ -4887,11 +4863,11 @@ ROM_START( enmadaio ) ROM_REGION( 0x080000, "maincpu", 0 ) ROM_LOAD16_WORD_SWAP( "03n_u53.c8", 0x00000, 0x80000, CRC(1a6ca2ee) SHA1(13d34a10004ca172db7953e2be8daa90fc5b62ed) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "rom4_u30.c19", 0x000000, 0x100000, CRC(7a012d8b) SHA1(a33d9490573a9fd1e799d3fe567f991926851c51) ) ROM_LOAD( "rom5_u31.c18", 0x100000, 0x100000, CRC(60b127ab) SHA1(98785dfd6a86b4bd2c9786f6f72796c023b5b73a) ) - ROM_REGION( 0x1800000, "oki", 0 ) /* OKIM6295 samples */ // each rom contains 8 0x40000 banks, there are 12 roms, so 96 (0x60) banks here! + ROM_REGION( 0x1800000, "oki1", 0 ) /* OKIM6295 samples */ // each rom contains 8 0x40000 banks, there are 12 roms, so 96 (0x60) banks here! ROM_LOAD( "rom6_u65.a1", 0x0000000, 0x0200000, CRC(f33c6c0b) SHA1(06d73cd5b6d27de4d68f2dde1ed4dfa72b9a9178) ) ROM_LOAD( "rom7_u66.a3", 0x0200000, 0x0200000, CRC(1306f8b3) SHA1(21b0d3180f1f4af77074c35c66844e38a464fea0) ) ROM_LOAD( "rom8_u61.a4", 0x0400000, 0x0200000, CRC(4f211c00) SHA1(b067de95ad595a4915effefb83789e4e3d9db6f9) ) @@ -4910,13 +4886,13 @@ ROM_START( snowbro2 ) ROM_REGION( 0x080000, "maincpu", 0 ) /* Main 68K code */ ROM_LOAD16_WORD_SWAP( "pro-4", 0x000000, 0x080000, CRC(4c7ee341) SHA1(ad46c605a38565d0148daac301be4e4b72302fe7) ) - ROM_REGION( 0x300000, "gp9001", 0 ) + ROM_REGION( 0x300000, "gp9001_0", 0 ) ROM_LOAD( "rom2-l", 0x000000, 0x100000, CRC(e9d366a9) SHA1(e87e3966fce3395324b90db6c134b3345104c04b) ) ROM_LOAD( "rom2-h", 0x100000, 0x080000, CRC(9aab7a62) SHA1(611f6a15fdbac5d3063426a365538c1482e996bf) ) ROM_LOAD( "rom3-l", 0x180000, 0x100000, CRC(eb06e332) SHA1(7cd597bfffc153d178530c0f0903bebd751c9dd1) ) ROM_LOAD( "rom3-h", 0x280000, 0x080000, CRC(df4a952a) SHA1(b76af61c8437caca573ff1312832898666a611aa) ) - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x80000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom4", 0x00000, 0x80000, CRC(638f341e) SHA1(aa3fca25f099339ece1878ea730c5e9f18ec4823) ) ROM_END @@ -4925,11 +4901,11 @@ ROM_START( snowbro2b ) // seems to be the same data as the main set, but with th ROM_LOAD16_BYTE( "sb2-prg1.u39", 0x000000, 0x040000, CRC(e1fec8a2) SHA1(30c1a351070d784da9ba0dca68be8a262dba2045) ) ROM_LOAD16_BYTE( "sb2-prg0.u23", 0x000001, 0x040000, CRC(b473cd57) SHA1(331130faa9de01b3ca93845174e8c3684bd269c7) ) - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD( "sb2-gfx.u177", 0x000000, 0x200000, CRC(ebeec910) SHA1(e179f393b98135caa8419b68cd979038ab47a413) ) ROM_LOAD( "sb2-gfx.u175", 0x200000, 0x200000, CRC(e349c75b) SHA1(7d40d00fc0e15a68c427fe94db410bb7cbe00117) ) - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x80000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "sb2-snd-4.u17", 0x00000, 0x80000, CRC(638f341e) SHA1(aa3fca25f099339ece1878ea730c5e9f18ec4823) ) ROM_REGION( 0x8000, "user1", 0 ) /* ??? Some sort of table - same as other bootleg boards */ @@ -4970,14 +4946,14 @@ ROM_START( sstriker ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "ra-ma01-rom2.u2", 0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) ) ROM_LOAD( "ra-ma01-rom3.u1", 0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) ) ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "ra-ma-01_05.u81", 0x000000, 0x008000, CRC(88b58841) SHA1(1d16b538c11a291bd1f46a510bfbd6259b45a0b5) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "ra-ma01-rom1.u57", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) ) ROM_END @@ -4989,14 +4965,14 @@ ROM_START( sstrikerk ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "ra-ma01-rom2.u2", 0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) ) ROM_LOAD( "ra-ma01-rom3.u1", 0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) ) ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "ra-ma-01_05.u81", 0x000000, 0x008000, CRC(88b58841) SHA1(1d16b538c11a291bd1f46a510bfbd6259b45a0b5) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "ra-ma01-rom1.u57", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) ) ROM_END @@ -5008,14 +4984,14 @@ ROM_START( mahoudai ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) ) - ROM_REGION( 0x200000, "gp9001", 0 ) + ROM_REGION( 0x200000, "gp9001_0", 0 ) ROM_LOAD( "ra-ma01-rom2.u2", 0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) ) ROM_LOAD( "ra-ma01-rom3.u1", 0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) ) ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "ra_ma_01_05.u81", 0x000000, 0x008000, CRC(c00d1e80) SHA1(53e64c4c0c6309130b37597d13b44a9e95b717d8) ) - ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x40000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "ra-ma01-rom1.u57", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) ) ROM_END @@ -5028,14 +5004,14 @@ ROM_START( kingdmgp ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) ) - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD( "ma02rom3.bin", 0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) ) ROM_LOAD( "ma02rom4.bin", 0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) ) ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "ma02rom5.eng", 0x000000, 0x008000, CRC(8c28460b) SHA1(0aed170762f6044896a7e608df60bbd37c583a71) ) - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x80000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "ma02rom6.bin", 0x00000, 0x80000, CRC(199e7cae) SHA1(0f5e13cc8ec42c80bb4bbff90aba29cdb15213d4) ) ROM_END @@ -5048,14 +5024,14 @@ ROM_START( shippumd ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) ) - ROM_REGION( 0x400000, "gp9001", 0 ) + ROM_REGION( 0x400000, "gp9001_0", 0 ) ROM_LOAD( "ma02rom3.bin", 0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) ) ROM_LOAD( "ma02rom4.bin", 0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) ) ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "ma02rom5.bin", 0x000000, 0x008000, CRC(116ae559) SHA1(4cc2d2a23cc0aefd457111b7990e47184e79204c) ) - ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x80000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "ma02rom6.bin", 0x00000, 0x80000, CRC(199e7cae) SHA1(0f5e13cc8ec42c80bb4bbff90aba29cdb15213d4) ) ROM_END @@ -5068,16 +5044,16 @@ ROM_START( bgaregga ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) ) ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) ) ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) ) ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) ) - ROM_REGION( 0x010000, "text", 0 ) + ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) ) - ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x140000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) ROM_END @@ -5090,16 +5066,16 @@ ROM_START( bgareggahk ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) ) ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) ) ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) ) ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) ) - ROM_REGION( 0x010000, "text", 0 ) + ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) ) - ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x140000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) ROM_END @@ -5112,16 +5088,16 @@ ROM_START( bgareggatw ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) ) ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) ) ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) ) ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) ) - ROM_REGION( 0x010000, "text", 0 ) + ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) ) - ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x140000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) ROM_END @@ -5134,16 +5110,16 @@ ROM_START( bgaregganv ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) ) ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) ) ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) ) ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) ) - ROM_REGION( 0x010000, "text", 0 ) + ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) ) - ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x140000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) ROM_END @@ -5156,16 +5132,16 @@ ROM_START( bgareggat2 ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) ) ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) ) ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) ) ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) ) - ROM_REGION( 0x010000, "text", 0 ) + ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) ) - ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x140000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) ROM_END @@ -5178,16 +5154,16 @@ ROM_START( bgareggacn ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) ) ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) ) ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) ) ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) ) - ROM_REGION( 0x010000, "text", 0 ) + ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) ) - ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x140000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) ROM_END @@ -5199,17 +5175,17 @@ ROM_START( bgareggabl ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "6@-322", 0x000000, 0x400000, CRC(37fe48ed) SHA1(ded5d13c33b4582310cdfb3dd52c052f741c00c5) ) /* == rom4.bin+rom3.bin */ ROM_LOAD( "5@-322", 0x400000, 0x400000, CRC(5a06c031) SHA1(ee241ff90117cec1f33ab163601a9d5c75609739) ) /* == rom2.bin+rom1.bin */ - ROM_REGION( 0x010000, "text", 0 ) + ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "1@-256", 0x00000, 0x08000, CRC(760dcd14) SHA1(e151e5d7ca5557277f306b9484ec021f4edf1e07) ) ROM_REGION( 0x010000, "user1", 0 ) // not graphics ROM_LOAD( "2@-256", 0x00000, 0x08000, CRC(456dd16e) SHA1(84779ee64d3ea33ba1ba4dee39b504a81c6811a1) ) - ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x140000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) ROM_END @@ -5220,19 +5196,19 @@ ROM_START( bgareggabla ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) ) - ROM_REGION( 0x800000, "gp9001", 0 ) + ROM_REGION( 0x800000, "gp9001_0", 0 ) ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) ) ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) ) ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) ) ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) ) - ROM_REGION( 0x010000, "text", 0 ) + ROM_REGION( 0x008000, "text", 0 ) ROM_LOAD( "text.bin", 0x00000, 0x08000, CRC(00d100bd) SHA1(fb6028e3519d6588a966d1b16d47453db2e51fd7)) ROM_REGION( 0x010000, "user1", 0 ) // not graphics ROM_LOAD( "base.bin", 0x00000, 0x08000, CRC(456dd16e) SHA1(84779ee64d3ea33ba1ba4dee39b504a81c6811a1) ) - ROM_REGION( 0x140000, "oki", 0 ) /* ADPCM Samples */ + ROM_REGION( 0x140000, "oki1", 0 ) /* ADPCM Samples */ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) ) ROM_END @@ -5314,7 +5290,7 @@ ROM_START( batrider ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) ) ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) ) ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) ) @@ -5338,7 +5314,7 @@ ROM_START( batrideru ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) ) ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) ) ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) ) @@ -5362,7 +5338,7 @@ ROM_START( batriderc ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) ) ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) ) ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) ) @@ -5386,7 +5362,7 @@ ROM_START( batriderj ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) ) ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) ) ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) ) @@ -5410,7 +5386,7 @@ ROM_START( batriderk ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) ) ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) ) ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) ) @@ -5434,7 +5410,7 @@ ROM_START( batriderja ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) ) ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) ) ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) ) @@ -5458,7 +5434,7 @@ ROM_START( batriderhk ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) ) ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) ) ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) ) @@ -5482,7 +5458,7 @@ ROM_START( batridert ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound Z80 code + bank */ ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) ) ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) ) ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) ) @@ -5557,7 +5533,7 @@ ROM_START( bbakraid ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "sndu0720.bin", 0x00000, 0x20000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) ) ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) ) ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) ) @@ -5583,7 +5559,7 @@ ROM_START( bbakraidc ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "sndu0720.bin", 0x00000, 0x20000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) ) ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) ) ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) ) @@ -5609,7 +5585,7 @@ ROM_START( bbakraidj ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "sndu0720.bin", 0x00000, 0x20000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) ) ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) ) ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) ) @@ -5635,7 +5611,7 @@ ROM_START( bbakraidja ) ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 code */ ROM_LOAD( "sndu0720.bin", 0x00000, 0x20000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) ) - ROM_REGION( 0x1000000, "gp9001", 0 ) + ROM_REGION( 0x1000000, "gp9001_0", 0 ) ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) ) ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) ) ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) ) diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h index bc96b7d3362..e2b05651c55 100644 --- a/src/mame/includes/toaplan2.h +++ b/src/mame/includes/toaplan2.h @@ -5,6 +5,7 @@ //#define TRUXTON2_STEREO /* Uncomment to hear truxton2 music in stereo */ #include "cpu/m68000/m68000.h" +#include "machine/bankdev.h" #include "machine/eepromser.h" #include "machine/gen_latch.h" #include "machine/nmk112.h" @@ -21,29 +22,32 @@ class toaplan2_state : public driver_device { public: toaplan2_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_shared_ram(*this, "shared_ram"), - m_paletteram(*this, "palette"), - m_tx_videoram(*this, "tx_videoram"), - m_tx_lineselect(*this, "tx_lineselect"), - m_tx_linescroll(*this, "tx_linescroll"), - m_tx_gfxram16(*this, "tx_gfxram16"), - m_mainram16(*this, "mainram16"), - m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_vdp0(*this, "gp9001"), - m_vdp1(*this, "gp9001_1"), - m_nmk112(*this, "nmk112"), - m_oki(*this, "oki"), - m_oki1(*this, "oki1"), - m_eeprom(*this, "eeprom"), - m_rtc(*this, "rtc"), - m_gfxdecode(*this, "gfxdecode"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_soundlatch(*this, "soundlatch"), - m_soundlatch2(*this, "soundlatch2"), - m_hopper(*this, "hopper") { } + : driver_device(mconfig, type, tag) + , m_shared_ram(*this, "shared_ram") + , m_paletteram(*this, "palette") + , m_tx_videoram(*this, "tx_videoram") + , m_tx_lineselect(*this, "tx_lineselect") + , m_tx_linescroll(*this, "tx_linescroll") + , m_tx_gfxram16(*this, "tx_gfxram16") + , m_mainram16(*this, "mainram16") + , m_maincpu(*this, "maincpu") + , m_audiocpu(*this, "audiocpu") + , m_vdp(*this, "gp9001_%u", 0U) + , m_nmk112(*this, "nmk112") + , m_oki(*this, "oki%u", 1U) + , m_eeprom(*this, "eeprom") + , m_rtc(*this, "rtc") + , m_gfxdecode(*this, "gfxdecode") + , m_screen(*this, "screen") + , m_palette(*this, "palette") + , m_soundlatch(*this, "soundlatch") + , m_soundlatch2(*this, "soundlatch2") + , m_hopper(*this, "hopper") + , m_dma_space(*this, "dma_space") + , m_z80_rom(*this, "audiocpu") + , m_audiobank(*this, "audiobank") + , m_okibank(*this, "okibank") + { } optional_shared_ptr m_shared_ram; // 8 bit RAM shared between 68K and sound CPU optional_shared_ptr m_paletteram; @@ -55,11 +59,9 @@ public: required_device m_maincpu; optional_device m_audiocpu; - required_device m_vdp0; - optional_device m_vdp1; + optional_device_array m_vdp; optional_device m_nmk112; - optional_device m_oki; - optional_device m_oki1; + optional_device_array m_oki; optional_device m_eeprom; optional_device m_rtc; optional_device m_gfxdecode; @@ -69,6 +71,12 @@ public: optional_device m_soundlatch2; optional_device m_hopper; + optional_device m_dma_space; + + optional_region_ptr m_z80_rom; + optional_memory_bank m_audiobank; + optional_memory_bank m_okibank; + int8_t m_old_p1_paddle_h; /* For Ghox */ int8_t m_old_p2_paddle_h; uint8_t m_v25_reset_line; /* 0x20 for dogyuun/batsugun, 0x10 for vfive, 0x08 for fixeight */ @@ -89,15 +97,15 @@ public: DECLARE_READ16_MEMBER(ghox_p1_h_analog_r); DECLARE_READ16_MEMBER(ghox_p2_h_analog_r); DECLARE_WRITE16_MEMBER(fixeight_subcpu_ctrl_w); - DECLARE_WRITE16_MEMBER(fixeightbl_oki_bankswitch_w); + DECLARE_WRITE8_MEMBER(fixeightbl_oki_bankswitch_w); DECLARE_WRITE8_MEMBER(raizing_z80_bankswitch_w); DECLARE_WRITE8_MEMBER(raizing_oki_bankswitch_w); DECLARE_READ8_MEMBER(bgaregga_E01D_r); DECLARE_READ16_MEMBER(batrider_z80_busack_r); - DECLARE_WRITE16_MEMBER(batrider_z80_busreq_w); + DECLARE_WRITE8_MEMBER(batrider_z80_busreq_w); DECLARE_READ16_MEMBER(batrider_z80rom_r); - DECLARE_WRITE16_MEMBER(batrider_soundlatch_w); - DECLARE_WRITE16_MEMBER(batrider_soundlatch2_w); + DECLARE_WRITE8_MEMBER(batrider_soundlatch_w); + DECLARE_WRITE8_MEMBER(batrider_soundlatch2_w); DECLARE_WRITE16_MEMBER(batrider_unknown_sound_w); DECLARE_WRITE16_MEMBER(batrider_clear_sndirq_w); DECLARE_WRITE8_MEMBER(batrider_sndirq_w); @@ -108,11 +116,10 @@ public: DECLARE_WRITE16_MEMBER(toaplan2_tx_linescroll_w); DECLARE_WRITE16_MEMBER(toaplan2_tx_gfxram16_w); DECLARE_WRITE16_MEMBER(batrider_textdata_dma_w); - DECLARE_WRITE16_MEMBER(batrider_unknown_dma_w); - DECLARE_WRITE16_MEMBER(batrider_objectbank_w); + DECLARE_WRITE16_MEMBER(batrider_pal_text_dma_w); + DECLARE_WRITE8_MEMBER(batrider_objectbank_w); DECLARE_CUSTOM_INPUT_MEMBER(c2map_r); - DECLARE_WRITE16_MEMBER(oki_bankswitch_w); - DECLARE_WRITE16_MEMBER(oki1_bankswitch_w); + template DECLARE_WRITE8_MEMBER(oki_bankswitch_w); DECLARE_WRITE16_MEMBER(enmadaio_oki_bank_w); void init_bbakraid(); void init_pipibibsbl(); @@ -176,6 +183,7 @@ public: void vfive(machine_config &config); void kbash2(machine_config &config); void batrider_68k_mem(address_map &map); + void batrider_dma_mem(address_map &map); void batrider_sound_z80_mem(address_map &map); void batrider_sound_z80_port(address_map &map); void batsugun_68k_mem(address_map &map); diff --git a/src/mame/video/gp9001.cpp b/src/mame/video/gp9001.cpp index 4e876c6c67f..84b97ab9916 100644 --- a/src/mame/video/gp9001.cpp +++ b/src/mame/video/gp9001.cpp @@ -151,35 +151,27 @@ Pipi & Bibis | Fix Eight | V-Five | Snow Bros. 2 | priority system. */ -#define GP9001_PRIMASK (0x000f) -#define GP9001_PRIMASK_TMAPS (0x000e) +static constexpr unsigned GP9001_PRIMASK = 0x000f; +static constexpr unsigned GP9001_PRIMASK_TMAPS = 0x000e; +// TODO : Wrong; It's possibly lower than 256 at real hardware +// Most noticeable at some boss explosion scene in bgaregga +static constexpr unsigned MAX_SPRITES = 256; -WRITE16_MEMBER(gp9001vdp_device::bg_tmap_w) +template +WRITE16_MEMBER(gp9001vdp_device::tmap_w) { - COMBINE_DATA(&m_vram_bg[offset]); - bg.tmap->mark_tile_dirty(offset/2); -} - -WRITE16_MEMBER(gp9001vdp_device::fg_tmap_w) -{ - COMBINE_DATA(&m_vram_fg[offset]); - fg.tmap->mark_tile_dirty(offset/2); -} - -WRITE16_MEMBER(gp9001vdp_device::top_tmap_w) -{ - COMBINE_DATA(&m_vram_top[offset]); - top.tmap->mark_tile_dirty(offset/2); + COMBINE_DATA(&m_vram[Layer][offset]); + tm[Layer].tmap->mark_tile_dirty(offset/2); } void gp9001vdp_device::map(address_map &map) { - map(0x0000, 0x0fff).ram().w(this, FUNC(gp9001vdp_device::bg_tmap_w)).share("vram_bg"); - map(0x1000, 0x1fff).ram().w(this, FUNC(gp9001vdp_device::fg_tmap_w)).share("vram_fg"); - map(0x2000, 0x2fff).ram().w(this, FUNC(gp9001vdp_device::top_tmap_w)).share("vram_top"); + map(0x0000, 0x0fff).ram().w(this, FUNC(gp9001vdp_device::tmap_w<0>)).share("vram_0"); + map(0x1000, 0x1fff).ram().w(this, FUNC(gp9001vdp_device::tmap_w<1>)).share("vram_1"); + map(0x2000, 0x2fff).ram().w(this, FUNC(gp9001vdp_device::tmap_w<2>)).share("vram_2"); map(0x3000, 0x37ff).ram().share("spriteram").mirror(0x0800); -// AM_RANGE(0x3800, 0x3fff) AM_RAM // sprite mirror? +// map(0x3800, 0x3fff).ram(); // sprite mirror? } @@ -189,11 +181,9 @@ const gfx_layout gp9001vdp_device::tilelayout = RGN_FRAC(1,2), /* Number of tiles */ 4, /* 4 bits per pixel */ { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16 }, - 8*4*16 + { STEP8(0,1), STEP8(8*8*2,1) }, + { STEP8(0,8*2), STEP8(16*8*2,8*2) }, + 16*16*2 }; const gfx_layout gp9001vdp_device::spritelayout = @@ -202,9 +192,9 @@ const gfx_layout gp9001vdp_device::spritelayout = RGN_FRAC(1,2), /* Number of 8x8 sprites */ 4, /* 4 bits per pixel */ { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 8*16 + { STEP8(0,1) }, + { STEP8(0,8*2) }, + 8*8*2 }; GFXDECODE_MEMBER( gp9001vdp_device::gfxinfo ) @@ -216,16 +206,14 @@ GFXDECODE_END DEFINE_DEVICE_TYPE(GP9001_VDP, gp9001vdp_device, "gp9001vdp", "GP9001 VDP") gp9001vdp_device::gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GP9001_VDP, tag, owner, clock), - device_gfx_interface(mconfig, *this, gfxinfo), - device_video_interface(mconfig, *this), - device_memory_interface(mconfig, *this), - m_space_config("gp9001vdp", ENDIANNESS_BIG, 16,14, 0, address_map_constructor(FUNC(gp9001vdp_device::map), this)), - m_vram_bg(*this, "vram_bg"), - m_vram_fg(*this, "vram_fg"), - m_vram_top(*this, "vram_top"), - m_spriteram(*this, "spriteram"), - m_vint_out_cb(*this) + : device_t(mconfig, GP9001_VDP, tag, owner, clock) + , device_gfx_interface(mconfig, *this, gfxinfo) + , device_video_interface(mconfig, *this) + , device_memory_interface(mconfig, *this) + , m_space_config("gp9001vdp", ENDIANNESS_BIG, 16,14, 0, address_map_constructor(FUNC(gp9001vdp_device::map), this)) + , m_vram(*this, "vram_%u", 0) + , m_spriteram(*this, "spriteram") + , m_vint_out_cb(*this) { } @@ -236,44 +224,14 @@ device_memory_interface::space_config_vector gp9001vdp_device::memory_space_conf }; } -TILE_GET_INFO_MEMBER(gp9001vdp_device::get_top0_tile_info) +template +TILE_GET_INFO_MEMBER(gp9001vdp_device::get_tile_info) { int color, tile_number, attrib; - attrib = m_vram_top[2*tile_index]; + attrib = m_vram[Layer][2*tile_index]; - tile_number = get_tile_number(m_vram_top, tile_index); - - color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour - SET_TILE_INFO_MEMBER(0, - tile_number, - color, - 0); - //tileinfo.category = (attrib & 0x0f00) >> 8; -} - -TILE_GET_INFO_MEMBER(gp9001vdp_device::get_fg0_tile_info) -{ - int color, tile_number, attrib; - - attrib = m_vram_fg[2*tile_index]; - - tile_number = get_tile_number(m_vram_fg, tile_index); - - color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour - SET_TILE_INFO_MEMBER(0, - tile_number, - color, - 0); - //tileinfo.category = (attrib & 0x0f00) >> 8; -} - -TILE_GET_INFO_MEMBER(gp9001vdp_device::get_bg0_tile_info) -{ - int color, tile_number, attrib; - attrib = m_vram_bg[2*tile_index]; - - tile_number = get_tile_number(m_vram_bg, tile_index); + tile_number = get_tile_number(Layer, tile_index); color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour SET_TILE_INFO_MEMBER(0, @@ -285,13 +243,13 @@ TILE_GET_INFO_MEMBER(gp9001vdp_device::get_bg0_tile_info) void gp9001vdp_device::create_tilemaps() { - top.tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_top0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); - fg.tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); - bg.tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); + tm[2].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<2>),this),TILEMAP_SCAN_ROWS,16,16,32,32); + tm[1].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,32,32); + tm[0].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,32,32); - top.tmap->set_transparent_pen(0); - fg.tmap->set_transparent_pen(0); - bg.tmap->set_transparent_pen(0); + tm[2].tmap->set_transparent_pen(0); + tm[1].tmap->set_transparent_pen(0); + tm[0].tmap->set_transparent_pen(0); } @@ -309,17 +267,14 @@ void gp9001vdp_device::device_start() save_item(NAME(gp9001_scroll_reg)); save_item(NAME(gp9001_voffs)); - save_item(NAME(bg.scrollx)); - save_item(NAME(bg.scrolly)); - save_item(NAME(fg.scrollx)); - save_item(NAME(fg.scrolly)); - save_item(NAME(top.scrollx)); - save_item(NAME(top.scrolly)); + for (int i = 0; i < 3; i++) + { + save_item(NAME(tm[i].scrollx), i); + save_item(NAME(tm[i].scrolly), i); + save_item(NAME(tm[i].flip), i); + } save_item(NAME(sp.scrollx)); save_item(NAME(sp.scrolly)); - save_item(NAME(bg.flip)); - save_item(NAME(fg.flip)); - save_item(NAME(top.flip)); save_item(NAME(sp.flip)); gfxrom_is_banked = false; @@ -327,20 +282,20 @@ void gp9001vdp_device::device_start() save_item(NAME(gfxrom_bank)); // default layer offsets used by all original games - bg.extra_xoffset.normal = -0x1d6; - bg.extra_xoffset.flipped = -0x229; - bg.extra_yoffset.normal = -0x1ef; - bg.extra_yoffset.flipped = -0x210; + tm[0].extra_xoffset.normal = -0x1d6; + tm[0].extra_xoffset.flipped = -0x229; + tm[0].extra_yoffset.normal = -0x1ef; + tm[0].extra_yoffset.flipped = -0x210; - fg.extra_xoffset.normal = -0x1d8; - fg.extra_xoffset.flipped = -0x227; - fg.extra_yoffset.normal = -0x1ef; - fg.extra_yoffset.flipped = -0x210; + tm[1].extra_xoffset.normal = -0x1d8; + tm[1].extra_xoffset.flipped = -0x227; + tm[1].extra_yoffset.normal = -0x1ef; + tm[1].extra_yoffset.flipped = -0x210; - top.extra_xoffset.normal = -0x1da; - top.extra_xoffset.flipped= -0x225; - top.extra_yoffset.normal = -0x1ef; - top.extra_yoffset.flipped= -0x210; + tm[2].extra_xoffset.normal = -0x1da; + tm[2].extra_xoffset.flipped= -0x225; + tm[2].extra_yoffset.normal = -0x1ef; + tm[2].extra_yoffset.flipped= -0x210; sp.extra_xoffset.normal = -0x1cc; sp.extra_xoffset.flipped = -0x17b; @@ -354,14 +309,14 @@ void gp9001vdp_device::device_reset() { gp9001_voffs = 0; gp9001_scroll_reg = 0; - bg.scrollx = bg.scrolly = 0; - fg.scrollx = fg.scrolly = 0; - top.scrollx = top.scrolly = 0; + tm[0].scrollx = tm[0].scrolly = 0; + tm[1].scrollx = tm[1].scrolly = 0; + tm[2].scrollx = tm[2].scrolly = 0; sp.scrollx = sp.scrolly = 0; - bg.flip = 0; - fg.flip = 0; - top.flip = 0; + tm[0].flip = 0; + tm[1].flip = 0; + tm[2].flip = 0; sp.flip = 0; init_scroll_regs(); @@ -500,14 +455,14 @@ void gp9001vdp_device::gp9001_scroll_reg_data_w(uint16_t data, uint16_t mem_mask switch (gp9001_scroll_reg&0x7f) { - case 0x00: bg.set_scrollx_and_flip_reg(data, mem_mask, flip); break; - case 0x01: bg.set_scrolly_and_flip_reg(data, mem_mask, flip); break; + case 0x00: tm[0].set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x01: tm[0].set_scrolly_and_flip_reg(data, mem_mask, flip); break; - case 0x02: fg.set_scrollx_and_flip_reg(data, mem_mask, flip); break; - case 0x03: fg.set_scrolly_and_flip_reg(data, mem_mask, flip); break; + case 0x02: tm[1].set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x03: tm[1].set_scrolly_and_flip_reg(data, mem_mask, flip); break; - case 0x04: top.set_scrollx_and_flip_reg(data, mem_mask, flip); break; - case 0x05: top.set_scrolly_and_flip_reg(data, mem_mask, flip); break; + case 0x04: tm[2].set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x05: tm[2].set_scrolly_and_flip_reg(data, mem_mask, flip); break; case 0x06: sp.set_scrollx_and_flip_reg(data, mem_mask, flip); break; case 0x07: sp.set_scrolly_and_flip_reg(data, mem_mask, flip); break; @@ -525,12 +480,12 @@ void gp9001vdp_device::gp9001_scroll_reg_data_w(uint16_t data, uint16_t mem_mask void gp9001vdp_device::init_scroll_regs() { - bg.set_scrollx_and_flip_reg(0, 0xffff, 0); - bg.set_scrolly_and_flip_reg(0, 0xffff, 0); - fg.set_scrollx_and_flip_reg(0, 0xffff, 0); - fg.set_scrolly_and_flip_reg(0, 0xffff, 0); - top.set_scrollx_and_flip_reg(0, 0xffff, 0); - top.set_scrolly_and_flip_reg(0, 0xffff, 0); + tm[0].set_scrollx_and_flip_reg(0, 0xffff, 0); + tm[0].set_scrolly_and_flip_reg(0, 0xffff, 0); + tm[1].set_scrollx_and_flip_reg(0, 0xffff, 0); + tm[1].set_scrolly_and_flip_reg(0, 0xffff, 0); + tm[2].set_scrollx_and_flip_reg(0, 0xffff, 0); + tm[2].set_scrolly_and_flip_reg(0, 0xffff, 0); sp.set_scrollx_and_flip_reg(0, 0xffff, 0); sp.set_scrolly_and_flip_reg(0, 0xffff, 0); } @@ -699,8 +654,6 @@ READ_LINE_MEMBER(gp9001vdp_device::fblank_r) void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const uint8_t* primap ) { - const uint16_t primask = (GP9001_PRIMASK << 8); - uint16_t *source; if (sp.use_sprite_buffer) source = sp.vram16_buffer.get(); @@ -711,14 +664,14 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip int old_x = (-(sp.scrollx)) & 0x1ff; int old_y = (-(sp.scrolly)) & 0x1ff; - for (int offs = 0; offs < (SPRITERAM_SIZE/2); offs += 4) + for (int offs = 0; offs < (MAX_SPRITES * 4); offs += 4) { int attrib, sprite, color, priority, flipx, flipy, sx, sy; int sprite_sizex, sprite_sizey, dim_x, dim_y, sx_base, sy_base; int bank, sprite_num; attrib = source[offs]; - priority = primap[((attrib & primask)>>8)]+1; + priority = primap[(attrib>>8) & GP9001_PRIMASK]+1; if ((attrib & 0x8000)) { @@ -800,8 +753,8 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip else sx = sx_base + dim_x; /* - gfx->transpen(bitmap,cliprect,sprite, - color, + gfx->transpen_raw(bitmap,cliprect,sprite, + color << 4, flipx,flipy, sx,sy,0); */ @@ -887,8 +840,9 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip Draw the game screen in the given bitmap_ind16. ***************************************************************************/ -void gp9001vdp_device::gp9001_draw_custom_tilemap( bitmap_ind16 &bitmap, tilemap_t* tilemap, const uint8_t* priremap, const uint8_t* pri_enable ) +void gp9001vdp_device::gp9001_draw_custom_tilemap( bitmap_ind16 &bitmap, int layer, const uint8_t* priremap, const uint8_t* pri_enable ) { + tilemap_t* tilemap = tm[layer].tmap; int width = screen().width(); int height = screen().height(); int y,x; @@ -913,7 +867,7 @@ void gp9001vdp_device::gp9001_draw_custom_tilemap( bitmap_ind16 &bitmap, tilemap int realx = (x+scrollx)&0x1ff; uint16_t pixdat = srcptr[realx]; - uint8_t pixpri = ((pixdat & (GP9001_PRIMASK_TMAPS<<12))>>12); + uint8_t pixpri = ((pixdat>>12) & GP9001_PRIMASK_TMAPS); if (pri_enable[pixpri]) { @@ -944,14 +898,15 @@ void gp9001vdp_device::gp9001_render_vdp(bitmap_ind16 &bitmap, const rectangle & { if (gfxrom_is_banked && gfxrom_bank_dirty) { - bg.tmap->mark_all_dirty(); - fg.tmap->mark_all_dirty(); + for (int i = 0; i < 3; i++) + tm[i].tmap->mark_all_dirty(); + gfxrom_bank_dirty = false; } - gp9001_draw_custom_tilemap(bitmap, bg.tmap, gp9001_primap1, batsugun_prienable0); - gp9001_draw_custom_tilemap(bitmap, fg.tmap, gp9001_primap1, batsugun_prienable0); - gp9001_draw_custom_tilemap(bitmap, top.tmap, gp9001_primap1, batsugun_prienable0); + gp9001_draw_custom_tilemap(bitmap, 0, gp9001_primap1, batsugun_prienable0); + gp9001_draw_custom_tilemap(bitmap, 1, gp9001_primap1, batsugun_prienable0); + gp9001_draw_custom_tilemap(bitmap, 2, gp9001_primap1, batsugun_prienable0); draw_sprites(bitmap,cliprect, gp9001_sprprimap1); } diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h index 2f515b3e053..876ea9ba886 100644 --- a/src/mame/video/gp9001.h +++ b/src/mame/video/gp9001.h @@ -25,7 +25,7 @@ public: template devcb_base &set_vint_out_cb(Object &&obj) { return m_vint_out_cb.set_callback(std::forward(obj)); } void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const uint8_t* primap ); - void gp9001_draw_custom_tilemap( bitmap_ind16 &bitmap, tilemap_t* tilemap, const uint8_t* priremap, const uint8_t* pri_enable ); + void gp9001_draw_custom_tilemap( bitmap_ind16 &bitmap, int layer, const uint8_t* priremap, const uint8_t* pri_enable ); void gp9001_render_vdp( bitmap_ind16 &bitmap, const rectangle &cliprect); void gp9001_screen_eof(void); void create_tilemaps(void); @@ -37,9 +37,7 @@ public: // game-specific hack stuff void disable_sprite_buffer() { sp.use_sprite_buffer = 0; } - void set_bg_extra_offsets(int xn, int yn, int xf, int yf) { bg.set_extra_offsets(xn, yn, xf, yf); } - void set_fg_extra_offsets(int xn, int yn, int xf, int yf) { fg.set_extra_offsets(xn, yn, xf, yf); } - void set_top_extra_offsets(int xn, int yn, int xf, int yf) { top.set_extra_offsets(xn, yn, xf, yf); } + void set_tm_extra_offsets(int layer, int xn, int yn, int xf, int yf) { tm[layer].set_extra_offsets(xn, yn, xf, yf); } void set_sp_extra_offsets(int xn, int yn, int xf, int yf) { sp.set_extra_offsets(xn, yn, xf, yf); } // ROM banking control @@ -79,15 +77,11 @@ protected: address_space_config m_space_config; - TILE_GET_INFO_MEMBER(get_top0_tile_info); - TILE_GET_INFO_MEMBER(get_fg0_tile_info); - TILE_GET_INFO_MEMBER(get_bg0_tile_info); + template TILE_GET_INFO_MEMBER(get_tile_info); private: // internal handlers - DECLARE_WRITE16_MEMBER(bg_tmap_w); - DECLARE_WRITE16_MEMBER(fg_tmap_w); - DECLARE_WRITE16_MEMBER(top_tmap_w); + template DECLARE_WRITE16_MEMBER(tmap_w); static constexpr unsigned BG_VRAM_SIZE = 0x1000; /* Background RAM size */ static constexpr unsigned FG_VRAM_SIZE = 0x1000; /* Foreground RAM size */ @@ -137,9 +131,9 @@ private: std::unique_ptr vram16_buffer; // vram buffer for this layer }; - int get_tile_number(uint16_t const *vram, int index) + int get_tile_number(int layer, int index) { - uint16_t const value = vram[(index << 1) | 1]; + uint16_t const value = m_vram[layer][(index << 1) | 1]; if (gfxrom_is_banked) return (gfxrom_bank[(value >> 13) & 7] << 13) | (value & 0x1fff); else @@ -159,7 +153,7 @@ private: uint16_t gp9001_voffs; uint16_t gp9001_scroll_reg; - tilemaplayer bg, top, fg; + tilemaplayer tm[3]; spritelayer sp; // technically this is just rom banking, allowing the chip to see more graphic ROM, however it's easier to handle it @@ -169,9 +163,7 @@ private: bool gfxrom_bank_dirty; /* dirty flag of object bank (for Batrider) */ uint16_t gfxrom_bank[8]; /* Batrider object bank */ - required_shared_ptr m_vram_bg; - required_shared_ptr m_vram_fg; - required_shared_ptr m_vram_top; + required_shared_ptr_array m_vram; required_shared_ptr m_spriteram; devcb_write_line m_vint_out_cb; diff --git a/src/mame/video/toaplan2.cpp b/src/mame/video/toaplan2.cpp index 86bddaec96f..8b7e7a608a1 100644 --- a/src/mame/video/toaplan2.cpp +++ b/src/mame/video/toaplan2.cpp @@ -26,9 +26,6 @@ #include "emu.h" #include "includes/toaplan2.h" -#define RAIZING_TX_GFXRAM_SIZE 0x8000 /* GFX data decode RAM size */ - - /*************************************************************************** @@ -76,16 +73,16 @@ VIDEO_START_MEMBER(toaplan2_state,toaplan2) /* our current VDP implementation needs this bitmap to work with */ m_screen->register_screen_bitmap(m_custom_priority_bitmap); - if (m_vdp0 != nullptr) + if (m_vdp[0] != nullptr) { m_secondary_render_bitmap.reset(); - m_vdp0->custom_priority_bitmap = &m_custom_priority_bitmap; + m_vdp[0]->custom_priority_bitmap = &m_custom_priority_bitmap; } - if (m_vdp1 != nullptr) + if (m_vdp[1] != nullptr) { m_screen->register_screen_bitmap(m_secondary_render_bitmap); - m_vdp1->custom_priority_bitmap = &m_custom_priority_bitmap; + m_vdp[1]->custom_priority_bitmap = &m_custom_priority_bitmap; } } @@ -108,12 +105,12 @@ VIDEO_START_MEMBER(toaplan2_state,fixeightbl) create_tx_tilemap(); /* This bootleg has additional layer offsets on the VDP */ - m_vdp0->set_bg_extra_offsets( -0x1d6 - 26, -0x1ef - 15, 0, 0 ); - m_vdp0->set_fg_extra_offsets( -0x1d8 - 22, -0x1ef - 15, 0, 0 ); - m_vdp0->set_top_extra_offsets( -0x1da - 18, -0x1ef - 15, 0, 0 ); - m_vdp0->set_sp_extra_offsets(8/*-0x1cc - 64*/, 8/*-0x1ef - 128*/, 0, 0); + m_vdp[0]->set_tm_extra_offsets(0, -0x1d6 - 26, -0x1ef - 15, 0, 0 ); + m_vdp[0]->set_tm_extra_offsets(1, -0x1d8 - 22, -0x1ef - 15, 0, 0 ); + m_vdp[0]->set_tm_extra_offsets(2, -0x1da - 18, -0x1ef - 15, 0, 0 ); + m_vdp[0]->set_sp_extra_offsets(8/*-0x1cc - 64*/, 8/*-0x1ef - 128*/, 0, 0); - m_vdp0->init_scroll_regs(); + m_vdp[0]->init_scroll_regs(); } VIDEO_START_MEMBER(toaplan2_state,bgaregga) @@ -136,17 +133,16 @@ VIDEO_START_MEMBER(toaplan2_state,batrider) { VIDEO_START_CALL_MEMBER( toaplan2 ); - m_vdp0->disable_sprite_buffer(); // disable buffering on this game + m_vdp[0]->disable_sprite_buffer(); // disable buffering on this game /* Create the Text tilemap for this game */ - m_tx_gfxram16.allocate(RAIZING_TX_GFXRAM_SIZE/2); m_gfxdecode->gfx(0)->set_source(reinterpret_cast(m_tx_gfxram16.target())); machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this)); create_tx_tilemap(0x1d4, 0x16b); /* Has special banking */ - m_vdp0->set_gfxrom_banked(); + m_vdp[0]->set_gfxrom_banked(); } WRITE16_MEMBER(toaplan2_state::toaplan2_tx_videoram_w) @@ -181,50 +177,44 @@ WRITE16_MEMBER(toaplan2_state::batrider_textdata_dma_w) { /*** Dynamic Text GFX decoding for Batrider ***/ /*** Only done once during start-up ***/ - - uint16_t *dest = m_tx_gfxram16; - - memcpy(dest, m_tx_videoram, m_tx_videoram.bytes()); - dest += (m_tx_videoram.bytes()/2); - memcpy(dest, m_paletteram, m_paletteram.bytes()); - dest += (m_paletteram.bytes()/2); - memcpy(dest, m_tx_lineselect, m_tx_lineselect.bytes()); - dest += (m_tx_lineselect.bytes()/2); - memcpy(dest, m_tx_linescroll, m_tx_linescroll.bytes()); - dest += (m_tx_linescroll.bytes()/2); - memcpy(dest, m_mainram16, m_mainram16.bytes()); - - m_gfxdecode->gfx(0)->mark_all_dirty(); + m_dma_space->set_bank(1); + for (int i = 0; i < (0x8000 >> 1); i++) + { + m_dma_space->write16(space, i, m_mainram16[i]); + } } -WRITE16_MEMBER(toaplan2_state::batrider_unknown_dma_w) +WRITE16_MEMBER(toaplan2_state::batrider_pal_text_dma_w) { // FIXME: In batrider and bbakraid, the text layer and palette RAM // are probably DMA'd from main RAM by writing here at every vblank, // rather than being directly accessible to the 68K like the other games + m_dma_space->set_bank(0); + for (int i = 0; i < (0x3400 >> 1); i++) + { + m_dma_space->write16(space, i, m_mainram16[i]); + } } -WRITE16_MEMBER(toaplan2_state::batrider_objectbank_w) +WRITE8_MEMBER(toaplan2_state::batrider_objectbank_w) { - if (ACCESSING_BITS_0_7) - m_vdp0->set_gfxrom_bank(offset, data & 0x0f); + m_vdp[0]->set_gfxrom_bank(offset, data & 0x0f); } // Dogyuun doesn't appear to require fancy mixing? uint32_t toaplan2_state::screen_update_dogyuun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - if (m_vdp1) + bitmap.fill(0, cliprect); + if (m_vdp[1]) { - bitmap.fill(0, cliprect); m_custom_priority_bitmap.fill(0, cliprect); - m_vdp1->gp9001_render_vdp(bitmap, cliprect); + m_vdp[1]->gp9001_render_vdp(bitmap, cliprect); } - if (m_vdp0) + if (m_vdp[0]) { - // bitmap.fill(0, cliprect); m_custom_priority_bitmap.fill(0, cliprect); - m_vdp0->gp9001_render_vdp(bitmap, cliprect); + m_vdp[0]->gp9001_render_vdp(bitmap, cliprect); } @@ -238,17 +228,17 @@ uint32_t toaplan2_state::screen_update_batsugun(screen_device &screen, bitmap_in // bitmap.fill(0, cliprect); // gp9001_custom_priority_bitmap->fill(0, cliprect); - if (m_vdp0) + if (m_vdp[0]) { bitmap.fill(0, cliprect); m_custom_priority_bitmap.fill(0, cliprect); - m_vdp0->gp9001_render_vdp(bitmap, cliprect); + m_vdp[0]->gp9001_render_vdp(bitmap, cliprect); } - if (m_vdp1) + if (m_vdp[1]) { m_secondary_render_bitmap.fill(0, cliprect); m_custom_priority_bitmap.fill(0, cliprect); - m_vdp1->gp9001_render_vdp(m_secondary_render_bitmap, cliprect); + m_vdp[1]->gp9001_render_vdp(m_secondary_render_bitmap, cliprect); } @@ -263,20 +253,17 @@ uint32_t toaplan2_state::screen_update_batsugun(screen_device &screen, bitmap_in // on that do. // - if (m_vdp0 && m_vdp1) + if (m_vdp[0] && m_vdp[1]) { - int width = screen.width(); - int height = screen.height(); - int y,x; uint16_t* src_vdp0; // output buffer of vdp0 uint16_t* src_vdp1; // output buffer of vdp1 - for (y=0;ygp9001_render_vdp(bitmap, cliprect); + m_vdp[0]->gp9001_render_vdp(bitmap, cliprect); return 0; } @@ -379,7 +366,7 @@ WRITE_LINE_MEMBER(toaplan2_state::screen_vblank_toaplan2) // rising edge if (state) { - if (m_vdp0) m_vdp0->gp9001_screen_eof(); - if (m_vdp1) m_vdp1->gp9001_screen_eof(); + if (m_vdp[0]) m_vdp[0]->gp9001_screen_eof(); + if (m_vdp[1]) m_vdp[1]->gp9001_screen_eof(); } } -- cgit v1.2.3