diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c index 4a98cc574ea..137a80e0a0f 100644 --- a/src/mame/drivers/1945kiii.c +++ b/src/mame/drivers/1945kiii.c @@ -74,6 +74,7 @@ public: DECLARE_WRITE16_MEMBER(k3_scrollx_w); DECLARE_WRITE16_MEMBER(k3_scrolly_w); DECLARE_WRITE16_MEMBER(k3_soundbanks_w); + TILE_GET_INFO_MEMBER(get_k3_bg_tile_info); }; @@ -83,17 +84,16 @@ WRITE16_MEMBER(k3_state::k3_bgram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_k3_bg_tile_info ) +TILE_GET_INFO_MEMBER(k3_state::get_k3_bg_tile_info) { - k3_state *state = machine.driver_data(); - int tileno = state->m_bgram[tile_index]; - SET_TILE_INFO(1, tileno, 0, 0); + int tileno = m_bgram[tile_index]; + SET_TILE_INFO_MEMBER(1, tileno, 0, 0); } static VIDEO_START(k3) { k3_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_k3_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(k3_state::get_k3_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 64); } static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c index 79194b5d85e..183a3bdf135 100644 --- a/src/mame/drivers/5clown.c +++ b/src/mame/drivers/5clown.c @@ -483,6 +483,7 @@ public: DECLARE_READ8_MEMBER(pia1_b_r); DECLARE_WRITE8_MEMBER(fclown_ay8910_w); DECLARE_DRIVER_INIT(fclown); + TILE_GET_INFO_MEMBER(get_fclown_tile_info); }; @@ -507,9 +508,8 @@ WRITE8_MEMBER(_5clown_state::fclown_colorram_w) } -static TILE_GET_INFO( get_fclown_tile_info ) +TILE_GET_INFO_MEMBER(_5clown_state::get_fclown_tile_info) { - _5clown_state *state = machine.driver_data<_5clown_state>(); /* - bits - 7654 3210 @@ -520,19 +520,19 @@ static TILE_GET_INFO( get_fclown_tile_info ) x--- ---- Extra color for 7's. */ - int attr = state->m_colorram[tile_index]; - int code = ((attr & 0x01) << 8) | ((attr & 0x40) << 2) | state->m_videoram[tile_index]; /* bit 8 for extended char set */ + int attr = m_colorram[tile_index]; + int code = ((attr & 0x01) << 8) | ((attr & 0x40) << 2) | m_videoram[tile_index]; /* bit 8 for extended char set */ int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ int color = (attr & 0x3c) >> 2 | ((attr & 0x80) >> 3); /* bits 2-3-4-5-7 for color */ - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } static VIDEO_START(fclown) { _5clown_state *state = machine.driver_data<_5clown_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_fclown_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_5clown_state::get_fclown_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c index d364a2759ef..595577ab3f6 100644 --- a/src/mame/drivers/acommand.c +++ b/src/mame/drivers/acommand.c @@ -88,32 +88,33 @@ public: DECLARE_READ16_MEMBER(ac_devices_r); DECLARE_WRITE16_MEMBER(ac_devices_w); DECLARE_WRITE16_MEMBER(ac_unk2_w); + TILEMAP_MAPPER_MEMBER(bg_scan); + TILE_GET_INFO_MEMBER(ac_get_bg_tile_info); + TILE_GET_INFO_MEMBER(ac_get_tx_tile_info); }; -static TILEMAP_MAPPER( bg_scan ) +TILEMAP_MAPPER_MEMBER(acommand_state::bg_scan) { /* logical (col,row) -> memory offset */ return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8); } -static TILE_GET_INFO( ac_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(acommand_state::ac_get_bg_tile_info) { - acommand_state *state = machine.driver_data(); - int code = state->m_ac_bgvram[tile_index]; - SET_TILE_INFO( + int code = m_ac_bgvram[tile_index]; + SET_TILE_INFO_MEMBER( 1, code & 0xfff, (code & 0xf000) >> 12, 0); } -static TILE_GET_INFO( ac_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(acommand_state::ac_get_tx_tile_info) { - acommand_state *state = machine.driver_data(); - int code = state->m_ac_txvram[tile_index]; - SET_TILE_INFO( + int code = m_ac_txvram[tile_index]; + SET_TILE_INFO_MEMBER( 0, code & 0xfff, (code & 0xf000) >> 12, @@ -182,8 +183,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r static VIDEO_START( acommand ) { acommand_state *state = machine.driver_data(); - state->m_tx_tilemap = tilemap_create(machine, ac_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,512,32); - state->m_bg_tilemap = tilemap_create(machine, ac_get_bg_tile_info,bg_scan,16,16,256,16); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(acommand_state::ac_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,512,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(acommand_state::ac_get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(acommand_state::bg_scan),state),16,16,256,16); state->m_ac_vregs = auto_alloc_array(machine, UINT16, 0x80/2); diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c index 76ddfaf00d0..44620334c2c 100644 --- a/src/mame/drivers/albazg.c +++ b/src/mame/drivers/albazg.c @@ -72,15 +72,15 @@ public: DECLARE_READ8_MEMBER(mux_r); DECLARE_WRITE8_MEMBER(mux_w); DECLARE_WRITE8_MEMBER(yumefuda_output_w); + TILE_GET_INFO_MEMBER(y_get_bg_tile_info); }; -static TILE_GET_INFO( y_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info) { - albazg_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index]; - int color = state->m_colorram[tile_index]; + int code = m_videoram[tile_index]; + int color = m_colorram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code + ((color & 0xf8) << 3), color & 0x7, @@ -91,7 +91,7 @@ static TILE_GET_INFO( y_get_bg_tile_info ) static VIDEO_START( yumefuda ) { albazg_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, y_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(albazg_state::y_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( yumefuda ) diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c index 5e73a72e602..782056b292a 100644 --- a/src/mame/drivers/avt.c +++ b/src/mame/drivers/avt.c @@ -441,6 +441,7 @@ public: UINT8 m_crtc_vreg[0x100],m_crtc_index; DECLARE_WRITE8_MEMBER(debug_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; #define mc6845_h_char_total (state->m_crtc_vreg[0]) @@ -480,26 +481,25 @@ WRITE8_MEMBER( avt_state::avt_colorram_w ) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(avt_state::get_bg_tile_info) { - avt_state *state = machine.driver_data(); /* - bits - 7654 3210 xxxx ---- color code. ---- xxxx seems unused. */ - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] | ((attr & 1) << 8); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] | ((attr & 1) << 8); int color = (attr & 0xf0)>>4; - SET_TILE_INFO( 0, code, color, 0); + SET_TILE_INFO_MEMBER( 0, code, color, 0); } static VIDEO_START( avt ) { avt_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 28, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(avt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 28, 32); } diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c index 878a429847e..84a390819ec 100644 --- a/src/mame/drivers/bestleag.c +++ b/src/mame/drivers/bestleag.c @@ -46,49 +46,50 @@ public: DECLARE_WRITE16_MEMBER(bestleag_bgram_w); DECLARE_WRITE16_MEMBER(bestleag_fgram_w); DECLARE_WRITE16_MEMBER(oki_bank_w); + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILEMAP_MAPPER_MEMBER(bsb_bg_scan); }; /* Video Handling */ -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(bestleag_state::get_tx_tile_info) { - bestleag_state *state = machine.driver_data(); - int code = state->m_txram[tile_index]; + int code = m_txram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code & 0x0fff)|0x8000, (code & 0xf000) >> 12, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(bestleag_state::get_bg_tile_info) { - bestleag_state *state = machine.driver_data(); - int code = state->m_bgram[tile_index]; + int code = m_bgram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, (code & 0x0fff), (code & 0xf000) >> 12, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(bestleag_state::get_fg_tile_info) { - bestleag_state *state = machine.driver_data(); - int code = state->m_fgram[tile_index]; + int code = m_fgram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, (code & 0x0fff)|0x1000, ((code & 0xf000) >> 12)|0x10, 0); } -static TILEMAP_MAPPER( bsb_bg_scan ) +TILEMAP_MAPPER_MEMBER(bestleag_state::bsb_bg_scan) { int offset; @@ -102,9 +103,9 @@ static TILEMAP_MAPPER( bsb_bg_scan ) static VIDEO_START(bestleag) { bestleag_state *state = machine.driver_data(); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,256, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,bsb_bg_scan,16,16,128, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,bsb_bg_scan,16,16,128, 64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,256, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),state),16,16,128, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_fg_tile_info),state),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),state),16,16,128, 64); state->m_tx_tilemap->set_transparent_pen(15); state->m_fg_tilemap->set_transparent_pen(15); diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c index d59075815ed..55941f860b6 100644 --- a/src/mame/drivers/blackt96.c +++ b/src/mame/drivers/blackt96.c @@ -122,26 +122,33 @@ public: UINT16* m_spriteram[8]; tilemap_t *m_bg_tilemap[8]; + TILE_GET_INFO_MEMBER(get_bg0_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_bg3_tile_info); + TILE_GET_INFO_MEMBER(get_bg4_tile_info); + TILE_GET_INFO_MEMBER(get_bg5_tile_info); + TILE_GET_INFO_MEMBER(get_bg6_tile_info); + TILE_GET_INFO_MEMBER(get_bg7_tile_info); }; #define GET_INFO( ram ) \ - blackt96_state *state = machine.driver_data(); \ int tileno = (ram[tile_index*2+1] & 0x1fff); \ int rgn = (ram[tile_index*2+1] & 0x2000) >> 13; \ int flipyx = (ram[tile_index*2+1] & 0xc000)>>14; \ int col = (ram[tile_index*2] & 0x00ff); \ if (rgn==1) col >>=4; \ - SET_TILE_INFO(1-rgn, tileno, col, TILE_FLIPYX(flipyx)); \ + SET_TILE_INFO_MEMBER(1-rgn, tileno, col, TILE_FLIPYX(flipyx)); \ -static TILE_GET_INFO( get_bg0_tile_info ) { GET_INFO(state->m_spriteram0); } -static TILE_GET_INFO( get_bg1_tile_info ) { GET_INFO(state->m_spriteram1); } -static TILE_GET_INFO( get_bg2_tile_info ) { GET_INFO(state->m_spriteram2); } -static TILE_GET_INFO( get_bg3_tile_info ) { GET_INFO(state->m_spriteram3); } -static TILE_GET_INFO( get_bg4_tile_info ) { GET_INFO(state->m_spriteram4); } -static TILE_GET_INFO( get_bg5_tile_info ) { GET_INFO(state->m_spriteram5); } -static TILE_GET_INFO( get_bg6_tile_info ) { GET_INFO(state->m_spriteram6); } -static TILE_GET_INFO( get_bg7_tile_info ) { GET_INFO(state->m_spriteram7); } +TILE_GET_INFO_MEMBER(blackt96_state::get_bg0_tile_info){ GET_INFO(m_spriteram0); } +TILE_GET_INFO_MEMBER(blackt96_state::get_bg1_tile_info){ GET_INFO(m_spriteram1); } +TILE_GET_INFO_MEMBER(blackt96_state::get_bg2_tile_info){ GET_INFO(m_spriteram2); } +TILE_GET_INFO_MEMBER(blackt96_state::get_bg3_tile_info){ GET_INFO(m_spriteram3); } +TILE_GET_INFO_MEMBER(blackt96_state::get_bg4_tile_info){ GET_INFO(m_spriteram4); } +TILE_GET_INFO_MEMBER(blackt96_state::get_bg5_tile_info){ GET_INFO(m_spriteram5); } +TILE_GET_INFO_MEMBER(blackt96_state::get_bg6_tile_info){ GET_INFO(m_spriteram6); } +TILE_GET_INFO_MEMBER(blackt96_state::get_bg7_tile_info){ GET_INFO(m_spriteram7); } WRITE16_MEMBER(blackt96_state::bg_videoram0_w) { COMBINE_DATA(&m_spriteram0[offset]); m_bg_tilemap[0]->mark_tile_dirty(offset/2); } WRITE16_MEMBER(blackt96_state::bg_videoram1_w) { COMBINE_DATA(&m_spriteram1[offset]); m_bg_tilemap[1]->mark_tile_dirty(offset/2); } @@ -156,14 +163,14 @@ static VIDEO_START( blackt96 ) { blackt96_state *state = machine.driver_data(); - state->m_bg_tilemap[0] = tilemap_create(machine, get_bg0_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg_tilemap[1] = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg_tilemap[2] = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg_tilemap[3] = tilemap_create(machine, get_bg3_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg_tilemap[4] = tilemap_create(machine, get_bg4_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg_tilemap[5] = tilemap_create(machine, get_bg5_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg_tilemap[6] = tilemap_create(machine, get_bg6_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg_tilemap[7] = tilemap_create(machine, get_bg7_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg0_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg3_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg_tilemap[4] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg4_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg_tilemap[5] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg5_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg_tilemap[6] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg6_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg_tilemap[7] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg7_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_spriteram[0] = state->m_spriteram0; state->m_spriteram[1] = state->m_spriteram1; diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c index 1433e75c0cf..9cd27e039b6 100644 --- a/src/mame/drivers/blitz.c +++ b/src/mame/drivers/blitz.c @@ -310,6 +310,7 @@ public: DECLARE_WRITE8_MEMBER(mux_w); DECLARE_WRITE8_MEMBER(lamps_a_w); DECLARE_WRITE8_MEMBER(sound_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -332,9 +333,8 @@ WRITE8_MEMBER(blitz_state::megadpkr_colorram_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(blitz_state::get_bg_tile_info) { - blitz_state *state = machine.driver_data(); /* - bits - 7654 3210 --xx xx-- tiles color. @@ -343,19 +343,19 @@ static TILE_GET_INFO( get_bg_tile_info ) xx-- ---- unused. */ - int attr = state->m_colorram[tile_index]; - int code = ((attr & 1) << 8) | state->m_videoram[tile_index]; + int attr = m_colorram[tile_index]; + int code = ((attr & 1) << 8) | m_videoram[tile_index]; int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */ - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } static VIDEO_START( megadpkr ) { blitz_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blitz_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( megadpkr ) diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c index ba2c68ebfa3..9583021a470 100644 --- a/src/mame/drivers/bnstars.c +++ b/src/mame/drivers/bnstars.c @@ -147,30 +147,34 @@ public: DECLARE_READ32_MEMBER(bnstars3_r); DECLARE_WRITE32_MEMBER(bnstars1_mahjong_select_w); DECLARE_DRIVER_INIT(bnstars); + TILE_GET_INFO_MEMBER(get_ms32_tx0_tile_info); + TILE_GET_INFO_MEMBER(get_ms32_tx1_tile_info); + TILE_GET_INFO_MEMBER(get_ms32_bg0_tile_info); + TILE_GET_INFO_MEMBER(get_ms32_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_ms32_roz0_tile_info); + TILE_GET_INFO_MEMBER(get_ms32_roz1_tile_info); }; -static TILE_GET_INFO( get_ms32_tx0_tile_info ) +TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_tx0_tile_info) { - bnstars_state *state = machine.driver_data(); int tileno, colour; - tileno = state->m_ms32_tx0_ram[tile_index *2+0] & 0x0000ffff; - colour = state->m_ms32_tx0_ram[tile_index *2+1] & 0x0000000f; + tileno = m_ms32_tx0_ram[tile_index *2+0] & 0x0000ffff; + colour = m_ms32_tx0_ram[tile_index *2+1] & 0x0000000f; - SET_TILE_INFO(3,tileno,colour,0); + SET_TILE_INFO_MEMBER(3,tileno,colour,0); } -static TILE_GET_INFO( get_ms32_tx1_tile_info ) +TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_tx1_tile_info) { - bnstars_state *state = machine.driver_data(); int tileno, colour; - tileno = state->m_ms32_tx1_ram[tile_index *2+0] & 0x0000ffff; - colour = state->m_ms32_tx1_ram[tile_index *2+1] & 0x0000000f; + tileno = m_ms32_tx1_ram[tile_index *2+0] & 0x0000ffff; + colour = m_ms32_tx1_ram[tile_index *2+1] & 0x0000000f; - SET_TILE_INFO(7,tileno,colour,0); + SET_TILE_INFO_MEMBER(7,tileno,colour,0); } WRITE32_MEMBER(bnstars_state::ms32_tx0_ram_w) @@ -187,26 +191,24 @@ WRITE32_MEMBER(bnstars_state::ms32_tx1_ram_w) /* BG Layers */ -static TILE_GET_INFO( get_ms32_bg0_tile_info ) +TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_bg0_tile_info) { - bnstars_state *state = machine.driver_data(); int tileno,colour; - tileno = state->m_ms32_bg0_ram[tile_index *2+0] & 0x0000ffff; - colour = state->m_ms32_bg0_ram[tile_index *2+1] & 0x0000000f; + tileno = m_ms32_bg0_ram[tile_index *2+0] & 0x0000ffff; + colour = m_ms32_bg0_ram[tile_index *2+1] & 0x0000000f; - SET_TILE_INFO(2,tileno,colour,0); + SET_TILE_INFO_MEMBER(2,tileno,colour,0); } -static TILE_GET_INFO( get_ms32_bg1_tile_info ) +TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_bg1_tile_info) { - bnstars_state *state = machine.driver_data(); int tileno,colour; - tileno = state->m_ms32_bg1_ram[tile_index *2+0] & 0x0000ffff; - colour = state->m_ms32_bg1_ram[tile_index *2+1] & 0x0000000f; + tileno = m_ms32_bg1_ram[tile_index *2+0] & 0x0000ffff; + colour = m_ms32_bg1_ram[tile_index *2+1] & 0x0000000f; - SET_TILE_INFO(6,tileno,colour,0); + SET_TILE_INFO_MEMBER(6,tileno,colour,0); } WRITE32_MEMBER(bnstars_state::ms32_bg0_ram_w) @@ -309,26 +311,24 @@ static void draw_roz(running_machine &machine, bitmap_ind16 &bitmap, const recta } -static TILE_GET_INFO( get_ms32_roz0_tile_info ) +TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_roz0_tile_info) { - bnstars_state *state = machine.driver_data(); int tileno,colour; - tileno = state->m_ms32_roz0_ram[tile_index *2+0] & 0x0000ffff; - colour = state->m_ms32_roz0_ram[tile_index *2+1] & 0x0000000f; + tileno = m_ms32_roz0_ram[tile_index *2+0] & 0x0000ffff; + colour = m_ms32_roz0_ram[tile_index *2+1] & 0x0000000f; - SET_TILE_INFO(1,tileno,colour,0); + SET_TILE_INFO_MEMBER(1,tileno,colour,0); } -static TILE_GET_INFO( get_ms32_roz1_tile_info ) +TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_roz1_tile_info) { - bnstars_state *state = machine.driver_data(); int tileno,colour; - tileno = state->m_ms32_roz1_ram[tile_index *2+0] & 0x0000ffff; - colour = state->m_ms32_roz1_ram[tile_index *2+1] & 0x0000000f; + tileno = m_ms32_roz1_ram[tile_index *2+0] & 0x0000ffff; + colour = m_ms32_roz1_ram[tile_index *2+1] & 0x0000000f; - SET_TILE_INFO(5,tileno,colour,0); + SET_TILE_INFO_MEMBER(5,tileno,colour,0); } WRITE32_MEMBER(bnstars_state::ms32_roz0_ram_w) @@ -507,18 +507,18 @@ WRITE32_MEMBER(bnstars_state::ms32_spramx_w) static VIDEO_START(bnstars) { bnstars_state *state = machine.driver_data(); - state->m_ms32_tx_tilemap[0] = tilemap_create(machine, get_ms32_tx0_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,64); - state->m_ms32_tx_tilemap[1] = tilemap_create(machine, get_ms32_tx1_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,64); + state->m_ms32_tx_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,64); + state->m_ms32_tx_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,64); state->m_ms32_tx_tilemap[0]->set_transparent_pen(0); state->m_ms32_tx_tilemap[1]->set_transparent_pen(0); - state->m_ms32_bg_tilemap[0] = tilemap_create(machine, get_ms32_bg0_tile_info,TILEMAP_SCAN_ROWS,16,16,64,64); - state->m_ms32_bg_tilemap[1] = tilemap_create(machine, get_ms32_bg1_tile_info,TILEMAP_SCAN_ROWS,16,16,64,64); + state->m_ms32_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg0_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,64); + state->m_ms32_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg1_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,64); state->m_ms32_bg_tilemap[0]->set_transparent_pen(0); state->m_ms32_bg_tilemap[1]->set_transparent_pen(0); - state->m_ms32_roz_tilemap[0] = tilemap_create(machine, get_ms32_roz0_tile_info,TILEMAP_SCAN_ROWS,16,16,128,128); - state->m_ms32_roz_tilemap[1] = tilemap_create(machine, get_ms32_roz1_tile_info,TILEMAP_SCAN_ROWS,16,16,128,128); + state->m_ms32_roz_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz0_tile_info),state),TILEMAP_SCAN_ROWS,16,16,128,128); + state->m_ms32_roz_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz1_tile_info),state),TILEMAP_SCAN_ROWS,16,16,128,128); state->m_ms32_roz_tilemap[0]->set_transparent_pen(0); state->m_ms32_roz_tilemap[1]->set_transparent_pen(0); diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c index 2e4148daae9..9e294ce7dca 100644 --- a/src/mame/drivers/cabaret.c +++ b/src/mame/drivers/cabaret.c @@ -51,6 +51,8 @@ public: DECLARE_WRITE8_MEMBER(cabaret_nmi_and_coins_w); void show_out(); DECLARE_DRIVER_INIT(cabaret); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -74,19 +76,17 @@ WRITE8_MEMBER(cabaret_state::bg_tile_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(cabaret_state::get_bg_tile_info) { - cabaret_state *state = machine.driver_data(); - int code = state->m_bg_tile_ram[tile_index]; - SET_TILE_INFO(1, code & 0xff, 0, 0); + int code = m_bg_tile_ram[tile_index]; + SET_TILE_INFO_MEMBER(1, code & 0xff, 0, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(cabaret_state::get_fg_tile_info) { - cabaret_state *state = machine.driver_data(); - int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8); + int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8); int tile = code & 0x1fff; - SET_TILE_INFO(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); + SET_TILE_INFO_MEMBER(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); } WRITE8_MEMBER(cabaret_state::fg_tile_w) @@ -104,8 +104,8 @@ WRITE8_MEMBER(cabaret_state::fg_color_w) static VIDEO_START(cabaret) { cabaret_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabaret_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabaret_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scroll_cols(64); } diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c index be1eb6f2ef8..5b462e0360b 100644 --- a/src/mame/drivers/calorie.c +++ b/src/mame/drivers/calorie.c @@ -107,6 +107,8 @@ public: DECLARE_WRITE8_MEMBER(bogus_w); DECLARE_DRIVER_INIT(calorie); DECLARE_DRIVER_INIT(calorieb); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -116,25 +118,23 @@ public: * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(calorie_state::get_bg_tile_info) { - calorie_state *state = machine.driver_data(); - UINT8 *src = state->memregion("user1")->base(); - int bg_base = (state->m_bg_bank & 0x0f) * 0x200; + UINT8 *src = memregion("user1")->base(); + int bg_base = (m_bg_bank & 0x0f) * 0x200; int code = src[bg_base + tile_index] | (((src[bg_base + tile_index + 0x100]) & 0x10) << 4); int color = src[bg_base + tile_index + 0x100] & 0x0f; int flag = src[bg_base + tile_index + 0x100] & 0x40 ? TILE_FLIPX : 0; - SET_TILE_INFO(1, code, color, flag); + SET_TILE_INFO_MEMBER(1, code, color, flag); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(calorie_state::get_fg_tile_info) { - calorie_state *state = machine.driver_data(); - int code = ((state->m_fg_ram[tile_index + 0x400] & 0x30) << 4) | state->m_fg_ram[tile_index]; - int color = state->m_fg_ram[tile_index + 0x400] & 0x0f; + int code = ((m_fg_ram[tile_index + 0x400] & 0x30) << 4) | m_fg_ram[tile_index]; + int color = m_fg_ram[tile_index + 0x400] & 0x0f; - SET_TILE_INFO(0, code, color, TILE_FLIPYX((state->m_fg_ram[tile_index + 0x400] & 0xc0) >> 6)); + SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((m_fg_ram[tile_index + 0x400] & 0xc0) >> 6)); } @@ -142,8 +142,8 @@ static VIDEO_START( calorie ) { calorie_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(calorie_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(calorie_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c index 90aa4b59b7d..6b8f3a5b8e8 100644 --- a/src/mame/drivers/caswin.c +++ b/src/mame/drivers/caswin.c @@ -65,17 +65,17 @@ public: DECLARE_READ8_MEMBER(vvillage_rng_r); DECLARE_WRITE8_MEMBER(vvillage_output_w); DECLARE_WRITE8_MEMBER(vvillage_lamps_w); + TILE_GET_INFO_MEMBER(get_sc0_tile_info); }; -static TILE_GET_INFO( get_sc0_tile_info ) +TILE_GET_INFO_MEMBER(caswin_state::get_sc0_tile_info) { - caswin_state *state = machine.driver_data(); - int tile = (state->m_sc0_vram[tile_index] | ((state->m_sc0_attr[tile_index] & 0x70)<<4)) & 0x7ff; - int colour = state->m_sc0_attr[tile_index] & 0xf; + int tile = (m_sc0_vram[tile_index] | ((m_sc0_attr[tile_index] & 0x70)<<4)) & 0x7ff; + int colour = m_sc0_attr[tile_index] & 0xf; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, colour, @@ -85,7 +85,7 @@ static TILE_GET_INFO( get_sc0_tile_info ) static VIDEO_START(vvillage) { caswin_state *state = machine.driver_data(); - state->m_sc0_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(caswin_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); } static SCREEN_UPDATE_IND16(vvillage) diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c index 92179cfcc3b..7ecf46d0c82 100644 --- a/src/mame/drivers/cb2001.c +++ b/src/mame/drivers/cb2001.c @@ -66,6 +66,9 @@ public: DECLARE_WRITE16_MEMBER(cb2001_vidctrl_w); DECLARE_WRITE16_MEMBER(cb2001_vidctrl2_w); DECLARE_WRITE16_MEMBER(cb2001_bg_w); + TILE_GET_INFO_MEMBER(get_cb2001_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_cb2001_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_cb2001_reel3_tile_info); }; @@ -456,10 +459,9 @@ WRITE16_MEMBER(cb2001_state::cb2001_vidctrl2_w) } -static TILE_GET_INFO( get_cb2001_reel1_tile_info ) +TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel1_tile_info) { - cb2001_state *state = machine.driver_data(); - int code = state->m_vram_bg[(0x0000/2) + tile_index/2]; + int code = m_vram_bg[(0x0000/2) + tile_index/2]; if (tile_index&1) code >>=8; @@ -468,17 +470,16 @@ static TILE_GET_INFO( get_cb2001_reel1_tile_info ) int colour = 0;//= (cb2001_out_c&0x7) + 8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code+0x800, colour, 0); } -static TILE_GET_INFO( get_cb2001_reel2_tile_info ) +TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel2_tile_info) { - cb2001_state *state = machine.driver_data(); - int code = state->m_vram_bg[(0x0200/2) + tile_index/2]; + int code = m_vram_bg[(0x0200/2) + tile_index/2]; if (tile_index&1) code >>=8; @@ -487,7 +488,7 @@ static TILE_GET_INFO( get_cb2001_reel2_tile_info ) int colour = 0;//(cb2001_out_c&0x7) + 8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code+0x800, colour, @@ -495,10 +496,9 @@ static TILE_GET_INFO( get_cb2001_reel2_tile_info ) } -static TILE_GET_INFO( get_cb2001_reel3_tile_info ) +TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel3_tile_info) { - cb2001_state *state = machine.driver_data(); - int code = state->m_vram_bg[(0x0400/2) + tile_index/2]; + int code = m_vram_bg[(0x0400/2) + tile_index/2]; int colour = 0;//(cb2001_out_c&0x7) + 8; if (tile_index&1) @@ -506,7 +506,7 @@ static TILE_GET_INFO( get_cb2001_reel3_tile_info ) code &=0xff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code+0x800, colour, @@ -517,9 +517,9 @@ static TILE_GET_INFO( get_cb2001_reel3_tile_info ) static VIDEO_START(cb2001) { cb2001_state *state = machine.driver_data(); - state->m_reel1_tilemap = tilemap_create(machine,get_cb2001_reel1_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_cb2001_reel2_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_cb2001_reel3_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel1_tilemap->set_scroll_cols(64); state->m_reel2_tilemap->set_scroll_cols(64); diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c index 1d7c58585ba..19f4dc5ba80 100644 --- a/src/mame/drivers/cball.c +++ b/src/mame/drivers/cball.c @@ -27,15 +27,15 @@ public: DECLARE_WRITE8_MEMBER(cball_vram_w); DECLARE_READ8_MEMBER(cball_wram_r); DECLARE_WRITE8_MEMBER(cball_wram_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(cball_state::get_tile_info) { - cball_state *state = machine.driver_data(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; - SET_TILE_INFO(0, code, code >> 7, 0); + SET_TILE_INFO_MEMBER(0, code, code >> 7, 0); } @@ -49,7 +49,7 @@ WRITE8_MEMBER(cball_state::cball_vram_w) static VIDEO_START( cball ) { cball_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cball_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c index 0d881c0dfb5..18dda6dba68 100644 --- a/src/mame/drivers/chanbara.c +++ b/src/mame/drivers/chanbara.c @@ -86,6 +86,8 @@ public: DECLARE_WRITE8_MEMBER(chanbara_ay_out_0_w); DECLARE_WRITE8_MEMBER(chanbara_ay_out_1_w); DECLARE_DRIVER_INIT(chanbara); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; @@ -133,29 +135,27 @@ WRITE8_MEMBER(chanbara_state::chanbara_colorram2_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(chanbara_state::get_bg_tile_info) { - chanbara_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 1) << 8); - int color = (state->m_colorram[tile_index] >> 1) & 0x1f; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 1) << 8); + int color = (m_colorram[tile_index] >> 1) & 0x1f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(chanbara_state::get_bg2_tile_info) { - chanbara_state *state = machine.driver_data(); - int code = state->m_videoram2[tile_index]; - int color = (state->m_colorram2[tile_index] >> 1) & 0x1f; + int code = m_videoram2[tile_index]; + int color = (m_colorram2[tile_index] >> 1) & 0x1f; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } static VIDEO_START(chanbara ) { chanbara_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS,8, 8, 32, 32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS,16, 16, 16, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chanbara_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,8, 8, 32, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chanbara_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS,16, 16, 16, 32); state->m_bg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/chance32.c b/src/mame/drivers/chance32.c index 28eb1528f46..735b70285b8 100644 --- a/src/mame/drivers/chance32.c +++ b/src/mame/drivers/chance32.c @@ -57,27 +57,27 @@ public: required_shared_ptr m_bgram; UINT8 mux_data; + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(chance32_state::get_fg_tile_info) { - chance32_state *state = machine.driver_data(); - int code = (state->m_fgram[tile_index * 2 + 1] << 8) | state->m_fgram[tile_index * 2]; + int code = (m_fgram[tile_index * 2 + 1] << 8) | m_fgram[tile_index * 2]; int flip = (~code >> 12)&1; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code & 0x0fff, code >> 13, TILE_FLIPYX(flip<<1)|flip); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(chance32_state::get_bg_tile_info) { - chance32_state *state = machine.driver_data(); - int code = (state->m_bgram[tile_index * 2 +1] << 8) | state->m_bgram[tile_index * 2]; + int code = (m_bgram[tile_index * 2 +1] << 8) | m_bgram[tile_index * 2]; int flip = (~code >> 12)&1; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code & 0x0fff, code >> 13, @@ -89,10 +89,10 @@ VIDEO_START( chance32 ) { chance32_state *state = machine.driver_data(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 35, 29); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chance32_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 35, 29); state->m_fg_tilemap->set_transparent_pen(0); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 35, 29); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chance32_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 35, 29); state->m_fg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY); state->m_bg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY); diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c index 77133195e6d..f60b4ed1fc7 100644 --- a/src/mame/drivers/cntsteer.c +++ b/src/mame/drivers/cntsteer.c @@ -81,6 +81,8 @@ public: DECLARE_WRITE8_MEMBER(nmimask_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_DRIVER_INIT(zerotrgt); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -112,30 +114,28 @@ static PALETTE_INIT( zerotrgt ) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(cntsteer_state::get_bg_tile_info) { - cntsteer_state *state = machine.driver_data(); - int code = state->m_videoram2[tile_index]; + int code = m_videoram2[tile_index]; - SET_TILE_INFO(2, code + state->m_bg_bank, state->m_bg_color_bank, 0); + SET_TILE_INFO_MEMBER(2, code + m_bg_bank, m_bg_color_bank, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(cntsteer_state::get_fg_tile_info) { - cntsteer_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index]; - int attr = state->m_colorram[tile_index]; + int code = m_videoram[tile_index]; + int attr = m_colorram[tile_index]; code |= (attr & 0x01) << 8; - SET_TILE_INFO(0, code, 0x30 + ((attr & 0x78) >> 3), 0); + SET_TILE_INFO_MEMBER(0, code, 0x30 + ((attr & 0x78) >> 3), 0); } static VIDEO_START( cntsteer ) { cntsteer_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); @@ -145,8 +145,8 @@ static VIDEO_START( cntsteer ) static VIDEO_START( zerotrgt ) { cntsteer_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c index e3d18560066..71dd0d259e8 100644 --- a/src/mame/drivers/coinmstr.c +++ b/src/mame/drivers/coinmstr.c @@ -53,6 +53,7 @@ public: DECLARE_WRITE8_MEMBER(question_w); DECLARE_READ8_MEMBER(ff_r); DECLARE_DRIVER_INIT(coinmstr); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -899,25 +900,24 @@ static GFXDECODE_START( coinmstr ) GFXDECODE_END -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(coinmstr_state::get_bg_tile_info) { - coinmstr_state *state = machine.driver_data(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int tile = videoram[tile_index + 0x0240]; int color = tile_index; - tile |= (state->m_attr_ram1[tile_index + 0x0240] & 0x80) << 1; - tile |= (state->m_attr_ram2[tile_index + 0x0240] & 0x80) << 2; + tile |= (m_attr_ram1[tile_index + 0x0240] & 0x80) << 1; + tile |= (m_attr_ram2[tile_index + 0x0240] & 0x80) << 2; - tile |= (state->m_attr_ram3[tile_index + 0x0240] & 0x03) << (6+4); + tile |= (m_attr_ram3[tile_index + 0x0240] & 0x03) << (6+4); - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); } static VIDEO_START( coinmstr ) { coinmstr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 46, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(coinmstr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 46, 32); } static SCREEN_UPDATE_IND16( coinmstr ) diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c index ad4f8502a64..84119efb1cc 100644 --- a/src/mame/drivers/cshooter.c +++ b/src/mame/drivers/cshooter.c @@ -115,19 +115,19 @@ public: DECLARE_WRITE8_MEMBER(seibu_sound_comms_w); DECLARE_DRIVER_INIT(cshootere); DECLARE_DRIVER_INIT(cshooter); + TILE_GET_INFO_MEMBER(get_cstx_tile_info); }; -static TILE_GET_INFO( get_cstx_tile_info ) +TILE_GET_INFO_MEMBER(cshooter_state::get_cstx_tile_info) { - cshooter_state *state = machine.driver_data(); - int code = (state->m_txram[tile_index*2]); - int attr = (state->m_txram[tile_index*2+1]); + int code = (m_txram[tile_index*2]); + int attr = (m_txram[tile_index*2+1]); int rg; rg=0; if (attr & 0x20) rg = 1; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( rg, (code & 0x1ff), @@ -144,7 +144,7 @@ WRITE8_MEMBER(cshooter_state::cshooter_txram_w) static VIDEO_START(cshooter) { cshooter_state *state = machine.driver_data(); - state->m_txtilemap = tilemap_create(machine, get_cstx_tile_info,TILEMAP_SCAN_ROWS, 8,8,32, 32); + state->m_txtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cshooter_state::get_cstx_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32, 32); state->m_txtilemap->set_transparent_pen(3); } diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c index 26ec83b31dc..ba0be422d77 100644 --- a/src/mame/drivers/cultures.c +++ b/src/mame/drivers/cultures.c @@ -50,39 +50,39 @@ public: DECLARE_WRITE8_MEMBER(bg0_videoram_w); DECLARE_WRITE8_MEMBER(misc_w); DECLARE_WRITE8_MEMBER(bg_bank_w); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_bg0_tile_info); }; -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(cultures_state::get_bg1_tile_info) { - cultures_state *state = machine.driver_data(); - UINT8 *region = state->memregion("gfx3")->base() + 0x200000 + 0x80000 * state->m_bg1_bank; + UINT8 *region = memregion("gfx3")->base() + 0x200000 + 0x80000 * m_bg1_bank; int code = region[tile_index * 2] + (region[tile_index * 2 + 1] << 8); - SET_TILE_INFO(2, code, code >> 12, 0); + SET_TILE_INFO_MEMBER(2, code, code >> 12, 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(cultures_state::get_bg2_tile_info) { - cultures_state *state = machine.driver_data(); - UINT8 *region = state->memregion("gfx2")->base() + 0x200000 + 0x80000 * state->m_bg2_bank; + UINT8 *region = memregion("gfx2")->base() + 0x200000 + 0x80000 * m_bg2_bank; int code = region[tile_index * 2] + (region[tile_index * 2 + 1] << 8); - SET_TILE_INFO(1, code, code >> 12, 0); + SET_TILE_INFO_MEMBER(1, code, code >> 12, 0); } -static TILE_GET_INFO( get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(cultures_state::get_bg0_tile_info) { - cultures_state *state = machine.driver_data(); - int code = state->m_bg0_videoram[tile_index * 2] + (state->m_bg0_videoram[tile_index * 2 + 1] << 8); - SET_TILE_INFO(0, code, code >> 12, 0); + int code = m_bg0_videoram[tile_index * 2] + (m_bg0_videoram[tile_index * 2 + 1] << 8); + SET_TILE_INFO_MEMBER(0, code, code >> 12, 0); } static VIDEO_START( cultures ) { cultures_state *state = machine.driver_data(); - state->m_bg0_tilemap = tilemap_create(machine, get_bg0_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 64, 128); - state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 512, 512); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 512, 512); + state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 128); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 512, 512); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 512, 512); state->m_bg1_tilemap->set_transparent_pen(0); state->m_bg0_tilemap->set_transparent_pen(0); diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c index 315f1456436..ecd13e861d5 100644 --- a/src/mame/drivers/cybertnk.c +++ b/src/mame/drivers/cybertnk.c @@ -215,6 +215,9 @@ public: DECLARE_WRITE8_MEMBER(cybertnk_irq_ack_w); DECLARE_WRITE8_MEMBER(cybertnk_cnt_w); DECLARE_DRIVER_INIT(cybertnk); + TILE_GET_INFO_MEMBER(get_tilemap0_tile_info); + TILE_GET_INFO_MEMBER(get_tilemap1_tile_info); + TILE_GET_INFO_MEMBER(get_tilemap2_tile_info); }; /* tile format @@ -228,42 +231,39 @@ public: */ -static TILE_GET_INFO( get_tilemap0_tile_info ) +TILE_GET_INFO_MEMBER(cybertnk_state::get_tilemap0_tile_info) { - cybertnk_state *state = machine.driver_data(); - int code = state->m_tilemap0_vram[tile_index]; + int code = m_tilemap0_vram[tile_index]; int pal = (code & 0xe000) >> 13; pal |=(code & 0x1c00) >> 7; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code & 0x1fff, pal, 0); } -static TILE_GET_INFO( get_tilemap1_tile_info ) +TILE_GET_INFO_MEMBER(cybertnk_state::get_tilemap1_tile_info) { - cybertnk_state *state = machine.driver_data(); - int code = state->m_tilemap1_vram[tile_index]; + int code = m_tilemap1_vram[tile_index]; int pal = (code & 0xe000) >> 13; pal |=(code & 0x1c00) >> 7; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code & 0x1fff, pal, 0); } -static TILE_GET_INFO( get_tilemap2_tile_info ) +TILE_GET_INFO_MEMBER(cybertnk_state::get_tilemap2_tile_info) { - cybertnk_state *state = machine.driver_data(); - int code = state->m_tilemap2_vram[tile_index]; + int code = m_tilemap2_vram[tile_index]; int pal = (code & 0xe000) >> 13; pal |=(code & 0x1c00) >> 7; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code & 0x1fff, pal, @@ -273,13 +273,13 @@ static TILE_GET_INFO( get_tilemap2_tile_info ) static VIDEO_START( cybertnk ) { cybertnk_state *state = machine.driver_data(); - state->m_tilemap0_tilemap = tilemap_create(machine, get_tilemap0_tile_info,TILEMAP_SCAN_ROWS,8,8,128,32); + state->m_tilemap0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32); state->m_tilemap0_tilemap->set_transparent_pen(0); - state->m_tilemap1_tilemap = tilemap_create(machine, get_tilemap1_tile_info,TILEMAP_SCAN_ROWS,8,8,128,32); + state->m_tilemap1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32); state->m_tilemap1_tilemap->set_transparent_pen(0); - state->m_tilemap2_tilemap = tilemap_create(machine, get_tilemap2_tile_info,TILEMAP_SCAN_ROWS,8,8,128,32); + state->m_tilemap2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32); state->m_tilemap2_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c index 688ba83277d..c55b95687db 100644 --- a/src/mame/drivers/d9final.c +++ b/src/mame/drivers/d9final.c @@ -42,17 +42,17 @@ public: DECLARE_WRITE8_MEMBER(sc0_cram); DECLARE_WRITE8_MEMBER(d9final_bank_w); DECLARE_READ8_MEMBER(prot_latch_r); + TILE_GET_INFO_MEMBER(get_sc0_tile_info); }; -static TILE_GET_INFO( get_sc0_tile_info ) +TILE_GET_INFO_MEMBER(d9final_state::get_sc0_tile_info) { - d9final_state *state = machine.driver_data(); - int tile = ((state->m_hi_vram[tile_index] & 0x3f)<<8) | state->m_lo_vram[tile_index]; - int color = state->m_cram[tile_index] & 0x3f; + int tile = ((m_hi_vram[tile_index] & 0x3f)<<8) | m_lo_vram[tile_index]; + int color = m_cram[tile_index] & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -62,7 +62,7 @@ static TILE_GET_INFO( get_sc0_tile_info ) static VIDEO_START(d9final) { d9final_state *state = machine.driver_data(); - state->m_sc0_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(d9final_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); } static SCREEN_UPDATE_IND16(d9final) diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c index 121c37cc083..f1bac9c71e0 100644 --- a/src/mame/drivers/dacholer.c +++ b/src/mame/drivers/dacholer.c @@ -83,25 +83,25 @@ public: DECLARE_WRITE8_MEMBER(snd_irq_w); DECLARE_WRITE8_MEMBER(music_irq_w); DECLARE_CUSTOM_INPUT_MEMBER(snd_ack_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(dacholer_state::get_bg_tile_info) { - dacholer_state *state = machine.driver_data(); - SET_TILE_INFO(1, state->m_bgvideoram[tile_index] + state->m_bg_bank * 0x100, 0, 0); + SET_TILE_INFO_MEMBER(1, m_bgvideoram[tile_index] + m_bg_bank * 0x100, 0, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(dacholer_state::get_fg_tile_info) { - dacholer_state *state = machine.driver_data(); - SET_TILE_INFO(0, state->m_fgvideoram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(0, m_fgvideoram[tile_index], 0, 0); } static VIDEO_START( dacholer ) { dacholer_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dacholer_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dacholer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c index 12daa7e8a30..2a169deb5e7 100644 --- a/src/mame/drivers/ddayjlc.c +++ b/src/mame/drivers/ddayjlc.c @@ -100,6 +100,7 @@ public: DECLARE_WRITE8_MEMBER(i8257_LMSR_w); DECLARE_CUSTOM_INPUT_MEMBER(prot_r); DECLARE_DRIVER_INIT(ddayjlc); + TILE_GET_INFO_MEMBER(get_tile_info_bg); }; @@ -369,20 +370,19 @@ static GFXDECODE_START( ddayjlc ) GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0x100, 16 ) GFXDECODE_END -static TILE_GET_INFO( get_tile_info_bg ) +TILE_GET_INFO_MEMBER(ddayjlc_state::get_tile_info_bg) { - ddayjlc_state *state = machine.driver_data(); - int code = state->m_bgram[tile_index] + ((state->m_bgram[tile_index + 0x400] & 0x08) << 5); - int color = (state->m_bgram[tile_index + 0x400] & 0x7); - color |= (state->m_bgram[tile_index + 0x400] & 0x40) >> 3; + int code = m_bgram[tile_index] + ((m_bgram[tile_index + 0x400] & 0x08) << 5); + int color = (m_bgram[tile_index + 0x400] & 0x7); + color |= (m_bgram[tile_index + 0x400] & 0x40) >> 3; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } static VIDEO_START( ddayjlc ) { ddayjlc_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info_bg, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( ddayjlc ) diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c index 8108b08ef36..4c85adb83c7 100644 --- a/src/mame/drivers/ddealer.c +++ b/src/mame/drivers/ddealer.c @@ -152,6 +152,7 @@ public: DECLARE_WRITE16_MEMBER(ddealer_mcu_shared_w); DECLARE_READ16_MEMBER(ddealer_mcu_r); DECLARE_DRIVER_INIT(ddealer); + TILE_GET_INFO_MEMBER(get_back_tile_info); }; @@ -161,11 +162,10 @@ WRITE16_MEMBER(ddealer_state::ddealer_flipscreen_w) m_flipscreen = data & 0x01; } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(ddealer_state::get_back_tile_info) { - ddealer_state *state = machine.driver_data(); - int code = state->m_back_vram[tile_index]; - SET_TILE_INFO( + int code = m_back_vram[tile_index]; + SET_TILE_INFO_MEMBER( 0, code & 0xfff, code >> 12, @@ -176,7 +176,7 @@ static VIDEO_START( ddealer ) { ddealer_state *state = machine.driver_data(); state->m_flipscreen = 0; - state->m_back_tilemap = tilemap_create(machine, get_back_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); + state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddealer_state::get_back_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); } static void ddealer_draw_video_layer( running_machine &machine, UINT16* vreg_base, UINT16* top, UINT16* bottom, bitmap_ind16 &bitmap, const rectangle &cliprect, int flipy) diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c index d225285e777..2d449441f7d 100644 --- a/src/mame/drivers/dmndrby.c +++ b/src/mame/drivers/dmndrby.c @@ -77,6 +77,7 @@ public: DECLARE_WRITE8_MEMBER(dderby_sound_w); DECLARE_READ8_MEMBER(input_r); DECLARE_WRITE8_MEMBER(output_w); + TILE_GET_INFO_MEMBER(get_dmndrby_tile_info); }; @@ -317,17 +318,16 @@ static GFXDECODE_START( dmndrby ) GFXDECODE_ENTRY( "gfx3", 0, tiles16x16_layout, 16*16, 32 ) GFXDECODE_END -static TILE_GET_INFO( get_dmndrby_tile_info ) +TILE_GET_INFO_MEMBER(dmndrby_state::get_dmndrby_tile_info) { - dmndrby_state *state = machine.driver_data(); - int code = state->m_racetrack_tilemap_rom[tile_index]; - int attr = state->m_racetrack_tilemap_rom[tile_index+0x2000]; + int code = m_racetrack_tilemap_rom[tile_index]; + int attr = m_racetrack_tilemap_rom[tile_index+0x2000]; int col = attr&0x1f; int flipx = (attr&0x40)>>6; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code, col, @@ -339,7 +339,7 @@ static VIDEO_START(dderby) { dmndrby_state *state = machine.driver_data(); state->m_racetrack_tilemap_rom = state->memregion("user1")->base(); - state->m_racetrack_tilemap = tilemap_create(machine,get_dmndrby_tile_info,TILEMAP_SCAN_ROWS,16,16, 16, 512); + state->m_racetrack_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dmndrby_state::get_dmndrby_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 16, 512); state->m_racetrack_tilemap->mark_all_dirty(); } diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c index 7b3b9c974d6..35945bbdd08 100644 --- a/src/mame/drivers/dreamwld.c +++ b/src/mame/drivers/dreamwld.c @@ -158,6 +158,8 @@ public: DECLARE_WRITE32_MEMBER(dreamwld_6295_0_bank_w); DECLARE_WRITE32_MEMBER(dreamwld_6295_1_bank_w); DECLARE_WRITE32_MEMBER(dreamwld_palette_w); + TILE_GET_INFO_MEMBER(get_dreamwld_bg_tile_info); + TILE_GET_INFO_MEMBER(get_dreamwld_bg2_tile_info); }; @@ -234,14 +236,13 @@ WRITE32_MEMBER(dreamwld_state::dreamwld_bg_videoram_w) m_bg_tilemap->mark_tile_dirty(offset * 2 + 1); } -static TILE_GET_INFO( get_dreamwld_bg_tile_info ) +TILE_GET_INFO_MEMBER(dreamwld_state::get_dreamwld_bg_tile_info) { - dreamwld_state *state = machine.driver_data(); int tileno, colour; - tileno = (tile_index & 1) ? (state->m_bg_videoram[tile_index >> 1] & 0xffff) : ((state->m_bg_videoram[tile_index >> 1] >> 16) & 0xffff); + tileno = (tile_index & 1) ? (m_bg_videoram[tile_index >> 1] & 0xffff) : ((m_bg_videoram[tile_index >> 1] >> 16) & 0xffff); colour = tileno >> 13; tileno &= 0x1fff; - SET_TILE_INFO(1, tileno + state->m_tilebank[0] * 0x2000, 0x80 + colour, 0); + SET_TILE_INFO_MEMBER(1, tileno + m_tilebank[0] * 0x2000, 0x80 + colour, 0); } @@ -252,22 +253,21 @@ WRITE32_MEMBER(dreamwld_state::dreamwld_bg2_videoram_w) m_bg2_tilemap->mark_tile_dirty(offset * 2 + 1); } -static TILE_GET_INFO( get_dreamwld_bg2_tile_info ) +TILE_GET_INFO_MEMBER(dreamwld_state::get_dreamwld_bg2_tile_info) { - dreamwld_state *state = machine.driver_data(); UINT16 tileno, colour; - tileno = (tile_index & 1) ? (state->m_bg2_videoram[tile_index >> 1] & 0xffff) : ((state->m_bg2_videoram[tile_index >> 1] >> 16) & 0xffff); + tileno = (tile_index & 1) ? (m_bg2_videoram[tile_index >> 1] & 0xffff) : ((m_bg2_videoram[tile_index >> 1] >> 16) & 0xffff); colour = tileno >> 13; tileno &= 0x1fff; - SET_TILE_INFO(1, tileno + state->m_tilebank[1] * 0x2000, 0xc0 + colour, 0); + SET_TILE_INFO_MEMBER(1, tileno + m_tilebank[1] * 0x2000, 0xc0 + colour, 0); } static VIDEO_START( dreamwld ) { dreamwld_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_dreamwld_bg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 64,32); - state->m_bg2_tilemap = tilemap_create(machine, get_dreamwld_bg2_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dreamwld_state::get_dreamwld_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 64,32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dreamwld_state::get_dreamwld_bg2_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 64,32); state->m_bg2_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scroll_rows(256); // line scrolling diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c index ef6baf9fc60..08941c3302d 100644 --- a/src/mame/drivers/drtomy.c +++ b/src/mame/drivers/drtomy.c @@ -35,25 +35,25 @@ public: DECLARE_WRITE16_MEMBER(drtomy_vram_fg_w); DECLARE_WRITE16_MEMBER(drtomy_vram_bg_w); DECLARE_WRITE16_MEMBER(drtomy_okibank_w); + TILE_GET_INFO_MEMBER(get_tile_info_fg); + TILE_GET_INFO_MEMBER(get_tile_info_bg); }; -static TILE_GET_INFO( get_tile_info_fg ) +TILE_GET_INFO_MEMBER(drtomy_state::get_tile_info_fg) { - drtomy_state *state = machine.driver_data(); - int code = state->m_videoram_fg[tile_index] & 0xfff; - int color = (state->m_videoram_fg[tile_index] & 0xf000) >> 12; - SET_TILE_INFO(2, code, color, 0); + int code = m_videoram_fg[tile_index] & 0xfff; + int color = (m_videoram_fg[tile_index] & 0xf000) >> 12; + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( get_tile_info_bg ) +TILE_GET_INFO_MEMBER(drtomy_state::get_tile_info_bg) { - drtomy_state *state = machine.driver_data(); - int code = state->m_videoram_bg[tile_index] & 0xfff; - int color = (state->m_videoram_bg[tile_index] & 0xf000) >> 12; - SET_TILE_INFO(1, code, color, 0); + int code = m_videoram_bg[tile_index] & 0xfff; + int color = (m_videoram_bg[tile_index] & 0xf000) >> 12; + SET_TILE_INFO_MEMBER(1, code, color, 0); } @@ -123,8 +123,8 @@ static VIDEO_START( drtomy ) { drtomy_state *state = machine.driver_data(); - state->m_tilemap_bg = tilemap_create(machine, get_tile_info_bg, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_tilemap_fg = tilemap_create(machine, get_tile_info_fg, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_bg),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_fg),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tilemap_fg->set_transparent_pen(0); } diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c index 241fe77a665..3d58de44998 100644 --- a/src/mame/drivers/drw80pkr.c +++ b/src/mame/drivers/drw80pkr.c @@ -66,6 +66,7 @@ public: DECLARE_READ8_MEMBER(bus_r); DECLARE_READ8_MEMBER(drw80pkr_io_r); DECLARE_DRIVER_INIT(drw80pkr); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -323,19 +324,18 @@ READ8_MEMBER(drw80pkr_state::drw80pkr_io_r) * Video/Character functions * ****************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(drw80pkr_state::get_bg_tile_info) { - drw80pkr_state *state = machine.driver_data(); - int color = state->m_color_ram[tile_index]; - int code = state->m_video_ram[tile_index]; + int color = m_color_ram[tile_index]; + int code = m_video_ram[tile_index]; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } static VIDEO_START( drw80pkr ) { drw80pkr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 24, 27); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 24, 27); } static SCREEN_UPDATE_IND16( drw80pkr ) diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c index f0c46f96830..ea698f113aa 100644 --- a/src/mame/drivers/dunhuang.c +++ b/src/mame/drivers/dunhuang.c @@ -117,6 +117,8 @@ public: DECLARE_WRITE8_MEMBER(dunhuang_rombank_w); DECLARE_WRITE8_MEMBER(dunhuang_82_w); DECLARE_READ8_MEMBER(dunhuang_dsw_r); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info2); }; @@ -125,26 +127,24 @@ public: ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(dunhuang_state::get_tile_info) { - dunhuang_state *state = machine.driver_data(); - UINT16 code = state->m_videoram[tile_index]; - UINT8 color = state->m_colorram[tile_index] & 0x0f; - SET_TILE_INFO(0, code, color, 0); + UINT16 code = m_videoram[tile_index]; + UINT8 color = m_colorram[tile_index] & 0x0f; + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(dunhuang_state::get_tile_info2) { - dunhuang_state *state = machine.driver_data(); - UINT16 code = state->m_videoram2[tile_index]; - UINT8 color = state->m_colorram2[tile_index] & 0x0f; - SET_TILE_INFO(1, code, color, 0); + UINT16 code = m_videoram2[tile_index]; + UINT8 color = m_colorram2[tile_index] & 0x0f; + SET_TILE_INFO_MEMBER(1, code, color, 0); } static VIDEO_START(dunhuang) { dunhuang_state *state = machine.driver_data(); - state->m_tmap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20); - state->m_tmap2 = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8); + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20); + state->m_tmap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8); state->m_tmap->set_transparent_pen(0); state->m_tmap2->set_transparent_pen(0); diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c index 0521020544b..2908eb33204 100644 --- a/src/mame/drivers/dynadice.c +++ b/src/mame/drivers/dynadice.c @@ -60,6 +60,7 @@ public: DECLARE_WRITE8_MEMBER(sound_data_w); DECLARE_WRITE8_MEMBER(sound_control_w); DECLARE_DRIVER_INIT(dynadice); + TILE_GET_INFO_MEMBER(get_tile_info); }; @@ -192,11 +193,10 @@ static GFXDECODE_START( dynadice ) GFXDECODE_ENTRY( "gfx2", 0, charlayout2, 0, 1 ) /* 3bpp */ GFXDECODE_END -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(dynadice_state::get_tile_info) { - dynadice_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index]; - SET_TILE_INFO(1, code, 0, 0); + int code = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER(1, code, 0, 0); } static VIDEO_START( dynadice ) @@ -204,8 +204,8 @@ static VIDEO_START( dynadice ) dynadice_state *state = machine.driver_data(); /* pacman - style videoram layout */ - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_top_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 2, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_top_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 2, 32); state->m_bg_tilemap->set_scrollx(0, -16); } diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c index 5c27bf3e374..197f6f515dc 100644 --- a/src/mame/drivers/egghunt.c +++ b/src/mame/drivers/egghunt.c @@ -75,6 +75,7 @@ public: DECLARE_WRITE8_MEMBER(egghunt_soundlatch_w); DECLARE_READ8_MEMBER(egghunt_okibanking_r); DECLARE_WRITE8_MEMBER(egghunt_okibanking_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -117,23 +118,22 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,const r } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(egghunt_state::get_bg_tile_info) { - egghunt_state *state = machine.driver_data(); - int code = ((state->m_bgram[tile_index * 2 + 1] << 8) | state->m_bgram[tile_index * 2]) & 0x3fff; - int colour = state->m_atram[tile_index] & 0x3f; + int code = ((m_bgram[tile_index * 2 + 1] << 8) | m_bgram[tile_index * 2]) & 0x3fff; + int colour = m_atram[tile_index] & 0x3f; if(code & 0x2000) { - if((state->m_gfx_banking & 3) == 2) + if((m_gfx_banking & 3) == 2) code += 0x2000; - else if((state->m_gfx_banking & 3) == 3) + else if((m_gfx_banking & 3) == 3) code += 0x4000; -// else if((state->m_gfx_banking & 3) == 1) +// else if((m_gfx_banking & 3) == 1) // code += 0; } - SET_TILE_INFO(0, code, colour, 0); + SET_TILE_INFO_MEMBER(0, code, colour, 0); } READ8_MEMBER(egghunt_state::egghunt_bgram_r) @@ -172,7 +172,7 @@ static VIDEO_START(egghunt) { egghunt_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(egghunt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->save_item(NAME(state->m_bgram)); state->save_item(NAME(state->m_spram)); diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c index 8fd82aa167f..ab40aba9ebb 100644 --- a/src/mame/drivers/ettrivia.c +++ b/src/mame/drivers/ettrivia.c @@ -56,6 +56,8 @@ public: DECLARE_WRITE8_MEMBER(b000_w); DECLARE_READ8_MEMBER(b000_r); DECLARE_WRITE8_MEMBER(b800_w); + TILE_GET_INFO_MEMBER(get_tile_info_bg); + TILE_GET_INFO_MEMBER(get_tile_info_fg); }; @@ -201,16 +203,14 @@ INLINE void get_tile_info(running_machine &machine, tile_data &tileinfo, int til SET_TILE_INFO(gfx_code,code,color,0); } -static TILE_GET_INFO( get_tile_info_bg ) +TILE_GET_INFO_MEMBER(ettrivia_state::get_tile_info_bg) { - ettrivia_state *state = machine.driver_data(); - get_tile_info(machine, tileinfo, tile_index, state->m_bg_videoram, 0); + get_tile_info(machine(), tileinfo, tile_index, m_bg_videoram, 0); } -static TILE_GET_INFO( get_tile_info_fg ) +TILE_GET_INFO_MEMBER(ettrivia_state::get_tile_info_fg) { - ettrivia_state *state = machine.driver_data(); - get_tile_info(machine, tileinfo, tile_index, state->m_fg_videoram, 1); + get_tile_info(machine(), tileinfo, tile_index, m_fg_videoram, 1); } static PALETTE_INIT( ettrivia ) @@ -253,8 +253,8 @@ static PALETTE_INIT( ettrivia ) static VIDEO_START( ettrivia ) { ettrivia_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create( machine, get_tile_info_bg,TILEMAP_SCAN_ROWS,8,8,64,32 ); - state->m_fg_tilemap = tilemap_create( machine, get_tile_info_fg,TILEMAP_SCAN_ROWS,8,8,64,32 ); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,8,8,64,32 ); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8,8,64,32 ); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c index 662624c0ee5..4a19975bf27 100644 --- a/src/mame/drivers/firefox.c +++ b/src/mame/drivers/firefox.c @@ -95,6 +95,7 @@ public: DECLARE_READ8_MEMBER(riot_porta_r); DECLARE_WRITE8_MEMBER(riot_porta_w); DECLARE_WRITE_LINE_MEMBER(riot_irq); + TILE_GET_INFO_MEMBER(bgtile_get_info); }; @@ -190,10 +191,9 @@ WRITE8_MEMBER(firefox_state::firefox_disc_data_w) * *************************************/ -static TILE_GET_INFO( bgtile_get_info ) +TILE_GET_INFO_MEMBER(firefox_state::bgtile_get_info) { - firefox_state *state = machine.driver_data(); - SET_TILE_INFO(0, state->m_tileram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(0, m_tileram[tile_index], 0, 0); } @@ -207,7 +207,7 @@ WRITE8_MEMBER(firefox_state::tileram_w) static VIDEO_START( firefox ) { firefox_state *state = machine.driver_data(); - state->m_bgtiles = tilemap_create(machine, bgtile_get_info, TILEMAP_SCAN_ROWS, 8,8, 64,64); + state->m_bgtiles = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firefox_state::bgtile_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); state->m_bgtiles->set_transparent_pen(0); state->m_bgtiles->set_scrolldy(machine.primary_screen->visible_area().min_y, 0); } diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c index 6310c7751c3..7f03908d88f 100644 --- a/src/mame/drivers/flyball.c +++ b/src/mame/drivers/flyball.c @@ -54,6 +54,8 @@ public: DECLARE_WRITE8_MEMBER(flyball_pitcher_vert_w); DECLARE_WRITE8_MEMBER(flyball_pitcher_horz_w); DECLARE_WRITE8_MEMBER(flyball_misc_w); + TILEMAP_MAPPER_MEMBER(flyball_get_memory_offset); + TILE_GET_INFO_MEMBER(flyball_get_tile_info); }; @@ -63,7 +65,7 @@ public: * *************************************/ -static TILEMAP_MAPPER( flyball_get_memory_offset ) +TILEMAP_MAPPER_MEMBER(flyball_state::flyball_get_memory_offset) { if (col == 0) col = num_cols; @@ -72,10 +74,9 @@ static TILEMAP_MAPPER( flyball_get_memory_offset ) } -static TILE_GET_INFO( flyball_get_tile_info ) +TILE_GET_INFO_MEMBER(flyball_state::flyball_get_tile_info) { - flyball_state *state = machine.driver_data(); - UINT8 data = state->m_playfield_ram[tile_index]; + UINT8 data = m_playfield_ram[tile_index]; int flags = ((data & 0x40) ? TILE_FLIPX : 0) | ((data & 0x80) ? TILE_FLIPY : 0); int code = data & 63; @@ -84,14 +85,14 @@ static TILE_GET_INFO( flyball_get_tile_info ) code += 64; } - SET_TILE_INFO(0, code, 0, flags); + SET_TILE_INFO_MEMBER(0, code, 0, flags); } static VIDEO_START( flyball ) { flyball_state *state = machine.driver_data(); - state->m_tmap = tilemap_create(machine, flyball_get_tile_info, flyball_get_memory_offset, 8, 16, 32, 16); + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flyball_state::flyball_get_tile_info),state), tilemap_mapper_delegate(FUNC(flyball_state::flyball_get_memory_offset),state), 8, 16, 32, 16); } diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c index ead3bd891ff..e829674bd6c 100644 --- a/src/mame/drivers/galaxi.c +++ b/src/mame/drivers/galaxi.c @@ -86,6 +86,11 @@ public: DECLARE_WRITE16_MEMBER(galaxi_500004_w); DECLARE_CUSTOM_INPUT_MEMBER(ticket_r); DECLARE_CUSTOM_INPUT_MEMBER(hopper_r); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_bg3_tile_info); + TILE_GET_INFO_MEMBER(get_bg4_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -93,39 +98,34 @@ public: Video Hardware ***************************************************************************/ -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(galaxi_state::get_bg1_tile_info) { - galaxi_state *state = machine.driver_data(); - UINT16 code = state->m_bg1_ram[tile_index]; - SET_TILE_INFO(0, code, 0x10 + (code >> 12), 0); + UINT16 code = m_bg1_ram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, 0x10 + (code >> 12), 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(galaxi_state::get_bg2_tile_info) { - galaxi_state *state = machine.driver_data(); - UINT16 code = state->m_bg2_ram[tile_index]; - SET_TILE_INFO(0, code, 0x10 + (code >> 12), 0); + UINT16 code = m_bg2_ram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, 0x10 + (code >> 12), 0); } -static TILE_GET_INFO( get_bg3_tile_info ) +TILE_GET_INFO_MEMBER(galaxi_state::get_bg3_tile_info) { - galaxi_state *state = machine.driver_data(); - UINT16 code = state->m_bg3_ram[tile_index]; - SET_TILE_INFO(0, code, (code >> 12), 0); + UINT16 code = m_bg3_ram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, (code >> 12), 0); } -static TILE_GET_INFO( get_bg4_tile_info ) +TILE_GET_INFO_MEMBER(galaxi_state::get_bg4_tile_info) { - galaxi_state *state = machine.driver_data(); - UINT16 code = state->m_bg4_ram[tile_index]; - SET_TILE_INFO(0, code, (code >> 12), 0); + UINT16 code = m_bg4_ram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, (code >> 12), 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(galaxi_state::get_fg_tile_info) { - galaxi_state *state = machine.driver_data(); - UINT16 code = state->m_fg_ram[tile_index]; - SET_TILE_INFO(1, code, 0x20 + (code >> 12), 0); + UINT16 code = m_fg_ram[tile_index]; + SET_TILE_INFO_MEMBER(1, code, 0x20 + (code >> 12), 0); } WRITE16_MEMBER(galaxi_state::galaxi_bg1_w) @@ -162,12 +162,12 @@ static VIDEO_START(galaxi) { galaxi_state *state = machine.driver_data(); - state->m_bg1_tmap = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); - state->m_bg2_tmap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); - state->m_bg3_tmap = tilemap_create(machine, get_bg3_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); - state->m_bg4_tmap = tilemap_create(machine, get_bg4_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); + state->m_bg1_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); + state->m_bg2_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); + state->m_bg3_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); + state->m_bg4_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg4_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); - state->m_fg_tmap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20); + state->m_fg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20); state->m_bg1_tmap->set_transparent_pen(0); state->m_bg2_tmap->set_transparent_pen(0); diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c index 2d14c4f61a7..beb5a872700 100644 --- a/src/mame/drivers/goldnpkr.c +++ b/src/mame/drivers/goldnpkr.c @@ -997,6 +997,8 @@ public: DECLARE_DRIVER_INIT(vkdlswwc); DECLARE_DRIVER_INIT(vkdlswwr); DECLARE_DRIVER_INIT(vkdlswwv); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(wcrdxtnd_get_bg_tile_info); }; @@ -1017,9 +1019,8 @@ WRITE8_MEMBER(goldnpkr_state::goldnpkr_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(goldnpkr_state::get_bg_tile_info) { - goldnpkr_state *state = machine.driver_data(); /* - bits - 7654 3210 --xx xx-- tiles color. @@ -1028,17 +1029,16 @@ static TILE_GET_INFO( get_bg_tile_info ) xx-- ---- unused. */ - int attr = state->m_colorram[tile_index]; - int code = ((attr & 1) << 8) | state->m_videoram[tile_index]; + int attr = m_colorram[tile_index]; + int code = ((attr & 1) << 8) | m_videoram[tile_index]; int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */ - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } -static TILE_GET_INFO( wcrdxtnd_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(goldnpkr_state::wcrdxtnd_get_bg_tile_info) { - goldnpkr_state *state = machine.driver_data(); /* 16 graphics banks system for VK extended (up & down) PCB's - bits - @@ -1047,24 +1047,24 @@ static TILE_GET_INFO( wcrdxtnd_get_bg_tile_info ) xx-- --xx tiles bank. */ - int attr = state->m_colorram[tile_index]; - int code = ((attr & 1) << 8) | state->m_videoram[tile_index]; + int attr = m_colorram[tile_index]; + int code = ((attr & 1) << 8) | m_videoram[tile_index]; int bank = (attr & 0x03) + ((attr & 0xc0) >> 4); /* bits 0, 1, 6 & 7 switch the gfx banks */ int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */ - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } static VIDEO_START( goldnpkr ) { goldnpkr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static VIDEO_START( wcrdxtnd ) { goldnpkr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, wcrdxtnd_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( goldnpkr ) diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c index 8e6c8644293..2970ebc53a0 100644 --- a/src/mame/drivers/good.c +++ b/src/mame/drivers/good.c @@ -54,6 +54,8 @@ public: tilemap_t *m_fg_tilemap; DECLARE_WRITE16_MEMBER(fg_tilemapram_w); DECLARE_WRITE16_MEMBER(bg_tilemapram_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -63,12 +65,11 @@ WRITE16_MEMBER(good_state::fg_tilemapram_w) m_fg_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(good_state::get_fg_tile_info) { - good_state *state = machine.driver_data(); - int tileno = state->m_fg_tilemapram[tile_index * 2]; - int attr = state->m_fg_tilemapram[tile_index * 2 + 1] & 0xf; - SET_TILE_INFO(0, tileno, attr, 0); + int tileno = m_fg_tilemapram[tile_index * 2]; + int attr = m_fg_tilemapram[tile_index * 2 + 1] & 0xf; + SET_TILE_INFO_MEMBER(0, tileno, attr, 0); } WRITE16_MEMBER(good_state::bg_tilemapram_w) @@ -77,12 +78,11 @@ WRITE16_MEMBER(good_state::bg_tilemapram_w) m_bg_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(good_state::get_bg_tile_info) { - good_state *state = machine.driver_data(); - int tileno = state->m_bg_tilemapram[tile_index * 2]; - int attr = state->m_bg_tilemapram[tile_index * 2 + 1] & 0xf; - SET_TILE_INFO(1, tileno, attr, 0); + int tileno = m_bg_tilemapram[tile_index * 2]; + int attr = m_bg_tilemapram[tile_index * 2 + 1] & 0xf; + SET_TILE_INFO_MEMBER(1, tileno, attr, 0); } @@ -90,8 +90,8 @@ static TILE_GET_INFO( get_bg_tile_info ) static VIDEO_START( good ) { good_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(good_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(good_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(0xf); } diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c index 8ffeef27920..67149d585e6 100644 --- a/src/mame/drivers/gstream.c +++ b/src/mame/drivers/gstream.c @@ -177,6 +177,9 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(gstream_mirror_service_r); DECLARE_CUSTOM_INPUT_MEMBER(gstream_mirror_r); DECLARE_DRIVER_INIT(gstream); + TILE_GET_INFO_MEMBER(get_gs1_tile_info); + TILE_GET_INFO_MEMBER(get_gs2_tile_info); + TILE_GET_INFO_MEMBER(get_gs3_tile_info); }; @@ -441,38 +444,35 @@ GFXDECODE_END -static TILE_GET_INFO( get_gs1_tile_info ) +TILE_GET_INFO_MEMBER(gstream_state::get_gs1_tile_info) { - gstream_state *state = machine.driver_data(); - int tileno = (state->m_vram[tile_index + 0x000 / 4] & 0x0fff0000) >> 16; - int palette = (state->m_vram[tile_index + 0x000 / 4] & 0xc0000000) >> 30; - SET_TILE_INFO(0, tileno, palette + 0x10, 0); + int tileno = (m_vram[tile_index + 0x000 / 4] & 0x0fff0000) >> 16; + int palette = (m_vram[tile_index + 0x000 / 4] & 0xc0000000) >> 30; + SET_TILE_INFO_MEMBER(0, tileno, palette + 0x10, 0); } -static TILE_GET_INFO( get_gs2_tile_info ) +TILE_GET_INFO_MEMBER(gstream_state::get_gs2_tile_info) { - gstream_state *state = machine.driver_data(); - int tileno = (state->m_vram[tile_index + 0x400 / 4] & 0x0fff0000) >> 16; - int palette = (state->m_vram[tile_index + 0x400 / 4] & 0xc0000000) >> 30; - SET_TILE_INFO(0, tileno + 0x1000, palette + 0x14, 0); + int tileno = (m_vram[tile_index + 0x400 / 4] & 0x0fff0000) >> 16; + int palette = (m_vram[tile_index + 0x400 / 4] & 0xc0000000) >> 30; + SET_TILE_INFO_MEMBER(0, tileno + 0x1000, palette + 0x14, 0); } -static TILE_GET_INFO( get_gs3_tile_info ) +TILE_GET_INFO_MEMBER(gstream_state::get_gs3_tile_info) { - gstream_state *state = machine.driver_data(); - int tileno = (state->m_vram[tile_index + 0x800 / 4] & 0x0fff0000) >> 16; - int palette = (state->m_vram[tile_index + 0x800 / 4] & 0xc0000000) >> 30; - SET_TILE_INFO(0, tileno + 0x2000, palette + 0x18, 0); + int tileno = (m_vram[tile_index + 0x800 / 4] & 0x0fff0000) >> 16; + int palette = (m_vram[tile_index + 0x800 / 4] & 0xc0000000) >> 30; + SET_TILE_INFO_MEMBER(0, tileno + 0x2000, palette + 0x18, 0); } static VIDEO_START(gstream) { gstream_state *state = machine.driver_data(); - state->m_tilemap1 = tilemap_create(machine, get_gs1_tile_info, TILEMAP_SCAN_ROWS, 32, 32, 16, 16); - state->m_tilemap2 = tilemap_create(machine, get_gs2_tile_info, TILEMAP_SCAN_ROWS, 32, 32, 16, 16); - state->m_tilemap3 = tilemap_create(machine, get_gs3_tile_info, TILEMAP_SCAN_ROWS, 32, 32, 16, 16); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs1_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs2_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16); + state->m_tilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs3_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16); state->m_tilemap1->set_transparent_pen(0); state->m_tilemap2->set_transparent_pen(0); diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c index 09b9338bf89..efbcdabe8a5 100644 --- a/src/mame/drivers/hvyunit.c +++ b/src/mame/drivers/hvyunit.c @@ -122,6 +122,7 @@ public: DECLARE_WRITE8_MEMBER(mermaid_p2_w); DECLARE_READ8_MEMBER(mermaid_p3_r); DECLARE_WRITE8_MEMBER(mermaid_p3_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -160,21 +161,20 @@ static MACHINE_RESET( hvyunit ) * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(hvyunit_state::get_bg_tile_info) { - hvyunit_state *state = machine.driver_data(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x0f) << 8); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x0f) << 8); int color = (attr >> 4); - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } static VIDEO_START( hvyunit ) { hvyunit_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); } static SCREEN_UPDATE_IND16( hvyunit ) diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index 0dcb32e8a0e..34f754322ca 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -77,6 +77,15 @@ public: void show_out(); DECLARE_CUSTOM_INPUT_MEMBER(hopper_r); DECLARE_DRIVER_INIT(jingbell); + TILE_GET_INFO_MEMBER(get_jingbell_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_gp98_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_jingbell_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_gp98_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_jingbell_reel3_tile_info); + TILE_GET_INFO_MEMBER(get_gp98_reel3_tile_info); + TILE_GET_INFO_MEMBER(get_jingbell_reel4_tile_info); + TILE_GET_INFO_MEMBER(get_gp98_reel4_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -92,12 +101,11 @@ WRITE8_MEMBER(igs009_state::gp98_reel1_ram_w) m_gp98_reel1_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_jingbell_reel1_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_jingbell_reel1_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_gp98_reel1_ram[tile_index]; + int code = m_gp98_reel1_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code)+(((tile_index+1)&0x3)*0x100), (code & 0x80) ? 0xc : 0, @@ -105,12 +113,11 @@ static TILE_GET_INFO( get_jingbell_reel1_tile_info ) } -static TILE_GET_INFO( get_gp98_reel1_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_gp98_reel1_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_gp98_reel1_ram[tile_index]; + int code = m_gp98_reel1_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code*4)+(tile_index&0x3), 0, @@ -124,24 +131,22 @@ WRITE8_MEMBER(igs009_state::gp98_reel2_ram_w) m_gp98_reel2_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_jingbell_reel2_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_jingbell_reel2_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_gp98_reel2_ram[tile_index]; + int code = m_gp98_reel2_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code)+(((tile_index+1)&0x3)*0x100), (code & 0x80) ? 0xc : 0, 0); } -static TILE_GET_INFO( get_gp98_reel2_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_gp98_reel2_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_gp98_reel2_ram[tile_index]; + int code = m_gp98_reel2_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code*4)+(tile_index&0x3), 0, @@ -156,24 +161,22 @@ WRITE8_MEMBER(igs009_state::gp98_reel3_ram_w) m_gp98_reel3_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_jingbell_reel3_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_jingbell_reel3_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_gp98_reel3_ram[tile_index]; + int code = m_gp98_reel3_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code)+(((tile_index+1)&0x3)*0x100), (code & 0x80) ? 0xc : 0, 0); } -static TILE_GET_INFO( get_gp98_reel3_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_gp98_reel3_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_gp98_reel3_ram[tile_index]; + int code = m_gp98_reel3_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code*4)+(tile_index&0x3), 0, @@ -188,24 +191,22 @@ WRITE8_MEMBER(igs009_state::gp98_reel4_ram_w) m_gp98_reel4_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_jingbell_reel4_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_jingbell_reel4_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_gp98_reel4_ram[tile_index]; + int code = m_gp98_reel4_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code)+(((tile_index+1)&0x3)*0x100), (code & 0x80) ? 0xc : 0, 0); } -static TILE_GET_INFO( get_gp98_reel4_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_gp98_reel4_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_gp98_reel4_ram[tile_index]; + int code = m_gp98_reel4_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code*4)+(tile_index&0x3), 0, @@ -225,11 +226,10 @@ WRITE8_MEMBER(igs009_state::bg_scroll_w) } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(igs009_state::get_fg_tile_info) { - igs009_state *state = machine.driver_data(); - int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8); - SET_TILE_INFO(1, code, (4*(code >> 14)+3), 0); + int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8); + SET_TILE_INFO_MEMBER(1, code, (4*(code >> 14)+3), 0); } WRITE8_MEMBER(igs009_state::fg_tile_w) @@ -247,13 +247,13 @@ WRITE8_MEMBER(igs009_state::fg_color_w) static VIDEO_START(jingbell) { igs009_state *state = machine.driver_data(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20); state->m_fg_tilemap->set_transparent_pen(0); - state->m_gp98_reel1_tilemap = tilemap_create(machine,get_jingbell_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); - state->m_gp98_reel2_tilemap = tilemap_create(machine,get_jingbell_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); - state->m_gp98_reel3_tilemap = tilemap_create(machine,get_jingbell_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); - state->m_gp98_reel4_tilemap = tilemap_create(machine,get_jingbell_reel4_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); + state->m_gp98_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8); + state->m_gp98_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8); + state->m_gp98_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8); + state->m_gp98_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel1_tilemap->set_scroll_cols(128); state->m_gp98_reel2_tilemap->set_scroll_cols(128); @@ -265,13 +265,13 @@ static VIDEO_START(jingbell) static VIDEO_START(gp98) { igs009_state *state = machine.driver_data(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20); state->m_fg_tilemap->set_transparent_pen(0); - state->m_gp98_reel1_tilemap = tilemap_create(machine,get_gp98_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); - state->m_gp98_reel2_tilemap = tilemap_create(machine,get_gp98_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); - state->m_gp98_reel3_tilemap = tilemap_create(machine,get_gp98_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); - state->m_gp98_reel4_tilemap = tilemap_create(machine,get_gp98_reel4_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); + state->m_gp98_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8); + state->m_gp98_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8); + state->m_gp98_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8); + state->m_gp98_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel1_tilemap->set_scroll_cols(128); state->m_gp98_reel2_tilemap->set_scroll_cols(128); diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c index 853b402dbb0..13a77631357 100644 --- a/src/mame/drivers/igs017.c +++ b/src/mame/drivers/igs017.c @@ -148,6 +148,8 @@ public: DECLARE_DRIVER_INIT(tarzana); DECLARE_DRIVER_INIT(lhzb2a); DECLARE_DRIVER_INIT(mgdha); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -178,19 +180,17 @@ static VIDEO_RESET( igs017 ) #define COLOR(_X) (((_X)>>2)&7) -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(igs017_state::get_fg_tile_info) { - igs017_state *state = machine.driver_data(); - int code = state->m_fg_videoram[tile_index*4+0] + (state->m_fg_videoram[tile_index*4+1] << 8); - int attr = state->m_fg_videoram[tile_index*4+2] + (state->m_fg_videoram[tile_index*4+3] << 8); - SET_TILE_INFO(0, code, COLOR(attr), TILE_FLIPXY( attr >> 5 )); + int code = m_fg_videoram[tile_index*4+0] + (m_fg_videoram[tile_index*4+1] << 8); + int attr = m_fg_videoram[tile_index*4+2] + (m_fg_videoram[tile_index*4+3] << 8); + SET_TILE_INFO_MEMBER(0, code, COLOR(attr), TILE_FLIPXY( attr >> 5 )); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(igs017_state::get_bg_tile_info) { - igs017_state *state = machine.driver_data(); - int code = state->m_bg_videoram[tile_index*4+0] + (state->m_bg_videoram[tile_index*4+1] << 8); - int attr = state->m_bg_videoram[tile_index*4+2] + (state->m_bg_videoram[tile_index*4+3] << 8); - SET_TILE_INFO(0, code, COLOR(attr)+8, TILE_FLIPXY( attr >> 5 )); + int code = m_bg_videoram[tile_index*4+0] + (m_bg_videoram[tile_index*4+1] << 8); + int attr = m_bg_videoram[tile_index*4+2] + (m_bg_videoram[tile_index*4+3] << 8); + SET_TILE_INFO_MEMBER(0, code, COLOR(attr)+8, TILE_FLIPXY( attr >> 5 )); } WRITE8_MEMBER(igs017_state::fg_w) @@ -264,8 +264,8 @@ static void expand_sprites(running_machine &machine) static VIDEO_START( igs017 ) { igs017_state *state = machine.driver_data(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs017_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs017_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_fg_tilemap->set_transparent_pen(0xf); state->m_bg_tilemap->set_transparent_pen(0xf); diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c index 8f9639c85a4..4aac900e9be 100644 --- a/src/mame/drivers/igs_m027.c +++ b/src/mame/drivers/igs_m027.c @@ -55,6 +55,8 @@ public: DECLARE_DRIVER_INIT(hauntedh); DECLARE_DRIVER_INIT(bigd2); DECLARE_DRIVER_INIT(klxyj); + TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info); }; @@ -125,15 +127,14 @@ WRITE32_MEMBER(igs_m027_state::igs_tx_videoram_w) //logerror( "TX VIDEO RAM OFFSET %x ,data %x!\n",offset ,m_igs_tx_videoram[offset]); } -static TILE_GET_INFO( get_tx_tilemap_tile_info ) +TILE_GET_INFO_MEMBER(igs_m027_state::get_tx_tilemap_tile_info) { - igs_m027_state *state = machine.driver_data(); //ppppppppNNNNNNNN int tileno,colour; - tileno = state->m_igs_tx_videoram[tile_index] & 0xffff; - colour = (state->m_igs_tx_videoram[tile_index]>>0x10) & 0xffff; + tileno = m_igs_tx_videoram[tile_index] & 0xffff; + colour = (m_igs_tx_videoram[tile_index]>>0x10) & 0xffff; - SET_TILE_INFO(0,tileno,colour,0); + SET_TILE_INFO_MEMBER(0,tileno,colour,0); } /* BG Layer */ @@ -145,15 +146,14 @@ WRITE32_MEMBER(igs_m027_state::igs_bg_videoram_w) logerror("BG VIDEO RAM OFFSET %x ,data %x!\n",offset ,m_igs_bg_videoram[offset]); } -static TILE_GET_INFO( get_bg_tilemap_tile_info ) +TILE_GET_INFO_MEMBER(igs_m027_state::get_bg_tilemap_tile_info) { - igs_m027_state *state = machine.driver_data(); //ppppppppNNNNNNNN int tileno,colour; - tileno = state->m_igs_bg_videoram[tile_index] & 0xffff; - colour = (state->m_igs_bg_videoram[tile_index]>>0x10) & 0xffff; + tileno = m_igs_bg_videoram[tile_index] & 0xffff; + colour = (m_igs_bg_videoram[tile_index]>>0x10) & 0xffff; - SET_TILE_INFO(0,tileno,colour,0); + SET_TILE_INFO_MEMBER(0,tileno,colour,0); } @@ -173,10 +173,10 @@ WRITE32_MEMBER(igs_m027_state::igs_palette32_w) static VIDEO_START(igs_majhong) { igs_m027_state *state = machine.driver_data(); - state->m_igs_tx_tilemap= tilemap_create(machine, get_tx_tilemap_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_igs_tx_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_tx_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_igs_tx_tilemap->set_transparent_pen(15); - state->m_igs_bg_tilemap= tilemap_create(machine, get_bg_tilemap_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); - //state->m_igs_bg_tilemap= tilemap_create(machine, get_bg_tilemap_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_igs_bg_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); + //state->m_igs_bg_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); //state->m_igs_bg_tilemap->set_transparent_pen(15); logerror("Video START OK!\n"); } diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c index 30541163ede..2074543bfca 100644 --- a/src/mame/drivers/igspoker.c +++ b/src/mame/drivers/igspoker.c @@ -114,6 +114,8 @@ public: DECLARE_DRIVER_INIT(cpoker); DECLARE_DRIVER_INIT(igs_ncs2); DECLARE_DRIVER_INIT(cpokerpk); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -154,19 +156,17 @@ WRITE8_MEMBER(igspoker_state::igs_irqack_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(igspoker_state::get_bg_tile_info) { - igspoker_state *state = machine.driver_data(); - int code = state->m_bg_tile_ram[tile_index]; - SET_TILE_INFO(1 + (tile_index & 3), code, 0, 0); + int code = m_bg_tile_ram[tile_index]; + SET_TILE_INFO_MEMBER(1 + (tile_index & 3), code, 0, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(igspoker_state::get_fg_tile_info) { - igspoker_state *state = machine.driver_data(); - int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8); + int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8); int tile = code & 0x1fff; - SET_TILE_INFO(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); + SET_TILE_INFO_MEMBER(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); } WRITE8_MEMBER(igspoker_state::bg_tile_w) @@ -190,8 +190,8 @@ WRITE8_MEMBER(igspoker_state::fg_color_w) static VIDEO_START(igs_video) { igspoker_state *state = machine.driver_data(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_fg_tilemap->set_transparent_pen(0); } @@ -212,7 +212,7 @@ static SCREEN_UPDATE_IND16(igs_video) static VIDEO_START(cpokerpk) { igspoker_state *state = machine.driver_data(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } static SCREEN_UPDATE_IND16(cpokerpk) diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c index 8c914e0f700..584e099eb98 100644 --- a/src/mame/drivers/jackie.c +++ b/src/mame/drivers/jackie.c @@ -104,17 +104,20 @@ public: void show_out(); DECLARE_CUSTOM_INPUT_MEMBER(hopper_r); DECLARE_DRIVER_INIT(jackie); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_jackie_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_jackie_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_jackie_reel3_tile_info); }; -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(jackie_state::get_fg_tile_info) { - jackie_state *state = machine.driver_data(); - int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8); + int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8); int tile = code & 0x1fff; - SET_TILE_INFO(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); + SET_TILE_INFO_MEMBER(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); } WRITE8_MEMBER(jackie_state::fg_tile_w) @@ -144,11 +147,10 @@ WRITE8_MEMBER(jackie_state::jackie_reel1_ram_w) m_reel1_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_jackie_reel1_tile_info ) +TILE_GET_INFO_MEMBER(jackie_state::get_jackie_reel1_tile_info) { - jackie_state *state = machine.driver_data(); - int code = state->m_reel1_ram[tile_index]; - SET_TILE_INFO(1, code, 0, 0); + int code = m_reel1_ram[tile_index]; + SET_TILE_INFO_MEMBER(1, code, 0, 0); } @@ -159,11 +161,10 @@ WRITE8_MEMBER(jackie_state::jackie_reel2_ram_w) m_reel2_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_jackie_reel2_tile_info ) +TILE_GET_INFO_MEMBER(jackie_state::get_jackie_reel2_tile_info) { - jackie_state *state = machine.driver_data(); - int code = state->m_reel2_ram[tile_index]; - SET_TILE_INFO(1, code, 0, 0); + int code = m_reel2_ram[tile_index]; + SET_TILE_INFO_MEMBER(1, code, 0, 0); } @@ -173,25 +174,24 @@ WRITE8_MEMBER(jackie_state::jackie_reel3_ram_w) m_reel3_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_jackie_reel3_tile_info ) +TILE_GET_INFO_MEMBER(jackie_state::get_jackie_reel3_tile_info) { - jackie_state *state = machine.driver_data(); - int code = state->m_reel3_ram[tile_index]; - SET_TILE_INFO(1, code, 0, 0); + int code = m_reel3_ram[tile_index]; + SET_TILE_INFO_MEMBER(1, code, 0, 0); } static VIDEO_START(jackie) { jackie_state *state = machine.driver_data(); - state->m_reel1_tilemap = tilemap_create(machine,get_jackie_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_jackie_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_jackie_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); state->m_reel1_tilemap->set_scroll_cols(64); state->m_reel2_tilemap->set_scroll_cols(64); state->m_reel3_tilemap->set_scroll_cols(64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c index e95256ccea7..5ba936722d1 100644 --- a/src/mame/drivers/jalmah.c +++ b/src/mame/drivers/jalmah.c @@ -191,6 +191,16 @@ public: DECLARE_DRIVER_INIT(kakumei2); DECLARE_DRIVER_INIT(daireika); DECLARE_DRIVER_INIT(mjzoomin); + TILEMAP_MAPPER_MEMBER(range0_16x16); + TILEMAP_MAPPER_MEMBER(range1_16x16); + TILEMAP_MAPPER_MEMBER(range2_16x16); + TILEMAP_MAPPER_MEMBER(range3_16x16); + TILEMAP_MAPPER_MEMBER(range2_8x8); + TILEMAP_MAPPER_MEMBER(range3_8x8); + TILE_GET_INFO_MEMBER(get_sc0_tile_info); + TILE_GET_INFO_MEMBER(get_sc1_tile_info); + TILE_GET_INFO_MEMBER(get_sc2_tile_info); + TILE_GET_INFO_MEMBER(get_sc3_tile_info); }; @@ -201,28 +211,28 @@ Video Hardware start ******************************************************************************************/ /*4096x512 tilemap*/ -static TILEMAP_MAPPER( range0_16x16 ) +TILEMAP_MAPPER_MEMBER(jalmah_state::range0_16x16) { /* logical (col,row) -> memory offset */ return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8); } /*2048x1024 tilemap*/ -static TILEMAP_MAPPER( range1_16x16 ) +TILEMAP_MAPPER_MEMBER(jalmah_state::range1_16x16) { /* logical (col,row) -> memory offset */ return (row & 0x0f) + ((col & 0x7f) << 4) + ((row & 0xf0) << 7); } /*1024x2048 tilemap*/ -static TILEMAP_MAPPER( range2_16x16 ) +TILEMAP_MAPPER_MEMBER(jalmah_state::range2_16x16) { /* logical (col,row) -> memory offset */ return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x1f0) << 6); } /*512x4096 tilemap*/ -static TILEMAP_MAPPER( range3_16x16 ) +TILEMAP_MAPPER_MEMBER(jalmah_state::range3_16x16) { /* logical (col,row) -> memory offset */ return (row & 0x0f) + ((col & 0x1f) << 4) + ((row & 0x3f0) << 5); @@ -230,56 +240,52 @@ static TILEMAP_MAPPER( range3_16x16 ) /*1024x512 tilemap*/ -static TILEMAP_MAPPER( range2_8x8 ) +TILEMAP_MAPPER_MEMBER(jalmah_state::range2_8x8) { /* logical (col,row) -> memory offset */ return (row & 0x1f) + ((col & 0x7f) * 0x20) + ((row & 0x20) * 0x80); } /*512x1024 tilemap*/ -static TILEMAP_MAPPER( range3_8x8 ) +TILEMAP_MAPPER_MEMBER(jalmah_state::range3_8x8) { return (row & 0x1f) + ((col & 0x3f) * 0x20) + ((row & 0x60) * 0x40); } -static TILE_GET_INFO( get_sc0_tile_info ) +TILE_GET_INFO_MEMBER(jalmah_state::get_sc0_tile_info) { - jalmah_state *state = machine.driver_data(); - int code = state->m_sc0_vram[tile_index]; - SET_TILE_INFO( + int code = m_sc0_vram[tile_index]; + SET_TILE_INFO_MEMBER( 3, - (code & 0xfff) + ((state->m_sc0bank & 3) << 12), + (code & 0xfff) + ((m_sc0bank & 3) << 12), code >> 12, 0); } -static TILE_GET_INFO( get_sc1_tile_info ) +TILE_GET_INFO_MEMBER(jalmah_state::get_sc1_tile_info) { - jalmah_state *state = machine.driver_data(); - int code = state->m_sc1_vram[tile_index]; - SET_TILE_INFO( + int code = m_sc1_vram[tile_index]; + SET_TILE_INFO_MEMBER( 2, code & 0xfff, code >> 12, 0); } -static TILE_GET_INFO( get_sc2_tile_info ) +TILE_GET_INFO_MEMBER(jalmah_state::get_sc2_tile_info) { - jalmah_state *state = machine.driver_data(); - int code = state->m_sc2_vram[tile_index]; - SET_TILE_INFO( + int code = m_sc2_vram[tile_index]; + SET_TILE_INFO_MEMBER( 1, code & 0xfff, code >> 12, 0); } -static TILE_GET_INFO( get_sc3_tile_info ) +TILE_GET_INFO_MEMBER(jalmah_state::get_sc3_tile_info) { - jalmah_state *state = machine.driver_data(); - int code = state->m_sc3_vram[tile_index]; - SET_TILE_INFO( + int code = m_sc3_vram[tile_index]; + SET_TILE_INFO_MEMBER( 0, code & 0xfff, code >> 12, @@ -289,25 +295,25 @@ static TILE_GET_INFO( get_sc3_tile_info ) static VIDEO_START( jalmah ) { jalmah_state *state = machine.driver_data(); - state->m_sc0_tilemap_0 = tilemap_create(machine, get_sc0_tile_info,range0_16x16,16,16,256,32); - state->m_sc0_tilemap_1 = tilemap_create(machine, get_sc0_tile_info,range1_16x16,16,16,128,64); - state->m_sc0_tilemap_2 = tilemap_create(machine, get_sc0_tile_info,range2_16x16,16,16,64,128); - state->m_sc0_tilemap_3 = tilemap_create(machine, get_sc0_tile_info,range3_16x16,16,16,32,256); + state->m_sc0_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32); + state->m_sc0_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64); + state->m_sc0_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128); + state->m_sc0_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256); - state->m_sc1_tilemap_0 = tilemap_create(machine, get_sc1_tile_info,range0_16x16,16,16,256,32); - state->m_sc1_tilemap_1 = tilemap_create(machine, get_sc1_tile_info,range1_16x16,16,16,128,64); - state->m_sc1_tilemap_2 = tilemap_create(machine, get_sc1_tile_info,range2_16x16,16,16,64,128); - state->m_sc1_tilemap_3 = tilemap_create(machine, get_sc1_tile_info,range3_16x16,16,16,32,256); + state->m_sc1_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32); + state->m_sc1_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64); + state->m_sc1_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128); + state->m_sc1_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256); - state->m_sc2_tilemap_0 = tilemap_create(machine, get_sc2_tile_info,range0_16x16,16,16,256,32); - state->m_sc2_tilemap_1 = tilemap_create(machine, get_sc2_tile_info,range1_16x16,16,16,128,64); - state->m_sc2_tilemap_2 = tilemap_create(machine, get_sc2_tile_info,range2_16x16,16,16,64,128); - state->m_sc2_tilemap_3 = tilemap_create(machine, get_sc2_tile_info,range3_16x16,16,16,32,256); + state->m_sc2_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32); + state->m_sc2_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64); + state->m_sc2_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128); + state->m_sc2_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256); - state->m_sc3_tilemap_0 = tilemap_create(machine, get_sc3_tile_info,TILEMAP_SCAN_COLS,8,8,256,32); - //state->m_sc3_tilemap_1 = tilemap_create(machine, get_sc3_tile_info,TILEMAP_SCAN_COLS,8,8,256,32); - state->m_sc3_tilemap_2 = tilemap_create(machine, get_sc3_tile_info,range2_8x8,8,8,128,64); - state->m_sc3_tilemap_3 = tilemap_create(machine, get_sc3_tile_info,range3_8x8,8,8,64,128); + state->m_sc3_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),TILEMAP_SCAN_COLS,8,8,256,32); + //state->m_sc3_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),TILEMAP_SCAN_COLS,8,8,256,32); + state->m_sc3_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),state),8,8,128,64); + state->m_sc3_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_8x8),state),8,8,64,128); state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2); state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2); @@ -336,8 +342,8 @@ static VIDEO_START( jalmah ) static VIDEO_START( urashima ) { jalmah_state *state = machine.driver_data(); - state->m_sc0_tilemap_0 = tilemap_create(machine, get_sc0_tile_info,range0_16x16,16,16,256,32); - state->m_sc3_tilemap_0 = tilemap_create(machine, get_sc3_tile_info,range2_8x8,8,8,128,64); + state->m_sc0_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32); + state->m_sc3_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),state),8,8,128,64); state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2); state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2); diff --git a/src/mame/drivers/jclub2.c b/src/mame/drivers/jclub2.c index eb85cef3322..4c43266aee1 100644 --- a/src/mame/drivers/jclub2.c +++ b/src/mame/drivers/jclub2.c @@ -138,6 +138,8 @@ public: DECLARE_WRITE32_MEMBER(darkhors_unk1_w); DECLARE_WRITE32_MEMBER(darkhors_eeprom_w); DECLARE_DRIVER_INIT(darkhors); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); }; @@ -155,20 +157,18 @@ static VIDEO_START( darkhors ); static SCREEN_UPDATE_IND16( darkhors ); -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(darkhors_state::get_tile_info_0) { - darkhors_state *state = machine.driver_data(); - UINT16 tile = state->m_tmapram[tile_index] >> 16; - UINT16 color = state->m_tmapram[tile_index] & 0xffff; - SET_TILE_INFO(0, tile/2, (color & 0x200) ? (color & 0x1ff) : ((color & 0x0ff) * 4) , 0); + UINT16 tile = m_tmapram[tile_index] >> 16; + UINT16 color = m_tmapram[tile_index] & 0xffff; + SET_TILE_INFO_MEMBER(0, tile/2, (color & 0x200) ? (color & 0x1ff) : ((color & 0x0ff) * 4) , 0); } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(darkhors_state::get_tile_info_1) { - darkhors_state *state = machine.driver_data(); - UINT16 tile = state->m_tmapram2[tile_index] >> 16; - UINT16 color = state->m_tmapram2[tile_index] & 0xffff; - SET_TILE_INFO(0, tile/2, (color & 0x200) ? (color & 0x1ff) : ((color & 0x0ff) * 4) , 0); + UINT16 tile = m_tmapram2[tile_index] >> 16; + UINT16 color = m_tmapram2[tile_index] & 0xffff; + SET_TILE_INFO_MEMBER(0, tile/2, (color & 0x200) ? (color & 0x1ff) : ((color & 0x0ff) * 4) , 0); } WRITE32_MEMBER(darkhors_state::darkhors_tmapram_w) @@ -220,12 +220,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r static VIDEO_START( darkhors ) { darkhors_state *state = machine.driver_data(); - state->m_tmap = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, - 16,16, 0x40,0x40 ); - - state->m_tmap2 = tilemap_create( machine, get_tile_info_1, TILEMAP_SCAN_ROWS, - 16,16, 0x40,0x40 ); - + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40); + state->m_tmap2= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40); state->m_tmap->set_transparent_pen(0); state->m_tmap2->set_transparent_pen(0); diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c index e003bcbb812..28cd23f8e31 100644 --- a/src/mame/drivers/jokrwild.c +++ b/src/mame/drivers/jokrwild.c @@ -114,6 +114,7 @@ public: DECLARE_WRITE8_MEMBER(testa_w); DECLARE_WRITE8_MEMBER(testb_w); DECLARE_DRIVER_INIT(jokrwild); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -136,26 +137,25 @@ WRITE8_MEMBER(jokrwild_state::jokrwild_colorram_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(jokrwild_state::get_bg_tile_info) { - jokrwild_state *state = machine.driver_data(); /* - bits - 7654 3210 xx-- ---- bank select. ---- xxxx color code. */ - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] | ((attr & 0xc0) << 2); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] | ((attr & 0xc0) << 2); int color = (attr & 0x0f); - SET_TILE_INFO( 0, code , color , 0); + SET_TILE_INFO_MEMBER( 0, code , color , 0); } static VIDEO_START( jokrwild ) { jokrwild_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 24, 26); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jokrwild_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 24, 26); } diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c index f20c0490833..d240bcbfdde 100644 --- a/src/mame/drivers/jollyjgr.c +++ b/src/mame/drivers/jollyjgr.c @@ -134,6 +134,7 @@ public: DECLARE_WRITE8_MEMBER(jollyjgr_attrram_w); DECLARE_WRITE8_MEMBER(jollyjgr_misc_w); DECLARE_WRITE8_MEMBER(jollyjgr_coin_lookout_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -435,18 +436,17 @@ static PALETTE_INIT( jollyjgr ) } /* Tilemap is the same as in Galaxian */ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(jollyjgr_state::get_bg_tile_info) { - jollyjgr_state *state = machine.driver_data(); - int color = state->m_colorram[((tile_index & 0x1f) << 1) | 1] & 7; - int region = (state->m_tilemap_bank & 0x20) ? 2 : 0; - SET_TILE_INFO(region, state->m_videoram[tile_index], color, 0); + int color = m_colorram[((tile_index & 0x1f) << 1) | 1] & 7; + int region = (m_tilemap_bank & 0x20) ? 2 : 0; + SET_TILE_INFO_MEMBER(region, m_videoram[tile_index], color, 0); } static VIDEO_START( jollyjgr ) { jollyjgr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jollyjgr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scroll_cols(32); diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c index dc87b691675..94916dc2a01 100644 --- a/src/mame/drivers/jubilee.c +++ b/src/mame/drivers/jubilee.c @@ -101,6 +101,7 @@ public: tilemap_t *m_bg_tilemap; DECLARE_WRITE8_MEMBER(jubileep_videoram_w); DECLARE_READ8_MEMBER(unk_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -116,12 +117,11 @@ WRITE8_MEMBER(jubilee_state::jubileep_videoram_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(jubilee_state::get_bg_tile_info) { - jubilee_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index]; + int code = m_videoram[tile_index]; - SET_TILE_INFO( 0, code, 0, 0); + SET_TILE_INFO_MEMBER( 0, code, 0, 0); } @@ -129,7 +129,7 @@ static TILE_GET_INFO( get_bg_tile_info ) static VIDEO_START( jubileep ) { jubilee_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jubilee_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c index 2f64d8da9f0..9bc1b560f68 100644 --- a/src/mame/drivers/kingdrby.c +++ b/src/mame/drivers/kingdrby.c @@ -105,6 +105,8 @@ public: DECLARE_READ8_MEMBER(key_matrix_r); DECLARE_READ8_MEMBER(sound_cmd_r); DECLARE_WRITE8_MEMBER(outportb_w); + TILE_GET_INFO_MEMBER(get_sc0_tile_info); + TILE_GET_INFO_MEMBER(get_sc1_tile_info); }; @@ -129,47 +131,45 @@ xxxx ---- basic color? ---- ---x tile bank */ -static TILE_GET_INFO( get_sc0_tile_info ) +TILE_GET_INFO_MEMBER(kingdrby_state::get_sc0_tile_info) { - kingdrby_state *state = machine.driver_data(); - int tile = state->m_vram[tile_index] | state->m_attr[tile_index]<<8; - int color = (state->m_attr[tile_index] & 0x06)>>1; + int tile = m_vram[tile_index] | m_attr[tile_index]<<8; + int color = (m_attr[tile_index] & 0x06)>>1; tile&=0x1ff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, color|0x40, 0); } -static TILE_GET_INFO( get_sc1_tile_info ) +TILE_GET_INFO_MEMBER(kingdrby_state::get_sc1_tile_info) { - kingdrby_state *state = machine.driver_data(); - int tile = state->m_vram[tile_index] | state->m_attr[tile_index]<<8; - int color = (state->m_attr[tile_index] & 0x06)>>1; + int tile = m_vram[tile_index] | m_attr[tile_index]<<8; + int color = (m_attr[tile_index] & 0x06)>>1; tile&=0x1ff; //original 0xc //0x13 // - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, color|0x40, 0); - tileinfo.category = (state->m_attr[tile_index] & 0x08)>>3; + tileinfo.category = (m_attr[tile_index] & 0x08)>>3; } static VIDEO_START(kingdrby) { kingdrby_state *state = machine.driver_data(); - state->m_sc0_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,32,24); - state->m_sc1_tilemap = tilemap_create(machine, get_sc1_tile_info,TILEMAP_SCAN_ROWS,8,8,32,24); - state->m_sc0w_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,24); + state->m_sc1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,24); + state->m_sc0w_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_sc1_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c index b142ba0e491..6054135a528 100644 --- a/src/mame/drivers/koftball.c +++ b/src/mame/drivers/koftball.c @@ -62,25 +62,25 @@ public: DECLARE_WRITE16_MEMBER(bmc_1_videoram_w); DECLARE_WRITE16_MEMBER(bmc_2_videoram_w); DECLARE_DRIVER_INIT(koftball); + TILE_GET_INFO_MEMBER(get_t1_tile_info); + TILE_GET_INFO_MEMBER(get_t2_tile_info); }; -static TILE_GET_INFO( get_t1_tile_info ) +TILE_GET_INFO_MEMBER(koftball_state::get_t1_tile_info) { - koftball_state *state = machine.driver_data(); - int data = state->m_bmc_1_videoram[tile_index]; - SET_TILE_INFO( + int data = m_bmc_1_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, data, 0, 0); } -static TILE_GET_INFO( get_t2_tile_info ) +TILE_GET_INFO_MEMBER(koftball_state::get_t2_tile_info) { - koftball_state *state = machine.driver_data(); - int data = state->m_bmc_2_videoram[tile_index]; - SET_TILE_INFO( + int data = m_bmc_2_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, data, 0, @@ -90,8 +90,8 @@ static TILE_GET_INFO( get_t2_tile_info ) static VIDEO_START( koftball ) { koftball_state *state = machine.driver_data(); - state->m_tilemap_1 = tilemap_create(machine, get_t1_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_tilemap_2 = tilemap_create(machine, get_t2_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koftball_state::get_t1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koftball_state::get_t2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_tilemap_1->set_transparent_pen(0); } diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c index 608c4b34703..5cea99adcf3 100644 --- a/src/mame/drivers/koikoi.c +++ b/src/mame/drivers/koikoi.c @@ -68,6 +68,7 @@ public: DECLARE_WRITE8_MEMBER(io_w); DECLARE_READ8_MEMBER(input_r); DECLARE_WRITE8_MEMBER(unknown_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; @@ -77,14 +78,13 @@ public: * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(koikoi_state::get_tile_info) { - koikoi_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index] | ((state->m_videoram[tile_index + 0x400] & 0x40) << 2); - int color = (state->m_videoram[tile_index + 0x400] & 0x1f); - int flip = (state->m_videoram[tile_index + 0x400] & 0x80) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0; + int code = m_videoram[tile_index] | ((m_videoram[tile_index + 0x400] & 0x40) << 2); + int color = (m_videoram[tile_index + 0x400] & 0x1f); + int flip = (m_videoram[tile_index + 0x400] & 0x80) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0; - SET_TILE_INFO( 0, code, color, flip); + SET_TILE_INFO_MEMBER( 0, code, color, flip); } static PALETTE_INIT( koikoi ) @@ -136,7 +136,7 @@ static PALETTE_INIT( koikoi ) static VIDEO_START(koikoi) { koikoi_state *state = machine.driver_data(); - state->m_tmap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16(koikoi) diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c index eacd9e68aa3..76dea33da95 100644 --- a/src/mame/drivers/limenko.c +++ b/src/mame/drivers/limenko.c @@ -83,6 +83,9 @@ public: DECLARE_DRIVER_INIT(dynabomb); DECLARE_DRIVER_INIT(legendoh); DECLARE_DRIVER_INIT(spotty); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_md_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -295,28 +298,25 @@ ADDRESS_MAP_END VIDEO HARDWARE EMULATION *****************************************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(limenko_state::get_bg_tile_info) { - limenko_state *state = machine.driver_data(); - int tile = state->m_bg_videoram[tile_index] & 0x7ffff; - int color = (state->m_bg_videoram[tile_index]>>28) & 0xf; - SET_TILE_INFO(0,tile,color,0); + int tile = m_bg_videoram[tile_index] & 0x7ffff; + int color = (m_bg_videoram[tile_index]>>28) & 0xf; + SET_TILE_INFO_MEMBER(0,tile,color,0); } -static TILE_GET_INFO( get_md_tile_info ) +TILE_GET_INFO_MEMBER(limenko_state::get_md_tile_info) { - limenko_state *state = machine.driver_data(); - int tile = state->m_md_videoram[tile_index] & 0x7ffff; - int color = (state->m_md_videoram[tile_index]>>28) & 0xf; - SET_TILE_INFO(0,tile,color,0); + int tile = m_md_videoram[tile_index] & 0x7ffff; + int color = (m_md_videoram[tile_index]>>28) & 0xf; + SET_TILE_INFO_MEMBER(0,tile,color,0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(limenko_state::get_fg_tile_info) { - limenko_state *state = machine.driver_data(); - int tile = state->m_fg_videoram[tile_index] & 0x7ffff; - int color = (state->m_fg_videoram[tile_index]>>28) & 0xf; - SET_TILE_INFO(0,tile,color,0); + int tile = m_fg_videoram[tile_index] & 0x7ffff; + int color = (m_fg_videoram[tile_index]>>28) & 0xf; + SET_TILE_INFO_MEMBER(0,tile,color,0); } static void draw_single_sprite(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx, @@ -503,9 +503,9 @@ static void copy_sprites(running_machine &machine, bitmap_ind16 &bitmap, bitmap_ static VIDEO_START( limenko ) { limenko_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); - state->m_md_tilemap = tilemap_create(machine, get_md_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_md_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); state->m_md_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c index 4be4a95bf14..b2cf2211c8f 100644 --- a/src/mame/drivers/looping.c +++ b/src/mame/drivers/looping.c @@ -138,6 +138,7 @@ public: DECLARE_WRITE8_MEMBER(ay_enable_w); DECLARE_WRITE8_MEMBER(speech_enable_w); DECLARE_DRIVER_INIT(looping); + TILE_GET_INFO_MEMBER(get_tile_info); }; @@ -195,12 +196,11 @@ static PALETTE_INIT( looping ) * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(looping_state::get_tile_info) { - looping_state *state = machine.driver_data(); - int tile_number = state->m_videoram[tile_index]; - int color = state->m_colorram[(tile_index & 0x1f) * 2 + 1] & 0x07; - SET_TILE_INFO(0, tile_number, color, 0); + int tile_number = m_videoram[tile_index]; + int color = m_colorram[(tile_index & 0x1f) * 2 + 1] & 0x07; + SET_TILE_INFO_MEMBER(0, tile_number, color, 0); } @@ -208,7 +208,7 @@ static VIDEO_START( looping ) { looping_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(looping_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); state->m_bg_tilemap->set_scroll_cols(0x20); } diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c index 968477724b1..974282b57ec 100644 --- a/src/mame/drivers/ltcasino.c +++ b/src/mame/drivers/ltcasino.c @@ -32,28 +32,28 @@ public: DECLARE_WRITE8_MEMBER(ltcasino_tile_num_w); DECLARE_WRITE8_MEMBER(ltcasino_tile_atr_w); DECLARE_DRIVER_INIT(mv4in1); + TILE_GET_INFO_MEMBER(get_ltcasino_tile_info); }; /* Video */ -static TILE_GET_INFO( get_ltcasino_tile_info ) +TILE_GET_INFO_MEMBER(ltcasino_state::get_ltcasino_tile_info) { - ltcasino_state *state = machine.driver_data(); int tileno, colour; - tileno = state->m_tile_num_ram[tile_index]; - colour = state->m_tile_atr_ram[tile_index]; + tileno = m_tile_num_ram[tile_index]; + colour = m_tile_atr_ram[tile_index]; tileno += (colour & 0x80) << 1; - SET_TILE_INFO(0,tileno,0,0); + SET_TILE_INFO_MEMBER(0,tileno,0,0); } static VIDEO_START(ltcasino) { ltcasino_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create(machine, get_ltcasino_tile_info,TILEMAP_SCAN_ROWS,8, 8,64,32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ltcasino_state::get_ltcasino_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,64,32); } diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c index 74e7123b31f..5fd50ab8706 100644 --- a/src/mame/drivers/luckgrln.c +++ b/src/mame/drivers/luckgrln.c @@ -145,6 +145,10 @@ public: DECLARE_WRITE8_MEMBER(counters_w); DECLARE_READ8_MEMBER(test_r); DECLARE_DRIVER_INIT(luckgrln); + TILE_GET_INFO_MEMBER(get_luckgrln_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_luckgrln_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_luckgrln_reel3_tile_info); + TILE_GET_INFO_MEMBER(get_luckgrln_reel4_tile_info); }; @@ -162,17 +166,16 @@ WRITE8_MEMBER(luckgrln_state::luckgrln_reel1_attr_w) -static TILE_GET_INFO( get_luckgrln_reel1_tile_info ) +TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel1_tile_info) { - luckgrln_state *state = machine.driver_data(); - int code = state->m_reel1_ram[tile_index]; - int attr = state->m_reel1_attr[tile_index]; + int code = m_reel1_ram[tile_index]; + int attr = m_reel1_attr[tile_index]; int col = (attr & 0x1f); code |= (attr & 0xe0)<<3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, col, @@ -193,17 +196,16 @@ WRITE8_MEMBER(luckgrln_state::luckgrln_reel2_attr_w) } -static TILE_GET_INFO( get_luckgrln_reel2_tile_info ) +TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel2_tile_info) { - luckgrln_state *state = machine.driver_data(); - int code = state->m_reel2_ram[tile_index]; - int attr = state->m_reel2_attr[tile_index]; + int code = m_reel2_ram[tile_index]; + int attr = m_reel2_attr[tile_index]; int col = (attr & 0x1f); code |= (attr & 0xe0)<<3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, col, @@ -223,16 +225,15 @@ WRITE8_MEMBER(luckgrln_state::luckgrln_reel3_attr_w) } -static TILE_GET_INFO( get_luckgrln_reel3_tile_info ) +TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel3_tile_info) { - luckgrln_state *state = machine.driver_data(); - int code = state->m_reel3_ram[tile_index]; - int attr = state->m_reel3_attr[tile_index]; + int code = m_reel3_ram[tile_index]; + int attr = m_reel3_attr[tile_index]; int col = (attr & 0x1f); code |= (attr & 0xe0)<<3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, col, @@ -252,16 +253,15 @@ WRITE8_MEMBER(luckgrln_state::luckgrln_reel4_attr_w) } -static TILE_GET_INFO( get_luckgrln_reel4_tile_info ) +TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel4_tile_info) { - luckgrln_state *state = machine.driver_data(); - int code = state->m_reel4_ram[tile_index]; - int attr = state->m_reel4_attr[tile_index]; + int code = m_reel4_ram[tile_index]; + int attr = m_reel4_attr[tile_index]; int col = (attr & 0x1f); code |= (attr & 0xe0)<<3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, col, @@ -271,10 +271,10 @@ static TILE_GET_INFO( get_luckgrln_reel4_tile_info ) static VIDEO_START(luckgrln) { luckgrln_state *state = machine.driver_data(); - state->m_reel1_tilemap = tilemap_create(machine,get_luckgrln_reel1_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_luckgrln_reel2_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_luckgrln_reel3_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel4_tilemap = tilemap_create(machine,get_luckgrln_reel4_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel4_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel1_tilemap->set_scroll_cols(64); state->m_reel2_tilemap->set_scroll_cols(64); diff --git a/src/mame/drivers/m14.c b/src/mame/drivers/m14.c index c73ef9362e8..ce3e2a673d5 100644 --- a/src/mame/drivers/m14.c +++ b/src/mame/drivers/m14.c @@ -80,6 +80,7 @@ public: DECLARE_WRITE8_MEMBER(hopper_w); DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); + TILE_GET_INFO_MEMBER(m14_get_tile_info); }; @@ -107,16 +108,15 @@ static PALETTE_INIT( m14 ) } } -static TILE_GET_INFO( m14_get_tile_info ) +TILE_GET_INFO_MEMBER(m14_state::m14_get_tile_info) { - m14_state *state = machine.driver_data(); - int code = state->m_video_ram[tile_index]; - int color = state->m_color_ram[tile_index] & 0x0f; + int code = m_video_ram[tile_index]; + int color = m_color_ram[tile_index] & 0x0f; /* colorram & 0xf0 used but unknown purpose*/ - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -127,7 +127,7 @@ static VIDEO_START( m14 ) { m14_state *state = machine.driver_data(); - state->m_m14_tilemap = tilemap_create(machine, m14_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_m14_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( m14 ) diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c index d29d32da498..eec9a07c44b 100644 --- a/src/mame/drivers/m63.c +++ b/src/mame/drivers/m63.c @@ -177,6 +177,8 @@ public: DECLARE_WRITE8_MEMBER(nmi_mask_w); DECLARE_DRIVER_INIT(wilytowr); DECLARE_DRIVER_INIT(fghtbskt); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -284,32 +286,30 @@ WRITE8_MEMBER(m63_state::fghtbskt_flipscreen_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(m63_state::get_bg_tile_info) { - m63_state *state = machine.driver_data(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] | ((attr & 0x30) << 4); - int color = (attr & 0x0f) + (state->m_pal_bank << 4); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] | ((attr & 0x30) << 4); + int color = (attr & 0x0f) + (m_pal_bank << 4); - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(m63_state::get_fg_tile_info) { - m63_state *state = machine.driver_data(); - int code = state->m_videoram2[tile_index]; + int code = m_videoram2[tile_index]; - SET_TILE_INFO(0, code, 0, state->m_fg_flag); + SET_TILE_INFO_MEMBER(0, code, 0, m_fg_flag); } static VIDEO_START( m63 ) { m63_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m63_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m63_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c index 9c5272beb9f..f7b677a2cd4 100644 --- a/src/mame/drivers/magic10.c +++ b/src/mame/drivers/magic10.c @@ -117,6 +117,9 @@ public: DECLARE_DRIVER_INIT(magic102); DECLARE_DRIVER_INIT(magic10); DECLARE_DRIVER_INIT(hotslot); + TILE_GET_INFO_MEMBER(get_layer0_tile_info); + TILE_GET_INFO_MEMBER(get_layer1_tile_info); + TILE_GET_INFO_MEMBER(get_layer2_tile_info); }; @@ -149,38 +152,35 @@ WRITE16_MEMBER(magic10_state::paletteram_w) } -static TILE_GET_INFO( get_layer0_tile_info ) +TILE_GET_INFO_MEMBER(magic10_state::get_layer0_tile_info) { - magic10_state *state = machine.driver_data(); - SET_TILE_INFO + SET_TILE_INFO_MEMBER ( 1, - state->m_layer0_videoram[tile_index * 2], - state->m_layer0_videoram[tile_index * 2 + 1] & 0x0f, - TILE_FLIPYX((state->m_layer0_videoram[tile_index * 2 + 1] & 0xc0) >> 6) + m_layer0_videoram[tile_index * 2], + m_layer0_videoram[tile_index * 2 + 1] & 0x0f, + TILE_FLIPYX((m_layer0_videoram[tile_index * 2 + 1] & 0xc0) >> 6) ); } -static TILE_GET_INFO( get_layer1_tile_info ) +TILE_GET_INFO_MEMBER(magic10_state::get_layer1_tile_info) { - magic10_state *state = machine.driver_data(); - SET_TILE_INFO + SET_TILE_INFO_MEMBER ( 1, - state->m_layer1_videoram[tile_index * 2], - state->m_layer1_videoram[tile_index * 2 + 1] & 0x0f, - TILE_FLIPYX((state->m_layer1_videoram[tile_index * 2 + 1] & 0xc0) >> 6) + m_layer1_videoram[tile_index * 2], + m_layer1_videoram[tile_index * 2 + 1] & 0x0f, + TILE_FLIPYX((m_layer1_videoram[tile_index * 2 + 1] & 0xc0) >> 6) ); } -static TILE_GET_INFO( get_layer2_tile_info ) +TILE_GET_INFO_MEMBER(magic10_state::get_layer2_tile_info) { - magic10_state *state = machine.driver_data(); - SET_TILE_INFO + SET_TILE_INFO_MEMBER ( 0, - state->m_layer2_videoram[tile_index * 2], - state->m_layer2_videoram[tile_index * 2 + 1] & 0x0f, + m_layer2_videoram[tile_index * 2], + m_layer2_videoram[tile_index * 2 + 1] & 0x0f, 0 ); } @@ -189,9 +189,9 @@ static TILE_GET_INFO( get_layer2_tile_info ) static VIDEO_START( magic10 ) { magic10_state *state = machine.driver_data(); - state->m_layer0_tilemap = tilemap_create(machine, get_layer0_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_layer1_tilemap = tilemap_create(machine, get_layer1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_layer2_tilemap = tilemap_create(machine, get_layer2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_layer0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer0_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_layer1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_layer2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_layer1_tilemap->set_transparent_pen(0); state->m_layer2_tilemap->set_transparent_pen(0); diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c index 7f109acd9c9..57590576cec 100644 --- a/src/mame/drivers/magicfly.c +++ b/src/mame/drivers/magicfly.c @@ -433,6 +433,8 @@ public: DECLARE_WRITE8_MEMBER(magicfly_colorram_w); DECLARE_READ8_MEMBER(mux_port_r); DECLARE_WRITE8_MEMBER(mux_port_w); + TILE_GET_INFO_MEMBER(get_magicfly_tile_info); + TILE_GET_INFO_MEMBER(get_7mezzo_tile_info); }; @@ -453,9 +455,8 @@ WRITE8_MEMBER(magicfly_state::magicfly_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_magicfly_tile_info ) +TILE_GET_INFO_MEMBER(magicfly_state::get_magicfly_tile_info) { - magicfly_state *state = machine.driver_data(); /* - bits - 7654 3210 ---- -xxx Tiles color. @@ -465,29 +466,28 @@ static TILE_GET_INFO( get_magicfly_tile_info ) x--- ---- Mirrored from bit 3. The code check this one to boot the game. */ - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index]; + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index]; int bank = (attr & 0x10) >> 4; /* bit 4 switch the gfx banks */ int color = attr & 0x07; /* bits 0-2 for color */ /* Seems that bit 7 is mirrored from bit 3 to have a normal boot */ /* Boot only check the first color RAM offset */ - state->m_colorram[0] = state->m_colorram[0] | ((state->m_colorram[0] & 0x08) << 4); /* only for 1st offset */ - //state->m_colorram[tile_index] = attr | ((attr & 0x08) << 4); /* for the whole color RAM */ + m_colorram[0] = m_colorram[0] | ((m_colorram[0] & 0x08) << 4); /* only for 1st offset */ + //m_colorram[tile_index] = attr | ((attr & 0x08) << 4); /* for the whole color RAM */ - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } static VIDEO_START(magicfly) { magicfly_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_magicfly_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 29); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_magicfly_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 29); } -static TILE_GET_INFO( get_7mezzo_tile_info ) +TILE_GET_INFO_MEMBER(magicfly_state::get_7mezzo_tile_info) { - magicfly_state *state = machine.driver_data(); /* - bits - 7654 3210 ---- -xxx Tiles color. @@ -497,24 +497,24 @@ static TILE_GET_INFO( get_7mezzo_tile_info ) x--- ---- Mirrored from bit 2. The code check this one to boot the game. */ - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index]; + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index]; int bank = (attr & 0x10) >> 4; /* bit 4 switch the gfx banks */ int color = attr & 0x07; /* bits 0-2 for color */ /* Seems that bit 7 is mirrored from bit 2 to have a normal boot */ /* Boot only check the first color RAM offset */ - state->m_colorram[0] = state->m_colorram[0] | ((state->m_colorram[0] & 0x04) << 5); /* only for 1st offset */ - //state->m_colorram[tile_index] = attr | ((attr & 0x04) << 5); /* for the whole color RAM */ + m_colorram[0] = m_colorram[0] | ((m_colorram[0] & 0x04) << 5); /* only for 1st offset */ + //m_colorram[tile_index] = attr | ((attr & 0x04) << 5); /* for the whole color RAM */ - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } static VIDEO_START( 7mezzo ) { magicfly_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_7mezzo_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 29); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 29); } static SCREEN_UPDATE_IND16( magicfly ) diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c index 9b931ce0c91..4b7353f75e9 100644 --- a/src/mame/drivers/majorpkr.c +++ b/src/mame/drivers/majorpkr.c @@ -488,6 +488,8 @@ public: DECLARE_WRITE8_MEMBER(lamps_b_w); DECLARE_WRITE8_MEMBER(pulses_w); DECLARE_DRIVER_INIT(majorpkr); + TILE_GET_INFO_MEMBER(bg_get_tile_info); + TILE_GET_INFO_MEMBER(fg_get_tile_info); }; @@ -495,26 +497,24 @@ public: * Video Hardware * *************************/ -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(majorpkr_state::bg_get_tile_info) { - majorpkr_state *state = machine.driver_data(); - int code = state->m_videoram[0x800 + 2 * tile_index] + (state->m_videoram[0x800 + 2 * tile_index + 1] << 8); + int code = m_videoram[0x800 + 2 * tile_index] + (m_videoram[0x800 + 2 * tile_index + 1] << 8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code & 0x1fff), code >> 13, 0); } -static TILE_GET_INFO( fg_get_tile_info ) +TILE_GET_INFO_MEMBER(majorpkr_state::fg_get_tile_info) { - majorpkr_state *state = machine.driver_data(); - int code = state->m_videoram[2 * tile_index] + (state->m_videoram[2 * tile_index + 1] << 8); + int code = m_videoram[2 * tile_index] + (m_videoram[2 * tile_index + 1] << 8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, (code & 0x07ff), code >> 13, @@ -526,8 +526,8 @@ static VIDEO_START(majorpkr) { majorpkr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 36, 28); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 36, 28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(majorpkr_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 36, 28); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(majorpkr_state::fg_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 36, 28); state->m_fg_tilemap->set_transparent_pen(0); state->m_generic_paletteram_8.allocate(4 * 0x800); diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c index d8778eb6f29..71d9c92c6eb 100644 --- a/src/mame/drivers/marinedt.c +++ b/src/mame/drivers/marinedt.c @@ -147,6 +147,7 @@ public: DECLARE_WRITE8_MEMBER(marinedt_sound_w); DECLARE_WRITE8_MEMBER(marinedt_pd_w); DECLARE_WRITE8_MEMBER(marinedt_pf_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; @@ -477,20 +478,19 @@ bit0 = 0; } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(marinedt_state::get_tile_info) { - marinedt_state *state = machine.driver_data(); - int code = state->m_tx_tileram[tile_index]; + int code = m_tx_tileram[tile_index]; int color = 0; int flags = TILE_FLIPX; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } static VIDEO_START( marinedt ) { marinedt_state *state = machine.driver_data(); - state->m_tx_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(marinedt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tx_tilemap->set_transparent_pen(0); state->m_tx_tilemap->set_scrolldx(0, 4*8); diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c index 41246650601..5b2cbec7296 100644 --- a/src/mame/drivers/mayumi.c +++ b/src/mame/drivers/mayumi.c @@ -41,6 +41,7 @@ public: DECLARE_WRITE8_MEMBER(input_sel_w); DECLARE_READ8_MEMBER(key_matrix_1p_r); DECLARE_READ8_MEMBER(key_matrix_2p_r); + TILE_GET_INFO_MEMBER(get_tile_info); }; @@ -50,19 +51,18 @@ public: * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(mayumi_state::get_tile_info) { - mayumi_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index] + (state->m_videoram[tile_index + 0x800] & 0x1f) * 0x100; - int col = (state->m_videoram[tile_index + 0x1000] >> 3) & 0x1f; + int code = m_videoram[tile_index] + (m_videoram[tile_index + 0x800] & 0x1f) * 0x100; + int col = (m_videoram[tile_index + 0x1000] >> 3) & 0x1f; - SET_TILE_INFO(0, code, col, 0); + SET_TILE_INFO_MEMBER(0, code, col, 0); } static VIDEO_START( mayumi ) { mayumi_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mayumi_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } WRITE8_MEMBER(mayumi_state::mayumi_videoram_w) diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c index 229980100dd..68fd26019b8 100644 --- a/src/mame/drivers/mgolf.c +++ b/src/mame/drivers/mgolf.c @@ -33,15 +33,15 @@ public: DECLARE_READ8_MEMBER(mgolf_dial_r); DECLARE_READ8_MEMBER(mgolf_misc_r); DECLARE_WRITE8_MEMBER(mgolf_wram_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(mgolf_state::get_tile_info) { - mgolf_state *state = machine.driver_data(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; - SET_TILE_INFO(0, code, code >> 7, 0); + SET_TILE_INFO_MEMBER(0, code, code >> 7, 0); } @@ -55,7 +55,7 @@ WRITE8_MEMBER(mgolf_state::mgolf_vram_w) static VIDEO_START( mgolf ) { mgolf_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mgolf_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c index 1ce60dbd6f3..dd5c5f8b58c 100644 --- a/src/mame/drivers/midas.c +++ b/src/mame/drivers/midas.c @@ -76,6 +76,7 @@ public: DECLARE_WRITE16_MEMBER(hammer_led_w); DECLARE_WRITE16_MEMBER(midas_eeprom_w); DECLARE_DRIVER_INIT(livequiz); + TILE_GET_INFO_MEMBER(get_tile_info); }; @@ -83,11 +84,10 @@ static VIDEO_START( midas ); static SCREEN_UPDATE_IND16( midas ); -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(midas_state::get_tile_info) { - midas_state *state = machine.driver_data(); - UINT16 code = state->m_gfxram[ tile_index + 0x7000 ]; - SET_TILE_INFO(1, code & 0xfff, (code >> 12) & 0xf, TILE_FLIPXY( 0 )); + UINT16 code = m_gfxram[ tile_index + 0x7000 ]; + SET_TILE_INFO_MEMBER(1, code & 0xfff, (code >> 12) & 0xf, TILE_FLIPXY( 0 )); } static VIDEO_START( midas ) @@ -95,8 +95,7 @@ static VIDEO_START( midas ) midas_state *state = machine.driver_data(); state->m_gfxram = auto_alloc_array(machine, UINT16, 0x20000/2); - state->m_tmap = tilemap_create( machine, get_tile_info, TILEMAP_SCAN_COLS, - 8,8, 0x80,0x20 ); + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(midas_state::get_tile_info),state), TILEMAP_SCAN_COLS,8,8,0x80,0x20); state->m_tmap->set_transparent_pen(0); } diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c index 666b813651c..2441c8be4ae 100644 --- a/src/mame/drivers/mil4000.c +++ b/src/mame/drivers/mil4000.c @@ -117,59 +117,59 @@ public: DECLARE_WRITE16_MEMBER(sc2_vram_w); DECLARE_WRITE16_MEMBER(sc3_vram_w); DECLARE_WRITE16_MEMBER(output_w); + TILE_GET_INFO_MEMBER(get_sc0_tile_info); + TILE_GET_INFO_MEMBER(get_sc1_tile_info); + TILE_GET_INFO_MEMBER(get_sc2_tile_info); + TILE_GET_INFO_MEMBER(get_sc3_tile_info); }; -static TILE_GET_INFO( get_sc0_tile_info ) +TILE_GET_INFO_MEMBER(mil4000_state::get_sc0_tile_info) { - mil4000_state *state = machine.driver_data(); - UINT32 data = (state->m_sc0_vram[tile_index*2]<<16) | state->m_sc0_vram[tile_index*2+1]; + UINT32 data = (m_sc0_vram[tile_index*2]<<16) | m_sc0_vram[tile_index*2+1]; int tile = data >> 14; - int color = (state->m_sc0_vram[tile_index*2+1] & 0x1f)+0; + int color = (m_sc0_vram[tile_index*2+1] & 0x1f)+0; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, 0); } -static TILE_GET_INFO( get_sc1_tile_info ) +TILE_GET_INFO_MEMBER(mil4000_state::get_sc1_tile_info) { - mil4000_state *state = machine.driver_data(); - UINT32 data = (state->m_sc1_vram[tile_index*2]<<16) | state->m_sc1_vram[tile_index*2+1]; + UINT32 data = (m_sc1_vram[tile_index*2]<<16) | m_sc1_vram[tile_index*2+1]; int tile = data >> 14; - int color = (state->m_sc1_vram[tile_index*2+1] & 0x1f)+0x10; + int color = (m_sc1_vram[tile_index*2+1] & 0x1f)+0x10; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, 0); } -static TILE_GET_INFO( get_sc2_tile_info ) +TILE_GET_INFO_MEMBER(mil4000_state::get_sc2_tile_info) { - mil4000_state *state = machine.driver_data(); - UINT32 data = (state->m_sc2_vram[tile_index*2]<<16) | state->m_sc2_vram[tile_index*2+1]; + UINT32 data = (m_sc2_vram[tile_index*2]<<16) | m_sc2_vram[tile_index*2+1]; int tile = data >> 14; - int color = (state->m_sc2_vram[tile_index*2+1] & 0x1f)+0x20; + int color = (m_sc2_vram[tile_index*2+1] & 0x1f)+0x20; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, 0); } -static TILE_GET_INFO( get_sc3_tile_info ) +TILE_GET_INFO_MEMBER(mil4000_state::get_sc3_tile_info) { - mil4000_state *state = machine.driver_data(); - UINT32 data = (state->m_sc3_vram[tile_index*2]<<16) | state->m_sc3_vram[tile_index*2+1]; + UINT32 data = (m_sc3_vram[tile_index*2]<<16) | m_sc3_vram[tile_index*2+1]; int tile = data >> 14; - int color = (state->m_sc3_vram[tile_index*2+1] & 0x1f)+0x30; + int color = (m_sc3_vram[tile_index*2+1] & 0x1f)+0x30; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -179,10 +179,10 @@ static TILE_GET_INFO( get_sc3_tile_info ) static VIDEO_START(mil4000) { mil4000_state *state = machine.driver_data(); - state->m_sc0_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_sc1_tilemap = tilemap_create(machine, get_sc1_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_sc2_tilemap = tilemap_create(machine, get_sc2_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_sc3_tilemap = tilemap_create(machine, get_sc3_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_sc1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_sc2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_sc3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc3_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); state->m_sc1_tilemap->set_transparent_pen(0); state->m_sc2_tilemap->set_transparent_pen(0); diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c index 7df8667e72f..b3d3ae76d4c 100644 --- a/src/mame/drivers/miniboy7.c +++ b/src/mame/drivers/miniboy7.c @@ -165,6 +165,7 @@ public: tilemap_t *m_bg_tilemap; DECLARE_WRITE8_MEMBER(miniboy7_videoram_w); DECLARE_WRITE8_MEMBER(miniboy7_colorram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -184,30 +185,29 @@ WRITE8_MEMBER(miniboy7_state::miniboy7_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(miniboy7_state::get_bg_tile_info) { - miniboy7_state *state = machine.driver_data(); /* - bits - 7654 3210 --xx xx-- tiles color?. ---- --x- tiles bank. xx-- ---x seems unused. */ - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index]; + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index]; int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ int color = (attr & 0x3c); /* bits 2-3-4-5 for color? */ if (bank == 1) /* temporary hack to point to the 3rd gfx bank */ bank = 2; - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } static VIDEO_START( miniboy7 ) { miniboy7_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 37, 37); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(miniboy7_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 37, 37); } static SCREEN_UPDATE_IND16( miniboy7 ) diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c index f0941f6b38e..17e59e7a020 100644 --- a/src/mame/drivers/mogura.c +++ b/src/mame/drivers/mogura.c @@ -27,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(mogura_tileram_w); DECLARE_WRITE8_MEMBER(mogura_dac_w); DECLARE_WRITE8_MEMBER(mogura_gfxram_w); + TILE_GET_INFO_MEMBER(get_mogura_tile_info); }; @@ -63,13 +64,12 @@ static PALETTE_INIT( mogura ) } -static TILE_GET_INFO( get_mogura_tile_info ) +TILE_GET_INFO_MEMBER(mogura_state::get_mogura_tile_info) { - mogura_state *state = machine.driver_data(); - int code = state->m_tileram[tile_index]; - int attr = state->m_tileram[tile_index + 0x800]; + int code = m_tileram[tile_index]; + int attr = m_tileram[tile_index + 0x800]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, (attr >> 1) & 7, @@ -81,7 +81,7 @@ static VIDEO_START( mogura ) { mogura_state *state = machine.driver_data(); machine.gfx[0]->set_source(state->m_gfxram); - state->m_tilemap = tilemap_create(machine, get_mogura_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } static SCREEN_UPDATE_IND16( mogura ) diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c index 61c44c59b23..5857f81a9bb 100644 --- a/src/mame/drivers/mole.c +++ b/src/mame/drivers/mole.c @@ -69,6 +69,7 @@ public: DECLARE_WRITE8_MEMBER(mole_tilebank_w); DECLARE_WRITE8_MEMBER(mole_flipscreen_w); DECLARE_READ8_MEMBER(mole_protection_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -86,19 +87,18 @@ static PALETTE_INIT( mole ) palette_set_color_rgb(machine, i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info) { - mole_state *state = machine.driver_data(); - UINT16 code = state->m_tileram[tile_index]; + UINT16 code = m_tileram[tile_index]; - SET_TILE_INFO((code & 0x200) ? 1 : 0, code & 0x1ff, 0, 0); + SET_TILE_INFO_MEMBER((code & 0x200) ? 1 : 0, code & 0x1ff, 0, 0); } static VIDEO_START( mole ) { mole_state *state = machine.driver_data(); memset(state->m_tileram, 0, sizeof(state->m_tileram)); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 40, 25); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mole_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 40, 25); state->save_item(NAME(state->m_tileram)); } diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index 3d06ee13d50..7fc488b0aee 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -233,29 +233,29 @@ public: DECLARE_DRIVER_INIT(gnomeent); DECLARE_DRIVER_INIT(lhauntent); DECLARE_DRIVER_INIT(fcockt2ent); + TILE_GET_INFO_MEMBER(get_multfish_tile_info); + TILE_GET_INFO_MEMBER(get_multfish_reel_tile_info); }; -static TILE_GET_INFO( get_multfish_tile_info ) +TILE_GET_INFO_MEMBER(multfish_state::get_multfish_tile_info) { - multfish_state *state = machine.driver_data(); - int code = state->m_vid[tile_index*2+0x0000] | (state->m_vid[tile_index*2+0x0001] << 8); - int attr = state->m_vid[tile_index*2+0x1000] | (state->m_vid[tile_index*2+0x1001] << 8); + int code = m_vid[tile_index*2+0x0000] | (m_vid[tile_index*2+0x0001] << 8); + int attr = m_vid[tile_index*2+0x1000] | (m_vid[tile_index*2+0x1001] << 8); tileinfo.category = (attr&0x100)>>8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code&0x1fff, attr&0x7, 0); } -static TILE_GET_INFO( get_multfish_reel_tile_info ) +TILE_GET_INFO_MEMBER(multfish_state::get_multfish_reel_tile_info) { - multfish_state *state = machine.driver_data(); - int code = state->m_vid[tile_index*2+0x2000] | (state->m_vid[tile_index*2+0x2001] << 8); + int code = m_vid[tile_index*2+0x2000] | (m_vid[tile_index*2+0x2001] << 8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (code&0x1fff)+0x2000, (code>>14)+0x8, @@ -269,10 +269,10 @@ static VIDEO_START(multfish) memset(state->m_vid,0x00,sizeof(state->m_vid)); state->save_item(NAME(state->m_vid)); - state->m_tilemap = tilemap_create(machine,get_multfish_tile_info,TILEMAP_SCAN_ROWS,16,16, 64, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(multfish_state::get_multfish_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 64, 32); state->m_tilemap->set_transparent_pen(255); - state->m_reel_tilemap = tilemap_create(machine,get_multfish_reel_tile_info,TILEMAP_SCAN_ROWS,16,16, 64, 64); + state->m_reel_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(multfish_state::get_multfish_reel_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 64, 64); state->m_reel_tilemap->set_transparent_pen(255); state->m_reel_tilemap->set_scroll_cols(64); } diff --git a/src/mame/drivers/mwarr.c b/src/mame/drivers/mwarr.c index d15870e4674..b2c5404b69c 100644 --- a/src/mame/drivers/mwarr.c +++ b/src/mame/drivers/mwarr.c @@ -92,6 +92,10 @@ public: DECLARE_WRITE16_MEMBER(sprites_commands_w); DECLARE_WRITE16_MEMBER(mwarr_brightness_w); DECLARE_WRITE16_MEMBER(oki1_bank_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_mlow_tile_info); + TILE_GET_INFO_MEMBER(get_mhigh_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; @@ -351,50 +355,46 @@ GFXDECODE_END * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mwarr_state::get_bg_tile_info) { - mwarr_state *state = machine.driver_data(); - int tileno = state->m_bg_videoram[tile_index] & 0x1fff; - int colour = (state->m_bg_videoram[tile_index] & 0xe000) >> 13; + int tileno = m_bg_videoram[tile_index] & 0x1fff; + int colour = (m_bg_videoram[tile_index] & 0xe000) >> 13; - SET_TILE_INFO(4, tileno, colour, 0); + SET_TILE_INFO_MEMBER(4, tileno, colour, 0); } -static TILE_GET_INFO( get_mlow_tile_info ) +TILE_GET_INFO_MEMBER(mwarr_state::get_mlow_tile_info) { - mwarr_state *state = machine.driver_data(); - int tileno = state->m_mlow_videoram[tile_index] & 0x1fff; - int colour = (state->m_mlow_videoram[tile_index] & 0xe000) >> 13; + int tileno = m_mlow_videoram[tile_index] & 0x1fff; + int colour = (m_mlow_videoram[tile_index] & 0xe000) >> 13; - SET_TILE_INFO(3, tileno, colour, 0); + SET_TILE_INFO_MEMBER(3, tileno, colour, 0); } -static TILE_GET_INFO( get_mhigh_tile_info ) +TILE_GET_INFO_MEMBER(mwarr_state::get_mhigh_tile_info) { - mwarr_state *state = machine.driver_data(); - int tileno = state->m_mhigh_videoram[tile_index] & 0x1fff; - int colour = (state->m_mhigh_videoram[tile_index] & 0xe000) >> 13; + int tileno = m_mhigh_videoram[tile_index] & 0x1fff; + int colour = (m_mhigh_videoram[tile_index] & 0xe000) >> 13; - SET_TILE_INFO(2, tileno, colour, 0); + SET_TILE_INFO_MEMBER(2, tileno, colour, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(mwarr_state::get_tx_tile_info) { - mwarr_state *state = machine.driver_data(); - int tileno = state->m_tx_videoram[tile_index] & 0x1fff; - int colour = (state->m_tx_videoram[tile_index] & 0xe000) >> 13; + int tileno = m_tx_videoram[tile_index] & 0x1fff; + int colour = (m_tx_videoram[tile_index] & 0xe000) >> 13; - SET_TILE_INFO(1, tileno, colour, 0); + SET_TILE_INFO_MEMBER(1, tileno, colour, 0); } static VIDEO_START( mwarr ) { mwarr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 16); - state->m_mlow_tilemap = tilemap_create(machine, get_mlow_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 16); - state->m_mhigh_tilemap = tilemap_create(machine, get_mhigh_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 16); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16); + state->m_mlow_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_mlow_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16); + state->m_mhigh_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_mhigh_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_mlow_tilemap->set_transparent_pen(0); state->m_mhigh_tilemap->set_transparent_pen(0); diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index aceb1dc6857..ffea2f079ba 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -1430,6 +1430,7 @@ public: DECLARE_READ8_MEMBER(s23_gun_r); DECLARE_READ8_MEMBER(iob_r); DECLARE_DRIVER_INIT(ss23); + TILE_GET_INFO_MEMBER(TextTilemapGetInfo); }; @@ -1440,17 +1441,16 @@ static UINT16 nthword( const UINT32 *pSource, int offs ) return (pSource[0]<<((offs&1)*16))>>16; } -static TILE_GET_INFO( TextTilemapGetInfo ) +TILE_GET_INFO_MEMBER(namcos23_state::TextTilemapGetInfo) { - namcos23_state *state = machine.driver_data(); - UINT16 data = nthword( state->m_textram,tile_index ); + UINT16 data = nthword( m_textram,tile_index ); /** * x---.----.----.---- blend * xxxx.----.----.---- palette select * ----.xx--.----.---- flip * ----.--xx.xxxx.xxxx code */ - SET_TILE_INFO( 0, data&0x03ff, data>>12, TILE_FLIPYX((data&0x0c00)>>10) ); + SET_TILE_INFO_MEMBER( 0, data&0x03ff, data>>12, TILE_FLIPYX((data&0x0c00)>>10) ); } /* TextTilemapGetInfo */ WRITE32_MEMBER(namcos23_state::namcos23_textram_w) @@ -2399,7 +2399,7 @@ static VIDEO_START( ss23 ) { namcos23_state *state = machine.driver_data(); machine.gfx[0]->set_source(reinterpret_cast(state->m_charram.target())); - state->m_bgtilemap = tilemap_create(machine, TextTilemapGetInfo, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos23_state::TextTilemapGetInfo),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); state->m_bgtilemap->set_transparent_pen(0xf); // Gorgon's tilemap offset is 0, S23/SS23's is 860 diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c index 5a36b763292..80cb156fedc 100644 --- a/src/mame/drivers/nmg5.c +++ b/src/mame/drivers/nmg5.c @@ -270,6 +270,8 @@ public: DECLARE_DRIVER_INIT(prot_val_10); DECLARE_DRIVER_INIT(prot_val_20); DECLARE_DRIVER_INIT(prot_val_40); + TILE_GET_INFO_MEMBER(fg_get_tile_info); + TILE_GET_INFO_MEMBER(bg_get_tile_info); }; @@ -836,22 +838,15 @@ static INPUT_PORTS_START( wondstck ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) INPUT_PORTS_END - -INLINE void get_tile_info( running_machine &machine, tile_data &tileinfo, int tile_index, UINT16 *vram, int color ) -{ - nmg5_state *state = machine.driver_data(); - SET_TILE_INFO(0, vram[tile_index] | (state->m_gfx_bank << 16), color, 0); -} - -static TILE_GET_INFO( fg_get_tile_info ) { nmg5_state *state = machine.driver_data(); get_tile_info(machine, tileinfo, tile_index, state->m_fg_videoram, 0); } -static TILE_GET_INFO( bg_get_tile_info ) { nmg5_state *state = machine.driver_data(); get_tile_info(machine, tileinfo, tile_index, state->m_bg_videoram, 1); } +TILE_GET_INFO_MEMBER(nmg5_state::fg_get_tile_info){ SET_TILE_INFO_MEMBER(0, m_fg_videoram[tile_index] | (m_gfx_bank << 16), 0, 0);} +TILE_GET_INFO_MEMBER(nmg5_state::bg_get_tile_info){ SET_TILE_INFO_MEMBER(0, m_bg_videoram[tile_index] | (m_gfx_bank << 16), 1, 0);} static VIDEO_START( nmg5 ) { nmg5_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmg5_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmg5_state::fg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c index 8f6e43dfac1..a564ead9f88 100644 --- a/src/mame/drivers/nsmpoker.c +++ b/src/mame/drivers/nsmpoker.c @@ -79,6 +79,7 @@ public: DECLARE_WRITE8_MEMBER(nsmpoker_colorram_w); DECLARE_WRITE8_MEMBER(debug_w); DECLARE_READ8_MEMBER(debug_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -101,28 +102,27 @@ WRITE8_MEMBER(nsmpoker_state::nsmpoker_colorram_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(nsmpoker_state::get_bg_tile_info) { - nsmpoker_state *state = machine.driver_data(); /* - bits - 7654 3210 ---- ---- bank select. ---- ---- color code. ---- ---- seems unused. */ -// int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index]; +// int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index]; // int bank = (attr & 0x08) >> 3; // int color = (attr & 0x03); - SET_TILE_INFO( 0 /* bank */, code, 0 /* color */, 0); + SET_TILE_INFO_MEMBER( 0 /* bank */, code, 0 /* color */, 0); } static VIDEO_START( nsmpoker ) { nsmpoker_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nsmpoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c index 8b8e377d51b..ea01558f675 100644 --- a/src/mame/drivers/olibochu.c +++ b/src/mame/drivers/olibochu.c @@ -81,6 +81,7 @@ public: DECLARE_WRITE8_MEMBER(olibochu_colorram_w); DECLARE_WRITE8_MEMBER(olibochu_flipscreen_w); DECLARE_WRITE8_MEMBER(sound_command_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -146,21 +147,20 @@ WRITE8_MEMBER(olibochu_state::olibochu_flipscreen_w) /* other bits are used, but unknown */ } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(olibochu_state::get_bg_tile_info) { - olibochu_state *state = machine.driver_data(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x20) << 3); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x20) << 3); int color = (attr & 0x1f) + 0x20; int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } static VIDEO_START( olibochu ) { olibochu_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(olibochu_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c index 32f55968171..1dacaa2f0c4 100644 --- a/src/mame/drivers/onetwo.c +++ b/src/mame/drivers/onetwo.c @@ -72,6 +72,7 @@ public: DECLARE_WRITE8_MEMBER(onetwo_soundlatch_w); DECLARE_WRITE8_MEMBER(palette1_w); DECLARE_WRITE8_MEMBER(palette2_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -82,21 +83,20 @@ public: * *************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(onetwo_state::get_fg_tile_info) { - onetwo_state *state = machine.driver_data(); - int code = (state->m_fgram[tile_index * 2 + 1] << 8) | state->m_fgram[tile_index * 2]; - int color = (state->m_fgram[tile_index * 2 + 1] & 0x80) >> 7; + int code = (m_fgram[tile_index * 2 + 1] << 8) | m_fgram[tile_index * 2]; + int color = (m_fgram[tile_index * 2 + 1] & 0x80) >> 7; code &= 0x7fff; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } static VIDEO_START( onetwo ) { onetwo_state *state = machine.driver_data(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } static SCREEN_UPDATE_IND16( onetwo ) diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c index b170d81bf9b..32bea290f40 100644 --- a/src/mame/drivers/panicr.c +++ b/src/mame/drivers/panicr.c @@ -93,6 +93,9 @@ public: DECLARE_WRITE8_MEMBER(t5182shared_w); DECLARE_DRIVER_INIT(panicr); + TILE_GET_INFO_MEMBER(get_bgtile_info); + TILE_GET_INFO_MEMBER(get_infotile_info); + TILE_GET_INFO_MEMBER(get_txttile_info); }; @@ -164,44 +167,43 @@ static PALETTE_INIT( panicr ) } -static TILE_GET_INFO( get_bgtile_info ) +TILE_GET_INFO_MEMBER(panicr_state::get_bgtile_info) { int code,attr; - code=machine.root_device().memregion("user1")->base()[tile_index]; - attr=machine.root_device().memregion("user2")->base()[tile_index]; + code=machine().root_device().memregion("user1")->base()[tile_index]; + attr=machine().root_device().memregion("user2")->base()[tile_index]; code+=((attr&7)<<8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, (attr & 0xf0) >> 4, 0); } -static TILE_GET_INFO( get_infotile_info ) +TILE_GET_INFO_MEMBER(panicr_state::get_infotile_info) { int code,attr; - code=machine.root_device().memregion("user1")->base()[tile_index]; - attr=machine.root_device().memregion("user2")->base()[tile_index]; + code=machine().root_device().memregion("user1")->base()[tile_index]; + attr=machine().root_device().memregion("user2")->base()[tile_index]; code+=((attr&7)<<8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code, (attr & 0xf0) >> 4, 0); } -static TILE_GET_INFO( get_txttile_info ) +TILE_GET_INFO_MEMBER(panicr_state::get_txttile_info) { - panicr_state *state = machine.driver_data(); - int code=state->m_textram[tile_index*4]; - int attr=state->m_textram[tile_index*4+2]; + int code=m_textram[tile_index*4]; + int attr=m_textram[tile_index*4+2]; int color = attr & 0x07; tileinfo.group = color; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code + ((attr & 8) << 5), color, @@ -213,10 +215,10 @@ static VIDEO_START( panicr ) { panicr_state *state = machine.driver_data(); - state->m_bgtilemap = tilemap_create( machine, get_bgtile_info,TILEMAP_SCAN_ROWS,16,16,1024,16 ); - state->m_infotilemap = tilemap_create( machine, get_infotile_info,TILEMAP_SCAN_ROWS,16,16,1024,16 ); // 3 more bitplanes, contains collision and priority data + state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_bgtile_info),state),TILEMAP_SCAN_ROWS,16,16,1024,16 ); + state->m_infotilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info),state),TILEMAP_SCAN_ROWS,16,16,1024,16 ); // 3 more bitplanes, contains collision and priority data - state->m_txttilemap = tilemap_create( machine, get_txttile_info,TILEMAP_SCAN_ROWS,8,8,32,32 ); + state->m_txttilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_txttile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); colortable_configure_tilemap_groups(machine.colortable, state->m_txttilemap, machine.gfx[0], 0); } diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c index 9d70ee39a39..57cc5815d73 100644 --- a/src/mame/drivers/peplus.c +++ b/src/mame/drivers/peplus.c @@ -262,6 +262,7 @@ public: DECLARE_DRIVER_INIT(peplus); DECLARE_DRIVER_INIT(peplussb); DECLARE_DRIVER_INIT(peplussbw); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; static const UINT8 id_022[8] = { 0x00, 0x01, 0x04, 0x09, 0x13, 0x16, 0x18, 0x00 }; @@ -935,31 +936,30 @@ READ8_MEMBER(peplus_state::peplus_input_bank_a_r) * Video/Character functions * ****************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(peplus_state::get_bg_tile_info) { - peplus_state *state = machine.driver_data(); - UINT8 *videoram = state->m_videoram; - int pr = state->m_palette_ram[tile_index]; - int pr2 = state->m_palette_ram2[tile_index]; + UINT8 *videoram = m_videoram; + int pr = m_palette_ram[tile_index]; + int pr2 = m_palette_ram2[tile_index]; int vr = videoram[tile_index]; int code = ((pr & 0x0f)*256) | vr; int color = (pr>>4) & 0x0f; // Access 2nd Half of CGs and CAP - if (state->m_jumper_e16_e17 && (pr2 & 0x10) == 0x10) + if (m_jumper_e16_e17 && (pr2 & 0x10) == 0x10) { code += 0x1000; color += 0x10; } - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } static VIDEO_START( peplus ) { peplus_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 40, 25); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(peplus_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 40, 25); state->m_palette_ram = auto_alloc_array(machine, UINT8, 0x3000); memset(state->m_palette_ram, 0, 0x3000); state->m_palette_ram2 = auto_alloc_array(machine, UINT8, 0x3000); diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c index 5d7fd049794..b92e2b58bc6 100644 --- a/src/mame/drivers/pipeline.c +++ b/src/mame/drivers/pipeline.c @@ -97,26 +97,26 @@ public: DECLARE_WRITE8_MEMBER(vidctrl_w); DECLARE_READ8_MEMBER(protection_r); DECLARE_WRITE8_MEMBER(protection_w); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info2); }; -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(pipeline_state::get_tile_info) { - pipeline_state *state = machine.driver_data(); - int code = state->m_vram2[tile_index]+state->m_vram2[tile_index+0x800]*256; - SET_TILE_INFO( + int code = m_vram2[tile_index]+m_vram2[tile_index+0x800]*256; + SET_TILE_INFO_MEMBER( 0, code, 0, 0); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(pipeline_state::get_tile_info2) { - pipeline_state *state = machine.driver_data(); - int code =state->m_vram1[tile_index]+((state->m_vram1[tile_index+0x800]>>4))*256; - int color=((state->m_vram1[tile_index+0x800])&0xf); - SET_TILE_INFO + int code =m_vram1[tile_index]+((m_vram1[tile_index+0x800]>>4))*256; + int color=((m_vram1[tile_index+0x800])&0xf); + SET_TILE_INFO_MEMBER ( 1, code, @@ -129,8 +129,8 @@ static VIDEO_START ( pipeline ) { pipeline_state *state = machine.driver_data(); state->m_palram=auto_alloc_array(machine, UINT8, 0x1000); - state->m_tilemap1 = tilemap_create( machine, get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32 ); - state->m_tilemap2 = tilemap_create( machine, get_tile_info2,TILEMAP_SCAN_ROWS,8,8,64,32 ); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32 ); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,64,32 ); state->m_tilemap2->set_transparent_pen(0); } diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c index 0f443f7e2c5..b77b09988cf 100644 --- a/src/mame/drivers/pkscram.c +++ b/src/mame/drivers/pkscram.c @@ -38,6 +38,9 @@ public: DECLARE_WRITE16_MEMBER(pkscramble_mdtilemap_w); DECLARE_WRITE16_MEMBER(pkscramble_bgtilemap_w); DECLARE_WRITE16_MEMBER(pkscramble_output_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_md_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -184,31 +187,28 @@ static INPUT_PORTS_START( pkscramble ) INPUT_PORTS_END -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(pkscram_state::get_bg_tile_info) { - pkscram_state *state = machine.driver_data(); - int tile = state->m_pkscramble_bgtilemap_ram[tile_index*2]; - int color = state->m_pkscramble_bgtilemap_ram[tile_index*2 + 1] & 0x7f; + int tile = m_pkscramble_bgtilemap_ram[tile_index*2]; + int color = m_pkscramble_bgtilemap_ram[tile_index*2 + 1] & 0x7f; - SET_TILE_INFO(0,tile,color,0); + SET_TILE_INFO_MEMBER(0,tile,color,0); } -static TILE_GET_INFO( get_md_tile_info ) +TILE_GET_INFO_MEMBER(pkscram_state::get_md_tile_info) { - pkscram_state *state = machine.driver_data(); - int tile = state->m_pkscramble_mdtilemap_ram[tile_index*2]; - int color = state->m_pkscramble_mdtilemap_ram[tile_index*2 + 1] & 0x7f; + int tile = m_pkscramble_mdtilemap_ram[tile_index*2]; + int color = m_pkscramble_mdtilemap_ram[tile_index*2 + 1] & 0x7f; - SET_TILE_INFO(0,tile,color,0); + SET_TILE_INFO_MEMBER(0,tile,color,0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(pkscram_state::get_fg_tile_info) { - pkscram_state *state = machine.driver_data(); - int tile = state->m_pkscramble_fgtilemap_ram[tile_index*2]; - int color = state->m_pkscramble_fgtilemap_ram[tile_index*2 + 1] & 0x7f; + int tile = m_pkscramble_fgtilemap_ram[tile_index*2]; + int color = m_pkscramble_fgtilemap_ram[tile_index*2 + 1] & 0x7f; - SET_TILE_INFO(0,tile,color,0); + SET_TILE_INFO_MEMBER(0,tile,color,0); } static TIMER_DEVICE_CALLBACK( scanline_callback ) @@ -233,9 +233,9 @@ static TIMER_DEVICE_CALLBACK( scanline_callback ) static VIDEO_START( pkscramble ) { pkscram_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8,32,32); - state->m_md_tilemap = tilemap_create(machine, get_md_tile_info, TILEMAP_SCAN_ROWS, 8, 8,32,32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_md_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32); state->m_md_tilemap->set_transparent_pen(15); state->m_fg_tilemap->set_transparent_pen(15); diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c index a7924b20e96..c7637094af6 100644 --- a/src/mame/drivers/ppmast93.c +++ b/src/mame/drivers/ppmast93.c @@ -152,6 +152,8 @@ public: DECLARE_WRITE8_MEMBER(ppmast93_bgram_w); DECLARE_WRITE8_MEMBER(ppmast93_port4_w); DECLARE_WRITE8_MEMBER(ppmast_sound_w); + TILE_GET_INFO_MEMBER(get_ppmast93_bg_tile_info); + TILE_GET_INFO_MEMBER(get_ppmast93_fg_tile_info); }; @@ -322,22 +324,20 @@ static GFXDECODE_START( ppmast93 ) GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 ) GFXDECODE_END -static TILE_GET_INFO( get_ppmast93_bg_tile_info ) +TILE_GET_INFO_MEMBER(ppmast93_state::get_ppmast93_bg_tile_info) { - ppmast93_state *state = machine.driver_data(); - int code = (state->m_bgram[tile_index*2+1] << 8) | state->m_bgram[tile_index*2]; - SET_TILE_INFO( + int code = (m_bgram[tile_index*2+1] << 8) | m_bgram[tile_index*2]; + SET_TILE_INFO_MEMBER( 0, code & 0x0fff, (code & 0xf000) >> 12, 0); } -static TILE_GET_INFO( get_ppmast93_fg_tile_info ) +TILE_GET_INFO_MEMBER(ppmast93_state::get_ppmast93_fg_tile_info) { - ppmast93_state *state = machine.driver_data(); - int code = (state->m_fgram[tile_index*2+1] << 8) | state->m_fgram[tile_index*2]; - SET_TILE_INFO( + int code = (m_fgram[tile_index*2+1] << 8) | m_fgram[tile_index*2]; + SET_TILE_INFO_MEMBER( 0, (code & 0x0fff)+0x1000, (code & 0xf000) >> 12, @@ -347,8 +347,8 @@ static TILE_GET_INFO( get_ppmast93_fg_tile_info ) static VIDEO_START( ppmast93 ) { ppmast93_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_ppmast93_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_ppmast93_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c index a368b482763..f8a67c7063d 100644 --- a/src/mame/drivers/pturn.c +++ b/src/mame/drivers/pturn.c @@ -113,6 +113,8 @@ public: DECLARE_READ8_MEMBER(pturn_protection_r); DECLARE_READ8_MEMBER(pturn_protection2_r); DECLARE_DRIVER_INIT(pturn); + TILE_GET_INFO_MEMBER(get_pturn_tile_info); + TILE_GET_INFO_MEMBER(get_pturn_bg_tile_info); }; @@ -126,39 +128,37 @@ static const UINT8 tile_lookup[0x10]= 0xa0, 0xb0, 0xe0, 0xf0 }; -static TILE_GET_INFO( get_pturn_tile_info ) +TILE_GET_INFO_MEMBER(pturn_state::get_pturn_tile_info) { - pturn_state *state = machine.driver_data(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int tileno; tileno = videoram[tile_index]; - tileno=tile_lookup[tileno>>4]|(tileno&0xf)|(state->m_fgbank<<8); + tileno=tile_lookup[tileno>>4]|(tileno&0xf)|(m_fgbank<<8); - SET_TILE_INFO(0,tileno,state->m_fgpalette,0); + SET_TILE_INFO_MEMBER(0,tileno,m_fgpalette,0); } -static TILE_GET_INFO( get_pturn_bg_tile_info ) +TILE_GET_INFO_MEMBER(pturn_state::get_pturn_bg_tile_info) { - pturn_state *state = machine.driver_data(); int tileno,palno; - tileno = state->memregion("user1")->base()[tile_index]; - palno=state->m_bgpalette; + tileno = memregion("user1")->base()[tile_index]; + palno=m_bgpalette; if(palno==1) { palno=25; } - SET_TILE_INFO(1,tileno+state->m_bgbank*256,palno,0); + SET_TILE_INFO_MEMBER(1,tileno+m_bgbank*256,palno,0); } static VIDEO_START(pturn) { pturn_state *state = machine.driver_data(); - state->m_fgmap = tilemap_create(machine, get_pturn_tile_info,TILEMAP_SCAN_ROWS,8, 8,32,32); + state->m_fgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pturn_state::get_pturn_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,32,32); state->m_fgmap->set_transparent_pen(0); - state->m_bgmap = tilemap_create(machine, get_pturn_bg_tile_info,TILEMAP_SCAN_ROWS,8, 8,32,32*8); + state->m_bgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pturn_state::get_pturn_bg_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,32,32*8); state->m_bgmap->set_transparent_pen(0); } diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c index a45c400b800..776c7007415 100644 --- a/src/mame/drivers/pzletime.c +++ b/src/mame/drivers/pzletime.c @@ -53,26 +53,26 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(ticket_status_r); DECLARE_WRITE16_MEMBER(eeprom_w); DECLARE_WRITE16_MEMBER(oki_bank_w); + TILE_GET_INFO_MEMBER(get_mid_tile_info); + TILE_GET_INFO_MEMBER(get_txt_tile_info); }; -static TILE_GET_INFO( get_mid_tile_info ) +TILE_GET_INFO_MEMBER(pzletime_state::get_mid_tile_info) { - pzletime_state *state = machine.driver_data(); - int tileno = state->m_mid_videoram[tile_index] & 0x0fff; - int colour = state->m_mid_videoram[tile_index] & 0xf000; + int tileno = m_mid_videoram[tile_index] & 0x0fff; + int colour = m_mid_videoram[tile_index] & 0xf000; colour = colour >> 12; - SET_TILE_INFO(2, tileno, colour, 0); + SET_TILE_INFO_MEMBER(2, tileno, colour, 0); } -static TILE_GET_INFO( get_txt_tile_info ) +TILE_GET_INFO_MEMBER(pzletime_state::get_txt_tile_info) { - pzletime_state *state = machine.driver_data(); - int tileno = state->m_txt_videoram[tile_index] & 0x0fff; - int colour = state->m_txt_videoram[tile_index] & 0xf000; + int tileno = m_txt_videoram[tile_index] & 0x0fff; + int colour = m_txt_videoram[tile_index] & 0xf000; colour = colour >> 12; - SET_TILE_INFO(0, tileno, colour, 0); + SET_TILE_INFO_MEMBER(0, tileno, colour, 0); tileinfo.category = BIT(colour, 3); } @@ -81,8 +81,8 @@ static VIDEO_START( pzletime ) { pzletime_state *state = machine.driver_data(); - state->m_mid_tilemap = tilemap_create(machine, get_mid_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 16); - state->m_txt_tilemap = tilemap_create(machine, get_txt_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pzletime_state::get_mid_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16); + state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pzletime_state::get_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_mid_tilemap->set_transparent_pen(0); state->m_txt_tilemap->set_transparent_pen(0); diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c index 15692abbf8a..4d24ad74841 100644 --- a/src/mame/drivers/quizpun2.c +++ b/src/mame/drivers/quizpun2.c @@ -108,6 +108,8 @@ public: DECLARE_WRITE8_MEMBER(quizpun2_rombank_w); DECLARE_WRITE8_MEMBER(quizpun2_irq_ack); DECLARE_WRITE8_MEMBER(quizpun2_soundlatch_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -117,19 +119,17 @@ public: Video Hardware ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(quizpun2_state::get_bg_tile_info) { - quizpun2_state *state = machine.driver_data(); - UINT16 code = state->m_bg_ram[ tile_index * 2 ] + state->m_bg_ram[ tile_index * 2 + 1 ] * 256; - SET_TILE_INFO(0, code, 0, 0); + UINT16 code = m_bg_ram[ tile_index * 2 ] + m_bg_ram[ tile_index * 2 + 1 ] * 256; + SET_TILE_INFO_MEMBER(0, code, 0, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(quizpun2_state::get_fg_tile_info) { - quizpun2_state *state = machine.driver_data(); - UINT16 code = state->m_fg_ram[ tile_index * 4 ] + state->m_fg_ram[ tile_index * 4 + 1 ] * 256; - UINT8 color = state->m_fg_ram[ tile_index * 4 + 2 ]; - SET_TILE_INFO(1, code, color & 0x0f, 0); + UINT16 code = m_fg_ram[ tile_index * 4 ] + m_fg_ram[ tile_index * 4 + 1 ] * 256; + UINT8 color = m_fg_ram[ tile_index * 4 + 2 ]; + SET_TILE_INFO_MEMBER(1, code, color & 0x0f, 0); } WRITE8_MEMBER(quizpun2_state::bg_ram_w) @@ -147,8 +147,8 @@ WRITE8_MEMBER(quizpun2_state::fg_ram_w) static VIDEO_START(quizpun2) { quizpun2_state *state = machine.driver_data(); - state->m_bg_tmap = tilemap_create( machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8,16, 0x20,0x20 ); - state->m_fg_tmap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8,16, 0x20,0x20 ); + state->m_bg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpun2_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,8,16,0x20,0x20); + state->m_fg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpun2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,16,0x20,0x20); state->m_bg_tmap->set_transparent_pen(0); state->m_fg_tmap->set_transparent_pen(0); diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c index 64f7ecd953f..3cfe9a69641 100644 --- a/src/mame/drivers/quizshow.c +++ b/src/mame/drivers/quizshow.c @@ -59,6 +59,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(quizshow_tape_headpos_r); DECLARE_INPUT_CHANGED_MEMBER(quizshow_category_select); DECLARE_DRIVER_INIT(quizshow); + TILE_GET_INFO_MEMBER(get_tile_info); }; @@ -87,21 +88,20 @@ PALETTE_INIT( quizshow ) colortable_entry_set_value(machine.colortable, i, lut_pal[i]); } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(quizshow_state::get_tile_info) { - quizshow_state *state = machine.driver_data(); - UINT8 code = state->m_main_ram[tile_index]; + UINT8 code = m_main_ram[tile_index]; // d6: blink, d7: invert - UINT8 color = (code & (state->m_blink_state | 0x80)) >> 6; + UINT8 color = (code & (m_blink_state | 0x80)) >> 6; - SET_TILE_INFO(0, code & 0x3f, color, 0); + SET_TILE_INFO_MEMBER(0, code & 0x3f, color, 0); } VIDEO_START( quizshow ) { quizshow_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 16, 32, 16); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 16, 32, 16); } SCREEN_UPDATE_IND16( quizshow ) diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c index cc51618fc7c..34905f94cde 100644 --- a/src/mame/drivers/r2dx_v33.c +++ b/src/mame/drivers/r2dx_v33.c @@ -51,6 +51,10 @@ public: DECLARE_DRIVER_INIT(rdx_v33); DECLARE_DRIVER_INIT(nzerotea); DECLARE_DRIVER_INIT(zerotm2k); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_md_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; @@ -58,44 +62,44 @@ static UINT16 *seibu_crtc_regs; static UINT16 *bg_vram,*md_vram,*fg_vram,*tx_vram; static tilemap_t *bg_tilemap,*md_tilemap,*fg_tilemap,*tx_tilemap; -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(r2dx_v33_state::get_bg_tile_info) { int tile = bg_vram[tile_index]; int color = (tile>>12)&0xf; tile &= 0xfff; - SET_TILE_INFO(1,tile + 0x0000,color,0); + SET_TILE_INFO_MEMBER(1,tile + 0x0000,color,0); } -static TILE_GET_INFO( get_md_tile_info ) +TILE_GET_INFO_MEMBER(r2dx_v33_state::get_md_tile_info) { int tile = md_vram[tile_index]; int color = (tile>>12)&0xf; tile &= 0xfff; - SET_TILE_INFO(2,tile + 0x2000,color,0); + SET_TILE_INFO_MEMBER(2,tile + 0x2000,color,0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(r2dx_v33_state::get_fg_tile_info) { int tile = fg_vram[tile_index]; int color = (tile>>12)&0xf; tile &= 0xfff; - SET_TILE_INFO(3,tile + 0x1000,color,0); + SET_TILE_INFO_MEMBER(3,tile + 0x1000,color,0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(r2dx_v33_state::get_tx_tile_info) { int tile = tx_vram[tile_index]; int color = (tile>>12)&0xf; tile &= 0xfff; - SET_TILE_INFO(4,tile,color,0); + SET_TILE_INFO_MEMBER(4,tile,color,0); } /* copied from Legionnaire */ @@ -187,10 +191,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re static VIDEO_START( rdx_v33 ) { - bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); - md_tilemap = tilemap_create(machine, get_md_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); - fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); - tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS,8, 8, 64,32); + r2dx_v33_state *state = machine.driver_data(); + bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32); + md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_md_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32); + fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32); + tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS,8, 8, 64,32); bg_tilemap->set_transparent_pen(15); md_tilemap->set_transparent_pen(15); diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c index 6659a5ea5e4..51065f89654 100644 --- a/src/mame/drivers/rabbit.c +++ b/src/mame/drivers/rabbit.c @@ -132,6 +132,10 @@ public: DECLARE_WRITE32_MEMBER(rabbit_blitter_w); DECLARE_WRITE32_MEMBER(rabbit_eeprom_write); DECLARE_DRIVER_INIT(rabbit); + TILE_GET_INFO_MEMBER(get_rabbit_tilemap0_tile_info); + TILE_GET_INFO_MEMBER(get_rabbit_tilemap1_tile_info); + TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info); + TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info); }; @@ -197,24 +201,24 @@ INLINE void get_rabbit_tilemap_info(running_machine &machine, tile_data &tileinf } } -static TILE_GET_INFO( get_rabbit_tilemap0_tile_info ) +TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap0_tile_info) { - get_rabbit_tilemap_info(machine,tileinfo,tile_index,0,1); + get_rabbit_tilemap_info(machine(),tileinfo,tile_index,0,1); } -static TILE_GET_INFO( get_rabbit_tilemap1_tile_info ) +TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap1_tile_info) { - get_rabbit_tilemap_info(machine,tileinfo,tile_index,1,1); + get_rabbit_tilemap_info(machine(),tileinfo,tile_index,1,1); } -static TILE_GET_INFO( get_rabbit_tilemap2_tile_info ) +TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap2_tile_info) { - get_rabbit_tilemap_info(machine,tileinfo,tile_index,2,1); + get_rabbit_tilemap_info(machine(),tileinfo,tile_index,2,1); } -static TILE_GET_INFO( get_rabbit_tilemap3_tile_info ) +TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap3_tile_info) { - get_rabbit_tilemap_info(machine,tileinfo,tile_index,3,0); + get_rabbit_tilemap_info(machine(),tileinfo,tile_index,3,0); } WRITE32_MEMBER(rabbit_state::rabbit_tilemap0_w) @@ -392,10 +396,10 @@ static VIDEO_START(rabbit) state->m_tilemap_ram[2] = auto_alloc_array_clear(machine, UINT32, 0x20000/4); state->m_tilemap_ram[3] = auto_alloc_array_clear(machine, UINT32, 0x20000/4); - state->m_tilemap[0] = tilemap_create(machine, get_rabbit_tilemap0_tile_info,TILEMAP_SCAN_ROWS,16, 16, 128,32); - state->m_tilemap[1] = tilemap_create(machine, get_rabbit_tilemap1_tile_info,TILEMAP_SCAN_ROWS,16, 16, 128,32); - state->m_tilemap[2] = tilemap_create(machine, get_rabbit_tilemap2_tile_info,TILEMAP_SCAN_ROWS,16, 16, 128,32); - state->m_tilemap[3] = tilemap_create(machine, get_rabbit_tilemap3_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 128,32); + state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap0_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32); + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap1_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32); + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap2_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32); + state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 128,32); /* the tilemaps mix 4bpp and 8bbp tiles, we split these into 2 groups, and set a different transpen for each group */ state->m_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT); diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c index 5e4b5d4d168..c3d3573f56d 100644 --- a/src/mame/drivers/rmhaihai.c +++ b/src/mame/drivers/rmhaihai.c @@ -56,6 +56,7 @@ public: DECLARE_WRITE8_MEMBER(themj_rombank_w); DECLARE_WRITE8_MEMBER(adpcm_w); DECLARE_DRIVER_INIT(rmhaihai); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -72,20 +73,19 @@ WRITE8_MEMBER(rmhaihai_state::rmhaihai_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(rmhaihai_state::get_bg_tile_info) { - rmhaihai_state *state = machine.driver_data(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + (state->m_gfxbank << 12) + ((attr & 0x07) << 8) + ((attr & 0x80) << 4); - int color = (state->m_gfxbank << 5) + (attr >> 3); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + (m_gfxbank << 12) + ((attr & 0x07) << 8) + ((attr & 0x80) << 4); + int color = (m_gfxbank << 5) + (attr >> 3); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } static VIDEO_START( rmhaihai ) { rmhaihai_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rmhaihai_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c index e79239e5675..cd1778da5ba 100644 --- a/src/mame/drivers/safarir.c +++ b/src/mame/drivers/safarir.c @@ -73,6 +73,8 @@ public: DECLARE_READ8_MEMBER(ram_r); DECLARE_WRITE8_MEMBER(ram_bank_w); DECLARE_WRITE8_MEMBER(safarir_audio_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; @@ -146,12 +148,11 @@ static PALETTE_INIT( safarir ) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(safarir_state::get_bg_tile_info) { int color; - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - safarir_state *state = machine.driver_data(); - UINT8 code = state->ram_r(*space,tile_index | 0x400); + address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM); + UINT8 code = ram_r(*space,tile_index | 0x400); if (code & 0x80) color = 6; /* yellow */ @@ -165,16 +166,15 @@ static TILE_GET_INFO( get_bg_tile_info ) color |= (tile_index & 0xc0) ? 1 : 0; } - SET_TILE_INFO(0, code & 0x7f, color, 0); + SET_TILE_INFO_MEMBER(0, code & 0x7f, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(safarir_state::get_fg_tile_info) { int color, flags; - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - safarir_state *state = machine.driver_data(); - UINT8 code = state->ram_r(*space,tile_index); + address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM); + UINT8 code = ram_r(*space,tile_index); if (code & 0x80) color = 7; /* white */ @@ -183,7 +183,7 @@ static TILE_GET_INFO( get_fg_tile_info ) flags = ((tile_index & 0x1f) >= 0x03) ? 0 : TILE_FORCE_LAYER0; - SET_TILE_INFO(1, code & 0x7f, color, flags); + SET_TILE_INFO_MEMBER(1, code & 0x7f, color, flags); } @@ -191,8 +191,8 @@ static VIDEO_START( safarir ) { safarir_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(safarir_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(safarir_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c index f45e7cce536..b2e649b4b65 100644 --- a/src/mame/drivers/sbowling.c +++ b/src/mame/drivers/sbowling.c @@ -70,15 +70,15 @@ public: DECLARE_WRITE8_MEMBER(system_w); DECLARE_WRITE8_MEMBER(graph_control_w); DECLARE_READ8_MEMBER(controls_r); + TILE_GET_INFO_MEMBER(get_sb_tile_info); }; -static TILE_GET_INFO( get_sb_tile_info ) +TILE_GET_INFO_MEMBER(sbowling_state::get_sb_tile_info) { - sbowling_state *state = machine.driver_data(); - UINT8 *rom = state->memregion("user1")->base(); - int tileno = rom[tile_index + state->m_bgmap * 1024]; + UINT8 *rom = memregion("user1")->base(); + int tileno = rom[tile_index + m_bgmap * 1024]; - SET_TILE_INFO(0, tileno, 0, 0); + SET_TILE_INFO_MEMBER(0, tileno, 0, 0); } static void plot_pixel_sbw(bitmap_ind16 *tmpbitmap, int x, int y, int col, int flip) @@ -129,7 +129,7 @@ static VIDEO_START(sbowling) sbowling_state *state = machine.driver_data(); state->m_tmpbitmap = auto_bitmap_ind16_alloc(machine,32*8,32*8); - state->m_sb_tilemap = tilemap_create(machine, get_sb_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_sb_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sbowling_state::get_sb_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } WRITE8_MEMBER(sbowling_state::pix_shift_w) diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index ed26715381f..9287fb3cb0f 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -62,6 +62,7 @@ public: DECLARE_READ8_MEMBER(sync_r); DECLARE_READ8_MEMBER(sync2_r); DECLARE_WRITE8_MEMBER(sbrkout_videoram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -296,19 +297,18 @@ READ8_MEMBER(sbrkout_state::sync2_r) * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(sbrkout_state::get_bg_tile_info) { - sbrkout_state *state = machine.driver_data(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = (videoram[tile_index] & 0x80) ? videoram[tile_index] : 0; - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } static VIDEO_START( sbrkout ) { sbrkout_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sbrkout_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c index 79751b4e729..d78d2437ed7 100644 --- a/src/mame/drivers/sfbonus.c +++ b/src/mame/drivers/sfbonus.c @@ -446,6 +446,11 @@ public: UINT8 xor5, UINT8 b50, UINT8 b51, UINT8 b52, UINT8 b53, UINT8 b54, UINT8 b55, UINT8 b56,UINT8 b57, UINT8 xor6, UINT8 b60, UINT8 b61, UINT8 b62, UINT8 b63, UINT8 b64, UINT8 b65, UINT8 b66,UINT8 b67, UINT8 xor7, UINT8 b70, UINT8 b71, UINT8 b72, UINT8 b73, UINT8 b74, UINT8 b75, UINT8 b76,UINT8 b77 ); + TILE_GET_INFO_MEMBER(get_sfbonus_tile_info); + TILE_GET_INFO_MEMBER(get_sfbonus_reel_tile_info); + TILE_GET_INFO_MEMBER(get_sfbonus_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_sfbonus_reel3_tile_info); + TILE_GET_INFO_MEMBER(get_sfbonus_reel4_tile_info); }; @@ -765,78 +770,73 @@ INPUT_PORTS_END -static TILE_GET_INFO( get_sfbonus_tile_info ) +TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_tile_info) { - sfbonus_state *state = machine.driver_data(); - int code = state->m_tilemap_ram[(tile_index*2)+0] | (state->m_tilemap_ram[(tile_index*2)+1]<<8); - int flipx = (state->m_tilemap_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = (state->m_tilemap_ram[(tile_index*2)+1] & 0x40)>>5; + int code = m_tilemap_ram[(tile_index*2)+0] | (m_tilemap_ram[(tile_index*2)+1]<<8); + int flipx = (m_tilemap_ram[(tile_index*2)+1] & 0x80)>>7; + int flipy = (m_tilemap_ram[(tile_index*2)+1] & 0x40)>>5; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, 0, TILE_FLIPYX(flipx | flipy)); } -static TILE_GET_INFO( get_sfbonus_reel_tile_info ) +TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel_tile_info) { - sfbonus_state *state = machine.driver_data(); - int code = state->m_reel_ram[(tile_index*2)+0] | (state->m_reel_ram[(tile_index*2)+1]<<8); - int flipx = (state->m_reel_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = 0;//(state->m_reel_ram[(tile_index*2)+1] & 0x40)>>5; + int code = m_reel_ram[(tile_index*2)+0] | (m_reel_ram[(tile_index*2)+1]<<8); + int flipx = (m_reel_ram[(tile_index*2)+1] & 0x80)>>7; + int flipy = 0;//(m_reel_ram[(tile_index*2)+1] & 0x40)>>5; - int priority = (state->m_reel_ram[(tile_index*2)+1] & 0x40)>>6; + int priority = (m_reel_ram[(tile_index*2)+1] & 0x40)>>6; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, priority, // colour aboused as priority TILE_FLIPYX(flipx | flipy)); } -static TILE_GET_INFO( get_sfbonus_reel2_tile_info ) +TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel2_tile_info) { - sfbonus_state *state = machine.driver_data(); - int code = state->m_reel2_ram[(tile_index*2)+0] | (state->m_reel2_ram[(tile_index*2)+1]<<8); - int flipx = (state->m_reel2_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = 0;//(state->m_reel2_ram[(tile_index*2)+1] & 0x40)>>5; + int code = m_reel2_ram[(tile_index*2)+0] | (m_reel2_ram[(tile_index*2)+1]<<8); + int flipx = (m_reel2_ram[(tile_index*2)+1] & 0x80)>>7; + int flipy = 0;//(m_reel2_ram[(tile_index*2)+1] & 0x40)>>5; - int priority = (state->m_reel2_ram[(tile_index*2)+1] & 0x40)>>6; + int priority = (m_reel2_ram[(tile_index*2)+1] & 0x40)>>6; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, priority, // colour abused as priority TILE_FLIPYX(flipx | flipy)); } -static TILE_GET_INFO( get_sfbonus_reel3_tile_info ) +TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel3_tile_info) { - sfbonus_state *state = machine.driver_data(); - int code = state->m_reel3_ram[(tile_index*2)+0] | (state->m_reel3_ram[(tile_index*2)+1]<<8); - int flipx = (state->m_reel3_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = 0;//(state->m_reel3_ram[(tile_index*2)+1] & 0x40)>>5; + int code = m_reel3_ram[(tile_index*2)+0] | (m_reel3_ram[(tile_index*2)+1]<<8); + int flipx = (m_reel3_ram[(tile_index*2)+1] & 0x80)>>7; + int flipy = 0;//(m_reel3_ram[(tile_index*2)+1] & 0x40)>>5; - int priority = (state->m_reel3_ram[(tile_index*2)+1] & 0x40)>>6; + int priority = (m_reel3_ram[(tile_index*2)+1] & 0x40)>>6; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, priority, // colour abused as priority TILE_FLIPYX(flipx | flipy)); } -static TILE_GET_INFO( get_sfbonus_reel4_tile_info ) +TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel4_tile_info) { - sfbonus_state *state = machine.driver_data(); - int code = state->m_reel4_ram[(tile_index*2)+0] | (state->m_reel4_ram[(tile_index*2)+1]<<8); - int flipx = (state->m_reel4_ram[(tile_index*2)+1] & 0x80)>>7; - int flipy = 0;//(state->m_reel4_ram[(tile_index*2)+1] & 0x40)>>5; + int code = m_reel4_ram[(tile_index*2)+0] | (m_reel4_ram[(tile_index*2)+1]<<8); + int flipx = (m_reel4_ram[(tile_index*2)+1] & 0x80)>>7; + int flipy = 0;//(m_reel4_ram[(tile_index*2)+1] & 0x40)>>5; - int priority = (state->m_reel4_ram[(tile_index*2)+1] & 0x40)>>6; + int priority = (m_reel4_ram[(tile_index*2)+1] & 0x40)>>6; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, priority, // colour abused as priority @@ -900,11 +900,11 @@ static VIDEO_START(sfbonus) sfbonus_state *state = machine.driver_data(); state->m_temp_reel_bitmap = auto_bitmap_ind16_alloc(machine,1024,512); - state->m_tilemap = tilemap_create(machine,get_sfbonus_tile_info,TILEMAP_SCAN_ROWS,8,8, 128, 64); - state->m_reel_tilemap = tilemap_create(machine,get_sfbonus_reel_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 16); - state->m_reel2_tilemap = tilemap_create(machine,get_sfbonus_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 16); - state->m_reel3_tilemap = tilemap_create(machine,get_sfbonus_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 16); - state->m_reel4_tilemap = tilemap_create(machine,get_sfbonus_reel4_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 16); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 128, 64); + state->m_reel_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16); + state->m_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16); state->m_tilemap->set_transparent_pen(0); state->m_reel_tilemap->set_transparent_pen(255); diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c index e2427649d05..1b51cb36332 100644 --- a/src/mame/drivers/silvmil.c +++ b/src/mame/drivers/silvmil.c @@ -105,32 +105,33 @@ public: DECLARE_DRIVER_INIT(silvmil); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILEMAP_MAPPER_MEMBER(deco16_scan_rows); }; -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(silvmil_state::get_bg_tile_info) { - silvmil_state *state = machine.driver_data(); - int data = state->m_bg_videoram[tile_index]; + int data = m_bg_videoram[tile_index]; int tile = data & 0x3ff; int color = (data >> 12) & 0x0f; - int bank = state->m_silvmil_tilebank[(data&0xc00)>>10]*0x400; + int bank = m_silvmil_tilebank[(data&0xc00)>>10]*0x400; - SET_TILE_INFO(1, tile + bank, color + 0x20, 0); + SET_TILE_INFO_MEMBER(1, tile + bank, color + 0x20, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(silvmil_state::get_fg_tile_info) { - silvmil_state *state = machine.driver_data(); - int data = state->m_fg_videoram[tile_index]; + int data = m_fg_videoram[tile_index]; int tile = data & 0x3ff; int color = (data >> 12) & 0x0f; - int bank = state->m_silvmil_tilebank[(data&0xc00)>>10]*0x400; + int bank = m_silvmil_tilebank[(data&0xc00)>>10]*0x400; - SET_TILE_INFO(1, tile + bank, color + 0x10, 0); + SET_TILE_INFO_MEMBER(1, tile + bank, color + 0x10, 0); } -static TILEMAP_MAPPER( deco16_scan_rows ) +TILEMAP_MAPPER_MEMBER(silvmil_state::deco16_scan_rows) { /* logical (col,row) -> memory offset */ return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6); @@ -139,8 +140,8 @@ static TILEMAP_MAPPER( deco16_scan_rows ) VIDEO_START( silvmil ) { silvmil_state *state = machine.driver_data(); - state->m_bg_layer = tilemap_create(machine, get_bg_tile_info, deco16_scan_rows, 16, 16, 64, 32); - state->m_fg_layer = tilemap_create(machine, get_fg_tile_info, deco16_scan_rows, 16, 16, 64, 32); + state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silvmil_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(silvmil_state::deco16_scan_rows),state), 16, 16, 64, 32); + state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silvmil_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(silvmil_state::deco16_scan_rows),state), 16, 16, 64, 32); state->m_fg_layer->set_transparent_pen(0); } diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c index ddd91ac4b7e..dcea9f6b04a 100644 --- a/src/mame/drivers/skyarmy.c +++ b/src/mame/drivers/skyarmy.c @@ -50,6 +50,7 @@ public: DECLARE_WRITE8_MEMBER(skyarmy_videoram_w); DECLARE_WRITE8_MEMBER(skyarmy_colorram_w); DECLARE_WRITE8_MEMBER(nmi_enable_w); + TILE_GET_INFO_MEMBER(get_skyarmy_tile_info); }; WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w) @@ -62,13 +63,12 @@ WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_y_w) flip_screen_y_set(data & 0x01); } -static TILE_GET_INFO( get_skyarmy_tile_info ) +TILE_GET_INFO_MEMBER(skyarmy_state::get_skyarmy_tile_info) { - skyarmy_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index]; - int attr = BITSWAP8(state->m_colorram[tile_index], 7, 6, 5, 4, 3, 0, 1, 2) & 7; + int code = m_videoram[tile_index]; + int attr = BITSWAP8(m_colorram[tile_index], 7, 6, 5, 4, 3, 0, 1, 2) & 7; - SET_TILE_INFO( 0, code, attr, 0); + SET_TILE_INFO_MEMBER( 0, code, attr, 0); } WRITE8_MEMBER(skyarmy_state::skyarmy_videoram_w) @@ -118,7 +118,7 @@ static VIDEO_START( skyarmy ) { skyarmy_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create(machine, get_skyarmy_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skyarmy_state::get_skyarmy_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tilemap->set_scroll_cols(32); } diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c index bff4f3d0b5d..9d3cde2d9cd 100644 --- a/src/mame/drivers/skylncr.c +++ b/src/mame/drivers/skylncr.c @@ -102,6 +102,11 @@ public: DECLARE_READ8_MEMBER(ret_00); DECLARE_WRITE8_MEMBER(skylncr_nmi_enable_w); DECLARE_DRIVER_INIT(skylncr); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(get_reel_1_tile_info); + TILE_GET_INFO_MEMBER(get_reel_2_tile_info); + TILE_GET_INFO_MEMBER(get_reel_3_tile_info); + TILE_GET_INFO_MEMBER(get_reel_4_tile_info); }; @@ -122,39 +127,34 @@ WRITE8_MEMBER(skylncr_state::skylncr_colorram_w) } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(skylncr_state::get_tile_info) { - skylncr_state *state = machine.driver_data(); - UINT16 code = state->m_videoram[ tile_index ] + (state->m_colorram[ tile_index ] << 8); - SET_TILE_INFO(0, code, 0, TILE_FLIPYX( 0 )); + UINT16 code = m_videoram[ tile_index ] + (m_colorram[ tile_index ] << 8); + SET_TILE_INFO_MEMBER(0, code, 0, TILE_FLIPYX( 0 )); } -static TILE_GET_INFO( get_reel_1_tile_info ) +TILE_GET_INFO_MEMBER(skylncr_state::get_reel_1_tile_info) { - skylncr_state *state = machine.driver_data(); - UINT16 code = state->m_reeltiles_1_ram[ tile_index ] + (state->m_reeltileshigh_1_ram[ tile_index ] << 8); - SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 )); + UINT16 code = m_reeltiles_1_ram[ tile_index ] + (m_reeltileshigh_1_ram[ tile_index ] << 8); + SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX( 0 )); } -static TILE_GET_INFO( get_reel_2_tile_info ) +TILE_GET_INFO_MEMBER(skylncr_state::get_reel_2_tile_info) { - skylncr_state *state = machine.driver_data(); - UINT16 code = state->m_reeltiles_2_ram[ tile_index ] + (state->m_reeltileshigh_2_ram[ tile_index ] << 8); - SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 )); + UINT16 code = m_reeltiles_2_ram[ tile_index ] + (m_reeltileshigh_2_ram[ tile_index ] << 8); + SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX( 0 )); } -static TILE_GET_INFO( get_reel_3_tile_info ) +TILE_GET_INFO_MEMBER(skylncr_state::get_reel_3_tile_info) { - skylncr_state *state = machine.driver_data(); - UINT16 code = state->m_reeltiles_3_ram[ tile_index ] + (state->m_reeltileshigh_3_ram[ tile_index ] << 8); - SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 )); + UINT16 code = m_reeltiles_3_ram[ tile_index ] + (m_reeltileshigh_3_ram[ tile_index ] << 8); + SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX( 0 )); } -static TILE_GET_INFO( get_reel_4_tile_info ) +TILE_GET_INFO_MEMBER(skylncr_state::get_reel_4_tile_info) { - skylncr_state *state = machine.driver_data(); - UINT16 code = state->m_reeltiles_4_ram[ tile_index ] + (state->m_reeltileshigh_4_ram[ tile_index ] << 8); - SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 )); + UINT16 code = m_reeltiles_4_ram[ tile_index ] + (m_reeltileshigh_4_ram[ tile_index ] << 8); + SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX( 0 )); } @@ -162,12 +162,12 @@ static VIDEO_START( skylncr ) { skylncr_state *state = machine.driver_data(); - state->m_tmap = tilemap_create( machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 ); + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 ); - state->m_reel_1_tilemap = tilemap_create(machine, get_reel_1_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); - state->m_reel_2_tilemap = tilemap_create(machine, get_reel_2_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); - state->m_reel_3_tilemap = tilemap_create(machine, get_reel_3_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); - state->m_reel_4_tilemap = tilemap_create(machine, get_reel_4_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); + state->m_reel_1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); + state->m_reel_2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); + state->m_reel_3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); + state->m_reel_4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_4_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); state->m_reel_2_tilemap->set_scroll_cols(0x40); state->m_reel_3_tilemap->set_scroll_cols(0x40); diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c index f2f74933bca..71cad3d4208 100644 --- a/src/mame/drivers/spoker.c +++ b/src/mame/drivers/spoker.c @@ -54,6 +54,8 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(hopper_r); DECLARE_DRIVER_INIT(spk116it); DECLARE_DRIVER_INIT(3super8); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; WRITE8_MEMBER(spoker_state::bg_tile_w) @@ -63,18 +65,16 @@ WRITE8_MEMBER(spoker_state::bg_tile_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(spoker_state::get_bg_tile_info) { - spoker_state *state = machine.driver_data(); - int code = state->m_bg_tile_ram[tile_index]; - SET_TILE_INFO(1 + (tile_index & 3), code & 0xff, 0, 0); + int code = m_bg_tile_ram[tile_index]; + SET_TILE_INFO_MEMBER(1 + (tile_index & 3), code & 0xff, 0, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(spoker_state::get_fg_tile_info) { - spoker_state *state = machine.driver_data(); - int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8); - SET_TILE_INFO(0, code, (4*(code >> 14)+3), 0); + int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8); + SET_TILE_INFO_MEMBER(0, code, (4*(code >> 14)+3), 0); } WRITE8_MEMBER(spoker_state::fg_tile_w) @@ -95,8 +95,8 @@ static VIDEO_START(spoker) { spoker_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 128, 8); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 128, 8); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c index a49fd23aaf9..d31f6ee916f 100644 --- a/src/mame/drivers/spool99.c +++ b/src/mame/drivers/spool99.c @@ -115,15 +115,15 @@ public: DECLARE_WRITE8_MEMBER(eeprom_clockline_w); DECLARE_WRITE8_MEMBER(eeprom_dataline_w); DECLARE_DRIVER_INIT(spool99); + TILE_GET_INFO_MEMBER(get_spool99_tile_info); }; -static TILE_GET_INFO( get_spool99_tile_info ) +TILE_GET_INFO_MEMBER(spool99_state::get_spool99_tile_info) { - spool99_state *state = machine.driver_data(); - int code = ((state->m_vram[tile_index*2+1]<<8) | (state->m_vram[tile_index*2+0])); - int color = state->m_cram[tile_index*2+0]; + int code = ((m_vram[tile_index*2+1]<<8) | (m_vram[tile_index*2+0])); + int color = m_cram[tile_index*2+0]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code & 0x3fff, color & 0x1f, @@ -134,7 +134,7 @@ static VIDEO_START(spool99) { spool99_state *state = machine.driver_data(); - state->m_sc0_tilemap = tilemap_create(machine, get_spool99_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spool99_state::get_spool99_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } static SCREEN_UPDATE_IND16(spool99) diff --git a/src/mame/drivers/sshot.c b/src/mame/drivers/sshot.c index 08e2ac9f5bf..8ced29b4f35 100644 --- a/src/mame/drivers/sshot.c +++ b/src/mame/drivers/sshot.c @@ -171,6 +171,7 @@ public: DECLARE_WRITE8_MEMBER(supershot_vidram_w); DECLARE_WRITE8_MEMBER(supershot_output0_w); DECLARE_WRITE8_MEMBER(supershot_output1_w); + TILE_GET_INFO_MEMBER(get_supershot_text_tile_info); }; /************************************* @@ -179,18 +180,17 @@ public: * *************************************/ -static TILE_GET_INFO( get_supershot_text_tile_info ) +TILE_GET_INFO_MEMBER(supershot_state::get_supershot_text_tile_info) { - supershot_state *state = machine.driver_data(); - UINT8 code = state->m_videoram[tile_index]; - SET_TILE_INFO(0, code, 0, 0); + UINT8 code = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, 0, 0); } static VIDEO_START( supershot ) { supershot_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create(machine, get_supershot_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( supershot ) diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c index cd13b8e9df8..e4cba884d74 100644 --- a/src/mame/drivers/statriv2.c +++ b/src/mame/drivers/statriv2.c @@ -104,6 +104,8 @@ public: DECLARE_DRIVER_INIT(addr_lmhe); DECLARE_DRIVER_INIT(addr_xhl); DECLARE_DRIVER_INIT(laserdisc); + TILE_GET_INFO_MEMBER(horizontal_tile_info); + TILE_GET_INFO_MEMBER(vertical_tile_info); }; @@ -116,24 +118,22 @@ public: * *************************************/ -static TILE_GET_INFO( horizontal_tile_info ) +TILE_GET_INFO_MEMBER(statriv2_state::horizontal_tile_info) { - statriv2_state *state = machine.driver_data(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[0x400+tile_index]; int attr = videoram[tile_index] & 0x3f; - SET_TILE_INFO(0, code, attr, 0); + SET_TILE_INFO_MEMBER(0, code, attr, 0); } -static TILE_GET_INFO( vertical_tile_info ) +TILE_GET_INFO_MEMBER(statriv2_state::vertical_tile_info) { - statriv2_state *state = machine.driver_data(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[0x400+tile_index]; int attr = videoram[tile_index] & 0x3f; - SET_TILE_INFO(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), attr, 0); + SET_TILE_INFO_MEMBER(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), attr, 0); } @@ -158,13 +158,13 @@ static PALETTE_INIT( statriv2 ) static VIDEO_START( horizontal ) { statriv2_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create(machine, horizontal_tile_info ,TILEMAP_SCAN_ROWS, 8,15, 64,16); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(statriv2_state::horizontal_tile_info),state) ,TILEMAP_SCAN_ROWS, 8,15, 64,16); } static VIDEO_START( vertical ) { statriv2_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create(machine, vertical_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(statriv2_state::vertical_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); } diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c index ac08aad4b18..328e1188f50 100644 --- a/src/mame/drivers/subsino.c +++ b/src/mame/drivers/subsino.c @@ -293,6 +293,14 @@ public: DECLARE_DRIVER_INIT(sharkpye); DECLARE_DRIVER_INIT(tisub); DECLARE_DRIVER_INIT(mtrainnv); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(get_stisub_tile_info); + TILE_GET_INFO_MEMBER(get_subsino_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_stisub_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_subsino_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_stisub_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_subsino_reel3_tile_info); + TILE_GET_INFO_MEMBER(get_stisub_reel3_tile_info); }; @@ -321,29 +329,27 @@ WRITE8_MEMBER(subsino_state::subsino_colorram_w) m_tmap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(subsino_state::get_tile_info) { - subsino_state *state = machine.driver_data(); - UINT16 code = state->m_videoram[ tile_index ] + (state->m_colorram[ tile_index ] << 8); + UINT16 code = m_videoram[ tile_index ] + (m_colorram[ tile_index ] << 8); UINT16 color = (code >> 8) & 0x0f; code = ((code & 0xf000) >> 4) + ((code & 0xff) >> 0); - code += state->m_tiles_offset; - SET_TILE_INFO(0, code, color, 0); + code += m_tiles_offset; + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_stisub_tile_info ) +TILE_GET_INFO_MEMBER(subsino_state::get_stisub_tile_info) { - subsino_state *state = machine.driver_data(); - UINT16 code = state->m_videoram[ tile_index ] + (state->m_colorram[ tile_index ] << 8); + UINT16 code = m_videoram[ tile_index ] + (m_colorram[ tile_index ] << 8); code&= 0x3fff; - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } static VIDEO_START( subsino ) { subsino_state *state = machine.driver_data(); - state->m_tmap = tilemap_create( machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 ); + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 ); state->m_tmap->set_transparent_pen(0 ); state->m_tiles_offset = 0; } @@ -356,26 +362,24 @@ WRITE8_MEMBER(subsino_state::subsino_reel1_ram_w) m_reel1_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_subsino_reel1_tile_info ) +TILE_GET_INFO_MEMBER(subsino_state::get_subsino_reel1_tile_info) { - subsino_state *state = machine.driver_data(); - int code = state->m_reel1_ram[tile_index]; - int colour = (state->m_out_c&0x7) + 8; + int code = m_reel1_ram[tile_index]; + int colour = (m_out_c&0x7) + 8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, colour, 0); } -static TILE_GET_INFO( get_stisub_reel1_tile_info ) +TILE_GET_INFO_MEMBER(subsino_state::get_stisub_reel1_tile_info) { - subsino_state *state = machine.driver_data(); - int code = state->m_reel1_ram[tile_index]; - int attr = state->m_reel1_attr[tile_index]; + int code = m_reel1_ram[tile_index]; + int attr = m_reel1_attr[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code | (attr << 8), 0, @@ -389,26 +393,24 @@ WRITE8_MEMBER(subsino_state::subsino_reel2_ram_w) m_reel2_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_subsino_reel2_tile_info ) +TILE_GET_INFO_MEMBER(subsino_state::get_subsino_reel2_tile_info) { - subsino_state *state = machine.driver_data(); - int code = state->m_reel2_ram[tile_index]; - int colour = (state->m_out_c&0x7) + 8; + int code = m_reel2_ram[tile_index]; + int colour = (m_out_c&0x7) + 8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, colour, 0); } -static TILE_GET_INFO( get_stisub_reel2_tile_info ) +TILE_GET_INFO_MEMBER(subsino_state::get_stisub_reel2_tile_info) { - subsino_state *state = machine.driver_data(); - int code = state->m_reel2_ram[tile_index]; - int attr = state->m_reel2_attr[tile_index]; + int code = m_reel2_ram[tile_index]; + int attr = m_reel2_attr[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code | (attr << 8), 0, @@ -421,26 +423,24 @@ WRITE8_MEMBER(subsino_state::subsino_reel3_ram_w) m_reel3_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_subsino_reel3_tile_info ) +TILE_GET_INFO_MEMBER(subsino_state::get_subsino_reel3_tile_info) { - subsino_state *state = machine.driver_data(); - int code = state->m_reel3_ram[tile_index]; - int colour = (state->m_out_c&0x7) + 8; + int code = m_reel3_ram[tile_index]; + int colour = (m_out_c&0x7) + 8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, colour, 0); } -static TILE_GET_INFO( get_stisub_reel3_tile_info ) +TILE_GET_INFO_MEMBER(subsino_state::get_stisub_reel3_tile_info) { - subsino_state *state = machine.driver_data(); - int code = state->m_reel3_ram[tile_index]; - int attr = state->m_reel3_attr[tile_index]; + int code = m_reel3_ram[tile_index]; + int attr = m_reel3_attr[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code | (attr << 8), 0, @@ -453,9 +453,9 @@ static VIDEO_START( subsino_reels ) subsino_state *state = machine.driver_data(); VIDEO_START_CALL( subsino ); - state->m_reel1_tilemap = tilemap_create(machine,get_subsino_reel1_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_subsino_reel2_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_subsino_reel3_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_subsino_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel1_tilemap->set_scroll_cols(64); state->m_reel2_tilemap->set_scroll_cols(64); @@ -466,12 +466,12 @@ static VIDEO_START( subsino_reels ) static VIDEO_START( stisub ) { subsino_state *state = machine.driver_data(); - state->m_tmap = tilemap_create( machine, get_stisub_tile_info, TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 ); + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 ); state->m_tmap->set_transparent_pen(0 ); - state->m_reel1_tilemap = tilemap_create(machine,get_stisub_reel1_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_stisub_reel2_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_stisub_reel3_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel1_tilemap->set_scroll_cols(64); state->m_reel2_tilemap->set_scroll_cols(64); diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c index aed068eec05..466ec6be9a1 100644 --- a/src/mame/drivers/subsino2.c +++ b/src/mame/drivers/subsino2.c @@ -159,6 +159,8 @@ public: DECLARE_DRIVER_INIT(mtrain); DECLARE_DRIVER_INIT(saklove); DECLARE_DRIVER_INIT(xplan); + TILE_GET_INFO_MEMBER(ss9601_get_tile_info_0); + TILE_GET_INFO_MEMBER(ss9601_get_tile_info_1); }; @@ -182,17 +184,15 @@ INLINE void ss9601_get_tile_info(layer_t *l, running_machine &machine, tile_data } // Layer 0 -static TILE_GET_INFO( ss9601_get_tile_info_0 ) +TILE_GET_INFO_MEMBER(subsino2_state::ss9601_get_tile_info_0) { - subsino2_state *state = machine.driver_data(); - ss9601_get_tile_info(&state->m_layers[0], machine, tileinfo, tile_index, param); + ss9601_get_tile_info(&m_layers[0], machine(), tileinfo, tile_index, param); } // Layer 1 -static TILE_GET_INFO( ss9601_get_tile_info_1 ) +TILE_GET_INFO_MEMBER(subsino2_state::ss9601_get_tile_info_1) { - subsino2_state *state = machine.driver_data(); - ss9601_get_tile_info(&state->m_layers[1], machine, tileinfo, tile_index, param); + ss9601_get_tile_info(&m_layers[1], machine(), tileinfo, tile_index, param); } @@ -577,7 +577,7 @@ static VIDEO_START( subsino2 ) { layer_t *l = &state->m_layers[i]; - l->tmap = tilemap_create(machine, i ? ss9601_get_tile_info_1 : ss9601_get_tile_info_0, TILEMAP_SCAN_ROWS, 8,8, 0x80,0x40); + l->tmap = &machine.tilemap().create(i ? tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_1),state) : tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8,8, 0x80,0x40); l->tmap->set_transparent_pen(0); diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c index 41bac362920..699ee91fd39 100644 --- a/src/mame/drivers/superdq.c +++ b/src/mame/drivers/superdq.c @@ -46,21 +46,21 @@ public: DECLARE_WRITE8_MEMBER(superdq_io_w); DECLARE_READ8_MEMBER(superdq_ld_r); DECLARE_WRITE8_MEMBER(superdq_ld_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(superdq_state::get_tile_info) { - superdq_state *state = machine.driver_data(); - int tile = state->m_videoram[tile_index]; + int tile = m_videoram[tile_index]; - SET_TILE_INFO(0, tile, state->m_color_bank, 0); + SET_TILE_INFO_MEMBER(0, tile, m_color_bank, 0); } static VIDEO_START( superdq ) { superdq_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_RGB32( superdq ) diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c index 8e56b5b15e6..691ee088bf1 100644 --- a/src/mame/drivers/superwng.c +++ b/src/mame/drivers/superwng.c @@ -67,44 +67,44 @@ public: DECLARE_WRITE8_MEMBER(superwng_cointcnt2_w); DECLARE_WRITE8_MEMBER(superwng_hopper_w); DECLARE_READ8_MEMBER(superwng_sound_byte_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(superwng_state::get_bg_tile_info) { - superwng_state *state = machine.driver_data(); - int code = state->m_videoram_bg[tile_index]; - int attr = state->m_colorram_bg[tile_index]; + int code = m_videoram_bg[tile_index]; + int attr = m_colorram_bg[tile_index]; code= (code&0x7f) | ((attr&0x40)<<1) | ((code&0x80)<<1); - code|=state->m_tile_bank?0x200:0; + code|=m_tile_bank?0x200:0; int flipx=(attr&0x80) ? TILE_FLIPX : 0; int flipy=(attr&0x80) ? TILE_FLIPY : 0; - SET_TILE_INFO(0, code, attr & 0xf, flipx|flipy); + SET_TILE_INFO_MEMBER(0, code, attr & 0xf, flipx|flipy); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(superwng_state::get_fg_tile_info) { - superwng_state *state = machine.driver_data(); - int code = state->m_videoram_fg[tile_index]; - int attr = state->m_colorram_fg[tile_index]; + int code = m_videoram_fg[tile_index]; + int attr = m_colorram_fg[tile_index]; code= (code&0x7f) | ((attr&0x40)<<1) | ((code&0x80)<<1); - code|=state->m_tile_bank?0x200:0; + code|=m_tile_bank?0x200:0; int flipx=(attr&0x80) ? TILE_FLIPX : 0; int flipy=(attr&0x80) ? TILE_FLIPY : 0; - SET_TILE_INFO(0, code, attr & 0xf, flipx|flipy); + SET_TILE_INFO_MEMBER(0, code, attr & 0xf, flipx|flipy); } static VIDEO_START( superwng ) { superwng_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superwng_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superwng_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scrollx(0, 64); } diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c index bac9b508409..3b6c716b11a 100644 --- a/src/mame/drivers/suprgolf.c +++ b/src/mame/drivers/suprgolf.c @@ -65,15 +65,15 @@ public: DECLARE_WRITE8_MEMBER(suprgolf_writeA); DECLARE_WRITE8_MEMBER(suprgolf_writeB); DECLARE_DRIVER_INIT(suprgolf); + TILE_GET_INFO_MEMBER(get_tile_info); }; -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info) { - suprgolf_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index*2]+256*(state->m_videoram[tile_index*2+1]); - int color = state->m_videoram[tile_index*2+0x800] & 0x7f; + int code = m_videoram[tile_index*2]+256*(m_videoram[tile_index*2+1]); + int color = m_videoram[tile_index*2+0x800] & 0x7f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -84,7 +84,7 @@ static VIDEO_START( suprgolf ) { suprgolf_state *state = machine.driver_data(); - state->m_tilemap = tilemap_create( machine, get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32 ); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprgolf_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); state->m_paletteram = auto_alloc_array(machine, UINT8, 0x1000); state->m_bg_vram = auto_alloc_array(machine, UINT8, 0x2000*0x20); state->m_bg_fb = auto_alloc_array(machine, UINT16, 0x2000*0x20); diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c index c42a9223056..c21b4cf6480 100644 --- a/src/mame/drivers/tattack.c +++ b/src/mame/drivers/tattack.c @@ -34,22 +34,22 @@ public: required_shared_ptr m_colorram; tilemap_t *m_tmap; DECLARE_DRIVER_INIT(tattack); + TILE_GET_INFO_MEMBER(get_tile_info); }; -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(tattack_state::get_tile_info) { - tattack_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index]; - int color = state->m_colorram[tile_index]; + int code = m_videoram[tile_index]; + int color = m_colorram[tile_index]; if((color&1 ) || (color>15) ) logerror("COLOR %i\n",color); color>>=1; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -67,7 +67,7 @@ static SCREEN_UPDATE_IND16( tattack ) static VIDEO_START( tattack ) { tattack_state *state = machine.driver_data(); - state->m_tmap = tilemap_create( machine, get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32 ); + state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tattack_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); } static ADDRESS_MAP_START( mem, AS_PROGRAM, 8, tattack_state ) diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c index c3c562ff799..54c758ab28c 100644 --- a/src/mame/drivers/tmspoker.c +++ b/src/mame/drivers/tmspoker.c @@ -227,6 +227,7 @@ public: //DECLARE_WRITE8_MEMBER(debug_w); DECLARE_READ8_MEMBER(unk_r); DECLARE_DRIVER_INIT(bus); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -241,7 +242,7 @@ WRITE8_MEMBER(tmspoker_state::tmspoker_videoram_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tmspoker_state::get_bg_tile_info) { /* - bits - 7654 3210 @@ -249,16 +250,15 @@ static TILE_GET_INFO( get_bg_tile_info ) ---- ---- color code. ---- ---- seems unused. */ - tmspoker_state *state = machine.driver_data(); - int code = state->m_videoram[tile_index]; + int code = m_videoram[tile_index]; - SET_TILE_INFO( 0 /* bank */, code, 0 /* color */, 0); + SET_TILE_INFO_MEMBER( 0 /* bank */, code, 0 /* color */, 0); } static VIDEO_START( tmspoker ) { tmspoker_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tmspoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( tmspoker ) diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c index 4698500fc64..1e3a6fd4f73 100644 --- a/src/mame/drivers/trvmadns.c +++ b/src/mame/drivers/trvmadns.c @@ -83,6 +83,7 @@ public: DECLARE_WRITE8_MEMBER(w2); DECLARE_WRITE8_MEMBER(w3); DECLARE_WRITE8_MEMBER(trvmadns_tileram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -259,13 +260,12 @@ static GFXDECODE_START( trvmadns ) GFXDECODE_ENTRY( NULL, 0x6000, charlayout, 0, 4 ) // doesn't matter where we point this, all the tiles are decoded while the game runs GFXDECODE_END -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(trvmadns_state::get_bg_tile_info) { - trvmadns_state *state = machine.driver_data(); int tile,attr,color,flag; - attr = state->m_tileram[tile_index*2 + 0]; - tile = state->m_tileram[tile_index*2 + 1] + ((attr & 0x01) << 8); + attr = m_tileram[tile_index*2 + 0]; + tile = m_tileram[tile_index*2 + 1] + ((attr & 0x01) << 8); color = (attr & 0x18) >> 3; flag = TILE_FLIPXY((attr & 0x06) >> 1); @@ -275,7 +275,7 @@ static TILE_GET_INFO( get_bg_tile_info ) //0x20? tile transparent pen 1? //0x40? tile transparent pen 1? - SET_TILE_INFO(0,tile,color,flag); + SET_TILE_INFO_MEMBER(0,tile,color,flag); tileinfo.category = (attr & 0x20)>>5; } @@ -283,7 +283,7 @@ static TILE_GET_INFO( get_bg_tile_info ) static VIDEO_START( trvmadns ) { trvmadns_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(trvmadns_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); // fg_tilemap->set_transparent_pen(1); diff --git a/src/mame/drivers/umipoker.c b/src/mame/drivers/umipoker.c index ee02c162ce0..0f46be857cd 100644 --- a/src/mame/drivers/umipoker.c +++ b/src/mame/drivers/umipoker.c @@ -60,54 +60,54 @@ public: DECLARE_WRITE16_MEMBER(saiyu_counters_w); DECLARE_DRIVER_INIT(umipoker); DECLARE_DRIVER_INIT(saiyukip); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); + TILE_GET_INFO_MEMBER(get_tile_info_2); + TILE_GET_INFO_MEMBER(get_tile_info_3); }; -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_0) { - umipoker_state *state = machine.driver_data(); - int tile = state->m_vram_0[tile_index*2+0]; - int color = state->m_vram_0[tile_index*2+1] & 0x3f; + int tile = m_vram_0[tile_index*2+0]; + int color = m_vram_0[tile_index*2+1] & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, 0); } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_1) { - umipoker_state *state = machine.driver_data(); - int tile = state->m_vram_1[tile_index*2+0]; - int color = state->m_vram_1[tile_index*2+1] & 0x3f; + int tile = m_vram_1[tile_index*2+0]; + int color = m_vram_1[tile_index*2+1] & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, 0); } -static TILE_GET_INFO( get_tile_info_2 ) +TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_2) { - umipoker_state *state = machine.driver_data(); - int tile = state->m_vram_2[tile_index*2+0]; - int color = state->m_vram_2[tile_index*2+1] & 0x3f; + int tile = m_vram_2[tile_index*2+0]; + int color = m_vram_2[tile_index*2+1] & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, 0); } -static TILE_GET_INFO( get_tile_info_3 ) +TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_3) { - umipoker_state *state = machine.driver_data(); - int tile = state->m_vram_3[tile_index*2+0]; - int color = state->m_vram_3[tile_index*2+1] & 0x3f; + int tile = m_vram_3[tile_index*2+0]; + int color = m_vram_3[tile_index*2+1] & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -118,10 +118,10 @@ static VIDEO_START( umipoker ) { umipoker_state *state = machine.driver_data(); - state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_tilemap_2 = tilemap_create(machine, get_tile_info_2,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_tilemap_3 = tilemap_create(machine, get_tile_info_3,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_0),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_1),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_2),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_3),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_tilemap_0->set_transparent_pen(0); state->m_tilemap_1->set_transparent_pen(0); diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c index ea955d83094..b3e954d31ac 100644 --- a/src/mame/drivers/videopkr.c +++ b/src/mame/drivers/videopkr.c @@ -356,6 +356,7 @@ public: DECLARE_WRITE8_MEMBER(baby_sound_p2_w); DECLARE_READ8_MEMBER(baby_sound_p3_r); DECLARE_WRITE8_MEMBER(baby_sound_p3_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -492,27 +493,26 @@ static PALETTE_INIT( fortune1 ) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(videopkr_state::get_bg_tile_info) { - videopkr_state *state = machine.driver_data(); int offs = tile_index; - int attr = state->m_color_ram[offs] + state->ioport("IN2")->read(); /* Color Switch Action */ - int code = state->m_video_ram[offs]; + int attr = m_color_ram[offs] + ioport("IN2")->read(); /* Color Switch Action */ + int code = m_video_ram[offs]; int color = attr; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } static VIDEO_START( videopkr ) { videopkr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static VIDEO_START( vidadcba ) { videopkr_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); } diff --git a/src/mame/drivers/vmetal.c b/src/mame/drivers/vmetal.c index 0b1b7fc5442..92c401e9519 100644 --- a/src/mame/drivers/vmetal.c +++ b/src/mame/drivers/vmetal.c @@ -116,6 +116,9 @@ public: DECLARE_READ16_MEMBER(varia_dips_bit1_r); DECLARE_WRITE8_MEMBER(vmetal_control_w); DECLARE_WRITE8_MEMBER(vmetal_es8712_w); + TILE_GET_INFO_MEMBER(get_vmetal_texttilemap_tile_info); + TILE_GET_INFO_MEMBER(get_vmetal_mid1tilemap_tile_info); + TILE_GET_INFO_MEMBER(get_vmetal_mid2tilemap_tile_info); }; @@ -383,13 +386,12 @@ static GFXDECODE_START( vmetal ) GFXDECODE_END -static TILE_GET_INFO( get_vmetal_texttilemap_tile_info ) +TILE_GET_INFO_MEMBER(vmetal_state::get_vmetal_texttilemap_tile_info) { - vmetal_state *state = machine.driver_data(); UINT32 tile; - UINT16 color, data = state->m_texttileram[tile_index]; + UINT16 color, data = m_texttileram[tile_index]; int idx = ((data & 0x7fff) >> 4) * 2; - UINT32 lookup = (state->m_tlookup[idx] << 16) | state->m_tlookup[idx + 1]; + UINT32 lookup = (m_tlookup[idx] << 16) | m_tlookup[idx + 1]; tile = (data & 0xf) | (lookup & 0x7fff0); color = ((lookup >> 20) & 0x1f) + 0xe0; @@ -397,34 +399,32 @@ static TILE_GET_INFO( get_vmetal_texttilemap_tile_info ) if (data & 0x8000) tile = 0; - SET_TILE_INFO(1, tile, color, TILE_FLIPYX(0x0)); + SET_TILE_INFO_MEMBER(1, tile, color, TILE_FLIPYX(0x0)); } -static TILE_GET_INFO( get_vmetal_mid1tilemap_tile_info ) +TILE_GET_INFO_MEMBER(vmetal_state::get_vmetal_mid1tilemap_tile_info) { - vmetal_state *state = machine.driver_data(); - UINT16 tile, color, data = state->m_mid1tileram[tile_index]; + UINT16 tile, color, data = m_mid1tileram[tile_index]; - get_vmetal_tlookup(machine, data, &tile, &color); + get_vmetal_tlookup(machine(), data, &tile, &color); if (data & 0x8000) tile = 0; - SET_TILE_INFO(0, tile, color, TILE_FLIPYX(0x0)); + SET_TILE_INFO_MEMBER(0, tile, color, TILE_FLIPYX(0x0)); } -static TILE_GET_INFO( get_vmetal_mid2tilemap_tile_info ) +TILE_GET_INFO_MEMBER(vmetal_state::get_vmetal_mid2tilemap_tile_info) { - vmetal_state *state = machine.driver_data(); - UINT16 tile, color, data = state->m_mid2tileram[tile_index]; + UINT16 tile, color, data = m_mid2tileram[tile_index]; - get_vmetal_tlookup(machine, data, &tile, &color); + get_vmetal_tlookup(machine(), data, &tile, &color); if (data & 0x8000) tile = 0; - SET_TILE_INFO(0, tile, color, TILE_FLIPYX(0x0)); + SET_TILE_INFO_MEMBER(0, tile, color, TILE_FLIPYX(0x0)); } static void expand_gfx1(running_machine &machine) @@ -445,9 +445,9 @@ static VIDEO_START(varia) { vmetal_state *state = machine.driver_data(); - state->m_texttilemap = tilemap_create(machine, get_vmetal_texttilemap_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 256); - state->m_mid1tilemap = tilemap_create(machine, get_vmetal_mid1tilemap_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 256); - state->m_mid2tilemap = tilemap_create(machine, get_vmetal_mid2tilemap_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 256); + state->m_texttilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_texttilemap_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 256); + state->m_mid1tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_mid1tilemap_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 256); + state->m_mid2tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vmetal_state::get_vmetal_mid2tilemap_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 256); state->m_texttilemap->set_transparent_pen(15); state->m_mid1tilemap->set_transparent_pen(15); diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c index c900485782c..8c2ccc96c13 100644 --- a/src/mame/drivers/vroulet.c +++ b/src/mame/drivers/vroulet.c @@ -60,6 +60,7 @@ public: DECLARE_WRITE8_MEMBER(ppi8255_a_w); DECLARE_WRITE8_MEMBER(ppi8255_b_w); DECLARE_WRITE8_MEMBER(ppi8255_c_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -98,20 +99,19 @@ WRITE8_MEMBER(vroulet_state::vroulet_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(vroulet_state::get_bg_tile_info) { - vroulet_state *state = machine.driver_data(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0xc0) << 2); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0xc0) << 2); int color = attr & 0x1f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } static VIDEO_START(vroulet) { vroulet_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vroulet_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c index 2282980aaec..d30b3036b83 100644 --- a/src/mame/drivers/wallc.c +++ b/src/mame/drivers/wallc.c @@ -66,6 +66,7 @@ public: DECLARE_WRITE8_MEMBER(wallc_coin_counter_w); DECLARE_DRIVER_INIT(wallc); DECLARE_DRIVER_INIT(wallca); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; @@ -139,17 +140,16 @@ WRITE8_MEMBER(wallc_state::wallc_videoram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(wallc_state::get_bg_tile_info) { - wallc_state *state = machine.driver_data(); - UINT8 *videoram = state->m_videoram; - SET_TILE_INFO(0, videoram[tile_index] + 0x100, 1, 0); + UINT8 *videoram = m_videoram; + SET_TILE_INFO_MEMBER(0, videoram[tile_index] + 0x100, 1, 0); } static VIDEO_START( wallc ) { wallc_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( wallc ) diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c index 1c72ebcefd5..830c4d9d7ed 100644 --- a/src/mame/drivers/warpsped.c +++ b/src/mame/drivers/warpsped.c @@ -102,6 +102,8 @@ public: DECLARE_WRITE8_MEMBER(warpspeed_hardware_w); DECLARE_WRITE8_MEMBER(warpspeed_vidram_w); DECLARE_DRIVER_INIT(warpspeed); + TILE_GET_INFO_MEMBER(get_warpspeed_text_tile_info); + TILE_GET_INFO_MEMBER(get_warpspeed_starfield_tile_info); }; WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w) @@ -109,22 +111,21 @@ WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w) m_regs[offset] = data; } -static TILE_GET_INFO( get_warpspeed_text_tile_info ) +TILE_GET_INFO_MEMBER(warpspeed_state::get_warpspeed_text_tile_info) { - warpspeed_state *state = machine.driver_data(); - UINT8 code = state->m_videoram[tile_index] & 0x3f; - SET_TILE_INFO(0, code, 0, 0); + UINT8 code = m_videoram[tile_index] & 0x3f; + SET_TILE_INFO_MEMBER(0, code, 0, 0); } -static TILE_GET_INFO( get_warpspeed_starfield_tile_info ) +TILE_GET_INFO_MEMBER(warpspeed_state::get_warpspeed_starfield_tile_info) { UINT8 code = 0x3f; if ( tile_index & 1 ) { - code = machine.root_device().memregion("starfield")->base()[tile_index >> 1] & 0x3f; + code = machine().root_device().memregion("starfield")->base()[tile_index >> 1] & 0x3f; } - SET_TILE_INFO(1, code, 0, 0); + SET_TILE_INFO_MEMBER(1, code, 0, 0); } WRITE8_MEMBER(warpspeed_state::warpspeed_vidram_w) @@ -137,9 +138,9 @@ WRITE8_MEMBER(warpspeed_state::warpspeed_vidram_w) static VIDEO_START( warpspeed ) { warpspeed_state *state = machine.driver_data(); - state->m_text_tilemap = tilemap_create(machine, get_warpspeed_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpspeed_state::get_warpspeed_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_text_tilemap->set_transparent_pen(0); - state->m_starfield_tilemap = tilemap_create(machine, get_warpspeed_starfield_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_starfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpspeed_state::get_warpspeed_starfield_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_starfield_tilemap->mark_all_dirty(); } diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c index 9fe852ef477..bd6b428a096 100644 --- a/src/mame/drivers/wink.c +++ b/src/mame/drivers/wink.c @@ -39,15 +39,15 @@ public: DECLARE_WRITE8_MEMBER(prot_w); DECLARE_READ8_MEMBER(sound_r); DECLARE_DRIVER_INIT(wink); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(wink_state::get_bg_tile_info) { - wink_state *state = machine.driver_data(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[tile_index]; - code |= 0x200 * state->m_tile_bank; + code |= 0x200 * m_tile_bank; // the 2 parts of the screen use different tile banking if(tile_index < 0x360) @@ -55,13 +55,13 @@ static TILE_GET_INFO( get_bg_tile_info ) code |= 0x100; } - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } static VIDEO_START( wink ) { wink_state *state = machine.driver_data(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wink_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static SCREEN_UPDATE_IND16( wink ) diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c index e24a16d5a42..5057ee323fb 100644 --- a/src/mame/drivers/witch.c +++ b/src/mame/drivers/witch.c @@ -234,17 +234,19 @@ public: DECLARE_WRITE8_MEMBER(xscroll_w); DECLARE_WRITE8_MEMBER(yscroll_w); DECLARE_DRIVER_INIT(witch); + TILE_GET_INFO_MEMBER(get_gfx0b_tile_info); + TILE_GET_INFO_MEMBER(get_gfx0a_tile_info); + TILE_GET_INFO_MEMBER(get_gfx1_tile_info); }; #define UNBANKED_SIZE 0x800 -static TILE_GET_INFO( get_gfx0b_tile_info ) +TILE_GET_INFO_MEMBER(witch_state::get_gfx0b_tile_info) { - witch_state *state = machine.driver_data(); - int code = state->m_gfx0_vram[tile_index]; - int color = state->m_gfx0_cram[tile_index]; + int code = m_gfx0_vram[tile_index]; + int color = m_gfx0_cram[tile_index]; code=code | ((color & 0xe0) << 3); @@ -253,18 +255,17 @@ static TILE_GET_INFO( get_gfx0b_tile_info ) code=0; } - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code,//tiles beyond 0x7ff only for sprites? color & 0x0f, 0); } -static TILE_GET_INFO( get_gfx0a_tile_info ) +TILE_GET_INFO_MEMBER(witch_state::get_gfx0a_tile_info) { - witch_state *state = machine.driver_data(); - int code = state->m_gfx0_vram[tile_index]; - int color = state->m_gfx0_cram[tile_index]; + int code = m_gfx0_vram[tile_index]; + int color = m_gfx0_cram[tile_index]; code=code | ((color & 0xe0) << 3); @@ -273,20 +274,19 @@ static TILE_GET_INFO( get_gfx0a_tile_info ) code=0; } - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code,//tiles beyond 0x7ff only for sprites? color & 0x0f, 0); } -static TILE_GET_INFO( get_gfx1_tile_info ) +TILE_GET_INFO_MEMBER(witch_state::get_gfx1_tile_info) { - witch_state *state = machine.driver_data(); - int code = state->m_gfx1_vram[tile_index]; - int color = state->m_gfx1_cram[tile_index]; + int code = m_gfx1_vram[tile_index]; + int color = m_gfx1_cram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code | ((color & 0xf0) << 4), (color>>0) & 0x0f, @@ -705,9 +705,9 @@ GFXDECODE_END static VIDEO_START(witch) { witch_state *state = machine.driver_data(); - state->m_gfx0a_tilemap = tilemap_create(machine, get_gfx0a_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); - state->m_gfx0b_tilemap = tilemap_create(machine, get_gfx0b_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); - state->m_gfx1_tilemap = tilemap_create(machine, get_gfx1_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_gfx0a_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx0a_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_gfx0b_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx0b_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_gfx1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(witch_state::get_gfx1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_gfx0a_tilemap->set_transparent_pen(0); state->m_gfx0b_tilemap->set_transparent_pen(0); diff --git a/src/mess/drivers/clcd.c b/src/mess/drivers/clcd.c index 4069f08d294..4661f13754a 100644 --- a/src/mess/drivers/clcd.c +++ b/src/mess/drivers/clcd.c @@ -28,12 +28,11 @@ public: { } - static TILE_GET_INFO( get_clcd_tilemap_tile_info ) + TILE_GET_INFO_MEMBER(get_clcd_tilemap_tile_info) { - clcd_state *state = machine.driver_data(); - int code = state->m_ram.target()[((tile_index / 80) * 128) + (tile_index % 80) + 0x800]; + int code = m_ram.target()[((tile_index / 80) * 128) + (tile_index % 80) + 0x800]; - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } virtual void machine_start() @@ -43,7 +42,7 @@ public: virtual void video_start() { - m_tilemap = tilemap_create(machine(), get_clcd_tilemap_tile_info, TILEMAP_SCAN_ROWS, 6, 8, 80, 16); + m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(clcd_state::get_clcd_tilemap_tile_info),this), TILEMAP_SCAN_ROWS, 6, 8, 80, 16); } UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mess/drivers/supracan.c b/src/mess/drivers/supracan.c index 90dd396e37d..f22b36b25e7 100644 --- a/src/mess/drivers/supracan.c +++ b/src/mess/drivers/supracan.c @@ -194,6 +194,10 @@ public: tilemap_t *m_tilemap_sizes[4][4]; bitmap_ind16 m_sprite_final_bitmap; void write_swapped_byte(int offset, UINT8 byte); + TILE_GET_INFO_MEMBER(get_supracan_tilemap0_tile_info); + TILE_GET_INFO_MEMBER(get_supracan_tilemap1_tile_info); + TILE_GET_INFO_MEMBER(get_supracan_tilemap2_tile_info); + TILE_GET_INFO_MEMBER(get_supracan_roz_tile_info); }; @@ -371,27 +375,27 @@ static void supracan_tilemap_get_info_roz(running_machine &machine, int layer, t -static TILE_GET_INFO( get_supracan_tilemap0_tile_info ) +TILE_GET_INFO_MEMBER(supracan_state::get_supracan_tilemap0_tile_info) { - supracan_tilemap_get_info_common(machine, 0, tileinfo, tile_index); + supracan_tilemap_get_info_common(machine(), 0, tileinfo, tile_index); } -static TILE_GET_INFO( get_supracan_tilemap1_tile_info ) +TILE_GET_INFO_MEMBER(supracan_state::get_supracan_tilemap1_tile_info) { - supracan_tilemap_get_info_common(machine, 1, tileinfo, tile_index); + supracan_tilemap_get_info_common(machine(), 1, tileinfo, tile_index); } -static TILE_GET_INFO( get_supracan_tilemap2_tile_info ) +TILE_GET_INFO_MEMBER(supracan_state::get_supracan_tilemap2_tile_info) { - supracan_tilemap_get_info_common(machine, 2, tileinfo, tile_index); + supracan_tilemap_get_info_common(machine(), 2, tileinfo, tile_index); } -static TILE_GET_INFO( get_supracan_roz_tile_info ) +TILE_GET_INFO_MEMBER(supracan_state::get_supracan_roz_tile_info) { - supracan_tilemap_get_info_roz(machine, 3, tileinfo, tile_index); + supracan_tilemap_get_info_roz(machine(), 3, tileinfo, tile_index); } @@ -404,25 +408,25 @@ static VIDEO_START( supracan ) state->m_vram_swapped = (UINT16*)(*machine.root_device().memregion("ram_gfx2")); state->m_vram_addr_swapped = (UINT8*)(*state->memregion("ram_gfx3")); // hack for 1bpp layer at startup - state->m_tilemap_sizes[0][0] = tilemap_create(machine, get_supracan_tilemap0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_tilemap_sizes[0][1] = tilemap_create(machine, get_supracan_tilemap0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_tilemap_sizes[0][2] = tilemap_create(machine, get_supracan_tilemap0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 32); - state->m_tilemap_sizes[0][3] = tilemap_create(machine, get_supracan_tilemap0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap_sizes[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap_sizes[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tilemap_sizes[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 32); + state->m_tilemap_sizes[0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap_sizes[1][0] = tilemap_create(machine, get_supracan_tilemap1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_tilemap_sizes[1][1] = tilemap_create(machine, get_supracan_tilemap1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_tilemap_sizes[1][2] = tilemap_create(machine, get_supracan_tilemap1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 32); - state->m_tilemap_sizes[1][3] = tilemap_create(machine, get_supracan_tilemap1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap_sizes[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap_sizes[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tilemap_sizes[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 32); + state->m_tilemap_sizes[1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap_sizes[2][0] = tilemap_create(machine, get_supracan_tilemap2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_tilemap_sizes[2][1] = tilemap_create(machine, get_supracan_tilemap2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_tilemap_sizes[2][2] = tilemap_create(machine, get_supracan_tilemap2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 32); - state->m_tilemap_sizes[2][3] = tilemap_create(machine, get_supracan_tilemap2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap_sizes[2][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap_sizes[2][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tilemap_sizes[2][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 32); + state->m_tilemap_sizes[2][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_tilemap2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap_sizes[3][0] = tilemap_create(machine, get_supracan_roz_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_tilemap_sizes[3][1] = tilemap_create(machine, get_supracan_roz_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_tilemap_sizes[3][2] = tilemap_create(machine, get_supracan_roz_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 32); - state->m_tilemap_sizes[3][3] = tilemap_create(machine, get_supracan_roz_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap_sizes[3][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_roz_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap_sizes[3][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_roz_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tilemap_sizes[3][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_roz_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 32); + state->m_tilemap_sizes[3][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supracan_state::get_supracan_roz_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); } static int get_tilemap_dimensions(running_machine &machine, int &xsize, int &ysize, int layer)