From bfcceb26ee497f96ec0aba59fc8ca8be042c1f9a Mon Sep 17 00:00:00 2001 From: cam900 Date: Sun, 4 Nov 2018 22:42:51 +0900 Subject: gp9001.cpp : Cleanup/Fix naming, Reduce unnecessary handler (#3921) * gp9001.cpp : Cleanup/Fix naming, Reduce unnecessary handler toaplan2.cpp : Fix batrider gfx, Cleanup naming * toaplan2.cpp : Remove unused, register_postload, Cleanup naming --- src/mame/drivers/toaplan2.cpp | 126 +++++++++--------- src/mame/includes/toaplan2.h | 23 ++-- src/mame/video/gp9001.cpp | 290 ++++++++++++++++++------------------------ src/mame/video/gp9001.h | 56 ++++---- src/mame/video/toaplan2.cpp | 54 +++++--- 5 files changed, 260 insertions(+), 289 deletions(-) diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp index 30d24e87f1e..0a8109c2a1c 100644 --- a/src/mame/drivers/toaplan2.cpp +++ b/src/mame/drivers/toaplan2.cpp @@ -846,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_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x140000, 0x14000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x180000, 0x180001).portr("DSWA"); map(0x180010, 0x180011).portr("DSWB"); map(0x180020, 0x180021).portr("SYS"); @@ -866,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(FUNC(toaplan2_state::ghox_p1_h_analog_r)); - map(0x140000, 0x14000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x140000, 0x14000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x180000, 0x180fff).rw(FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); map(0x181000, 0x181001).w(FUNC(toaplan2_state::toaplan2_coin_word_w)); map(0x18100c, 0x18100d).portr("JMPR"); @@ -882,9 +882,9 @@ void toaplan2_state::dogyuun_68k_mem(address_map &map) map(0x200018, 0x200019).portr("SYS"); map(0x20001c, 0x20001d).w(FUNC(toaplan2_state::toaplan2_v25_coin_word_w)); // Coin count/lock + v25 reset line map(0x210000, 0x21ffff).rw(FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x500000, 0x50000d).rw(m_vdp[1], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x500000, 0x50000d).rw(m_vdp[1], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x700000, 0x700001).r(FUNC(toaplan2_state::video_count_r)); // test bit 8 } @@ -898,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(FUNC(toaplan2_state::toaplan2_coin_word_w)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x700000, 0x700001).r(FUNC(toaplan2_state::video_count_r)); // test bit 8 } @@ -921,7 +921,7 @@ void toaplan2_state::kbash2_68k_mem(address_map &map) map(0x200025, 0x200025).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x200029, 0x200029).w(FUNC(toaplan2_state::oki_bankswitch_w<0>)); map(0x20002c, 0x20002d).r(FUNC(toaplan2_state::video_count_r)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); } @@ -930,13 +930,13 @@ void toaplan2_state::truxton2_68k_mem(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x100000, 0x10ffff).ram(); - map(0x200000, 0x20000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x200000, 0x20000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x300000, 0x300fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x400000, 0x401fff).ram().w(FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); + map(0x400000, 0x401fff).ram().w(FUNC(toaplan2_state::tx_videoram_w)).share("tx_videoram"); map(0x402000, 0x402fff).ram().share("tx_lineselect"); - map(0x403000, 0x4031ff).ram().w(FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); + map(0x403000, 0x4031ff).ram().w(FUNC(toaplan2_state::tx_linescroll_w)).share("tx_linescroll"); map(0x403200, 0x403fff).ram(); - map(0x500000, 0x50ffff).ram().w(FUNC(toaplan2_state::toaplan2_tx_gfxram16_w)).share("tx_gfxram16"); + map(0x500000, 0x50ffff).ram().w(FUNC(toaplan2_state::tx_gfxram_w)).share("tx_gfxram"); map(0x600000, 0x600001).r(FUNC(toaplan2_state::video_count_r)); map(0x700000, 0x700001).portr("DSWA"); map(0x700002, 0x700003).portr("DSWB"); @@ -955,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_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x140000, 0x14000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x190000, 0x190fff).rw(FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); map(0x19c01c, 0x19c01d).w(FUNC(toaplan2_state::toaplan2_coin_word_w)); map(0x19c020, 0x19c021).portr("DSWA"); @@ -1000,12 +1000,12 @@ void toaplan2_state::fixeight_68k_mem(address_map &map) map(0x200010, 0x200011).portr("SYS"); map(0x20001c, 0x20001d).w(FUNC(toaplan2_state::toaplan2_coin_word_w)); map(0x280000, 0x28ffff).rw(FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x500000, 0x501fff).ram().w(FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); + map(0x500000, 0x501fff).ram().w(FUNC(toaplan2_state::tx_videoram_w)).share("tx_videoram"); map(0x502000, 0x5021ff).ram().share("tx_lineselect"); - map(0x503000, 0x5031ff).ram().w(FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); - map(0x600000, 0x60ffff).ram().w(FUNC(toaplan2_state::toaplan2_tx_gfxram16_w)).share("tx_gfxram16"); + map(0x503000, 0x5031ff).ram().w(FUNC(toaplan2_state::tx_linescroll_w)).share("tx_linescroll"); + map(0x600000, 0x60ffff).ram().w(FUNC(toaplan2_state::tx_gfxram_w)).share("tx_gfxram"); map(0x700000, 0x700001).w(FUNC(toaplan2_state::fixeight_subcpu_ctrl_w)); map(0x800000, 0x800001).r(FUNC(toaplan2_state::video_count_r)); } @@ -1023,9 +1023,9 @@ void toaplan2_state::fixeightbl_68k_mem(address_map &map) map(0x200015, 0x200015).w(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_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x500000, 0x501fff).ram().w(FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); + map(0x500000, 0x501fff).ram().w(FUNC(toaplan2_state::tx_videoram_w)).share("tx_videoram"); map(0x700000, 0x700001).r(FUNC(toaplan2_state::video_count_r)); map(0x800000, 0x87ffff).rom().region("maincpu", 0x80000); } @@ -1041,7 +1041,7 @@ void toaplan2_state::vfive_68k_mem(address_map &map) map(0x200018, 0x200019).portr("SYS"); map(0x20001c, 0x20001d).w(FUNC(toaplan2_state::toaplan2_v25_coin_word_w)); // Coin count/lock + v25 reset line map(0x210000, 0x21ffff).rw(FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x700000, 0x700001).r(FUNC(toaplan2_state::video_count_r)); } @@ -1056,9 +1056,9 @@ void toaplan2_state::batsugun_68k_mem(address_map &map) map(0x200018, 0x200019).portr("SYS"); map(0x20001c, 0x20001d).w(FUNC(toaplan2_state::toaplan2_v25_coin_word_w)); // Coin count/lock + v25 reset line map(0x210000, 0x21ffff).rw(FUNC(toaplan2_state::shared_ram_r), FUNC(toaplan2_state::shared_ram_w)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x500000, 0x50000d).rw(m_vdp[1], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x500000, 0x50000d).rw(m_vdp[1], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x700000, 0x700001).r(FUNC(toaplan2_state::video_count_r)); } @@ -1069,7 +1069,7 @@ 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_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x600001, 0x600001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); @@ -1092,7 +1092,7 @@ 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_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x600001, 0x600001).rw(m_oki[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); @@ -1127,7 +1127,7 @@ 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_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x200000, 0x20000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); 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[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); @@ -1152,7 +1152,7 @@ void toaplan2_state::snowbro2_68k_mem(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x100000, 0x10ffff).ram(); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); 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[0], FUNC(okim6295_device::read), FUNC(okim6295_device::write)); @@ -1182,12 +1182,12 @@ void toaplan2_state::mahoudai_68k_mem(address_map &map) map(0x21c030, 0x21c031).portr("DSWB"); map(0x21c034, 0x21c035).portr("JMPR"); map(0x21c03c, 0x21c03d).r(FUNC(toaplan2_state::video_count_r)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); 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(FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); + map(0x500000, 0x501fff).ram().w(FUNC(toaplan2_state::tx_videoram_w)).share("tx_videoram"); map(0x502000, 0x502fff).ram().share("tx_lineselect"); - map(0x503000, 0x5031ff).ram().w(FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); + map(0x503000, 0x5031ff).ram().w(FUNC(toaplan2_state::tx_linescroll_w)).share("tx_linescroll"); map(0x503200, 0x503fff).ram(); } @@ -1206,12 +1206,12 @@ void toaplan2_state::shippumd_68k_mem(address_map &map) map(0x21c030, 0x21c031).portr("DSWB"); map(0x21c034, 0x21c035).portr("JMPR"); map(0x21c03c, 0x21c03d).r(FUNC(toaplan2_state::video_count_r)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); 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(FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); + map(0x500000, 0x501fff).ram().w(FUNC(toaplan2_state::tx_videoram_w)).share("tx_videoram"); map(0x502000, 0x502fff).ram().share("tx_lineselect"); - map(0x503000, 0x5031ff).ram().w(FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); + map(0x503000, 0x5031ff).ram().w(FUNC(toaplan2_state::tx_linescroll_w)).share("tx_linescroll"); map(0x503200, 0x503fff).ram(); } @@ -1229,11 +1229,11 @@ void toaplan2_state::bgaregga_68k_mem(address_map &map) map(0x21c030, 0x21c031).portr("DSWB"); map(0x21c034, 0x21c035).portr("JMPR"); map(0x21c03c, 0x21c03d).r(FUNC(toaplan2_state::video_count_r)); - map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_r), FUNC(gp9001vdp_device::gp9001_vdp_w)); + map(0x300000, 0x30000d).rw(m_vdp[0], FUNC(gp9001vdp_device::read), FUNC(gp9001vdp_device::write)); map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x500000, 0x501fff).ram().w(FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); + map(0x500000, 0x501fff).ram().w(FUNC(toaplan2_state::tx_videoram_w)).share("tx_videoram"); map(0x502000, 0x502fff).ram().share("tx_lineselect"); - map(0x503000, 0x5031ff).ram().w(FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); + map(0x503000, 0x5031ff).ram().w(FUNC(toaplan2_state::tx_linescroll_w)).share("tx_linescroll"); map(0x503200, 0x503fff).ram(); map(0x600001, 0x600001).w(m_soundlatch, FUNC(generic_latch_8_device::write)); } @@ -1241,12 +1241,12 @@ void toaplan2_state::bgaregga_68k_mem(address_map &map) void toaplan2_state::batrider_dma_mem(address_map &map) { - map(0x0000, 0x1fff).ram().w(FUNC(toaplan2_state::toaplan2_tx_videoram_w)).share("tx_videoram"); + map(0x0000, 0x1fff).ram().w(FUNC(toaplan2_state::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(FUNC(toaplan2_state::toaplan2_tx_linescroll_w)).share("tx_linescroll"); + map(0x3200, 0x33ff).ram().w(FUNC(toaplan2_state::tx_linescroll_w)).share("tx_linescroll"); map(0x3400, 0x7fff).ram(); - map(0x8000, 0xffff).ram().w(FUNC(toaplan2_state::toaplan2_tx_gfxram16_w)).share("tx_gfxram16"); + map(0x8000, 0xffff).ram().w(FUNC(toaplan2_state::batrider_tx_gfxram_w)).share("tx_gfxram"); } @@ -1254,10 +1254,12 @@ 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, 0x207fff).ram().share("mainram16"); + map(0x200000, 0x207fff).ram().share("mainram"); map(0x208000, 0x20ffff).ram(); map(0x300000, 0x37ffff).r(FUNC(toaplan2_state::batrider_z80rom_r)); - map(0x400000, 0x40000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_alt_r), FUNC(gp9001vdp_device::gp9001_vdp_alt_w)); + map(0x400000, 0x40000d).lrw16("gp9001_invert_rw", + [this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); }, + [this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); }); map(0x500000, 0x500001).portr("IN"); map(0x500002, 0x500003).portr("SYS-DSW"); map(0x500004, 0x500005).portr("DSW"); @@ -1281,10 +1283,12 @@ 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, 0x207fff).ram().share("mainram16"); + map(0x200000, 0x207fff).ram().share("mainram"); map(0x208000, 0x20ffff).ram(); map(0x300000, 0x33ffff).r(FUNC(toaplan2_state::batrider_z80rom_r)); - map(0x400000, 0x40000d).rw(m_vdp[0], FUNC(gp9001vdp_device::gp9001_vdp_alt_r), FUNC(gp9001vdp_device::gp9001_vdp_alt_w)); + map(0x400000, 0x40000d).lrw16("gp9001_invert_rw", + [this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); }, + [this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); }); map(0x500000, 0x500001).portr("IN"); map(0x500002, 0x500003).portr("SYS-DSW"); map(0x500004, 0x500005).portr("DSW"); @@ -3219,7 +3223,7 @@ MACHINE_CONFIG_START(toaplan2_state::tekipaki) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3262,7 +3266,7 @@ MACHINE_CONFIG_START(toaplan2_state::ghox) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3349,7 +3353,7 @@ MACHINE_CONFIG_START(toaplan2_state::dogyuun) m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(27_MHz_XTAL/4, 432, 0, 320, 262, 0, 240); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_dogyuun)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3397,7 +3401,7 @@ MACHINE_CONFIG_START(toaplan2_state::kbash) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3433,7 +3437,7 @@ MACHINE_CONFIG_START(toaplan2_state::kbash2) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3467,7 +3471,7 @@ MACHINE_CONFIG_START(toaplan2_state::truxton2) m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(27_MHz_XTAL/4, 432, 0, 320, 262, 0, 240); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_truxton2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_truxton2) @@ -3522,7 +3526,7 @@ MACHINE_CONFIG_START(toaplan2_state::pipibibs) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3562,7 +3566,7 @@ MACHINE_CONFIG_START(toaplan2_state::pipibibsbl) m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(28.322_MHz_XTAL / 4, 450, 0, 320, 262, 0, 240); // guess, but this is within NTSC parameters m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3640,7 +3644,7 @@ MACHINE_CONFIG_START(toaplan2_state::fixeight) m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(27_MHz_XTAL/4, 432, 0, 320, 262, 0, 240); // verified on PCB m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_truxton2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_truxton2) @@ -3678,7 +3682,7 @@ MACHINE_CONFIG_START(toaplan2_state::fixeightbl) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_bootleg)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_textrom) @@ -3719,7 +3723,7 @@ MACHINE_CONFIG_START(toaplan2_state::vfive) m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(27_MHz_XTAL/4, 432, 0, 320, 262, 0, 240); // verified on PCB m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3759,7 +3763,7 @@ MACHINE_CONFIG_START(toaplan2_state::batsugun) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_batsugun)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3800,7 +3804,7 @@ MACHINE_CONFIG_START(toaplan2_state::pwrkick) m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(27_MHz_XTAL/4, 432, 0, 320, 262, 0, 240); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3833,7 +3837,7 @@ MACHINE_CONFIG_START(toaplan2_state::othldrby) m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(27_MHz_XTAL/4, 432, 0, 320, 262, 0, 240); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3863,7 +3867,7 @@ MACHINE_CONFIG_START(toaplan2_state::enmadaio) m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); m_screen->set_raw(27_MHz_XTAL/4, 432, 0, 320, 262, 0, 240); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3899,7 +3903,7 @@ MACHINE_CONFIG_START(toaplan2_state::snowbro2) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_toaplan2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) @@ -3942,7 +3946,7 @@ MACHINE_CONFIG_START(toaplan2_state::mahoudai) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_truxton2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_textrom) @@ -3986,7 +3990,7 @@ MACHINE_CONFIG_START(toaplan2_state::shippumd) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_truxton2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_textrom) @@ -4029,7 +4033,7 @@ MACHINE_CONFIG_START(toaplan2_state::bgaregga) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_truxton2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_textrom) @@ -4095,7 +4099,7 @@ MACHINE_CONFIG_START(toaplan2_state::batrider) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_truxton2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_batrider) @@ -4163,7 +4167,7 @@ MACHINE_CONFIG_START(toaplan2_state::bbakraid) //m_screen->set_size(432, 262); //m_screen->set_visarea(0, 319, 0, 239); m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_truxton2)); - m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank_toaplan2)); + m_screen->screen_vblank().set(FUNC(toaplan2_state::screen_vblank)); m_screen->set_palette(m_palette); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_batrider) diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h index a687e9da518..cfb517020ee 100644 --- a/src/mame/includes/toaplan2.h +++ b/src/mame/includes/toaplan2.h @@ -29,12 +29,11 @@ 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_tx_gfxram(*this, "tx_gfxram") + , m_mainram(*this, "mainram") , m_maincpu(*this, "maincpu") , m_audiocpu(*this, "audiocpu") , m_vdp(*this, "gp9001_%u", 0U) @@ -89,14 +88,16 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(c2map_r); +protected: + virtual void device_post_load() override; + private: optional_shared_ptr m_shared_ram; // 8 bit RAM shared between 68K and sound CPU - optional_shared_ptr m_paletteram; optional_shared_ptr m_tx_videoram; optional_shared_ptr m_tx_lineselect; optional_shared_ptr m_tx_linescroll; - optional_shared_ptr m_tx_gfxram16; - optional_shared_ptr m_mainram16; + optional_shared_ptr m_tx_gfxram; + optional_shared_ptr m_mainram; required_device m_maincpu; optional_device m_audiocpu; @@ -153,9 +154,10 @@ private: DECLARE_WRITE8_MEMBER(batrider_clear_nmi_w); DECLARE_READ16_MEMBER(bbakraid_eeprom_r); DECLARE_WRITE16_MEMBER(bbakraid_eeprom_w); - DECLARE_WRITE16_MEMBER(toaplan2_tx_videoram_w); - DECLARE_WRITE16_MEMBER(toaplan2_tx_linescroll_w); - DECLARE_WRITE16_MEMBER(toaplan2_tx_gfxram16_w); + DECLARE_WRITE16_MEMBER(tx_videoram_w); + DECLARE_WRITE16_MEMBER(tx_linescroll_w); + DECLARE_WRITE16_MEMBER(tx_gfxram_w); + DECLARE_WRITE16_MEMBER(batrider_tx_gfxram_w); DECLARE_WRITE16_MEMBER(batrider_textdata_dma_w); DECLARE_WRITE16_MEMBER(batrider_pal_text_dma_w); DECLARE_WRITE8_MEMBER(batrider_objectbank_w); @@ -182,11 +184,10 @@ private: uint32_t screen_update_batsugun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_WRITE_LINE_MEMBER(screen_vblank_toaplan2); + DECLARE_WRITE_LINE_MEMBER(screen_vblank); IRQ_CALLBACK_MEMBER(fixeightbl_irq_ack); IRQ_CALLBACK_MEMBER(pipibibsbl_irq_ack); INTERRUPT_GEN_MEMBER(bbakraid_snd_interrupt); - void truxton2_postload(); void create_tx_tilemap(int dx = 0, int dx_flipped = 0); DECLARE_WRITE8_MEMBER(pwrkick_coin_w); diff --git a/src/mame/video/gp9001.cpp b/src/mame/video/gp9001.cpp index 024e1b553e2..4d6511554f3 100644 --- a/src/mame/video/gp9001.cpp +++ b/src/mame/video/gp9001.cpp @@ -161,7 +161,7 @@ template WRITE16_MEMBER(gp9001vdp_device::tmap_w) { COMBINE_DATA(&m_vram[Layer][offset]); - tm[Layer].tmap->mark_tile_dirty(offset/2); + m_tm[Layer].tmap->mark_tile_dirty(offset>>1); } @@ -243,19 +243,19 @@ TILE_GET_INFO_MEMBER(gp9001vdp_device::get_tile_info) void gp9001vdp_device::create_tilemaps() { - 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); + m_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); + m_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); + m_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); - tm[2].tmap->set_transparent_pen(0); - tm[1].tmap->set_transparent_pen(0); - tm[0].tmap->set_transparent_pen(0); + m_tm[2].tmap->set_transparent_pen(0); + m_tm[1].tmap->set_transparent_pen(0); + m_tm[0].tmap->set_transparent_pen(0); } void gp9001vdp_device::device_start() { - sp.vram16_buffer = make_unique_clear(SPRITERAM_SIZE/2); + m_sp.vram16_buffer = make_unique_clear(SPRITERAM_SIZE/2); create_tilemaps(); @@ -263,61 +263,61 @@ void gp9001vdp_device::device_start() m_raise_irq_timer = timer_alloc(TIMER_RAISE_IRQ); - save_pointer(NAME(sp.vram16_buffer), SPRITERAM_SIZE/2); + save_pointer(NAME(m_sp.vram16_buffer), SPRITERAM_SIZE/2); - save_item(NAME(gp9001_scroll_reg)); - save_item(NAME(gp9001_voffs)); + save_item(NAME(m_scroll_reg)); + save_item(NAME(m_voffs)); 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(m_tm[i].scrollx), i); + save_item(NAME(m_tm[i].scrolly), i); + save_item(NAME(m_tm[i].flip), i); } - save_item(NAME(sp.scrollx)); - save_item(NAME(sp.scrolly)); - save_item(NAME(sp.flip)); + save_item(NAME(m_sp.scrollx)); + save_item(NAME(m_sp.scrolly)); + save_item(NAME(m_sp.flip)); - gfxrom_is_banked = false; - gfxrom_bank_dirty = false; - save_item(NAME(gfxrom_bank)); + m_gfxrom_is_banked = false; + m_gfxrom_bank_dirty = false; + save_item(NAME(m_gfxrom_bank)); // default layer offsets used by all original games - tm[0].extra_xoffset.normal = -0x1d6; - tm[0].extra_xoffset.flipped = -0x229; - tm[0].extra_yoffset.normal = -0x1ef; - tm[0].extra_yoffset.flipped = -0x210; + m_tm[0].extra_xoffset.normal = -0x1d6; + m_tm[0].extra_xoffset.flipped = -0x229; + m_tm[0].extra_yoffset.normal = -0x1ef; + m_tm[0].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; + m_tm[1].extra_xoffset.normal = -0x1d8; + m_tm[1].extra_xoffset.flipped = -0x227; + m_tm[1].extra_yoffset.normal = -0x1ef; + m_tm[1].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; + m_tm[2].extra_xoffset.normal = -0x1da; + m_tm[2].extra_xoffset.flipped= -0x225; + m_tm[2].extra_yoffset.normal = -0x1ef; + m_tm[2].extra_yoffset.flipped= -0x210; - sp.extra_xoffset.normal = -0x1cc; - sp.extra_xoffset.flipped = -0x17b; - sp.extra_yoffset.normal = -0x1ef; - sp.extra_yoffset.flipped = -0x108; + m_sp.extra_xoffset.normal = -0x1cc; + m_sp.extra_xoffset.flipped = -0x17b; + m_sp.extra_yoffset.normal = -0x1ef; + m_sp.extra_yoffset.flipped = -0x108; - sp.use_sprite_buffer = 1; + m_sp.use_sprite_buffer = 1; } void gp9001vdp_device::device_reset() { - gp9001_voffs = 0; - gp9001_scroll_reg = 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; + m_voffs = 0; + m_scroll_reg = 0; + m_tm[0].scrollx = m_tm[0].scrolly = 0; + m_tm[1].scrollx = m_tm[1].scrolly = 0; + m_tm[2].scrollx = m_tm[2].scrolly = 0; + m_sp.scrollx = m_sp.scrolly = 0; - tm[0].flip = 0; - tm[1].flip = 0; - tm[2].flip = 0; - sp.flip = 0; + m_tm[0].flip = 0; + m_tm[1].flip = 0; + m_tm[2].flip = 0; + m_sp.flip = 0; init_scroll_regs(); @@ -327,43 +327,43 @@ void gp9001vdp_device::device_reset() } -void gp9001vdp_device::gp9001_voffs_w(uint16_t data, uint16_t mem_mask) +void gp9001vdp_device::voffs_w(uint16_t data, uint16_t mem_mask) { - COMBINE_DATA(&gp9001_voffs); + COMBINE_DATA(&m_voffs); } -int gp9001vdp_device::gp9001_videoram16_r() +int gp9001vdp_device::videoram16_r() { - int offs = gp9001_voffs; - gp9001_voffs++; + int offs = m_voffs; + m_voffs++; return space().read_word(offs*2); } -void gp9001vdp_device::gp9001_videoram16_w(uint16_t data, uint16_t mem_mask) +void gp9001vdp_device::videoram16_w(uint16_t data, uint16_t mem_mask) { - int offs = gp9001_voffs; - gp9001_voffs++; + int offs = m_voffs; + m_voffs++; space().write_word(offs*2, data, mem_mask); } -uint16_t gp9001vdp_device::gp9001_vdpstatus_r() +uint16_t gp9001vdp_device::vdpstatus_r() { return ((screen().vpos() + 15) % 262) >= 245; } -void gp9001vdp_device::gp9001_scroll_reg_select_w(uint16_t data, uint16_t mem_mask) +void gp9001vdp_device::scroll_reg_select_w(uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_0_7) { - gp9001_scroll_reg = data & 0x8f; + m_scroll_reg = data & 0x8f; if (data & 0x70) - logerror("Hmmm, selecting unknown LSB video control register (%04x)\n",gp9001_scroll_reg); + logerror("Hmmm, selecting unknown LSB video control register (%04x)\n",m_scroll_reg); } else { - logerror("Hmmm, selecting unknown MSB video control register (%04x)\n",gp9001_scroll_reg); + logerror("Hmmm, selecting unknown MSB video control register (%04x)\n",m_scroll_reg); } } @@ -444,28 +444,28 @@ void gp9001vdp_device::spritelayer::set_scrolly_and_flip_reg(uint16_t data, uint } } -void gp9001vdp_device::gp9001_scroll_reg_data_w(uint16_t data, uint16_t mem_mask) +void gp9001vdp_device::scroll_reg_data_w(uint16_t data, uint16_t mem_mask) { /************************************************************************/ /***** layer X and Y flips can be set independently, so emulate it ******/ /************************************************************************/ // writes with 8x set turn on flip for the specified layer / axis - int flip = gp9001_scroll_reg & 0x80; + int flip = m_scroll_reg & 0x80; - switch (gp9001_scroll_reg&0x7f) + switch (m_scroll_reg&0x7f) { - 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 0x00: m_tm[0].set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x01: m_tm[0].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 0x02: m_tm[1].set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x03: m_tm[1].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 0x04: m_tm[2].set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x05: m_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; + case 0x06: m_sp.set_scrollx_and_flip_reg(data, mem_mask, flip); break; + case 0x07: m_sp.set_scrolly_and_flip_reg(data, mem_mask, flip); break; case 0x0e: /******* Initialise video controller register ? *******/ @@ -473,105 +473,64 @@ void gp9001vdp_device::gp9001_scroll_reg_data_w(uint16_t data, uint16_t mem_mask case 0x0f: if (!m_vint_out_cb.isnull()) m_vint_out_cb(0); break; - default: logerror("Hmmm, writing %08x to unknown video control register (%08x) !!!\n",data,gp9001_scroll_reg); + default: logerror("Hmmm, writing %08x to unknown video control register (%08x) !!!\n",data,m_scroll_reg); break; } } void gp9001vdp_device::init_scroll_regs() { - 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); + m_tm[0].set_scrollx_and_flip_reg(0, 0xffff, 0); + m_tm[0].set_scrolly_and_flip_reg(0, 0xffff, 0); + m_tm[1].set_scrollx_and_flip_reg(0, 0xffff, 0); + m_tm[1].set_scrolly_and_flip_reg(0, 0xffff, 0); + m_tm[2].set_scrollx_and_flip_reg(0, 0xffff, 0); + m_tm[2].set_scrolly_and_flip_reg(0, 0xffff, 0); + m_sp.set_scrollx_and_flip_reg(0, 0xffff, 0); + m_sp.set_scrolly_and_flip_reg(0, 0xffff, 0); } -READ16_MEMBER(gp9001vdp_device::gp9001_vdp_r) +uint16_t gp9001vdp_device::read(offs_t offset, u16 mem_mask) { switch (offset & (0xc/2)) { case 0x04/2: - return gp9001_videoram16_r(); + return videoram16_r(); case 0x0c/2: - return gp9001_vdpstatus_r(); + return vdpstatus_r(); default: - logerror("gp9001_vdp_r: read from unhandled offset %04x\n",offset*2); + logerror("read: read from unhandled offset %04x\n",offset*2); } return 0xffff; } -WRITE16_MEMBER(gp9001vdp_device::gp9001_vdp_w) +void gp9001vdp_device::write(offs_t offset, u16 data, u16 mem_mask) { switch (offset & (0xc/2)) { case 0x00/2: - gp9001_voffs_w(data, mem_mask); + voffs_w(data, mem_mask); break; case 0x04/2: - gp9001_videoram16_w(data, mem_mask); + videoram16_w(data, mem_mask); break; case 0x08/2: - gp9001_scroll_reg_select_w(data, mem_mask); + scroll_reg_select_w(data, mem_mask); break; case 0x0c/2: - gp9001_scroll_reg_data_w(data, mem_mask); + scroll_reg_data_w(data, mem_mask); break; } } -/* batrider and bbakraid invert the register select lines */ -READ16_MEMBER(gp9001vdp_device::gp9001_vdp_alt_r) -{ - switch (offset & (0xc/2)) - { - case 0x0/2: - return gp9001_vdpstatus_r(); - - case 0x8/2: - return gp9001_videoram16_r(); - - default: - logerror("gp9001_vdp_alt_r: read from unhandled offset %04x\n",offset*2); - } - - return 0xffff; -} - -WRITE16_MEMBER(gp9001vdp_device::gp9001_vdp_alt_w) -{ - switch (offset & (0xc/2)) - { - case 0x0/2: - gp9001_scroll_reg_data_w(data, mem_mask); - break; - - case 0x4/2: - gp9001_scroll_reg_select_w(data, mem_mask); - break; - - case 0x8/2: - gp9001_videoram16_w(data, mem_mask); - break; - - case 0xc/2: - gp9001_voffs_w(data, mem_mask); - break; - } -} - - /***************************************************************************/ /**************** PIPIBIBI bootleg interface into this video driver ********/ @@ -593,33 +552,33 @@ WRITE16_MEMBER(gp9001vdp_device::pipibibi_bootleg_scroll_w) default: logerror("PIPIBIBI writing %04x to unknown scroll register %04x",data, offset); } - gp9001_scroll_reg = offset; - gp9001_scroll_reg_data_w(data, mem_mask); + m_scroll_reg = offset; + scroll_reg_data_w(data, mem_mask); } } READ16_MEMBER(gp9001vdp_device::pipibibi_bootleg_videoram16_r) { - gp9001_voffs_w(offset, 0xffff); - return gp9001_videoram16_r(); + voffs_w(offset, 0xffff); + return videoram16_r(); } WRITE16_MEMBER(gp9001vdp_device::pipibibi_bootleg_videoram16_w) { - gp9001_voffs_w(offset, 0xffff); - gp9001_videoram16_w(data, mem_mask); + voffs_w(offset, 0xffff); + videoram16_w(data, mem_mask); } READ16_MEMBER(gp9001vdp_device::pipibibi_bootleg_spriteram16_r) { - gp9001_voffs_w((0x1800 + offset), 0); - return gp9001_videoram16_r(); + voffs_w((0x1800 + offset), 0); + return videoram16_r(); } WRITE16_MEMBER(gp9001vdp_device::pipibibi_bootleg_spriteram16_w) { - gp9001_voffs_w((0x1800 + offset), mem_mask); - gp9001_videoram16_w(data, mem_mask); + voffs_w((0x1800 + offset), mem_mask); + videoram16_w(data, mem_mask); } /*************************************************************************** @@ -656,13 +615,13 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip { uint16_t *source; - if (sp.use_sprite_buffer) source = sp.vram16_buffer.get(); + if (m_sp.use_sprite_buffer) source = m_sp.vram16_buffer.get(); else source = &m_spriteram[0]; int total_elements = gfx(1)->elements(); int total_colors = gfx(1)->colors(); - int old_x = (-(sp.scrollx)) & 0x1ff; - int old_y = (-(sp.scrolly)) & 0x1ff; + int old_x = (-(m_sp.scrollx)) & 0x1ff; + int old_y = (-(m_sp.scrolly)) & 0x1ff; for (int offs = 0; offs < (MAX_SPRITES * 4); offs += 4) { @@ -675,7 +634,7 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip if ((attrib & 0x8000)) { - if (!gfxrom_is_banked) /* No Sprite select bank switching needed */ + if (!m_gfxrom_is_banked) /* No Sprite select bank switching needed */ { sprite = ((attrib & 3) << 16) | source[offs + 1]; /* 18 bit */ } @@ -683,7 +642,7 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip { sprite_num = source[offs + 1] & 0x7fff; bank = ((attrib & 3) << 1) | (source[offs + 1] >> 15); - sprite = (gfxrom_bank[bank] << 15 ) | sprite_num; + sprite = (m_gfxrom_bank[bank] << 15 ) | sprite_num; } color = (attrib >> 2) & 0x3f; @@ -694,8 +653,8 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip /***** find position to display sprite *****/ if (!(attrib & 0x4000)) { - sx_base = ((source[offs + 2] >> 7) - (sp.scrollx)) & 0x1ff; - sy_base = ((source[offs + 3] >> 7) - (sp.scrolly)) & 0x1ff; + sx_base = ((source[offs + 2] >> 7) - (m_sp.scrollx)) & 0x1ff; + sy_base = ((source[offs + 3] >> 7) - (m_sp.scrolly)) & 0x1ff; } else { sx_base = (old_x + (source[offs + 2] >> 7)) & 0x1ff; @@ -730,17 +689,17 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip } /***** Flip the sprite layer in any active X or Y flip *****/ - if (sp.flip) + if (m_sp.flip) { - if (sp.flip & SPRITE_FLIPX) + if (m_sp.flip & SPRITE_FLIPX) sx_base = 320 - sx_base; - if (sp.flip & SPRITE_FLIPY) + if (m_sp.flip & SPRITE_FLIPY) sy_base = 240 - sy_base; } /***** Cancel flip, if it, and sprite layer flip are active *****/ - flipx = (flipx ^ (sp.flip & SPRITE_FLIPX)); - flipy = (flipy ^ (sp.flip & SPRITE_FLIPY)); + flipx = (flipx ^ (m_sp.flip & SPRITE_FLIPX)); + flipy = (flipy ^ (m_sp.flip & SPRITE_FLIPY)); /***** Draw the complete sprites using the dimension info *****/ for (dim_y = 0; dim_y < sprite_sizey; dim_y += 8) @@ -798,7 +757,6 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip { int drawyy = yy+sy; - for (xx=xstart;xx!=xend;xx+=xinc) { int drawxx = xx+sx; @@ -820,15 +778,13 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip } } - count++; } } - } - sprite++ ; + sprite++; } } } @@ -840,9 +796,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, int layer, const uint8_t* priremap, const uint8_t* pri_enable ) +void gp9001vdp_device::draw_custom_tilemap( bitmap_ind16 &bitmap, int layer, const uint8_t* priremap, const uint8_t* pri_enable ) { - tilemap_t* tilemap = tm[layer].tmap; + tilemap_t* tilemap = m_tm[layer].tmap; int width = screen().width(); int height = screen().height(); int y,x; @@ -894,27 +850,27 @@ static const uint8_t gp9001_sprprimap1[16] = { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x static const uint8_t batsugun_prienable0[16]={ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; -void gp9001vdp_device::gp9001_render_vdp(bitmap_ind16 &bitmap, const rectangle &cliprect) +void gp9001vdp_device::render_vdp(bitmap_ind16 &bitmap, const rectangle &cliprect) { - if (gfxrom_is_banked && gfxrom_bank_dirty) + if (m_gfxrom_is_banked && m_gfxrom_bank_dirty) { for (int i = 0; i < 3; i++) - tm[i].tmap->mark_all_dirty(); + m_tm[i].tmap->mark_all_dirty(); - gfxrom_bank_dirty = false; + m_gfxrom_bank_dirty = false; } - 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_custom_tilemap(bitmap, 0, gp9001_primap1, batsugun_prienable0); + draw_custom_tilemap(bitmap, 1, gp9001_primap1, batsugun_prienable0); + draw_custom_tilemap(bitmap, 2, gp9001_primap1, batsugun_prienable0); draw_sprites(bitmap,cliprect, gp9001_sprprimap1); } -void gp9001vdp_device::gp9001_screen_eof(void) +void gp9001vdp_device::screen_eof(void) { /** Shift sprite RAM buffers *** Used to fix sprite lag **/ - if (sp.use_sprite_buffer) memcpy(sp.vram16_buffer.get(),m_spriteram,SPRITERAM_SIZE); + if (m_sp.use_sprite_buffer) memcpy(m_sp.vram16_buffer.get(),m_spriteram,SPRITERAM_SIZE); // the IRQ appears to fire at line 0xe6 if (!m_vint_out_cb.isnull()) diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h index 9e3a25a2a64..2a4dd25d866 100644 --- a/src/mame/video/gp9001.h +++ b/src/mame/video/gp9001.h @@ -22,9 +22,9 @@ public: auto vint_out_cb() { return m_vint_out_cb.bind(); } void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, const uint8_t* primap); - 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 draw_custom_tilemap(bitmap_ind16 &bitmap, int layer, const uint8_t* priremap, const uint8_t* pri_enable); + void render_vdp(bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof(); void create_tilemaps(); void init_scroll_regs(); @@ -33,26 +33,24 @@ public: void map(address_map &map); // game-specific hack stuff - void disable_sprite_buffer() { sp.use_sprite_buffer = 0; } - 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); } + void disable_sprite_buffer() { m_sp.use_sprite_buffer = 0; } + void set_tm_extra_offsets(int layer, int xn, int yn, int xf, int yf) { m_tm[layer].set_extra_offsets(xn, yn, xf, yf); } + void set_sp_extra_offsets(int xn, int yn, int xf, int yf) { m_sp.set_extra_offsets(xn, yn, xf, yf); } // ROM banking control - void set_gfxrom_banked() { gfxrom_is_banked = true; } + void set_gfxrom_banked() { m_gfxrom_is_banked = true; } void set_gfxrom_bank(unsigned index, uint16_t value) { - if (gfxrom_bank[index] != value) + if (m_gfxrom_bank[index] != value) { - gfxrom_bank[index] = value; - gfxrom_bank_dirty = true; + m_gfxrom_bank[index] = value; + m_gfxrom_bank_dirty = true; } } // access to VDP - DECLARE_READ16_MEMBER(gp9001_vdp_r); - DECLARE_WRITE16_MEMBER(gp9001_vdp_w); - DECLARE_READ16_MEMBER(gp9001_vdp_alt_r); - DECLARE_WRITE16_MEMBER(gp9001_vdp_alt_w); + uint16_t read(offs_t offset, u16 mem_mask); + void write(offs_t offset, u16 data, u16 mem_mask); DECLARE_READ_LINE_MEMBER(hsync_r); DECLARE_READ_LINE_MEMBER(vsync_r); @@ -131,8 +129,8 @@ private: int get_tile_number(int layer, int index) { uint16_t const value = m_vram[layer][(index << 1) | 1]; - if (gfxrom_is_banked) - return (gfxrom_bank[(value >> 13) & 7] << 13) | (value & 0x1fff); + if (m_gfxrom_is_banked) + return (m_gfxrom_bank[(value >> 13) & 7] << 13) | (value & 0x1fff); else return value; } @@ -140,25 +138,25 @@ private: static const gfx_layout tilelayout, spritelayout; DECLARE_GFXDECODE_MEMBER(gfxinfo); - void gp9001_voffs_w(uint16_t data, uint16_t mem_mask); - int gp9001_videoram16_r(void); - void gp9001_videoram16_w(uint16_t data, uint16_t mem_mask); - uint16_t gp9001_vdpstatus_r(void); - void gp9001_scroll_reg_select_w(uint16_t data, uint16_t mem_mask); - void gp9001_scroll_reg_data_w(uint16_t data, uint16_t mem_mask); + void voffs_w(uint16_t data, uint16_t mem_mask); + int videoram16_r(void); + void videoram16_w(uint16_t data, uint16_t mem_mask); + uint16_t vdpstatus_r(void); + void scroll_reg_select_w(uint16_t data, uint16_t mem_mask); + void scroll_reg_data_w(uint16_t data, uint16_t mem_mask); - uint16_t gp9001_voffs; - uint16_t gp9001_scroll_reg; + uint16_t m_voffs; + uint16_t m_scroll_reg; - tilemaplayer tm[3]; - spritelayer sp; + tilemaplayer m_tm[3]; + spritelayer m_sp; // technically this is just rom banking, allowing the chip to see more graphic ROM, however it's easier to handle it // in the chip implementation than externally for now (which would require dynamic decoding of the entire charsets every // time the bank was changed) - bool gfxrom_is_banked; - bool gfxrom_bank_dirty; /* dirty flag of object bank (for Batrider) */ - uint16_t gfxrom_bank[8]; /* Batrider object bank */ + bool m_gfxrom_is_banked; + bool m_gfxrom_bank_dirty; /* dirty flag of object bank (for Batrider) */ + uint16_t m_gfxrom_bank[8]; /* Batrider object bank */ required_shared_ptr_array m_vram; required_shared_ptr m_spriteram; diff --git a/src/mame/video/toaplan2.cpp b/src/mame/video/toaplan2.cpp index 8b7e7a608a1..8abe80e19ca 100644 --- a/src/mame/video/toaplan2.cpp +++ b/src/mame/video/toaplan2.cpp @@ -63,9 +63,10 @@ void toaplan2_state::create_tx_tilemap(int dx, int dx_flipped) m_tx_tilemap->set_transparent_pen(0); } -void toaplan2_state::truxton2_postload() +void toaplan2_state::device_post_load() { - m_gfxdecode->gfx(0)->mark_all_dirty(); + if (m_tx_gfxram != nullptr) + m_gfxdecode->gfx(0)->mark_all_dirty(); } VIDEO_START_MEMBER(toaplan2_state,toaplan2) @@ -91,8 +92,7 @@ VIDEO_START_MEMBER(toaplan2_state,truxton2) VIDEO_START_CALL_MEMBER( toaplan2 ); /* Create the Text tilemap for this game */ - m_gfxdecode->gfx(0)->set_source(reinterpret_cast(m_tx_gfxram16.target())); - machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this)); + m_gfxdecode->gfx(0)->set_source(reinterpret_cast(m_tx_gfxram.target())); create_tx_tilemap(0x1d5, 0x16a); } @@ -136,8 +136,7 @@ VIDEO_START_MEMBER(toaplan2_state,batrider) m_vdp[0]->disable_sprite_buffer(); // disable buffering on this game /* Create the Text tilemap for this game */ - m_gfxdecode->gfx(0)->set_source(reinterpret_cast(m_tx_gfxram16.target())); - machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this)); + m_gfxdecode->gfx(0)->set_source(reinterpret_cast(m_tx_gfxram.target())); create_tx_tilemap(0x1d4, 0x16b); @@ -145,14 +144,14 @@ VIDEO_START_MEMBER(toaplan2_state,batrider) m_vdp[0]->set_gfxrom_banked(); } -WRITE16_MEMBER(toaplan2_state::toaplan2_tx_videoram_w) +WRITE16_MEMBER(toaplan2_state::tx_videoram_w) { COMBINE_DATA(&m_tx_videoram[offset]); if (offset < 64*32) m_tx_tilemap->mark_tile_dirty(offset); } -WRITE16_MEMBER(toaplan2_state::toaplan2_tx_linescroll_w) +WRITE16_MEMBER(toaplan2_state::tx_linescroll_w) { /*** Line-Scroll RAM for Text Layer ***/ COMBINE_DATA(&m_tx_linescroll[offset]); @@ -160,19 +159,32 @@ WRITE16_MEMBER(toaplan2_state::toaplan2_tx_linescroll_w) m_tx_tilemap->set_scrollx(offset, m_tx_linescroll[offset]); } -WRITE16_MEMBER(toaplan2_state::toaplan2_tx_gfxram16_w) +WRITE16_MEMBER(toaplan2_state::tx_gfxram_w) { /*** Dynamic GFX decoding for Truxton 2 / FixEight ***/ - uint16_t oldword = m_tx_gfxram16[offset]; + uint16_t oldword = m_tx_gfxram[offset]; if (oldword != data) { - COMBINE_DATA(&m_tx_gfxram16[offset]); + COMBINE_DATA(&m_tx_gfxram[offset]); m_gfxdecode->gfx(0)->mark_dirty(offset/32); } } +WRITE16_MEMBER(toaplan2_state::batrider_tx_gfxram_w) +{ + /*** Dynamic GFX decoding for Batrider / Battle Bakraid ***/ + + uint16_t oldword = m_tx_gfxram[offset]; + + if (oldword != data) + { + COMBINE_DATA(&m_tx_gfxram[offset]); + m_gfxdecode->gfx(0)->mark_dirty(offset/16); + } +} + WRITE16_MEMBER(toaplan2_state::batrider_textdata_dma_w) { /*** Dynamic Text GFX decoding for Batrider ***/ @@ -180,7 +192,7 @@ WRITE16_MEMBER(toaplan2_state::batrider_textdata_dma_w) m_dma_space->set_bank(1); for (int i = 0; i < (0x8000 >> 1); i++) { - m_dma_space->write16(space, i, m_mainram16[i]); + m_dma_space->write16(space, i, m_mainram[i]); } } @@ -192,7 +204,7 @@ WRITE16_MEMBER(toaplan2_state::batrider_pal_text_dma_w) m_dma_space->set_bank(0); for (int i = 0; i < (0x3400 >> 1); i++) { - m_dma_space->write16(space, i, m_mainram16[i]); + m_dma_space->write16(space, i, m_mainram[i]); } } @@ -209,12 +221,12 @@ uint32_t toaplan2_state::screen_update_dogyuun(screen_device &screen, bitmap_ind if (m_vdp[1]) { m_custom_priority_bitmap.fill(0, cliprect); - m_vdp[1]->gp9001_render_vdp(bitmap, cliprect); + m_vdp[1]->render_vdp(bitmap, cliprect); } if (m_vdp[0]) { m_custom_priority_bitmap.fill(0, cliprect); - m_vdp[0]->gp9001_render_vdp(bitmap, cliprect); + m_vdp[0]->render_vdp(bitmap, cliprect); } @@ -232,13 +244,13 @@ uint32_t toaplan2_state::screen_update_batsugun(screen_device &screen, bitmap_in { bitmap.fill(0, cliprect); m_custom_priority_bitmap.fill(0, cliprect); - m_vdp[0]->gp9001_render_vdp(bitmap, cliprect); + m_vdp[0]->render_vdp(bitmap, cliprect); } if (m_vdp[1]) { m_secondary_render_bitmap.fill(0, cliprect); m_custom_priority_bitmap.fill(0, cliprect); - m_vdp[1]->gp9001_render_vdp(m_secondary_render_bitmap, cliprect); + m_vdp[1]->render_vdp(m_secondary_render_bitmap, cliprect); } @@ -323,7 +335,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_vdp[0]->gp9001_render_vdp(bitmap, cliprect); + m_vdp[0]->render_vdp(bitmap, cliprect); return 0; } @@ -361,12 +373,12 @@ uint32_t toaplan2_state::screen_update_truxton2(screen_device &screen, bitmap_in -WRITE_LINE_MEMBER(toaplan2_state::screen_vblank_toaplan2) +WRITE_LINE_MEMBER(toaplan2_state::screen_vblank) { // rising edge if (state) { - if (m_vdp[0]) m_vdp[0]->gp9001_screen_eof(); - if (m_vdp[1]) m_vdp[1]->gp9001_screen_eof(); + if (m_vdp[0]) m_vdp[0]->screen_eof(); + if (m_vdp[1]) m_vdp[1]->screen_eof(); } } -- cgit v1.2.3