summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cam900 <dbtlrchl@naver.com>2018-05-17 08:32:59 +0900
committer Vas Crabb <cuavas@users.noreply.github.com>2018-05-17 09:32:59 +1000
commit70c9f899957d0472aa2756ea30f576a79ad78468 (patch)
treed25fd7fa50e082ef8849c9ae0df4a3bb57853cd5
parent692752246ed757eca1f5bded1db8b89f95a8e3ec (diff)
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
-rw-r--r--src/mame/drivers/toaplan2.cpp556
-rw-r--r--src/mame/includes/toaplan2.h78
-rw-r--r--src/mame/video/gp9001.cpp217
-rw-r--r--src/mame/video/gp9001.h24
-rw-r--r--src/mame/video/toaplan2.cpp91
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<int Chip>
+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<uint8_t> m_shared_ram; // 8 bit RAM shared between 68K and sound CPU
optional_shared_ptr<uint16_t> m_paletteram;
@@ -55,11 +59,9 @@ public:
required_device<m68000_base_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
- required_device<gp9001vdp_device> m_vdp0;
- optional_device<gp9001vdp_device> m_vdp1;
+ optional_device_array<gp9001vdp_device, 2> m_vdp;
optional_device<nmk112_device> m_nmk112;
- optional_device<okim6295_device> m_oki;
- optional_device<okim6295_device> m_oki1;
+ optional_device_array<okim6295_device, 2> m_oki;
optional_device<eeprom_serial_93cxx_device> m_eeprom;
optional_device<upd4992_device> m_rtc;
optional_device<gfxdecode_device> m_gfxdecode;
@@ -69,6 +71,12 @@ public:
optional_device<generic_latch_8_device> m_soundlatch2;
optional_device<ticket_dispenser_device> m_hopper;
+ optional_device<address_map_bank_device> m_dma_space;
+
+ optional_region_ptr<uint8_t> 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<int Chip> 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<int Layer>
+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<int Layer>
+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<class Object> devcb_base &set_vint_out_cb(Object &&obj) { return m_vint_out_cb.set_callback(std::forward<Object>(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<int Layer> 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<int Layer> 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<uint16_t[]> 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<uint16_t> m_vram_bg;
- required_shared_ptr<uint16_t> m_vram_fg;
- required_shared_ptr<uint16_t> m_vram_top;
+ required_shared_ptr_array<uint16_t, 3> m_vram;
required_shared_ptr<uint16_t> 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<uint8_t *>(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;y<height;y++)
+ for (int y=cliprect.min_y;y<=cliprect.max_y;y++)
{
src_vdp0 = &bitmap.pix16(y);
src_vdp1 = &m_secondary_render_bitmap.pix16(y);
- for (x=0;x<width;x++)
+ for (int x=cliprect.min_x;x<=cliprect.max_x;x++)
{
uint16_t GPU0_LUTaddr = src_vdp0[x];
uint16_t GPU1_LUTaddr = src_vdp1[x];
@@ -336,7 +323,7 @@ uint32_t toaplan2_state::screen_update_toaplan2(screen_device &screen, bitmap_in
{
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);
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();
}
}