From a2af88a4516f177b60cc2bfc4590cad906ff9a0e Mon Sep 17 00:00:00 2001 From: cam900 Date: Sat, 10 Nov 2018 18:27:57 +0900 Subject: wrally.cpp : Cleanup gfxdecode, Duplicates, ACCESSING_BITS, Runtime tag lookups (#4060) --- src/mame/drivers/wrally.cpp | 8 +++----- src/mame/includes/wrally.h | 7 ++++--- src/mame/machine/wrally.cpp | 8 +++----- src/mame/video/wrally.cpp | 22 ++++++---------------- 4 files changed, 16 insertions(+), 29 deletions(-) diff --git a/src/mame/drivers/wrally.cpp b/src/mame/drivers/wrally.cpp index bb5566b1491..5d9f0b2c825 100644 --- a/src/mame/drivers/wrally.cpp +++ b/src/mame/drivers/wrally.cpp @@ -160,7 +160,7 @@ void wrally_state::wrally_map(address_map &map) [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_outlatch->write_d0(space, offset >> 3, data, mem_mask); }); - map(0x70000c, 0x70000d).w(FUNC(wrally_state::okim6295_bankswitch_w)); /* OKI6295 bankswitch */ + map(0x70000d, 0x70000d).w(FUNC(wrally_state::okim6295_bankswitch_w)); /* OKI6295 bankswitch */ map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 status/data register */ map(0xfec000, 0xfeffff).ram().share("shareram"); /* Work RAM (shared with DS5002FP) */ } @@ -253,10 +253,8 @@ static const gfx_layout wrally_tilelayout16 = RGN_FRAC(1,2), /* number of tiles */ 4, /* 4 bpp */ { RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*16+0, 16*16+1, 16*16+2, 16*16+3, 16*16+4, 16*16+5, 16*16+6, 16*16+7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, + { STEP8(0,1), STEP8(16*16,1) }, + { STEP16(0,16) }, 64*8 }; diff --git a/src/mame/includes/wrally.h b/src/mame/includes/wrally.h index 4e7dfee74fb..86f49940d3b 100644 --- a/src/mame/includes/wrally.h +++ b/src/mame/includes/wrally.h @@ -17,6 +17,7 @@ public: m_outlatch(*this, "outlatch"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), + m_okibank(*this, "okibank"), m_videoram(*this, "videoram"), m_vregs(*this, "vregs"), m_spriteram(*this, "spriteram"), @@ -32,14 +33,13 @@ private: DECLARE_WRITE8_MEMBER(shareram_w); DECLARE_WRITE16_MEMBER(vram_w); DECLARE_WRITE_LINE_MEMBER(flipscreen_w); - DECLARE_WRITE16_MEMBER(okim6295_bankswitch_w); + DECLARE_WRITE8_MEMBER(okim6295_bankswitch_w); DECLARE_WRITE_LINE_MEMBER(coin1_counter_w); DECLARE_WRITE_LINE_MEMBER(coin2_counter_w); DECLARE_WRITE_LINE_MEMBER(coin1_lockout_w); DECLARE_WRITE_LINE_MEMBER(coin2_lockout_w); - TILE_GET_INFO_MEMBER(get_tile_info_screen0); - TILE_GET_INFO_MEMBER(get_tile_info_screen1); + template TILE_GET_INFO_MEMBER(get_tile_info); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -55,6 +55,7 @@ private: required_device m_outlatch; required_device m_gfxdecode; required_device m_palette; + required_memory_bank m_okibank; required_shared_ptr m_videoram; required_shared_ptr m_vregs; diff --git a/src/mame/machine/wrally.cpp b/src/mame/machine/wrally.cpp index 968fe7f8b4d..8e0e273f15e 100644 --- a/src/mame/machine/wrally.cpp +++ b/src/mame/machine/wrally.cpp @@ -17,7 +17,7 @@ void wrally_state::machine_start() { - membank("okibank")->configure_entries(0, 16, memregion("oki")->base(), 0x10000); + m_okibank->configure_entries(0, 16, memregion("oki")->base(), 0x10000); } /*************************************************************************** @@ -51,11 +51,9 @@ WRITE_LINE_MEMBER(wrally_state::flipscreen_w) flip_screen_set(state); } -WRITE16_MEMBER(wrally_state::okim6295_bankswitch_w) +WRITE8_MEMBER(wrally_state::okim6295_bankswitch_w) { - if (ACCESSING_BITS_0_7){ - membank("okibank")->set_entry(data & 0x0f); - } + m_okibank->set_entry(data & 0x0f); } WRITE_LINE_MEMBER(wrally_state::coin1_counter_w) diff --git a/src/mame/video/wrally.cpp b/src/mame/video/wrally.cpp index 3d8d217b59b..7f24ecb63b9 100644 --- a/src/mame/video/wrally.cpp +++ b/src/mame/video/wrally.cpp @@ -36,21 +36,11 @@ 1 | xxx----- -------- | not used? */ -TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_screen0) +template +TILE_GET_INFO_MEMBER(wrally_state::get_tile_info) { - int data = m_videoram[tile_index << 1]; - int data2 = m_videoram[(tile_index << 1) + 1]; - int code = data & 0x3fff; - - tileinfo.category = (data2 >> 5) & 0x01; - - SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); -} - -TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_screen1) -{ - int data = m_videoram[(0x2000/2) + (tile_index << 1)]; - int data2 = m_videoram[(0x2000/2) + (tile_index << 1) + 1]; + int data = m_videoram[(Layer * 0x2000/2) + (tile_index << 1)]; + int data2 = m_videoram[(Layer * 0x2000/2) + (tile_index << 1) + 1]; int code = data & 0x3fff; tileinfo.category = (data2 >> 5) & 0x01; @@ -66,8 +56,8 @@ TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_screen1) void wrally_state::video_start() { - m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_screen0),this),TILEMAP_SCAN_ROWS,16,16,64,32); - m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_screen1),this),TILEMAP_SCAN_ROWS,16,16,64,32); + m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32); + m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32); m_pant[0]->set_transmask(0,0xff01,0x00ff); /* this layer is split in two (pens 1..7, pens 8-15) */ m_pant[1]->set_transparent_pen(0); -- cgit v1.2.3