diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2012-09-06 12:17:17 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2012-09-06 12:17:17 +0000 |
commit | 5800f74cd6d3ec3d2fb2ace34f3fa5bf8f04c18a (patch) | |
tree | 00327bec932267864b09d2120b7c9798dcee66ba | |
parent | d19e0caf9dfa3890af9e9730d73fd0bf28baaf37 (diff) |
TILE/TILEMAP modernization part 2 (no whatsnew)
838 files changed, 6368 insertions, 6189 deletions
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c index 7d8c7d497d4..9e05d8785c8 100644 --- a/src/mame/drivers/hitme.c +++ b/src/mame/drivers/hitme.c @@ -28,13 +28,12 @@ * *************************************/ -static TILE_GET_INFO( get_hitme_tile_info ) +TILE_GET_INFO_MEMBER(hitme_state::get_hitme_tile_info) { - hitme_state *state = machine.driver_data<hitme_state>(); /* the code is the low 6 bits */ - 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); } @@ -57,14 +56,14 @@ WRITE8_MEMBER(hitme_state::hitme_vidram_w) static VIDEO_START( hitme ) { hitme_state *state = machine.driver_data<hitme_state>(); - state->m_tilemap = tilemap_create(machine, get_hitme_tile_info, TILEMAP_SCAN_ROWS, 8, 10, 40, 19); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),state), TILEMAP_SCAN_ROWS, 8, 10, 40, 19); } static VIDEO_START( barricad ) { hitme_state *state = machine.driver_data<hitme_state>(); - state->m_tilemap = tilemap_create(machine, get_hitme_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 24); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 24); } diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c index 03e0d9e5306..3a2b2cb7a6f 100644 --- a/src/mame/drivers/laserbat.c +++ b/src/mame/drivers/laserbat.c @@ -478,19 +478,18 @@ static GFXDECODE_START( laserbat ) GFXDECODE_ENTRY( "gfx2", 0x0000, sprites_layout, 0, 8 ) /* Sprites */ GFXDECODE_END -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(laserbat_state::get_tile_info) { - laserbat_state *state = machine.driver_data<laserbat_state>(); // wrong color index! - SET_TILE_INFO(0, state->m_videoram[tile_index], state->m_colorram[tile_index] & 0x7f, 0); + SET_TILE_INFO_MEMBER(0, m_videoram[tile_index], m_colorram[tile_index] & 0x7f, 0); } static VIDEO_START( laserbat ) { laserbat_state *state = machine.driver_data<laserbat_state>(); - 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(laserbat_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->save_item(NAME(state->m_videoram)); state->save_item(NAME(state->m_colorram)); diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c index 645808bd409..15ed6171d41 100644 --- a/src/mame/drivers/raiden2.c +++ b/src/mame/drivers/raiden2.c @@ -820,48 +820,44 @@ WRITE16_MEMBER(raiden2_state::raidendx_cop_bank_2_w) /* TILEMAP RELATED (move to video file) */ -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(raiden2_state::get_back_tile_info) { - raiden2_state *state = machine.driver_data<raiden2_state>(); - int tile = state->back_data[tile_index]; + int tile = back_data[tile_index]; int color = (tile >> 12) | (0 << 4); - tile = (tile & 0xfff) | (state->bg_bank << 12); + tile = (tile & 0xfff) | (bg_bank << 12); - SET_TILE_INFO(1,tile+0x0000,color,0); + SET_TILE_INFO_MEMBER(1,tile+0x0000,color,0); } -static TILE_GET_INFO( get_mid_tile_info ) +TILE_GET_INFO_MEMBER(raiden2_state::get_mid_tile_info) { - raiden2_state *state = machine.driver_data<raiden2_state>(); - int tile = state->mid_data[tile_index]; + int tile = mid_data[tile_index]; int color = (tile >> 12) | (2 << 4); - tile = (tile & 0xfff) | (state->mid_bank << 12); + tile = (tile & 0xfff) | (mid_bank << 12); - SET_TILE_INFO(1,tile,color,0); + SET_TILE_INFO_MEMBER(1,tile,color,0); } -static TILE_GET_INFO( get_fore_tile_info ) +TILE_GET_INFO_MEMBER(raiden2_state::get_fore_tile_info) { - raiden2_state *state = machine.driver_data<raiden2_state>(); - int tile = state->fore_data[tile_index]; + int tile = fore_data[tile_index]; int color = (tile >> 12) | (1 << 4); - tile = (tile & 0xfff) | (state->fg_bank << 12); + tile = (tile & 0xfff) | (fg_bank << 12); - SET_TILE_INFO(1,tile,color,0); + SET_TILE_INFO_MEMBER(1,tile,color,0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(raiden2_state::get_text_tile_info) { - raiden2_state *state = machine.driver_data<raiden2_state>(); - int tile = state->text_data[tile_index]; + int tile = text_data[tile_index]; int color = (tile>>12)&0xf; tile &= 0xfff; - SET_TILE_INFO(0,tile,color,0); + SET_TILE_INFO_MEMBER(0,tile,color,0); } /* VIDEO START (move to video file) */ @@ -870,10 +866,10 @@ static TILE_GET_INFO( get_text_tile_info ) static VIDEO_START( raiden2 ) { raiden2_state *state = machine.driver_data<raiden2_state>(); - state->text_layer = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64,32 ); - state->background_layer = tilemap_create(machine, get_back_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,32 ); - state->midground_layer = tilemap_create(machine, get_mid_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,32 ); - state->foreground_layer = tilemap_create(machine, get_fore_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,32 ); + state->text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64,32 ); + state->background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_back_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 ); + state->midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_mid_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 ); + state->foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_fore_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 ); state->midground_layer->set_transparent_pen(15); state->foreground_layer->set_transparent_pen(15); diff --git a/src/mame/includes/1942.h b/src/mame/includes/1942.h index bbbe41aaf47..ae7f3e5d34f 100644 --- a/src/mame/includes/1942.h +++ b/src/mame/includes/1942.h @@ -33,6 +33,8 @@ public: DECLARE_WRITE8_MEMBER(c1942_scroll_w); DECLARE_WRITE8_MEMBER(c1942_c804_w); DECLARE_DRIVER_INIT(1942); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/1943.h b/src/mame/includes/1943.h index 00656257311..b113b7e2f99 100644 --- a/src/mame/includes/1943.h +++ b/src/mame/includes/1943.h @@ -40,6 +40,9 @@ public: DECLARE_WRITE8_MEMBER(c1943_d806_w); DECLARE_DRIVER_INIT(1943b); DECLARE_DRIVER_INIT(1943); + TILE_GET_INFO_MEMBER(c1943_get_bg2_tile_info); + TILE_GET_INFO_MEMBER(c1943_get_bg_tile_info); + TILE_GET_INFO_MEMBER(c1943_get_fg_tile_info); }; diff --git a/src/mame/includes/40love.h b/src/mame/includes/40love.h index 20a18240c00..4b8d8277230 100644 --- a/src/mame/includes/40love.h +++ b/src/mame/includes/40love.h @@ -86,6 +86,7 @@ public: DECLARE_WRITE8_MEMBER(sound_control_3_w); DECLARE_DRIVER_INIT(undoukai); DECLARE_DRIVER_INIT(40love); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/4enraya.h b/src/mame/includes/4enraya.h index b31986b95d0..c72b9d5bf41 100644 --- a/src/mame/includes/4enraya.h +++ b/src/mame/includes/4enraya.h @@ -28,6 +28,7 @@ public: DECLARE_WRITE8_MEMBER(fenraya_videoram_w); DECLARE_WRITE8_MEMBER(sound_control_w); DECLARE_DRIVER_INIT(unkpacg); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/aeroboto.h b/src/mame/includes/aeroboto.h index db7579bd13f..1128338f0dd 100644 --- a/src/mame/includes/aeroboto.h +++ b/src/mame/includes/aeroboto.h @@ -54,6 +54,7 @@ public: DECLARE_WRITE8_MEMBER(aeroboto_3000_w); DECLARE_WRITE8_MEMBER(aeroboto_videoram_w); DECLARE_WRITE8_MEMBER(aeroboto_tilecolor_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h index b005e5af51a..31e4ea32d58 100644 --- a/src/mame/includes/aerofgt.h +++ b/src/mame/includes/aerofgt.h @@ -68,6 +68,12 @@ public: DECLARE_WRITE16_MEMBER(wbbc97_bitmap_enable_w); DECLARE_WRITE16_MEMBER(pspikesb_oki_banking_w); DECLARE_WRITE16_MEMBER(aerfboo2_okim6295_banking_w); + TILE_GET_INFO_MEMBER(get_pspikes_tile_info); + TILE_GET_INFO_MEMBER(karatblz_bg1_tile_info); + TILE_GET_INFO_MEMBER(karatblz_bg2_tile_info); + TILE_GET_INFO_MEMBER(spinlbrk_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/airbustr.h b/src/mame/includes/airbustr.h index 0bc94b0563f..96b6cacec30 100644 --- a/src/mame/includes/airbustr.h +++ b/src/mame/includes/airbustr.h @@ -61,6 +61,8 @@ public: DECLARE_WRITE8_MEMBER(airbustr_colorram2_w); DECLARE_WRITE8_MEMBER(airbustr_scrollregs_w); DECLARE_DRIVER_INIT(airbustr); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/alpha68k.h b/src/mame/includes/alpha68k.h index 782d0aeb5d6..a82d2c978e1 100644 --- a/src/mame/includes/alpha68k.h +++ b/src/mame/includes/alpha68k.h @@ -88,6 +88,7 @@ public: DECLARE_DRIVER_INIT(timesold); DECLARE_DRIVER_INIT(kyros); DECLARE_DRIVER_INIT(sstingry); + TILE_GET_INFO_MEMBER(get_tile_info); }; /* game_id - used to deal with a few game specific situations */ diff --git a/src/mame/includes/ampoker2.h b/src/mame/includes/ampoker2.h index c6cb840b2f9..73b092b930a 100644 --- a/src/mame/includes/ampoker2.h +++ b/src/mame/includes/ampoker2.h @@ -18,6 +18,8 @@ public: DECLARE_WRITE8_MEMBER(ampoker2_videoram_w); DECLARE_DRIVER_INIT(rabbitpk); DECLARE_DRIVER_INIT(piccolop); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(s2k_get_bg_tile_info); }; diff --git a/src/mame/includes/amspdwy.h b/src/mame/includes/amspdwy.h index 4f777aa1ab9..2ab88ee947c 100644 --- a/src/mame/includes/amspdwy.h +++ b/src/mame/includes/amspdwy.h @@ -38,6 +38,8 @@ public: DECLARE_WRITE8_MEMBER(amspdwy_videoram_w); DECLARE_WRITE8_MEMBER(amspdwy_colorram_w); DECLARE_READ8_MEMBER(amspdwy_sound_r); + TILE_GET_INFO_MEMBER(get_tile_info); + TILEMAP_MAPPER_MEMBER(tilemap_scan_cols_back); }; diff --git a/src/mame/includes/angelkds.h b/src/mame/includes/angelkds.h index 968396b8283..0a6237174a6 100644 --- a/src/mame/includes/angelkds.h +++ b/src/mame/includes/angelkds.h @@ -53,6 +53,9 @@ public: DECLARE_WRITE8_MEMBER(angelkds_paletteram_w); DECLARE_DRIVER_INIT(angelkds); DECLARE_DRIVER_INIT(spcpostn); + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(get_bgtop_tile_info); + TILE_GET_INFO_MEMBER(get_bgbot_tile_info); }; diff --git a/src/mame/includes/appoooh.h b/src/mame/includes/appoooh.h index 865dea76952..babe6d152a2 100644 --- a/src/mame/includes/appoooh.h +++ b/src/mame/includes/appoooh.h @@ -43,6 +43,8 @@ public: DECLARE_WRITE8_MEMBER(appoooh_out_w); DECLARE_DRIVER_INIT(robowres); DECLARE_DRIVER_INIT(robowresb); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; #define CHR1_OFST 0x00 /* palette page of char set #1 */ diff --git a/src/mame/includes/aquarium.h b/src/mame/includes/aquarium.h index ed4c915e973..bade9881034 100644 --- a/src/mame/includes/aquarium.h +++ b/src/mame/includes/aquarium.h @@ -40,6 +40,9 @@ public: DECLARE_WRITE16_MEMBER(aquarium_mid_videoram_w); DECLARE_WRITE16_MEMBER(aquarium_bak_videoram_w); DECLARE_DRIVER_INIT(aquarium); + TILE_GET_INFO_MEMBER(get_aquarium_txt_tile_info); + TILE_GET_INFO_MEMBER(get_aquarium_mid_tile_info); + TILE_GET_INFO_MEMBER(get_aquarium_bak_tile_info); }; diff --git a/src/mame/includes/argus.h b/src/mame/includes/argus.h index 4bd2641ddf1..5c004e704b8 100644 --- a/src/mame/includes/argus.h +++ b/src/mame/includes/argus.h @@ -66,6 +66,14 @@ public: DECLARE_WRITE8_MEMBER(butasan_pagedram_w); DECLARE_WRITE8_MEMBER(valtric_unknown_w); DECLARE_WRITE8_MEMBER(butasan_unknown_w); + TILE_GET_INFO_MEMBER(argus_get_tx_tile_info); + TILE_GET_INFO_MEMBER(argus_get_bg0_tile_info); + TILE_GET_INFO_MEMBER(argus_get_bg1_tile_info); + TILE_GET_INFO_MEMBER(valtric_get_tx_tile_info); + TILE_GET_INFO_MEMBER(valtric_get_bg_tile_info); + TILE_GET_INFO_MEMBER(butasan_get_tx_tile_info); + TILE_GET_INFO_MEMBER(butasan_get_bg0_tile_info); + TILE_GET_INFO_MEMBER(butasan_get_bg1_tile_info); }; diff --git a/src/mame/includes/arkanoid.h b/src/mame/includes/arkanoid.h index 13903ba2c16..a235e834be1 100644 --- a/src/mame/includes/arkanoid.h +++ b/src/mame/includes/arkanoid.h @@ -73,6 +73,7 @@ public: DECLARE_DRIVER_INIT(arkangc2); DECLARE_DRIVER_INIT(arkbloc2); DECLARE_DRIVER_INIT(arkangc); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/armedf.h b/src/mame/includes/armedf.h index 90ce73eb1ee..a72071602ab 100644 --- a/src/mame/includes/armedf.h +++ b/src/mame/includes/armedf.h @@ -68,6 +68,13 @@ public: DECLARE_DRIVER_INIT(kozure); DECLARE_DRIVER_INIT(terraf); DECLARE_DRIVER_INIT(terrafb); + TILEMAP_MAPPER_MEMBER(armedf_scan_type1); + TILEMAP_MAPPER_MEMBER(armedf_scan_type2); + TILEMAP_MAPPER_MEMBER(armedf_scan_type3); + TILE_GET_INFO_MEMBER(get_nb1414m4_tx_tile_info); + TILE_GET_INFO_MEMBER(get_armedf_tx_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; class bigfghtr_state : public armedf_state diff --git a/src/mame/includes/ashnojoe.h b/src/mame/includes/ashnojoe.h index 4b898373065..1888cc01dc4 100644 --- a/src/mame/includes/ashnojoe.h +++ b/src/mame/includes/ashnojoe.h @@ -63,6 +63,13 @@ public: DECLARE_WRITE8_MEMBER(ym2203_write_a); DECLARE_WRITE8_MEMBER(ym2203_write_b); DECLARE_DRIVER_INIT(ashnojoe); + TILE_GET_INFO_MEMBER(get_joe_tile_info); + TILE_GET_INFO_MEMBER(get_joe_tile_info_2); + TILE_GET_INFO_MEMBER(get_joe_tile_info_3); + TILE_GET_INFO_MEMBER(get_joe_tile_info_4); + TILE_GET_INFO_MEMBER(get_joe_tile_info_5); + TILE_GET_INFO_MEMBER(get_joe_tile_info_6); + TILE_GET_INFO_MEMBER(get_joe_tile_info_7); }; diff --git a/src/mame/includes/atarifb.h b/src/mame/includes/atarifb.h index 2d68d1b9cff..86b2cd0c67e 100644 --- a/src/mame/includes/atarifb.h +++ b/src/mame/includes/atarifb.h @@ -72,6 +72,9 @@ public: DECLARE_WRITE8_MEMBER(atarifb_alpha1_videoram_w); DECLARE_WRITE8_MEMBER(atarifb_alpha2_videoram_w); DECLARE_WRITE8_MEMBER(atarifb_field_videoram_w); + TILE_GET_INFO_MEMBER(alpha1_get_tile_info); + TILE_GET_INFO_MEMBER(alpha2_get_tile_info); + TILE_GET_INFO_MEMBER(field_get_tile_info); }; diff --git a/src/mame/includes/atarig1.h b/src/mame/includes/atarig1.h index 0a2c9795d95..dd6b6505321 100644 --- a/src/mame/includes/atarig1.h +++ b/src/mame/includes/atarig1.h @@ -44,6 +44,8 @@ public: DECLARE_DRIVER_INIT(pitfightj); DECLARE_DRIVER_INIT(pitfight); DECLARE_DRIVER_INIT(pitfightb); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/atarig42.h b/src/mame/includes/atarig42.h index 66d2c6edca7..beda5e4adb9 100644 --- a/src/mame/includes/atarig42.h +++ b/src/mame/includes/atarig42.h @@ -46,6 +46,9 @@ public: DECLARE_DIRECT_UPDATE_MEMBER(atarig42_sloop_direct_handler); DECLARE_DRIVER_INIT(roadriot); DECLARE_DRIVER_INIT(guardian); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + TILEMAP_MAPPER_MEMBER(atarig42_playfield_scan); }; diff --git a/src/mame/includes/atarigt.h b/src/mame/includes/atarigt.h index e869f05e381..14c33073570 100644 --- a/src/mame/includes/atarigt.h +++ b/src/mame/includes/atarigt.h @@ -65,6 +65,9 @@ public: DECLARE_DRIVER_INIT(primrage20); DECLARE_DRIVER_INIT(primrage); DECLARE_DRIVER_INIT(tmek); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + TILEMAP_MAPPER_MEMBER(atarigt_playfield_scan); }; diff --git a/src/mame/includes/atarigx2.h b/src/mame/includes/atarigx2.h index 3a877a09c0e..c0dee7c1b53 100644 --- a/src/mame/includes/atarigx2.h +++ b/src/mame/includes/atarigx2.h @@ -40,6 +40,9 @@ public: DECLARE_DRIVER_INIT(spclords); DECLARE_DRIVER_INIT(rrreveng); DECLARE_DRIVER_INIT(motofren); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + TILEMAP_MAPPER_MEMBER(atarigx2_playfield_scan); }; diff --git a/src/mame/includes/atarisy1.h b/src/mame/includes/atarisy1.h index ce15d3a09fe..985b22df3e3 100644 --- a/src/mame/includes/atarisy1.h +++ b/src/mame/includes/atarisy1.h @@ -59,6 +59,8 @@ public: DECLARE_DRIVER_INIT(marble); DECLARE_DRIVER_INIT(roadrunn); DECLARE_DRIVER_INIT(indytemp); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/atarisy2.h b/src/mame/includes/atarisy2.h index 16f45ccbd5c..9279911c47d 100644 --- a/src/mame/includes/atarisy2.h +++ b/src/mame/includes/atarisy2.h @@ -73,6 +73,8 @@ public: DECLARE_DRIVER_INIT(csprint); DECLARE_DRIVER_INIT(paperboy); DECLARE_DRIVER_INIT(720); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/atetris.h b/src/mame/includes/atetris.h index 044f98e0eb0..8ada7da6978 100644 --- a/src/mame/includes/atetris.h +++ b/src/mame/includes/atetris.h @@ -27,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(nvram_enable_w); DECLARE_WRITE8_MEMBER(atetris_videoram_w); DECLARE_DRIVER_INIT(atetris); + TILE_GET_INFO_MEMBER(get_tile_info); }; /*----------- defined in video/atetris.c -----------*/ diff --git a/src/mame/includes/badlands.h b/src/mame/includes/badlands.h index c899560c5bc..aa822224aa6 100644 --- a/src/mame/includes/badlands.h +++ b/src/mame/includes/badlands.h @@ -25,6 +25,7 @@ public: DECLARE_WRITE8_MEMBER(audio_io_w); DECLARE_READ16_MEMBER(badlandsb_unk_r); DECLARE_DRIVER_INIT(badlands); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/bagman.h b/src/mame/includes/bagman.h index 593ee21e897..f9449b14380 100644 --- a/src/mame/includes/bagman.h +++ b/src/mame/includes/bagman.h @@ -43,6 +43,7 @@ public: DECLARE_READ8_MEMBER(dial_input_p1_r); DECLARE_READ8_MEMBER(dial_input_p2_r); DECLARE_DRIVER_INIT(bagman); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/bankp.h b/src/mame/includes/bankp.h index 4b0760d13b5..e8238f2c247 100644 --- a/src/mame/includes/bankp.h +++ b/src/mame/includes/bankp.h @@ -33,6 +33,8 @@ public: DECLARE_WRITE8_MEMBER(bankp_videoram2_w); DECLARE_WRITE8_MEMBER(bankp_colorram2_w); DECLARE_WRITE8_MEMBER(bankp_out_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/baraduke.h b/src/mame/includes/baraduke.h index 849b9b00ae4..4417ad00c89 100644 --- a/src/mame/includes/baraduke.h +++ b/src/mame/includes/baraduke.h @@ -32,6 +32,10 @@ public: DECLARE_READ8_MEMBER(baraduke_spriteram_r); DECLARE_WRITE8_MEMBER(baraduke_spriteram_w); DECLARE_DRIVER_INIT(baraduke); + TILEMAP_MAPPER_MEMBER(tx_tilemap_scan); + TILE_GET_INFO_MEMBER(tx_get_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info0); + TILE_GET_INFO_MEMBER(get_tile_info1); }; diff --git a/src/mame/includes/batman.h b/src/mame/includes/batman.h index 6260fb7a31d..96db20385cc 100644 --- a/src/mame/includes/batman.h +++ b/src/mame/includes/batman.h @@ -20,6 +20,9 @@ public: DECLARE_READ16_MEMBER(special_port2_r); DECLARE_WRITE16_MEMBER(latch_w); DECLARE_DRIVER_INIT(batman); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + TILE_GET_INFO_MEMBER(get_playfield2_tile_info); }; diff --git a/src/mame/includes/battlane.h b/src/mame/includes/battlane.h index 9105117ac2c..9a2b6aed5b8 100644 --- a/src/mame/includes/battlane.h +++ b/src/mame/includes/battlane.h @@ -33,6 +33,8 @@ public: DECLARE_WRITE8_MEMBER(battlane_spriteram_w); DECLARE_WRITE8_MEMBER(battlane_bitmap_w); DECLARE_WRITE8_MEMBER(battlane_video_ctrl_w); + TILE_GET_INFO_MEMBER(get_tile_info_bg); + TILEMAP_MAPPER_MEMBER(battlane_tilemap_scan_rows_2x2); }; diff --git a/src/mame/includes/battlex.h b/src/mame/includes/battlex.h index bb84bada06b..e8ec6157344 100644 --- a/src/mame/includes/battlex.h +++ b/src/mame/includes/battlex.h @@ -31,6 +31,7 @@ public: DECLARE_WRITE8_MEMBER(battlex_flipscreen_w); DECLARE_CUSTOM_INPUT_MEMBER(battlex_in0_b4_r); DECLARE_DRIVER_INIT(battlex); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/bbusters.h b/src/mame/includes/bbusters.h index 56e6c3b22b7..5b59182be6d 100644 --- a/src/mame/includes/bbusters.h +++ b/src/mame/includes/bbusters.h @@ -49,6 +49,9 @@ public: DECLARE_WRITE16_MEMBER(bbusters_video_w); DECLARE_WRITE16_MEMBER(bbusters_pf1_w); DECLARE_WRITE16_MEMBER(bbusters_pf2_w); + TILE_GET_INFO_MEMBER(get_bbusters_tile_info); + TILE_GET_INFO_MEMBER(get_pf1_tile_info); + TILE_GET_INFO_MEMBER(get_pf2_tile_info); }; diff --git a/src/mame/includes/bigstrkb.h b/src/mame/includes/bigstrkb.h index 1b33f52de3b..f4af6bb8950 100644 --- a/src/mame/includes/bigstrkb.h +++ b/src/mame/includes/bigstrkb.h @@ -25,6 +25,10 @@ public: DECLARE_WRITE16_MEMBER(bsb_videoram_w); DECLARE_WRITE16_MEMBER(bsb_videoram2_w); DECLARE_WRITE16_MEMBER(bsb_videoram3_w); + TILEMAP_MAPPER_MEMBER(bsb_bg_scan); + TILE_GET_INFO_MEMBER(get_bsb_tile_info); + TILE_GET_INFO_MEMBER(get_bsb_tile2_info); + TILE_GET_INFO_MEMBER(get_bsb_tile3_info); }; diff --git a/src/mame/includes/bionicc.h b/src/mame/includes/bionicc.h index e8a71720b98..23b9c8985f3 100644 --- a/src/mame/includes/bionicc.h +++ b/src/mame/includes/bionicc.h @@ -44,6 +44,9 @@ public: DECLARE_WRITE16_MEMBER(bionicc_paletteram_w); DECLARE_WRITE16_MEMBER(bionicc_scroll_w); DECLARE_WRITE16_MEMBER(bionicc_gfxctrl_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/bking.h b/src/mame/includes/bking.h index c795882cee8..baeaab2602a 100644 --- a/src/mame/includes/bking.h +++ b/src/mame/includes/bking.h @@ -79,6 +79,7 @@ public: DECLARE_READ8_MEMBER(bking_pos_r); DECLARE_WRITE8_MEMBER(unk_w); DECLARE_WRITE8_MEMBER(port_b_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/blktiger.h b/src/mame/includes/blktiger.h index 561eb481649..cb2cf23c220 100644 --- a/src/mame/includes/blktiger.h +++ b/src/mame/includes/blktiger.h @@ -55,6 +55,10 @@ public: DECLARE_WRITE8_MEMBER(blktiger_video_control_w); DECLARE_WRITE8_MEMBER(blktiger_video_enable_w); DECLARE_WRITE8_MEMBER(blktiger_screen_layout_w); + TILEMAP_MAPPER_MEMBER(bg8x4_scan); + TILEMAP_MAPPER_MEMBER(bg4x8_scan); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/blmbycar.h b/src/mame/includes/blmbycar.h index bd2986be7e6..daf7ce1d595 100644 --- a/src/mame/includes/blmbycar.h +++ b/src/mame/includes/blmbycar.h @@ -42,6 +42,8 @@ public: DECLARE_WRITE16_MEMBER(blmbycar_vram_0_w); DECLARE_WRITE16_MEMBER(blmbycar_vram_1_w); DECLARE_DRIVER_INIT(blmbycar); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); }; diff --git a/src/mame/includes/blockade.h b/src/mame/includes/blockade.h index c2251f7e526..5940825e96e 100644 --- a/src/mame/includes/blockade.h +++ b/src/mame/includes/blockade.h @@ -21,6 +21,7 @@ public: DECLARE_WRITE8_MEMBER(blockade_videoram_w); DECLARE_WRITE8_MEMBER(blockade_env_on_w); DECLARE_WRITE8_MEMBER(blockade_env_off_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/bloodbro.h b/src/mame/includes/bloodbro.h index ab9041e01ef..732f06ba4f6 100644 --- a/src/mame/includes/bloodbro.h +++ b/src/mame/includes/bloodbro.h @@ -22,6 +22,9 @@ public: DECLARE_WRITE16_MEMBER(bloodbro_bgvideoram_w); DECLARE_WRITE16_MEMBER(bloodbro_fgvideoram_w); DECLARE_WRITE16_MEMBER(bloodbro_txvideoram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/blstroid.h b/src/mame/includes/blstroid.h index c48803fb79a..4e681054581 100644 --- a/src/mame/includes/blstroid.h +++ b/src/mame/includes/blstroid.h @@ -17,6 +17,7 @@ public: DECLARE_WRITE16_MEMBER(blstroid_halt_until_hblank_0_w); DECLARE_READ16_MEMBER(inputs_r); DECLARE_DRIVER_INIT(blstroid); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/blueprnt.h b/src/mame/includes/blueprnt.h index 33b42de87c2..f4446920a98 100644 --- a/src/mame/includes/blueprnt.h +++ b/src/mame/includes/blueprnt.h @@ -36,6 +36,7 @@ public: DECLARE_WRITE8_MEMBER(blueprnt_colorram_w); DECLARE_WRITE8_MEMBER(blueprnt_flipscreen_w); DECLARE_WRITE8_MEMBER(dipsw_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/bogeyman.h b/src/mame/includes/bogeyman.h index 438b3d5194e..d4065e6ad72 100644 --- a/src/mame/includes/bogeyman.h +++ b/src/mame/includes/bogeyman.h @@ -39,6 +39,8 @@ public: DECLARE_WRITE8_MEMBER(bogeyman_colorram2_w); DECLARE_WRITE8_MEMBER(bogeyman_paletteram_w); DECLARE_WRITE8_MEMBER(bogeyman_colbank_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/bombjack.h b/src/mame/includes/bombjack.h index 61b5917f1f7..c9544cee253 100644 --- a/src/mame/includes/bombjack.h +++ b/src/mame/includes/bombjack.h @@ -34,6 +34,8 @@ public: DECLARE_WRITE8_MEMBER(bombjack_colorram_w); DECLARE_WRITE8_MEMBER(bombjack_background_w); DECLARE_WRITE8_MEMBER(bombjack_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/brkthru.h b/src/mame/includes/brkthru.h index 028c787df5e..143da7110e0 100644 --- a/src/mame/includes/brkthru.h +++ b/src/mame/includes/brkthru.h @@ -39,6 +39,8 @@ public: DECLARE_WRITE8_MEMBER(brkthru_1800_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_DRIVER_INIT(brkthru); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/bsktball.h b/src/mame/includes/bsktball.h index a02310799da..3a74df9efde 100644 --- a/src/mame/includes/bsktball.h +++ b/src/mame/includes/bsktball.h @@ -50,6 +50,7 @@ public: DECLARE_WRITE8_MEMBER(bsktball_led1_w); DECLARE_WRITE8_MEMBER(bsktball_led2_w); DECLARE_WRITE8_MEMBER(bsktball_videoram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/bwing.h b/src/mame/includes/bwing.h index 39d73204704..22e0988d322 100644 --- a/src/mame/includes/bwing.h +++ b/src/mame/includes/bwing.h @@ -67,6 +67,10 @@ public: DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(tilt_pressed); DECLARE_DRIVER_INIT(bwing); + TILE_GET_INFO_MEMBER(get_fgtileinfo); + TILE_GET_INFO_MEMBER(get_bgtileinfo); + TILE_GET_INFO_MEMBER(get_charinfo); + TILEMAP_MAPPER_MEMBER(bwing_scan_cols); }; diff --git a/src/mame/includes/cabal.h b/src/mame/includes/cabal.h index df97ba8a678..d22eccd21d2 100644 --- a/src/mame/includes/cabal.h +++ b/src/mame/includes/cabal.h @@ -30,6 +30,8 @@ public: DECLARE_WRITE8_MEMBER(cabalbl_2_adpcm_w); DECLARE_DRIVER_INIT(cabal); DECLARE_DRIVER_INIT(cabalbl2); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/calomega.h b/src/mame/includes/calomega.h index e74e76af0a9..d86603a9376 100644 --- a/src/mame/includes/calomega.h +++ b/src/mame/includes/calomega.h @@ -40,6 +40,7 @@ public: DECLARE_DRIVER_INIT(standard); DECLARE_DRIVER_INIT(comg080); DECLARE_DRIVER_INIT(jjpoker); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/canyon.h b/src/mame/includes/canyon.h index 0da2efee967..d25c9190e5a 100644 --- a/src/mame/includes/canyon.h +++ b/src/mame/includes/canyon.h @@ -33,6 +33,7 @@ public: DECLARE_READ8_MEMBER(canyon_options_r); DECLARE_WRITE8_MEMBER(canyon_led_w); DECLARE_WRITE8_MEMBER(canyon_videoram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/carjmbre.h b/src/mame/includes/carjmbre.h index 2727bc4bdd6..d89ce945e5b 100644 --- a/src/mame/includes/carjmbre.h +++ b/src/mame/includes/carjmbre.h @@ -27,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(carjmbre_bgcolor_w); DECLARE_WRITE8_MEMBER(carjmbre_8806_w); DECLARE_WRITE8_MEMBER(carjmbre_videoram_w); + TILE_GET_INFO_MEMBER(get_carjmbre_tile_info); }; diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h index 88fefdf82f4..16a2de2fb55 100644 --- a/src/mame/includes/cave.h +++ b/src/mame/includes/cave.h @@ -181,6 +181,11 @@ public: DECLARE_DRIVER_INIT(sailormn); DECLARE_DRIVER_INIT(dfeveron); DECLARE_DRIVER_INIT(metmqstr); + TILE_GET_INFO_MEMBER(sailormn_get_tile_info_2); + 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); }; /*----------- defined in video/cave.c -----------*/ diff --git a/src/mame/includes/cbasebal.h b/src/mame/includes/cbasebal.h index f35e3d40bff..d779be81752 100644 --- a/src/mame/includes/cbasebal.h +++ b/src/mame/includes/cbasebal.h @@ -43,6 +43,8 @@ public: DECLARE_WRITE8_MEMBER(cbasebal_scrollx_w); DECLARE_WRITE8_MEMBER(cbasebal_scrolly_w); DECLARE_DRIVER_INIT(cbasebal); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; /*----------- defined in video/cbasebal.c -----------*/ diff --git a/src/mame/includes/cclimber.h b/src/mame/includes/cclimber.h index 6d49f9e5d2a..47c21af7004 100644 --- a/src/mame/includes/cclimber.h +++ b/src/mame/includes/cclimber.h @@ -52,6 +52,12 @@ public: DECLARE_DRIVER_INIT(cclimberj); DECLARE_DRIVER_INIT(cannonb2); DECLARE_DRIVER_INIT(cannonb); + TILE_GET_INFO_MEMBER(cclimber_get_pf_tile_info); + TILE_GET_INFO_MEMBER(swimmer_get_pf_tile_info); + TILE_GET_INFO_MEMBER(toprollr_get_pf_tile_info); + TILE_GET_INFO_MEMBER(cclimber_get_bs_tile_info); + TILE_GET_INFO_MEMBER(toprollr_get_bs_tile_info); + TILE_GET_INFO_MEMBER(toproller_get_bg_tile_info); }; diff --git a/src/mame/includes/centiped.h b/src/mame/includes/centiped.h index 21123edf7cd..a1b937cebc3 100644 --- a/src/mame/includes/centiped.h +++ b/src/mame/includes/centiped.h @@ -63,6 +63,10 @@ public: DECLARE_WRITE8_MEMBER(mazeinv_paletteram_w); DECLARE_DRIVER_INIT(multiped); DECLARE_DRIVER_INIT(bullsdrt); + TILE_GET_INFO_MEMBER(centiped_get_tile_info); + TILE_GET_INFO_MEMBER(warlords_get_tile_info); + TILE_GET_INFO_MEMBER(milliped_get_tile_info); + TILE_GET_INFO_MEMBER(bullsdrt_get_tile_info); }; diff --git a/src/mame/includes/chaknpop.h b/src/mame/includes/chaknpop.h index dae1cb66dac..d217ee0aa02 100644 --- a/src/mame/includes/chaknpop.h +++ b/src/mame/includes/chaknpop.h @@ -47,6 +47,7 @@ public: DECLARE_WRITE8_MEMBER(chaknpop_attrram_w); DECLARE_WRITE8_MEMBER(unknown_port_1_w); DECLARE_WRITE8_MEMBER(unknown_port_2_w); + TILE_GET_INFO_MEMBER(chaknpop_get_tx_tile_info); }; diff --git a/src/mame/includes/champbas.h b/src/mame/includes/champbas.h index b23d1bca6d9..1e3e646a4e8 100644 --- a/src/mame/includes/champbas.h +++ b/src/mame/includes/champbas.h @@ -51,6 +51,8 @@ public: DECLARE_WRITE8_MEMBER(champbas_dac2_w); DECLARE_DRIVER_INIT(exctsccr); DECLARE_DRIVER_INIT(champbas); + TILE_GET_INFO_MEMBER(champbas_get_bg_tile_info); + TILE_GET_INFO_MEMBER(exctsccr_get_bg_tile_info); }; diff --git a/src/mame/includes/cheekyms.h b/src/mame/includes/cheekyms.h index b688362b55d..1ce8c404e30 100644 --- a/src/mame/includes/cheekyms.h +++ b/src/mame/includes/cheekyms.h @@ -31,6 +31,7 @@ public: DECLARE_WRITE8_MEMBER(cheekyms_port_40_w); DECLARE_WRITE8_MEMBER(cheekyms_port_80_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(cheekyms_get_tile_info); }; diff --git a/src/mame/includes/circus.h b/src/mame/includes/circus.h index b69181b04b5..a8656078967 100644 --- a/src/mame/includes/circus.h +++ b/src/mame/includes/circus.h @@ -32,6 +32,7 @@ public: DECLARE_DRIVER_INIT(circus); DECLARE_DRIVER_INIT(robotbwl); DECLARE_DRIVER_INIT(crash); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/circusc.h b/src/mame/includes/circusc.h index 88ac954b7c9..5b790f8f7d1 100644 --- a/src/mame/includes/circusc.h +++ b/src/mame/includes/circusc.h @@ -52,6 +52,7 @@ public: DECLARE_WRITE8_MEMBER(circusc_colorram_w); DECLARE_WRITE8_MEMBER(circusc_flipscreen_w); DECLARE_DRIVER_INIT(circusc); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/cischeat.h b/src/mame/includes/cischeat.h index a29770218b6..5fcaf2e6538 100644 --- a/src/mame/includes/cischeat.h +++ b/src/mame/includes/cischeat.h @@ -73,6 +73,10 @@ public: DECLARE_DRIVER_INIT(cischeat); DECLARE_DRIVER_INIT(bigrun); DECLARE_DRIVER_INIT(f1gpstar); + TILEMAP_MAPPER_MEMBER(cischeat_scan_8x8); + TILEMAP_MAPPER_MEMBER(cischeat_scan_16x16); + TILE_GET_INFO_MEMBER(cischeat_get_scroll_tile_info_8x8); + TILE_GET_INFO_MEMBER(cischeat_get_scroll_tile_info_16x16); }; diff --git a/src/mame/includes/citycon.h b/src/mame/includes/citycon.h index fb049fdcd26..6dc5e0cd774 100644 --- a/src/mame/includes/citycon.h +++ b/src/mame/includes/citycon.h @@ -34,6 +34,9 @@ public: DECLARE_WRITE8_MEMBER(citycon_linecolor_w); DECLARE_WRITE8_MEMBER(citycon_background_w); DECLARE_DRIVER_INIT(citycon); + TILEMAP_MAPPER_MEMBER(citycon_scan); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/cloak.h b/src/mame/includes/cloak.h index 73c63d00a62..1561483cba0 100644 --- a/src/mame/includes/cloak.h +++ b/src/mame/includes/cloak.h @@ -38,6 +38,7 @@ public: DECLARE_WRITE8_MEMBER(cloak_flipscreen_w); void set_current_bitmap_videoram_pointer(); void adjust_xy(int offset); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/clshroad.h b/src/mame/includes/clshroad.h index 834cb465ad8..7e709f588e1 100644 --- a/src/mame/includes/clshroad.h +++ b/src/mame/includes/clshroad.h @@ -20,6 +20,11 @@ public: DECLARE_WRITE8_MEMBER(clshroad_vram_0_w); DECLARE_WRITE8_MEMBER(clshroad_vram_1_w); DECLARE_DRIVER_INIT(firebatl); + TILE_GET_INFO_MEMBER(get_tile_info_0a); + TILE_GET_INFO_MEMBER(get_tile_info_0b); + TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_extra); + TILE_GET_INFO_MEMBER(get_tile_info_fb1); + TILE_GET_INFO_MEMBER(get_tile_info_1); }; diff --git a/src/mame/includes/combatsc.h b/src/mame/includes/combatsc.h index 30ccb016151..18ed314b29f 100644 --- a/src/mame/includes/combatsc.h +++ b/src/mame/includes/combatsc.h @@ -66,6 +66,12 @@ public: DECLARE_WRITE8_MEMBER(combatsc_portA_w); DECLARE_WRITE8_MEMBER(combatscb_dac_w); DECLARE_DRIVER_INIT(combatsc); + TILE_GET_INFO_MEMBER(get_tile_info0); + TILE_GET_INFO_MEMBER(get_tile_info1); + TILE_GET_INFO_MEMBER(get_text_info); + TILE_GET_INFO_MEMBER(get_tile_info0_bootleg); + TILE_GET_INFO_MEMBER(get_tile_info1_bootleg); + TILE_GET_INFO_MEMBER(get_text_info_bootleg); }; diff --git a/src/mame/includes/commando.h b/src/mame/includes/commando.h index 8bf37ca5e81..feae3d745c4 100644 --- a/src/mame/includes/commando.h +++ b/src/mame/includes/commando.h @@ -41,6 +41,8 @@ public: DECLARE_WRITE8_MEMBER(commando_c804_w); DECLARE_DRIVER_INIT(spaceinv); DECLARE_DRIVER_INIT(commando); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/compgolf.h b/src/mame/includes/compgolf.h index 19aa17ef242..0100d0e8bab 100644 --- a/src/mame/includes/compgolf.h +++ b/src/mame/includes/compgolf.h @@ -34,6 +34,9 @@ public: DECLARE_WRITE8_MEMBER(compgolf_scrollx_lo_w); DECLARE_WRITE8_MEMBER(compgolf_scrolly_lo_w); DECLARE_DRIVER_INIT(compgolf); + TILE_GET_INFO_MEMBER(get_text_info); + TILEMAP_MAPPER_MEMBER(back_scan); + TILE_GET_INFO_MEMBER(get_back_info); }; diff --git a/src/mame/includes/contra.h b/src/mame/includes/contra.h index a7c46db7f58..00cbbcd1830 100644 --- a/src/mame/includes/contra.h +++ b/src/mame/includes/contra.h @@ -54,6 +54,9 @@ public: DECLARE_WRITE8_MEMBER(contra_text_cram_w); DECLARE_WRITE8_MEMBER(contra_K007121_ctrl_0_w); DECLARE_WRITE8_MEMBER(contra_K007121_ctrl_1_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/cop01.h b/src/mame/includes/cop01.h index d465d820947..872626bd256 100644 --- a/src/mame/includes/cop01.h +++ b/src/mame/includes/cop01.h @@ -40,6 +40,8 @@ public: DECLARE_WRITE8_MEMBER(cop01_vreg_w); DECLARE_CUSTOM_INPUT_MEMBER(mightguy_area_r); DECLARE_DRIVER_INIT(mightguy); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h index f0fa31d1da2..7f6f6d20add 100644 --- a/src/mame/includes/cps1.h +++ b/src/mame/includes/cps1.h @@ -192,6 +192,12 @@ public: DECLARE_DRIVER_INIT(ssf2tb); DECLARE_DRIVER_INIT(pzloop2); DECLARE_DRIVER_INIT(gigaman2); + TILEMAP_MAPPER_MEMBER(tilemap0_scan); + TILEMAP_MAPPER_MEMBER(tilemap1_scan); + TILEMAP_MAPPER_MEMBER(tilemap2_scan); + TILE_GET_INFO_MEMBER(get_tile0_info); + TILE_GET_INFO_MEMBER(get_tile1_info); + TILE_GET_INFO_MEMBER(get_tile2_info); }; /*----------- defined in drivers/cps1.c -----------*/ diff --git a/src/mame/includes/crbaloon.h b/src/mame/includes/crbaloon.h index 6a9e9c90c57..ede36fec682 100644 --- a/src/mame/includes/crbaloon.h +++ b/src/mame/includes/crbaloon.h @@ -32,6 +32,7 @@ public: DECLARE_WRITE8_MEMBER(crbaloon_videoram_w); DECLARE_WRITE8_MEMBER(crbaloon_colorram_w); DECLARE_CUSTOM_INPUT_MEMBER(pc3092_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/crospang.h b/src/mame/includes/crospang.h index d6c19a9b2c9..bdf5e4655ae 100644 --- a/src/mame/includes/crospang.h +++ b/src/mame/includes/crospang.h @@ -39,6 +39,8 @@ public: DECLARE_WRITE16_MEMBER(crospang_fg_videoram_w); DECLARE_WRITE16_MEMBER(crospang_bg_videoram_w); DECLARE_DRIVER_INIT(crospang); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/crshrace.h b/src/mame/includes/crshrace.h index e6abefc790f..a69c5a3680b 100644 --- a/src/mame/includes/crshrace.h +++ b/src/mame/includes/crshrace.h @@ -45,6 +45,8 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(country_sndpending_r); DECLARE_DRIVER_INIT(crshrace2); DECLARE_DRIVER_INIT(crshrace); + TILE_GET_INFO_MEMBER(get_tile_info1); + TILE_GET_INFO_MEMBER(get_tile_info2); }; /*----------- defined in video/crshrace.c -----------*/ diff --git a/src/mame/includes/cyberbal.h b/src/mame/includes/cyberbal.h index a93fd036a4e..85b6b6cde0d 100644 --- a/src/mame/includes/cyberbal.h +++ b/src/mame/includes/cyberbal.h @@ -44,6 +44,10 @@ public: DECLARE_DRIVER_INIT(cyberbalt); DECLARE_DRIVER_INIT(cyberbal2p); DECLARE_DRIVER_INIT(cyberbal); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_alpha2_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + TILE_GET_INFO_MEMBER(get_playfield2_tile_info); }; diff --git a/src/mame/includes/darius.h b/src/mame/includes/darius.h index 786d3edea7f..ac8ec866773 100644 --- a/src/mame/includes/darius.h +++ b/src/mame/includes/darius.h @@ -86,6 +86,7 @@ public: DECLARE_WRITE8_MEMBER(darius_write_portB1); DECLARE_WRITE8_MEMBER(adpcm_data_w); DECLARE_DRIVER_INIT(darius); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/darkmist.h b/src/mame/includes/darkmist.h index 90a765207b0..c38cd9dbed2 100644 --- a/src/mame/includes/darkmist.h +++ b/src/mame/includes/darkmist.h @@ -22,6 +22,9 @@ public: DECLARE_WRITE8_MEMBER(darkmist_hw_w); DECLARE_DRIVER_INIT(darkmist); + TILE_GET_INFO_MEMBER(get_bgtile_info); + TILE_GET_INFO_MEMBER(get_fgtile_info); + TILE_GET_INFO_MEMBER(get_txttile_info); }; diff --git a/src/mame/includes/dbz.h b/src/mame/includes/dbz.h index 977412686ac..447d9a66f6a 100644 --- a/src/mame/includes/dbz.h +++ b/src/mame/includes/dbz.h @@ -45,6 +45,8 @@ public: DECLARE_DRIVER_INIT(dbza); DECLARE_DRIVER_INIT(dbz); DECLARE_DRIVER_INIT(dbz2); + TILE_GET_INFO_MEMBER(get_dbz_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_dbz_bg1_tile_info); }; diff --git a/src/mame/includes/dcon.h b/src/mame/includes/dcon.h index efaee34ea8b..8d8e042af61 100644 --- a/src/mame/includes/dcon.h +++ b/src/mame/includes/dcon.h @@ -32,6 +32,10 @@ public: DECLARE_WRITE16_MEMBER(dcon_midground_w); DECLARE_WRITE16_MEMBER(dcon_text_w); DECLARE_DRIVER_INIT(sdgndmps); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_fore_tile_info); + TILE_GET_INFO_MEMBER(get_mid_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/dday.h b/src/mame/includes/dday.h index 2df8e07820b..d05ca6dc7f3 100644 --- a/src/mame/includes/dday.h +++ b/src/mame/includes/dday.h @@ -42,6 +42,10 @@ public: DECLARE_READ8_MEMBER(dday_colorram_r); DECLARE_WRITE8_MEMBER(dday_sl_control_w); DECLARE_WRITE8_MEMBER(dday_control_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); + TILE_GET_INFO_MEMBER(get_sl_tile_info); }; diff --git a/src/mame/includes/ddragon.h b/src/mame/includes/ddragon.h index c975c33a9d9..9dcf7df304c 100644 --- a/src/mame/includes/ddragon.h +++ b/src/mame/includes/ddragon.h @@ -89,6 +89,10 @@ public: DECLARE_DRIVER_INIT(ddragon); DECLARE_DRIVER_INIT(ddragon6809); DECLARE_DRIVER_INIT(chinagat); + TILEMAP_MAPPER_MEMBER(background_scan); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_16color_tile_info); }; diff --git a/src/mame/includes/ddragon3.h b/src/mame/includes/ddragon3.h index ab1c3e25d74..dba603e5321 100644 --- a/src/mame/includes/ddragon3.h +++ b/src/mame/includes/ddragon3.h @@ -42,6 +42,8 @@ public: DECLARE_WRITE16_MEMBER(ddragon3_bg_videoram_w); DECLARE_WRITE16_MEMBER(ddragon3_fg_videoram_w); DECLARE_WRITE8_MEMBER(oki_bankswitch_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/ddribble.h b/src/mame/includes/ddribble.h index a3ff9ef3049..ecd830f4f3f 100644 --- a/src/mame/includes/ddribble.h +++ b/src/mame/includes/ddribble.h @@ -52,6 +52,9 @@ public: DECLARE_WRITE8_MEMBER(ddribble_bg_videoram_w); DECLARE_READ8_MEMBER(ddribble_vlm5030_busy_r); DECLARE_WRITE8_MEMBER(ddribble_vlm5030_ctrl_w); + TILEMAP_MAPPER_MEMBER(tilemap_scan); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; /*----------- defined in video/ddribble.c -----------*/ diff --git a/src/mame/includes/deadang.h b/src/mame/includes/deadang.h index b4df373e951..de856487cb0 100644 --- a/src/mame/includes/deadang.h +++ b/src/mame/includes/deadang.h @@ -26,6 +26,11 @@ public: DECLARE_WRITE16_MEMBER(deadang_bank_w); DECLARE_DRIVER_INIT(deadang); DECLARE_DRIVER_INIT(ghunter); + TILEMAP_MAPPER_MEMBER(bg_scan); + TILE_GET_INFO_MEMBER(get_pf3_tile_info); + TILE_GET_INFO_MEMBER(get_pf2_tile_info); + TILE_GET_INFO_MEMBER(get_pf1_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/dec8.h b/src/mame/includes/dec8.h index 49e30bc428d..ac943093b74 100644 --- a/src/mame/includes/dec8.h +++ b/src/mame/includes/dec8.h @@ -100,6 +100,16 @@ public: DECLARE_DRIVER_INIT(lastmisn); DECLARE_DRIVER_INIT(gondo); DECLARE_DRIVER_INIT(oscar); + TILE_GET_INFO_MEMBER(get_cobracom_fix_tile_info); + TILE_GET_INFO_MEMBER(get_ghostb_fix_tile_info); + TILE_GET_INFO_MEMBER(get_oscar_fix_tile_info); + TILEMAP_MAPPER_MEMBER(lastmisn_scan_rows); + TILE_GET_INFO_MEMBER(get_lastmisn_tile_info); + TILE_GET_INFO_MEMBER(get_lastmisn_fix_tile_info); + TILE_GET_INFO_MEMBER(get_srdarwin_fix_tile_info); + TILE_GET_INFO_MEMBER(get_srdarwin_tile_info); + TILE_GET_INFO_MEMBER(get_gondo_fix_tile_info); + TILE_GET_INFO_MEMBER(get_gondo_tile_info); }; /*----------- defined in video/dec8.c -----------*/ diff --git a/src/mame/includes/deniam.h b/src/mame/includes/deniam.h index 9fd73f23f24..23748fb8504 100644 --- a/src/mame/includes/deniam.h +++ b/src/mame/includes/deniam.h @@ -53,6 +53,10 @@ public: DECLARE_WRITE16_MEMBER(deniam16c_oki_rom_bank_w); DECLARE_DRIVER_INIT(karianx); DECLARE_DRIVER_INIT(logicpro); + TILEMAP_MAPPER_MEMBER(scan_pages); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/djboy.h b/src/mame/includes/djboy.h index 638f325fe15..ec717b9b7d0 100644 --- a/src/mame/includes/djboy.h +++ b/src/mame/includes/djboy.h @@ -67,6 +67,7 @@ public: DECLARE_WRITE8_MEMBER(djboy_paletteram_w); DECLARE_DRIVER_INIT(djboy); DECLARE_DRIVER_INIT(djboyj); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/dkong.h b/src/mame/includes/dkong.h index b6238b49215..a7796e43984 100644 --- a/src/mame/includes/dkong.h +++ b/src/mame/includes/dkong.h @@ -237,6 +237,8 @@ public: DECLARE_DRIVER_INIT(dkingjr); DECLARE_DRIVER_INIT(drakton); DECLARE_DRIVER_INIT(dkongx); + TILE_GET_INFO_MEMBER(dkong_bg_tile_info); + TILE_GET_INFO_MEMBER(radarscp1_bg_tile_info); }; /*----------- defined in video/dkong.c -----------*/ diff --git a/src/mame/includes/docastle.h b/src/mame/includes/docastle.h index 946a7410b05..ecb9be5006f 100644 --- a/src/mame/includes/docastle.h +++ b/src/mame/includes/docastle.h @@ -41,6 +41,7 @@ public: DECLARE_WRITE8_MEMBER(docastle_flipscreen_on_w); DECLARE_READ8_MEMBER(idsoccer_adpcm_status_r); DECLARE_WRITE8_MEMBER(idsoccer_adpcm_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/dogfgt.h b/src/mame/includes/dogfgt.h index 50143bb9a4f..e36aab993ed 100644 --- a/src/mame/includes/dogfgt.h +++ b/src/mame/includes/dogfgt.h @@ -47,6 +47,7 @@ public: DECLARE_WRITE8_MEMBER(dogfgt_bgvideoram_w); DECLARE_WRITE8_MEMBER(dogfgt_scroll_w); DECLARE_WRITE8_MEMBER(dogfgt_1800_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/dooyong.h b/src/mame/includes/dooyong.h index 898586db0e3..8f684f56d91 100644 --- a/src/mame/includes/dooyong.h +++ b/src/mame/includes/dooyong.h @@ -63,6 +63,12 @@ public: DECLARE_WRITE8_MEMBER(flytiger_ctrl_w); DECLARE_WRITE16_MEMBER(rshark_ctrl_w); DECLARE_READ8_MEMBER(unk_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_fg2_tile_info); + TILE_GET_INFO_MEMBER(flytiger_get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/dragrace.h b/src/mame/includes/dragrace.h index e9426ca6aa9..a034243c607 100644 --- a/src/mame/includes/dragrace.h +++ b/src/mame/includes/dragrace.h @@ -48,6 +48,7 @@ public: DECLARE_READ8_MEMBER(dragrace_input_r); DECLARE_READ8_MEMBER(dragrace_steering_r); DECLARE_READ8_MEMBER(dragrace_scanline_r); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/drgnmst.h b/src/mame/includes/drgnmst.h index 74469b4f53f..3c1e466c1c9 100644 --- a/src/mame/includes/drgnmst.h +++ b/src/mame/includes/drgnmst.h @@ -57,6 +57,12 @@ public: DECLARE_WRITE16_MEMBER(drgnmst_bg_videoram_w); DECLARE_WRITE16_MEMBER(drgnmst_md_videoram_w); DECLARE_DRIVER_INIT(drgnmst); + TILE_GET_INFO_MEMBER(get_drgnmst_fg_tile_info); + TILE_GET_INFO_MEMBER(get_drgnmst_bg_tile_info); + TILE_GET_INFO_MEMBER(get_drgnmst_md_tile_info); + TILEMAP_MAPPER_MEMBER(drgnmst_fg_tilemap_scan_cols); + TILEMAP_MAPPER_MEMBER(drgnmst_md_tilemap_scan_cols); + TILEMAP_MAPPER_MEMBER(drgnmst_bg_tilemap_scan_cols); }; diff --git a/src/mame/includes/drmicro.h b/src/mame/includes/drmicro.h index 1e9408ddf4a..40df8d10bf5 100644 --- a/src/mame/includes/drmicro.h +++ b/src/mame/includes/drmicro.h @@ -28,6 +28,8 @@ public: DECLARE_WRITE8_MEMBER(nmi_enable_w); DECLARE_WRITE8_MEMBER(pcm_set_w); DECLARE_WRITE8_MEMBER(drmicro_videoram_w); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/dynduke.h b/src/mame/includes/dynduke.h index 050033aaaea..0b9ba79bde4 100644 --- a/src/mame/includes/dynduke.h +++ b/src/mame/includes/dynduke.h @@ -36,6 +36,9 @@ public: DECLARE_WRITE16_MEMBER(dynduke_gfxbank_w); DECLARE_WRITE16_MEMBER(dynduke_control_w); DECLARE_DRIVER_INIT(dynduke); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/eprom.h b/src/mame/includes/eprom.h index 844b266a186..344be12e3e6 100644 --- a/src/mame/includes/eprom.h +++ b/src/mame/includes/eprom.h @@ -24,6 +24,9 @@ public: DECLARE_DRIVER_INIT(klaxp); DECLARE_DRIVER_INIT(guts); DECLARE_DRIVER_INIT(eprom); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + TILE_GET_INFO_MEMBER(guts_get_playfield_tile_info); }; diff --git a/src/mame/includes/equites.h b/src/mame/includes/equites.h index b6c52fe6bf7..a51fcb18f56 100644 --- a/src/mame/includes/equites.h +++ b/src/mame/includes/equites.h @@ -94,6 +94,10 @@ public: DECLARE_DRIVER_INIT(gekisou); DECLARE_DRIVER_INIT(splndrbt); DECLARE_DRIVER_INIT(equites); + TILE_GET_INFO_MEMBER(equites_fg_info); + TILE_GET_INFO_MEMBER(splndrbt_fg_info); + TILE_GET_INFO_MEMBER(equites_bg_info); + TILE_GET_INFO_MEMBER(splndrbt_bg_info); }; diff --git a/src/mame/includes/esd16.h b/src/mame/includes/esd16.h index 3d128e20890..3c50bf8a111 100644 --- a/src/mame/includes/esd16.h +++ b/src/mame/includes/esd16.h @@ -56,6 +56,10 @@ public: DECLARE_WRITE16_MEMBER(esd16_vram_1_w); DECLARE_WRITE16_MEMBER(esd16_tilemap0_color_w); DECLARE_WRITE16_MEMBER(esd16_tilemap0_color_jumppop_w); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_0_16x16); + TILE_GET_INFO_MEMBER(get_tile_info_1); + TILE_GET_INFO_MEMBER(get_tile_info_1_16x16); }; diff --git a/src/mame/includes/espial.h b/src/mame/includes/espial.h index cf2700ed259..39b3a0350a6 100644 --- a/src/mame/includes/espial.h +++ b/src/mame/includes/espial.h @@ -45,6 +45,7 @@ public: DECLARE_WRITE8_MEMBER(espial_attributeram_w); DECLARE_WRITE8_MEMBER(espial_scrollram_w); DECLARE_WRITE8_MEMBER(espial_flipscreen_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; /*----------- defined in video/espial.c -----------*/ diff --git a/src/mame/includes/exedexes.h b/src/mame/includes/exedexes.h index 460cc953237..0ab9c5f1f60 100644 --- a/src/mame/includes/exedexes.h +++ b/src/mame/includes/exedexes.h @@ -39,6 +39,11 @@ public: DECLARE_WRITE8_MEMBER(exedexes_colorram_w); DECLARE_WRITE8_MEMBER(exedexes_c804_w); DECLARE_WRITE8_MEMBER(exedexes_gfxctrl_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILEMAP_MAPPER_MEMBER(exedexes_bg_tilemap_scan); + TILEMAP_MAPPER_MEMBER(exedexes_fg_tilemap_scan); }; diff --git a/src/mame/includes/exprraid.h b/src/mame/includes/exprraid.h index 956ca9ba3aa..4a7586e5678 100644 --- a/src/mame/includes/exprraid.h +++ b/src/mame/includes/exprraid.h @@ -48,6 +48,8 @@ public: DECLARE_DRIVER_INIT(wexpressb); DECLARE_DRIVER_INIT(wexpressb2); DECLARE_DRIVER_INIT(wexpressb3); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/f1gp.h b/src/mame/includes/f1gp.h index e70b361dd36..3feb3e3f32c 100644 --- a/src/mame/includes/f1gp.h +++ b/src/mame/includes/f1gp.h @@ -64,6 +64,9 @@ public: DECLARE_WRITE16_MEMBER(f1gp_fgscroll_w); DECLARE_WRITE16_MEMBER(f1gp_gfxctrl_w); DECLARE_WRITE16_MEMBER(f1gp2_gfxctrl_w); + TILE_GET_INFO_MEMBER(f1gp_get_roz_tile_info); + TILE_GET_INFO_MEMBER(f1gp2_get_roz_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; /*----------- defined in video/f1gp.c -----------*/ diff --git a/src/mame/includes/fastfred.h b/src/mame/includes/fastfred.h index 2b0cc641b38..b8826e37dab 100644 --- a/src/mame/includes/fastfred.h +++ b/src/mame/includes/fastfred.h @@ -53,6 +53,10 @@ public: DECLARE_DRIVER_INIT(boggy84); DECLARE_DRIVER_INIT(jumpcoas); DECLARE_DRIVER_INIT(boggy84b); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(imago_get_tile_info_bg); + TILE_GET_INFO_MEMBER(imago_get_tile_info_fg); + TILE_GET_INFO_MEMBER(imago_get_tile_info_web); }; diff --git a/src/mame/includes/fastlane.h b/src/mame/includes/fastlane.h index 8923ad2efad..ba9aaef3ef9 100644 --- a/src/mame/includes/fastlane.h +++ b/src/mame/includes/fastlane.h @@ -43,6 +43,8 @@ public: DECLARE_WRITE8_MEMBER(fastlane_k1_k007232_w); DECLARE_READ8_MEMBER(fastlane_k2_k007232_r); DECLARE_WRITE8_MEMBER(fastlane_k2_k007232_w); + TILE_GET_INFO_MEMBER(get_tile_info0); + TILE_GET_INFO_MEMBER(get_tile_info1); }; diff --git a/src/mame/includes/fcombat.h b/src/mame/includes/fcombat.h index 134cd68715f..cb89c11962f 100644 --- a/src/mame/includes/fcombat.h +++ b/src/mame/includes/fcombat.h @@ -61,6 +61,7 @@ public: DECLARE_WRITE8_MEMBER(fcombat_videoreg_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_DRIVER_INIT(fcombat); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/finalizr.h b/src/mame/includes/finalizr.h index 73e86bb94de..468bb79d851 100644 --- a/src/mame/includes/finalizr.h +++ b/src/mame/includes/finalizr.h @@ -47,6 +47,8 @@ public: DECLARE_WRITE8_MEMBER(i8039_T0_w); DECLARE_WRITE8_MEMBER(finalizr_videoctrl_w); DECLARE_DRIVER_INIT(finalizr); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/firetrap.h b/src/mame/includes/firetrap.h index e7ba83096f5..170f9f2834b 100644 --- a/src/mame/includes/firetrap.h +++ b/src/mame/includes/firetrap.h @@ -61,6 +61,11 @@ public: DECLARE_WRITE8_MEMBER(firetrap_bg2_scrollx_w); DECLARE_WRITE8_MEMBER(firetrap_bg2_scrolly_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILEMAP_MAPPER_MEMBER(get_fg_memory_offset); + TILEMAP_MAPPER_MEMBER(get_bg_memory_offset); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/firetrk.h b/src/mame/includes/firetrk.h index 26d605c7f22..a6628bb8e60 100644 --- a/src/mame/includes/firetrk.h +++ b/src/mame/includes/firetrk.h @@ -89,6 +89,12 @@ public: DECLARE_INPUT_CHANGED_MEMBER(service_mode_switch_changed); DECLARE_INPUT_CHANGED_MEMBER(firetrk_horn_changed); DECLARE_INPUT_CHANGED_MEMBER(gear_changed); + TILE_GET_INFO_MEMBER(firetrk_get_tile_info1); + TILE_GET_INFO_MEMBER(superbug_get_tile_info1); + TILE_GET_INFO_MEMBER(montecar_get_tile_info1); + TILE_GET_INFO_MEMBER(firetrk_get_tile_info2); + TILE_GET_INFO_MEMBER(superbug_get_tile_info2); + TILE_GET_INFO_MEMBER(montecar_get_tile_info2); }; diff --git a/src/mame/includes/fitfight.h b/src/mame/includes/fitfight.h index 5cd44dd95b4..cef7a5e50fa 100644 --- a/src/mame/includes/fitfight.h +++ b/src/mame/includes/fitfight.h @@ -55,6 +55,9 @@ public: DECLARE_DRIVER_INIT(fitfight); DECLARE_DRIVER_INIT(histryma); DECLARE_DRIVER_INIT(bbprot); + TILE_GET_INFO_MEMBER(get_fof_bak_tile_info); + TILE_GET_INFO_MEMBER(get_fof_mid_tile_info); + TILE_GET_INFO_MEMBER(get_fof_txt_tile_info); }; diff --git a/src/mame/includes/flkatck.h b/src/mame/includes/flkatck.h index 9337ab224f8..c4d1b36a7de 100644 --- a/src/mame/includes/flkatck.h +++ b/src/mame/includes/flkatck.h @@ -33,6 +33,8 @@ public: DECLARE_WRITE8_MEMBER(multiply_w); DECLARE_WRITE8_MEMBER(flkatck_k007121_w); DECLARE_WRITE8_MEMBER(flkatck_k007121_regs_w); + TILE_GET_INFO_MEMBER(get_tile_info_A); + TILE_GET_INFO_MEMBER(get_tile_info_B); }; diff --git a/src/mame/includes/flower.h b/src/mame/includes/flower.h index f7626e4f7aa..d616c8c64d1 100644 --- a/src/mame/includes/flower.h +++ b/src/mame/includes/flower.h @@ -35,6 +35,9 @@ public: DECLARE_WRITE8_MEMBER(flower_bg1ram_w); DECLARE_WRITE8_MEMBER(flower_flipscreen_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(get_bg0_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/flstory.h b/src/mame/includes/flstory.h index f6614b27f5f..acc1e5f0ae9 100644 --- a/src/mame/includes/flstory.h +++ b/src/mame/includes/flstory.h @@ -104,6 +104,9 @@ public: DECLARE_WRITE8_MEMBER(sound_control_1_w); DECLARE_WRITE8_MEMBER(sound_control_2_w); DECLARE_WRITE8_MEMBER(sound_control_3_w); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(victnine_get_tile_info); + TILE_GET_INFO_MEMBER(get_rumba_tile_info); }; diff --git a/src/mame/includes/foodf.h b/src/mame/includes/foodf.h index 6fa01c56ba2..64f105a38e0 100644 --- a/src/mame/includes/foodf.h +++ b/src/mame/includes/foodf.h @@ -31,6 +31,7 @@ public: DECLARE_WRITE16_MEMBER(foodf_paletteram_w); void foodf_set_flip(int flip); DECLARE_READ8_MEMBER(pot_r); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/freekick.h b/src/mame/includes/freekick.h index f57503c4c13..883e4ebe195 100644 --- a/src/mame/includes/freekick.h +++ b/src/mame/includes/freekick.h @@ -41,6 +41,7 @@ public: DECLARE_DRIVER_INIT(gigas); DECLARE_DRIVER_INIT(gigasb); DECLARE_DRIVER_INIT(pbillrds); + TILE_GET_INFO_MEMBER(get_freek_tile_info); }; diff --git a/src/mame/includes/fromanc2.h b/src/mame/includes/fromanc2.h index 5ba3c8c91f1..e5434ecddbc 100644 --- a/src/mame/includes/fromanc2.h +++ b/src/mame/includes/fromanc2.h @@ -83,6 +83,20 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(subcpu_nmi_r); DECLARE_DRIVER_INIT(fromanc4); DECLARE_DRIVER_INIT(fromanc2); + TILE_GET_INFO_MEMBER(fromanc2_get_v0_l0_tile_info); + TILE_GET_INFO_MEMBER(fromanc2_get_v0_l1_tile_info); + TILE_GET_INFO_MEMBER(fromanc2_get_v0_l2_tile_info); + TILE_GET_INFO_MEMBER(fromanc2_get_v0_l3_tile_info); + TILE_GET_INFO_MEMBER(fromanc2_get_v1_l0_tile_info); + TILE_GET_INFO_MEMBER(fromanc2_get_v1_l1_tile_info); + TILE_GET_INFO_MEMBER(fromanc2_get_v1_l2_tile_info); + TILE_GET_INFO_MEMBER(fromanc2_get_v1_l3_tile_info); + TILE_GET_INFO_MEMBER(fromancr_get_v0_l0_tile_info); + TILE_GET_INFO_MEMBER(fromancr_get_v0_l1_tile_info); + TILE_GET_INFO_MEMBER(fromancr_get_v0_l2_tile_info); + TILE_GET_INFO_MEMBER(fromancr_get_v1_l0_tile_info); + TILE_GET_INFO_MEMBER(fromancr_get_v1_l1_tile_info); + TILE_GET_INFO_MEMBER(fromancr_get_v1_l2_tile_info); }; diff --git a/src/mame/includes/fromance.h b/src/mame/includes/fromance.h index a5cea25f1c3..979bd51a8d9 100644 --- a/src/mame/includes/fromance.h +++ b/src/mame/includes/fromance.h @@ -72,6 +72,10 @@ public: DECLARE_WRITE8_MEMBER(fromance_adpcm_reset_w); DECLARE_DRIVER_INIT(pipedrm); DECLARE_DRIVER_INIT(hatris); + TILE_GET_INFO_MEMBER(get_fromance_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fromance_fg_tile_info); + TILE_GET_INFO_MEMBER(get_nekkyoku_bg_tile_info); + TILE_GET_INFO_MEMBER(get_nekkyoku_fg_tile_info); }; diff --git a/src/mame/includes/funkybee.h b/src/mame/includes/funkybee.h index 805c9e510b2..63f16ea8c54 100644 --- a/src/mame/includes/funkybee.h +++ b/src/mame/includes/funkybee.h @@ -22,6 +22,8 @@ public: DECLARE_WRITE8_MEMBER(funkybee_gfx_bank_w); DECLARE_WRITE8_MEMBER(funkybee_scroll_w); DECLARE_WRITE8_MEMBER(funkybee_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILEMAP_MAPPER_MEMBER(funkybee_tilemap_scan); }; diff --git a/src/mame/includes/funworld.h b/src/mame/includes/funworld.h index 4cf06bd34ff..b0cc5ed5aa4 100644 --- a/src/mame/includes/funworld.h +++ b/src/mame/includes/funworld.h @@ -25,6 +25,7 @@ public: DECLARE_DRIVER_INIT(soccernw); DECLARE_DRIVER_INIT(tabblue); DECLARE_DRIVER_INIT(magicd2a); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/fuukifg2.h b/src/mame/includes/fuukifg2.h index e5f3a1ea0d2..dadff92fa29 100644 --- a/src/mame/includes/fuukifg2.h +++ b/src/mame/includes/fuukifg2.h @@ -36,6 +36,10 @@ public: DECLARE_WRITE16_MEMBER(fuuki16_vram_2_w); DECLARE_WRITE16_MEMBER(fuuki16_vram_3_w); DECLARE_WRITE8_MEMBER(fuuki16_oki_banking_w); + 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); }; diff --git a/src/mame/includes/fuukifg3.h b/src/mame/includes/fuukifg3.h index 5915ecaec3e..28759d52574 100644 --- a/src/mame/includes/fuukifg3.h +++ b/src/mame/includes/fuukifg3.h @@ -54,6 +54,10 @@ public: DECLARE_WRITE32_MEMBER(fuuki32_vram_1_w); DECLARE_WRITE32_MEMBER(fuuki32_vram_2_w); DECLARE_WRITE32_MEMBER(fuuki32_vram_3_w); + 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); }; diff --git a/src/mame/includes/gaelco.h b/src/mame/includes/gaelco.h index a0527898506..1dc9f97e6c5 100644 --- a/src/mame/includes/gaelco.h +++ b/src/mame/includes/gaelco.h @@ -34,6 +34,8 @@ public: DECLARE_WRITE16_MEMBER(thoop_vram_encrypted_w); DECLARE_WRITE16_MEMBER(thoop_encrypted_w); DECLARE_WRITE16_MEMBER(gaelco_vram_w); + TILE_GET_INFO_MEMBER(get_tile_info_gaelco_screen0); + TILE_GET_INFO_MEMBER(get_tile_info_gaelco_screen1); }; diff --git a/src/mame/includes/gaelco2.h b/src/mame/includes/gaelco2.h index 7c03edf82be..7129cdd9c59 100644 --- a/src/mame/includes/gaelco2.h +++ b/src/mame/includes/gaelco2.h @@ -43,6 +43,10 @@ public: DECLARE_DRIVER_INIT(snowboar); DECLARE_DRIVER_INIT(alighunt); DECLARE_DRIVER_INIT(bang); + TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen0); + TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1); + TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen0_dual); + TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1_dual); }; diff --git a/src/mame/includes/gaiden.h b/src/mame/includes/gaiden.h index 8e90ff1be4d..e1a8aaa6e04 100644 --- a/src/mame/includes/gaiden.h +++ b/src/mame/includes/gaiden.h @@ -73,6 +73,10 @@ public: DECLARE_DRIVER_INIT(mastninj); DECLARE_DRIVER_INIT(shadoww); DECLARE_DRIVER_INIT(wildfang); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info_raiga); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/galaga.h b/src/mame/includes/galaga.h index ec30b31df32..9b59ad80c9f 100644 --- a/src/mame/includes/galaga.h +++ b/src/mame/includes/galaga.h @@ -50,6 +50,8 @@ public: DECLARE_READ8_MEMBER(custom_mod_r); DECLARE_DRIVER_INIT(galaga); DECLARE_DRIVER_INIT(gatsbee); + TILEMAP_MAPPER_MEMBER(tilemap_scan); + TILE_GET_INFO_MEMBER(get_tile_info); }; class xevious_state : public galaga_state diff --git a/src/mame/includes/galaxia.h b/src/mame/includes/galaxia.h index dd4cbe333ba..ce3eeece749 100644 --- a/src/mame/includes/galaxia.h +++ b/src/mame/includes/galaxia.h @@ -20,6 +20,8 @@ public: DECLARE_WRITE8_MEMBER(galaxia_dataport_w); DECLARE_READ8_MEMBER(galaxia_collision_r); DECLARE_READ8_MEMBER(galaxia_collision_clear); + TILE_GET_INFO_MEMBER(get_galaxia_bg_tile_info); + TILE_GET_INFO_MEMBER(get_astrowar_bg_tile_info); }; diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h index cfecf607b99..bb02c65fb49 100644 --- a/src/mame/includes/galaxian.h +++ b/src/mame/includes/galaxian.h @@ -218,6 +218,7 @@ public: DECLARE_DRIVER_INIT(superbon); DECLARE_DRIVER_INIT(calipso); DECLARE_DRIVER_INIT(moonwar); + TILE_GET_INFO_MEMBER(bg_get_tile_info); }; diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h index 6df70081c5d..86a738eb690 100644 --- a/src/mame/includes/galaxold.h +++ b/src/mame/includes/galaxold.h @@ -137,6 +137,11 @@ public: DECLARE_DRIVER_INIT(bullsdrtg); DECLARE_DRIVER_INIT(ladybugg); DECLARE_DRIVER_INIT(4in1); + TILE_GET_INFO_MEMBER(drivfrcg_get_tile_info); + TILE_GET_INFO_MEMBER(racknrol_get_tile_info); + TILE_GET_INFO_MEMBER(dambustr_get_tile_info2); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(rockclim_get_tile_info); }; diff --git a/src/mame/includes/galivan.h b/src/mame/includes/galivan.h index 119b512fb1b..62980846ab9 100644 --- a/src/mame/includes/galivan.h +++ b/src/mame/includes/galivan.h @@ -45,6 +45,10 @@ public: DECLARE_WRITE8_MEMBER(galivan_scrollx_w); DECLARE_WRITE8_MEMBER(galivan_scrolly_w); DECLARE_DRIVER_INIT(youmab); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(ninjemak_get_bg_tile_info); + TILE_GET_INFO_MEMBER(ninjemak_get_tx_tile_info); }; diff --git a/src/mame/includes/gaplus.h b/src/mame/includes/gaplus.h index ec8329cf00e..b5631c5f7c4 100644 --- a/src/mame/includes/gaplus.h +++ b/src/mame/includes/gaplus.h @@ -40,6 +40,8 @@ public: DECLARE_WRITE8_MEMBER(out_lamps0); DECLARE_WRITE8_MEMBER(out_lamps1); DECLARE_DRIVER_INIT(gaplus); + TILEMAP_MAPPER_MEMBER(tilemap_scan); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/gatron.h b/src/mame/includes/gatron.h index 680075d941c..64abb10d69d 100644 --- a/src/mame/includes/gatron.h +++ b/src/mame/includes/gatron.h @@ -10,6 +10,7 @@ public: DECLARE_WRITE8_MEMBER(output_port_0_w); DECLARE_WRITE8_MEMBER(gat_videoram_w); DECLARE_WRITE8_MEMBER(output_port_1_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/gauntlet.h b/src/mame/includes/gauntlet.h index 9aa3206b6cc..1916710e860 100644 --- a/src/mame/includes/gauntlet.h +++ b/src/mame/includes/gauntlet.h @@ -25,6 +25,8 @@ public: DECLARE_DRIVER_INIT(gaunt2p); DECLARE_DRIVER_INIT(gauntlet); DECLARE_DRIVER_INIT(vindctr2); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/gberet.h b/src/mame/includes/gberet.h index 389389c9ecd..c326ab20d1b 100644 --- a/src/mame/includes/gberet.h +++ b/src/mame/includes/gberet.h @@ -50,6 +50,7 @@ public: DECLARE_WRITE8_MEMBER(gberet_sprite_bank_w); DECLARE_WRITE8_MEMBER(gberetb_scroll_w); DECLARE_DRIVER_INIT(mrgoemon); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/gcpinbal.h b/src/mame/includes/gcpinbal.h index 26f160857fb..862849482e9 100644 --- a/src/mame/includes/gcpinbal.h +++ b/src/mame/includes/gcpinbal.h @@ -52,6 +52,9 @@ public: DECLARE_WRITE16_MEMBER(gcpinbal_tilemaps_word_w); DECLARE_READ16_MEMBER(gcpinbal_ctrl_word_r); DECLARE_WRITE16_MEMBER(gcpinbal_ctrl_word_w); + TILE_GET_INFO_MEMBER(get_bg0_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/ginganin.h b/src/mame/includes/ginganin.h index 46cd65fbc55..cd25bbcfb7b 100644 --- a/src/mame/includes/ginganin.h +++ b/src/mame/includes/ginganin.h @@ -39,6 +39,9 @@ public: DECLARE_WRITE16_MEMBER(ginganin_vregs16_w); DECLARE_WRITE8_MEMBER(ptm_irq); DECLARE_DRIVER_INIT(ginganin); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_txt_tile_info); }; diff --git a/src/mame/includes/gladiatr.h b/src/mame/includes/gladiatr.h index 93a7b45a6b7..315fdeea8f2 100644 --- a/src/mame/includes/gladiatr.h +++ b/src/mame/includes/gladiatr.h @@ -58,6 +58,8 @@ public: DECLARE_READ8_MEMBER(f1_r); DECLARE_DRIVER_INIT(gladiatr); DECLARE_DRIVER_INIT(ppking); + TILE_GET_INFO_MEMBER(bg_get_tile_info); + TILE_GET_INFO_MEMBER(fg_get_tile_info); }; /*----------- defined in video/gladiatr.c -----------*/ diff --git a/src/mame/includes/glass.h b/src/mame/includes/glass.h index c69ab66969a..30d0f0f4f25 100644 --- a/src/mame/includes/glass.h +++ b/src/mame/includes/glass.h @@ -41,6 +41,8 @@ public: DECLARE_WRITE16_MEMBER( glass_mainram_w ); DECLARE_DRIVER_INIT(glass); + TILE_GET_INFO_MEMBER(get_tile_info_glass_screen0); + TILE_GET_INFO_MEMBER(get_tile_info_glass_screen1); }; diff --git a/src/mame/includes/gng.h b/src/mame/includes/gng.h index cf041554961..59ae789c049 100644 --- a/src/mame/includes/gng.h +++ b/src/mame/includes/gng.h @@ -37,6 +37,8 @@ public: DECLARE_WRITE8_MEMBER(gng_bgscrolly_w); DECLARE_WRITE8_MEMBER(gng_flipscreen_w); DECLARE_DRIVER_INIT(diamond); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/goal92.h b/src/mame/includes/goal92.h index 7463ba05151..497e53ba81d 100644 --- a/src/mame/includes/goal92.h +++ b/src/mame/includes/goal92.h @@ -45,6 +45,9 @@ public: DECLARE_WRITE16_MEMBER(goal92_background_w); DECLARE_WRITE16_MEMBER(goal92_foreground_w); DECLARE_WRITE8_MEMBER(adpcm_control_w); + TILE_GET_INFO_MEMBER(get_text_tile_info); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_fore_tile_info); }; diff --git a/src/mame/includes/goindol.h b/src/mame/includes/goindol.h index 6e2e8e8d44a..d7dd720f01b 100644 --- a/src/mame/includes/goindol.h +++ b/src/mame/includes/goindol.h @@ -42,6 +42,8 @@ public: DECLARE_WRITE8_MEMBER(goindol_fg_videoram_w); DECLARE_WRITE8_MEMBER(goindol_bg_videoram_w); DECLARE_DRIVER_INIT(goindol); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h index 2816601ef4a..3d51d8db658 100644 --- a/src/mame/includes/goldstar.h +++ b/src/mame/includes/goldstar.h @@ -123,6 +123,15 @@ public: DECLARE_DRIVER_INIT(rp36c3); DECLARE_DRIVER_INIT(magoddsc); DECLARE_DRIVER_INIT(nfb96_c1); + TILE_GET_INFO_MEMBER(get_goldstar_fg_tile_info); + TILE_GET_INFO_MEMBER(get_magical_fg_tile_info); + TILE_GET_INFO_MEMBER(get_cherrym_fg_tile_info); + TILE_GET_INFO_MEMBER(get_goldstar_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_goldstar_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_goldstar_reel3_tile_info); + TILE_GET_INFO_MEMBER(get_unkch_reel1_tile_info); + TILE_GET_INFO_MEMBER(get_unkch_reel2_tile_info); + TILE_GET_INFO_MEMBER(get_unkch_reel3_tile_info); }; diff --git a/src/mame/includes/gomoku.h b/src/mame/includes/gomoku.h index d8a8ee2db06..fe93f8a22f0 100644 --- a/src/mame/includes/gomoku.h +++ b/src/mame/includes/gomoku.h @@ -22,6 +22,7 @@ public: DECLARE_WRITE8_MEMBER(gomoku_bgram_w); DECLARE_WRITE8_MEMBER(gomoku_flipscreen_w); DECLARE_WRITE8_MEMBER(gomoku_bg_dispsw_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/gotcha.h b/src/mame/includes/gotcha.h index ed1672a09bb..a18a56b2928 100644 --- a/src/mame/includes/gotcha.h +++ b/src/mame/includes/gotcha.h @@ -35,6 +35,9 @@ public: DECLARE_WRITE16_MEMBER(gotcha_gfxbank_w); DECLARE_WRITE16_MEMBER(gotcha_scroll_w); DECLARE_WRITE16_MEMBER(gotcha_oki_bank_w); + TILEMAP_MAPPER_MEMBER(gotcha_tilemap_scan); + TILE_GET_INFO_MEMBER(fg_get_tile_info); + TILE_GET_INFO_MEMBER(bg_get_tile_info); }; diff --git a/src/mame/includes/gottlieb.h b/src/mame/includes/gottlieb.h index 8c457419a5c..977492f609f 100644 --- a/src/mame/includes/gottlieb.h +++ b/src/mame/includes/gottlieb.h @@ -295,6 +295,8 @@ public: DECLARE_DRIVER_INIT(vidvince); DECLARE_DRIVER_INIT(ramtiles); DECLARE_DRIVER_INIT(stooges); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_screwloo_bg_tile_info); }; diff --git a/src/mame/includes/gotya.h b/src/mame/includes/gotya.h index 3ba41222ee0..33278051bea 100644 --- a/src/mame/includes/gotya.h +++ b/src/mame/includes/gotya.h @@ -31,6 +31,8 @@ public: DECLARE_WRITE8_MEMBER(gotya_colorram_w); DECLARE_WRITE8_MEMBER(gotya_video_control_w); DECLARE_WRITE8_MEMBER(gotya_soundlatch_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_thehand); }; diff --git a/src/mame/includes/grchamp.h b/src/mame/includes/grchamp.h index 1f762687e78..6ce5df21057 100644 --- a/src/mame/includes/grchamp.h +++ b/src/mame/includes/grchamp.h @@ -63,6 +63,11 @@ public: DECLARE_WRITE8_MEMBER(grchamp_portB_0_w); DECLARE_WRITE8_MEMBER(grchamp_portA_2_w); DECLARE_WRITE8_MEMBER(grchamp_portB_2_w); + TILE_GET_INFO_MEMBER(get_text_tile_info); + TILE_GET_INFO_MEMBER(get_left_tile_info); + TILE_GET_INFO_MEMBER(get_right_tile_info); + TILE_GET_INFO_MEMBER(get_center_tile_info); + TILEMAP_MAPPER_MEMBER(get_memory_offset); }; /* Discrete Sound Input Nodes */ diff --git a/src/mame/includes/gstriker.h b/src/mame/includes/gstriker.h index 1959fc00b32..92b7045b88b 100644 --- a/src/mame/includes/gstriker.h +++ b/src/mame/includes/gstriker.h @@ -98,6 +98,9 @@ public: DECLARE_DRIVER_INIT(twrldc94a); DECLARE_DRIVER_INIT(vgoalsoc); DECLARE_DRIVER_INIT(twrldc94); + TILE_GET_INFO_MEMBER(VS920A_get_tile_info); + TILE_GET_INFO_MEMBER(MB60553_get_tile_info); + TILEMAP_MAPPER_MEMBER(twc94_scan); }; diff --git a/src/mame/includes/gsword.h b/src/mame/includes/gsword.h index b8fc9ff6dd4..0ae68b1bd83 100644 --- a/src/mame/includes/gsword.h +++ b/src/mame/includes/gsword.h @@ -39,6 +39,7 @@ public: DECLARE_WRITE8_MEMBER(gsword_adpcm_data_w); DECLARE_DRIVER_INIT(gsword); DECLARE_DRIVER_INIT(gsword2); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/gumbo.h b/src/mame/includes/gumbo.h index 3effd99a0bd..2771f40f265 100644 --- a/src/mame/includes/gumbo.h +++ b/src/mame/includes/gumbo.h @@ -22,6 +22,8 @@ public: tilemap_t *m_fg_tilemap; DECLARE_WRITE16_MEMBER(gumbo_bg_videoram_w); DECLARE_WRITE16_MEMBER(gumbo_fg_videoram_w); + TILE_GET_INFO_MEMBER(get_gumbo_bg_tile_info); + TILE_GET_INFO_MEMBER(get_gumbo_fg_tile_info); }; diff --git a/src/mame/includes/gundealr.h b/src/mame/includes/gundealr.h index afaf99349a9..959cf9ae801 100644 --- a/src/mame/includes/gundealr.h +++ b/src/mame/includes/gundealr.h @@ -35,6 +35,9 @@ public: DECLARE_WRITE8_MEMBER(gundealr_fg_scroll_w); DECLARE_WRITE8_MEMBER(yamyam_fg_scroll_w); DECLARE_WRITE8_MEMBER(gundealr_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILEMAP_MAPPER_MEMBER(gundealr_scan); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/gunsmoke.h b/src/mame/includes/gunsmoke.h index 521bb8a7f80..2c93589e431 100644 --- a/src/mame/includes/gunsmoke.h +++ b/src/mame/includes/gunsmoke.h @@ -34,6 +34,8 @@ public: DECLARE_WRITE8_MEMBER(gunsmoke_colorram_w); DECLARE_WRITE8_MEMBER(gunsmoke_c804_w); DECLARE_WRITE8_MEMBER(gunsmoke_d806_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/gyruss.h b/src/mame/includes/gyruss.h index d818380a10b..1dd7b6189c2 100644 --- a/src/mame/includes/gyruss.h +++ b/src/mame/includes/gyruss.h @@ -49,6 +49,7 @@ public: DECLARE_WRITE8_MEMBER(gyruss_filter0_w); DECLARE_WRITE8_MEMBER(gyruss_filter1_w); DECLARE_DRIVER_INIT(gyruss); + TILE_GET_INFO_MEMBER(gyruss_get_tile_info); }; diff --git a/src/mame/includes/hanaawas.h b/src/mame/includes/hanaawas.h index dd0c29eb9dd..d80fe7fa55e 100644 --- a/src/mame/includes/hanaawas.h +++ b/src/mame/includes/hanaawas.h @@ -25,6 +25,7 @@ public: DECLARE_WRITE8_MEMBER(hanaawas_inputs_mux_w); DECLARE_WRITE8_MEMBER(hanaawas_videoram_w); DECLARE_WRITE8_MEMBER(hanaawas_colorram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/hcastle.h b/src/mame/includes/hcastle.h index c8626dea94f..3544a34da42 100644 --- a/src/mame/includes/hcastle.h +++ b/src/mame/includes/hcastle.h @@ -48,6 +48,9 @@ public: DECLARE_WRITE8_MEMBER(hcastle_pf1_control_w); DECLARE_WRITE8_MEMBER(hcastle_pf2_control_w); DECLARE_WRITE8_MEMBER(sound_bank_w); + TILEMAP_MAPPER_MEMBER(tilemap_scan); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/hexion.h b/src/mame/includes/hexion.h index 21cd6080210..4a5e176be10 100644 --- a/src/mame/includes/hexion.h +++ b/src/mame/includes/hexion.h @@ -19,6 +19,8 @@ public: DECLARE_WRITE8_MEMBER(hexion_gfxrom_select_w); DECLARE_WRITE_LINE_MEMBER(hexion_irq_ack_w); DECLARE_WRITE_LINE_MEMBER(hexion_nmi_ack_w); + TILE_GET_INFO_MEMBER(get_tile_info0); + TILE_GET_INFO_MEMBER(get_tile_info1); }; diff --git a/src/mame/includes/higemaru.h b/src/mame/includes/higemaru.h index 45158c6d5a3..dde1e7b2278 100644 --- a/src/mame/includes/higemaru.h +++ b/src/mame/includes/higemaru.h @@ -23,6 +23,7 @@ public: DECLARE_WRITE8_MEMBER(higemaru_videoram_w); DECLARE_WRITE8_MEMBER(higemaru_colorram_w); DECLARE_WRITE8_MEMBER(higemaru_c800_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/himesiki.h b/src/mame/includes/himesiki.h index b4e34abaffd..78bc85656bb 100644 --- a/src/mame/includes/himesiki.h +++ b/src/mame/includes/himesiki.h @@ -29,6 +29,7 @@ public: DECLARE_WRITE8_MEMBER(himesiki_bg_ram_w); DECLARE_WRITE8_MEMBER(himesiki_scrollx_w); DECLARE_WRITE8_MEMBER(himesiki_flip_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/hitme.h b/src/mame/includes/hitme.h index 0e6d19af14f..a332aeed642 100644 --- a/src/mame/includes/hitme.h +++ b/src/mame/includes/hitme.h @@ -34,6 +34,7 @@ public: DECLARE_READ8_MEMBER(hitme_port_3_r); DECLARE_WRITE8_MEMBER(output_port_0_w); DECLARE_WRITE8_MEMBER(output_port_1_w); + TILE_GET_INFO_MEMBER(get_hitme_tile_info); }; diff --git a/src/mame/includes/hng64.h b/src/mame/includes/hng64.h index dca6945d858..505d10e3e7e 100644 --- a/src/mame/includes/hng64.h +++ b/src/mame/includes/hng64.h @@ -175,6 +175,14 @@ public: void m_set_irq(UINT32 irq_vector); UINT32 m_irq_pending; int m_irq_level; + TILE_GET_INFO_MEMBER(get_hng64_tile0_8x8_info); + TILE_GET_INFO_MEMBER(get_hng64_tile0_16x16_info); + TILE_GET_INFO_MEMBER(get_hng64_tile1_8x8_info); + TILE_GET_INFO_MEMBER(get_hng64_tile1_16x16_info); + TILE_GET_INFO_MEMBER(get_hng64_tile2_8x8_info); + TILE_GET_INFO_MEMBER(get_hng64_tile2_16x16_info); + TILE_GET_INFO_MEMBER(get_hng64_tile3_8x8_info); + TILE_GET_INFO_MEMBER(get_hng64_tile3_16x16_info); }; diff --git a/src/mame/includes/holeland.h b/src/mame/includes/holeland.h index ada51b080a5..41efe94501d 100644 --- a/src/mame/includes/holeland.h +++ b/src/mame/includes/holeland.h @@ -27,6 +27,8 @@ public: DECLARE_WRITE8_MEMBER(holeland_pal_offs_w); DECLARE_WRITE8_MEMBER(holeland_scroll_w); DECLARE_WRITE8_MEMBER(holeland_flipscreen_w); + TILE_GET_INFO_MEMBER(holeland_get_tile_info); + TILE_GET_INFO_MEMBER(crzrally_get_tile_info); }; diff --git a/src/mame/includes/homedata.h b/src/mame/includes/homedata.h index 9371740906e..2860aedce15 100644 --- a/src/mame/includes/homedata.h +++ b/src/mame/includes/homedata.h @@ -81,6 +81,30 @@ public: DECLARE_DRIVER_INIT(jogakuen); DECLARE_DRIVER_INIT(battlcry); DECLARE_DRIVER_INIT(mirderby); + TILE_GET_INFO_MEMBER(mrokumei_get_info0_0); + TILE_GET_INFO_MEMBER(mrokumei_get_info1_0); + TILE_GET_INFO_MEMBER(mrokumei_get_info0_1); + TILE_GET_INFO_MEMBER(mrokumei_get_info1_1); + TILE_GET_INFO_MEMBER(reikaids_get_info0_0); + TILE_GET_INFO_MEMBER(reikaids_get_info1_0); + TILE_GET_INFO_MEMBER(reikaids_get_info0_1); + TILE_GET_INFO_MEMBER(reikaids_get_info1_1); + TILE_GET_INFO_MEMBER(reikaids_get_info0_2); + TILE_GET_INFO_MEMBER(reikaids_get_info1_2); + TILE_GET_INFO_MEMBER(reikaids_get_info0_3); + TILE_GET_INFO_MEMBER(reikaids_get_info1_3); + TILE_GET_INFO_MEMBER(pteacher_get_info0_0); + TILE_GET_INFO_MEMBER(pteacher_get_info1_0); + TILE_GET_INFO_MEMBER(pteacher_get_info0_1); + TILE_GET_INFO_MEMBER(pteacher_get_info1_1); + TILE_GET_INFO_MEMBER(lemnangl_get_info0_0); + TILE_GET_INFO_MEMBER(lemnangl_get_info1_0); + TILE_GET_INFO_MEMBER(lemnangl_get_info0_1); + TILE_GET_INFO_MEMBER(lemnangl_get_info1_1); + TILE_GET_INFO_MEMBER(mirderby_get_info0_0); + TILE_GET_INFO_MEMBER(mirderby_get_info1_0); + TILE_GET_INFO_MEMBER(mirderby_get_info0_1); + TILE_GET_INFO_MEMBER(mirderby_get_info1_1); }; diff --git a/src/mame/includes/homerun.h b/src/mame/includes/homerun.h index c946029aeb4..71daf6050a8 100644 --- a/src/mame/includes/homerun.h +++ b/src/mame/includes/homerun.h @@ -32,6 +32,7 @@ public: DECLARE_WRITE8_MEMBER(pa_w); DECLARE_WRITE8_MEMBER(pb_w); DECLARE_WRITE8_MEMBER(pc_w); + TILE_GET_INFO_MEMBER(get_homerun_tile_info); }; diff --git a/src/mame/includes/hyperspt.h b/src/mame/includes/hyperspt.h index 0436039d88a..7af7682d6cf 100644 --- a/src/mame/includes/hyperspt.h +++ b/src/mame/includes/hyperspt.h @@ -37,6 +37,8 @@ public: UINT8 m_SN76496_latch; DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; }; DECLARE_WRITE8_MEMBER( konami_SN76496_w ) { m_sn->write(space, offset, m_SN76496_latch); }; + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(roadf_get_bg_tile_info); }; /*----------- defined in video/hyperspt.c -----------*/ diff --git a/src/mame/includes/hyprduel.h b/src/mame/includes/hyprduel.h index 5ba855238df..cd3c82b42f1 100644 --- a/src/mame/includes/hyprduel.h +++ b/src/mame/includes/hyprduel.h @@ -80,6 +80,9 @@ public: void blt_write( address_space *space, const int tmap, const offs_t offs, const UINT16 data, const UINT16 mask ); DECLARE_DRIVER_INIT(magerror); DECLARE_DRIVER_INIT(hyprduel); + TILE_GET_INFO_MEMBER(get_tile_info_0_8bit); + TILE_GET_INFO_MEMBER(get_tile_info_1_8bit); + TILE_GET_INFO_MEMBER(get_tile_info_2_8bit); }; diff --git a/src/mame/includes/inufuku.h b/src/mame/includes/inufuku.h index dc9c7bec0bc..b8acfceb1fd 100644 --- a/src/mame/includes/inufuku.h +++ b/src/mame/includes/inufuku.h @@ -44,6 +44,8 @@ public: DECLARE_READ16_MEMBER(inufuku_tx_videoram_r); DECLARE_WRITE16_MEMBER(inufuku_tx_videoram_w); DECLARE_CUSTOM_INPUT_MEMBER(soundflag_r); + TILE_GET_INFO_MEMBER(get_inufuku_bg_tile_info); + TILE_GET_INFO_MEMBER(get_inufuku_tx_tile_info); }; diff --git a/src/mame/includes/iqblock.h b/src/mame/includes/iqblock.h index 30660e42cb4..697784b804d 100644 --- a/src/mame/includes/iqblock.h +++ b/src/mame/includes/iqblock.h @@ -26,6 +26,8 @@ public: DECLARE_WRITE8_MEMBER(port_C_w); DECLARE_DRIVER_INIT(grndtour); DECLARE_DRIVER_INIT(iqblock); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/ironhors.h b/src/mame/includes/ironhors.h index 199707152a0..a4d6928f0ea 100644 --- a/src/mame/includes/ironhors.h +++ b/src/mame/includes/ironhors.h @@ -41,6 +41,8 @@ public: DECLARE_WRITE8_MEMBER(ironhors_flipscreen_w); DECLARE_WRITE8_MEMBER(ironhors_filter_w); DECLARE_READ8_MEMBER(farwest_soundlatch_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(farwest_get_bg_tile_info); }; diff --git a/src/mame/includes/jack.h b/src/mame/includes/jack.h index 31f93b050f6..fcad472a7ea 100644 --- a/src/mame/includes/jack.h +++ b/src/mame/includes/jack.h @@ -47,6 +47,9 @@ public: DECLARE_DRIVER_INIT(treahunt); DECLARE_DRIVER_INIT(loverboy); DECLARE_DRIVER_INIT(jack); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILEMAP_MAPPER_MEMBER(tilemap_scan_cols_flipy); + TILE_GET_INFO_MEMBER(joinem_get_bg_tile_info); }; diff --git a/src/mame/includes/jackal.h b/src/mame/includes/jackal.h index 532781fd2f0..6354464e9c5 100644 --- a/src/mame/includes/jackal.h +++ b/src/mame/includes/jackal.h @@ -37,6 +37,7 @@ public: DECLARE_WRITE8_MEMBER(jackal_zram_w); DECLARE_WRITE8_MEMBER(jackal_voram_w); DECLARE_WRITE8_MEMBER(jackal_spriteram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/jailbrek.h b/src/mame/includes/jailbrek.h index 92c236002e2..78d028a8008 100644 --- a/src/mame/includes/jailbrek.h +++ b/src/mame/includes/jailbrek.h @@ -37,6 +37,7 @@ public: DECLARE_READ8_MEMBER(jailbrek_speech_r); DECLARE_WRITE8_MEMBER(jailbrek_speech_w); DECLARE_DRIVER_INIT(jailbrek); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/karnov.h b/src/mame/includes/karnov.h index 69af2b45056..66594f1b66f 100644 --- a/src/mame/includes/karnov.h +++ b/src/mame/includes/karnov.h @@ -51,6 +51,7 @@ public: DECLARE_DRIVER_INIT(chelnovu); DECLARE_DRIVER_INIT(chelnovj); DECLARE_DRIVER_INIT(chelnov); + TILE_GET_INFO_MEMBER(get_fix_tile_info); }; enum { diff --git a/src/mame/includes/kchamp.h b/src/mame/includes/kchamp.h index 290d49c3648..af5a771ade3 100644 --- a/src/mame/includes/kchamp.h +++ b/src/mame/includes/kchamp.h @@ -42,6 +42,7 @@ public: DECLARE_WRITE8_MEMBER(sound_control_w); DECLARE_DRIVER_INIT(kchampvs); DECLARE_DRIVER_INIT(kchampvs2); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/kickgoal.h b/src/mame/includes/kickgoal.h index 56e3a8a2305..82c1aa8167d 100644 --- a/src/mame/includes/kickgoal.h +++ b/src/mame/includes/kickgoal.h @@ -63,6 +63,13 @@ public: DECLARE_WRITE16_MEMBER(kickgoal_snd_w); DECLARE_WRITE16_MEMBER(actionhw_snd_w); DECLARE_DRIVER_INIT(kickgoal); + TILE_GET_INFO_MEMBER(get_kickgoal_fg_tile_info); + TILE_GET_INFO_MEMBER(get_kickgoal_bg_tile_info); + TILE_GET_INFO_MEMBER(get_kickgoal_bg2_tile_info); + TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksfg); + TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksbg); + TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksbg2); + TILEMAP_MAPPER_MEMBER(tilemap_scan_actionhwbg2); }; diff --git a/src/mame/includes/kingobox.h b/src/mame/includes/kingobox.h index 3bc1412d0d2..a0178164a6f 100644 --- a/src/mame/includes/kingobox.h +++ b/src/mame/includes/kingobox.h @@ -47,6 +47,9 @@ public: DECLARE_WRITE8_MEMBER(kingofb_f800_w); DECLARE_DRIVER_INIT(ringkingw); DECLARE_DRIVER_INIT(ringking3); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(ringking_get_bg_tile_info); }; diff --git a/src/mame/includes/klax.h b/src/mame/includes/klax.h index 177b3a648a4..3861a147c24 100644 --- a/src/mame/includes/klax.h +++ b/src/mame/includes/klax.h @@ -12,6 +12,7 @@ public: klax_state(const machine_config &mconfig, device_type type, const char *tag) : atarigen_state(mconfig, type, tag) { } DECLARE_WRITE16_MEMBER(interrupt_ack_w); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/kncljoe.h b/src/mame/includes/kncljoe.h index 0e53fff9817..82d2e28b116 100644 --- a/src/mame/includes/kncljoe.h +++ b/src/mame/includes/kncljoe.h @@ -40,6 +40,7 @@ public: DECLARE_READ8_MEMBER(m6803_port1_r); DECLARE_READ8_MEMBER(m6803_port2_r); DECLARE_WRITE8_MEMBER(unused_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/konamigx.h b/src/mame/includes/konamigx.h index 6878c8ea526..70832be0224 100644 --- a/src/mame/includes/konamigx.h +++ b/src/mame/includes/konamigx.h @@ -44,6 +44,11 @@ public: DECLARE_WRITE32_MEMBER(konamigx_t4_psacmap_w); DECLARE_CUSTOM_INPUT_MEMBER(gx_rdport1_3_r); DECLARE_DRIVER_INIT(konamigx); + TILE_GET_INFO_MEMBER(get_gx_psac_tile_info); + TILE_GET_INFO_MEMBER(get_gx_psac3_tile_info); + TILE_GET_INFO_MEMBER(get_gx_psac3_alt_tile_info); + TILE_GET_INFO_MEMBER(get_gx_psac1a_tile_info); + TILE_GET_INFO_MEMBER(get_gx_psac1b_tile_info); }; diff --git a/src/mame/includes/kopunch.h b/src/mame/includes/kopunch.h index 005e8bbcc27..7c7009917c3 100644 --- a/src/mame/includes/kopunch.h +++ b/src/mame/includes/kopunch.h @@ -36,6 +36,8 @@ public: DECLARE_WRITE8_MEMBER(kopunch_gfxbank_w); DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; /*----------- defined in video/kopunch.c -----------*/ diff --git a/src/mame/includes/ksayakyu.h b/src/mame/includes/ksayakyu.h index 7e3b42fe8f2..658281bc7c9 100644 --- a/src/mame/includes/ksayakyu.h +++ b/src/mame/includes/ksayakyu.h @@ -33,6 +33,8 @@ public: DECLARE_WRITE8_MEMBER(dummy1_w); DECLARE_WRITE8_MEMBER(dummy2_w); DECLARE_WRITE8_MEMBER(dummy3_w); + TILE_GET_INFO_MEMBER(get_ksayakyu_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/kyugo.h b/src/mame/includes/kyugo.h index 5b7ad9dcda5..f39d8092a06 100644 --- a/src/mame/includes/kyugo.h +++ b/src/mame/includes/kyugo.h @@ -53,6 +53,8 @@ public: DECLARE_WRITE8_MEMBER(kyugo_flipscreen_w); DECLARE_DRIVER_INIT(srdmissn); DECLARE_DRIVER_INIT(gyrodine); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/labyrunr.h b/src/mame/includes/labyrunr.h index 4f05ef9df19..252166ba374 100644 --- a/src/mame/includes/labyrunr.h +++ b/src/mame/includes/labyrunr.h @@ -36,6 +36,8 @@ public: DECLARE_WRITE8_MEMBER(labyrunr_bankswitch_w); DECLARE_WRITE8_MEMBER(labyrunr_vram1_w); DECLARE_WRITE8_MEMBER(labyrunr_vram2_w); + TILE_GET_INFO_MEMBER(get_tile_info0); + TILE_GET_INFO_MEMBER(get_tile_info1); }; diff --git a/src/mame/includes/ladybug.h b/src/mame/includes/ladybug.h index cad95a81aa7..55e1364f191 100644 --- a/src/mame/includes/ladybug.h +++ b/src/mame/includes/ladybug.h @@ -62,6 +62,8 @@ public: DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); DECLARE_DRIVER_INIT(dorodon); DECLARE_DRIVER_INIT(redclash); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_grid_tile_info); }; diff --git a/src/mame/includes/ladyfrog.h b/src/mame/includes/ladyfrog.h index 54c716be31f..9f2f28316e0 100644 --- a/src/mame/includes/ladyfrog.h +++ b/src/mame/includes/ladyfrog.h @@ -52,6 +52,7 @@ public: DECLARE_READ8_MEMBER(ladyfrog_scrlram_r); DECLARE_WRITE8_MEMBER(ladyfrog_scrlram_w); DECLARE_WRITE8_MEMBER(unk_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/laserbat.h b/src/mame/includes/laserbat.h index d5c545ff820..b11c5c7ebeb 100644 --- a/src/mame/includes/laserbat.h +++ b/src/mame/includes/laserbat.h @@ -77,6 +77,7 @@ public: DECLARE_READ8_MEMBER(zaccaria_port0a_r); DECLARE_WRITE8_MEMBER(zaccaria_port0a_w); DECLARE_WRITE8_MEMBER(zaccaria_port0b_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/lasso.h b/src/mame/includes/lasso.h index 069880fb2f0..004afc6a215 100644 --- a/src/mame/includes/lasso.h +++ b/src/mame/includes/lasso.h @@ -54,6 +54,9 @@ public: DECLARE_WRITE8_MEMBER(wwjgtin_video_control_w); DECLARE_WRITE8_MEMBER(pinbo_video_control_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(lasso_get_bg_tile_info); + TILE_GET_INFO_MEMBER(wwjgtin_get_track_tile_info); + TILE_GET_INFO_MEMBER(pinbo_get_bg_tile_info); }; diff --git a/src/mame/includes/lastduel.h b/src/mame/includes/lastduel.h index 49e86518180..16e14f5e1dc 100644 --- a/src/mame/includes/lastduel.h +++ b/src/mame/includes/lastduel.h @@ -48,6 +48,11 @@ public: DECLARE_WRITE16_MEMBER(madgear_scroll1_w); DECLARE_WRITE16_MEMBER(madgear_scroll2_w); DECLARE_WRITE16_MEMBER(lastduel_palette_word_w); + TILE_GET_INFO_MEMBER(ld_get_bg_tile_info); + TILE_GET_INFO_MEMBER(ld_get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_fix_info); }; /*----------- defined in video/lastduel.c -----------*/ diff --git a/src/mame/includes/legionna.h b/src/mame/includes/legionna.h index 396f602fce0..c2515d2892d 100644 --- a/src/mame/includes/legionna.h +++ b/src/mame/includes/legionna.h @@ -37,6 +37,13 @@ public: DECLARE_DRIVER_INIT(legiongfx); DECLARE_DRIVER_INIT(cupsoc); DECLARE_DRIVER_INIT(denjinmk); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_mid_tile_info); + TILE_GET_INFO_MEMBER(get_mid_tile_info_denji); + TILE_GET_INFO_MEMBER(get_mid_tile_info_cupsoc); + TILE_GET_INFO_MEMBER(get_fore_tile_info); + TILE_GET_INFO_MEMBER(get_fore_tile_info_denji); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/lemmings.h b/src/mame/includes/lemmings.h index 8e625ad34b8..f6d408a794e 100644 --- a/src/mame/includes/lemmings.h +++ b/src/mame/includes/lemmings.h @@ -40,6 +40,7 @@ public: DECLARE_WRITE16_MEMBER(lemmings_pixel_0_w); DECLARE_WRITE16_MEMBER(lemmings_pixel_1_w); DECLARE_WRITE16_MEMBER(lemmings_vram_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/liberate.h b/src/mame/includes/liberate.h index f9c2134d844..e155f373d95 100644 --- a/src/mame/includes/liberate.h +++ b/src/mame/includes/liberate.h @@ -51,6 +51,11 @@ public: DECLARE_DRIVER_INIT(yellowcb); DECLARE_DRIVER_INIT(liberate); DECLARE_DRIVER_INIT(prosport); + TILEMAP_MAPPER_MEMBER(back_scan); + TILEMAP_MAPPER_MEMBER(fix_scan); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_fix_tile_info); + TILE_GET_INFO_MEMBER(prosport_get_back_tile_info); }; diff --git a/src/mame/includes/lkage.h b/src/mame/includes/lkage.h index 6d9c6609b55..96d43ad305a 100644 --- a/src/mame/includes/lkage.h +++ b/src/mame/includes/lkage.h @@ -76,6 +76,9 @@ public: DECLARE_DRIVER_INIT(bygone); DECLARE_DRIVER_INIT(lkage); DECLARE_DRIVER_INIT(lkageb); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; /*----------- defined in machine/lkage.c -----------*/ diff --git a/src/mame/includes/lockon.h b/src/mame/includes/lockon.h index 588849a88b5..067565cf70f 100644 --- a/src/mame/includes/lockon.h +++ b/src/mame/includes/lockon.h @@ -98,6 +98,7 @@ public: DECLARE_READ8_MEMBER(adc_r); DECLARE_WRITE8_MEMBER(sound_vol); DECLARE_WRITE8_MEMBER(ym2203_out_b); + TILE_GET_INFO_MEMBER(get_lockon_tile_info); }; diff --git a/src/mame/includes/lordgun.h b/src/mame/includes/lordgun.h index f48bec3e532..2a22a769b61 100644 --- a/src/mame/includes/lordgun.h +++ b/src/mame/includes/lordgun.h @@ -59,6 +59,10 @@ public: DECLARE_DRIVER_INIT(lordgun); DECLARE_DRIVER_INIT(aliencha); DECLARE_DRIVER_INIT(alienchac); + 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); }; diff --git a/src/mame/includes/lucky74.h b/src/mame/includes/lucky74.h index 87eb2ae1bfc..d54452833b3 100644 --- a/src/mame/includes/lucky74.h +++ b/src/mame/includes/lucky74.h @@ -35,6 +35,8 @@ public: DECLARE_WRITE8_MEMBER(ym2149_portb_w); DECLARE_WRITE8_MEMBER(lamps_a_w); DECLARE_WRITE8_MEMBER(lamps_b_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/lvcards.h b/src/mame/includes/lvcards.h index 2360af6c061..79c41a3a140 100644 --- a/src/mame/includes/lvcards.h +++ b/src/mame/includes/lvcards.h @@ -17,6 +17,7 @@ public: DECLARE_READ8_MEMBER(payout_r); DECLARE_WRITE8_MEMBER(lvcards_videoram_w); DECLARE_WRITE8_MEMBER(lvcards_colorram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/lwings.h b/src/mame/includes/lwings.h index 3ee9c50e020..f9c4310776b 100644 --- a/src/mame/includes/lwings.h +++ b/src/mame/includes/lwings.h @@ -48,6 +48,11 @@ public: DECLARE_WRITE8_MEMBER(trojan_bg2_scrollx_w); DECLARE_WRITE8_MEMBER(trojan_bg2_image_w); DECLARE_WRITE8_MEMBER(msm5205_w); + TILEMAP_MAPPER_MEMBER(get_bg2_memory_offset); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(lwings_get_bg1_tile_info); + TILE_GET_INFO_MEMBER(trojan_get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/m107.h b/src/mame/includes/m107.h index 1242fc1599f..01027aea311 100644 --- a/src/mame/includes/m107.h +++ b/src/mame/includes/m107.h @@ -47,6 +47,7 @@ public: DECLARE_DRIVER_INIT(firebarr); DECLARE_DRIVER_INIT(dsoccr94); DECLARE_DRIVER_INIT(wpksoc); + TILE_GET_INFO_MEMBER(get_pf_tile_info); }; diff --git a/src/mame/includes/m52.h b/src/mame/includes/m52.h index fd09b3ad600..af1ea802cac 100644 --- a/src/mame/includes/m52.h +++ b/src/mame/includes/m52.h @@ -30,6 +30,7 @@ public: DECLARE_WRITE8_MEMBER(m52_bgcontrol_w); DECLARE_WRITE8_MEMBER(m52_flipscreen_w); DECLARE_WRITE8_MEMBER(alpha1v_flipscreen_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; /*----------- defined in video/m52.c -----------*/ diff --git a/src/mame/includes/m57.h b/src/mame/includes/m57.h index 8ab8c84d86d..b42d25d8581 100644 --- a/src/mame/includes/m57.h +++ b/src/mame/includes/m57.h @@ -17,6 +17,7 @@ public: int m_flipscreen; DECLARE_WRITE8_MEMBER(m57_videoram_w); DECLARE_WRITE8_MEMBER(m57_flipscreen_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; /*----------- defined in video/m57.c -----------*/ diff --git a/src/mame/includes/m58.h b/src/mame/includes/m58.h index dd688d2753a..feb1621e3a1 100644 --- a/src/mame/includes/m58.h +++ b/src/mame/includes/m58.h @@ -26,6 +26,8 @@ public: DECLARE_WRITE8_MEMBER(yard_scroll_panel_w); DECLARE_WRITE8_MEMBER(yard_flipscreen_w); DECLARE_DRIVER_INIT(yard85); + TILE_GET_INFO_MEMBER(yard_get_bg_tile_info); + TILEMAP_MAPPER_MEMBER(yard_tilemap_scan_rows); }; /*----------- defined in video/m58.c -----------*/ diff --git a/src/mame/includes/m62.h b/src/mame/includes/m62.h index 4a0e5561a96..fb2a743cf2a 100644 --- a/src/mame/includes/m62.h +++ b/src/mame/includes/m62.h @@ -62,6 +62,22 @@ public: DECLARE_DRIVER_INIT(spelunk2); DECLARE_DRIVER_INIT(kidniki); DECLARE_DRIVER_INIT(battroad); + TILE_GET_INFO_MEMBER(get_kungfum_bg_tile_info); + TILE_GET_INFO_MEMBER(get_ldrun_bg_tile_info); + TILE_GET_INFO_MEMBER(get_ldrun2_bg_tile_info); + TILE_GET_INFO_MEMBER(get_battroad_bg_tile_info); + TILE_GET_INFO_MEMBER(get_battroad_fg_tile_info); + TILE_GET_INFO_MEMBER(get_ldrun4_bg_tile_info); + TILE_GET_INFO_MEMBER(get_lotlot_bg_tile_info); + TILE_GET_INFO_MEMBER(get_lotlot_fg_tile_info); + TILE_GET_INFO_MEMBER(get_kidniki_bg_tile_info); + TILE_GET_INFO_MEMBER(get_kidniki_fg_tile_info); + TILE_GET_INFO_MEMBER(get_spelunkr_bg_tile_info); + TILE_GET_INFO_MEMBER(get_spelunkr_fg_tile_info); + TILE_GET_INFO_MEMBER(get_spelunk2_bg_tile_info); + TILE_GET_INFO_MEMBER(get_youjyudn_bg_tile_info); + TILE_GET_INFO_MEMBER(get_youjyudn_fg_tile_info); + TILE_GET_INFO_MEMBER(get_horizon_bg_tile_info); }; diff --git a/src/mame/includes/m72.h b/src/mame/includes/m72.h index 32ca912dd66..13e61171b4c 100644 --- a/src/mame/includes/m72.h +++ b/src/mame/includes/m72.h @@ -97,6 +97,12 @@ public: DECLARE_DRIVER_INIT(nspirit); DECLARE_DRIVER_INIT(loht); DECLARE_DRIVER_INIT(imgfight); + TILE_GET_INFO_MEMBER(m72_get_bg_tile_info); + TILE_GET_INFO_MEMBER(m72_get_fg_tile_info); + TILE_GET_INFO_MEMBER(hharry_get_bg_tile_info); + TILE_GET_INFO_MEMBER(rtype2_get_bg_tile_info); + TILE_GET_INFO_MEMBER(rtype2_get_fg_tile_info); + TILEMAP_MAPPER_MEMBER(majtitle_scan_rows); }; diff --git a/src/mame/includes/m90.h b/src/mame/includes/m90.h index cfcd18dee00..2c2f0d23398 100644 --- a/src/mame/includes/m90.h +++ b/src/mame/includes/m90.h @@ -24,6 +24,18 @@ public: DECLARE_WRITE16_MEMBER(m90_video_w); DECLARE_DRIVER_INIT(bomblord); DECLARE_DRIVER_INIT(quizf1); + TILE_GET_INFO_MEMBER(get_pf1_tile_info); + TILE_GET_INFO_MEMBER(get_pf1w_tile_info); + TILE_GET_INFO_MEMBER(get_pf2_tile_info); + TILE_GET_INFO_MEMBER(get_pf2w_tile_info); + TILE_GET_INFO_MEMBER(bomblord_get_pf1_tile_info); + TILE_GET_INFO_MEMBER(bomblord_get_pf1w_tile_info); + TILE_GET_INFO_MEMBER(bomblord_get_pf2_tile_info); + TILE_GET_INFO_MEMBER(bomblord_get_pf2w_tile_info); + TILE_GET_INFO_MEMBER(dynablsb_get_pf1_tile_info); + TILE_GET_INFO_MEMBER(dynablsb_get_pf1w_tile_info); + TILE_GET_INFO_MEMBER(dynablsb_get_pf2_tile_info); + TILE_GET_INFO_MEMBER(dynablsb_get_pf2w_tile_info); }; diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h index 0ef026b18db..5954d0e2be3 100644 --- a/src/mame/includes/m92.h +++ b/src/mame/includes/m92.h @@ -70,6 +70,7 @@ public: DECLARE_DRIVER_INIT(lethalth); DECLARE_DRIVER_INIT(m92); DECLARE_DRIVER_INIT(m92_bank); + TILE_GET_INFO_MEMBER(get_pf_tile_info); }; diff --git a/src/mame/includes/macrossp.h b/src/mame/includes/macrossp.h index 36e5065697a..9186914aca9 100644 --- a/src/mame/includes/macrossp.h +++ b/src/mame/includes/macrossp.h @@ -64,6 +64,10 @@ public: DECLARE_WRITE32_MEMBER(macrossp_text_videoram_w); DECLARE_DRIVER_INIT(quizmoon); DECLARE_DRIVER_INIT(macrossp); + TILE_GET_INFO_MEMBER(get_macrossp_scra_tile_info); + TILE_GET_INFO_MEMBER(get_macrossp_scrb_tile_info); + TILE_GET_INFO_MEMBER(get_macrossp_scrc_tile_info); + TILE_GET_INFO_MEMBER(get_macrossp_text_tile_info); }; /*----------- defined in video/macrossp.c -----------*/ diff --git a/src/mame/includes/madalien.h b/src/mame/includes/madalien.h index fedb9123b2c..6f3ffdf087d 100644 --- a/src/mame/includes/madalien.h +++ b/src/mame/includes/madalien.h @@ -53,6 +53,13 @@ public: DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_WRITE8_MEMBER(madalien_portA_w); DECLARE_WRITE8_MEMBER(madalien_portB_w); + TILEMAP_MAPPER_MEMBER(scan_mode0); + TILEMAP_MAPPER_MEMBER(scan_mode1); + TILEMAP_MAPPER_MEMBER(scan_mode2); + TILEMAP_MAPPER_MEMBER(scan_mode3); + TILE_GET_INFO_MEMBER(get_tile_info_BG_1); + TILE_GET_INFO_MEMBER(get_tile_info_BG_2); + TILE_GET_INFO_MEMBER(get_tile_info_FG); }; diff --git a/src/mame/includes/mainsnk.h b/src/mame/includes/mainsnk.h index a7067cdc2ea..bb70b19bedc 100644 --- a/src/mame/includes/mainsnk.h +++ b/src/mame/includes/mainsnk.h @@ -22,6 +22,9 @@ public: DECLARE_WRITE8_MEMBER(mainsnk_fgram_w); DECLARE_WRITE8_MEMBER(mainsnk_bgram_w); DECLARE_CUSTOM_INPUT_MEMBER(mainsnk_sound_r); + TILEMAP_MAPPER_MEMBER(marvins_tx_scan_cols); + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/mappy.h b/src/mame/includes/mappy.h index a1ebfec5d16..28f28cb0200 100644 --- a/src/mame/includes/mappy.h +++ b/src/mame/includes/mappy.h @@ -34,6 +34,11 @@ public: DECLARE_WRITE8_MEMBER(grobda_DAC_w); DECLARE_DRIVER_INIT(digdug2); DECLARE_DRIVER_INIT(grobda); + TILEMAP_MAPPER_MEMBER(superpac_tilemap_scan); + TILEMAP_MAPPER_MEMBER(mappy_tilemap_scan); + TILE_GET_INFO_MEMBER(superpac_get_tile_info); + TILE_GET_INFO_MEMBER(phozon_get_tile_info); + TILE_GET_INFO_MEMBER(mappy_get_tile_info); }; diff --git a/src/mame/includes/marineb.h b/src/mame/includes/marineb.h index 2e6950cab2a..de6c78ba881 100644 --- a/src/mame/includes/marineb.h +++ b/src/mame/includes/marineb.h @@ -33,6 +33,7 @@ public: DECLARE_WRITE8_MEMBER(marineb_palette_bank_1_w); DECLARE_WRITE8_MEMBER(marineb_flipscreen_x_w); DECLARE_WRITE8_MEMBER(marineb_flipscreen_y_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h index e6c866939fb..447eb41f9aa 100644 --- a/src/mame/includes/mario.h +++ b/src/mame/includes/mario.h @@ -78,6 +78,7 @@ public: DECLARE_WRITE8_MEMBER(mario_sh_tuneselect_w); DECLARE_WRITE8_MEMBER(mario_sh3_w); DECLARE_WRITE8_MEMBER(mario_z80dma_rdy_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; /*----------- defined in video/mario.c -----------*/ diff --git a/src/mame/includes/markham.h b/src/mame/includes/markham.h index 41108a16c2c..1eb05442164 100644 --- a/src/mame/includes/markham.h +++ b/src/mame/includes/markham.h @@ -23,6 +23,7 @@ public: DECLARE_READ8_MEMBER(markham_e004_r); DECLARE_WRITE8_MEMBER(markham_videoram_w); DECLARE_WRITE8_MEMBER(markham_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/mcatadv.h b/src/mame/includes/mcatadv.h index 0f93beb2bc2..165c7193271 100644 --- a/src/mame/includes/mcatadv.h +++ b/src/mame/includes/mcatadv.h @@ -37,6 +37,8 @@ public: DECLARE_WRITE8_MEMBER(mcatadv_sound_bw_w); DECLARE_WRITE16_MEMBER(mcatadv_videoram1_w); DECLARE_WRITE16_MEMBER(mcatadv_videoram2_w); + TILE_GET_INFO_MEMBER(get_mcatadv_tile_info1); + TILE_GET_INFO_MEMBER(get_mcatadv_tile_info2); }; /*----------- defined in video/mcatadv.c -----------*/ diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h index b901e9b2b25..e621da695da 100644 --- a/src/mame/includes/mcr.h +++ b/src/mame/includes/mcr.h @@ -78,6 +78,9 @@ public: DECLARE_DRIVER_INIT(nflfoot); DECLARE_DRIVER_INIT(journey); DECLARE_DRIVER_INIT(solarfox); + TILE_GET_INFO_MEMBER(mcr_90009_get_tile_info); + TILE_GET_INFO_MEMBER(mcr_90010_get_tile_info); + TILE_GET_INFO_MEMBER(mcr_91490_get_tile_info); }; diff --git a/src/mame/includes/mcr3.h b/src/mame/includes/mcr3.h index 49f104a14d3..baafe136458 100644 --- a/src/mame/includes/mcr3.h +++ b/src/mame/includes/mcr3.h @@ -55,6 +55,11 @@ public: DECLARE_DRIVER_INIT(rampage); DECLARE_DRIVER_INIT(spyhunt); DECLARE_DRIVER_INIT(sarge); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(mcrmono_get_bg_tile_info); + TILEMAP_MAPPER_MEMBER(spyhunt_bg_scan); + TILE_GET_INFO_MEMBER(spyhunt_get_bg_tile_info); + TILE_GET_INFO_MEMBER(spyhunt_get_alpha_tile_info); }; diff --git a/src/mame/includes/mcr68.h b/src/mame/includes/mcr68.h index bb5c0b80022..c75fae3a16d 100644 --- a/src/mame/includes/mcr68.h +++ b/src/mame/includes/mcr68.h @@ -87,6 +87,9 @@ public: DECLARE_DRIVER_INIT(xenophob); DECLARE_DRIVER_INIT(archrivl); DECLARE_DRIVER_INIT(spyhunt2); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(zwackery_get_bg_tile_info); + TILE_GET_INFO_MEMBER(zwackery_get_fg_tile_info); }; /*----------- defined in machine/mcr68.c -----------*/ diff --git a/src/mame/includes/meadows.h b/src/mame/includes/meadows.h index 0bea4cfc279..ce4c02af3aa 100644 --- a/src/mame/includes/meadows.h +++ b/src/mame/includes/meadows.h @@ -42,6 +42,7 @@ public: DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_DRIVER_INIT(minferno); DECLARE_DRIVER_INIT(gypsyjug); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h index bb382365ac8..7d1865ffa03 100644 --- a/src/mame/includes/megasys1.h +++ b/src/mame/includes/megasys1.h @@ -102,6 +102,10 @@ public: DECLARE_DRIVER_INIT(rodland); DECLARE_DRIVER_INIT(edfbl); DECLARE_DRIVER_INIT(stdragona); + TILEMAP_MAPPER_MEMBER(megasys1_scan_8x8); + TILEMAP_MAPPER_MEMBER(megasys1_scan_16x16); + TILE_GET_INFO_MEMBER(megasys1_get_scroll_tile_info_8x8); + TILE_GET_INFO_MEMBER(megasys1_get_scroll_tile_info_16x16); }; diff --git a/src/mame/includes/mermaid.h b/src/mame/includes/mermaid.h index d268625b33a..c1fd9339256 100644 --- a/src/mame/includes/mermaid.h +++ b/src/mame/includes/mermaid.h @@ -70,6 +70,8 @@ public: DECLARE_WRITE8_MEMBER(rougien_gfxbankswitch1_w); DECLARE_WRITE8_MEMBER(rougien_gfxbankswitch2_w); DECLARE_READ8_MEMBER(mermaid_collision_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/metlclsh.h b/src/mame/includes/metlclsh.h index d43d122d2fc..3372660a132 100644 --- a/src/mame/includes/metlclsh.h +++ b/src/mame/includes/metlclsh.h @@ -43,6 +43,9 @@ public: DECLARE_WRITE8_MEMBER(metlclsh_bgram_w); DECLARE_WRITE8_MEMBER(metlclsh_fgram_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILEMAP_MAPPER_MEMBER(metlclsh_bgtilemap_scan); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/metro.h b/src/mame/includes/metro.h index 7bf8a11f2f8..91398221313 100644 --- a/src/mame/includes/metro.h +++ b/src/mame/includes/metro.h @@ -151,6 +151,9 @@ public: DECLARE_DRIVER_INIT(dharmak); DECLARE_DRIVER_INIT(puzzlet); DECLARE_DRIVER_INIT(metro); + TILE_GET_INFO_MEMBER(metro_k053936_get_tile_info); + TILE_GET_INFO_MEMBER(metro_k053936_gstrik2_get_tile_info); + TILEMAP_MAPPER_MEMBER(tilemap_scan_gstrik2); }; diff --git a/src/mame/includes/mikie.h b/src/mame/includes/mikie.h index 26a2a3dd5ff..b8a5c047cb1 100644 --- a/src/mame/includes/mikie.h +++ b/src/mame/includes/mikie.h @@ -38,6 +38,7 @@ public: DECLARE_WRITE8_MEMBER(mikie_colorram_w); DECLARE_WRITE8_MEMBER(mikie_palettebank_w); DECLARE_WRITE8_MEMBER(mikie_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/mitchell.h b/src/mame/includes/mitchell.h index 0478a94639a..19138ae2afa 100644 --- a/src/mame/includes/mitchell.h +++ b/src/mame/includes/mitchell.h @@ -96,6 +96,7 @@ public: DECLARE_DRIVER_INIT(pkladies); DECLARE_DRIVER_INIT(blockbl); DECLARE_DRIVER_INIT(dokaben); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/mjkjidai.h b/src/mame/includes/mjkjidai.h index 43f9b9fd6b0..a1a3e2ef77a 100644 --- a/src/mame/includes/mjkjidai.h +++ b/src/mame/includes/mjkjidai.h @@ -26,6 +26,7 @@ public: DECLARE_WRITE8_MEMBER(mjkjidai_videoram_w); DECLARE_WRITE8_MEMBER(mjkjidai_ctrl_w); DECLARE_WRITE8_MEMBER(adpcm_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/mosaic.h b/src/mame/includes/mosaic.h index bbfe380ed80..460d67d87d9 100644 --- a/src/mame/includes/mosaic.h +++ b/src/mame/includes/mosaic.h @@ -29,6 +29,8 @@ public: DECLARE_READ8_MEMBER(gfire2_protection_r); DECLARE_WRITE8_MEMBER(mosaic_fgvideoram_w); DECLARE_WRITE8_MEMBER(mosaic_bgvideoram_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/mrdo.h b/src/mame/includes/mrdo.h index 1d54890c813..3438b630306 100644 --- a/src/mame/includes/mrdo.h +++ b/src/mame/includes/mrdo.h @@ -28,6 +28,8 @@ public: DECLARE_WRITE8_MEMBER(mrdo_scrollx_w); DECLARE_WRITE8_MEMBER(mrdo_scrolly_w); DECLARE_WRITE8_MEMBER(mrdo_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/mrjong.h b/src/mame/includes/mrjong.h index 85da06c5fb5..1ea65b89728 100644 --- a/src/mame/includes/mrjong.h +++ b/src/mame/includes/mrjong.h @@ -22,6 +22,7 @@ public: DECLARE_WRITE8_MEMBER(mrjong_videoram_w); DECLARE_WRITE8_MEMBER(mrjong_colorram_w); DECLARE_WRITE8_MEMBER(mrjong_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/ms32.h b/src/mame/includes/ms32.h index dc813967f86..9a7a8ed4909 100644 --- a/src/mame/includes/ms32.h +++ b/src/mame/includes/ms32.h @@ -80,6 +80,10 @@ public: DECLARE_DRIVER_INIT(bnstars); DECLARE_DRIVER_INIT(f1superb); DECLARE_DRIVER_INIT(ss92046_01); + TILE_GET_INFO_MEMBER(get_ms32_tx_tile_info); + TILE_GET_INFO_MEMBER(get_ms32_roz_tile_info); + TILE_GET_INFO_MEMBER(get_ms32_bg_tile_info); + TILE_GET_INFO_MEMBER(get_ms32_extra_tile_info); }; diff --git a/src/mame/includes/msisaac.h b/src/mame/includes/msisaac.h index b73472ef181..b3bb8eb2860 100644 --- a/src/mame/includes/msisaac.h +++ b/src/mame/includes/msisaac.h @@ -65,6 +65,9 @@ public: DECLARE_WRITE8_MEMBER(msisaac_bg2_videoram_w); DECLARE_WRITE8_MEMBER(msisaac_fg_videoram_w); DECLARE_WRITE8_MEMBER(sound_control_0_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/mugsmash.h b/src/mame/includes/mugsmash.h index f5f9974f903..64083dfb449 100644 --- a/src/mame/includes/mugsmash.h +++ b/src/mame/includes/mugsmash.h @@ -26,6 +26,8 @@ public: DECLARE_WRITE16_MEMBER(mugsmash_videoram1_w); DECLARE_WRITE16_MEMBER(mugsmash_videoram2_w); DECLARE_WRITE16_MEMBER(mugsmash_reg_w); + TILE_GET_INFO_MEMBER(get_mugsmash_tile_info1); + TILE_GET_INFO_MEMBER(get_mugsmash_tile_info2); }; diff --git a/src/mame/includes/mustache.h b/src/mame/includes/mustache.h index 67553a1aeac..41dcac15b37 100644 --- a/src/mame/includes/mustache.h +++ b/src/mame/includes/mustache.h @@ -15,6 +15,7 @@ public: DECLARE_WRITE8_MEMBER(mustache_video_control_w); DECLARE_WRITE8_MEMBER(mustache_scroll_w); DECLARE_DRIVER_INIT(mustache); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/mystston.h b/src/mame/includes/mystston.h index d584a3a2b92..96e14b840b4 100644 --- a/src/mame/includes/mystston.h +++ b/src/mame/includes/mystston.h @@ -42,6 +42,8 @@ public: DECLARE_WRITE8_MEMBER(mystston_ay8910_select_w); DECLARE_WRITE8_MEMBER(mystston_video_control_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/mystwarr.h b/src/mame/includes/mystwarr.h index 86fd6b5fce6..719d4923bc7 100644 --- a/src/mame/includes/mystwarr.h +++ b/src/mame/includes/mystwarr.h @@ -52,6 +52,8 @@ public: DECLARE_READ16_MEMBER(ddd_053936_tilerom_1_r); DECLARE_READ16_MEMBER(gai_053936_tilerom_2_r); DECLARE_READ16_MEMBER(ddd_053936_tilerom_2_r); + TILE_GET_INFO_MEMBER(get_gai_936_tile_info); + TILE_GET_INFO_MEMBER(get_ult_936_tile_info); }; diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h index 304162f0f63..c94f749a2af 100644 --- a/src/mame/includes/namcona1.h +++ b/src/mame/includes/namcona1.h @@ -102,6 +102,11 @@ public: DECLARE_DRIVER_INIT(xday2); DECLARE_DRIVER_INIT(exbania); DECLARE_DRIVER_INIT(emeraldj); + TILE_GET_INFO_MEMBER(tilemap_get_info0); + TILE_GET_INFO_MEMBER(tilemap_get_info1); + TILE_GET_INFO_MEMBER(tilemap_get_info2); + TILE_GET_INFO_MEMBER(tilemap_get_info3); + TILE_GET_INFO_MEMBER(roz_get_info); }; diff --git a/src/mame/includes/namcos1.h b/src/mame/includes/namcos1.h index a994d69bc5b..3698cbbcb33 100644 --- a/src/mame/includes/namcos1.h +++ b/src/mame/includes/namcos1.h @@ -85,6 +85,12 @@ public: DECLARE_DRIVER_INIT(ws89); DECLARE_DRIVER_INIT(dspirit); DECLARE_DRIVER_INIT(pistoldm); + TILE_GET_INFO_MEMBER(bg_get_info0); + TILE_GET_INFO_MEMBER(bg_get_info1); + TILE_GET_INFO_MEMBER(bg_get_info2); + TILE_GET_INFO_MEMBER(bg_get_info3); + TILE_GET_INFO_MEMBER(fg_get_info4); + TILE_GET_INFO_MEMBER(fg_get_info5); }; diff --git a/src/mame/includes/namcos22.h b/src/mame/includes/namcos22.h index 6a814cbf644..cba4ec7d6c0 100644 --- a/src/mame/includes/namcos22.h +++ b/src/mame/includes/namcos22.h @@ -249,6 +249,7 @@ public: DECLARE_DRIVER_INIT(alpiner); DECLARE_DRIVER_INIT(ridgeraj); DECLARE_DRIVER_INIT(alpinesa); + TILE_GET_INFO_MEMBER(TextTilemapGetInfo); }; diff --git a/src/mame/includes/namcos86.h b/src/mame/includes/namcos86.h index 118da9d4203..ca600df2197 100644 --- a/src/mame/includes/namcos86.h +++ b/src/mame/includes/namcos86.h @@ -45,6 +45,10 @@ public: DECLARE_READ8_MEMBER(rthunder_spriteram_r); DECLARE_WRITE8_MEMBER(rthunder_spriteram_w); DECLARE_DRIVER_INIT(namco86); + TILE_GET_INFO_MEMBER(get_tile_info0); + TILE_GET_INFO_MEMBER(get_tile_info1); + TILE_GET_INFO_MEMBER(get_tile_info2); + TILE_GET_INFO_MEMBER(get_tile_info3); }; diff --git a/src/mame/includes/nemesis.h b/src/mame/includes/nemesis.h index ba936ca423f..3600bb3a71a 100644 --- a/src/mame/includes/nemesis.h +++ b/src/mame/includes/nemesis.h @@ -79,6 +79,8 @@ public: DECLARE_WRITE8_MEMBER(salamand_speech_start_w); DECLARE_READ8_MEMBER(nemesis_portA_r); DECLARE_WRITE8_MEMBER(city_sound_bank_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/news.h b/src/mame/includes/news.h index c524d73dcc6..c0d450e3a25 100644 --- a/src/mame/includes/news.h +++ b/src/mame/includes/news.h @@ -19,6 +19,8 @@ public: DECLARE_WRITE8_MEMBER(news_fgram_w); DECLARE_WRITE8_MEMBER(news_bgram_w); DECLARE_WRITE8_MEMBER(news_bgpic_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/ninjakd2.h b/src/mame/includes/ninjakd2.h index 49bb927d257..0f6960f77b4 100644 --- a/src/mame/includes/ninjakd2.h +++ b/src/mame/includes/ninjakd2.h @@ -56,6 +56,14 @@ public: DECLARE_DRIVER_INIT(mnight); DECLARE_DRIVER_INIT(ninjakd2); DECLARE_DRIVER_INIT(bootleg); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(ninjakd2_get_bg_tile_info); + TILE_GET_INFO_MEMBER(mnight_get_bg_tile_info); + TILEMAP_MAPPER_MEMBER(robokid_bg_scan); + TILEMAP_MAPPER_MEMBER(omegaf_bg_scan); + TILE_GET_INFO_MEMBER(robokid_get_bg0_tile_info); + TILE_GET_INFO_MEMBER(robokid_get_bg1_tile_info); + TILE_GET_INFO_MEMBER(robokid_get_bg2_tile_info); }; diff --git a/src/mame/includes/nitedrvr.h b/src/mame/includes/nitedrvr.h index e26cf6e47c3..8640dfe539a 100644 --- a/src/mame/includes/nitedrvr.h +++ b/src/mame/includes/nitedrvr.h @@ -52,6 +52,7 @@ public: DECLARE_WRITE8_MEMBER(nitedrvr_out1_w); DECLARE_WRITE8_MEMBER(nitedrvr_videoram_w); DECLARE_WRITE8_MEMBER(nitedrvr_hvc_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/nmk16.h b/src/mame/includes/nmk16.h index 250161558f1..f07b301f1fd 100644 --- a/src/mame/includes/nmk16.h +++ b/src/mame/includes/nmk16.h @@ -106,6 +106,15 @@ public: DECLARE_DRIVER_INIT(grdnstrm); DECLARE_DRIVER_INIT(spec2k); DECLARE_DRIVER_INIT(bjtwin); + TILEMAP_MAPPER_MEMBER(afega_tilemap_scan_pages); + TILE_GET_INFO_MEMBER(macross_get_bg0_tile_info); + TILE_GET_INFO_MEMBER(macross_get_bg1_tile_info); + TILE_GET_INFO_MEMBER(macross_get_bg2_tile_info); + TILE_GET_INFO_MEMBER(macross_get_bg3_tile_info); + TILE_GET_INFO_MEMBER(strahl_get_fg_tile_info); + TILE_GET_INFO_MEMBER(macross_get_tx_tile_info); + TILE_GET_INFO_MEMBER(bjtwin_get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info_0_8bit); }; diff --git a/src/mame/includes/nova2001.h b/src/mame/includes/nova2001.h index cd0fdf3929f..5e1d2c52b5d 100644 --- a/src/mame/includes/nova2001.h +++ b/src/mame/includes/nova2001.h @@ -27,6 +27,13 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(ninjakun_io_A002_ctrl_r); DECLARE_DRIVER_INIT(raiders5); DECLARE_DRIVER_INIT(pkunwar); + TILE_GET_INFO_MEMBER(nova2001_get_bg_tile_info); + TILE_GET_INFO_MEMBER(nova2001_get_fg_tile_info); + TILE_GET_INFO_MEMBER(ninjakun_get_bg_tile_info); + TILE_GET_INFO_MEMBER(ninjakun_get_fg_tile_info); + TILE_GET_INFO_MEMBER(pkunwar_get_bg_tile_info); + TILE_GET_INFO_MEMBER(raiders5_get_bg_tile_info); + TILE_GET_INFO_MEMBER(raiders5_get_fg_tile_info); }; diff --git a/src/mame/includes/nycaptor.h b/src/mame/includes/nycaptor.h index fe84a10ae75..c22ca7aa9e5 100644 --- a/src/mame/includes/nycaptor.h +++ b/src/mame/includes/nycaptor.h @@ -98,6 +98,7 @@ public: DECLARE_DRIVER_INIT(colt); DECLARE_DRIVER_INIT(bronx); DECLARE_DRIVER_INIT(nycaptor); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/offtwall.h b/src/mame/includes/offtwall.h index f939f40c5fc..03d6de4b6af 100644 --- a/src/mame/includes/offtwall.h +++ b/src/mame/includes/offtwall.h @@ -29,6 +29,7 @@ public: DECLARE_READ16_MEMBER(unknown_verify_r); DECLARE_DRIVER_INIT(offtwall); DECLARE_DRIVER_INIT(offtwalc); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/ohmygod.h b/src/mame/includes/ohmygod.h index e85c75e8339..37bf4978b44 100644 --- a/src/mame/includes/ohmygod.h +++ b/src/mame/includes/ohmygod.h @@ -33,6 +33,7 @@ public: DECLARE_WRITE16_MEMBER(ohmygod_scrolly_w); DECLARE_DRIVER_INIT(ohmygod); DECLARE_DRIVER_INIT(naname); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/ojankohs.h b/src/mame/includes/ojankohs.h index 12018c91ff2..c579eb35ff4 100644 --- a/src/mame/includes/ojankohs.h +++ b/src/mame/includes/ojankohs.h @@ -59,6 +59,8 @@ public: DECLARE_WRITE8_MEMBER(ojankohs_adpcm_reset_w); DECLARE_READ8_MEMBER(ojankohs_ay8910_0_r); DECLARE_READ8_MEMBER(ojankohs_ay8910_1_r); + TILE_GET_INFO_MEMBER(ojankohs_get_tile_info); + TILE_GET_INFO_MEMBER(ojankoy_get_tile_info); }; diff --git a/src/mame/includes/oneshot.h b/src/mame/includes/oneshot.h index b0ad6a8f679..edf692f13fd 100644 --- a/src/mame/includes/oneshot.h +++ b/src/mame/includes/oneshot.h @@ -43,6 +43,9 @@ public: DECLARE_WRITE16_MEMBER(oneshot_mid_videoram_w); DECLARE_WRITE16_MEMBER(oneshot_fg_videoram_w); DECLARE_WRITE16_MEMBER(soundbank_w); + TILE_GET_INFO_MEMBER(get_oneshot_bg_tile_info); + TILE_GET_INFO_MEMBER(get_oneshot_mid_tile_info); + TILE_GET_INFO_MEMBER(get_oneshot_fg_tile_info); }; /*----------- defined in video/oneshot.c -----------*/ diff --git a/src/mame/includes/orbit.h b/src/mame/includes/orbit.h index f72f48c0d8f..d7a8c664035 100644 --- a/src/mame/includes/orbit.h +++ b/src/mame/includes/orbit.h @@ -39,6 +39,7 @@ public: device_t *m_discrete; DECLARE_WRITE8_MEMBER(orbit_misc_w); DECLARE_WRITE8_MEMBER(orbit_playfield_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/othldrby.h b/src/mame/includes/othldrby.h index a1cc9ad4803..8b8179fede5 100644 --- a/src/mame/includes/othldrby.h +++ b/src/mame/includes/othldrby.h @@ -35,6 +35,9 @@ public: DECLARE_WRITE16_MEMBER(othldrby_vreg_addr_w); DECLARE_WRITE16_MEMBER(othldrby_vreg_w); DECLARE_WRITE16_MEMBER(oki_bankswitch_w); + TILE_GET_INFO_MEMBER(get_tile_info0); + TILE_GET_INFO_MEMBER(get_tile_info1); + TILE_GET_INFO_MEMBER(get_tile_info2); }; diff --git a/src/mame/includes/pacland.h b/src/mame/includes/pacland.h index 9d208715dbf..8339f726a8e 100644 --- a/src/mame/includes/pacland.h +++ b/src/mame/includes/pacland.h @@ -33,6 +33,8 @@ public: DECLARE_WRITE8_MEMBER(pacland_scroll0_w); DECLARE_WRITE8_MEMBER(pacland_scroll1_w); DECLARE_WRITE8_MEMBER(pacland_bankswitch_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/pacman.h b/src/mame/includes/pacman.h index 87ed6db9375..0ecc08c03a4 100644 --- a/src/mame/includes/pacman.h +++ b/src/mame/includes/pacman.h @@ -117,6 +117,11 @@ public: DECLARE_DRIVER_INIT(8bpm); DECLARE_DRIVER_INIT(porky); DECLARE_DRIVER_INIT(mspacman); + TILEMAP_MAPPER_MEMBER(pacman_scan_rows); + TILE_GET_INFO_MEMBER(pacman_get_tile_info); + TILE_GET_INFO_MEMBER(s2650_get_tile_info); + TILEMAP_MAPPER_MEMBER(jrpacman_scan_rows); + TILE_GET_INFO_MEMBER(jrpacman_get_tile_info); }; diff --git a/src/mame/includes/pandoras.h b/src/mame/includes/pandoras.h index dd861a6f3a7..74edfe0f84d 100644 --- a/src/mame/includes/pandoras.h +++ b/src/mame/includes/pandoras.h @@ -45,6 +45,7 @@ public: DECLARE_WRITE8_MEMBER(pandoras_flipscreen_w); DECLARE_READ8_MEMBER(pandoras_portA_r); DECLARE_READ8_MEMBER(pandoras_portB_r); + TILE_GET_INFO_MEMBER(get_tile_info0); }; diff --git a/src/mame/includes/paradise.h b/src/mame/includes/paradise.h index 775ffdb28cf..3e504a01bcd 100644 --- a/src/mame/includes/paradise.h +++ b/src/mame/includes/paradise.h @@ -45,6 +45,9 @@ public: DECLARE_DRIVER_INIT(torus); DECLARE_DRIVER_INIT(paradise); DECLARE_DRIVER_INIT(tgtball); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); + TILE_GET_INFO_MEMBER(get_tile_info_2); }; /*----------- defined in video/paradise.c -----------*/ diff --git a/src/mame/includes/pass.h b/src/mame/includes/pass.h index c4d6708f87e..92090b39411 100644 --- a/src/mame/includes/pass.h +++ b/src/mame/includes/pass.h @@ -13,6 +13,8 @@ public: required_shared_ptr<UINT16> m_fg_videoram; DECLARE_WRITE16_MEMBER(pass_bg_videoram_w); DECLARE_WRITE16_MEMBER(pass_fg_videoram_w); + TILE_GET_INFO_MEMBER(get_pass_bg_tile_info); + TILE_GET_INFO_MEMBER(get_pass_fg_tile_info); }; diff --git a/src/mame/includes/pbaction.h b/src/mame/includes/pbaction.h index 7ed35290dab..76ea12e4f4d 100644 --- a/src/mame/includes/pbaction.h +++ b/src/mame/includes/pbaction.h @@ -46,6 +46,8 @@ public: DECLARE_WRITE8_MEMBER(pbaction_flipscreen_w); DECLARE_DRIVER_INIT(pbactio3); DECLARE_DRIVER_INIT(pbactio4); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h index 44e3f27b01e..21869d7be40 100644 --- a/src/mame/includes/pgm.h +++ b/src/mame/includes/pgm.h @@ -108,6 +108,8 @@ public: DECLARE_DRIVER_INIT(drgw3); DECLARE_DRIVER_INIT(orlegend); DECLARE_DRIVER_INIT(pstar); + TILE_GET_INFO_MEMBER(get_pgm_tx_tilemap_tile_info); + TILE_GET_INFO_MEMBER(get_pgm_bg_tilemap_tile_info); }; diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h index a72eb273c9a..d84c76267bc 100644 --- a/src/mame/includes/phoenix.h +++ b/src/mame/includes/phoenix.h @@ -28,6 +28,8 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(player_input_r); DECLARE_CUSTOM_INPUT_MEMBER(pleiads_protection_r); DECLARE_DRIVER_INIT(condor); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/pingpong.h b/src/mame/includes/pingpong.h index e2f1a4c4d82..a03f5fea454 100644 --- a/src/mame/includes/pingpong.h +++ b/src/mame/includes/pingpong.h @@ -23,6 +23,7 @@ public: DECLARE_WRITE8_MEMBER(pingpong_colorram_w); DECLARE_DRIVER_INIT(cashquiz); DECLARE_DRIVER_INIT(merlinmm); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/pirates.h b/src/mame/includes/pirates.h index 65afb037d51..73c13252730 100644 --- a/src/mame/includes/pirates.h +++ b/src/mame/includes/pirates.h @@ -25,6 +25,9 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(prot_r); DECLARE_DRIVER_INIT(pirates); DECLARE_DRIVER_INIT(genix); + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/pitnrun.h b/src/mame/includes/pitnrun.h index 73cdace8851..8bfcf5939f8 100644 --- a/src/mame/includes/pitnrun.h +++ b/src/mame/includes/pitnrun.h @@ -46,6 +46,8 @@ public: DECLARE_WRITE8_MEMBER(pitnrun_h_heed_w); DECLARE_WRITE8_MEMBER(pitnrun_v_heed_w); DECLARE_WRITE8_MEMBER(pitnrun_color_select_w); + TILE_GET_INFO_MEMBER(get_tile_info1); + TILE_GET_INFO_MEMBER(get_tile_info2); }; diff --git a/src/mame/includes/playch10.h b/src/mame/includes/playch10.h index 0eedaa79a2f..588b9e6545a 100644 --- a/src/mame/includes/playch10.h +++ b/src/mame/includes/playch10.h @@ -107,6 +107,7 @@ public: DECLARE_DRIVER_INIT(pceboard); DECLARE_DRIVER_INIT(pciboard); DECLARE_DRIVER_INIT(pcaboard); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/playmark.h b/src/mame/includes/playmark.h index 11718be266c..d6e88a2769b 100644 --- a/src/mame/includes/playmark.h +++ b/src/mame/includes/playmark.h @@ -78,6 +78,15 @@ public: DECLARE_DRIVER_INIT(bigtwin); DECLARE_DRIVER_INIT(powerbal); DECLARE_DRIVER_INIT(magicstk); + TILE_GET_INFO_MEMBER(bigtwin_get_tx_tile_info); + TILE_GET_INFO_MEMBER(bigtwin_get_fg_tile_info); + TILE_GET_INFO_MEMBER(wbeachvl_get_tx_tile_info); + TILE_GET_INFO_MEMBER(wbeachvl_get_fg_tile_info); + TILE_GET_INFO_MEMBER(wbeachvl_get_bg_tile_info); + TILE_GET_INFO_MEMBER(hrdtimes_get_tx_tile_info); + TILE_GET_INFO_MEMBER(bigtwinb_get_tx_tile_info); + TILE_GET_INFO_MEMBER(hrdtimes_get_fg_tile_info); + TILE_GET_INFO_MEMBER(hrdtimes_get_bg_tile_info); }; /*----------- defined in video/playmark.c -----------*/ diff --git a/src/mame/includes/plygonet.h b/src/mame/includes/plygonet.h index d68966d4a21..65deff9de1d 100644 --- a/src/mame/includes/plygonet.h +++ b/src/mame/includes/plygonet.h @@ -66,6 +66,10 @@ public: DIRECT_UPDATE_MEMBER(plygonet_dsp56k_direct_handler); DECLARE_READ32_MEMBER(polygonet_eeprom_r); DECLARE_DRIVER_INIT(polygonet); + TILE_GET_INFO_MEMBER(ttl_get_tile_info); + TILE_GET_INFO_MEMBER(roz_get_tile_info); + TILEMAP_MAPPER_MEMBER(plygonet_scan); + TILEMAP_MAPPER_MEMBER(plygonet_scan_cols); }; /*----------- defined in video/plygonet.c -----------*/ diff --git a/src/mame/includes/pokechmp.h b/src/mame/includes/pokechmp.h index 2c842b714fa..426aaaa4f7f 100644 --- a/src/mame/includes/pokechmp.h +++ b/src/mame/includes/pokechmp.h @@ -15,6 +15,7 @@ public: DECLARE_WRITE8_MEMBER(pokechmp_videoram_w); DECLARE_WRITE8_MEMBER(pokechmp_flipscreen_w); DECLARE_DRIVER_INIT(pokechmp); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h index 192d6dec523..4400bd715ef 100644 --- a/src/mame/includes/polepos.h +++ b/src/mame/includes/polepos.h @@ -74,6 +74,8 @@ public: DECLARE_READ8_MEMBER(steering_delta_r); DECLARE_DRIVER_INIT(topracern); DECLARE_DRIVER_INIT(polepos2); + TILE_GET_INFO_MEMBER(bg_get_tile_info); + TILE_GET_INFO_MEMBER(tx_get_tile_info); }; diff --git a/src/mame/includes/poolshrk.h b/src/mame/includes/poolshrk.h index 340d9051097..af83d1bbcd8 100644 --- a/src/mame/includes/poolshrk.h +++ b/src/mame/includes/poolshrk.h @@ -28,6 +28,7 @@ public: DECLARE_READ8_MEMBER(poolshrk_input_r); DECLARE_READ8_MEMBER(poolshrk_irq_reset_r); DECLARE_DRIVER_INIT(poolshrk); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/pooyan.h b/src/mame/includes/pooyan.h index 4b27f11fe76..995eed7bf37 100644 --- a/src/mame/includes/pooyan.h +++ b/src/mame/includes/pooyan.h @@ -27,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(pooyan_videoram_w); DECLARE_WRITE8_MEMBER(pooyan_colorram_w); DECLARE_WRITE8_MEMBER(pooyan_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/popeye.h b/src/mame/includes/popeye.h index 740ba18a45c..0fe2513117f 100644 --- a/src/mame/includes/popeye.h +++ b/src/mame/includes/popeye.h @@ -35,6 +35,7 @@ public: DECLARE_READ8_MEMBER(popeye_portA_r); DECLARE_DRIVER_INIT(skyskipr); DECLARE_DRIVER_INIT(popeye); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/popper.h b/src/mame/includes/popper.h index d11db317acf..a325e74515e 100644 --- a/src/mame/includes/popper.h +++ b/src/mame/includes/popper.h @@ -46,6 +46,10 @@ public: DECLARE_WRITE8_MEMBER(popper_flipscreen_w); DECLARE_WRITE8_MEMBER(popper_e002_w); DECLARE_WRITE8_MEMBER(popper_gfx_bank_w); + TILE_GET_INFO_MEMBER(get_popper_p123_tile_info); + TILE_GET_INFO_MEMBER(get_popper_p0_tile_info); + TILE_GET_INFO_MEMBER(get_popper_ol_p123_tile_info); + TILE_GET_INFO_MEMBER(get_popper_ol_p0_tile_info); }; diff --git a/src/mame/includes/portrait.h b/src/mame/includes/portrait.h index 4d0618d8c75..7b4290c8f5f 100644 --- a/src/mame/includes/portrait.h +++ b/src/mame/includes/portrait.h @@ -18,6 +18,8 @@ public: DECLARE_WRITE8_MEMBER(portrait_negative_scroll_w); DECLARE_WRITE8_MEMBER(portrait_bgvideo_write); DECLARE_WRITE8_MEMBER(portrait_fgvideo_write); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/powerins.h b/src/mame/includes/powerins.h index f9b1acf9e57..1baa033b54e 100644 --- a/src/mame/includes/powerins.h +++ b/src/mame/includes/powerins.h @@ -25,6 +25,9 @@ public: DECLARE_WRITE16_MEMBER(powerins_paletteram16_w); DECLARE_WRITE16_MEMBER(powerins_vram_0_w); DECLARE_WRITE16_MEMBER(powerins_vram_1_w); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILEMAP_MAPPER_MEMBER(powerins_get_memory_offset_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); }; diff --git a/src/mame/includes/prehisle.h b/src/mame/includes/prehisle.h index daff40ea519..8b21489ed1e 100644 --- a/src/mame/includes/prehisle.h +++ b/src/mame/includes/prehisle.h @@ -23,6 +23,9 @@ public: DECLARE_WRITE16_MEMBER(prehisle_control16_w); DECLARE_WRITE8_MEMBER(D7759_write_port_0_w); DECLARE_WRITE8_MEMBER(D7759_upd_reset_w); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h index 56fc2a7e1b6..6936037c575 100644 --- a/src/mame/includes/psikyo.h +++ b/src/mame/includes/psikyo.h @@ -83,6 +83,8 @@ public: DECLARE_DRIVER_INIT(tengai); DECLARE_DRIVER_INIT(s1945jn); DECLARE_DRIVER_INIT(gunbird); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); }; diff --git a/src/mame/includes/psychic5.h b/src/mame/includes/psychic5.h index 31b23a8bb55..575c72e443d 100644 --- a/src/mame/includes/psychic5.h +++ b/src/mame/includes/psychic5.h @@ -38,6 +38,8 @@ public: DECLARE_WRITE8_MEMBER(psychic5_paged_ram_w); DECLARE_WRITE8_MEMBER(bombsa_paged_ram_w); DECLARE_WRITE8_MEMBER(bombsa_unknown_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/punchout.h b/src/mame/includes/punchout.h index eaa3049cdad..8941aeab1aa 100644 --- a/src/mame/includes/punchout.h +++ b/src/mame/includes/punchout.h @@ -51,6 +51,15 @@ public: DECLARE_DRIVER_INIT(spnchotj); DECLARE_DRIVER_INIT(punchout); DECLARE_DRIVER_INIT(spnchout); + TILE_GET_INFO_MEMBER(top_get_info); + TILE_GET_INFO_MEMBER(armwrest_top_get_info); + TILE_GET_INFO_MEMBER(bot_get_info); + TILE_GET_INFO_MEMBER(armwrest_bot_get_info); + TILE_GET_INFO_MEMBER(bs1_get_info); + TILE_GET_INFO_MEMBER(bs2_get_info); + TILE_GET_INFO_MEMBER(armwrest_fg_get_info); + TILEMAP_MAPPER_MEMBER(armwrest_bs1_scan); + TILEMAP_MAPPER_MEMBER(armwrest_bs1_scan_flipx); }; diff --git a/src/mame/includes/pushman.h b/src/mame/includes/pushman.h index 85759c4ee34..120caae0eac 100644 --- a/src/mame/includes/pushman.h +++ b/src/mame/includes/pushman.h @@ -41,6 +41,9 @@ public: DECLARE_WRITE8_MEMBER(pushman_68000_w); DECLARE_WRITE16_MEMBER(pushman_scroll_w); DECLARE_WRITE16_MEMBER(pushman_videoram_w); + TILEMAP_MAPPER_MEMBER(background_scan_rows); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/quizdna.h b/src/mame/includes/quizdna.h index 93a7698dafb..3587cff481d 100644 --- a/src/mame/includes/quizdna.h +++ b/src/mame/includes/quizdna.h @@ -21,6 +21,8 @@ public: DECLARE_WRITE8_MEMBER(quizdna_bg_xscroll_w); DECLARE_WRITE8_MEMBER(quizdna_screen_ctrl_w); DECLARE_WRITE8_MEMBER(paletteram_xBGR_RRRR_GGGG_BBBB_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/quizpani.h b/src/mame/includes/quizpani.h index bedac1ec7b2..ac2cb7e7ba2 100644 --- a/src/mame/includes/quizpani.h +++ b/src/mame/includes/quizpani.h @@ -17,6 +17,9 @@ public: DECLARE_WRITE16_MEMBER(quizpani_bg_videoram_w); DECLARE_WRITE16_MEMBER(quizpani_txt_videoram_w); DECLARE_WRITE16_MEMBER(quizpani_tilesbank_w); + TILEMAP_MAPPER_MEMBER(bg_scan); + TILE_GET_INFO_MEMBER(bg_tile_info); + TILE_GET_INFO_MEMBER(txt_tile_info); }; diff --git a/src/mame/includes/raiden.h b/src/mame/includes/raiden.h index e7d5e34baa7..0abe5f16d43 100644 --- a/src/mame/includes/raiden.h +++ b/src/mame/includes/raiden.h @@ -34,6 +34,9 @@ public: DECLARE_DRIVER_INIT(raidenk); DECLARE_DRIVER_INIT(raiden); DECLARE_DRIVER_INIT(raidena); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_fore_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/raiden2.h b/src/mame/includes/raiden2.h index 508b73cf2f8..60c965dff04 100644 --- a/src/mame/includes/raiden2.h +++ b/src/mame/includes/raiden2.h @@ -121,6 +121,10 @@ public: DECLARE_DRIVER_INIT(xsedae); DECLARE_DRIVER_INIT(zeroteam); DECLARE_DRIVER_INIT(raiden2); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_mid_tile_info); + TILE_GET_INFO_MEMBER(get_fore_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/rallyx.h b/src/mame/includes/rallyx.h index 5b85f9f699e..8b4d0cbe1f6 100644 --- a/src/mame/includes/rallyx.h +++ b/src/mame/includes/rallyx.h @@ -48,6 +48,11 @@ public: DECLARE_WRITE8_MEMBER(rallyx_scrollx_w); DECLARE_WRITE8_MEMBER(rallyx_scrolly_w); DECLARE_WRITE8_MEMBER(tactcian_starson_w); + TILEMAP_MAPPER_MEMBER(fg_tilemap_scan); + TILE_GET_INFO_MEMBER(rallyx_bg_get_tile_info); + TILE_GET_INFO_MEMBER(rallyx_fg_get_tile_info); + TILE_GET_INFO_MEMBER(locomotn_bg_get_tile_info); + TILE_GET_INFO_MEMBER(locomotn_fg_get_tile_info); }; diff --git a/src/mame/includes/realbrk.h b/src/mame/includes/realbrk.h index 26f5f1c39d6..53d04be8bdc 100644 --- a/src/mame/includes/realbrk.h +++ b/src/mame/includes/realbrk.h @@ -40,6 +40,9 @@ public: DECLARE_WRITE16_MEMBER(realbrk_vram_1_w); DECLARE_WRITE16_MEMBER(realbrk_vram_2_w); DECLARE_WRITE16_MEMBER(realbrk_vregs_w); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); + TILE_GET_INFO_MEMBER(get_tile_info_2); }; diff --git a/src/mame/includes/relief.h b/src/mame/includes/relief.h index c1c8451bf92..a0b545ee7bc 100644 --- a/src/mame/includes/relief.h +++ b/src/mame/includes/relief.h @@ -21,6 +21,8 @@ public: DECLARE_WRITE16_MEMBER(audio_control_w); DECLARE_WRITE16_MEMBER(audio_volume_w); DECLARE_DRIVER_INIT(relief); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + TILE_GET_INFO_MEMBER(get_playfield2_tile_info); }; diff --git a/src/mame/includes/renegade.h b/src/mame/includes/renegade.h index 34faae8cb6c..a0a1b1fb5cd 100644 --- a/src/mame/includes/renegade.h +++ b/src/mame/includes/renegade.h @@ -67,6 +67,8 @@ public: DECLARE_DRIVER_INIT(kuniokun); DECLARE_DRIVER_INIT(kuniokunb); DECLARE_DRIVER_INIT(renegade); + TILE_GET_INFO_MEMBER(get_bg_tilemap_info); + TILE_GET_INFO_MEMBER(get_fg_tilemap_info); }; diff --git a/src/mame/includes/retofinv.h b/src/mame/includes/retofinv.h index 0d439088ff4..87babf9b685 100644 --- a/src/mame/includes/retofinv.h +++ b/src/mame/includes/retofinv.h @@ -56,6 +56,9 @@ public: DECLARE_WRITE8_MEMBER(retofinv_bg_videoram_w); DECLARE_WRITE8_MEMBER(retofinv_fg_videoram_w); DECLARE_WRITE8_MEMBER(retofinv_gfx_ctrl_w); + TILEMAP_MAPPER_MEMBER(tilemap_scan); + TILE_GET_INFO_MEMBER(bg_get_tile_info); + TILE_GET_INFO_MEMBER(fg_get_tile_info); }; diff --git a/src/mame/includes/rocnrope.h b/src/mame/includes/rocnrope.h index 2941641586f..3161aac1743 100644 --- a/src/mame/includes/rocnrope.h +++ b/src/mame/includes/rocnrope.h @@ -25,6 +25,7 @@ public: DECLARE_WRITE8_MEMBER(rocnrope_flipscreen_w); DECLARE_DRIVER_INIT(rocnrope); DECLARE_DRIVER_INIT(rocnropk); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; /*----------- defined in video/rocnrope.c -----------*/ diff --git a/src/mame/includes/rpunch.h b/src/mame/includes/rpunch.h index ea227ee7c70..733b3016600 100644 --- a/src/mame/includes/rpunch.h +++ b/src/mame/includes/rpunch.h @@ -35,6 +35,8 @@ public: DECLARE_WRITE8_MEMBER(upd_data_w); DECLARE_DRIVER_INIT(rabiolep); DECLARE_DRIVER_INIT(svolley); + TILE_GET_INFO_MEMBER(get_bg0_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); }; diff --git a/src/mame/includes/runaway.h b/src/mame/includes/runaway.h index 9207c210cbd..24bf48b21ec 100644 --- a/src/mame/includes/runaway.h +++ b/src/mame/includes/runaway.h @@ -18,6 +18,8 @@ public: DECLARE_WRITE8_MEMBER(runaway_video_ram_w); DECLARE_WRITE8_MEMBER(runaway_tile_bank_w); DECLARE_READ8_MEMBER(runaway_pot_r); + TILE_GET_INFO_MEMBER(runaway_get_tile_info); + TILE_GET_INFO_MEMBER(qwak_get_tile_info); }; diff --git a/src/mame/includes/rungun.h b/src/mame/includes/rungun.h index b961cedf28b..de2c1ca8863 100644 --- a/src/mame/includes/rungun.h +++ b/src/mame/includes/rungun.h @@ -47,6 +47,8 @@ public: DECLARE_READ16_MEMBER(rng_ttl_ram_r); DECLARE_WRITE16_MEMBER(rng_ttl_ram_w); DECLARE_WRITE16_MEMBER(rng_936_videoram_w); + TILE_GET_INFO_MEMBER(ttl_get_tile_info); + TILE_GET_INFO_MEMBER(get_rng_936_tile_info); }; diff --git a/src/mame/includes/sauro.h b/src/mame/includes/sauro.h index 49f3fc61eda..f5903627636 100644 --- a/src/mame/includes/sauro.h +++ b/src/mame/includes/sauro.h @@ -32,6 +32,8 @@ public: DECLARE_WRITE8_MEMBER(sauro_scroll_fg_w); DECLARE_WRITE8_MEMBER(adpcm_w); DECLARE_DRIVER_INIT(tecfri); + TILE_GET_INFO_MEMBER(get_tile_info_bg); + TILE_GET_INFO_MEMBER(get_tile_info_fg); }; diff --git a/src/mame/includes/sbasketb.h b/src/mame/includes/sbasketb.h index 18f87d216cf..47813fb4de4 100644 --- a/src/mame/includes/sbasketb.h +++ b/src/mame/includes/sbasketb.h @@ -39,6 +39,7 @@ public: UINT8 m_SN76496_latch; DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; }; DECLARE_WRITE8_MEMBER( konami_SN76496_w ) { m_sn->write(space, offset, m_SN76496_latch); }; + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; /*----------- defined in video/sbasketb.c -----------*/ diff --git a/src/mame/includes/sbugger.h b/src/mame/includes/sbugger.h index 77f2d2eca5b..02abcf82f36 100644 --- a/src/mame/includes/sbugger.h +++ b/src/mame/includes/sbugger.h @@ -13,6 +13,7 @@ public: DECLARE_WRITE8_MEMBER(sbugger_videoram_w); DECLARE_WRITE8_MEMBER(sbugger_videoram_attr_w); DECLARE_WRITE_LINE_MEMBER(sbugger_interrupt); + TILE_GET_INFO_MEMBER(get_sbugger_tile_info); }; diff --git a/src/mame/includes/scotrsht.h b/src/mame/includes/scotrsht.h index b2056f62d96..838000f7353 100644 --- a/src/mame/includes/scotrsht.h +++ b/src/mame/includes/scotrsht.h @@ -22,6 +22,7 @@ public: DECLARE_WRITE8_MEMBER(scotrsht_colorram_w); DECLARE_WRITE8_MEMBER(scotrsht_charbank_w); DECLARE_WRITE8_MEMBER(scotrsht_palettebank_w); + TILE_GET_INFO_MEMBER(scotrsht_get_bg_tile_info); }; diff --git a/src/mame/includes/sderby.h b/src/mame/includes/sderby.h index 657d3c3867d..9339619cdf7 100644 --- a/src/mame/includes/sderby.h +++ b/src/mame/includes/sderby.h @@ -29,6 +29,9 @@ public: DECLARE_WRITE16_MEMBER(sderby_md_videoram_w); DECLARE_WRITE16_MEMBER(sderby_fg_videoram_w); DECLARE_WRITE16_MEMBER(sderby_scroll_w); + TILE_GET_INFO_MEMBER(get_sderby_tile_info); + TILE_GET_INFO_MEMBER(get_sderby_md_tile_info); + TILE_GET_INFO_MEMBER(get_sderby_fg_tile_info); }; diff --git a/src/mame/includes/segag80r.h b/src/mame/includes/segag80r.h index b7d614275dc..b15aa9c668d 100644 --- a/src/mame/includes/segag80r.h +++ b/src/mame/includes/segag80r.h @@ -93,6 +93,9 @@ public: DECLARE_DRIVER_INIT(005); DECLARE_DRIVER_INIT(monster2); DECLARE_DRIVER_INIT(astrob); + TILE_GET_INFO_MEMBER(spaceod_get_tile_info); + TILEMAP_MAPPER_MEMBER(spaceod_scan_rows); + TILE_GET_INFO_MEMBER(bg_get_tile_info); }; diff --git a/src/mame/includes/segas32.h b/src/mame/includes/segas32.h index e2cca09ee1e..20c91908206 100644 --- a/src/mame/includes/segas32.h +++ b/src/mame/includes/segas32.h @@ -170,6 +170,7 @@ public: DECLARE_DRIVER_INIT(radr); DECLARE_DRIVER_INIT(f1lap); DECLARE_DRIVER_INIT(orunners); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/seibuspi.h b/src/mame/includes/seibuspi.h index 75cd229d245..98a56d0eb92 100644 --- a/src/mame/includes/seibuspi.h +++ b/src/mame/includes/seibuspi.h @@ -102,6 +102,10 @@ public: DECLARE_DRIVER_INIT(ejanhs); DECLARE_DRIVER_INIT(sys386f2); DECLARE_DRIVER_INIT(rdft2us); + TILE_GET_INFO_MEMBER(get_text_tile_info); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_mid_tile_info); + TILE_GET_INFO_MEMBER(get_fore_tile_info); }; diff --git a/src/mame/includes/seicross.h b/src/mame/includes/seicross.h index e8d97153f9b..abb013b96cd 100644 --- a/src/mame/includes/seicross.h +++ b/src/mame/includes/seicross.h @@ -25,6 +25,7 @@ public: DECLARE_WRITE8_MEMBER(seicross_colorram_w); DECLARE_READ8_MEMBER(friskyt_portB_r); DECLARE_WRITE8_MEMBER(friskyt_portB_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/senjyo.h b/src/mame/includes/senjyo.h index 1d4079af798..a1863d58344 100644 --- a/src/mame/includes/senjyo.h +++ b/src/mame/includes/senjyo.h @@ -74,6 +74,11 @@ public: DECLARE_DRIVER_INIT(senjyo); DECLARE_DRIVER_INIT(starfore); DECLARE_DRIVER_INIT(starforc); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(senjyo_bg1_tile_info); + TILE_GET_INFO_MEMBER(starforc_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_bg3_tile_info); }; diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h index fb2ae28ba31..15e79213865 100644 --- a/src/mame/includes/seta.h +++ b/src/mame/includes/seta.h @@ -171,6 +171,12 @@ public: DECLARE_DRIVER_INIT(blandia); DECLARE_DRIVER_INIT(kiwame); DECLARE_DRIVER_INIT(eightfrc); + TILE_GET_INFO_MEMBER(twineagl_get_tile_info_0); + TILE_GET_INFO_MEMBER(twineagl_get_tile_info_1); + 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); }; /*----------- defined in video/seta.c -----------*/ diff --git a/src/mame/includes/sf.h b/src/mame/includes/sf.h index d5644c27937..59f164c10f7 100644 --- a/src/mame/includes/sf.h +++ b/src/mame/includes/sf.h @@ -41,6 +41,9 @@ public: DECLARE_WRITE16_MEMBER(sf_gfxctrl_w); DECLARE_WRITE8_MEMBER(msm1_5205_w); DECLARE_WRITE8_MEMBER(msm2_5205_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/shadfrce.h b/src/mame/includes/shadfrce.h index 83e5d6a3b9d..8732e699ac7 100644 --- a/src/mame/includes/shadfrce.h +++ b/src/mame/includes/shadfrce.h @@ -38,6 +38,9 @@ public: DECLARE_WRITE16_MEMBER(shadfrce_bg1scrollx_w); DECLARE_WRITE16_MEMBER(shadfrce_bg1scrolly_w); DECLARE_WRITE8_MEMBER(oki_bankswitch_w); + TILE_GET_INFO_MEMBER(get_shadfrce_fgtile_info); + TILE_GET_INFO_MEMBER(get_shadfrce_bg0tile_info); + TILE_GET_INFO_MEMBER(get_shadfrce_bg1tile_info); }; diff --git a/src/mame/includes/shangkid.h b/src/mame/includes/shangkid.h index a43e01d0d58..4bd94c9eb6f 100644 --- a/src/mame/includes/shangkid.h +++ b/src/mame/includes/shangkid.h @@ -25,6 +25,7 @@ public: DECLARE_WRITE8_MEMBER(ay8910_portb_w); DECLARE_DRIVER_INIT(shangkid); DECLARE_DRIVER_INIT(chinhero); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/shaolins.h b/src/mame/includes/shaolins.h index fda835c040d..607fab84ac0 100644 --- a/src/mame/includes/shaolins.h +++ b/src/mame/includes/shaolins.h @@ -22,6 +22,7 @@ public: DECLARE_WRITE8_MEMBER(shaolins_palettebank_w); DECLARE_WRITE8_MEMBER(shaolins_scroll_w); DECLARE_WRITE8_MEMBER(shaolins_nmi_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/shisen.h b/src/mame/includes/shisen.h index 6f3f23aba3c..1f457367034 100644 --- a/src/mame/includes/shisen.h +++ b/src/mame/includes/shisen.h @@ -15,6 +15,7 @@ public: DECLARE_WRITE8_MEMBER(sichuan2_videoram_w); DECLARE_WRITE8_MEMBER(sichuan2_bankswitch_w); DECLARE_WRITE8_MEMBER(sichuan2_paletteram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/shootout.h b/src/mame/includes/shootout.h index 433692d6ca9..df97c995e00 100644 --- a/src/mame/includes/shootout.h +++ b/src/mame/includes/shootout.h @@ -22,6 +22,8 @@ public: DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_DRIVER_INIT(shootouj); DECLARE_DRIVER_INIT(shootout); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/shuuz.h b/src/mame/includes/shuuz.h index c88e6ff700d..be18dcc8a14 100644 --- a/src/mame/includes/shuuz.h +++ b/src/mame/includes/shuuz.h @@ -18,6 +18,7 @@ public: DECLARE_WRITE16_MEMBER(latch_w); DECLARE_READ16_MEMBER(leta_r); DECLARE_READ16_MEMBER(special_port0_r); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/sidearms.h b/src/mame/includes/sidearms.h index 39f6c3145fa..aadefee35c0 100644 --- a/src/mame/includes/sidearms.h +++ b/src/mame/includes/sidearms.h @@ -46,6 +46,10 @@ public: DECLARE_DRIVER_INIT(sidearms); DECLARE_DRIVER_INIT(whizz); DECLARE_DRIVER_INIT(turtship); + TILE_GET_INFO_MEMBER(get_sidearms_bg_tile_info); + TILE_GET_INFO_MEMBER(get_philko_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILEMAP_MAPPER_MEMBER(sidearms_tilemap_scan); }; /*----------- defined in video/sidearms.c -----------*/ diff --git a/src/mame/includes/sidepckt.h b/src/mame/includes/sidepckt.h index b09a23bfe62..0e237b8074f 100644 --- a/src/mame/includes/sidepckt.h +++ b/src/mame/includes/sidepckt.h @@ -25,6 +25,7 @@ public: DECLARE_WRITE8_MEMBER(sidepckt_flipscreen_w); DECLARE_DRIVER_INIT(sidepckt); DECLARE_DRIVER_INIT(sidepctj); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/silkroad.h b/src/mame/includes/silkroad.h index 6d4aac9f770..a5a9d87d9a8 100644 --- a/src/mame/includes/silkroad.h +++ b/src/mame/includes/silkroad.h @@ -24,6 +24,9 @@ public: DECLARE_WRITE32_MEMBER(silkroad_fgram3_w); DECLARE_WRITE32_MEMBER(silk_6295_bank_w); DECLARE_DRIVER_INIT(silkroad); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_fg2_tile_info); + TILE_GET_INFO_MEMBER(get_fg3_tile_info); }; diff --git a/src/mame/includes/skullxbo.h b/src/mame/includes/skullxbo.h index 5656b8cc642..31b4cf68ec4 100644 --- a/src/mame/includes/skullxbo.h +++ b/src/mame/includes/skullxbo.h @@ -15,6 +15,8 @@ public: DECLARE_READ16_MEMBER(special_port1_r); DECLARE_WRITE16_MEMBER(skullxbo_mobwr_w); DECLARE_DRIVER_INIT(skullxbo); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/skydiver.h b/src/mame/includes/skydiver.h index 277ba6b6ca9..c0fb43b9b3b 100644 --- a/src/mame/includes/skydiver.h +++ b/src/mame/includes/skydiver.h @@ -46,6 +46,7 @@ public: DECLARE_WRITE8_MEMBER(skydiver_2000_201F_w); DECLARE_WRITE8_MEMBER(skydiver_sound_enable_w); DECLARE_WRITE8_MEMBER(skydiver_whistle_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/skykid.h b/src/mame/includes/skykid.h index 57f33fe8ee1..acdf94d1e8e 100644 --- a/src/mame/includes/skykid.h +++ b/src/mame/includes/skykid.h @@ -34,6 +34,9 @@ public: DECLARE_WRITE8_MEMBER(skykid_scroll_y_w); DECLARE_WRITE8_MEMBER(skykid_flipscreen_priority_w); DECLARE_DRIVER_INIT(skykid); + TILEMAP_MAPPER_MEMBER(tx_tilemap_scan); + TILE_GET_INFO_MEMBER(tx_get_tile_info); + TILE_GET_INFO_MEMBER(bg_get_tile_info); }; diff --git a/src/mame/includes/slapfght.h b/src/mame/includes/slapfght.h index b0cfe900823..5b22fb3a7df 100644 --- a/src/mame/includes/slapfght.h +++ b/src/mame/includes/slapfght.h @@ -117,6 +117,9 @@ public: DECLARE_DRIVER_INIT(perfrman); DECLARE_DRIVER_INIT(gtstarb2); DECLARE_DRIVER_INIT(tigerh); + TILE_GET_INFO_MEMBER(get_pf_tile_info); + TILE_GET_INFO_MEMBER(get_pf1_tile_info); + TILE_GET_INFO_MEMBER(get_fix_tile_info); }; diff --git a/src/mame/includes/snk.h b/src/mame/includes/snk.h index d24e045b512..2e144c9755a 100644 --- a/src/mame/includes/snk.h +++ b/src/mame/includes/snk.h @@ -141,6 +141,16 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(countryc_trackball_y); DECLARE_CUSTOM_INPUT_MEMBER(snk_bonus_r); DECLARE_DRIVER_INIT(countryc); + TILEMAP_MAPPER_MEMBER(marvins_tx_scan_cols); + TILE_GET_INFO_MEMBER(marvins_get_tx_tile_info); + TILE_GET_INFO_MEMBER(ikari_get_tx_tile_info); + TILE_GET_INFO_MEMBER(gwar_get_tx_tile_info); + TILE_GET_INFO_MEMBER(marvins_get_fg_tile_info); + TILE_GET_INFO_MEMBER(marvins_get_bg_tile_info); + TILE_GET_INFO_MEMBER(aso_get_bg_tile_info); + TILE_GET_INFO_MEMBER(tnk3_get_bg_tile_info); + TILE_GET_INFO_MEMBER(ikari_get_bg_tile_info); + TILE_GET_INFO_MEMBER(gwar_get_bg_tile_info); }; diff --git a/src/mame/includes/snk6502.h b/src/mame/includes/snk6502.h index f1424107282..b6ce8ea613a 100644 --- a/src/mame/includes/snk6502.h +++ b/src/mame/includes/snk6502.h @@ -47,6 +47,10 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(snk6502_music0_r); DECLARE_CUSTOM_INPUT_MEMBER(sasuke_count_r); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(satansat_get_bg_tile_info); + TILE_GET_INFO_MEMBER(satansat_get_fg_tile_info); }; diff --git a/src/mame/includes/snk68.h b/src/mame/includes/snk68.h index d659a289543..41e9330d4ff 100644 --- a/src/mame/includes/snk68.h +++ b/src/mame/includes/snk68.h @@ -39,6 +39,8 @@ public: DECLARE_WRITE8_MEMBER(D7759_write_port_0_w); DECLARE_WRITE8_MEMBER(D7759_upd_reset_w); DECLARE_DRIVER_INIT(searchar); + TILE_GET_INFO_MEMBER(get_pow_tile_info); + TILE_GET_INFO_MEMBER(get_searchar_tile_info); }; diff --git a/src/mame/includes/snookr10.h b/src/mame/includes/snookr10.h index f17c20fd6f7..b1bf2c1dbfa 100644 --- a/src/mame/includes/snookr10.h +++ b/src/mame/includes/snookr10.h @@ -22,6 +22,8 @@ public: DECLARE_WRITE8_MEMBER(output_port_1_w); DECLARE_WRITE8_MEMBER(snookr10_videoram_w); DECLARE_WRITE8_MEMBER(snookr10_colorram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(apple10_get_bg_tile_info); }; diff --git a/src/mame/includes/solomon.h b/src/mame/includes/solomon.h index 688c881db22..8d35e517896 100644 --- a/src/mame/includes/solomon.h +++ b/src/mame/includes/solomon.h @@ -27,6 +27,8 @@ public: DECLARE_WRITE8_MEMBER(solomon_videoram2_w); DECLARE_WRITE8_MEMBER(solomon_colorram2_w); DECLARE_WRITE8_MEMBER(solomon_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/sonson.h b/src/mame/includes/sonson.h index 5c96a3ccf7c..c8b54c96427 100644 --- a/src/mame/includes/sonson.h +++ b/src/mame/includes/sonson.h @@ -33,6 +33,7 @@ public: DECLARE_WRITE8_MEMBER(sonson_colorram_w); DECLARE_WRITE8_MEMBER(sonson_scrollx_w); DECLARE_WRITE8_MEMBER(sonson_flipscreen_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/spdodgeb.h b/src/mame/includes/spdodgeb.h index 94a694102aa..58152174922 100644 --- a/src/mame/includes/spdodgeb.h +++ b/src/mame/includes/spdodgeb.h @@ -41,6 +41,8 @@ public: DECLARE_WRITE8_MEMBER(spdodgeb_scrollx_lo_w); DECLARE_WRITE8_MEMBER(spdodgeb_ctrl_w); DECLARE_WRITE8_MEMBER(spdodgeb_videoram_w); + TILEMAP_MAPPER_MEMBER(background_scan); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/speedbal.h b/src/mame/includes/speedbal.h index e47026c87a4..a98f76f805e 100644 --- a/src/mame/includes/speedbal.h +++ b/src/mame/includes/speedbal.h @@ -15,6 +15,8 @@ public: DECLARE_WRITE8_MEMBER(speedbal_coincounter_w); DECLARE_WRITE8_MEMBER(speedbal_foreground_videoram_w); DECLARE_WRITE8_MEMBER(speedbal_background_videoram_w); + TILE_GET_INFO_MEMBER(get_tile_info_bg); + TILE_GET_INFO_MEMBER(get_tile_info_fg); }; diff --git a/src/mame/includes/speedspn.h b/src/mame/includes/speedspn.h index 049909d2d9e..77c49abe362 100644 --- a/src/mame/includes/speedspn.h +++ b/src/mame/includes/speedspn.h @@ -19,6 +19,7 @@ public: DECLARE_WRITE8_MEMBER(speedspn_banked_vidram_change); DECLARE_WRITE8_MEMBER(speedspn_global_display_w); DECLARE_WRITE8_MEMBER(oki_banking_w); + TILE_GET_INFO_MEMBER(get_speedspn_tile_info); }; diff --git a/src/mame/includes/splash.h b/src/mame/includes/splash.h index 490db307fae..9a49d7b0884 100644 --- a/src/mame/includes/splash.h +++ b/src/mame/includes/splash.h @@ -57,6 +57,8 @@ public: DECLARE_DRIVER_INIT(funystrp); DECLARE_DRIVER_INIT(splash); DECLARE_DRIVER_INIT(rebus); + TILE_GET_INFO_MEMBER(get_tile_info_splash_tilemap0); + TILE_GET_INFO_MEMBER(get_tile_info_splash_tilemap1); }; diff --git a/src/mame/includes/sprcros2.h b/src/mame/includes/sprcros2.h index e1a04ce95a4..b3b1db5566e 100644 --- a/src/mame/includes/sprcros2.h +++ b/src/mame/includes/sprcros2.h @@ -25,6 +25,8 @@ public: DECLARE_WRITE8_MEMBER(sprcros2_bgvideoram_w); DECLARE_WRITE8_MEMBER(sprcros2_bgscrollx_w); DECLARE_WRITE8_MEMBER(sprcros2_bgscrolly_w); + TILE_GET_INFO_MEMBER(get_sprcros2_bgtile_info); + TILE_GET_INFO_MEMBER(get_sprcros2_fgtile_info); }; diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h index b09af10cc41..ddca0f2bfcd 100644 --- a/src/mame/includes/sprint2.h +++ b/src/mame/includes/sprint2.h @@ -61,6 +61,7 @@ public: DECLARE_DRIVER_INIT(sprint1); DECLARE_DRIVER_INIT(sprint2); DECLARE_DRIVER_INIT(dominos); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/sprint4.h b/src/mame/includes/sprint4.h index be0a93f48cd..4b01410ded2 100644 --- a/src/mame/includes/sprint4.h +++ b/src/mame/includes/sprint4.h @@ -34,6 +34,7 @@ public: DECLARE_WRITE8_MEMBER(sprint4_screech_4_w); DECLARE_WRITE8_MEMBER(sprint4_bang_w); DECLARE_WRITE8_MEMBER(sprint4_attract_w); + TILE_GET_INFO_MEMBER(sprint4_tile_info); }; diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h index 0d39c36bf4f..62f720aa3bd 100644 --- a/src/mame/includes/sprint8.h +++ b/src/mame/includes/sprint8.h @@ -30,6 +30,8 @@ public: DECLARE_WRITE8_MEMBER(sprint8_lockout_w); DECLARE_WRITE8_MEMBER(sprint8_int_reset_w); DECLARE_WRITE8_MEMBER(sprint8_video_ram_w); + TILE_GET_INFO_MEMBER(get_tile_info1); + TILE_GET_INFO_MEMBER(get_tile_info2); }; diff --git a/src/mame/includes/srumbler.h b/src/mame/includes/srumbler.h index 8ff45286fc7..9296aa1a0a1 100644 --- a/src/mame/includes/srumbler.h +++ b/src/mame/includes/srumbler.h @@ -23,6 +23,8 @@ public: DECLARE_WRITE8_MEMBER(srumbler_background_w); DECLARE_WRITE8_MEMBER(srumbler_4009_w); DECLARE_WRITE8_MEMBER(srumbler_scroll_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/sslam.h b/src/mame/includes/sslam.h index 950ef05b8b3..3d55e5c60a3 100644 --- a/src/mame/includes/sslam.h +++ b/src/mame/includes/sslam.h @@ -44,6 +44,10 @@ public: DECLARE_WRITE16_MEMBER(sslam_snd_w); DECLARE_DRIVER_INIT(sslam); DECLARE_DRIVER_INIT(powerbls); + TILE_GET_INFO_MEMBER(get_sslam_tx_tile_info); + TILE_GET_INFO_MEMBER(get_sslam_md_tile_info); + TILE_GET_INFO_MEMBER(get_sslam_bg_tile_info); + TILE_GET_INFO_MEMBER(get_powerbls_bg_tile_info); }; diff --git a/src/mame/includes/ssozumo.h b/src/mame/includes/ssozumo.h index 56d91e45c81..1a7258c1da8 100644 --- a/src/mame/includes/ssozumo.h +++ b/src/mame/includes/ssozumo.h @@ -31,6 +31,8 @@ public: DECLARE_WRITE8_MEMBER(ssozumo_scroll_w); DECLARE_WRITE8_MEMBER(ssozumo_flipscreen_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/ssrj.h b/src/mame/includes/ssrj.h index 108ea9ba83b..5a09f6dec8c 100644 --- a/src/mame/includes/ssrj.h +++ b/src/mame/includes/ssrj.h @@ -23,6 +23,9 @@ public: DECLARE_WRITE8_MEMBER(ssrj_vram1_w); DECLARE_WRITE8_MEMBER(ssrj_vram2_w); DECLARE_WRITE8_MEMBER(ssrj_vram4_w); + TILE_GET_INFO_MEMBER(get_tile_info1); + TILE_GET_INFO_MEMBER(get_tile_info2); + TILE_GET_INFO_MEMBER(get_tile_info4); }; diff --git a/src/mame/includes/ssv.h b/src/mame/includes/ssv.h index fdf299844d2..fa57476c9cb 100644 --- a/src/mame/includes/ssv.h +++ b/src/mame/includes/ssv.h @@ -120,6 +120,7 @@ public: DECLARE_DRIVER_INIT(jsk); DECLARE_DRIVER_INIT(twineag2); DECLARE_DRIVER_INIT(mslider); + TILE_GET_INFO_MEMBER(get_tile_info_0); }; /*----------- defined in video/ssv.c -----------*/ diff --git a/src/mame/includes/stadhero.h b/src/mame/includes/stadhero.h index ff3873769a9..b1a333daa29 100644 --- a/src/mame/includes/stadhero.h +++ b/src/mame/includes/stadhero.h @@ -13,6 +13,7 @@ public: DECLARE_READ16_MEMBER(stadhero_control_r); DECLARE_WRITE16_MEMBER(stadhero_control_w); DECLARE_WRITE16_MEMBER(stadhero_pf1_data_w); + TILE_GET_INFO_MEMBER(get_pf1_tile_info); }; diff --git a/src/mame/includes/starshp1.h b/src/mame/includes/starshp1.h index 7b39e47dab8..44e0c701dba 100644 --- a/src/mame/includes/starshp1.h +++ b/src/mame/includes/starshp1.h @@ -75,6 +75,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(collision_latch_r); DECLARE_WRITE8_MEMBER(starshp1_audio_w); DECLARE_WRITE8_MEMBER(starshp1_analog_out_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/stfight.h b/src/mame/includes/stfight.h index 7f034b8d1fe..ed2f18b6828 100644 --- a/src/mame/includes/stfight.h +++ b/src/mame/includes/stfight.h @@ -37,6 +37,11 @@ public: DECLARE_WRITE8_MEMBER(stfight_vh_latch_w); DECLARE_DRIVER_INIT(stfight); DECLARE_DRIVER_INIT(empcity); + TILEMAP_MAPPER_MEMBER(fg_scan); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILEMAP_MAPPER_MEMBER(bg_scan); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/stlforce.h b/src/mame/includes/stlforce.h index 0401c70fb9b..6d3b750c034 100644 --- a/src/mame/includes/stlforce.h +++ b/src/mame/includes/stlforce.h @@ -38,6 +38,10 @@ public: DECLARE_WRITE16_MEMBER(oki_bank_w); DECLARE_DRIVER_INIT(twinbrat); DECLARE_DRIVER_INIT(stlforce); + TILE_GET_INFO_MEMBER(get_stlforce_bg_tile_info); + TILE_GET_INFO_MEMBER(get_stlforce_mlow_tile_info); + TILE_GET_INFO_MEMBER(get_stlforce_mhigh_tile_info); + TILE_GET_INFO_MEMBER(get_stlforce_tx_tile_info); }; diff --git a/src/mame/includes/strnskil.h b/src/mame/includes/strnskil.h index eca0cfd95c6..329a97afbd3 100644 --- a/src/mame/includes/strnskil.h +++ b/src/mame/includes/strnskil.h @@ -27,6 +27,7 @@ public: DECLARE_WRITE8_MEMBER(strnskil_scrl_ctrl_w); DECLARE_DRIVER_INIT(banbam); DECLARE_DRIVER_INIT(pettanp); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h index 31872fd0eb2..b03fc3f7ecd 100644 --- a/src/mame/includes/suna8.h +++ b/src/mame/includes/suna8.h @@ -88,6 +88,7 @@ public: DECLARE_DRIVER_INIT(brickzn); DECLARE_DRIVER_INIT(hardhead); DECLARE_DRIVER_INIT(suna8); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/superqix.h b/src/mame/includes/superqix.h index 1f0cb680cc0..c8b1154393a 100644 --- a/src/mame/includes/superqix.h +++ b/src/mame/includes/superqix.h @@ -70,6 +70,8 @@ public: DECLARE_DRIVER_INIT(sqix); DECLARE_DRIVER_INIT(perestro); DECLARE_DRIVER_INIT(sqixa); + TILE_GET_INFO_MEMBER(pb_get_bg_tile_info); + TILE_GET_INFO_MEMBER(sqix_get_bg_tile_info); }; diff --git a/src/mame/includes/suprloco.h b/src/mame/includes/suprloco.h index 99441b09afd..d8154a70333 100644 --- a/src/mame/includes/suprloco.h +++ b/src/mame/includes/suprloco.h @@ -19,6 +19,7 @@ public: DECLARE_WRITE8_MEMBER(suprloco_control_w); DECLARE_READ8_MEMBER(suprloco_control_r); DECLARE_DRIVER_INIT(suprloco); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/suprnova.h b/src/mame/includes/suprnova.h index 04fc867404b..ccb2f841eba 100644 --- a/src/mame/includes/suprnova.h +++ b/src/mame/includes/suprnova.h @@ -124,6 +124,8 @@ public: DECLARE_DRIVER_INIT(senknow); DECLARE_DRIVER_INIT(galpani4); DECLARE_DRIVER_INIT(ryouran); + TILE_GET_INFO_MEMBER(get_tilemap_A_tile_info); + TILE_GET_INFO_MEMBER(get_tilemap_B_tile_info); }; diff --git a/src/mame/includes/suprridr.h b/src/mame/includes/suprridr.h index 26409f208a9..1e4f4758611 100644 --- a/src/mame/includes/suprridr.h +++ b/src/mame/includes/suprridr.h @@ -36,6 +36,8 @@ public: DECLARE_WRITE8_MEMBER(suprridr_fgram_w); DECLARE_CUSTOM_INPUT_MEMBER(suprridr_control_r); DECLARE_READ8_MEMBER(sound_data_r); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info2); }; diff --git a/src/mame/includes/suprslam.h b/src/mame/includes/suprslam.h index 868000c41e6..f7f3a609b9f 100644 --- a/src/mame/includes/suprslam.h +++ b/src/mame/includes/suprslam.h @@ -44,6 +44,8 @@ public: DECLARE_WRITE16_MEMBER(suprslam_screen_videoram_w); DECLARE_WRITE16_MEMBER(suprslam_bg_videoram_w); DECLARE_WRITE16_MEMBER(suprslam_bank_w); + TILE_GET_INFO_MEMBER(get_suprslam_tile_info); + TILE_GET_INFO_MEMBER(get_suprslam_bg_tile_info); }; diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h index 1e3aae7a0eb..679f7eb47f1 100644 --- a/src/mame/includes/system1.h +++ b/src/mame/includes/system1.h @@ -98,6 +98,7 @@ public: DECLARE_DRIVER_INIT(seganinj); DECLARE_DRIVER_INIT(gardia); DECLARE_DRIVER_INIT(spatter); + TILE_GET_INFO_MEMBER(tile_get_info); }; diff --git a/src/mame/includes/system16.h b/src/mame/includes/system16.h index 808b5d1aa68..d0ffa7fdd5d 100644 --- a/src/mame/includes/system16.h +++ b/src/mame/includes/system16.h @@ -173,6 +173,16 @@ public: DECLARE_DRIVER_INIT(tturfbl); DECLARE_DRIVER_INIT(goldnaxeb1); DECLARE_DRIVER_INIT(common); + TILEMAP_MAPPER_MEMBER(sys16_bg_map); + TILEMAP_MAPPER_MEMBER(sys16_text_map); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_fg2_tile_info); + TILE_GET_INFO_MEMBER(get_text_tile_info); + TILE_GET_INFO_MEMBER(get_s16a_bootleg_tile_infotxt); + TILE_GET_INFO_MEMBER(get_s16a_bootleg_tile_info0); + TILE_GET_INFO_MEMBER(get_s16a_bootleg_tile_info1); }; /*----------- defined in video/system16.c -----------*/ diff --git a/src/mame/includes/tagteam.h b/src/mame/includes/tagteam.h index 0bb4c88490b..38e41a36b61 100644 --- a/src/mame/includes/tagteam.h +++ b/src/mame/includes/tagteam.h @@ -24,6 +24,7 @@ public: DECLARE_WRITE8_MEMBER(tagteam_control_w); DECLARE_WRITE8_MEMBER(tagteam_flipscreen_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/tail2nos.h b/src/mame/includes/tail2nos.h index de7208397db..0d4e9a62729 100644 --- a/src/mame/includes/tail2nos.h +++ b/src/mame/includes/tail2nos.h @@ -34,6 +34,7 @@ public: DECLARE_WRITE16_MEMBER(tail2nos_zoomdata_w); DECLARE_WRITE16_MEMBER(tail2nos_gfxbank_w); DECLARE_WRITE8_MEMBER(sound_bankswitch_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h index 9c44b340366..750b76ae29f 100644 --- a/src/mame/includes/taito_f3.h +++ b/src/mame/includes/taito_f3.h @@ -258,6 +258,16 @@ public: DECLARE_DRIVER_INIT(cleopatr); DECLARE_DRIVER_INIT(scfinals); DECLARE_DRIVER_INIT(pbobbl2x); + TILE_GET_INFO_MEMBER(get_tile_info1); + TILE_GET_INFO_MEMBER(get_tile_info2); + TILE_GET_INFO_MEMBER(get_tile_info3); + TILE_GET_INFO_MEMBER(get_tile_info4); + TILE_GET_INFO_MEMBER(get_tile_info5); + TILE_GET_INFO_MEMBER(get_tile_info6); + TILE_GET_INFO_MEMBER(get_tile_info7); + TILE_GET_INFO_MEMBER(get_tile_info8); + TILE_GET_INFO_MEMBER(get_tile_info_vram); + TILE_GET_INFO_MEMBER(get_tile_info_pixel); }; diff --git a/src/mame/includes/taito_l.h b/src/mame/includes/taito_l.h index 310e6fcfe43..f731ae78ff0 100644 --- a/src/mame/includes/taito_l.h +++ b/src/mame/includes/taito_l.h @@ -104,6 +104,9 @@ public: DECLARE_WRITE8_MEMBER(champwr_msm5205_volume_w); DECLARE_WRITE8_MEMBER(portA_w); DECLARE_DRIVER_INIT(plottinga); + TILE_GET_INFO_MEMBER(get_bg18_tile_info); + TILE_GET_INFO_MEMBER(get_bg19_tile_info); + TILE_GET_INFO_MEMBER(get_ch1a_tile_info); }; /*----------- defined in video/taito_l.c -----------*/ diff --git a/src/mame/includes/taitojc.h b/src/mame/includes/taitojc.h index 1515e1ed829..f8c75ec7305 100644 --- a/src/mame/includes/taitojc.h +++ b/src/mame/includes/taitojc.h @@ -156,6 +156,7 @@ public: DECLARE_DRIVER_INIT(dendego2); DECLARE_DRIVER_INIT(dangcurv); DECLARE_DRIVER_INIT(taitojc); + TILE_GET_INFO_MEMBER(taitojc_tile_info); }; diff --git a/src/mame/includes/tank8.h b/src/mame/includes/tank8.h index 6022d19cd39..4001ad8d862 100644 --- a/src/mame/includes/tank8.h +++ b/src/mame/includes/tank8.h @@ -55,6 +55,7 @@ public: DECLARE_WRITE8_MEMBER(tank8_attract_w); DECLARE_WRITE8_MEMBER(tank8_motor_w); DECLARE_DRIVER_INIT(decode); + TILE_GET_INFO_MEMBER(tank8_get_tile_info); }; diff --git a/src/mame/includes/tankbatt.h b/src/mame/includes/tankbatt.h index 23f11562711..9172b9df5e9 100644 --- a/src/mame/includes/tankbatt.h +++ b/src/mame/includes/tankbatt.h @@ -26,6 +26,7 @@ public: DECLARE_WRITE8_MEMBER(tankbatt_coin_lockout_w); DECLARE_WRITE8_MEMBER(tankbatt_videoram_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/tankbust.h b/src/mame/includes/tankbust.h index 89e69226b03..1bce8779b78 100644 --- a/src/mame/includes/tankbust.h +++ b/src/mame/includes/tankbust.h @@ -37,6 +37,8 @@ public: DECLARE_WRITE8_MEMBER(tankbust_yscroll_w); DECLARE_READ8_MEMBER(tankbust_soundlatch_r); DECLARE_READ8_MEMBER(tankbust_soundtimer_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_txt_tile_info); }; diff --git a/src/mame/includes/taotaido.h b/src/mame/includes/taotaido.h index 4c1a5ed574c..b9cb6e08dfa 100644 --- a/src/mame/includes/taotaido.h +++ b/src/mame/includes/taotaido.h @@ -27,6 +27,8 @@ public: DECLARE_WRITE16_MEMBER(taotaido_sprite_character_bank_select_w); DECLARE_WRITE16_MEMBER(taotaido_tileregs_w); DECLARE_WRITE16_MEMBER(taotaido_bgvideoram_w); + TILE_GET_INFO_MEMBER(taotaido_bg_tile_info); + TILEMAP_MAPPER_MEMBER(taotaido_tilemap_scan_rows); }; diff --git a/src/mame/includes/targeth.h b/src/mame/includes/targeth.h index 0df17b2d92a..b04edcb8211 100644 --- a/src/mame/includes/targeth.h +++ b/src/mame/includes/targeth.h @@ -17,6 +17,8 @@ public: DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w); DECLARE_WRITE16_MEMBER(targeth_coin_counter_w); DECLARE_WRITE16_MEMBER(targeth_vram_w); + TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen0); + TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen1); }; diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h index d2b1aebe83b..f9af3a96357 100644 --- a/src/mame/includes/tatsumi.h +++ b/src/mame/includes/tatsumi.h @@ -112,6 +112,9 @@ public: DECLARE_DRIVER_INIT(roundup5); DECLARE_DRIVER_INIT(apache3); DECLARE_DRIVER_INIT(cyclwarr); + TILE_GET_INFO_MEMBER(get_text_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info_bigfight_0); + TILE_GET_INFO_MEMBER(get_tile_info_bigfight_1); }; diff --git a/src/mame/includes/tbowl.h b/src/mame/includes/tbowl.h index 9006e3ddcfa..cab6a639027 100644 --- a/src/mame/includes/tbowl.h +++ b/src/mame/includes/tbowl.h @@ -45,6 +45,9 @@ public: DECLARE_WRITE8_MEMBER(tbowl_bg2xscroll_hi); DECLARE_WRITE8_MEMBER(tbowl_bg2yscroll_lo); DECLARE_WRITE8_MEMBER(tbowl_bg2yscroll_hi); + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/tceptor.h b/src/mame/includes/tceptor.h index 6ad2001f599..e860020048b 100644 --- a/src/mame/includes/tceptor.h +++ b/src/mame/includes/tceptor.h @@ -53,6 +53,9 @@ public: DECLARE_WRITE8_MEMBER(voice_w); optional_device<namco_c45_road_device> m_c45_road; + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/tecmo.h b/src/mame/includes/tecmo.h index 0f064bfbb30..ec58bf24fcb 100644 --- a/src/mame/includes/tecmo.h +++ b/src/mame/includes/tecmo.h @@ -41,6 +41,11 @@ public: DECLARE_DRIVER_INIT(rygar); DECLARE_DRIVER_INIT(backfirt); DECLARE_DRIVER_INIT(gemini); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(gemini_get_bg_tile_info); + TILE_GET_INFO_MEMBER(gemini_get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/tecmo16.h b/src/mame/includes/tecmo16.h index e7e84867005..93093817cd2 100644 --- a/src/mame/includes/tecmo16.h +++ b/src/mame/includes/tecmo16.h @@ -43,6 +43,9 @@ public: DECLARE_WRITE16_MEMBER(tecmo16_scroll2_y_w); DECLARE_WRITE16_MEMBER(tecmo16_scroll_char_x_w); DECLARE_WRITE16_MEMBER(tecmo16_scroll_char_y_w); + TILE_GET_INFO_MEMBER(fg_get_tile_info); + TILE_GET_INFO_MEMBER(bg_get_tile_info); + TILE_GET_INFO_MEMBER(tx_get_tile_info); }; diff --git a/src/mame/includes/tecmosys.h b/src/mame/includes/tecmosys.h index a2a0e64815a..a0341240a52 100644 --- a/src/mame/includes/tecmosys.h +++ b/src/mame/includes/tecmosys.h @@ -73,6 +73,10 @@ public: DECLARE_DRIVER_INIT(tkdensha); DECLARE_DRIVER_INIT(deroon); DECLARE_DRIVER_INIT(tkdensho); + TILE_GET_INFO_MEMBER(get_bg0tile_info); + TILE_GET_INFO_MEMBER(get_bg1tile_info); + TILE_GET_INFO_MEMBER(get_bg2tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/tehkanwc.h b/src/mame/includes/tehkanwc.h index b16f8015c21..c92e37e2284 100644 --- a/src/mame/includes/tehkanwc.h +++ b/src/mame/includes/tehkanwc.h @@ -43,6 +43,8 @@ public: DECLARE_WRITE8_MEMBER(tehkanwc_portB_w); DECLARE_WRITE8_MEMBER(msm_reset_w); DECLARE_DRIVER_INIT(teedoff); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/terracre.h b/src/mame/includes/terracre.h index 98b50ef7c0c..981ca2311b3 100644 --- a/src/mame/includes/terracre.h +++ b/src/mame/includes/terracre.h @@ -31,6 +31,8 @@ public: DECLARE_DRIVER_INIT(amazon); DECLARE_DRIVER_INIT(amatelas); DECLARE_DRIVER_INIT(horekid); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/tetrisp2.h b/src/mame/includes/tetrisp2.h index c268a5a1ace..438fab5502d 100644 --- a/src/mame/includes/tetrisp2.h +++ b/src/mame/includes/tetrisp2.h @@ -95,6 +95,13 @@ public: DECLARE_DRIVER_INIT(rockn); DECLARE_DRIVER_INIT(rockn3); DECLARE_DRIVER_INIT(rocknms); + TILE_GET_INFO_MEMBER(get_tile_info_bg); + TILE_GET_INFO_MEMBER(get_tile_info_fg); + TILE_GET_INFO_MEMBER(get_tile_info_rot); + TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_bg); + TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_fg); + TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_rot); + TILE_GET_INFO_MEMBER(stepstag_get_tile_info_fg); }; class stepstag_state : public tetrisp2_state diff --git a/src/mame/includes/thedeep.h b/src/mame/includes/thedeep.h index 2797f1d2dc6..9ff2b8de7da 100644 --- a/src/mame/includes/thedeep.h +++ b/src/mame/includes/thedeep.h @@ -43,6 +43,9 @@ public: DECLARE_READ8_MEMBER(thedeep_p0_r); DECLARE_WRITE8_MEMBER(thedeep_vram_0_w); DECLARE_WRITE8_MEMBER(thedeep_vram_1_w); + TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_back); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); }; diff --git a/src/mame/includes/thepit.h b/src/mame/includes/thepit.h index 1d6087ce6b3..d90825561c2 100644 --- a/src/mame/includes/thepit.h +++ b/src/mame/includes/thepit.h @@ -33,6 +33,8 @@ public: DECLARE_WRITE8_MEMBER(intrepid_graphics_bank_w); DECLARE_READ8_MEMBER(thepit_input_port_0_r); DECLARE_DRIVER_INIT(rtriv); + TILE_GET_INFO_MEMBER(solid_get_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/thoop2.h b/src/mame/includes/thoop2.h index f472064fbab..e0f0a6797d1 100644 --- a/src/mame/includes/thoop2.h +++ b/src/mame/includes/thoop2.h @@ -17,6 +17,8 @@ public: DECLARE_WRITE16_MEMBER(thoop2_coin_w); DECLARE_READ16_MEMBER(DS5002FP_R); DECLARE_WRITE16_MEMBER(thoop2_vram_w); + TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen0); + TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen1); }; diff --git a/src/mame/includes/thunderj.h b/src/mame/includes/thunderj.h index 9e20b46c0ed..14a20aa616f 100644 --- a/src/mame/includes/thunderj.h +++ b/src/mame/includes/thunderj.h @@ -18,6 +18,9 @@ public: DECLARE_READ16_MEMBER(thunderj_atarivc_r); DECLARE_WRITE16_MEMBER(thunderj_atarivc_w); DECLARE_DRIVER_INIT(thunderj); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + TILE_GET_INFO_MEMBER(get_playfield2_tile_info); }; diff --git a/src/mame/includes/tiamc1.h b/src/mame/includes/tiamc1.h index 1086dd2b32a..b1353aaec63 100644 --- a/src/mame/includes/tiamc1.h +++ b/src/mame/includes/tiamc1.h @@ -28,6 +28,8 @@ public: DECLARE_WRITE8_MEMBER(tiamc1_bg_vshift_w); DECLARE_WRITE8_MEMBER(tiamc1_bg_hshift_w); DECLARE_WRITE8_MEMBER(tiamc1_palette_w); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/tigeroad.h b/src/mame/includes/tigeroad.h index b3d803d51e9..fe27f1947ed 100644 --- a/src/mame/includes/tigeroad.h +++ b/src/mame/includes/tigeroad.h @@ -23,6 +23,9 @@ public: DECLARE_WRITE8_MEMBER(msm5205_w); DECLARE_DRIVER_INIT(f1dream); DECLARE_DRIVER_INIT(tigeroad); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILEMAP_MAPPER_MEMBER(tigeroad_tilemap_scan); }; diff --git a/src/mame/includes/timelimt.h b/src/mame/includes/timelimt.h index aec9ba328e5..64a7dda4e4f 100644 --- a/src/mame/includes/timelimt.h +++ b/src/mame/includes/timelimt.h @@ -22,6 +22,8 @@ public: DECLARE_WRITE8_MEMBER(timelimt_scroll_x_lsb_w); DECLARE_WRITE8_MEMBER(timelimt_scroll_x_msb_w); DECLARE_WRITE8_MEMBER(timelimt_scroll_y_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/timeplt.h b/src/mame/includes/timeplt.h index 9bf2fc83ff5..44acdeae6fa 100644 --- a/src/mame/includes/timeplt.h +++ b/src/mame/includes/timeplt.h @@ -43,6 +43,8 @@ public: DECLARE_READ8_MEMBER(timeplt_scanline_r); DECLARE_CUSTOM_INPUT_MEMBER(chkun_hopper_status_r); DECLARE_WRITE8_MEMBER(chkun_sound_w); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(get_chkun_tile_info); }; diff --git a/src/mame/includes/tmnt.h b/src/mame/includes/tmnt.h index d5d33a3b31e..df4f94f0b7a 100644 --- a/src/mame/includes/tmnt.h +++ b/src/mame/includes/tmnt.h @@ -119,6 +119,8 @@ public: DECLARE_DRIVER_INIT(mia); DECLARE_DRIVER_INIT(tmnt); DECLARE_DRIVER_INIT(cuebrick); + TILE_GET_INFO_MEMBER(glfgreat_get_roz_tile_info); + TILE_GET_INFO_MEMBER(prmrsocr_get_roz_tile_info); }; diff --git a/src/mame/includes/toaplan1.h b/src/mame/includes/toaplan1.h index 99aa6bce182..061c5615140 100644 --- a/src/mame/includes/toaplan1.h +++ b/src/mame/includes/toaplan1.h @@ -128,6 +128,10 @@ public: DECLARE_DRIVER_INIT(toaplan1); DECLARE_DRIVER_INIT(demonwld); DECLARE_DRIVER_INIT(vimana); + TILE_GET_INFO_MEMBER(get_pf1_tile_info); + TILE_GET_INFO_MEMBER(get_pf2_tile_info); + TILE_GET_INFO_MEMBER(get_pf3_tile_info); + TILE_GET_INFO_MEMBER(get_pf4_tile_info); }; diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h index effed083375..2b3a6936980 100644 --- a/src/mame/includes/toaplan2.h +++ b/src/mame/includes/toaplan2.h @@ -109,6 +109,7 @@ public: DECLARE_DRIVER_INIT(fixeightbl); DECLARE_DRIVER_INIT(vfive); DECLARE_DRIVER_INIT(batrider); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; /*----------- defined in video/toaplan2.c -----------*/ diff --git a/src/mame/includes/toki.h b/src/mame/includes/toki.h index 53ec18b0230..ae30fc43be4 100644 --- a/src/mame/includes/toki.h +++ b/src/mame/includes/toki.h @@ -34,6 +34,9 @@ public: DECLARE_DRIVER_INIT(tokib); DECLARE_DRIVER_INIT(jujuba); DECLARE_DRIVER_INIT(toki); + TILE_GET_INFO_MEMBER(get_text_tile_info); + TILE_GET_INFO_MEMBER(get_back_tile_info); + TILE_GET_INFO_MEMBER(get_fore_tile_info); }; diff --git a/src/mame/includes/toobin.h b/src/mame/includes/toobin.h index e0b4097537f..ff883a3001f 100644 --- a/src/mame/includes/toobin.h +++ b/src/mame/includes/toobin.h @@ -20,6 +20,8 @@ public: DECLARE_WRITE16_MEMBER(interrupt_scan_w); DECLARE_READ16_MEMBER(special_port1_r); DECLARE_DRIVER_INIT(toobin); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/toypop.h b/src/mame/includes/toypop.h index e6d27d7a387..d5b2584489d 100644 --- a/src/mame/includes/toypop.h +++ b/src/mame/includes/toypop.h @@ -44,6 +44,8 @@ public: DECLARE_WRITE8_MEMBER(out_coin0); DECLARE_WRITE8_MEMBER(out_coin1); DECLARE_WRITE8_MEMBER(flip); + TILEMAP_MAPPER_MEMBER(tilemap_scan); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/tp84.h b/src/mame/includes/tp84.h index 3a3511970c0..57e8b58d996 100644 --- a/src/mame/includes/tp84.h +++ b/src/mame/includes/tp84.h @@ -35,6 +35,8 @@ public: DECLARE_WRITE8_MEMBER(sub_irq_mask_w); DECLARE_WRITE8_MEMBER(tp84_spriteram_w); DECLARE_READ8_MEMBER(tp84_scanline_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/trackfld.h b/src/mame/includes/trackfld.h index 695ed239fd2..d7d4206daee 100644 --- a/src/mame/includes/trackfld.h +++ b/src/mame/includes/trackfld.h @@ -59,6 +59,7 @@ public: UINT8 m_SN76496_latch; DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; }; DECLARE_WRITE8_MEMBER( konami_SN76496_w ) { m_sn->write(space, offset, m_SN76496_latch); }; + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/travrusa.h b/src/mame/includes/travrusa.h index 213ca911839..c2dc9590a02 100644 --- a/src/mame/includes/travrusa.h +++ b/src/mame/includes/travrusa.h @@ -19,6 +19,7 @@ public: DECLARE_WRITE8_MEMBER(travrusa_flipscreen_w); DECLARE_DRIVER_INIT(shtridra); DECLARE_DRIVER_INIT(motorace); + TILE_GET_INFO_MEMBER(get_tile_info); }; /*----------- defined in video/travrusa.c -----------*/ diff --git a/src/mame/includes/triplhnt.h b/src/mame/includes/triplhnt.h index 115bfc394dc..75ea8857a5b 100644 --- a/src/mame/includes/triplhnt.h +++ b/src/mame/includes/triplhnt.h @@ -47,6 +47,7 @@ public: DECLARE_READ8_MEMBER(triplhnt_misc_r); DECLARE_READ8_MEMBER(triplhnt_da_latch_r); DECLARE_DRIVER_INIT(triplhnt); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/trucocl.h b/src/mame/includes/trucocl.h index aa6b42250e3..ec0ac290c95 100644 --- a/src/mame/includes/trucocl.h +++ b/src/mame/includes/trucocl.h @@ -18,6 +18,7 @@ public: DECLARE_WRITE8_MEMBER(trucocl_colorram_w); DECLARE_WRITE8_MEMBER(audio_dac_w); DECLARE_DRIVER_INIT(trucocl); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/tryout.h b/src/mame/includes/tryout.h index 41caac6deac..3c79b196437 100644 --- a/src/mame/includes/tryout.h +++ b/src/mame/includes/tryout.h @@ -28,6 +28,10 @@ public: DECLARE_WRITE8_MEMBER(tryout_vram_bankswitch_w); DECLARE_WRITE8_MEMBER(tryout_flipscreen_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILEMAP_MAPPER_MEMBER(get_fg_memory_offset); + TILEMAP_MAPPER_MEMBER(get_bg_memory_offset); }; diff --git a/src/mame/includes/tsamurai.h b/src/mame/includes/tsamurai.h index d48720deb83..1508859cadd 100644 --- a/src/mame/includes/tsamurai.h +++ b/src/mame/includes/tsamurai.h @@ -52,6 +52,9 @@ public: DECLARE_WRITE8_MEMBER(tsamurai_fg_videoram_w); DECLARE_WRITE8_MEMBER(tsamurai_fg_colorram_w); DECLARE_WRITE8_MEMBER(vsgongf_color_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_vsgongf_tile_info); }; diff --git a/src/mame/includes/tumbleb.h b/src/mame/includes/tumbleb.h index 7ff57dd0052..662e10e89c4 100644 --- a/src/mame/includes/tumbleb.h +++ b/src/mame/includes/tumbleb.h @@ -72,6 +72,16 @@ public: DECLARE_DRIVER_INIT(tumbleb2); DECLARE_DRIVER_INIT(chokchok); DECLARE_DRIVER_INIT(fncywld); + TILEMAP_MAPPER_MEMBER(tumblep_scan); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_fncywld_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_fncywld_bg2_tile_info); + TILE_GET_INFO_MEMBER(get_fncywld_fg_tile_info); + TILE_GET_INFO_MEMBER(pangpang_get_bg1_tile_info); + TILE_GET_INFO_MEMBER(pangpang_get_bg2_tile_info); + TILE_GET_INFO_MEMBER(pangpang_get_fg_tile_info); }; /*----------- defined in video/tumbleb.c -----------*/ diff --git a/src/mame/includes/tunhunt.h b/src/mame/includes/tunhunt.h index ccd545e987f..31d8377bf50 100644 --- a/src/mame/includes/tunhunt.h +++ b/src/mame/includes/tunhunt.h @@ -21,6 +21,7 @@ public: DECLARE_READ8_MEMBER(dsw2_2r); DECLARE_READ8_MEMBER(dsw2_3r); DECLARE_READ8_MEMBER(dsw2_4r); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h index 5e7b0e76cf9..8b0e05ef537 100644 --- a/src/mame/includes/turbo.h +++ b/src/mame/includes/turbo.h @@ -121,6 +121,7 @@ public: DECLARE_WRITE8_MEMBER(buckrog_i8255_0_w); DECLARE_DRIVER_INIT(buckrog_enc); DECLARE_DRIVER_INIT(turbo_enc); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/twin16.h b/src/mame/includes/twin16.h index 8c1c99400ae..ed5eac7e0d6 100644 --- a/src/mame/includes/twin16.h +++ b/src/mame/includes/twin16.h @@ -57,6 +57,7 @@ public: DECLARE_DRIVER_INIT(fround); DECLARE_DRIVER_INIT(twin16); DECLARE_DRIVER_INIT(cuebrickj); + TILE_GET_INFO_MEMBER(get_text_tile_info); }; diff --git a/src/mame/includes/twincobr.h b/src/mame/includes/twincobr.h index 22a244857de..1a63717aac8 100644 --- a/src/mame/includes/twincobr.h +++ b/src/mame/includes/twincobr.h @@ -98,6 +98,9 @@ public: DECLARE_READ8_MEMBER(wardner_sprite_r); DECLARE_WRITE8_MEMBER(wardner_sprite_w); DECLARE_DRIVER_INIT(twincobr); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/ultratnk.h b/src/mame/includes/ultratnk.h index fbe954a2cd8..b6fdd71a258 100644 --- a/src/mame/includes/ultratnk.h +++ b/src/mame/includes/ultratnk.h @@ -35,6 +35,7 @@ public: DECLARE_WRITE8_MEMBER(ultratnk_fire_2_w); DECLARE_WRITE8_MEMBER(ultratnk_attract_w); DECLARE_WRITE8_MEMBER(ultratnk_explosion_w); + TILE_GET_INFO_MEMBER(ultratnk_tile_info); }; diff --git a/src/mame/includes/unico.h b/src/mame/includes/unico.h index 326dc343e38..09701eeae4b 100644 --- a/src/mame/includes/unico.h +++ b/src/mame/includes/unico.h @@ -34,6 +34,8 @@ public: DECLARE_WRITE32_MEMBER(unico_vram32_w); DECLARE_WRITE16_MEMBER(burglarx_sound_bank_w); DECLARE_WRITE32_MEMBER(zeropnt2_eeprom_w); + TILE_GET_INFO_MEMBER(get_tile_info); + TILE_GET_INFO_MEMBER(get_tile_info32); }; diff --git a/src/mame/includes/usgames.h b/src/mame/includes/usgames.h index e0b7a9d9ee9..62109c2b541 100644 --- a/src/mame/includes/usgames.h +++ b/src/mame/includes/usgames.h @@ -14,6 +14,7 @@ public: DECLARE_WRITE8_MEMBER(lamps2_w); DECLARE_WRITE8_MEMBER(usgames_videoram_w); DECLARE_WRITE8_MEMBER(usgames_charram_w); + TILE_GET_INFO_MEMBER(get_usgames_tile_info); }; diff --git a/src/mame/includes/vastar.h b/src/mame/includes/vastar.h index b4a6d4d9a26..24cc7df4db1 100644 --- a/src/mame/includes/vastar.h +++ b/src/mame/includes/vastar.h @@ -41,6 +41,9 @@ public: DECLARE_WRITE8_MEMBER(vastar_bg2videoram_w); DECLARE_READ8_MEMBER(vastar_bg1videoram_r); DECLARE_READ8_MEMBER(vastar_bg2videoram_r); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILE_GET_INFO_MEMBER(get_bg2_tile_info); }; diff --git a/src/mame/includes/vball.h b/src/mame/includes/vball.h index acb2530c435..2a273551022 100644 --- a/src/mame/includes/vball.h +++ b/src/mame/includes/vball.h @@ -28,6 +28,8 @@ public: DECLARE_WRITE8_MEMBER(vb_videoram_w); DECLARE_READ8_MEMBER(vb_attrib_r); DECLARE_WRITE8_MEMBER(vb_attrib_w); + TILEMAP_MAPPER_MEMBER(background_scan); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/videopin.h b/src/mame/includes/videopin.h index 939fae01c38..c4dc48b1678 100644 --- a/src/mame/includes/videopin.h +++ b/src/mame/includes/videopin.h @@ -37,6 +37,8 @@ public: DECLARE_WRITE8_MEMBER(videopin_out1_w); DECLARE_WRITE8_MEMBER(videopin_out2_w); DECLARE_WRITE8_MEMBER(videopin_note_dvsr_w); + TILEMAP_MAPPER_MEMBER(get_memory_offset); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/vindictr.h b/src/mame/includes/vindictr.h index 3659ebff345..042187ac060 100644 --- a/src/mame/includes/vindictr.h +++ b/src/mame/includes/vindictr.h @@ -17,6 +17,8 @@ public: UINT16 m_playfield_yscroll; DECLARE_READ16_MEMBER(port1_r); DECLARE_DRIVER_INIT(vindictr); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/vulgus.h b/src/mame/includes/vulgus.h index 13c781ff7f0..663908a2d82 100644 --- a/src/mame/includes/vulgus.h +++ b/src/mame/includes/vulgus.h @@ -21,6 +21,8 @@ public: DECLARE_WRITE8_MEMBER(vulgus_bgvideoram_w); DECLARE_WRITE8_MEMBER(vulgus_c804_w); DECLARE_WRITE8_MEMBER(vulgus_palette_bank_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/warpwarp.h b/src/mame/includes/warpwarp.h index f2ef631e58e..4ed68d8dc9b 100644 --- a/src/mame/includes/warpwarp.h +++ b/src/mame/includes/warpwarp.h @@ -36,6 +36,10 @@ public: DECLARE_DRIVER_INIT(sos); DECLARE_DRIVER_INIT(kaitei); DECLARE_DRIVER_INIT(bombbee); + TILEMAP_MAPPER_MEMBER(tilemap_scan); + TILE_GET_INFO_MEMBER(geebee_get_tile_info); + TILE_GET_INFO_MEMBER(navarone_get_tile_info); + TILE_GET_INFO_MEMBER(warpwarp_get_tile_info); }; diff --git a/src/mame/includes/wc90.h b/src/mame/includes/wc90.h index be578e253bd..52e571e98c5 100644 --- a/src/mame/includes/wc90.h +++ b/src/mame/includes/wc90.h @@ -45,6 +45,11 @@ public: DECLARE_WRITE8_MEMBER(wc90_bgvideoram_w); DECLARE_WRITE8_MEMBER(wc90_fgvideoram_w); DECLARE_WRITE8_MEMBER(wc90_txvideoram_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(track_get_bg_tile_info); + TILE_GET_INFO_MEMBER(track_get_fg_tile_info); }; diff --git a/src/mame/includes/wc90b.h b/src/mame/includes/wc90b.h index 946b8b2dc3f..ba15e4edc70 100644 --- a/src/mame/includes/wc90b.h +++ b/src/mame/includes/wc90b.h @@ -35,6 +35,9 @@ public: DECLARE_WRITE8_MEMBER(wc90b_fgvideoram_w); DECLARE_WRITE8_MEMBER(wc90b_txvideoram_w); DECLARE_WRITE8_MEMBER(adpcm_control_w); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); }; diff --git a/src/mame/includes/wecleman.h b/src/mame/includes/wecleman.h index 3c46c377f5e..b34d689571d 100644 --- a/src/mame/includes/wecleman.h +++ b/src/mame/includes/wecleman.h @@ -69,6 +69,9 @@ public: DECLARE_WRITE8_MEMBER(hotchase_3_k007232_w); DECLARE_DRIVER_INIT(wecleman); DECLARE_DRIVER_INIT(hotchase); + TILE_GET_INFO_MEMBER(wecleman_get_txt_tile_info); + TILE_GET_INFO_MEMBER(wecleman_get_bg_tile_info); + TILE_GET_INFO_MEMBER(wecleman_get_fg_tile_info); }; diff --git a/src/mame/includes/welltris.h b/src/mame/includes/welltris.h index 3a2234a6af6..94262a964ee 100644 --- a/src/mame/includes/welltris.h +++ b/src/mame/includes/welltris.h @@ -33,6 +33,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(pending_sound_r); DECLARE_DRIVER_INIT(quiz18k); DECLARE_DRIVER_INIT(welltris); + TILE_GET_INFO_MEMBER(get_welltris_tile_info); }; diff --git a/src/mame/includes/wgp.h b/src/mame/includes/wgp.h index b9eaab153c9..106d70bf1ae 100644 --- a/src/mame/includes/wgp.h +++ b/src/mame/includes/wgp.h @@ -61,6 +61,9 @@ public: DECLARE_WRITE16_MEMBER(wgp_piv_ctrl_word_w); DECLARE_DRIVER_INIT(wgp); DECLARE_DRIVER_INIT(wgp2); + TILE_GET_INFO_MEMBER(get_piv0_tile_info); + TILE_GET_INFO_MEMBER(get_piv1_tile_info); + TILE_GET_INFO_MEMBER(get_piv2_tile_info); }; diff --git a/src/mame/includes/williams.h b/src/mame/includes/williams.h index bd3a097caf1..d11d3110e86 100644 --- a/src/mame/includes/williams.h +++ b/src/mame/includes/williams.h @@ -90,6 +90,7 @@ public: DECLARE_DRIVER_INIT(tshoot); DECLARE_DRIVER_INIT(robotron); DECLARE_DRIVER_INIT(bubbles); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/wrally.h b/src/mame/includes/wrally.h index 2faf1f55834..fee79c41330 100644 --- a/src/mame/includes/wrally.h +++ b/src/mame/includes/wrally.h @@ -21,6 +21,8 @@ public: DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w); DECLARE_WRITE16_MEMBER(wrally_coin_counter_w); DECLARE_WRITE16_MEMBER(wrally_coin_lockout_w); + TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen0); + TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen1); }; diff --git a/src/mame/includes/wwfsstar.h b/src/mame/includes/wwfsstar.h index 246f0319092..868592b332c 100644 --- a/src/mame/includes/wwfsstar.h +++ b/src/mame/includes/wwfsstar.h @@ -22,6 +22,9 @@ public: DECLARE_WRITE16_MEMBER(wwfsstar_fg0_videoram_w); DECLARE_WRITE16_MEMBER(wwfsstar_bg0_videoram_w); DECLARE_CUSTOM_INPUT_MEMBER(wwfsstar_vblank_r); + TILE_GET_INFO_MEMBER(get_fg0_tile_info); + TILEMAP_MAPPER_MEMBER(bg0_scan); + TILE_GET_INFO_MEMBER(get_bg0_tile_info); }; diff --git a/src/mame/includes/wwfwfest.h b/src/mame/includes/wwfwfest.h index 575be8fa300..4e719e5b1a0 100644 --- a/src/mame/includes/wwfwfest.h +++ b/src/mame/includes/wwfwfest.h @@ -38,6 +38,9 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(dsw_3f_r); DECLARE_CUSTOM_INPUT_MEMBER(dsw_c0_r); DECLARE_WRITE8_MEMBER(oki_bankswitch_w); + TILE_GET_INFO_MEMBER(get_fg0_tile_info); + TILE_GET_INFO_MEMBER(get_bg0_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); }; diff --git a/src/mame/includes/xain.h b/src/mame/includes/xain.h index 6022e4d39f7..8c15fd3b586 100644 --- a/src/mame/includes/xain.h +++ b/src/mame/includes/xain.h @@ -62,6 +62,10 @@ public: DECLARE_WRITE8_MEMBER(xain_flipscreen_w); DECLARE_CUSTOM_INPUT_MEMBER(xain_vblank_r); DECLARE_CUSTOM_INPUT_MEMBER(mcu_status_r); + TILEMAP_MAPPER_MEMBER(back_scan); + TILE_GET_INFO_MEMBER(get_bgram0_tile_info); + TILE_GET_INFO_MEMBER(get_bgram1_tile_info); + TILE_GET_INFO_MEMBER(get_char_tile_info); }; diff --git a/src/mame/includes/xorworld.h b/src/mame/includes/xorworld.h index b3861d2afd2..e0668151cbb 100644 --- a/src/mame/includes/xorworld.h +++ b/src/mame/includes/xorworld.h @@ -16,6 +16,7 @@ public: DECLARE_WRITE16_MEMBER(eeprom_serial_clock_w); DECLARE_WRITE16_MEMBER(eeprom_data_w); DECLARE_DRIVER_INIT(xorworld); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/xxmissio.h b/src/mame/includes/xxmissio.h index 28f2c680224..7c7e1056298 100644 --- a/src/mame/includes/xxmissio.h +++ b/src/mame/includes/xxmissio.h @@ -24,6 +24,8 @@ public: DECLARE_READ8_MEMBER(xxmissio_bgram_r); DECLARE_WRITE8_MEMBER(xxmissio_paletteram_w); DECLARE_CUSTOM_INPUT_MEMBER(xxmissio_status_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; diff --git a/src/mame/includes/xybots.h b/src/mame/includes/xybots.h index 253e53c08ab..a99497d847f 100644 --- a/src/mame/includes/xybots.h +++ b/src/mame/includes/xybots.h @@ -15,6 +15,8 @@ public: UINT16 m_h256; DECLARE_READ16_MEMBER(special_port1_r); DECLARE_DRIVER_INIT(xybots); + TILE_GET_INFO_MEMBER(get_alpha_tile_info); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); }; diff --git a/src/mame/includes/xyonix.h b/src/mame/includes/xyonix.h index 54a447c8bce..bda321b957b 100644 --- a/src/mame/includes/xyonix.h +++ b/src/mame/includes/xyonix.h @@ -16,6 +16,7 @@ public: DECLARE_READ8_MEMBER(xyonix_io_r); DECLARE_WRITE8_MEMBER(xyonix_io_w); DECLARE_WRITE8_MEMBER(xyonix_vidram_w); + TILE_GET_INFO_MEMBER(get_xyonix_tile_info); }; diff --git a/src/mame/includes/yiear.h b/src/mame/includes/yiear.h index 1afad8f69f4..f136939c3ed 100644 --- a/src/mame/includes/yiear.h +++ b/src/mame/includes/yiear.h @@ -30,6 +30,7 @@ public: UINT8 m_SN76496_latch; DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; }; DECLARE_WRITE8_MEMBER( konami_SN76496_w ) { m_sn->write(space, offset, m_SN76496_latch); }; + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/yunsun16.h b/src/mame/includes/yunsun16.h index 2084ff0ec45..2e4ba5d4a7a 100644 --- a/src/mame/includes/yunsun16.h +++ b/src/mame/includes/yunsun16.h @@ -38,6 +38,9 @@ public: DECLARE_WRITE16_MEMBER(yunsun16_vram_0_w); DECLARE_WRITE16_MEMBER(yunsun16_vram_1_w); DECLARE_DRIVER_INIT(magicbub); + TILEMAP_MAPPER_MEMBER(yunsun16_tilemap_scan_pages); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); }; diff --git a/src/mame/includes/yunsung8.h b/src/mame/includes/yunsung8.h index 5c17b5476c5..da96ef385c5 100644 --- a/src/mame/includes/yunsung8.h +++ b/src/mame/includes/yunsung8.h @@ -34,6 +34,8 @@ public: DECLARE_WRITE8_MEMBER(yunsung8_videoram_w); DECLARE_WRITE8_MEMBER(yunsung8_flipscreen_w); DECLARE_WRITE8_MEMBER(yunsung8_sound_bankswitch_w); + TILE_GET_INFO_MEMBER(get_tile_info_0); + TILE_GET_INFO_MEMBER(get_tile_info_1); }; diff --git a/src/mame/includes/zac2650.h b/src/mame/includes/zac2650.h index 1b4227c69af..d77de393845 100644 --- a/src/mame/includes/zac2650.h +++ b/src/mame/includes/zac2650.h @@ -18,6 +18,7 @@ public: DECLARE_READ8_MEMBER(zac_s2636_r); DECLARE_WRITE8_MEMBER(zac_s2636_w); DECLARE_READ8_MEMBER(tinvader_port_0_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); }; diff --git a/src/mame/includes/zaccaria.h b/src/mame/includes/zaccaria.h index 1c63431ef46..2d0cc4d7964 100644 --- a/src/mame/includes/zaccaria.h +++ b/src/mame/includes/zaccaria.h @@ -41,6 +41,7 @@ public: DECLARE_WRITE8_MEMBER(zaccaria_port0b_w); DECLARE_WRITE8_MEMBER(zaccaria_port1b_w); DECLARE_WRITE8_MEMBER(mc1408_data_w); + TILE_GET_INFO_MEMBER(get_tile_info); }; diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h index bd5e579f700..ba6458d58bd 100644 --- a/src/mame/includes/zaxxon.h +++ b/src/mame/includes/zaxxon.h @@ -59,6 +59,10 @@ public: DECLARE_DRIVER_INIT(futspy); DECLARE_DRIVER_INIT(zaxxonj); DECLARE_DRIVER_INIT(szaxxon); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(zaxxon_get_fg_tile_info); + TILE_GET_INFO_MEMBER(razmataz_get_fg_tile_info); + TILE_GET_INFO_MEMBER(congo_get_fg_tile_info); }; diff --git a/src/mame/includes/zerozone.h b/src/mame/includes/zerozone.h index 46ec282dbaa..46a1f9fff21 100644 --- a/src/mame/includes/zerozone.h +++ b/src/mame/includes/zerozone.h @@ -46,4 +46,5 @@ protected: virtual void machine_reset(); virtual void video_start(); + TILE_GET_INFO_MEMBER(get_zerozone_tile_info); }; diff --git a/src/mame/includes/zodiack.h b/src/mame/includes/zodiack.h index 9e873817ba0..a741f5f3404 100644 --- a/src/mame/includes/zodiack.h +++ b/src/mame/includes/zodiack.h @@ -64,6 +64,8 @@ protected: virtual void machine_reset(); virtual void video_start(); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); }; class percuss_state : public zodiack_state diff --git a/src/mame/video/1942.c b/src/mame/video/1942.c index 96a887b1c6b..ed7a6634223 100644 --- a/src/mame/video/1942.c +++ b/src/mame/video/1942.c @@ -89,33 +89,31 @@ PALETTE_INIT( 1942 ) ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(_1942_state::get_fg_tile_info) { - _1942_state *state = machine.driver_data<_1942_state>(); int code, color; - code = state->m_fg_videoram[tile_index]; - color = state->m_fg_videoram[tile_index + 0x400]; - SET_TILE_INFO( + code = m_fg_videoram[tile_index]; + color = m_fg_videoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, code + ((color & 0x80) << 1), color & 0x3f, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(_1942_state::get_bg_tile_info) { - _1942_state *state = machine.driver_data<_1942_state>(); int code, color; tile_index = (tile_index & 0x0f) | ((tile_index & 0x01f0) << 1); - code = state->m_bg_videoram[tile_index]; - color = state->m_bg_videoram[tile_index + 0x10]; - SET_TILE_INFO( + code = m_bg_videoram[tile_index]; + color = m_bg_videoram[tile_index + 0x10]; + SET_TILE_INFO_MEMBER( 1, code + ((color & 0x80) << 1), - (color & 0x1f) + (0x20 * state->m_palette_bank), + (color & 0x1f) + (0x20 * m_palette_bank), TILE_FLIPYX((color & 0x60) >> 5)); } @@ -128,8 +126,8 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( 1942 ) { _1942_state *state = machine.driver_data<_1942_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1942_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1942_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 16); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/1943.c b/src/mame/video/1943.c index 21dca333dbf..c7bb56318fb 100644 --- a/src/mame/video/1943.c +++ b/src/mame/video/1943.c @@ -165,9 +165,9 @@ WRITE8_MEMBER(_1943_state::c1943_d806_w) m_obj_on = data & 0x40; } -static TILE_GET_INFO( c1943_get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(_1943_state::c1943_get_bg2_tile_info) { - UINT8 *tilerom = machine.root_device().memregion("gfx5")->base() + 0x8000; + UINT8 *tilerom = machine().root_device().memregion("gfx5")->base() + 0x8000; int offs = tile_index * 2; int attr = tilerom[offs + 1]; @@ -175,12 +175,12 @@ static TILE_GET_INFO( c1943_get_bg2_tile_info ) int color = (attr & 0x3c) >> 2; int flags = TILE_FLIPYX((attr & 0xc0) >> 6); - SET_TILE_INFO(2, code, color, flags); + SET_TILE_INFO_MEMBER(2, code, color, flags); } -static TILE_GET_INFO( c1943_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(_1943_state::c1943_get_bg_tile_info) { - UINT8 *tilerom = machine.root_device().memregion("gfx5")->base(); + UINT8 *tilerom = machine().root_device().memregion("gfx5")->base(); int offs = tile_index * 2; int attr = tilerom[offs + 1]; @@ -189,25 +189,24 @@ static TILE_GET_INFO( c1943_get_bg_tile_info ) int flags = TILE_FLIPYX((attr & 0xc0) >> 6); tileinfo.group = color; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( c1943_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(_1943_state::c1943_get_fg_tile_info) { - _1943_state *state = machine.driver_data<_1943_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0xe0) << 3); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0xe0) << 3); int color = attr & 0x1f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( 1943 ) { _1943_state *state = machine.driver_data<_1943_state>(); - state->m_bg2_tilemap = tilemap_create(machine, c1943_get_bg2_tile_info, TILEMAP_SCAN_COLS, 32, 32, 2048, 8); - state->m_bg_tilemap = tilemap_create(machine, c1943_get_bg_tile_info, TILEMAP_SCAN_COLS, 32, 32, 2048, 8); - state->m_fg_tilemap = tilemap_create(machine, c1943_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1943_state::c1943_get_bg2_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 2048, 8); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1943_state::c1943_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 2048, 8); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1943_state::c1943_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[1], 0x0f); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/40love.c b/src/mame/video/40love.c index d9a968c0529..4eec233253e 100644 --- a/src/mame/video/40love.c +++ b/src/mame/video/40love.c @@ -62,11 +62,10 @@ colorram format (2 bytes per one tilemap character line, 8 pixels height): offset 1 xxxx xxxx x scroll (8 LSB bits) */ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(fortyl_state::get_bg_tile_info) { - fortyl_state *state = machine.driver_data<fortyl_state>(); - int tile_number = state->m_videoram[tile_index]; - int tile_attrib = state->m_colorram[(tile_index / 64) * 2]; + int tile_number = m_videoram[tile_index]; + int tile_attrib = m_colorram[(tile_index / 64) * 2]; int tile_h_bank = (tile_attrib & 0x40) << 3; /* 0x40->0x200 */ int tile_l_bank = (tile_attrib & 0x18) << 3; /* 0x10->0x80, 0x08->0x40 */ @@ -75,7 +74,7 @@ static TILE_GET_INFO( get_bg_tile_info ) code = (code & 0x3f) | tile_l_bank | 0x100; code |= tile_h_bank; - SET_TILE_INFO( 0, + SET_TILE_INFO_MEMBER( 0, code, tile_attrib & 0x07, 0); @@ -110,7 +109,7 @@ VIDEO_START( fortyl ) state->m_tmp_bitmap1 = auto_bitmap_ind16_alloc(machine, 256, 256); state->m_tmp_bitmap2 = auto_bitmap_ind16_alloc(machine, 256, 256); - 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(fortyl_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_xoffset = 128; // this never changes diff --git a/src/mame/video/4enraya.c b/src/mame/video/4enraya.c index f326874b523..595df668aef 100644 --- a/src/mame/video/4enraya.c +++ b/src/mame/video/4enraya.c @@ -17,12 +17,11 @@ WRITE8_MEMBER(_4enraya_state::fenraya_videoram_w) m_bg_tilemap->mark_tile_dirty(offset & 0x3ff); } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(_4enraya_state::get_tile_info) { - _4enraya_state *state = machine.driver_data<_4enraya_state>(); - int code = state->m_videoram[tile_index * 2] + (state->m_videoram[tile_index * 2 + 1] << 8); - SET_TILE_INFO( + int code = m_videoram[tile_index * 2] + (m_videoram[tile_index * 2 + 1] << 8); + SET_TILE_INFO_MEMBER( 0, code, 0, @@ -33,7 +32,7 @@ VIDEO_START( 4enraya ) { _4enraya_state *state = machine.driver_data<_4enraya_state>(); - 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(_4enraya_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } SCREEN_UPDATE_IND16( 4enraya ) diff --git a/src/mame/video/aeroboto.c b/src/mame/video/aeroboto.c index 9bb3ff8375f..354b3bb329e 100644 --- a/src/mame/video/aeroboto.c +++ b/src/mame/video/aeroboto.c @@ -21,15 +21,14 @@ ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(aeroboto_state::get_tile_info) { - aeroboto_state *state = machine.driver_data<aeroboto_state>(); - UINT8 code = state->m_videoram[tile_index]; - SET_TILE_INFO( + UINT8 code = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, - code + (state->m_charbank << 8), - state->m_tilecolor[code], - (state->m_tilecolor[code] >= 0x33) ? 0 : TILE_FORCE_LAYER0); + code + (m_charbank << 8), + m_tilecolor[code], + (m_tilecolor[code] >= 0x33) ? 0 : TILE_FORCE_LAYER0); } // transparency should only affect tiles with color 0x33 or higher @@ -44,7 +43,7 @@ VIDEO_START( aeroboto ) { aeroboto_state *state = machine.driver_data<aeroboto_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aeroboto_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 64); state->m_bg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scroll_rows(64); diff --git a/src/mame/video/aerofgt.c b/src/mame/video/aerofgt.c index 02b4ca1d46e..3c96c84d30f 100644 --- a/src/mame/video/aerofgt.c +++ b/src/mame/video/aerofgt.c @@ -7,72 +7,66 @@ ***************************************************************************/ -static TILE_GET_INFO( get_pspikes_tile_info ) +TILE_GET_INFO_MEMBER(aerofgt_state::get_pspikes_tile_info) { - aerofgt_state *state = machine.driver_data<aerofgt_state>(); - UINT16 code = state->m_bg1videoram[tile_index]; + UINT16 code = m_bg1videoram[tile_index]; int bank = (code & 0x1000) >> 12; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - (code & 0x0fff) + (state->m_gfxbank[bank] << 12), - ((code & 0xe000) >> 13) + 8 * state->m_charpalettebank, + (code & 0x0fff) + (m_gfxbank[bank] << 12), + ((code & 0xe000) >> 13) + 8 * m_charpalettebank, 0); } -static TILE_GET_INFO( karatblz_bg1_tile_info ) +TILE_GET_INFO_MEMBER(aerofgt_state::karatblz_bg1_tile_info) { - aerofgt_state *state = machine.driver_data<aerofgt_state>(); - UINT16 code = state->m_bg1videoram[tile_index]; - SET_TILE_INFO( + UINT16 code = m_bg1videoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, - (code & 0x1fff) + (state->m_gfxbank[0] << 13), + (code & 0x1fff) + (m_gfxbank[0] << 13), (code & 0xe000) >> 13, 0); } /* also spinlbrk */ -static TILE_GET_INFO( karatblz_bg2_tile_info ) +TILE_GET_INFO_MEMBER(aerofgt_state::karatblz_bg2_tile_info) { - aerofgt_state *state = machine.driver_data<aerofgt_state>(); - UINT16 code = state->m_bg2videoram[tile_index]; - SET_TILE_INFO( + UINT16 code = m_bg2videoram[tile_index]; + SET_TILE_INFO_MEMBER( 1, - (code & 0x1fff) + (state->m_gfxbank[1] << 13), + (code & 0x1fff) + (m_gfxbank[1] << 13), (code & 0xe000) >> 13, 0); } -static TILE_GET_INFO( spinlbrk_bg1_tile_info ) +TILE_GET_INFO_MEMBER(aerofgt_state::spinlbrk_bg1_tile_info) { - aerofgt_state *state = machine.driver_data<aerofgt_state>(); - UINT16 code = state->m_bg1videoram[tile_index]; - SET_TILE_INFO( + UINT16 code = m_bg1videoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, - (code & 0x0fff) + (state->m_gfxbank[0] << 12), + (code & 0x0fff) + (m_gfxbank[0] << 12), (code & 0xf000) >> 12, 0); } -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(aerofgt_state::get_bg1_tile_info) { - aerofgt_state *state = machine.driver_data<aerofgt_state>(); - UINT16 code = state->m_bg1videoram[tile_index]; + UINT16 code = m_bg1videoram[tile_index]; int bank = (code & 0x1800) >> 11; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - (code & 0x07ff) + (state->m_gfxbank[bank] << 11), + (code & 0x07ff) + (m_gfxbank[bank] << 11), (code & 0xe000) >> 13, 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(aerofgt_state::get_bg2_tile_info) { - aerofgt_state *state = machine.driver_data<aerofgt_state>(); - UINT16 code = state->m_bg2videoram[tile_index]; + UINT16 code = m_bg2videoram[tile_index]; int bank = 4 + ((code & 0x1800) >> 11); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - (code & 0x07ff) + (state->m_gfxbank[bank] << 11), + (code & 0x07ff) + (m_gfxbank[bank] << 11), (code & 0xe000) >> 13, 0); } @@ -100,7 +94,7 @@ static void aerofgt_register_state_globals( running_machine &machine ) VIDEO_START( pspikes ) { aerofgt_state *state = machine.driver_data<aerofgt_state>(); - state->m_bg1_tilemap = tilemap_create(machine, get_pspikes_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); /* no bg2 in this game */ state->m_sprite_gfx = 1; @@ -113,8 +107,8 @@ VIDEO_START( pspikes ) VIDEO_START( karatblz ) { aerofgt_state *state = machine.driver_data<aerofgt_state>(); - state->m_bg1_tilemap = tilemap_create(machine, karatblz_bg1_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,64); - state->m_bg2_tilemap = tilemap_create(machine, karatblz_bg2_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg1_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,64); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); state->m_bg2_tilemap->set_transparent_pen(15); state->m_spritepalettebank = 0; @@ -128,8 +122,8 @@ VIDEO_START( spinlbrk ) aerofgt_state *state = machine.driver_data<aerofgt_state>(); int i; - state->m_bg1_tilemap = tilemap_create(machine, spinlbrk_bg1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_bg2_tilemap = tilemap_create(machine, karatblz_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_bg2_tilemap->set_transparent_pen(15); @@ -155,8 +149,8 @@ VIDEO_START( spinlbrk ) VIDEO_START( turbofrc ) { aerofgt_state *state = machine.driver_data<aerofgt_state>(); - state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_bg2_tilemap->set_transparent_pen(15); @@ -169,7 +163,7 @@ VIDEO_START( turbofrc ) VIDEO_START( wbbc97 ) { aerofgt_state *state = machine.driver_data<aerofgt_state>(); - state->m_bg1_tilemap = tilemap_create(machine, get_pspikes_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); /* no bg2 in this game */ state->m_bg1_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/airbustr.c b/src/mame/video/airbustr.c index 26a9f83e518..4d51bee1fd6 100644 --- a/src/mame/video/airbustr.c +++ b/src/mame/video/airbustr.c @@ -89,32 +89,30 @@ WRITE8_MEMBER(airbustr_state::airbustr_scrollregs_w) m_fg_tilemap->set_scrollx(0, ((m_highbits << 8) & 0x100) + m_fg_scrollx); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(airbustr_state::get_fg_tile_info) { - airbustr_state *state = machine.driver_data<airbustr_state>(); - int attr = state->m_colorram2[tile_index]; - int code = state->m_videoram2[tile_index] + ((attr & 0x0f) << 8); + int attr = m_colorram2[tile_index]; + int code = m_videoram2[tile_index] + ((attr & 0x0f) << 8); int color = attr >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(airbustr_state::get_bg_tile_info) { - airbustr_state *state = machine.driver_data<airbustr_state>(); - 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) + 16; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( airbustr ) { airbustr_state *state = machine.driver_data<airbustr_state>(); - 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(airbustr_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(airbustr_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); machine.primary_screen->register_screen_bitmap(state->m_sprites_bitmap); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/alpha68k.c b/src/mame/video/alpha68k.c index bda83434d1f..9dfed5bfdb7 100644 --- a/src/mame/video/alpha68k.c +++ b/src/mame/video/alpha68k.c @@ -37,15 +37,14 @@ WRITE16_MEMBER(alpha68k_state::alpha68k_paletteram_w) /******************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(alpha68k_state::get_tile_info) { - alpha68k_state *state = machine.driver_data<alpha68k_state>(); - int tile = state->m_videoram[2 * tile_index] & 0xff; - int color = state->m_videoram[2 * tile_index + 1] & 0x0f; + int tile = m_videoram[2 * tile_index] & 0xff; + int color = m_videoram[2 * tile_index + 1] & 0x0f; - tile = tile | (state->m_bank_base << 8); + tile = tile | (m_bank_base << 8); - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); } WRITE16_MEMBER(alpha68k_state::alpha68k_videoram_w) @@ -66,7 +65,7 @@ VIDEO_START( alpha68k ) { alpha68k_state *state = machine.driver_data<alpha68k_state>(); - state->m_fix_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(alpha68k_state::get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/ampoker2.c b/src/mame/video/ampoker2.c index faf7754e8c8..a2124b0e1de 100644 --- a/src/mame/video/ampoker2.c +++ b/src/mame/video/ampoker2.c @@ -119,10 +119,9 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_videoram_w) m_bg_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ampoker2_state::get_bg_tile_info) { - ampoker2_state *state = machine.driver_data<ampoker2_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int offs = tile_index * 2; int attr = videoram[offs + 1]; int code = videoram[offs]; @@ -130,13 +129,12 @@ static TILE_GET_INFO( get_bg_tile_info ) code = code + (256 * (color & 0x03)); /* code = color.bit1 + color.bit0 + code */ color = color >> 1; /* color = color - bit0 (bit1..bit7) */ - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( s2k_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ampoker2_state::s2k_get_bg_tile_info) { - ampoker2_state *state = machine.driver_data<ampoker2_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int offs = tile_index * 2; int attr = videoram[offs + 1]; int code = videoram[offs]; @@ -144,20 +142,20 @@ static TILE_GET_INFO( s2k_get_bg_tile_info ) code = code + (256 * (color & 0x0f)); /* the game uses 2 extra bits */ color = color >> 1; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START(ampoker2) { ampoker2_state *state = machine.driver_data<ampoker2_state>(); - 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(ampoker2_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } VIDEO_START(sigma2k) { ampoker2_state *state = machine.driver_data<ampoker2_state>(); - state->m_bg_tilemap = tilemap_create(machine, s2k_get_bg_tile_info, TILEMAP_SCAN_ROWS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ampoker2_state::s2k_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } diff --git a/src/mame/video/amspdwy.c b/src/mame/video/amspdwy.c index f3ec5d65aef..87c6da4370a 100644 --- a/src/mame/video/amspdwy.c +++ b/src/mame/video/amspdwy.c @@ -42,12 +42,11 @@ WRITE8_MEMBER(amspdwy_state::amspdwy_flipscreen_w) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(amspdwy_state::get_tile_info) { - amspdwy_state *state = machine.driver_data<amspdwy_state>(); - UINT8 code = state->m_videoram[tile_index]; - UINT8 color = state->m_colorram[tile_index]; - SET_TILE_INFO( + UINT8 code = m_videoram[tile_index]; + UINT8 color = m_colorram[tile_index]; + SET_TILE_INFO_MEMBER( 0, code + ((color & 0x18)<<5), color & 0x07, @@ -68,7 +67,7 @@ WRITE8_MEMBER(amspdwy_state::amspdwy_colorram_w) /* logical (col,row) -> memory offset */ -static TILEMAP_MAPPER( tilemap_scan_cols_back ) +TILEMAP_MAPPER_MEMBER(amspdwy_state::tilemap_scan_cols_back) { return col * num_rows + (num_rows - row - 1); } @@ -77,7 +76,7 @@ static TILEMAP_MAPPER( tilemap_scan_cols_back ) VIDEO_START( amspdwy ) { amspdwy_state *state = machine.driver_data<amspdwy_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, tilemap_scan_cols_back, 8, 8, 0x20, 0x20); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(amspdwy_state::get_tile_info),state), tilemap_mapper_delegate(FUNC(amspdwy_state::tilemap_scan_cols_back),state), 8, 8, 0x20, 0x20); } diff --git a/src/mame/video/angelkds.c b/src/mame/video/angelkds.c index 20a19682115..2615e4ddaa6 100644 --- a/src/mame/video/angelkds.c +++ b/src/mame/video/angelkds.c @@ -14,13 +14,12 @@ enable / disable tilemap bits might be wrong */ -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(angelkds_state::get_tx_tile_info) { - angelkds_state *state = machine.driver_data<angelkds_state>(); int tileno; - tileno = state->m_txvideoram[tile_index] + (state->m_txbank * 0x100); - SET_TILE_INFO(0, tileno, 0, 0); + tileno = m_txvideoram[tile_index] + (m_txbank * 0x100); + SET_TILE_INFO_MEMBER(0, tileno, 0, 0); } WRITE8_MEMBER(angelkds_state::angelkds_txvideoram_w) @@ -44,15 +43,14 @@ WRITE8_MEMBER(angelkds_state::angelkds_txbank_write) */ -static TILE_GET_INFO( get_bgtop_tile_info ) +TILE_GET_INFO_MEMBER(angelkds_state::get_bgtop_tile_info) { - angelkds_state *state = machine.driver_data<angelkds_state>(); int tileno; - tileno = state->m_bgtopvideoram[tile_index]; + tileno = m_bgtopvideoram[tile_index]; - tileno += state->m_bgtopbank * 0x100 ; - SET_TILE_INFO(1, tileno, 0, 0); + tileno += m_bgtopbank * 0x100 ; + SET_TILE_INFO_MEMBER(1, tileno, 0, 0); } WRITE8_MEMBER(angelkds_state::angelkds_bgtopvideoram_w) @@ -82,15 +80,14 @@ WRITE8_MEMBER(angelkds_state::angelkds_bgtopscroll_write) */ -static TILE_GET_INFO( get_bgbot_tile_info ) +TILE_GET_INFO_MEMBER(angelkds_state::get_bgbot_tile_info) { - angelkds_state *state = machine.driver_data<angelkds_state>(); int tileno; - tileno = state->m_bgbotvideoram[tile_index]; + tileno = m_bgbotvideoram[tile_index]; - tileno += state->m_bgbotbank * 0x100 ; - SET_TILE_INFO(2, tileno, 1, 0); + tileno += m_bgbotbank * 0x100 ; + SET_TILE_INFO_MEMBER(2, tileno, 1, 0); } WRITE8_MEMBER(angelkds_state::angelkds_bgbotvideoram_w) @@ -250,13 +247,13 @@ VIDEO_START( angelkds ) { angelkds_state *state = machine.driver_data<angelkds_state>(); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(angelkds_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tx_tilemap->set_transparent_pen(0); - state->m_bgbot_tilemap = tilemap_create(machine, get_bgbot_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bgbot_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(angelkds_state::get_bgbot_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bgbot_tilemap->set_transparent_pen(15); - state->m_bgtop_tilemap = tilemap_create(machine, get_bgtop_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bgtop_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(angelkds_state::get_bgtop_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bgtop_tilemap->set_transparent_pen(15); } diff --git a/src/mame/video/appoooh.c b/src/mame/video/appoooh.c index 93ae00ac25d..39a237ecf49 100644 --- a/src/mame/video/appoooh.c +++ b/src/mame/video/appoooh.c @@ -100,29 +100,27 @@ PALETTE_INIT( robowres ) ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(appoooh_state::get_fg_tile_info) { - appoooh_state *state = machine.driver_data<appoooh_state>(); - int code = state->m_fg_videoram[tile_index] + 256 * ((state->m_fg_colorram[tile_index] >> 5) & 7); + int code = m_fg_videoram[tile_index] + 256 * ((m_fg_colorram[tile_index] >> 5) & 7); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, - state->m_fg_colorram[tile_index] & 0x0f, - (state->m_fg_colorram[tile_index] & 0x10 ) ? TILEMAP_FLIPX : 0 + m_fg_colorram[tile_index] & 0x0f, + (m_fg_colorram[tile_index] & 0x10 ) ? TILEMAP_FLIPX : 0 ); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(appoooh_state::get_bg_tile_info) { - appoooh_state *state = machine.driver_data<appoooh_state>(); - int code = state->m_bg_videoram[tile_index] + 256 * ((state->m_bg_colorram[tile_index] >> 5) & 7); + int code = m_bg_videoram[tile_index] + 256 * ((m_bg_colorram[tile_index] >> 5) & 7); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, - state->m_bg_colorram[tile_index] & 0x0f, - (state->m_bg_colorram[tile_index] & 0x10 ) ? TILEMAP_FLIPX : 0 + m_bg_colorram[tile_index] & 0x0f, + (m_bg_colorram[tile_index] & 0x10 ) ? TILEMAP_FLIPX : 0 ); } @@ -136,8 +134,8 @@ VIDEO_START( appoooh ) { appoooh_state *state = machine.driver_data<appoooh_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(appoooh_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(appoooh_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_scrolldy(8, 8); diff --git a/src/mame/video/aquarium.c b/src/mame/video/aquarium.c index 9660af29c34..2d280ed14bc 100644 --- a/src/mame/video/aquarium.c +++ b/src/mame/video/aquarium.c @@ -86,14 +86,13 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } /* TXT Layer */ -static TILE_GET_INFO( get_aquarium_txt_tile_info ) +TILE_GET_INFO_MEMBER(aquarium_state::get_aquarium_txt_tile_info) { - aquarium_state *state = machine.driver_data<aquarium_state>(); int tileno, colour; - tileno = (state->m_txt_videoram[tile_index] & 0x0fff); - colour = (state->m_txt_videoram[tile_index] & 0xf000) >> 12; - SET_TILE_INFO(2, tileno, colour, 0); + tileno = (m_txt_videoram[tile_index] & 0x0fff); + colour = (m_txt_videoram[tile_index] & 0xf000) >> 12; + SET_TILE_INFO_MEMBER(2, tileno, colour, 0); } WRITE16_MEMBER(aquarium_state::aquarium_txt_videoram_w) @@ -103,18 +102,17 @@ WRITE16_MEMBER(aquarium_state::aquarium_txt_videoram_w) } /* MID Layer */ -static TILE_GET_INFO( get_aquarium_mid_tile_info ) +TILE_GET_INFO_MEMBER(aquarium_state::get_aquarium_mid_tile_info) { - aquarium_state *state = machine.driver_data<aquarium_state>(); int tileno, colour, flag; - tileno = (state->m_mid_videoram[tile_index * 2] & 0x0fff); - colour = (state->m_mid_videoram[tile_index * 2 + 1] & 0x001f); - flag = TILE_FLIPYX((state->m_mid_videoram[tile_index * 2 + 1] & 0x300) >> 8); + tileno = (m_mid_videoram[tile_index * 2] & 0x0fff); + colour = (m_mid_videoram[tile_index * 2 + 1] & 0x001f); + flag = TILE_FLIPYX((m_mid_videoram[tile_index * 2 + 1] & 0x300) >> 8); - SET_TILE_INFO(1, tileno, colour, flag); + SET_TILE_INFO_MEMBER(1, tileno, colour, flag); - tileinfo.category = (state->m_mid_videoram[tile_index * 2 + 1] & 0x20) >> 5; + tileinfo.category = (m_mid_videoram[tile_index * 2 + 1] & 0x20) >> 5; } WRITE16_MEMBER(aquarium_state::aquarium_mid_videoram_w) @@ -124,18 +122,17 @@ WRITE16_MEMBER(aquarium_state::aquarium_mid_videoram_w) } /* BAK Layer */ -static TILE_GET_INFO( get_aquarium_bak_tile_info ) +TILE_GET_INFO_MEMBER(aquarium_state::get_aquarium_bak_tile_info) { - aquarium_state *state = machine.driver_data<aquarium_state>(); int tileno, colour, flag; - tileno = (state->m_bak_videoram[tile_index * 2] & 0x0fff); - colour = (state->m_bak_videoram[tile_index * 2 + 1] & 0x001f); - flag = TILE_FLIPYX((state->m_bak_videoram[tile_index * 2 + 1] & 0x300) >> 8); + tileno = (m_bak_videoram[tile_index * 2] & 0x0fff); + colour = (m_bak_videoram[tile_index * 2 + 1] & 0x001f); + flag = TILE_FLIPYX((m_bak_videoram[tile_index * 2 + 1] & 0x300) >> 8); - SET_TILE_INFO(3, tileno, colour, flag); + SET_TILE_INFO_MEMBER(3, tileno, colour, flag); - tileinfo.category = (state->m_bak_videoram[tile_index * 2 + 1] & 0x20) >> 5; + tileinfo.category = (m_bak_videoram[tile_index * 2 + 1] & 0x20) >> 5; } WRITE16_MEMBER(aquarium_state::aquarium_bak_videoram_w) @@ -147,9 +144,9 @@ WRITE16_MEMBER(aquarium_state::aquarium_bak_videoram_w) VIDEO_START(aquarium) { aquarium_state *state = machine.driver_data<aquarium_state>(); - state->m_txt_tilemap = tilemap_create(machine, get_aquarium_txt_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_bak_tilemap = tilemap_create(machine, get_aquarium_bak_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_mid_tilemap = tilemap_create(machine, get_aquarium_mid_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aquarium_state::get_aquarium_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bak_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aquarium_state::get_aquarium_bak_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aquarium_state::get_aquarium_mid_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_txt_tilemap->set_transparent_pen(0); state->m_mid_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/argus.c b/src/mame/video/argus.c index bec831b3c58..1b9fe75bcfd 100644 --- a/src/mame/video/argus.c +++ b/src/mame/video/argus.c @@ -122,112 +122,105 @@ BG0 palette intensity ( $C47F, $C4FF ) Callbacks for the tilemap code ***************************************************************************/ -static TILE_GET_INFO( argus_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(argus_state::argus_get_tx_tile_info) { - argus_state *state = machine.driver_data<argus_state>(); UINT8 hi, lo; tile_index <<= 1; - lo = state->m_txram[tile_index]; - hi = state->m_txram[tile_index + 1]; + lo = m_txram[tile_index]; + hi = m_txram[tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, ((hi & 0xc0) << 2) | lo, hi & 0x0f, TILE_FLIPYX((hi & 0x30) >> 4)); } -static TILE_GET_INFO( argus_get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(argus_state::argus_get_bg0_tile_info) { - argus_state *state = machine.driver_data<argus_state>(); UINT8 hi, lo; tile_index <<= 1; - lo = state->m_dummy_bg0ram[tile_index]; - hi = state->m_dummy_bg0ram[tile_index + 1]; + lo = m_dummy_bg0ram[tile_index]; + hi = m_dummy_bg0ram[tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, ((hi & 0xc0) << 2) | lo, hi & 0x0f, TILE_FLIPYX((hi & 0x30) >> 4)); } -static TILE_GET_INFO( argus_get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(argus_state::argus_get_bg1_tile_info) { - argus_state *state = machine.driver_data<argus_state>(); UINT8 hi, lo; tile_index <<= 1; - lo = state->m_bg1ram[tile_index]; - hi = state->m_bg1ram[tile_index + 1]; + lo = m_bg1ram[tile_index]; + hi = m_bg1ram[tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, lo, hi & 0x0f, TILE_FLIPYX((hi & 0x30) >> 4)); } -static TILE_GET_INFO( valtric_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(argus_state::valtric_get_tx_tile_info) { - argus_state *state = machine.driver_data<argus_state>(); UINT8 hi, lo; tile_index <<= 1; - lo = state->m_txram[tile_index]; - hi = state->m_txram[tile_index + 1]; + lo = m_txram[tile_index]; + hi = m_txram[tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, ((hi & 0xc0) << 2) | lo, hi & 0x0f, TILE_FLIPYX((hi & 0x30) >> 4)); } -static TILE_GET_INFO( valtric_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(argus_state::valtric_get_bg_tile_info) { - argus_state *state = machine.driver_data<argus_state>(); UINT8 hi, lo; tile_index <<= 1; - lo = state->m_bg1ram[tile_index]; - hi = state->m_bg1ram[tile_index + 1]; + lo = m_bg1ram[tile_index]; + hi = m_bg1ram[tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, ((hi & 0xc0) << 2) | ((hi & 0x20) << 5) | lo, hi & 0x0f, 0); } -static TILE_GET_INFO( butasan_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(argus_state::butasan_get_tx_tile_info) { - argus_state *state = machine.driver_data<argus_state>(); UINT8 hi, lo; tile_index ^= 0x3e0; tile_index <<= 1; - lo = state->m_butasan_txram[tile_index]; - hi = state->m_butasan_txram[tile_index + 1]; + lo = m_butasan_txram[tile_index]; + hi = m_butasan_txram[tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, ((hi & 0xc0) << 2) | lo, hi & 0x0f, TILE_FLIPYX((hi & 0x30) >> 4)); } -static TILE_GET_INFO( butasan_get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(argus_state::butasan_get_bg0_tile_info) { - argus_state *state = machine.driver_data<argus_state>(); UINT8 hi, lo; int attrib; @@ -235,27 +228,26 @@ static TILE_GET_INFO( butasan_get_bg0_tile_info ) attrib ^= 0x0f0; attrib <<= 1; - lo = state->m_butasan_bg0ram[attrib]; - hi = state->m_butasan_bg0ram[attrib + 1]; + lo = m_butasan_bg0ram[attrib]; + hi = m_butasan_bg0ram[attrib + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, ((hi & 0xc0) << 2) | lo, hi & 0x0f, TILE_FLIPYX((hi & 0x30) >> 4)); } -static TILE_GET_INFO( butasan_get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(argus_state::butasan_get_bg1_tile_info) { - argus_state *state = machine.driver_data<argus_state>(); int attrib, tile; attrib = (tile_index & 0x00f) | ((tile_index & 0x3e0) >> 1) | ((tile_index & 0x010) << 5); attrib ^= 0x0f0; - tile = state->m_butasan_bg1ram[attrib] | ((state->m_butasan_bg1_status & 2) << 7); + tile = m_butasan_bg1ram[attrib] | ((m_butasan_bg1_status & 2) << 7); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile, (tile & 0x80) >> 7, @@ -279,9 +271,9 @@ VIDEO_START( argus ) { argus_state *state = machine.driver_data<argus_state>(); /* info offset w h col row */ - state->m_bg0_tilemap = tilemap_create(machine, argus_get_bg0_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg1_tilemap = tilemap_create(machine, argus_get_bg1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_tx_tilemap = tilemap_create(machine, argus_get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg0_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::argus_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_bg1_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(15); @@ -307,8 +299,8 @@ VIDEO_START( valtric ) { argus_state *state = machine.driver_data<argus_state>(); /* info offset w h col row */ - state->m_bg1_tilemap = tilemap_create(machine, valtric_get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_tx_tilemap = tilemap_create(machine, valtric_get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::valtric_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::valtric_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_tx_tilemap->set_transparent_pen(15); @@ -328,9 +320,9 @@ VIDEO_START( butasan ) { argus_state *state = machine.driver_data<argus_state>(); /* info offset w h col row */ - state->m_bg0_tilemap = tilemap_create(machine, butasan_get_bg0_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_bg1_tilemap = tilemap_create(machine, butasan_get_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_tx_tilemap = tilemap_create(machine, butasan_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg0_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::butasan_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg1_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/arkanoid.c b/src/mame/video/arkanoid.c index 59c5dea5776..91aa1420fae 100644 --- a/src/mame/video/arkanoid.c +++ b/src/mame/video/arkanoid.c @@ -149,21 +149,20 @@ WRITE8_MEMBER(arkanoid_state::hexa_d008_w) /* bit 6 - 7 unknown */ } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(arkanoid_state::get_bg_tile_info) { - arkanoid_state *state = machine.driver_data<arkanoid_state>(); int offs = tile_index * 2; - int code = state->m_videoram[offs + 1] + ((state->m_videoram[offs] & 0x07) << 8) + 2048 * state->m_gfxbank; - int color = ((state->m_videoram[offs] & 0xf8) >> 3) + 32 * state->m_palettebank; + int code = m_videoram[offs + 1] + ((m_videoram[offs] & 0x07) << 8) + 2048 * m_gfxbank; + int color = ((m_videoram[offs] & 0xf8) >> 3) + 32 * m_palettebank; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( arkanoid ) { arkanoid_state *state = machine.driver_data<arkanoid_state>(); - 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(arkanoid_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/video/armedf.c b/src/mame/video/armedf.c index 0bcf44062b7..1fdaa7c7fa5 100644 --- a/src/mame/video/armedf.c +++ b/src/mame/video/armedf.c @@ -14,35 +14,34 @@ ***************************************************************************/ -static TILEMAP_MAPPER( armedf_scan_type1 ) +TILEMAP_MAPPER_MEMBER(armedf_state::armedf_scan_type1) { /* col: 0..63; row: 0..31 */ /* armed formation */ return col * 32 + row; } -static TILEMAP_MAPPER( armedf_scan_type2 ) +TILEMAP_MAPPER_MEMBER(armedf_state::armedf_scan_type2) { /* col: 0..63; row: 0..31 */ return 32 * (31 - row) + (col & 0x1f) + 0x800 * (col / 32); } -static TILEMAP_MAPPER( armedf_scan_type3 ) +TILEMAP_MAPPER_MEMBER(armedf_state::armedf_scan_type3) { /* col: 0..63; row: 0..31 */ /* legion & legiono */ return (col & 0x1f) * 32 + row + 0x800 * (col / 32); } -static TILE_GET_INFO( get_nb1414m4_tx_tile_info ) +TILE_GET_INFO_MEMBER(armedf_state::get_nb1414m4_tx_tile_info) { - armedf_state *state = machine.driver_data<armedf_state>(); - int tile_number = state->m_text_videoram[tile_index] & 0xff; + int tile_number = m_text_videoram[tile_index] & 0xff; int attributes; /* TODO: Armed F doesn't seem to use the NB1414M4! */ - //if (state->m_scroll_type == 1) - // attributes = state->m_text_videoram[tile_index + 0x800] & 0xff; + //if (m_scroll_type == 1) + // attributes = m_text_videoram[tile_index + 0x800] & 0xff; //else { - attributes = state->m_text_videoram[tile_index + 0x400] & 0xff; + attributes = m_text_videoram[tile_index + 0x400] & 0xff; if(tile_index < 0x12) /* don't draw the NB1414M4 params! TODO: could be a better fix */ tile_number = attributes = 0x00; @@ -51,25 +50,24 @@ static TILE_GET_INFO( get_nb1414m4_tx_tile_info ) /* bit 3 controls priority, (0) nb1414m4 has priority over all the other video layers */ tileinfo.category = (attributes & 0x8) >> 3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number + 256 * (attributes & 0x3), attributes >> 4, 0); } -static TILE_GET_INFO( get_armedf_tx_tile_info ) +TILE_GET_INFO_MEMBER(armedf_state::get_armedf_tx_tile_info) { - armedf_state *state = machine.driver_data<armedf_state>(); - int tile_number = state->m_text_videoram[tile_index] & 0xff; + int tile_number = m_text_videoram[tile_index] & 0xff; int attributes; /* TODO: Armed F doesn't seem to use the NB1414M4! */ - //if (state->m_scroll_type == 1) - attributes = state->m_text_videoram[tile_index + 0x800] & 0xff; + //if (m_scroll_type == 1) + attributes = m_text_videoram[tile_index + 0x800] & 0xff; //else //{ - // attributes = state->m_text_videoram[tile_index + 0x400] & 0xff; + // attributes = m_text_videoram[tile_index + 0x400] & 0xff; // // if(tile_index < 0x12) /* don't draw the NB1414M4 params! TODO: could be a better fix */ // tile_number = attributes = 0x00; @@ -78,7 +76,7 @@ static TILE_GET_INFO( get_armedf_tx_tile_info ) /* bit 3 controls priority, (0) nb1414m4 has priority over all the other video layers */ tileinfo.category = (attributes & 0x8) >> 3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number + 256 * (attributes & 0x3), attributes >> 4, @@ -86,11 +84,10 @@ static TILE_GET_INFO( get_armedf_tx_tile_info ) } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(armedf_state::get_fg_tile_info) { - armedf_state *state = machine.driver_data<armedf_state>(); - int data = state->m_fg_videoram[tile_index]; - SET_TILE_INFO( + int data = m_fg_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 1, data&0x7ff, data>>11, @@ -98,11 +95,10 @@ static TILE_GET_INFO( get_fg_tile_info ) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(armedf_state::get_bg_tile_info) { - armedf_state *state = machine.driver_data<armedf_state>(); - int data = state->m_bg_videoram[tile_index]; - SET_TILE_INFO( + int data = m_bg_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 2, data & 0x3ff, data >> 11, @@ -123,10 +119,11 @@ VIDEO_START( terraf ) state->m_sprite_offy = (state->m_scroll_type & 2 ) ? 0 : 128; /* legion, legiono, crazy climber 2 */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); - state->m_tx_tilemap = tilemap_create(machine, get_nb1414m4_tx_tile_info, (state->m_scroll_type == 2) ? armedf_scan_type3 : armedf_scan_type2, 8, 8, 64, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_nb1414m4_tx_tile_info),state), + (state->m_scroll_type == 2) ? tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type3),state) : tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type2),state), 8, 8, 64, 32); state->m_bg_tilemap->set_transparent_pen(0xf); state->m_fg_tilemap->set_transparent_pen(0xf); @@ -145,10 +142,10 @@ VIDEO_START( armedf ) state->m_sprite_offy = (state->m_scroll_type & 2 ) ? 0 : 128; /* legion, legiono, crazy climber 2 */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); - state->m_tx_tilemap = tilemap_create(machine, get_armedf_tx_tile_info, armedf_scan_type1, 8, 8, 64, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_armedf_tx_tile_info),state), tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type1),state), 8, 8, 64, 32); state->m_bg_tilemap->set_transparent_pen(0xf); state->m_fg_tilemap->set_transparent_pen(0xf); diff --git a/src/mame/video/ashnojoe.c b/src/mame/video/ashnojoe.c index 96d270bcd51..20f2fe1e8d5 100644 --- a/src/mame/video/ashnojoe.c +++ b/src/mame/video/ashnojoe.c @@ -9,75 +9,69 @@ #include "includes/ashnojoe.h" -static TILE_GET_INFO( get_joe_tile_info ) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info) { - ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); - int code = state->m_tileram[tile_index]; + int code = m_tileram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code & 0xfff, ((code >> 12) & 0x0f), 0); } -static TILE_GET_INFO( get_joe_tile_info_2 ) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_2) { - ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); - int code = state->m_tileram_2[tile_index * 2]; - int attr = state->m_tileram_2[tile_index * 2 + 1]; + int code = m_tileram_2[tile_index * 2]; + int attr = m_tileram_2[tile_index * 2 + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 4, (code & 0x7fff), ((attr >> 8) & 0x1f) + 0x40, 0); } -static TILE_GET_INFO( get_joe_tile_info_3 ) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_3) { - ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); - int code = state->m_tileram_3[tile_index]; + int code = m_tileram_3[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code & 0xfff, ((code >> 12) & 0x0f) + 0x10, 0); } -static TILE_GET_INFO( get_joe_tile_info_4 ) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_4) { - ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); - int code = state->m_tileram_4[tile_index]; + int code = m_tileram_4[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code & 0xfff, ((code >> 12) & 0x0f) + 0x60, 0); } -static TILE_GET_INFO( get_joe_tile_info_5 ) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_5) { - ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); - int code = state->m_tileram_5[tile_index * 2]; - int attr = state->m_tileram_5[tile_index * 2 + 1]; + int code = m_tileram_5[tile_index * 2]; + int attr = m_tileram_5[tile_index * 2 + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 4, (code & 0x7fff), ((attr >> 8) & 0x1f) + 0x20, 0); } -static TILE_GET_INFO( get_joe_tile_info_6 ) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_6) { - ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); - int code = state->m_tileram_6[tile_index * 2]; - int attr = state->m_tileram_6[tile_index * 2 + 1]; + int code = m_tileram_6[tile_index * 2]; + int attr = m_tileram_6[tile_index * 2 + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, (code & 0x1fff), ((attr >> 8) & 0x1f) + 0x70, @@ -85,13 +79,12 @@ static TILE_GET_INFO( get_joe_tile_info_6 ) } -static TILE_GET_INFO( get_joe_tile_info_7 ) +TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_7) { - ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); - int code = state->m_tileram_7[tile_index * 2]; - int attr = state->m_tileram_7[tile_index * 2 + 1]; + int code = m_tileram_7[tile_index * 2]; + int attr = m_tileram_7[tile_index * 2 + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, (code & 0x1fff), ((attr >> 8) & 0x1f) + 0x70, @@ -200,13 +193,13 @@ VIDEO_START( ashnojoe ) { ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); - state->m_joetilemap = tilemap_create(machine, get_joe_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_joetilemap2 = tilemap_create(machine, get_joe_tile_info_2, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_joetilemap3 = tilemap_create(machine, get_joe_tile_info_3, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_joetilemap4 = tilemap_create(machine, get_joe_tile_info_4, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_joetilemap5 = tilemap_create(machine, get_joe_tile_info_5, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_joetilemap6 = tilemap_create(machine, get_joe_tile_info_6, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_joetilemap7 = tilemap_create(machine, get_joe_tile_info_7, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_joetilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_joetilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_2),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_joetilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_3),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_joetilemap4 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_4),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_joetilemap5 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_5),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_joetilemap6 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_6),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_joetilemap7 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_7),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_joetilemap->set_transparent_pen(15); state->m_joetilemap2->set_transparent_pen(15); diff --git a/src/mame/video/atarifb.c b/src/mame/video/atarifb.c index c03486dc5ac..7457ac9246c 100644 --- a/src/mame/video/atarifb.c +++ b/src/mame/video/atarifb.c @@ -27,27 +27,24 @@ static void get_tile_info_common( running_machine &machine, tile_data &tileinfo, } -static TILE_GET_INFO( alpha1_get_tile_info ) +TILE_GET_INFO_MEMBER(atarifb_state::alpha1_get_tile_info) { - atarifb_state *state = machine.driver_data<atarifb_state>(); - get_tile_info_common(machine, tileinfo, tile_index, state->m_alphap1_videoram); + get_tile_info_common(machine(), tileinfo, tile_index, m_alphap1_videoram); } -static TILE_GET_INFO( alpha2_get_tile_info ) +TILE_GET_INFO_MEMBER(atarifb_state::alpha2_get_tile_info) { - atarifb_state *state = machine.driver_data<atarifb_state>(); - get_tile_info_common(machine, tileinfo, tile_index, state->m_alphap2_videoram); + get_tile_info_common(machine(), tileinfo, tile_index, m_alphap2_videoram); } -static TILE_GET_INFO( field_get_tile_info ) +TILE_GET_INFO_MEMBER(atarifb_state::field_get_tile_info) { - atarifb_state *state = machine.driver_data<atarifb_state>(); - int code = state->m_field_videoram[tile_index] & 0x3f; - int flipyx = state->m_field_videoram[tile_index] >> 6; + int code = m_field_videoram[tile_index] & 0x3f; + int flipyx = m_field_videoram[tile_index] >> 6; - SET_TILE_INFO(1, code, 0, TILE_FLIPYX(flipyx)); + SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX(flipyx)); } @@ -94,9 +91,9 @@ VIDEO_START( atarifb ) { atarifb_state *state = machine.driver_data<atarifb_state>(); - state->m_alpha1_tilemap = tilemap_create(machine, alpha1_get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 3, 32); - state->m_alpha2_tilemap = tilemap_create(machine, alpha2_get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 3, 32); - state->m_field_tilemap = tilemap_create(machine, field_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_alpha1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarifb_state::alpha1_get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 3, 32); + state->m_alpha2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarifb_state::alpha2_get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 3, 32); + state->m_field_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarifb_state::field_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/atarig1.c b/src/mame/video/atarig1.c index 4e82336d449..6d8865e9c05 100644 --- a/src/mame/video/atarig1.c +++ b/src/mame/video/atarig1.c @@ -16,24 +16,22 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(atarig1_state::get_alpha_tile_info) { - atarig1_state *state = machine.driver_data<atarig1_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0xfff; int color = (data >> 12) & 0x0f; int opaque = data & 0x8000; - SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(atarig1_state::get_playfield_tile_info) { - atarig1_state *state = machine.driver_data<atarig1_state>(); - UINT16 data = state->m_playfield[tile_index]; - int code = (state->m_playfield_tile_bank << 12) | (data & 0xfff); + UINT16 data = m_playfield[tile_index]; + int code = (m_playfield_tile_bank << 12) | (data & 0xfff); int color = (data >> 12) & 7; - SET_TILE_INFO(0, code, color, (data >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); } @@ -52,13 +50,13 @@ VIDEO_START( atarig1 ) atarigen_blend_gfx(machine, 0, 2, 0x0f, 0x10); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarig1_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); /* initialize the motion objects */ state->m_rle = machine.device("rle"); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarig1_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* reset statics */ diff --git a/src/mame/video/atarig42.c b/src/mame/video/atarig42.c index 7e2f7bcb7c9..1c298021b18 100644 --- a/src/mame/video/atarig42.c +++ b/src/mame/video/atarig42.c @@ -31,29 +31,27 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(atarig42_state::get_alpha_tile_info) { - atarig42_state *state = machine.driver_data<atarig42_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0xfff; int color = (data >> 12) & 0x0f; int opaque = data & 0x8000; - SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(atarig42_state::get_playfield_tile_info) { - atarig42_state *state = machine.driver_data<atarig42_state>(); - UINT16 data = state->m_playfield[tile_index]; - int code = (state->m_playfield_tile_bank << 12) | (data & 0xfff); - int color = (state->m_playfield_base >> 5) + ((state->m_playfield_color_bank << 3) & 0x18) + ((data >> 12) & 7); - SET_TILE_INFO(0, code, color, (data >> 15) & 1); - tileinfo.category = (state->m_playfield_color_bank >> 2) & 7; + UINT16 data = m_playfield[tile_index]; + int code = (m_playfield_tile_bank << 12) | (data & 0xfff); + int color = (m_playfield_base >> 5) + ((m_playfield_color_bank << 3) & 0x18) + ((data >> 12) & 7); + SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); + tileinfo.category = (m_playfield_color_bank >> 2) & 7; } -static TILEMAP_MAPPER( atarig42_playfield_scan ) +TILEMAP_MAPPER_MEMBER(atarig42_state::atarig42_playfield_scan) { int bank = 1 - (col / (num_cols / 2)); return bank * (num_rows * num_cols / 2) + row * (num_cols / 2) + (col % (num_cols / 2)); @@ -75,13 +73,13 @@ VIDEO_START( atarig42 ) atarigen_blend_gfx(machine, 0, 2, 0x0f, 0x30); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, atarig42_playfield_scan, 8,8, 128,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarig42_state::get_playfield_tile_info),state), tilemap_mapper_delegate(FUNC(atarig42_state::atarig42_playfield_scan),state), 8,8, 128,64); /* initialize the motion objects */ state->m_rle = machine.device("rle"); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarig42_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* save states */ diff --git a/src/mame/video/atarigt.c b/src/mame/video/atarigt.c index 3bffdf98f98..0c176b29c0a 100644 --- a/src/mame/video/atarigt.c +++ b/src/mame/video/atarigt.c @@ -42,27 +42,25 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(atarigt_state::get_alpha_tile_info) { - atarigt_state *state = machine.driver_data<atarigt_state>(); - UINT16 data = state->m_alpha32[tile_index / 2] >> (16 * (~tile_index & 1)); + UINT16 data = m_alpha32[tile_index / 2] >> (16 * (~tile_index & 1)); int code = data & 0xfff; int color = (data >> 12) & 0x0f; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(atarigt_state::get_playfield_tile_info) { - atarigt_state *state = machine.driver_data<atarigt_state>(); - UINT16 data = state->m_playfield32[tile_index / 2] >> (16 * (~tile_index & 1)); - int code = (state->m_playfield_tile_bank << 12) | (data & 0xfff); + UINT16 data = m_playfield32[tile_index / 2] >> (16 * (~tile_index & 1)); + int code = (m_playfield_tile_bank << 12) | (data & 0xfff); int color = (data >> 12) & 7; - SET_TILE_INFO(0, code, color, (data >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); } -static TILEMAP_MAPPER( atarigt_playfield_scan ) +TILEMAP_MAPPER_MEMBER(atarigt_state::atarigt_playfield_scan) { int bank = 1 - (col / (num_cols / 2)); return bank * (num_rows * num_cols / 2) + row * (num_cols / 2) + (col % (num_cols / 2)); @@ -86,13 +84,13 @@ VIDEO_START( atarigt ) atarigen_blend_gfx(machine, 0, 2, 0x0f, 0x30); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, atarigt_playfield_scan, 8,8, 128,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarigt_state::get_playfield_tile_info),state), tilemap_mapper_delegate(FUNC(atarigt_state::atarigt_playfield_scan),state), 8,8, 128,64); /* initialize the motion objects */ state->m_rle = machine.device("rle"); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarigt_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); /* allocate temp bitmaps */ width = machine.primary_screen->width(); diff --git a/src/mame/video/atarigx2.c b/src/mame/video/atarigx2.c index 3922039da2a..88a287a03b7 100644 --- a/src/mame/video/atarigx2.c +++ b/src/mame/video/atarigx2.c @@ -31,29 +31,27 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(atarigx2_state::get_alpha_tile_info) { - atarigx2_state *state = machine.driver_data<atarigx2_state>(); - UINT16 data = state->m_alpha32[tile_index / 2] >> (16 * (~tile_index & 1)); + UINT16 data = m_alpha32[tile_index / 2] >> (16 * (~tile_index & 1)); int code = data & 0xfff; int color = (data >> 12) & 0x0f; int opaque = data & 0x8000; - SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(atarigx2_state::get_playfield_tile_info) { - atarigx2_state *state = machine.driver_data<atarigx2_state>(); - UINT16 data = state->m_playfield32[tile_index / 2] >> (16 * (~tile_index & 1)); - int code = (state->m_playfield_tile_bank << 12) | (data & 0xfff); - int color = (state->m_playfield_base >> 5) + ((state->m_playfield_color_bank << 3) & 0x18) + ((data >> 12) & 7); - SET_TILE_INFO(0, code, color, (data >> 15) & 1); - tileinfo.category = (state->m_playfield_color_bank >> 2) & 7; + UINT16 data = m_playfield32[tile_index / 2] >> (16 * (~tile_index & 1)); + int code = (m_playfield_tile_bank << 12) | (data & 0xfff); + int color = (m_playfield_base >> 5) + ((m_playfield_color_bank << 3) & 0x18) + ((data >> 12) & 7); + SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); + tileinfo.category = (m_playfield_color_bank >> 2) & 7; } -static TILEMAP_MAPPER( atarigx2_playfield_scan ) +TILEMAP_MAPPER_MEMBER(atarigx2_state::atarigx2_playfield_scan) { int bank = 1 - (col / (num_cols / 2)); return bank * (num_rows * num_cols / 2) + row * (num_cols / 2) + (col % (num_cols / 2)); @@ -75,13 +73,13 @@ VIDEO_START( atarigx2 ) atarigen_blend_gfx(machine, 0, 2, 0x0f, 0x30); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, atarigx2_playfield_scan, 8,8, 128,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarigx2_state::get_playfield_tile_info),state), tilemap_mapper_delegate(FUNC(atarigx2_state::atarigx2_playfield_scan),state), 8,8, 128,64); /* initialize the motion objects */ state->m_rle = machine.device("rle"); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarigx2_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* save states */ diff --git a/src/mame/video/atarisy1.c b/src/mame/video/atarisy1.c index e5db4fc3702..c2d5e21ef33 100644 --- a/src/mame/video/atarisy1.c +++ b/src/mame/video/atarisy1.c @@ -92,26 +92,24 @@ static int get_bank(running_machine &machine, UINT8 prom1, UINT8 prom2, int bpp) * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(atarisy1_state::get_alpha_tile_info) { - atarisy1_state *state = machine.driver_data<atarisy1_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0x3ff; int color = (data >> 10) & 0x07; int opaque = data & 0x2000; - SET_TILE_INFO(0, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(0, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(atarisy1_state::get_playfield_tile_info) { - atarisy1_state *state = machine.driver_data<atarisy1_state>(); - UINT16 data = state->m_playfield[tile_index]; - UINT16 lookup = state->m_playfield_lookup[((data >> 8) & 0x7f) | (state->m_playfield_tile_bank << 7)]; + UINT16 data = m_playfield[tile_index]; + UINT16 lookup = m_playfield_lookup[((data >> 8) & 0x7f) | (m_playfield_tile_bank << 7)]; int gfxindex = (lookup >> 8) & 15; int code = ((lookup & 0xff) << 8) | (data & 0xff); - int color = 0x20 + (((lookup >> 12) & 15) << state->m_bank_color_shift[gfxindex]); - SET_TILE_INFO(gfxindex, code, color, (data >> 15) & 1); + int color = 0x20 + (((lookup >> 12) & 15) << m_bank_color_shift[gfxindex]); + SET_TILE_INFO_MEMBER(gfxindex, code, color, (data >> 15) & 1); } @@ -171,13 +169,13 @@ VIDEO_START( atarisy1 ) decode_gfx(machine, state->m_playfield_lookup, motable); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarisy1_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarisy1_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* modify the motion object code lookup */ diff --git a/src/mame/video/atarisy2.c b/src/mame/video/atarisy2.c index b4dd5ae9742..89a8eb41e72 100644 --- a/src/mame/video/atarisy2.c +++ b/src/mame/video/atarisy2.c @@ -27,23 +27,21 @@ static TIMER_CALLBACK( reset_yscroll_callback ); * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(atarisy2_state::get_alpha_tile_info) { - atarisy2_state *state = machine.driver_data<atarisy2_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0x3ff; int color = (data >> 13) & 0x07; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(atarisy2_state::get_playfield_tile_info) { - atarisy2_state *state = machine.driver_data<atarisy2_state>(); - UINT16 data = state->m_playfield[tile_index]; - int code = state->m_playfield_tile_bank[(data >> 10) & 1] + (data & 0x3ff); + UINT16 data = m_playfield[tile_index]; + int code = m_playfield_tile_bank[(data >> 10) & 1] + (data & 0x3ff); int color = (data >> 11) & 7; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); tileinfo.category = (~data >> 14) & 3; } @@ -100,13 +98,13 @@ VIDEO_START( atarisy2 ) state->m_playfield.set_target(&state->m_vram[0x2000], 0x2000); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_ROWS, 8,8, 128,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarisy2_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 128,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,48); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarisy2_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,48); state->m_alpha_tilemap->set_transparent_pen(0); /* reset the statics */ diff --git a/src/mame/video/atetris.c b/src/mame/video/atetris.c index 16027657375..289bd684106 100644 --- a/src/mame/video/atetris.c +++ b/src/mame/video/atetris.c @@ -14,14 +14,13 @@ * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(atetris_state::get_tile_info) { - atetris_state *state = machine.driver_data<atetris_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[tile_index * 2] | ((videoram[tile_index * 2 + 1] & 7) << 8); int color = (videoram[tile_index * 2 + 1] & 0xf0) >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -52,7 +51,7 @@ VIDEO_START( atetris ) { atetris_state *state = machine.driver_data<atetris_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atetris_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); } diff --git a/src/mame/video/badlands.c b/src/mame/video/badlands.c index 0af83b2ca64..2310c17f246 100644 --- a/src/mame/video/badlands.c +++ b/src/mame/video/badlands.c @@ -16,13 +16,12 @@ * *************************************/ -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(badlands_state::get_playfield_tile_info) { - badlands_state *state = machine.driver_data<badlands_state>(); - UINT16 data = state->m_playfield[tile_index]; - int code = (data & 0x1fff) + ((data & 0x1000) ? (state->m_playfield_tile_bank << 12) : 0); + UINT16 data = m_playfield[tile_index]; + int code = (data & 0x1fff) + ((data & 0x1000) ? (m_playfield_tile_bank << 12) : 0); int color = (data >> 13) & 0x07; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -74,7 +73,7 @@ VIDEO_START( badlands ) badlands_state *state = machine.driver_data<badlands_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(badlands_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); diff --git a/src/mame/video/bagman.c b/src/mame/video/bagman.c index 3a1d6b2928c..4c92a8ce26e 100644 --- a/src/mame/video/bagman.c +++ b/src/mame/video/bagman.c @@ -89,20 +89,19 @@ WRITE8_MEMBER(bagman_state::bagman_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(bagman_state::get_bg_tile_info) { - bagman_state *state = machine.driver_data<bagman_state>(); - int gfxbank = (machine.gfx[2] && (state->m_colorram[tile_index] & 0x10)) ? 2 : 0; - int code = state->m_videoram[tile_index] + 8 * (state->m_colorram[tile_index] & 0x20); - int color = state->m_colorram[tile_index] & 0x0f; + int gfxbank = (machine().gfx[2] && (m_colorram[tile_index] & 0x10)) ? 2 : 0; + int code = m_videoram[tile_index] + 8 * (m_colorram[tile_index] & 0x20); + int color = m_colorram[tile_index] & 0x0f; - SET_TILE_INFO(gfxbank, code, color, 0); + SET_TILE_INFO_MEMBER(gfxbank, code, color, 0); } VIDEO_START( bagman ) { bagman_state *state = machine.driver_data<bagman_state>(); - 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(bagman_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scrolldy(-1, -1); diff --git a/src/mame/video/bankp.c b/src/mame/video/bankp.c index 04af6dcf5e3..c74c4246fcc 100644 --- a/src/mame/video/bankp.c +++ b/src/mame/video/bankp.c @@ -132,25 +132,23 @@ WRITE8_MEMBER(bankp_state::bankp_out_w) /* bits 6-7 unknown */ } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(bankp_state::get_bg_tile_info) { - bankp_state *state = machine.driver_data<bankp_state>(); - int code = state->m_videoram2[tile_index] + 256 * (state->m_colorram2[tile_index] & 0x07); - int color = state->m_colorram2[tile_index] >> 4; - int flags = (state->m_colorram2[tile_index] & 0x08) ? TILE_FLIPX : 0; + int code = m_videoram2[tile_index] + 256 * (m_colorram2[tile_index] & 0x07); + int color = m_colorram2[tile_index] >> 4; + int flags = (m_colorram2[tile_index] & 0x08) ? TILE_FLIPX : 0; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); tileinfo.group = color; } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(bankp_state::get_fg_tile_info) { - bankp_state *state = machine.driver_data<bankp_state>(); - int code = state->m_videoram[tile_index] + 256 * ((state->m_colorram[tile_index] & 3) >> 0); - int color = state->m_colorram[tile_index] >> 3; - int flags = (state->m_colorram[tile_index] & 0x04) ? TILE_FLIPX : 0; + int code = m_videoram[tile_index] + 256 * ((m_colorram[tile_index] & 3) >> 0); + int color = m_colorram[tile_index] >> 3; + int flags = (m_colorram[tile_index] & 0x04) ? TILE_FLIPX : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); tileinfo.group = color; } @@ -158,8 +156,8 @@ VIDEO_START( bankp ) { bankp_state *state = machine.driver_data<bankp_state>(); - 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(bankp_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(bankp_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[1], 0); colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 0); diff --git a/src/mame/video/baraduke.c b/src/mame/video/baraduke.c index 01a5ffb3de2..e6930cee1cd 100644 --- a/src/mame/video/baraduke.c +++ b/src/mame/video/baraduke.c @@ -58,7 +58,7 @@ PALETTE_INIT( baraduke ) ***************************************************************************/ /* convert from 32x32 to 36x28 */ -static TILEMAP_MAPPER( tx_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(baraduke_state::tx_tilemap_scan) { int offs; @@ -72,36 +72,33 @@ static TILEMAP_MAPPER( tx_tilemap_scan ) return offs; } -static TILE_GET_INFO( tx_get_tile_info ) +TILE_GET_INFO_MEMBER(baraduke_state::tx_get_tile_info) { - baraduke_state *state = machine.driver_data<baraduke_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_textram[tile_index], - (state->m_textram[tile_index+0x400] << 2) & 0x1ff, + m_textram[tile_index], + (m_textram[tile_index+0x400] << 2) & 0x1ff, 0); } -static TILE_GET_INFO( get_tile_info0 ) +TILE_GET_INFO_MEMBER(baraduke_state::get_tile_info0) { - baraduke_state *state = machine.driver_data<baraduke_state>(); - int code = state->m_videoram[2*tile_index]; - int attr = state->m_videoram[2*tile_index + 1]; + int code = m_videoram[2*tile_index]; + int attr = m_videoram[2*tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code + ((attr & 0x03) << 8), attr, 0); } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(baraduke_state::get_tile_info1) { - baraduke_state *state = machine.driver_data<baraduke_state>(); - int code = state->m_videoram[0x1000 + 2*tile_index]; - int attr = state->m_videoram[0x1000 + 2*tile_index + 1]; + int code = m_videoram[0x1000 + 2*tile_index]; + int attr = m_videoram[0x1000 + 2*tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code + ((attr & 0x03) << 8), attr, @@ -119,9 +116,9 @@ static TILE_GET_INFO( get_tile_info1 ) VIDEO_START( baraduke ) { baraduke_state *state = machine.driver_data<baraduke_state>(); - state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,tx_tilemap_scan,8,8,36,28); - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(baraduke_state::tx_get_tile_info),state),tilemap_mapper_delegate(FUNC(baraduke_state::tx_tilemap_scan),state),8,8,36,28); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(baraduke_state::get_tile_info0),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(baraduke_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_tx_tilemap->set_transparent_pen(3); state->m_bg_tilemap[0]->set_transparent_pen(7); diff --git a/src/mame/video/batman.c b/src/mame/video/batman.c index d59ef66abfa..6953e5270cf 100644 --- a/src/mame/video/batman.c +++ b/src/mame/video/batman.c @@ -16,37 +16,34 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(batman_state::get_alpha_tile_info) { - batman_state *state = machine.driver_data<batman_state>(); - UINT16 data = state->m_alpha[tile_index]; - int code = ((data & 0x400) ? (state->m_alpha_tile_bank * 0x400) : 0) + (data & 0x3ff); + UINT16 data = m_alpha[tile_index]; + int code = ((data & 0x400) ? (m_alpha_tile_bank * 0x400) : 0) + (data & 0x3ff); int color = (data >> 11) & 0x0f; int opaque = data & 0x8000; - SET_TILE_INFO(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(batman_state::get_playfield_tile_info) { - batman_state *state = machine.driver_data<batman_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] & 0xff; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] & 0xff; int code = data1 & 0x7fff; int color = 0x10 + (data2 & 0x0f); - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); tileinfo.category = (data2 >> 4) & 3; } -static TILE_GET_INFO( get_playfield2_tile_info ) +TILE_GET_INFO_MEMBER(batman_state::get_playfield2_tile_info) { - batman_state *state = machine.driver_data<batman_state>(); - UINT16 data1 = state->m_playfield2[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; + UINT16 data1 = m_playfield2[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] >> 8; int code = data1 & 0x7fff; int color = data2 & 0x0f; - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); tileinfo.category = (data2 >> 4) & 3; } @@ -99,17 +96,17 @@ VIDEO_START( batman ) batman_state *state = machine.driver_data<batman_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(batman_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the second playfield */ - state->m_playfield2_tilemap = tilemap_create(machine, get_playfield2_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(batman_state::get_playfield2_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); state->m_playfield2_tilemap->set_transparent_pen(0); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(batman_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/battlane.c b/src/mame/video/battlane.c index 54299ff6a3b..8ab9a5af660 100644 --- a/src/mame/video/battlane.c +++ b/src/mame/video/battlane.c @@ -92,18 +92,17 @@ WRITE8_MEMBER(battlane_state::battlane_video_ctrl_w) m_video_ctrl = data; } -static TILE_GET_INFO( get_tile_info_bg ) +TILE_GET_INFO_MEMBER(battlane_state::get_tile_info_bg) { - battlane_state *state = machine.driver_data<battlane_state>(); - int code = state->m_tileram[tile_index]; - int attr = state->m_tileram[tile_index + 0x400]; + int code = m_tileram[tile_index]; + int attr = m_tileram[tile_index + 0x400]; int gfxn = (attr & 0x01) + 1; int color = (attr >> 1) & 0x03; - SET_TILE_INFO(gfxn, code, color, 0); + SET_TILE_INFO_MEMBER(gfxn, code, color, 0); } -static TILEMAP_MAPPER( battlane_tilemap_scan_rows_2x2 ) +TILEMAP_MAPPER_MEMBER(battlane_state::battlane_tilemap_scan_rows_2x2) { /* Tilemap Memory Organization @@ -137,7 +136,7 @@ static TILEMAP_MAPPER( battlane_tilemap_scan_rows_2x2 ) VIDEO_START( battlane ) { battlane_state *state = machine.driver_data<battlane_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info_bg, battlane_tilemap_scan_rows_2x2, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(battlane_state::get_tile_info_bg),state), tilemap_mapper_delegate(FUNC(battlane_state::battlane_tilemap_scan_rows_2x2),state), 16, 16, 32, 32); state->m_screen_bitmap.allocate(32 * 8, 32 * 8); } diff --git a/src/mame/video/battlex.c b/src/mame/video/battlex.c index 249e7cf2c73..74eafd02cc9 100644 --- a/src/mame/video/battlex.c +++ b/src/mame/video/battlex.c @@ -45,19 +45,18 @@ WRITE8_MEMBER(battlex_state::battlex_flipscreen_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(battlex_state::get_bg_tile_info) { - battlex_state *state = machine.driver_data<battlex_state>(); - int tile = state->m_videoram[tile_index * 2] | (((state->m_videoram[tile_index * 2 + 1] & 0x01)) << 8); - int color = (state->m_videoram[tile_index * 2 + 1] & 0x0e) >> 1; // high bits unused + int tile = m_videoram[tile_index * 2] | (((m_videoram[tile_index * 2 + 1] & 0x01)) << 8); + int color = (m_videoram[tile_index * 2 + 1] & 0x0e) >> 1; // high bits unused - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); } VIDEO_START( battlex ) { battlex_state *state = machine.driver_data<battlex_state>(); - 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(battlex_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) diff --git a/src/mame/video/bbusters.c b/src/mame/video/bbusters.c index 4a473765cbe..5185456d3bf 100644 --- a/src/mame/video/bbusters.c +++ b/src/mame/video/bbusters.c @@ -27,28 +27,25 @@ /******************************************************************************/ -static TILE_GET_INFO( get_bbusters_tile_info ) +TILE_GET_INFO_MEMBER(bbusters_state::get_bbusters_tile_info) { - bbusters_state *state = machine.driver_data<bbusters_state>(); - UINT16 tile = state->m_videoram[tile_index]; + UINT16 tile = m_videoram[tile_index]; - SET_TILE_INFO(0,tile&0xfff,tile>>12,0); + SET_TILE_INFO_MEMBER(0,tile&0xfff,tile>>12,0); } -static TILE_GET_INFO( get_pf1_tile_info ) +TILE_GET_INFO_MEMBER(bbusters_state::get_pf1_tile_info) { - bbusters_state *state = machine.driver_data<bbusters_state>(); - UINT16 tile = state->m_pf1_data[tile_index]; + UINT16 tile = m_pf1_data[tile_index]; - SET_TILE_INFO(3,tile&0xfff,tile>>12,0); + SET_TILE_INFO_MEMBER(3,tile&0xfff,tile>>12,0); } -static TILE_GET_INFO( get_pf2_tile_info ) +TILE_GET_INFO_MEMBER(bbusters_state::get_pf2_tile_info) { - bbusters_state *state = machine.driver_data<bbusters_state>(); - UINT16 tile = state->m_pf2_data[tile_index]; + UINT16 tile = m_pf2_data[tile_index]; - SET_TILE_INFO(4,tile&0xfff,tile>>12,0); + SET_TILE_INFO_MEMBER(4,tile&0xfff,tile>>12,0); } WRITE16_MEMBER(bbusters_state::bbusters_video_w) @@ -78,9 +75,9 @@ VIDEO_START( bbuster ) { bbusters_state *state = machine.driver_data<bbusters_state>(); - state->m_fix_tilemap = tilemap_create(machine, get_bbusters_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 32); - state->m_pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_bbusters_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_pf1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_pf2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 32); state->m_pf1_tilemap->set_transparent_pen(15); state->m_fix_tilemap->set_transparent_pen(15); @@ -90,9 +87,9 @@ VIDEO_START( mechatt ) { bbusters_state *state = machine.driver_data<bbusters_state>(); - state->m_fix_tilemap = tilemap_create(machine, get_bbusters_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 256, 32); - state->m_pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, TILEMAP_SCAN_COLS, 16, 16, 256, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_bbusters_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_pf1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_pf2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 32); state->m_pf1_tilemap->set_transparent_pen(15); state->m_fix_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/bigstrkb.c b/src/mame/video/bigstrkb.c index 3ed6e94a1a3..985b7b9a882 100644 --- a/src/mame/video/bigstrkb.c +++ b/src/mame/video/bigstrkb.c @@ -48,7 +48,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r /* Tilemaps */ -static TILEMAP_MAPPER( bsb_bg_scan ) +TILEMAP_MAPPER_MEMBER(bigstrkb_state::bsb_bg_scan) { int offset; @@ -59,15 +59,14 @@ static TILEMAP_MAPPER( bsb_bg_scan ) return offset; } -static TILE_GET_INFO( get_bsb_tile_info ) +TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile_info) { - bigstrkb_state *state = machine.driver_data<bigstrkb_state>(); int tileno,col; - tileno = state->m_videoram[tile_index] & 0x0fff; - col= state->m_videoram[tile_index] & 0xf000; + tileno = m_videoram[tile_index] & 0x0fff; + col= m_videoram[tile_index] & 0xf000; - SET_TILE_INFO(0,tileno,col>>12,0); + SET_TILE_INFO_MEMBER(0,tileno,col>>12,0); } WRITE16_MEMBER(bigstrkb_state::bsb_videoram_w) @@ -76,15 +75,14 @@ WRITE16_MEMBER(bigstrkb_state::bsb_videoram_w) m_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bsb_tile2_info ) +TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile2_info) { - bigstrkb_state *state = machine.driver_data<bigstrkb_state>(); int tileno,col; - tileno = state->m_videoram2[tile_index] & 0x0fff; - col= state->m_videoram2[tile_index] & 0xf000; + tileno = m_videoram2[tile_index] & 0x0fff; + col= m_videoram2[tile_index] & 0xf000; - SET_TILE_INFO(1,tileno,col>>12,0); + SET_TILE_INFO_MEMBER(1,tileno,col>>12,0); } WRITE16_MEMBER(bigstrkb_state::bsb_videoram2_w) @@ -94,15 +92,14 @@ WRITE16_MEMBER(bigstrkb_state::bsb_videoram2_w) } -static TILE_GET_INFO( get_bsb_tile3_info ) +TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile3_info) { - bigstrkb_state *state = machine.driver_data<bigstrkb_state>(); int tileno,col; - tileno = state->m_videoram3[tile_index] & 0x0fff; - col= state->m_videoram3[tile_index] & 0xf000; + tileno = m_videoram3[tile_index] & 0x0fff; + col= m_videoram3[tile_index] & 0xf000; - SET_TILE_INFO(1,tileno+0x2000,(col>>12)+(0x100/16),0); + SET_TILE_INFO_MEMBER(1,tileno+0x2000,(col>>12)+(0x100/16),0); } WRITE16_MEMBER(bigstrkb_state::bsb_videoram3_w) @@ -116,9 +113,9 @@ WRITE16_MEMBER(bigstrkb_state::bsb_videoram3_w) VIDEO_START(bigstrkb) { bigstrkb_state *state = machine.driver_data<bigstrkb_state>(); - state->m_tilemap = tilemap_create(machine, get_bsb_tile_info,TILEMAP_SCAN_COLS, 8, 8,64,32); - state->m_tilemap2 = tilemap_create(machine, get_bsb_tile2_info,bsb_bg_scan, 16, 16,128,64); - state->m_tilemap3 = tilemap_create(machine, get_bsb_tile3_info,bsb_bg_scan, 16, 16,128,64); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile_info),state),TILEMAP_SCAN_COLS, 8, 8,64,32); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile2_info),state),tilemap_mapper_delegate(FUNC(bigstrkb_state::bsb_bg_scan),state), 16, 16,128,64); + state->m_tilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile3_info),state),tilemap_mapper_delegate(FUNC(bigstrkb_state::bsb_bg_scan),state), 16, 16,128,64); state->m_tilemap->set_transparent_pen(15); //state->m_tilemap2->set_transparent_pen(15); diff --git a/src/mame/video/bionicc.c b/src/mame/video/bionicc.c index 9c0f68e26b4..fa7f88ac9e3 100644 --- a/src/mame/video/bionicc.c +++ b/src/mame/video/bionicc.c @@ -33,23 +33,21 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(bionicc_state::get_bg_tile_info) { - bionicc_state *state = machine.driver_data<bionicc_state>(); - int attr = state->m_bgvideoram[2 * tile_index + 1]; - SET_TILE_INFO( + int attr = m_bgvideoram[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 1, - (state->m_bgvideoram[2 * tile_index] & 0xff) + ((attr & 0x07) << 8), + (m_bgvideoram[2 * tile_index] & 0xff) + ((attr & 0x07) << 8), (attr & 0x18) >> 3, TILE_FLIPXY((attr & 0xc0) >> 6)); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(bionicc_state::get_fg_tile_info) { - bionicc_state *state = machine.driver_data<bionicc_state>(); - int attr = state->m_fgvideoram[2 * tile_index + 1]; + int attr = m_fgvideoram[2 * tile_index + 1]; int flags; if ((attr & 0xc0) == 0xc0) @@ -65,21 +63,20 @@ static TILE_GET_INFO( get_fg_tile_info ) flags = TILE_FLIPXY((attr & 0xc0) >> 6); } - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, - (state->m_fgvideoram[2 * tile_index] & 0xff) + ((attr & 0x07) << 8), + (m_fgvideoram[2 * tile_index] & 0xff) + ((attr & 0x07) << 8), (attr & 0x18) >> 3, flags); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(bionicc_state::get_tx_tile_info) { - bionicc_state *state = machine.driver_data<bionicc_state>(); - int attr = state->m_txvideoram[tile_index + 0x400]; - SET_TILE_INFO( + int attr = m_txvideoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, - (state->m_txvideoram[tile_index] & 0xff) + ((attr & 0x00c0) << 2), + (m_txvideoram[tile_index] & 0xff) + ((attr & 0x00c0) << 2), attr & 0x3f, 0); } @@ -96,9 +93,9 @@ VIDEO_START( bionicc ) { bionicc_state *state = machine.driver_data<bionicc_state>(); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bionicc_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bionicc_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bionicc_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_tx_tilemap->set_transparent_pen(3); state->m_fg_tilemap->set_transmask(0, 0xffff, 0x8000); /* split type 0 is completely transparent in front half */ diff --git a/src/mame/video/bking.c b/src/mame/video/bking.c index 01559a8a5ed..b5779dfbffe 100644 --- a/src/mame/video/bking.c +++ b/src/mame/video/bking.c @@ -208,25 +208,24 @@ READ8_MEMBER(bking_state::bking_pos_r) } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(bking_state::get_tile_info) { - bking_state *state = machine.driver_data<bking_state>(); - UINT8 code0 = state->m_playfield_ram[2 * tile_index + 0]; - UINT8 code1 = state->m_playfield_ram[2 * tile_index + 1]; + UINT8 code0 = m_playfield_ram[2 * tile_index + 0]; + UINT8 code1 = m_playfield_ram[2 * tile_index + 1]; int flags = 0; if (code1 & 4) flags |= TILE_FLIPX; if (code1 & 8) flags |= TILE_FLIPY; - SET_TILE_INFO(0, code0 + 256 * code1, state->m_palette_bank, flags); + SET_TILE_INFO_MEMBER(0, code0 + 256 * code1, m_palette_bank, flags); } VIDEO_START( bking ) { bking_state *state = machine.driver_data<bking_state>(); - 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(bking_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap1); machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap2); diff --git a/src/mame/video/blktiger.c b/src/mame/video/blktiger.c index 1bb022a7193..891007b2741 100644 --- a/src/mame/video/blktiger.c +++ b/src/mame/video/blktiger.c @@ -12,21 +12,20 @@ ***************************************************************************/ -static TILEMAP_MAPPER( bg8x4_scan ) +TILEMAP_MAPPER_MEMBER(blktiger_state::bg8x4_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x70) << 4) + ((row & 0x30) << 7); } -static TILEMAP_MAPPER( bg4x8_scan ) +TILEMAP_MAPPER_MEMBER(blktiger_state::bg4x8_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x30) << 4) + ((row & 0x70) << 6); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(blktiger_state::get_bg_tile_info) { - blktiger_state *state = machine.driver_data<blktiger_state>(); /* the tile priority table is a guess compiled by looking at the game. It was not derived from a PROM so it could be wrong. */ static const UINT8 split_table[16] = @@ -36,23 +35,22 @@ static TILE_GET_INFO( get_bg_tile_info ) 0,0,0,0, 0,0,0,0 }; - UINT8 attr = state->m_scroll_ram[2 * tile_index + 1]; + UINT8 attr = m_scroll_ram[2 * tile_index + 1]; int color = (attr & 0x78) >> 3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - state->m_scroll_ram[2 * tile_index] + ((attr & 0x07) << 8), + m_scroll_ram[2 * tile_index] + ((attr & 0x07) << 8), color, (attr & 0x80) ? TILE_FLIPX : 0); tileinfo.group = split_table[color]; } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(blktiger_state::get_tx_tile_info) { - blktiger_state *state = machine.driver_data<blktiger_state>(); - UINT8 attr = state->m_txvideoram[tile_index + 0x400]; - SET_TILE_INFO( + UINT8 attr = m_txvideoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, - state->m_txvideoram[tile_index] + ((attr & 0xe0) << 3), + m_txvideoram[tile_index] + ((attr & 0xe0) << 3), attr & 0x1f, 0); } @@ -75,9 +73,9 @@ VIDEO_START( blktiger ) state->m_scroll_ram = auto_alloc_array(machine, UINT8, BGRAM_BANK_SIZE * BGRAM_BANKS); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap8x4 = tilemap_create(machine, get_bg_tile_info, bg8x4_scan, 16, 16, 128, 64); - state->m_bg_tilemap4x8 = tilemap_create(machine, get_bg_tile_info, bg4x8_scan, 16, 16, 64, 128); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blktiger_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap8x4 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blktiger_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(blktiger_state::bg8x4_scan),state), 16, 16, 128, 64); + state->m_bg_tilemap4x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blktiger_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(blktiger_state::bg4x8_scan),state), 16, 16, 64, 128); state->m_tx_tilemap->set_transparent_pen(3); diff --git a/src/mame/video/blmbycar.c b/src/mame/video/blmbycar.c index f6bda156d7e..40beb5f8caf 100644 --- a/src/mame/video/blmbycar.c +++ b/src/mame/video/blmbycar.c @@ -70,12 +70,11 @@ WRITE16_MEMBER(blmbycar_state::blmbycar_palette_w) #define DIM_NX (0x40) #define DIM_NY (0x20) -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(blmbycar_state::get_tile_info_0) { - blmbycar_state *state = machine.driver_data<blmbycar_state>(); - UINT16 code = state->m_vram_0[tile_index * 2 + 0]; - UINT16 attr = state->m_vram_0[tile_index * 2 + 1]; - SET_TILE_INFO( + UINT16 code = m_vram_0[tile_index * 2 + 0]; + UINT16 attr = m_vram_0[tile_index * 2 + 1]; + SET_TILE_INFO_MEMBER( 0, code, attr & 0x1f, @@ -84,12 +83,11 @@ static TILE_GET_INFO( get_tile_info_0 ) tileinfo.category = (attr >> 5) & 1; } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(blmbycar_state::get_tile_info_1) { - blmbycar_state *state = machine.driver_data<blmbycar_state>(); - UINT16 code = state->m_vram_1[tile_index * 2 + 0]; - UINT16 attr = state->m_vram_1[tile_index * 2 + 1]; - SET_TILE_INFO( + UINT16 code = m_vram_1[tile_index * 2 + 0]; + UINT16 attr = m_vram_1[tile_index * 2 + 1]; + SET_TILE_INFO_MEMBER( 0, code, attr & 0x1f, @@ -124,8 +122,8 @@ VIDEO_START( blmbycar ) { blmbycar_state *state = machine.driver_data<blmbycar_state>(); - state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY ); - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY ); + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blmbycar_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY ); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blmbycar_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY ); state->m_tilemap_0->set_scroll_rows(1); state->m_tilemap_0->set_scroll_cols(1); diff --git a/src/mame/video/blockade.c b/src/mame/video/blockade.c index a78338c1716..eb1f0aa6173 100644 --- a/src/mame/video/blockade.c +++ b/src/mame/video/blockade.c @@ -13,18 +13,17 @@ WRITE8_MEMBER(blockade_state::blockade_videoram_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(blockade_state::get_bg_tile_info) { - blockade_state *state = machine.driver_data<blockade_state>(); - 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); } VIDEO_START( blockade ) { blockade_state *state = machine.driver_data<blockade_state>(); - 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(blockade_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } SCREEN_UPDATE_IND16( blockade ) diff --git a/src/mame/video/bloodbro.c b/src/mame/video/bloodbro.c index 1a70c6b0da1..c8d18dfd22a 100644 --- a/src/mame/video/bloodbro.c +++ b/src/mame/video/bloodbro.c @@ -14,33 +14,30 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(bloodbro_state::get_bg_tile_info) { - bloodbro_state *state = machine.driver_data<bloodbro_state>(); - int code = state->m_bgvideoram[tile_index]; - SET_TILE_INFO( + int code = m_bgvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 1, code & 0xfff, (code >> 12), 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(bloodbro_state::get_fg_tile_info) { - bloodbro_state *state = machine.driver_data<bloodbro_state>(); - int code = state->m_fgvideoram[tile_index]; - SET_TILE_INFO( + int code = m_fgvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 2, (code & 0xfff)+0x1000, (code >> 12), 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(bloodbro_state::get_tx_tile_info) { - bloodbro_state *state = machine.driver_data<bloodbro_state>(); - int code = state->m_txvideoram[tile_index]; - SET_TILE_INFO( + int code = m_txvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, code & 0xfff, code >> 12, @@ -58,9 +55,9 @@ static TILE_GET_INFO( get_tx_tile_info ) VIDEO_START( bloodbro ) { bloodbro_state *state = machine.driver_data<bloodbro_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 16,16,32,16); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bloodbro_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,32,16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bloodbro_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bloodbro_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); state->m_fg_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/blstroid.c b/src/mame/video/blstroid.c index 87b2b1dc1d4..0c323e7a308 100644 --- a/src/mame/video/blstroid.c +++ b/src/mame/video/blstroid.c @@ -17,13 +17,12 @@ * *************************************/ -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(blstroid_state::get_playfield_tile_info) { - blstroid_state *state = machine.driver_data<blstroid_state>(); - UINT16 data = state->m_playfield[tile_index]; + UINT16 data = m_playfield[tile_index]; int code = data & 0x1fff; int color = (data >> 13) & 0x07; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -75,7 +74,7 @@ VIDEO_START( blstroid ) blstroid_state *state = machine.driver_data<blstroid_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_ROWS, 16,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blstroid_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); diff --git a/src/mame/video/blueprnt.c b/src/mame/video/blueprnt.c index 5a509c051cb..dd2bff62054 100644 --- a/src/mame/video/blueprnt.c +++ b/src/mame/video/blueprnt.c @@ -72,23 +72,22 @@ WRITE8_MEMBER(blueprnt_state::blueprnt_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(blueprnt_state::get_bg_tile_info) { - blueprnt_state *state = machine.driver_data<blueprnt_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + 256 * state->m_gfx_bank; + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + 256 * m_gfx_bank; int color = attr & 0x7f; tileinfo.category = (attr & 0x80) ? 1 : 0; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( blueprnt ) { blueprnt_state *state = machine.driver_data<blueprnt_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blueprnt_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, 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/video/bogeyman.c b/src/mame/video/bogeyman.c index 26be053d2b3..0961e89cd5c 100644 --- a/src/mame/video/bogeyman.c +++ b/src/mame/video/bogeyman.c @@ -70,33 +70,31 @@ WRITE8_MEMBER(bogeyman_state::bogeyman_paletteram_w) paletteram_BBGGGRRR_byte_w(space, offset, ~data); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(bogeyman_state::get_bg_tile_info) { - bogeyman_state *state = machine.driver_data<bogeyman_state>(); - int attr = state->m_colorram[tile_index]; - int gfxbank = ((((attr & 0x01) << 8) + state->m_videoram[tile_index]) / 0x80) + 3; - int code = state->m_videoram[tile_index] & 0x7f; + int attr = m_colorram[tile_index]; + int gfxbank = ((((attr & 0x01) << 8) + m_videoram[tile_index]) / 0x80) + 3; + int code = m_videoram[tile_index] & 0x7f; int color = (attr >> 1) & 0x07; - SET_TILE_INFO(gfxbank, code, color, 0); + SET_TILE_INFO_MEMBER(gfxbank, code, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(bogeyman_state::get_fg_tile_info) { - bogeyman_state *state = machine.driver_data<bogeyman_state>(); - int attr = state->m_colorram2[tile_index]; - int tile = state->m_videoram2[tile_index] | ((attr & 0x03) << 8); + int attr = m_colorram2[tile_index]; + int tile = m_videoram2[tile_index] | ((attr & 0x03) << 8); int gfxbank = tile / 0x200; int code = tile & 0x1ff; - SET_TILE_INFO(gfxbank, code, state->m_colbank, 0); + SET_TILE_INFO_MEMBER(gfxbank, code, m_colbank, 0); } VIDEO_START( bogeyman ) { bogeyman_state *state = machine.driver_data<bogeyman_state>(); - 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(bogeyman_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(bogeyman_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/video/bombjack.c b/src/mame/video/bombjack.c index f7d9e277f9f..7e838a19c6d 100644 --- a/src/mame/video/bombjack.c +++ b/src/mame/video/bombjack.c @@ -40,34 +40,32 @@ WRITE8_MEMBER(bombjack_state::bombjack_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(bombjack_state::get_bg_tile_info) { - bombjack_state *state = machine.driver_data<bombjack_state>(); - UINT8 *tilerom = state->memregion("gfx4")->base(); + UINT8 *tilerom = memregion("gfx4")->base(); - int offs = (state->m_background_image & 0x07) * 0x200 + tile_index; - int code = (state->m_background_image & 0x10) ? tilerom[offs] : 0; + int offs = (m_background_image & 0x07) * 0x200 + tile_index; + int code = (m_background_image & 0x10) ? tilerom[offs] : 0; int attr = tilerom[offs + 0x100]; int color = attr & 0x0f; int flags = (attr & 0x80) ? TILE_FLIPY : 0; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(bombjack_state::get_fg_tile_info) { - bombjack_state *state = machine.driver_data<bombjack_state>(); - int code = state->m_videoram[tile_index] + 16 * (state->m_colorram[tile_index] & 0x10); - int color = state->m_colorram[tile_index] & 0x0f; + int code = m_videoram[tile_index] + 16 * (m_colorram[tile_index] & 0x10); + int color = m_colorram[tile_index] & 0x0f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( bombjack ) { bombjack_state *state = machine.driver_data<bombjack_state>(); - 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(bombjack_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(bombjack_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/video/brkthru.c b/src/mame/video/brkthru.c index 7957465e004..a2018877eba 100644 --- a/src/mame/video/brkthru.c +++ b/src/mame/video/brkthru.c @@ -71,20 +71,19 @@ PALETTE_INIT( brkthru ) ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(brkthru_state::get_bg_tile_info) { - brkthru_state *state = machine.driver_data<brkthru_state>(); /* BG RAM format 0 1 ---- -c-- ---- ---- = Color ---- --xx xxxx xxxx = Code */ - int code = (state->m_videoram[tile_index * 2] | ((state->m_videoram[tile_index * 2 + 1]) << 8)) & 0x3ff; + int code = (m_videoram[tile_index * 2] | ((m_videoram[tile_index * 2 + 1]) << 8)) & 0x3ff; int region = 1 + (code >> 7); - int colour = state->m_bgbasecolor + ((state->m_videoram[tile_index * 2 + 1] & 0x04) >> 2); + int colour = m_bgbasecolor + ((m_videoram[tile_index * 2 + 1] & 0x04) >> 2); - SET_TILE_INFO(region, code & 0x7f, colour,0); + SET_TILE_INFO_MEMBER(region, code & 0x7f, colour,0); } WRITE8_MEMBER(brkthru_state::brkthru_bgram_w) @@ -95,11 +94,10 @@ WRITE8_MEMBER(brkthru_state::brkthru_bgram_w) } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(brkthru_state::get_fg_tile_info) { - brkthru_state *state = machine.driver_data<brkthru_state>(); - UINT8 code = state->m_fg_videoram[tile_index]; - SET_TILE_INFO(0, code, 0, 0); + UINT8 code = m_fg_videoram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, 0, 0); } WRITE8_MEMBER(brkthru_state::brkthru_fgram_w) @@ -113,8 +111,8 @@ VIDEO_START( brkthru ) { brkthru_state *state = machine.driver_data<brkthru_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(brkthru_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(brkthru_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 16); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/bsktball.c b/src/mame/video/bsktball.c index e882e783951..f101d1ce481 100644 --- a/src/mame/video/bsktball.c +++ b/src/mame/video/bsktball.c @@ -15,21 +15,20 @@ WRITE8_MEMBER(bsktball_state::bsktball_videoram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(bsktball_state::get_bg_tile_info) { - bsktball_state *state = machine.driver_data<bsktball_state>(); - int attr = state->m_videoram[tile_index]; + int attr = m_videoram[tile_index]; int code = ((attr & 0x0f) << 2) | ((attr & 0x30) >> 4); int color = (attr & 0x40) >> 6; int flags = (attr & 0x80) ? TILE_FLIPX : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( bsktball ) { bsktball_state *state = machine.driver_data<bsktball_state>(); - 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(bsktball_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/video/bwing.c b/src/mame/video/bwing.c index 7d2e0e27d93..8e1cdc29ee5 100644 --- a/src/mame/video/bwing.c +++ b/src/mame/video/bwing.c @@ -170,27 +170,24 @@ WRITE8_MEMBER(bwing_state::bwing_paletteram_w) //**************************************************************************** // Initializations -static TILE_GET_INFO( get_fgtileinfo ) +TILE_GET_INFO_MEMBER(bwing_state::get_fgtileinfo) { - bwing_state *state = machine.driver_data<bwing_state>(); - tileinfo.pen_data = machine.gfx[2]->get_data(state->m_fgdata[tile_index] & (BW_NTILES - 1)); - tileinfo.palette_base = machine.gfx[2]->colorbase() + ((state->m_fgdata[tile_index] >> 7) << 3); + tileinfo.pen_data = machine().gfx[2]->get_data(m_fgdata[tile_index] & (BW_NTILES - 1)); + tileinfo.palette_base = machine().gfx[2]->colorbase() + ((m_fgdata[tile_index] >> 7) << 3); } -static TILE_GET_INFO( get_bgtileinfo ) +TILE_GET_INFO_MEMBER(bwing_state::get_bgtileinfo) { - bwing_state *state = machine.driver_data<bwing_state>(); - tileinfo.pen_data = machine.gfx[3]->get_data(state->m_bgdata[tile_index] & (BW_NTILES - 1)); - tileinfo.palette_base = machine.gfx[3]->colorbase() + ((state->m_bgdata[tile_index] >> 7) << 3); + tileinfo.pen_data = machine().gfx[3]->get_data(m_bgdata[tile_index] & (BW_NTILES - 1)); + tileinfo.palette_base = machine().gfx[3]->colorbase() + ((m_bgdata[tile_index] >> 7) << 3); } -static TILE_GET_INFO( get_charinfo ) +TILE_GET_INFO_MEMBER(bwing_state::get_charinfo) { - bwing_state *state = machine.driver_data<bwing_state>(); - SET_TILE_INFO(0, state->m_videoram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(0, m_videoram[tile_index], 0, 0); } -static TILEMAP_MAPPER( bwing_scan_cols ) +TILEMAP_MAPPER_MEMBER(bwing_state::bwing_scan_cols) { return ((col << 6) + row); } @@ -202,9 +199,9 @@ VIDEO_START( bwing ) // UINT32 *dwptr; int i; - state->m_charmap = tilemap_create(machine, get_charinfo, TILEMAP_SCAN_COLS, 8, 8, 32, 32); - state->m_fgmap = tilemap_create(machine, get_fgtileinfo, bwing_scan_cols, 16, 16, 64, 64); - state->m_bgmap = tilemap_create(machine, get_bgtileinfo, bwing_scan_cols, 16, 16, 64, 64); + state->m_charmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bwing_state::get_charinfo),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bwing_state::get_fgtileinfo),state), tilemap_mapper_delegate(FUNC(bwing_state::bwing_scan_cols),state), 16, 16, 64, 64); + state->m_bgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bwing_state::get_bgtileinfo),state), tilemap_mapper_delegate(FUNC(bwing_state::bwing_scan_cols),state), 16, 16, 64, 64); state->m_charmap->set_transparent_pen(0); state->m_fgmap->set_transparent_pen(0); diff --git a/src/mame/video/cabal.c b/src/mame/video/cabal.c index e97cfc7f491..008dc78bc14 100644 --- a/src/mame/video/cabal.c +++ b/src/mame/video/cabal.c @@ -9,32 +9,30 @@ #include "emu.h" #include "includes/cabal.h" -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(cabal_state::get_back_tile_info) { - cabal_state *state = machine.driver_data<cabal_state>(); - int tile = state->m_videoram[tile_index]; + int tile = m_videoram[tile_index]; int color = (tile>>12)&0xf; tile &= 0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, color, 0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(cabal_state::get_text_tile_info) { - cabal_state *state = machine.driver_data<cabal_state>(); - int tile = state->m_colorram[tile_index]; + int tile = m_colorram[tile_index]; int color = (tile>>10); tile &= 0x3ff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -46,8 +44,8 @@ VIDEO_START( cabal ) { cabal_state *state = machine.driver_data<cabal_state>(); - state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,16,16); - state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,32,32); + state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabal_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,16,16); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabal_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32,32); state->m_text_layer->set_transparent_pen(3); state->m_background_layer->set_transparent_pen(15); diff --git a/src/mame/video/calomega.c b/src/mame/video/calomega.c index e3531e0f79c..654d61ff331 100644 --- a/src/mame/video/calomega.c +++ b/src/mame/video/calomega.c @@ -29,17 +29,16 @@ WRITE8_MEMBER(calomega_state::calomega_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(calomega_state::get_bg_tile_info) { - calomega_state *state = machine.driver_data<calomega_state>(); /* - 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 */ @@ -52,13 +51,13 @@ static TILE_GET_INFO( get_bg_tile_info ) if (attr == 0x32) /* Is the palette wrong? */ color = 0x39; /* 0x39 is the best match */ - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } VIDEO_START( calomega ) { calomega_state *state = machine.driver_data<calomega_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 31); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(calomega_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 31); } SCREEN_UPDATE_IND16( calomega ) diff --git a/src/mame/video/canyon.c b/src/mame/video/canyon.c index 59449048467..1f0d43597b3 100644 --- a/src/mame/video/canyon.c +++ b/src/mame/video/canyon.c @@ -15,12 +15,11 @@ WRITE8_MEMBER(canyon_state::canyon_videoram_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(canyon_state::get_bg_tile_info) { - canyon_state *state = machine.driver_data<canyon_state>(); - UINT8 code = state->m_videoram[tile_index]; + UINT8 code = m_videoram[tile_index]; - SET_TILE_INFO(0, code & 0x3f, code >> 7, 0); + SET_TILE_INFO_MEMBER(0, code & 0x3f, code >> 7, 0); } @@ -28,7 +27,7 @@ VIDEO_START( canyon ) { canyon_state *state = machine.driver_data<canyon_state>(); - 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(canyon_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/carjmbre.c b/src/mame/video/carjmbre.c index 50d31528ea0..af377fdb521 100644 --- a/src/mame/video/carjmbre.c +++ b/src/mame/video/carjmbre.c @@ -83,14 +83,13 @@ WRITE8_MEMBER(carjmbre_state::carjmbre_videoram_w) -static TILE_GET_INFO( get_carjmbre_tile_info ) +TILE_GET_INFO_MEMBER(carjmbre_state::get_carjmbre_tile_info) { - carjmbre_state *state = machine.driver_data<carjmbre_state>(); - UINT32 tile_number = state->m_videoram[tile_index] & 0xff; - UINT8 attr = state->m_videoram[tile_index + 0x400]; + UINT32 tile_number = m_videoram[tile_index] & 0xff; + UINT8 attr = m_videoram[tile_index + 0x400]; tile_number += (attr & 0x80) << 1; /* bank */ - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, attr & 0xf, @@ -101,7 +100,7 @@ VIDEO_START( carjmbre ) { carjmbre_state *state = machine.driver_data<carjmbre_state>(); - state->m_cj_tilemap = tilemap_create(machine, get_carjmbre_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_cj_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(carjmbre_state::get_carjmbre_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->save_item(NAME(state->m_flipscreen)); state->save_item(NAME(state->m_bgcolor)); } diff --git a/src/mame/video/cave.c b/src/mame/video/cave.c index 06efdcb74fc..7c46b731331 100644 --- a/src/mame/video/cave.c +++ b/src/mame/video/cave.c @@ -269,16 +269,15 @@ void sailormn_tilebank_w( running_machine &machine, int bank ) } } -static TILE_GET_INFO( sailormn_get_tile_info_2 ) +TILE_GET_INFO_MEMBER(cave_state::sailormn_get_tile_info_2) { - cave_state *state = machine.driver_data<cave_state>(); UINT32 code, color, pri; - if (state->m_tiledim[2]) + if (m_tiledim[2]) { UINT32 tile; tile = (tile_index % (512 / 8)) / 2 + ((tile_index / (512 / 8)) / 2) * (512 / 16); - code = (state->m_vram[2][tile * 2 + 0x0000 / 2] << 16) + state->m_vram[2][tile * 2 + 0x0002 / 2]; + code = (m_vram[2][tile * 2 + 0x0000 / 2] << 16) + m_vram[2][tile * 2 + 0x0002 / 2]; color = (code & 0x3f000000) >> (32 - 8); pri = (code & 0xc0000000) >> (32 - 2); @@ -289,16 +288,16 @@ static TILE_GET_INFO( sailormn_get_tile_info_2 ) } else { - code = (state->m_vram[2][tile_index * 2 + 0x4000 / 2] << 16) + state->m_vram[2][tile_index * 2 + 0x4002 / 2]; + code = (m_vram[2][tile_index * 2 + 0x4000 / 2] << 16) + m_vram[2][tile_index * 2 + 0x4002 / 2]; color = (code & 0x3f000000) >> (32 - 8); pri = (code & 0xc0000000) >> (32 - 2); code = (code & 0x00ffffff); - if ((code < 0x10000) && (state->m_sailormn_tilebank)) + if ((code < 0x10000) && (m_sailormn_tilebank)) code += 0x40000; } - SET_TILE_INFO( 2, code, color, 0 ); + SET_TILE_INFO_MEMBER( 2, code, color, 0 ); tileinfo.category = pri; } @@ -347,10 +346,10 @@ INLINE void vram_8x8_w( address_space *space, ATTR_UNUSED offs_t offset, ATTR_UN } -static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info(machine, tileinfo, tile_index, 0); } -static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info(machine, tileinfo, tile_index, 1); } -static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info(machine, tileinfo, tile_index, 2); } -static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info(machine, tileinfo, tile_index, 3); } +TILE_GET_INFO_MEMBER(cave_state::get_tile_info_0){ get_tile_info(machine(), tileinfo, tile_index, 0); } +TILE_GET_INFO_MEMBER(cave_state::get_tile_info_1){ get_tile_info(machine(), tileinfo, tile_index, 1); } +TILE_GET_INFO_MEMBER(cave_state::get_tile_info_2){ get_tile_info(machine(), tileinfo, tile_index, 2); } +TILE_GET_INFO_MEMBER(cave_state::get_tile_info_3){ get_tile_info(machine(), tileinfo, tile_index, 3); } WRITE16_MEMBER(cave_state::cave_vram_0_w){ vram_w(&space, offset, data, mem_mask, 0); } WRITE16_MEMBER(cave_state::cave_vram_1_w){ vram_w(&space, offset, data, mem_mask, 1); } @@ -398,7 +397,7 @@ static void cave_vh_start( running_machine &machine, int num ) switch (num) { case 4: - state->m_tilemap[3] = tilemap_create(machine, get_tile_info_3, TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); + state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); state->m_tilemap[3]->set_transparent_pen(0); state->m_tilemap[3]->set_scroll_rows(1); state->m_tilemap[3]->set_scroll_cols(1); @@ -406,7 +405,7 @@ static void cave_vh_start( running_machine &machine, int num ) state->save_item(NAME(state->m_old_tiledim[3])); case 3: - state->m_tilemap[2] = tilemap_create(machine, get_tile_info_2, TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); state->m_tilemap[2]->set_transparent_pen(0); state->m_tilemap[2]->set_scroll_rows(1); state->m_tilemap[2]->set_scroll_cols(1); @@ -414,7 +413,7 @@ static void cave_vh_start( running_machine &machine, int num ) state->save_item(NAME(state->m_old_tiledim[2])); case 2: - state->m_tilemap[1] = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); state->m_tilemap[1]->set_transparent_pen(0); state->m_tilemap[1]->set_scroll_rows(1); state->m_tilemap[1]->set_scroll_cols(1); @@ -422,7 +421,7 @@ static void cave_vh_start( running_machine &machine, int num ) state->save_item(NAME(state->m_old_tiledim[1])); case 1: - state->m_tilemap[0] = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); + state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); state->m_tilemap[0]->set_transparent_pen(0); state->m_tilemap[0]->set_scroll_rows(1); state->m_tilemap[0]->set_scroll_cols(1); @@ -472,7 +471,7 @@ VIDEO_START( sailormn_3_layers ) cave_vh_start(machine, 2); /* Layer 2 (8x8) needs to be handled differently */ - state->m_tilemap[2] = tilemap_create(machine, sailormn_get_tile_info_2, TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8 ); + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::sailormn_get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8 ); state->m_tilemap[2]->set_transparent_pen(0); state->m_tilemap[2]->set_scroll_rows(1); diff --git a/src/mame/video/cbasebal.c b/src/mame/video/cbasebal.c index fc18a2b972e..a1dc46cec65 100644 --- a/src/mame/video/cbasebal.c +++ b/src/mame/video/cbasebal.c @@ -8,24 +8,22 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(cbasebal_state::get_bg_tile_info) { - cbasebal_state *state = machine.driver_data<cbasebal_state>(); - UINT8 attr = state->m_scrollram[2 * tile_index + 1]; - SET_TILE_INFO( + UINT8 attr = m_scrollram[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 1, - state->m_scrollram[2 * tile_index] + ((attr & 0x07) << 8) + 0x800 * state->m_tilebank, + m_scrollram[2 * tile_index] + ((attr & 0x07) << 8) + 0x800 * m_tilebank, (attr & 0xf0) >> 4, (attr & 0x08) ? TILE_FLIPX : 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(cbasebal_state::get_fg_tile_info) { - cbasebal_state *state = machine.driver_data<cbasebal_state>(); - UINT8 attr = state->m_textram[tile_index + 0x800]; - SET_TILE_INFO( + UINT8 attr = m_textram[tile_index + 0x800]; + SET_TILE_INFO_MEMBER( 0, - state->m_textram[tile_index] + ((attr & 0xf0) << 4), + m_textram[tile_index] + ((attr & 0xf0) << 4), attr & 0x07, (attr & 0x08) ? TILE_FLIPX : 0); } @@ -45,8 +43,8 @@ VIDEO_START( cbasebal ) state->m_textram = auto_alloc_array(machine, UINT8, 0x1000); state->m_scrollram = auto_alloc_array(machine, UINT8, 0x1000); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - 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(cbasebal_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cbasebal_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(3); diff --git a/src/mame/video/cclimber.c b/src/mame/video/cclimber.c index b6ad7f8f047..999009a993d 100644 --- a/src/mame/video/cclimber.c +++ b/src/mame/video/cclimber.c @@ -344,61 +344,57 @@ WRITE8_MEMBER(cclimber_state::cannonb_flip_screen_w) } -static TILE_GET_INFO( cclimber_get_pf_tile_info ) +TILE_GET_INFO_MEMBER(cclimber_state::cclimber_get_pf_tile_info) { - cclimber_state *state = machine.driver_data<cclimber_state>(); int code, color; - int flags = TILE_FLIPYX(state->m_colorram[tile_index] >> 6); + int flags = TILE_FLIPYX(m_colorram[tile_index] >> 6); /* vertical flipping flips two adjacent characters */ if (flags & 0x02) tile_index = tile_index ^ 0x20; - code = ((state->m_colorram[tile_index] & 0x10) << 5) | - ((state->m_colorram[tile_index] & 0x20) << 3) | - state->m_videoram[tile_index]; + code = ((m_colorram[tile_index] & 0x10) << 5) | + ((m_colorram[tile_index] & 0x20) << 3) | + m_videoram[tile_index]; - color = state->m_colorram[tile_index] & 0x0f; + color = m_colorram[tile_index] & 0x0f; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } -static TILE_GET_INFO( swimmer_get_pf_tile_info ) +TILE_GET_INFO_MEMBER(cclimber_state::swimmer_get_pf_tile_info) { - cclimber_state *state = machine.driver_data<cclimber_state>(); int code, color; - int flags = TILE_FLIPYX(state->m_colorram[tile_index] >> 6); + int flags = TILE_FLIPYX(m_colorram[tile_index] >> 6); /* vertical flipping flips two adjacent characters */ if (flags & 0x02) tile_index = tile_index ^ 0x20; - code = ((state->m_colorram[tile_index] & 0x10) << 4) | state->m_videoram[tile_index]; - color = ((*state->m_swimmer_palettebank & 0x01) << 4) | (state->m_colorram[tile_index] & 0x0f); + code = ((m_colorram[tile_index] & 0x10) << 4) | m_videoram[tile_index]; + color = ((*m_swimmer_palettebank & 0x01) << 4) | (m_colorram[tile_index] & 0x0f); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } -static TILE_GET_INFO( toprollr_get_pf_tile_info ) +TILE_GET_INFO_MEMBER(cclimber_state::toprollr_get_pf_tile_info) { - cclimber_state *state = machine.driver_data<cclimber_state>(); int code, attr, color; - attr = tile_index & 0x10 ? state->m_colorram[tile_index & ~0x20] : state->m_colorram[tile_index]; - code = ((attr & 0x30) << 4) | state->m_videoram[tile_index]; + attr = tile_index & 0x10 ? m_colorram[tile_index & ~0x20] : m_colorram[tile_index]; + code = ((attr & 0x30) << 4) | m_videoram[tile_index]; color = attr & 0x0f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( cclimber_get_bs_tile_info ) +TILE_GET_INFO_MEMBER(cclimber_state::cclimber_get_bs_tile_info) { - cclimber_state *state = machine.driver_data<cclimber_state>(); int code, color; /* only the lower right is visible */ @@ -407,16 +403,15 @@ static TILE_GET_INFO( cclimber_get_bs_tile_info ) /* the address doesn't use A4 of the coordinates, giving a 16x16 map */ tile_index = ((tile_index & 0x1e0) >> 1) | (tile_index & 0x0f); - code = ((state->m_bigsprite_control[1] & 0x08) << 5) | state->m_bigsprite_videoram[tile_index]; - color = state->m_bigsprite_control[1] & 0x07; + code = ((m_bigsprite_control[1] & 0x08) << 5) | m_bigsprite_videoram[tile_index]; + color = m_bigsprite_control[1] & 0x07; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( toprollr_get_bs_tile_info ) +TILE_GET_INFO_MEMBER(cclimber_state::toprollr_get_bs_tile_info) { - cclimber_state *state = machine.driver_data<cclimber_state>(); int code, color; /* only the lower right is visible */ @@ -425,31 +420,30 @@ static TILE_GET_INFO( toprollr_get_bs_tile_info ) /* the address doesn't use A4 of the coordinates, giving a 16x16 map */ tile_index = ((tile_index & 0x1e0) >> 1) | (tile_index & 0x0f); - code = ((state->m_bigsprite_control[1] & 0x18) << 5) | state->m_bigsprite_videoram[tile_index]; - color = state->m_bigsprite_control[1] & 0x07; + code = ((m_bigsprite_control[1] & 0x18) << 5) | m_bigsprite_videoram[tile_index]; + color = m_bigsprite_control[1] & 0x07; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( toproller_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(cclimber_state::toproller_get_bg_tile_info) { - cclimber_state *state = machine.driver_data<cclimber_state>(); - int code = ((state->m_toprollr_bg_coloram[tile_index] & 0x40) << 2) | state->m_toprollr_bg_videoram[tile_index]; - int color = state->m_toprollr_bg_coloram[tile_index] & 0x0f; + int code = ((m_toprollr_bg_coloram[tile_index] & 0x40) << 2) | m_toprollr_bg_videoram[tile_index]; + int color = m_toprollr_bg_coloram[tile_index] & 0x0f; - SET_TILE_INFO(3, code, color, TILE_FLIPX); + SET_TILE_INFO_MEMBER(3, code, color, TILE_FLIPX); } VIDEO_START( cclimber ) { cclimber_state *state = machine.driver_data<cclimber_state>(); - state->m_pf_tilemap = tilemap_create(machine, cclimber_get_pf_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_pf_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_pf_tilemap->set_transparent_pen(0); state->m_pf_tilemap->set_scroll_cols(32); - state->m_bs_tilemap = tilemap_create(machine, cclimber_get_bs_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bs_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_bs_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bs_tilemap->set_scroll_cols(1); state->m_bs_tilemap->set_scroll_rows(1); state->m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */ @@ -460,11 +454,11 @@ VIDEO_START( cclimber ) VIDEO_START( swimmer ) { cclimber_state *state = machine.driver_data<cclimber_state>(); - state->m_pf_tilemap = tilemap_create(machine, swimmer_get_pf_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_pf_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::swimmer_get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_pf_tilemap->set_transparent_pen(0); state->m_pf_tilemap->set_scroll_cols(32); - state->m_bs_tilemap = tilemap_create(machine, cclimber_get_bs_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bs_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_bs_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bs_tilemap->set_scroll_cols(1); state->m_bs_tilemap->set_scroll_rows(1); state->m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */ @@ -475,13 +469,13 @@ VIDEO_START( swimmer ) VIDEO_START( toprollr ) { cclimber_state *state = machine.driver_data<cclimber_state>(); - state->m_pf_tilemap = tilemap_create(machine, toprollr_get_pf_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_pf_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::toprollr_get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_pf_tilemap->set_transparent_pen(0); - state->m_toproller_bg_tilemap = tilemap_create(machine, toproller_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_toproller_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::toproller_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_toproller_bg_tilemap->set_scroll_rows(1); - state->m_bs_tilemap = tilemap_create(machine, toprollr_get_bs_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bs_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::toprollr_get_bs_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bs_tilemap->set_scroll_cols(1); state->m_bs_tilemap->set_scroll_rows(1); state->m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */ diff --git a/src/mame/video/centiped.c b/src/mame/video/centiped.c index 6a051c7c2e2..ba1502268b2 100644 --- a/src/mame/video/centiped.c +++ b/src/mame/video/centiped.c @@ -14,49 +14,45 @@ * *************************************/ -static TILE_GET_INFO( centiped_get_tile_info ) +TILE_GET_INFO_MEMBER(centiped_state::centiped_get_tile_info) { - centiped_state *state = machine.driver_data<centiped_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index]; - SET_TILE_INFO(0, (data & 0x3f) + 0x40, 0, TILE_FLIPYX(data >> 6)); + SET_TILE_INFO_MEMBER(0, (data & 0x3f) + 0x40, 0, TILE_FLIPYX(data >> 6)); } -static TILE_GET_INFO( warlords_get_tile_info ) +TILE_GET_INFO_MEMBER(centiped_state::warlords_get_tile_info) { - centiped_state *state = machine.driver_data<centiped_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index]; - int color = ((tile_index & 0x10) >> 4) | ((tile_index & 0x200) >> 8) | (state->m_flipscreen >> 5); + int color = ((tile_index & 0x10) >> 4) | ((tile_index & 0x200) >> 8) | (m_flipscreen >> 5); - SET_TILE_INFO(0, data & 0x3f, color, TILE_FLIPYX(data >> 6)); + SET_TILE_INFO_MEMBER(0, data & 0x3f, color, TILE_FLIPYX(data >> 6)); } -static TILE_GET_INFO( milliped_get_tile_info ) +TILE_GET_INFO_MEMBER(centiped_state::milliped_get_tile_info) { - centiped_state *state = machine.driver_data<centiped_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index]; - int bank = ((data >> 6) & 1) | (state->m_gfx_bank << 1); + int bank = ((data >> 6) & 1) | (m_gfx_bank << 1); int color = (data >> 6) & 3; /* Flip both x and y if flipscreen is non-zero */ - int flip_tiles = (state->m_flipscreen) ? 0x03 : 0; + int flip_tiles = (m_flipscreen) ? 0x03 : 0; - SET_TILE_INFO(0, (data & 0x3f) + 0x40 + (bank * 0x80), color, TILE_FLIPYX(flip_tiles)); + SET_TILE_INFO_MEMBER(0, (data & 0x3f) + 0x40 + (bank * 0x80), color, TILE_FLIPYX(flip_tiles)); } -static TILE_GET_INFO( bullsdrt_get_tile_info ) +TILE_GET_INFO_MEMBER(centiped_state::bullsdrt_get_tile_info) { - centiped_state *state = machine.driver_data<centiped_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index]; - int bank = state->m_bullsdrt_tiles_bankram[tile_index & 0x1f] & 0x0f; + int bank = m_bullsdrt_tiles_bankram[tile_index & 0x1f] & 0x0f; - SET_TILE_INFO(0, (data & 0x3f) + 0x40 * bank, 0, TILE_FLIPYX(data >> 6)); + SET_TILE_INFO_MEMBER(0, (data & 0x3f) + 0x40 * bank, 0, TILE_FLIPYX(data >> 6)); } @@ -103,7 +99,7 @@ VIDEO_START( centiped ) init_penmask(machine); centiped_state *state = machine.driver_data<centiped_state>(); - state->m_bg_tilemap = tilemap_create(machine, centiped_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(centiped_state::centiped_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } @@ -112,7 +108,7 @@ VIDEO_START( warlords ) init_common(machine); centiped_state *state = machine.driver_data<centiped_state>(); - state->m_bg_tilemap = tilemap_create(machine, warlords_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(centiped_state::warlords_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } @@ -122,7 +118,7 @@ VIDEO_START( milliped ) init_penmask(machine); centiped_state *state = machine.driver_data<centiped_state>(); - state->m_bg_tilemap = tilemap_create(machine, milliped_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(centiped_state::milliped_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } @@ -132,7 +128,7 @@ VIDEO_START( bullsdrt ) init_penmask(machine); centiped_state *state = machine.driver_data<centiped_state>(); - state->m_bg_tilemap = tilemap_create(machine, bullsdrt_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(centiped_state::bullsdrt_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/chaknpop.c b/src/mame/video/chaknpop.c index 5feb787145b..2a1857e964e 100644 --- a/src/mame/video/chaknpop.c +++ b/src/mame/video/chaknpop.c @@ -128,22 +128,21 @@ WRITE8_MEMBER(chaknpop_state::chaknpop_attrram_w) * I'm not sure how to handle attributes about color */ -static TILE_GET_INFO( chaknpop_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(chaknpop_state::chaknpop_get_tx_tile_info) { - chaknpop_state *state = machine.driver_data<chaknpop_state>(); - int tile = state->m_tx_ram[tile_index]; - int tile_h_bank = (state->m_gfxmode & GFX_TX_BANK2) << 2; /* 0x00-0xff -> 0x200-0x2ff */ - int color = state->m_attr_ram[TX_COLOR2]; + int tile = m_tx_ram[tile_index]; + int tile_h_bank = (m_gfxmode & GFX_TX_BANK2) << 2; /* 0x00-0xff -> 0x200-0x2ff */ + int color = m_attr_ram[TX_COLOR2]; if (tile == 0x74) - color = state->m_attr_ram[TX_COLOR1]; + color = m_attr_ram[TX_COLOR1]; - if (state->m_gfxmode & GFX_TX_BANK1 && tile >= 0xc0) + if (m_gfxmode & GFX_TX_BANK1 && tile >= 0xc0) tile += 0xc0; /* 0xc0-0xff -> 0x180-0x1bf */ tile |= tile_h_bank; - SET_TILE_INFO(1, tile, color, 0); + SET_TILE_INFO_MEMBER(1, tile, color, 0); } @@ -157,7 +156,7 @@ VIDEO_START( chaknpop ) UINT8 *RAM = state->memregion("maincpu")->base(); /* info offset type w h col row */ - state->m_tx_tilemap = tilemap_create(machine, chaknpop_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chaknpop_state::chaknpop_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_vram1 = &RAM[0x10000]; state->m_vram2 = &RAM[0x12000]; diff --git a/src/mame/video/champbas.c b/src/mame/video/champbas.c index 402b4e2190d..7706299aa19 100644 --- a/src/mame/video/champbas.c +++ b/src/mame/video/champbas.c @@ -129,22 +129,20 @@ PALETTE_INIT( exctsccr ) -static TILE_GET_INFO( champbas_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(champbas_state::champbas_get_bg_tile_info) { - champbas_state *state = machine.driver_data<champbas_state>(); - int code = state->m_bg_videoram[tile_index] | (state->m_gfx_bank << 8); - int color = (state->m_bg_videoram[tile_index + 0x400] & 0x1f) | 0x20; + int code = m_bg_videoram[tile_index] | (m_gfx_bank << 8); + int color = (m_bg_videoram[tile_index + 0x400] & 0x1f) | 0x20; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( exctsccr_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(champbas_state::exctsccr_get_bg_tile_info) { - champbas_state *state = machine.driver_data<champbas_state>(); - int code = state->m_bg_videoram[tile_index] | (state->m_gfx_bank << 8); - int color = state->m_bg_videoram[tile_index + 0x400] & 0x0f; + int code = m_bg_videoram[tile_index] | (m_gfx_bank << 8); + int color = m_bg_videoram[tile_index + 0x400] & 0x0f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -152,13 +150,13 @@ static TILE_GET_INFO( exctsccr_get_bg_tile_info ) VIDEO_START( champbas ) { champbas_state *state = machine.driver_data<champbas_state>(); - state->m_bg_tilemap = tilemap_create(machine, champbas_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(champbas_state::champbas_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } VIDEO_START( exctsccr ) { champbas_state *state = machine.driver_data<champbas_state>(); - state->m_bg_tilemap = tilemap_create(machine, exctsccr_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(champbas_state::exctsccr_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/cheekyms.c b/src/mame/video/cheekyms.c index 7a701419705..05379e3430c 100644 --- a/src/mame/video/cheekyms.c +++ b/src/mame/video/cheekyms.c @@ -63,15 +63,14 @@ WRITE8_MEMBER(cheekyms_state::cheekyms_port_80_w) -static TILE_GET_INFO( cheekyms_get_tile_info ) +TILE_GET_INFO_MEMBER(cheekyms_state::cheekyms_get_tile_info) { - cheekyms_state *state = machine.driver_data<cheekyms_state>(); int color; int x = tile_index & 0x1f; int y = tile_index >> 5; - int code = state->m_videoram[tile_index]; - int palette = (*state->m_port_80 >> 2) & 0x10; + int code = m_videoram[tile_index]; + int palette = (*m_port_80 >> 2) & 0x10; if (x >= 0x1e) { @@ -90,7 +89,7 @@ static TILE_GET_INFO( cheekyms_get_tile_info ) color = palette | (x >> 1); } - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( cheekyms ) @@ -102,7 +101,7 @@ VIDEO_START( cheekyms ) height = machine.primary_screen->height(); state->m_bitmap_buffer = auto_bitmap_ind16_alloc(machine, width, height); - state->m_cm_tilemap = tilemap_create(machine, cheekyms_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_cm_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cheekyms_state::cheekyms_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_cm_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/circus.c b/src/mame/video/circus.c index e1519681d73..40b72ab9625 100644 --- a/src/mame/video/circus.c +++ b/src/mame/video/circus.c @@ -27,18 +27,17 @@ WRITE8_MEMBER(circus_state::circus_clown_y_w) m_clown_y = 240 - data; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(circus_state::get_bg_tile_info) { - circus_state *state = machine.driver_data<circus_state>(); - 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); } VIDEO_START( circus ) { circus_state *state = machine.driver_data<circus_state>(); - 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(circus_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static void draw_line( bitmap_ind16 &bitmap, const rectangle &cliprect, int x1, int y1, int x2, int y2, int dotted ) diff --git a/src/mame/video/circusc.c b/src/mame/video/circusc.c index ebf005d185f..c4cecd9bae2 100644 --- a/src/mame/video/circusc.c +++ b/src/mame/video/circusc.c @@ -99,14 +99,13 @@ PALETTE_INIT( circusc ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(circusc_state::get_tile_info) { - circusc_state *state = machine.driver_data<circusc_state>(); - UINT8 attr = state->m_colorram[tile_index]; + UINT8 attr = m_colorram[tile_index]; tileinfo.category = (attr & 0x10) >> 4; - SET_TILE_INFO(0, - state->m_videoram[tile_index] + ((attr & 0x20) << 3), + SET_TILE_INFO_MEMBER(0, + m_videoram[tile_index] + ((attr & 0x20) << 3), attr & 0x0f, TILE_FLIPYX((attr & 0xc0) >> 6)); } @@ -122,7 +121,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( circusc ) { circusc_state *state = machine.driver_data<circusc_state>(); - 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(circusc_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); } diff --git a/src/mame/video/cischeat.c b/src/mame/video/cischeat.c index db997efe787..4d67260697d 100644 --- a/src/mame/video/cischeat.c +++ b/src/mame/video/cischeat.c @@ -153,34 +153,32 @@ WRITE16_MEMBER(cischeat_state::cischeat_scrollram_0_w){ scrollram_w(&space, offs WRITE16_MEMBER(cischeat_state::cischeat_scrollram_1_w){ scrollram_w(&space, offset, data, mem_mask, 1); } WRITE16_MEMBER(cischeat_state::cischeat_scrollram_2_w){ scrollram_w(&space, offset, data, mem_mask, 2); } -static TILEMAP_MAPPER( cischeat_scan_8x8 ) +TILEMAP_MAPPER_MEMBER(cischeat_state::cischeat_scan_8x8) { return (col * TILES_PER_PAGE_Y) + (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE * (num_cols / TILES_PER_PAGE_X) + (row % TILES_PER_PAGE_Y); } -static TILEMAP_MAPPER( cischeat_scan_16x16 ) +TILEMAP_MAPPER_MEMBER(cischeat_state::cischeat_scan_16x16) { return ( ((col / 2) * (TILES_PER_PAGE_Y / 2)) + ((row / 2) / (TILES_PER_PAGE_Y / 2)) * (TILES_PER_PAGE / 4) * (num_cols / TILES_PER_PAGE_X) + ((row / 2) % (TILES_PER_PAGE_Y / 2)) )*4 + (row&1) + (col&1)*2; } -static TILE_GET_INFO( cischeat_get_scroll_tile_info_8x8 ) +TILE_GET_INFO_MEMBER(cischeat_state::cischeat_get_scroll_tile_info_8x8) { - cischeat_state *state = machine.driver_data<cischeat_state>(); int tmap = (FPTR)param; - UINT16 code = state->m_scrollram[tmap][tile_index]; - SET_TILE_INFO(tmap, (code & 0xfff), code >> (16 - state->m_bits_per_color_code), 0); + UINT16 code = m_scrollram[tmap][tile_index]; + SET_TILE_INFO_MEMBER(tmap, (code & 0xfff), code >> (16 - m_bits_per_color_code), 0); } -static TILE_GET_INFO( cischeat_get_scroll_tile_info_16x16 ) +TILE_GET_INFO_MEMBER(cischeat_state::cischeat_get_scroll_tile_info_16x16) { - cischeat_state *state = machine.driver_data<cischeat_state>(); int tmap = (FPTR)param; - UINT16 code = state->m_scrollram[tmap][tile_index/4]; - SET_TILE_INFO(tmap, (code & 0xfff) * 4 + (tile_index & 3), code >> (16 - state->m_bits_per_color_code), 0); + UINT16 code = m_scrollram[tmap][tile_index/4]; + SET_TILE_INFO_MEMBER(tmap, (code & 0xfff) * 4 + (tile_index & 3), code >> (16 - m_bits_per_color_code), 0); } static void create_tilemaps(running_machine &machine) @@ -191,23 +189,23 @@ static void create_tilemaps(running_machine &machine) for (layer = 0; layer < 3; layer++) { /* 16x16 tilemaps */ - state->m_tilemap[layer][0][0] = tilemap_create(machine, cischeat_get_scroll_tile_info_16x16, cischeat_scan_16x16, + state->m_tilemap[layer][0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_16x16),state), 8,8, TILES_PER_PAGE_X * 16, TILES_PER_PAGE_Y * 2); - state->m_tilemap[layer][0][1] = tilemap_create(machine, cischeat_get_scroll_tile_info_16x16, cischeat_scan_16x16, + state->m_tilemap[layer][0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_16x16),state), 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 4); - state->m_tilemap[layer][0][2] = tilemap_create(machine, cischeat_get_scroll_tile_info_16x16, cischeat_scan_16x16, + state->m_tilemap[layer][0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_16x16),state), 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 8); - state->m_tilemap[layer][0][3] = tilemap_create(machine, cischeat_get_scroll_tile_info_16x16, cischeat_scan_16x16, + state->m_tilemap[layer][0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_16x16),state), 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 16); /* 8x8 tilemaps */ - state->m_tilemap[layer][1][0] = tilemap_create(machine, cischeat_get_scroll_tile_info_8x8, cischeat_scan_8x8, + state->m_tilemap[layer][1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_8x8),state), 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 1); - state->m_tilemap[layer][1][1] = tilemap_create(machine, cischeat_get_scroll_tile_info_8x8, cischeat_scan_8x8, + state->m_tilemap[layer][1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_8x8),state), 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2); - state->m_tilemap[layer][1][2] = tilemap_create(machine, cischeat_get_scroll_tile_info_8x8, cischeat_scan_8x8, + state->m_tilemap[layer][1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_8x8),state), 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2); - state->m_tilemap[layer][1][3] = tilemap_create(machine, cischeat_get_scroll_tile_info_8x8, cischeat_scan_8x8, + state->m_tilemap[layer][1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_8x8),state), 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 4); /* set user data and transparency */ diff --git a/src/mame/video/citycon.c b/src/mame/video/citycon.c index e6ae3fb87fd..a4ad20cf81e 100644 --- a/src/mame/video/citycon.c +++ b/src/mame/video/citycon.c @@ -16,31 +16,29 @@ ***************************************************************************/ -static TILEMAP_MAPPER( citycon_scan ) +TILEMAP_MAPPER_MEMBER(citycon_state::citycon_scan) { /* logical (col,row) -> memory offset */ return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x60) << 5); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(citycon_state::get_fg_tile_info) { - citycon_state *state = machine.driver_data<citycon_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index], + m_videoram[tile_index], (tile_index & 0x03e0) >> 5, /* color depends on scanline only */ 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(citycon_state::get_bg_tile_info) { - citycon_state *state = machine.driver_data<citycon_state>(); - UINT8 *rom = state->memregion("gfx4")->base(); - int code = rom[0x1000 * state->m_bg_image + tile_index]; - SET_TILE_INFO( - 3 + state->m_bg_image, + UINT8 *rom = memregion("gfx4")->base(); + int code = rom[0x1000 * m_bg_image + tile_index]; + SET_TILE_INFO_MEMBER( + 3 + m_bg_image, code, - rom[0xc000 + 0x100 * state->m_bg_image + code], + rom[0xc000 + 0x100 * m_bg_image + code], 0); } @@ -55,8 +53,8 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( citycon ) { citycon_state *state = machine.driver_data<citycon_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, citycon_scan, 8, 8, 128, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, citycon_scan, 8, 8, 128, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(citycon_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(citycon_state::citycon_scan),state), 8, 8, 128, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(citycon_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(citycon_state::citycon_scan),state), 8, 8, 128, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_scroll_rows(32); diff --git a/src/mame/video/cloak.c b/src/mame/video/cloak.c index 4fb6b8eec00..305e5ba755f 100644 --- a/src/mame/video/cloak.c +++ b/src/mame/video/cloak.c @@ -153,20 +153,19 @@ WRITE8_MEMBER(cloak_state::cloak_flipscreen_w) flip_screen_set(data & 0x80); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(cloak_state::get_bg_tile_info) { - cloak_state *state = machine.driver_data<cloak_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[tile_index]; - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } VIDEO_START( cloak ) { cloak_state *state = machine.driver_data<cloak_state>(); - 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(cloak_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bitmap_videoram1 = auto_alloc_array(machine, UINT8, 256*256); state->m_bitmap_videoram2 = auto_alloc_array(machine, UINT8, 256*256); diff --git a/src/mame/video/clshroad.c b/src/mame/video/clshroad.c index ef2945c210a..17c97a6c9bd 100644 --- a/src/mame/video/clshroad.c +++ b/src/mame/video/clshroad.c @@ -104,28 +104,26 @@ Offset: ***************************************************************************/ -static TILE_GET_INFO( get_tile_info_0a ) +TILE_GET_INFO_MEMBER(clshroad_state::get_tile_info_0a) { - clshroad_state *state = machine.driver_data<clshroad_state>(); UINT8 code; tile_index = (tile_index & 0x1f) + (tile_index & ~0x1f)*2; - code = state->m_vram_0[ tile_index * 2 + 0x40 ]; -// color = state->m_vram_0[ tile_index * 2 + 0x41 ]; - SET_TILE_INFO( + code = m_vram_0[ tile_index * 2 + 0x40 ]; +// color = m_vram_0[ tile_index * 2 + 0x41 ]; + SET_TILE_INFO_MEMBER( 1, code, 0, 0); } -static TILE_GET_INFO( get_tile_info_0b ) +TILE_GET_INFO_MEMBER(clshroad_state::get_tile_info_0b) { - clshroad_state *state = machine.driver_data<clshroad_state>(); UINT8 code; tile_index = (tile_index & 0x1f) + (tile_index & ~0x1f)*2; - code = state->m_vram_0[ tile_index * 2 + 0x00 ]; -// color = state->m_vram_0[ tile_index * 2 + 0x01 ]; - SET_TILE_INFO( + code = m_vram_0[ tile_index * 2 + 0x00 ]; +// color = m_vram_0[ tile_index * 2 + 0x01 ]; + SET_TILE_INFO_MEMBER( 1, code, 0, @@ -160,7 +158,7 @@ Offset: ***************************************************************************/ /* logical (col,row) -> memory offset */ -static TILEMAP_MAPPER( tilemap_scan_rows_extra ) +TILEMAP_MAPPER_MEMBER(clshroad_state::tilemap_scan_rows_extra) { // The leftmost columns come from the bottom rows if (col <= 0x01) return row + (col + 0x1e) * 0x20; @@ -176,25 +174,23 @@ static TILEMAP_MAPPER( tilemap_scan_rows_extra ) return (col-2) + row * 0x20; } -static TILE_GET_INFO( get_tile_info_fb1 ) +TILE_GET_INFO_MEMBER(clshroad_state::get_tile_info_fb1) { - clshroad_state *state = machine.driver_data<clshroad_state>(); - UINT8 code = state->m_vram_1[ tile_index + 0x000 ]; - UINT8 color = state->m_vram_1[ tile_index + 0x400 ] & 0x3f; + UINT8 code = m_vram_1[ tile_index + 0x000 ]; + UINT8 color = m_vram_1[ tile_index + 0x400 ] & 0x3f; tileinfo.group = color; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code, color, 0); } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(clshroad_state::get_tile_info_1) { - clshroad_state *state = machine.driver_data<clshroad_state>(); - UINT8 code = state->m_vram_1[ tile_index + 0x000 ]; - UINT8 color = state->m_vram_1[ tile_index + 0x400 ]; - SET_TILE_INFO( + UINT8 code = m_vram_1[ tile_index + 0x000 ]; + UINT8 color = m_vram_1[ tile_index + 0x400 ]; + SET_TILE_INFO_MEMBER( 2, code + ((color & 0xf0)<<4), color & 0x0f, @@ -212,10 +208,10 @@ VIDEO_START( firebatl ) { clshroad_state *state = machine.driver_data<clshroad_state>(); /* These 2 use the graphics and scroll value */ - state->m_tilemap_0a = tilemap_create(machine, get_tile_info_0a,TILEMAP_SCAN_ROWS,16,16,0x20,0x10); - state->m_tilemap_0b = tilemap_create(machine, get_tile_info_0b,TILEMAP_SCAN_ROWS,16,16,0x20,0x10); + state->m_tilemap_0a = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0a),state),TILEMAP_SCAN_ROWS,16,16,0x20,0x10); + state->m_tilemap_0b = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0b),state),TILEMAP_SCAN_ROWS,16,16,0x20,0x10); /* Text (No scrolling) */ - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_fb1,tilemap_scan_rows_extra,8,8,0x24,0x20); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_fb1),state),tilemap_mapper_delegate(FUNC(clshroad_state::tilemap_scan_rows_extra),state),8,8,0x24,0x20); state->m_tilemap_0a->set_scroll_rows(1); state->m_tilemap_0b->set_scroll_rows(1); @@ -236,10 +232,10 @@ VIDEO_START( clshroad ) { clshroad_state *state = machine.driver_data<clshroad_state>(); /* These 2 use the graphics and scroll value */ - state->m_tilemap_0a = tilemap_create(machine, get_tile_info_0a,TILEMAP_SCAN_ROWS,16,16,0x20,0x10); - state->m_tilemap_0b = tilemap_create(machine, get_tile_info_0b,TILEMAP_SCAN_ROWS,16,16,0x20,0x10); + state->m_tilemap_0a = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0a),state),TILEMAP_SCAN_ROWS,16,16,0x20,0x10); + state->m_tilemap_0b = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0b),state),TILEMAP_SCAN_ROWS,16,16,0x20,0x10); /* Text (No scrolling) */ - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1,tilemap_scan_rows_extra,8,8,0x24,0x20); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_1),state),tilemap_mapper_delegate(FUNC(clshroad_state::tilemap_scan_rows_extra),state),8,8,0x24,0x20); state->m_tilemap_0a->set_scroll_rows(1); state->m_tilemap_0b->set_scroll_rows(1); diff --git a/src/mame/video/combatsc.c b/src/mame/video/combatsc.c index 8f969924385..1526fd3ebc7 100644 --- a/src/mame/video/combatsc.c +++ b/src/mame/video/combatsc.c @@ -113,12 +113,11 @@ static void set_pens( running_machine &machine ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info0 ) +TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0) { - combatsc_state *state = machine.driver_data<combatsc_state>(); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_1, 6); - UINT8 attributes = state->m_page[0][tile_index]; - int bank = 4 * ((state->m_vreg & 0x0f) - 1); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); + UINT8 attributes = m_page[0][tile_index]; + int bank = 4 * ((m_vreg & 0x0f) - 1); int number, color; if (bank < 0) @@ -138,9 +137,9 @@ static TILE_GET_INFO( get_tile_info0 ) color = ((ctrl_6 & 0x10) * 2 + 16) + (attributes & 0x0f); - number = state->m_page[0][tile_index + 0x400] + 256 * bank; + number = m_page[0][tile_index + 0x400] + 256 * bank; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, number, color, @@ -148,12 +147,11 @@ static TILE_GET_INFO( get_tile_info0 ) tileinfo.category = (attributes & 0x40) >> 6; } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info1) { - combatsc_state *state = machine.driver_data<combatsc_state>(); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_2, 6); - UINT8 attributes = state->m_page[1][tile_index]; - int bank = 4 * ((state->m_vreg >> 4) - 1); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); + UINT8 attributes = m_page[1][tile_index]; + int bank = 4 * ((m_vreg >> 4) - 1); int number, color; if (bank < 0) @@ -173,9 +171,9 @@ static TILE_GET_INFO( get_tile_info1 ) color = ((ctrl_6 & 0x10) * 2 + 16 + 4 * 16) + (attributes & 0x0f); - number = state->m_page[1][tile_index + 0x400] + 256 * bank; + number = m_page[1][tile_index + 0x400] + 256 * bank; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, number, color, @@ -183,14 +181,13 @@ static TILE_GET_INFO( get_tile_info1 ) tileinfo.category = (attributes & 0x40) >> 6; } -static TILE_GET_INFO( get_text_info ) +TILE_GET_INFO_MEMBER(combatsc_state::get_text_info) { - combatsc_state *state = machine.driver_data<combatsc_state>(); - UINT8 attributes = state->m_page[0][tile_index + 0x800]; - int number = state->m_page[0][tile_index + 0xc00]; + UINT8 attributes = m_page[0][tile_index + 0x800]; + int number = m_page[0][tile_index + 0xc00]; int color = 16 + (attributes & 0x0f); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, number, color, @@ -198,11 +195,10 @@ static TILE_GET_INFO( get_text_info ) } -static TILE_GET_INFO( get_tile_info0_bootleg ) +TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0_bootleg) { - combatsc_state *state = machine.driver_data<combatsc_state>(); - UINT8 attributes = state->m_page[0][tile_index]; - int bank = 4 * ((state->m_vreg & 0x0f) - 1); + UINT8 attributes = m_page[0][tile_index]; + int bank = 4 * ((m_vreg & 0x0f) - 1); int number, pal, color; if (bank < 0) @@ -222,20 +218,19 @@ static TILE_GET_INFO( get_tile_info0_bootleg ) pal = (bank == 0 || bank >= 0x1c || (attributes & 0x40)) ? 1 : 3; color = pal*16;// + (attributes & 0x0f); - number = state->m_page[0][tile_index + 0x400] + 256 * bank; + number = m_page[0][tile_index + 0x400] + 256 * bank; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, number, color, 0); } -static TILE_GET_INFO( get_tile_info1_bootleg ) +TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info1_bootleg) { - combatsc_state *state = machine.driver_data<combatsc_state>(); - UINT8 attributes = state->m_page[1][tile_index]; - int bank = 4*((state->m_vreg >> 4) - 1); + UINT8 attributes = m_page[1][tile_index]; + int bank = 4*((m_vreg >> 4) - 1); int number, pal, color; if (bank < 0) @@ -255,23 +250,22 @@ static TILE_GET_INFO( get_tile_info1_bootleg ) pal = (bank == 0 || bank >= 0x1c || (attributes & 0x40)) ? 5 : 7; color = pal * 16;// + (attributes & 0x0f); - number = state->m_page[1][tile_index + 0x400] + 256 * bank; + number = m_page[1][tile_index + 0x400] + 256 * bank; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, number, color, 0); } -static TILE_GET_INFO( get_text_info_bootleg ) +TILE_GET_INFO_MEMBER(combatsc_state::get_text_info_bootleg) { - combatsc_state *state = machine.driver_data<combatsc_state>(); -// UINT8 attributes = state->m_page[0][tile_index + 0x800]; - int number = state->m_page[0][tile_index + 0xc00]; +// UINT8 attributes = m_page[0][tile_index + 0x800]; + int number = m_page[0][tile_index + 0xc00]; int color = 16;// + (attributes & 0x0f); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, number, color, @@ -288,9 +282,9 @@ VIDEO_START( combatsc ) { combatsc_state *state = machine.driver_data<combatsc_state>(); - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_textlayer = tilemap_create(machine, get_text_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_textlayer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_spriteram[0] = auto_alloc_array_clear(machine, UINT8, 0x800); state->m_spriteram[1] = auto_alloc_array_clear(machine, UINT8, 0x800); @@ -309,9 +303,9 @@ VIDEO_START( combatscb ) { combatsc_state *state = machine.driver_data<combatsc_state>(); - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0_bootleg, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1_bootleg, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_textlayer = tilemap_create(machine, get_text_info_bootleg, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info0_bootleg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1_bootleg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_textlayer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info_bootleg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_spriteram[0] = auto_alloc_array_clear(machine, UINT8, 0x800); state->m_spriteram[1] = auto_alloc_array_clear(machine, UINT8, 0x800); diff --git a/src/mame/video/commando.c b/src/mame/video/commando.c index 34f9fc96ba7..ee1db6ab7e3 100644 --- a/src/mame/video/commando.c +++ b/src/mame/video/commando.c @@ -66,34 +66,32 @@ WRITE8_MEMBER(commando_state::commando_c804_w) flip_screen_set(data & 0x80); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(commando_state::get_bg_tile_info) { - commando_state *state = machine.driver_data<commando_state>(); - 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; int flags = TILE_FLIPYX((attr & 0x30) >> 4); - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(commando_state::get_fg_tile_info) { - commando_state *state = machine.driver_data<commando_state>(); - int attr = state->m_colorram2[tile_index]; - int code = state->m_videoram2[tile_index] + ((attr & 0xc0) << 2); + int attr = m_colorram2[tile_index]; + int code = m_videoram2[tile_index] + ((attr & 0xc0) << 2); int color = attr & 0x0f; int flags = TILE_FLIPYX((attr & 0x30) >> 4); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( commando ) { commando_state *state = machine.driver_data<commando_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 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(commando_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(commando_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(3); } diff --git a/src/mame/video/compgolf.c b/src/mame/video/compgolf.c index 2b114cdcb0f..38b7660a258 100644 --- a/src/mame/video/compgolf.c +++ b/src/mame/video/compgolf.c @@ -46,34 +46,32 @@ WRITE8_MEMBER(compgolf_state::compgolf_back_w) m_bg_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_text_info ) +TILE_GET_INFO_MEMBER(compgolf_state::get_text_info) { - compgolf_state *state = machine.driver_data<compgolf_state>(); tile_index <<= 1; - SET_TILE_INFO(2, state->m_videoram[tile_index + 1] | (state->m_videoram[tile_index] << 8), state->m_videoram[tile_index] >> 2, 0); + SET_TILE_INFO_MEMBER(2, m_videoram[tile_index + 1] | (m_videoram[tile_index] << 8), m_videoram[tile_index] >> 2, 0); } -static TILEMAP_MAPPER( back_scan ) +TILEMAP_MAPPER_MEMBER(compgolf_state::back_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x10) << 4) + ((row & 0x10) << 5); } -static TILE_GET_INFO( get_back_info ) +TILE_GET_INFO_MEMBER(compgolf_state::get_back_info) { - compgolf_state *state = machine.driver_data<compgolf_state>(); - int attr = state->m_bg_ram[tile_index * 2]; - int code = state->m_bg_ram[tile_index * 2 + 1] + ((attr & 1) << 8); + int attr = m_bg_ram[tile_index * 2]; + int code = m_bg_ram[tile_index * 2 + 1] + ((attr & 1) << 8); int color = (attr & 0x3e) >> 1; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } VIDEO_START( compgolf ) { compgolf_state *state = machine.driver_data<compgolf_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_back_info, back_scan, 16, 16, 32, 32); - state->m_text_tilemap = tilemap_create(machine, get_text_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(compgolf_state::get_back_info),state), tilemap_mapper_delegate(FUNC(compgolf_state::back_scan),state), 16, 16, 32, 32); + state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(compgolf_state::get_text_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_text_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/contra.c b/src/mame/video/contra.c index f6822b65369..23b91e7f36f 100644 --- a/src/mame/video/contra.c +++ b/src/mame/video/contra.c @@ -76,14 +76,13 @@ static void set_pens( running_machine &machine ) ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info) { - contra_state *state = machine.driver_data<contra_state>(); - UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121_1, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121_1, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_1, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_1, 6); - int attr = state->m_fg_cram[tile_index]; + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_1, 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_1, 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); + int attr = m_fg_cram[tile_index]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -98,21 +97,20 @@ static TILE_GET_INFO( get_fg_tile_info ) bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_fg_vram[tile_index] + bank * 256, + m_fg_vram[tile_index] + bank * 256, ((ctrl_6 & 0x30) * 2 + 16) + (attr & 7), 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info) { - contra_state *state = machine.driver_data<contra_state>(); - UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121_2, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121_2, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_2, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_2, 6); - int attr = state->m_bg_cram[tile_index]; + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_2, 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_2, 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); + int attr = m_bg_cram[tile_index]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -128,19 +126,18 @@ static TILE_GET_INFO( get_bg_tile_info ) // 2009-12 FP: TO BE VERIFIED - old code used ctrl4 from chip 0?!? bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - state->m_bg_vram[tile_index] + bank * 256, + m_bg_vram[tile_index] + bank * 256, ((ctrl_6 & 0x30) * 2 + 16) + (attr & 7), 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info) { - contra_state *state = machine.driver_data<contra_state>(); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_1, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_1, 6); - int attr = state->m_tx_cram[tile_index]; + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); + int attr = m_tx_cram[tile_index]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -151,9 +148,9 @@ static TILE_GET_INFO( get_tx_tile_info ) ((attr >> (bit2 )) & 0x08) | ((attr >> (bit3 - 1)) & 0x10); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_tx_vram[tile_index] + bank * 256, + m_tx_vram[tile_index] + bank * 256, ((ctrl_6 & 0x30) * 2 + 16) + (attr & 7), 0); } @@ -169,9 +166,9 @@ VIDEO_START( contra ) { contra_state *state = machine.driver_data<contra_state>(); - 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_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(contra_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(contra_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(contra_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_buffered_spriteram = auto_alloc_array(machine, UINT8, 0x800); state->m_buffered_spriteram_2 = auto_alloc_array(machine, UINT8, 0x800); diff --git a/src/mame/video/cop01.c b/src/mame/video/cop01.c index ca596a2427e..33fd523b73e 100644 --- a/src/mame/video/cop01.c +++ b/src/mame/video/cop01.c @@ -61,11 +61,10 @@ PALETTE_INIT( cop01 ) ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(cop01_state::get_bg_tile_info) { - cop01_state *state = machine.driver_data<cop01_state>(); - int tile = state->m_bgvideoram[tile_index]; - int attr = state->m_bgvideoram[tile_index + 0x800]; + int tile = m_bgvideoram[tile_index]; + int attr = m_bgvideoram[tile_index + 0x800]; int pri = (attr & 0x80) >> 7; /* kludge: priority is not actually pen based, but color based. Since the @@ -81,15 +80,14 @@ static TILE_GET_INFO( get_bg_tile_info ) if (attr & 0x10) pri = 0; - SET_TILE_INFO(1, tile + ((attr & 0x03) << 8), (attr & 0x1c) >> 2, 0); + SET_TILE_INFO_MEMBER(1, tile + ((attr & 0x03) << 8), (attr & 0x1c) >> 2, 0); tileinfo.group = pri; } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(cop01_state::get_fg_tile_info) { - cop01_state *state = machine.driver_data<cop01_state>(); - int tile = state->m_fgvideoram[tile_index]; - SET_TILE_INFO(0, tile, 0, 0); + int tile = m_fgvideoram[tile_index]; + SET_TILE_INFO_MEMBER(0, tile, 0, 0); } @@ -103,8 +101,8 @@ static TILE_GET_INFO( get_fg_tile_info ) VIDEO_START( cop01 ) { cop01_state *state = machine.driver_data<cop01_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 64, 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(cop01_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cop01_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/cps1.c b/src/mame/video/cps1.c index 27033ce7bf3..827f03ccf0f 100644 --- a/src/mame/video/cps1.c +++ b/src/mame/video/cps1.c @@ -1973,39 +1973,38 @@ static int gfxrom_bank_mapper( running_machine &machine, int type, int code ) ***************************************************************************/ -static TILEMAP_MAPPER( tilemap0_scan ) +TILEMAP_MAPPER_MEMBER(cps_state::tilemap0_scan) { /* logical (col,row) -> memory offset */ return (row & 0x1f) + ((col & 0x3f) << 5) + ((row & 0x20) << 6); } -static TILEMAP_MAPPER( tilemap1_scan ) +TILEMAP_MAPPER_MEMBER(cps_state::tilemap1_scan) { /* logical (col,row) -> memory offset */ return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x30) << 6); } -static TILEMAP_MAPPER( tilemap2_scan ) +TILEMAP_MAPPER_MEMBER(cps_state::tilemap2_scan) { /* logical (col,row) -> memory offset */ return (row & 0x07) + ((col & 0x3f) << 3) + ((row & 0x38) << 6); } -static TILE_GET_INFO( get_tile0_info ) +TILE_GET_INFO_MEMBER(cps_state::get_tile0_info) { - cps_state *state = machine.driver_data<cps_state>(); - int code = state->m_scroll1[2 * tile_index]; - int attr = state->m_scroll1[2 * tile_index + 1]; + int code = m_scroll1[2 * tile_index]; + int attr = m_scroll1[2 * tile_index + 1]; int gfxset; - code = gfxrom_bank_mapper(machine, GFXTYPE_SCROLL1, code); + code = gfxrom_bank_mapper(machine(), GFXTYPE_SCROLL1, code); /* allows us to reproduce a problem seen with a ffight board where USA and Japanese roms have been mixed to be reproduced (ffightub) -- it looks like each column should alternate between the left and right side of the 16x16 tiles */ gfxset = (tile_index & 0x20) >> 5; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( gfxset, code, (attr & 0x1f) + 0x20, @@ -2013,20 +2012,19 @@ static TILE_GET_INFO( get_tile0_info ) tileinfo.group = (attr & 0x0180) >> 7; // for out of range tiles, switch to fully transparent data - // (but still call SET_TILE_INFO, otherwise problems might occur on boot e.g. unsquad) + // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad) if (code == -1) - tileinfo.pen_data = state->m_empty_tile; + tileinfo.pen_data = m_empty_tile; } -static TILE_GET_INFO( get_tile1_info ) +TILE_GET_INFO_MEMBER(cps_state::get_tile1_info) { - cps_state *state = machine.driver_data<cps_state>(); - int code = state->m_scroll2[2 * tile_index]; - int attr = state->m_scroll2[2 * tile_index + 1]; + int code = m_scroll2[2 * tile_index]; + int attr = m_scroll2[2 * tile_index + 1]; - code = gfxrom_bank_mapper(machine, GFXTYPE_SCROLL2, code); + code = gfxrom_bank_mapper(machine(), GFXTYPE_SCROLL2, code); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code, (attr & 0x1f) + 0x40, @@ -2035,18 +2033,17 @@ static TILE_GET_INFO( get_tile1_info ) // for out of range tiles, switch to fully transparent data if (code == -1) - tileinfo.pen_data = state->m_empty_tile; + tileinfo.pen_data = m_empty_tile; } -static TILE_GET_INFO( get_tile2_info ) +TILE_GET_INFO_MEMBER(cps_state::get_tile2_info) { - cps_state *state = machine.driver_data<cps_state>(); - int code = state->m_scroll3[2 * tile_index] & 0x3fff; - int attr = state->m_scroll3[2 * tile_index + 1]; + int code = m_scroll3[2 * tile_index] & 0x3fff; + int attr = m_scroll3[2 * tile_index + 1]; - code = gfxrom_bank_mapper(machine, GFXTYPE_SCROLL3, code); + code = gfxrom_bank_mapper(machine(), GFXTYPE_SCROLL3, code); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, code, (attr & 0x1f) + 0x60, @@ -2054,9 +2051,9 @@ static TILE_GET_INFO( get_tile2_info ) tileinfo.group = (attr & 0x0180) >> 7; // for out of range tiles, switch to fully transparent data - // (but still call SET_TILE_INFO, otherwise problems might occur on boot e.g. unsquad) + // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad) if (code == -1) - tileinfo.pen_data = state->m_empty_tile; + tileinfo.pen_data = m_empty_tile; } @@ -2099,9 +2096,9 @@ static VIDEO_START( cps ) state->m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */ /* create tilemaps */ - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile0_info, tilemap0_scan, 8, 8, 64, 64); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile1_info, tilemap1_scan, 16, 16, 64, 64); - state->m_bg_tilemap[2] = tilemap_create(machine, get_tile2_info, tilemap2_scan, 32, 32, 64, 64); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cps_state::get_tile0_info),state), tilemap_mapper_delegate(FUNC(cps_state::tilemap0_scan),state), 8, 8, 64, 64); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cps_state::get_tile1_info),state), tilemap_mapper_delegate(FUNC(cps_state::tilemap1_scan),state), 16, 16, 64, 64); + state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cps_state::get_tile2_info),state), tilemap_mapper_delegate(FUNC(cps_state::tilemap2_scan),state), 32, 32, 64, 64); /* create empty tiles */ memset(state->m_empty_tile, 0x0f, sizeof(state->m_empty_tile)); diff --git a/src/mame/video/crbaloon.c b/src/mame/video/crbaloon.c index c8b952ecd5f..31a833cae8f 100644 --- a/src/mame/video/crbaloon.c +++ b/src/mame/video/crbaloon.c @@ -59,19 +59,18 @@ WRITE8_MEMBER(crbaloon_state::crbaloon_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(crbaloon_state::get_bg_tile_info) { - crbaloon_state *state = machine.driver_data<crbaloon_state>(); - int code = state->m_videoram[tile_index]; - int color = state->m_colorram[tile_index] & 0x0f; + int code = m_videoram[tile_index]; + int color = m_colorram[tile_index] & 0x0f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( crbaloon ) { crbaloon_state *state = machine.driver_data<crbaloon_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crbaloon_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32); state->save_item(NAME(state->m_collision_address)); state->save_item(NAME(state->m_collision_address_clear)); diff --git a/src/mame/video/crospang.c b/src/mame/video/crospang.c index a62fe534018..403e40c6c31 100644 --- a/src/mame/video/crospang.c +++ b/src/mame/video/crospang.c @@ -88,32 +88,30 @@ WRITE16_MEMBER(crospang_state::crospang_bg_videoram_w) m_bg_layer->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(crospang_state::get_bg_tile_info) { - crospang_state *state = machine.driver_data<crospang_state>(); - int data = state->m_bg_videoram[tile_index]; + int data = m_bg_videoram[tile_index]; int tile = data & 0xfff; int color = (data >> 12) & 0x0f; - SET_TILE_INFO(1, tile + state->m_bestri_tilebank * 0x1000, color + 0x20, 0); + SET_TILE_INFO_MEMBER(1, tile + m_bestri_tilebank * 0x1000, color + 0x20, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(crospang_state::get_fg_tile_info) { - crospang_state *state = machine.driver_data<crospang_state>(); - int data = state->m_fg_videoram[tile_index]; + int data = m_fg_videoram[tile_index]; int tile = data & 0xfff; int color = (data >> 12) & 0x0f; - SET_TILE_INFO(1, tile + state->m_bestri_tilebank * 0x1000, color + 0x10, 0); + SET_TILE_INFO_MEMBER(1, tile + m_bestri_tilebank * 0x1000, color + 0x10, 0); } VIDEO_START( crospang ) { crospang_state *state = machine.driver_data<crospang_state>(); - state->m_bg_layer = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_fg_layer = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crospang_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crospang_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fg_layer->set_transparent_pen(0); } diff --git a/src/mame/video/crshrace.c b/src/mame/video/crshrace.c index f2d740ae14e..de753b0e5a2 100644 --- a/src/mame/video/crshrace.c +++ b/src/mame/video/crshrace.c @@ -9,20 +9,18 @@ ***************************************************************************/ -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(crshrace_state::get_tile_info1) { - crshrace_state *state = machine.driver_data<crshrace_state>(); - int code = state->m_videoram1[tile_index]; + int code = m_videoram1[tile_index]; - SET_TILE_INFO(1, (code & 0xfff) + (state->m_roz_bank << 12), code >> 12, 0); + SET_TILE_INFO_MEMBER(1, (code & 0xfff) + (m_roz_bank << 12), code >> 12, 0); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(crshrace_state::get_tile_info2) { - crshrace_state *state = machine.driver_data<crshrace_state>(); - int code = state->m_videoram2[tile_index]; + int code = m_videoram2[tile_index]; - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } @@ -36,8 +34,8 @@ VIDEO_START( crshrace ) { crshrace_state *state = machine.driver_data<crshrace_state>(); - state->m_tilemap1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_tilemap2 = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crshrace_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crshrace_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_tilemap1->set_transparent_pen(0x0f); state->m_tilemap2->set_transparent_pen(0xff); diff --git a/src/mame/video/cyberbal.c b/src/mame/video/cyberbal.c index f6ff4a4c9d9..8b16dac44e1 100644 --- a/src/mame/video/cyberbal.c +++ b/src/mame/video/cyberbal.c @@ -20,43 +20,39 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(cyberbal_state::get_alpha_tile_info) { - cyberbal_state *state = machine.driver_data<cyberbal_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0xfff; int color = (data >> 12) & 0x07; - SET_TILE_INFO(2, code, color, (data >> 15) & 1); + SET_TILE_INFO_MEMBER(2, code, color, (data >> 15) & 1); } -static TILE_GET_INFO( get_alpha2_tile_info ) +TILE_GET_INFO_MEMBER(cyberbal_state::get_alpha2_tile_info) { - cyberbal_state *state = machine.driver_data<cyberbal_state>(); - UINT16 data = state->m_alpha2[tile_index]; + UINT16 data = m_alpha2[tile_index]; int code = data & 0xfff; int color = (data >> 12) & 0x07; - SET_TILE_INFO(2, code, 0x80 | color, (data >> 15) & 1); + SET_TILE_INFO_MEMBER(2, code, 0x80 | color, (data >> 15) & 1); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(cyberbal_state::get_playfield_tile_info) { - cyberbal_state *state = machine.driver_data<cyberbal_state>(); - UINT16 data = state->m_playfield[tile_index]; + UINT16 data = m_playfield[tile_index]; int code = data & 0x1fff; int color = (data >> 11) & 0x0f; - SET_TILE_INFO(0, code, color, (data >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); } -static TILE_GET_INFO( get_playfield2_tile_info ) +TILE_GET_INFO_MEMBER(cyberbal_state::get_playfield2_tile_info) { - cyberbal_state *state = machine.driver_data<cyberbal_state>(); - UINT16 data = state->m_playfield2[tile_index]; + UINT16 data = m_playfield2[tile_index]; int code = data & 0x1fff; int color = (data >> 11) & 0x0f; - SET_TILE_INFO(0, code, 0x80 | color, (data >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, 0x80 | color, (data >> 15) & 1); } @@ -145,21 +141,21 @@ static void video_start_cyberbal_common(running_machine &machine, int screens) cyberbal_state *state = machine.driver_data<cyberbal_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_ROWS, 16,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &mo0desc); atarimo_set_slipram(0, &state->m_current_slip[0]); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 16,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* allocate the second screen if necessary */ if (screens == 2) { /* initialize the playfield */ - state->m_playfield2_tilemap = tilemap_create(machine, get_playfield2_tile_info, TILEMAP_SCAN_ROWS, 16,8, 64,64); + state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_playfield2_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,64); state->m_playfield2_tilemap->set_scrollx(0, 0); /* initialize the motion objects */ @@ -167,7 +163,7 @@ static void video_start_cyberbal_common(running_machine &machine, int screens) atarimo_set_slipram(1, &state->m_current_slip[1]); /* initialize the alphanumerics */ - state->m_alpha2_tilemap = tilemap_create(machine, get_alpha2_tile_info, TILEMAP_SCAN_ROWS, 16,8, 64,32); + state->m_alpha2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_alpha2_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,32); state->m_alpha2_tilemap->set_scrollx(0, 0); state->m_alpha2_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/darius.c b/src/mame/video/darius.c index 89ea0ed1188..a4865b004d2 100644 --- a/src/mame/video/darius.c +++ b/src/mame/video/darius.c @@ -16,10 +16,9 @@ INLINE void actual_get_fg_tile_info( running_machine &machine, tile_data &tilein TILE_FLIPYX((attr & 0xc000) >> 14)); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(darius_state::get_fg_tile_info) { - darius_state *state = machine.driver_data<darius_state>(); - actual_get_fg_tile_info(machine, tileinfo, tile_index, state->m_fg_ram, 2); + actual_get_fg_tile_info(machine(), tileinfo, tile_index, m_fg_ram, 2); } /***************************************************************************/ @@ -28,7 +27,7 @@ VIDEO_START( darius ) { darius_state *state = machine.driver_data<darius_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darius_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/darkmist.c b/src/mame/video/darkmist.c index 37f551ecaf4..04d5f2d344a 100644 --- a/src/mame/video/darkmist.c +++ b/src/mame/video/darkmist.c @@ -11,28 +11,28 @@ #define DISPLAY_TXT 16 -static TILE_GET_INFO( get_bgtile_info ) +TILE_GET_INFO_MEMBER(darkmist_state::get_bgtile_info) { int code,attr,pal; - code=machine.root_device().memregion("user1")->base()[tile_index]; /* TTTTTTTT */ - attr=machine.root_device().memregion("user2")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ + code=machine().root_device().memregion("user1")->base()[tile_index]; /* TTTTTTTT */ + attr=machine().root_device().memregion("user2")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ code+=(attr&3)<<8; pal=(attr>>4); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, pal, 0); } -static TILE_GET_INFO( get_fgtile_info ) +TILE_GET_INFO_MEMBER(darkmist_state::get_fgtile_info) { int code,attr,pal; - code=machine.root_device().memregion("user3")->base()[tile_index]; /* TTTTTTTT */ - attr=machine.root_device().memregion("user4")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ + code=machine().root_device().memregion("user3")->base()[tile_index]; /* TTTTTTTT */ + attr=machine().root_device().memregion("user4")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ pal=attr>>4; code+=(attr&3)<<8; @@ -41,17 +41,16 @@ static TILE_GET_INFO( get_fgtile_info ) pal+=16; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, pal, 0); } -static TILE_GET_INFO( get_txttile_info ) +TILE_GET_INFO_MEMBER(darkmist_state::get_txttile_info) { - darkmist_state *state = machine.driver_data<darkmist_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code,attr,pal; code=videoram[tile_index]; @@ -62,7 +61,7 @@ static TILE_GET_INFO( get_txttile_info ) pal+=48; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, pal, @@ -122,9 +121,9 @@ static void set_pens(running_machine &machine) VIDEO_START(darkmist) { darkmist_state *state = machine.driver_data<darkmist_state>(); - state->m_bgtilemap = tilemap_create( machine, get_bgtile_info,TILEMAP_SCAN_ROWS,16,16,512,64 ); - state->m_fgtilemap = tilemap_create( machine, get_fgtile_info,TILEMAP_SCAN_ROWS,16,16,64,256 ); - state->m_txtilemap = tilemap_create( machine, get_txttile_info,TILEMAP_SCAN_ROWS,8,8,32,32 ); + state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkmist_state::get_bgtile_info),state),TILEMAP_SCAN_ROWS,16,16,512,64 ); + state->m_fgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkmist_state::get_fgtile_info),state),TILEMAP_SCAN_ROWS,16,16,64,256 ); + state->m_txtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkmist_state::get_txttile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); state->m_fgtilemap->set_transparent_pen(0); state->m_txtilemap->set_transparent_pen(0); } diff --git a/src/mame/video/dbz.c b/src/mame/video/dbz.c index b486f55d27b..7081df4437f 100644 --- a/src/mame/video/dbz.c +++ b/src/mame/video/dbz.c @@ -44,16 +44,15 @@ WRITE16_MEMBER(dbz_state::dbz_bg2_videoram_w) m_bg2_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_dbz_bg2_tile_info ) +TILE_GET_INFO_MEMBER(dbz_state::get_dbz_bg2_tile_info) { - dbz_state *state = machine.driver_data<dbz_state>(); int tileno, colour, flag; - tileno = state->m_bg2_videoram[tile_index * 2 + 1] & 0x7fff; - colour = (state->m_bg2_videoram[tile_index * 2] & 0x000f); - flag = (state->m_bg2_videoram[tile_index * 2] & 0x0080) ? TILE_FLIPX : 0; + tileno = m_bg2_videoram[tile_index * 2 + 1] & 0x7fff; + colour = (m_bg2_videoram[tile_index * 2] & 0x000f); + flag = (m_bg2_videoram[tile_index * 2] & 0x0080) ? TILE_FLIPX : 0; - SET_TILE_INFO(0, tileno, colour + (state->m_layer_colorbase[5] << 1), flag); + SET_TILE_INFO_MEMBER(0, tileno, colour + (m_layer_colorbase[5] << 1), flag); } WRITE16_MEMBER(dbz_state::dbz_bg1_videoram_w) @@ -62,24 +61,23 @@ WRITE16_MEMBER(dbz_state::dbz_bg1_videoram_w) m_bg1_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_dbz_bg1_tile_info ) +TILE_GET_INFO_MEMBER(dbz_state::get_dbz_bg1_tile_info) { - dbz_state *state = machine.driver_data<dbz_state>(); int tileno, colour, flag; - tileno = state->m_bg1_videoram[tile_index * 2 + 1] & 0x7fff; - colour = (state->m_bg1_videoram[tile_index * 2] & 0x000f); - flag = (state->m_bg1_videoram[tile_index * 2] & 0x0080) ? TILE_FLIPX : 0; + tileno = m_bg1_videoram[tile_index * 2 + 1] & 0x7fff; + colour = (m_bg1_videoram[tile_index * 2] & 0x000f); + flag = (m_bg1_videoram[tile_index * 2] & 0x0080) ? TILE_FLIPX : 0; - SET_TILE_INFO(1, tileno, colour + (state->m_layer_colorbase[4] << 1), flag); + SET_TILE_INFO_MEMBER(1, tileno, colour + (m_layer_colorbase[4] << 1), flag); } VIDEO_START( dbz ) { dbz_state *state = machine.driver_data<dbz_state>(); - state->m_bg1_tilemap = tilemap_create(machine, get_dbz_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_bg2_tilemap = tilemap_create(machine, get_dbz_bg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dbz_state::get_dbz_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dbz_state::get_dbz_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); state->m_bg1_tilemap->set_transparent_pen(0); state->m_bg2_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/dcon.c b/src/mame/video/dcon.c index ea423aa187c..565b6985d51 100644 --- a/src/mame/video/dcon.c +++ b/src/mame/video/dcon.c @@ -69,60 +69,56 @@ WRITE16_MEMBER(dcon_state::dcon_text_w) m_text_layer->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(dcon_state::get_back_tile_info) { - dcon_state *state = machine.driver_data<dcon_state>(); - int tile=state->m_back_data[tile_index]; + int tile=m_back_data[tile_index]; int color=(tile>>12)&0xf; tile&=0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, color, 0); } -static TILE_GET_INFO( get_fore_tile_info ) +TILE_GET_INFO_MEMBER(dcon_state::get_fore_tile_info) { - dcon_state *state = machine.driver_data<dcon_state>(); - int tile=state->m_fore_data[tile_index]; + int tile=m_fore_data[tile_index]; int color=(tile>>12)&0xf; tile&=0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile, color, 0); } -static TILE_GET_INFO( get_mid_tile_info ) +TILE_GET_INFO_MEMBER(dcon_state::get_mid_tile_info) { - dcon_state *state = machine.driver_data<dcon_state>(); - int tile=state->m_mid_data[tile_index]; + int tile=m_mid_data[tile_index]; int color=(tile>>12)&0xf; tile&=0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, - tile|state->m_gfx_bank_select, + tile|m_gfx_bank_select, color, 0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(dcon_state::get_text_tile_info) { - dcon_state *state = machine.driver_data<dcon_state>(); - int tile = state->m_textram[tile_index]; + int tile = m_textram[tile_index]; int color=(tile>>12)&0xf; tile&=0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -132,10 +128,10 @@ static TILE_GET_INFO( get_text_tile_info ) VIDEO_START( dcon ) { dcon_state *state = machine.driver_data<dcon_state>(); - state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS, 16,16,32,32); - state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_midground_layer = tilemap_create(machine, get_mid_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); + state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dcon_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,32,32); + state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dcon_state::get_fore_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dcon_state::get_mid_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dcon_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); state->m_midground_layer->set_transparent_pen(15); state->m_foreground_layer->set_transparent_pen(15); diff --git a/src/mame/video/dday.c b/src/mame/video/dday.c index 3cb0f00fbb5..ec7681294b7 100644 --- a/src/mame/video/dday.c +++ b/src/mame/video/dday.c @@ -153,44 +153,40 @@ PALETTE_INIT( dday ) ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(dday_state::get_bg_tile_info) { - dday_state *state = machine.driver_data<dday_state>(); int code; - code = state->m_bgvideoram[tile_index]; - SET_TILE_INFO(0, code, code >> 5, 0); + code = m_bgvideoram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, code >> 5, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(dday_state::get_fg_tile_info) { - dday_state *state = machine.driver_data<dday_state>(); int code, flipx; - flipx = state->m_colorram[tile_index & 0x03e0] & 0x01; - code = state->m_fgvideoram[flipx ? tile_index ^ 0x1f : tile_index]; - SET_TILE_INFO(2, code, code >> 5, flipx ? TILE_FLIPX : 0); + flipx = m_colorram[tile_index & 0x03e0] & 0x01; + code = m_fgvideoram[flipx ? tile_index ^ 0x1f : tile_index]; + SET_TILE_INFO_MEMBER(2, code, code >> 5, flipx ? TILE_FLIPX : 0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(dday_state::get_text_tile_info) { - dday_state *state = machine.driver_data<dday_state>(); int code; - code = state->m_textvideoram[tile_index]; - SET_TILE_INFO(1, code, code >> 5, 0); + code = m_textvideoram[tile_index]; + SET_TILE_INFO_MEMBER(1, code, code >> 5, 0); } -static TILE_GET_INFO( get_sl_tile_info ) +TILE_GET_INFO_MEMBER(dday_state::get_sl_tile_info) { - dday_state *state = machine.driver_data<dday_state>(); int code, sl_flipx, flipx; UINT8* sl_map; - sl_map = &state->memregion("user1")->base()[(state->m_sl_image & 0x07) * 0x0200]; + sl_map = &memregion("user1")->base()[(m_sl_image & 0x07) * 0x0200]; flipx = (tile_index >> 4) & 0x01; - sl_flipx = (state->m_sl_image >> 3) & 0x01; + sl_flipx = (m_sl_image >> 3) & 0x01; /* bit 4 is really a flip indicator. Need to shift bits 5-9 to the right by 1 */ tile_index = ((tile_index & 0x03e0) >> 1) | (tile_index & 0x0f); @@ -201,7 +197,7 @@ static TILE_GET_INFO( get_sl_tile_info ) /* no mirroring, draw dark spot */ code = 1; - SET_TILE_INFO(3, code & 0x3f, 0, flipx ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(3, code & 0x3f, 0, flipx ? TILE_FLIPX : 0); } @@ -214,10 +210,10 @@ static TILE_GET_INFO( get_sl_tile_info ) VIDEO_START( dday ) { dday_state *state = machine.driver_data<dday_state>(); - 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_text_tilemap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_sl_tilemap = tilemap_create(machine, get_sl_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dday_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(dday_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_sl_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_sl_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); machine.primary_screen->register_screen_bitmap(state->m_main_bitmap); diff --git a/src/mame/video/ddragon.c b/src/mame/video/ddragon.c index 141c07f862d..96b97ef1fd9 100644 --- a/src/mame/video/ddragon.c +++ b/src/mame/video/ddragon.c @@ -50,41 +50,38 @@ Sprite layout. ***************************************************************************/ -static TILEMAP_MAPPER( background_scan ) +TILEMAP_MAPPER_MEMBER(ddragon_state::background_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x10) << 4) + ((row & 0x10) << 5); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ddragon_state::get_bg_tile_info) { - ddragon_state *state = machine.driver_data<ddragon_state>(); - UINT8 attr = state->m_bgvideoram[2 * tile_index]; - SET_TILE_INFO( + UINT8 attr = m_bgvideoram[2 * tile_index]; + SET_TILE_INFO_MEMBER( 2, - state->m_bgvideoram[2 * tile_index+1] + ((attr & 0x07) << 8), + m_bgvideoram[2 * tile_index+1] + ((attr & 0x07) << 8), (attr >> 3) & 0x07, TILE_FLIPYX((attr & 0xc0) >> 6)); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(ddragon_state::get_fg_tile_info) { - ddragon_state *state = machine.driver_data<ddragon_state>(); - UINT8 attr = state->m_fgvideoram[2 * tile_index]; - SET_TILE_INFO( + UINT8 attr = m_fgvideoram[2 * tile_index]; + SET_TILE_INFO_MEMBER( 0, - state->m_fgvideoram[2 * tile_index + 1] + ((attr & 0x07) << 8), + m_fgvideoram[2 * tile_index + 1] + ((attr & 0x07) << 8), attr >> 5, 0); } -static TILE_GET_INFO( get_fg_16color_tile_info ) +TILE_GET_INFO_MEMBER(ddragon_state::get_fg_16color_tile_info) { - ddragon_state *state = machine.driver_data<ddragon_state>(); - UINT8 attr = state->m_fgvideoram[2 * tile_index]; - SET_TILE_INFO( + UINT8 attr = m_fgvideoram[2 * tile_index]; + SET_TILE_INFO_MEMBER( 0, - state->m_fgvideoram[2 * tile_index+1] + ((attr & 0x0f) << 8), + m_fgvideoram[2 * tile_index+1] + ((attr & 0x0f) << 8), attr >> 4, 0); } @@ -100,8 +97,8 @@ VIDEO_START( ddragon ) { ddragon_state *state = machine.driver_data<ddragon_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, background_scan, 16, 16, 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(ddragon_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(ddragon_state::background_scan),state), 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_scrolldx(0, 384 - 256); @@ -114,8 +111,8 @@ VIDEO_START( chinagat ) { ddragon_state *state = machine.driver_data<ddragon_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,background_scan, 16, 16, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_16color_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(ddragon_state::background_scan),state), 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon_state::get_fg_16color_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_scrolldy(-8, -8); diff --git a/src/mame/video/ddragon3.c b/src/mame/video/ddragon3.c index d5d07138f96..8e6695d3d89 100644 --- a/src/mame/video/ddragon3.c +++ b/src/mame/video/ddragon3.c @@ -54,34 +54,32 @@ WRITE16_MEMBER(ddragon3_state::ddragon3_fg_videoram_w) m_fg_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ddragon3_state::get_bg_tile_info) { - ddragon3_state *state = machine.driver_data<ddragon3_state>(); - UINT16 attr = state->m_bg_videoram[tile_index]; - int code = (attr & 0x0fff) | ((state->m_bg_tilebase & 0x01) << 12); + UINT16 attr = m_bg_videoram[tile_index]; + int code = (attr & 0x0fff) | ((m_bg_tilebase & 0x01) << 12); int color = ((attr & 0xf000) >> 12) + 16; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(ddragon3_state::get_fg_tile_info) { - ddragon3_state *state = machine.driver_data<ddragon3_state>(); int offs = tile_index * 2; - UINT16 attr = state->m_fg_videoram[offs]; - int code = state->m_fg_videoram[offs + 1] & 0x1fff; + UINT16 attr = m_fg_videoram[offs]; + int code = m_fg_videoram[offs + 1] & 0x1fff; int color = attr & 0xf; int flags = (attr & 0x40) ? TILE_FLIPX : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( ddragon3 ) { ddragon3_state *state = machine.driver_data<ddragon3_state>(); - 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(ddragon3_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(ddragon3_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/ddribble.c b/src/mame/video/ddribble.c index f470540c4a8..71462f3c386 100644 --- a/src/mame/video/ddribble.c +++ b/src/mame/video/ddribble.c @@ -87,30 +87,28 @@ WRITE8_MEMBER(ddribble_state::K005885_1_w) ***************************************************************************/ -static TILEMAP_MAPPER( tilemap_scan ) +TILEMAP_MAPPER_MEMBER(ddribble_state::tilemap_scan) { /* logical (col,row) -> memory offset */ return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 6); /* skip 0x400 */ } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(ddribble_state::get_fg_tile_info) { - ddribble_state *state = machine.driver_data<ddribble_state>(); - UINT8 attr = state->m_fg_videoram[tile_index]; - int num = state->m_fg_videoram[tile_index + 0x400] + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5) + ((state->m_charbank[0] & 2) << 10); - SET_TILE_INFO( + UINT8 attr = m_fg_videoram[tile_index]; + int num = m_fg_videoram[tile_index + 0x400] + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5) + ((m_charbank[0] & 2) << 10); + SET_TILE_INFO_MEMBER( 0, num, 0, TILE_FLIPYX((attr & 0x30) >> 4)); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ddribble_state::get_bg_tile_info) { - ddribble_state *state = machine.driver_data<ddribble_state>(); - UINT8 attr = state->m_bg_videoram[tile_index]; - int num = state->m_bg_videoram[tile_index + 0x400] + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5) + (state->m_charbank[1] << 11); - SET_TILE_INFO( + UINT8 attr = m_bg_videoram[tile_index]; + int num = m_bg_videoram[tile_index + 0x400] + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5) + (m_charbank[1] << 11); + SET_TILE_INFO_MEMBER( 1, num, 0, @@ -127,8 +125,8 @@ VIDEO_START( ddribble ) { ddribble_state *state = machine.driver_data<ddribble_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan, 8, 8, 64, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddribble_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(ddribble_state::tilemap_scan),state), 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddribble_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(ddribble_state::tilemap_scan),state), 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/deadang.c b/src/mame/video/deadang.c index c37ba063400..e6483415773 100644 --- a/src/mame/video/deadang.c +++ b/src/mame/video/deadang.c @@ -32,52 +32,50 @@ WRITE16_MEMBER(deadang_state::deadang_bank_w) /******************************************************************************/ -static TILEMAP_MAPPER( bg_scan ) +TILEMAP_MAPPER_MEMBER(deadang_state::bg_scan) { return (col&0xf) | ((row&0xf)<<4) | ((col&0x70)<<4) | ((row&0xf0)<<7); } -static TILE_GET_INFO( get_pf3_tile_info ) +TILE_GET_INFO_MEMBER(deadang_state::get_pf3_tile_info) { - const UINT16 *bgMap = (const UINT16 *)machine.root_device().memregion("gfx6")->base(); + const UINT16 *bgMap = (const UINT16 *)machine().root_device().memregion("gfx6")->base(); int code= bgMap[tile_index]; - SET_TILE_INFO(4,code&0x7ff,code>>12,0); + SET_TILE_INFO_MEMBER(4,code&0x7ff,code>>12,0); } -static TILE_GET_INFO( get_pf2_tile_info ) +TILE_GET_INFO_MEMBER(deadang_state::get_pf2_tile_info) { - const UINT16 *bgMap = (const UINT16 *)machine.root_device().memregion("gfx7")->base(); + const UINT16 *bgMap = (const UINT16 *)machine().root_device().memregion("gfx7")->base(); int code= bgMap[tile_index]; - SET_TILE_INFO(3,code&0x7ff,code>>12,0); + SET_TILE_INFO_MEMBER(3,code&0x7ff,code>>12,0); } -static TILE_GET_INFO( get_pf1_tile_info ) +TILE_GET_INFO_MEMBER(deadang_state::get_pf1_tile_info) { - deadang_state *state = machine.driver_data<deadang_state>(); - int tile=state->m_video_data[tile_index]; + int tile=m_video_data[tile_index]; int color=tile >> 12; tile=tile&0xfff; - SET_TILE_INFO(2,tile+state->m_deadangle_tilebank*0x1000,color,0); + SET_TILE_INFO_MEMBER(2,tile+m_deadangle_tilebank*0x1000,color,0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(deadang_state::get_text_tile_info) { - deadang_state *state = machine.driver_data<deadang_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int tile=(videoram[tile_index] & 0xff) | ((videoram[tile_index] >> 6) & 0x300); int color=(videoram[tile_index] >> 8)&0xf; - SET_TILE_INFO(0,tile,color,0); + SET_TILE_INFO_MEMBER(0,tile,color,0); } VIDEO_START( deadang ) { deadang_state *state = machine.driver_data<deadang_state>(); - state->m_pf3_layer = tilemap_create(machine, get_pf3_tile_info,bg_scan, 16,16,128,256); - state->m_pf2_layer = tilemap_create(machine, get_pf2_tile_info,bg_scan, 16,16,128,256); - state->m_pf1_layer = tilemap_create(machine, get_pf1_tile_info,TILEMAP_SCAN_COLS,16,16, 32, 32); - state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_pf3_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deadang_state::get_pf3_tile_info),state),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),state),16,16,128,256); + state->m_pf2_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deadang_state::get_pf2_tile_info),state),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),state),16,16,128,256); + state->m_pf1_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deadang_state::get_pf1_tile_info),state),TILEMAP_SCAN_COLS,16,16, 32, 32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deadang_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_pf2_layer->set_transparent_pen(15); state->m_pf1_layer->set_transparent_pen(15); diff --git a/src/mame/video/dec8.c b/src/mame/video/dec8.c index 5282c18374b..97b16dc0aac 100644 --- a/src/mame/video/dec8.c +++ b/src/mame/video/dec8.c @@ -280,14 +280,13 @@ SCREEN_UPDATE_IND16( cobracom ) /******************************************************************************/ -static TILE_GET_INFO( get_cobracom_fix_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_cobracom_fix_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); int offs = tile_index << 1; - int tile = state->m_videoram[offs + 1] + (state->m_videoram[offs] << 8); + int tile = m_videoram[offs + 1] + (m_videoram[offs] << 8); int color = (tile & 0xe000) >> 13; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile & 0xfff, color, @@ -297,7 +296,7 @@ static TILE_GET_INFO( get_cobracom_fix_tile_info ) VIDEO_START( cobracom ) { dec8_state *state = machine.driver_data<dec8_state>(); - state->m_fix_tilemap = tilemap_create(machine, get_cobracom_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_cobracom_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); @@ -318,14 +317,13 @@ SCREEN_UPDATE_IND16( ghostb ) return 0; } -static TILE_GET_INFO( get_ghostb_fix_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_ghostb_fix_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); int offs = tile_index << 1; - int tile = state->m_videoram[offs + 1] + (state->m_videoram[offs] << 8); + int tile = m_videoram[offs + 1] + (m_videoram[offs] << 8); int color = (tile & 0xc00) >> 10; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile & 0x3ff, color, @@ -335,7 +333,7 @@ static TILE_GET_INFO( get_ghostb_fix_tile_info ) VIDEO_START( ghostb ) { dec8_state *state = machine.driver_data<dec8_state>(); - state->m_fix_tilemap = tilemap_create(machine, get_ghostb_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_ghostb_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); state->m_game_uses_priority = 0; @@ -357,14 +355,13 @@ SCREEN_UPDATE_IND16( oscar ) return 0; } -static TILE_GET_INFO( get_oscar_fix_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_oscar_fix_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); int offs = tile_index << 1; - int tile = state->m_videoram[offs + 1] + (state->m_videoram[offs] << 8); + int tile = m_videoram[offs + 1] + (m_videoram[offs] << 8); int color = (tile & 0xf000) >> 14; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile&0xfff, color, @@ -374,7 +371,7 @@ static TILE_GET_INFO( get_oscar_fix_tile_info ) VIDEO_START( oscar ) { dec8_state *state = machine.driver_data<dec8_state>(); - state->m_fix_tilemap = tilemap_create(machine, get_oscar_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_oscar_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); @@ -412,39 +409,37 @@ SCREEN_UPDATE_IND16( shackled ) return 0; } -static TILEMAP_MAPPER( lastmisn_scan_rows ) +TILEMAP_MAPPER_MEMBER(dec8_state::lastmisn_scan_rows) { /* logical (col,row) -> memory offset */ return ((col & 0x0f) + ((row & 0x0f) << 4)) + ((col & 0x10) << 4) + ((row & 0x10) << 5); } -static TILE_GET_INFO( get_lastmisn_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_lastmisn_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); int offs = tile_index * 2; - int tile = state->m_bg_data[offs + 1] + (state->m_bg_data[offs] << 8); + int tile = m_bg_data[offs + 1] + (m_bg_data[offs] << 8); int color = tile >> 12; - if (color > 7 && state->m_game_uses_priority) + if (color > 7 && m_game_uses_priority) tileinfo.category = 1; else tileinfo.category = 0; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile & 0xfff, color, 0); } -static TILE_GET_INFO( get_lastmisn_fix_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_lastmisn_fix_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); int offs = tile_index << 1; - int tile = state->m_videoram[offs + 1] + (state->m_videoram[offs] << 8); + int tile = m_videoram[offs + 1] + (m_videoram[offs] << 8); int color = (tile & 0xc000) >> 14; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile&0xfff, color, @@ -454,8 +449,8 @@ static TILE_GET_INFO( get_lastmisn_fix_tile_info ) VIDEO_START( lastmisn ) { dec8_state *state = machine.driver_data<dec8_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_lastmisn_tile_info, lastmisn_scan_rows, 16, 16, 32, 32); - state->m_fix_tilemap = tilemap_create(machine, get_lastmisn_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_tile_info),state), tilemap_mapper_delegate(FUNC(dec8_state::lastmisn_scan_rows),state), 16, 16, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); state->m_game_uses_priority = 0; @@ -464,8 +459,8 @@ VIDEO_START( lastmisn ) VIDEO_START( shackled ) { dec8_state *state = machine.driver_data<dec8_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_lastmisn_tile_info, lastmisn_scan_rows, 16, 16, 32, 32); - state->m_fix_tilemap = tilemap_create(machine, get_lastmisn_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_tile_info),state), tilemap_mapper_delegate(FUNC(dec8_state::lastmisn_scan_rows),state), 16, 16, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transmask(0, 0x000f, 0xfff0); /* Bottom 12 pens */ @@ -487,10 +482,9 @@ SCREEN_UPDATE_IND16( srdarwin ) return 0; } -static TILE_GET_INFO( get_srdarwin_fix_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_srdarwin_fix_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); - int tile = state->m_videoram[tile_index]; + int tile = m_videoram[tile_index]; int color = 0; /* ? */ if (color > 1) @@ -498,7 +492,7 @@ static TILE_GET_INFO( get_srdarwin_fix_tile_info ) else tileinfo.category = 0; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -506,17 +500,16 @@ static TILE_GET_INFO( get_srdarwin_fix_tile_info ) } //AT: improved priority and fixed stage 4+ crashes caused by bank overflow -static TILE_GET_INFO( get_srdarwin_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_srdarwin_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); - int tile = state->m_bg_data[2 * tile_index + 1] + (state->m_bg_data[2 * tile_index] << 8); + int tile = m_bg_data[2 * tile_index + 1] + (m_bg_data[2 * tile_index] << 8); int color = tile >> 12 & 3; int bank; tile = tile & 0x3ff; bank = (tile / 0x100) + 2; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( bank, tile, color, @@ -527,8 +520,8 @@ static TILE_GET_INFO( get_srdarwin_tile_info ) VIDEO_START( srdarwin ) { dec8_state *state = machine.driver_data<dec8_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_srdarwin_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 16); - state->m_fix_tilemap = tilemap_create(machine, get_srdarwin_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_srdarwin_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 16); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_srdarwin_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); //* draw as background only @@ -566,33 +559,31 @@ SCREEN_UPDATE_IND16( garyoret ) return 0; } -static TILE_GET_INFO( get_gondo_fix_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_gondo_fix_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); int offs = tile_index * 2; - int tile = state->m_videoram[offs + 1] + (state->m_videoram[offs] << 8); + int tile = m_videoram[offs + 1] + (m_videoram[offs] << 8); int color = (tile & 0x7000) >> 12; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile&0xfff, color, 0); } -static TILE_GET_INFO( get_gondo_tile_info ) +TILE_GET_INFO_MEMBER(dec8_state::get_gondo_tile_info) { - dec8_state *state = machine.driver_data<dec8_state>(); int offs = tile_index * 2; - int tile = state->m_bg_data[offs + 1] + (state->m_bg_data[offs] << 8); + int tile = m_bg_data[offs + 1] + (m_bg_data[offs] << 8); int color = tile>> 12; - if (color > 7 && state->m_game_uses_priority) + if (color > 7 && m_game_uses_priority) tileinfo.category = 1; else tileinfo.category = 0; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile&0xfff, color, @@ -602,8 +593,8 @@ static TILE_GET_INFO( get_gondo_tile_info ) VIDEO_START( gondo ) { dec8_state *state = machine.driver_data<dec8_state>(); - state->m_fix_tilemap = tilemap_create(machine, get_gondo_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, get_gondo_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transmask(0, 0x00ff, 0xff00); /* Bottom 8 pens */ @@ -613,8 +604,8 @@ VIDEO_START( gondo ) VIDEO_START( garyoret ) { dec8_state *state = machine.driver_data<dec8_state>(); - state->m_fix_tilemap = tilemap_create(machine, get_gondo_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, get_gondo_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); state->m_game_uses_priority = 1; diff --git a/src/mame/video/deniam.c b/src/mame/video/deniam.c index a93987d4258..409d2c91cbc 100644 --- a/src/mame/video/deniam.c +++ b/src/mame/video/deniam.c @@ -54,41 +54,38 @@ DRIVER_INIT_MEMBER(deniam_state,karianx) ***************************************************************************/ -static TILEMAP_MAPPER( scan_pages ) +TILEMAP_MAPPER_MEMBER(deniam_state::scan_pages) { /* logical (col,row) -> memory offset */ return (col & 0x3f) + ((row & 0x1f) << 6) + ((col & 0x40) << 5) + ((row & 0x20) << 7); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(deniam_state::get_bg_tile_info) { - deniam_state *state = machine.driver_data<deniam_state>(); int page = tile_index >> 11; - UINT16 attr = state->m_videoram[state->m_bg_page[page] * 0x0800 + (tile_index & 0x7ff)]; - SET_TILE_INFO( + UINT16 attr = m_videoram[m_bg_page[page] * 0x0800 + (tile_index & 0x7ff)]; + SET_TILE_INFO_MEMBER( 0, attr, (attr & 0x1fc0) >> 6, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(deniam_state::get_fg_tile_info) { - deniam_state *state = machine.driver_data<deniam_state>(); int page = tile_index >> 11; - UINT16 attr = state->m_videoram[state->m_fg_page[page] * 0x0800 + (tile_index & 0x7ff)]; - SET_TILE_INFO( + UINT16 attr = m_videoram[m_fg_page[page] * 0x0800 + (tile_index & 0x7ff)]; + SET_TILE_INFO_MEMBER( 0, attr, (attr & 0x1fc0) >> 6, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(deniam_state::get_tx_tile_info) { - deniam_state *state = machine.driver_data<deniam_state>(); - UINT16 attr = state->m_textram[tile_index]; - SET_TILE_INFO( + UINT16 attr = m_textram[tile_index]; + SET_TILE_INFO_MEMBER( 0, attr & 0xf1ff, (attr & 0x0e00) >> 9, @@ -106,9 +103,9 @@ static TILE_GET_INFO( get_tx_tile_info ) VIDEO_START( deniam ) { deniam_state *state = machine.driver_data<deniam_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, scan_pages, 8, 8, 128, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, scan_pages, 8, 8, 128, 64); - 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(deniam_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(deniam_state::scan_pages),state), 8, 8, 128, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deniam_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(deniam_state::scan_pages),state), 8, 8, 128, 64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deniam_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_tx_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/djboy.c b/src/mame/video/djboy.c index d22385597f1..43b8f412391 100644 --- a/src/mame/video/djboy.c +++ b/src/mame/video/djboy.c @@ -17,17 +17,16 @@ WRITE8_MEMBER(djboy_state::djboy_scrolly_w) m_scrolly = data; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(djboy_state::get_bg_tile_info) { - djboy_state *state = machine.driver_data<djboy_state>(); - UINT8 attr = state->m_videoram[tile_index + 0x800]; - int code = state->m_videoram[tile_index] + (attr & 0xf) * 256; + UINT8 attr = m_videoram[tile_index + 0x800]; + int code = m_videoram[tile_index] + (attr & 0xf) * 256; int color = attr >> 4; if (color & 8) code |= 0x1000; - SET_TILE_INFO(1, code, color, 0); /* no flip */ + SET_TILE_INFO_MEMBER(1, code, color, 0); /* no flip */ } WRITE8_MEMBER(djboy_state::djboy_videoram_w) @@ -40,7 +39,7 @@ WRITE8_MEMBER(djboy_state::djboy_videoram_w) VIDEO_START( djboy ) { djboy_state *state = machine.driver_data<djboy_state>(); - state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(djboy_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); } WRITE8_MEMBER(djboy_state::djboy_paletteram_w) diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c index bff7da563d4..361bee35a85 100644 --- a/src/mame/video/dkong.c +++ b/src/mame/video/dkong.c @@ -452,23 +452,21 @@ PALETTE_INIT( dkong3 ) state->m_color_codes = color_prom; /* we'll need it later */ } -static TILE_GET_INFO( dkong_bg_tile_info ) +TILE_GET_INFO_MEMBER(dkong_state::dkong_bg_tile_info) { - dkong_state *state = machine.driver_data<dkong_state>(); - int code = state->m_video_ram[tile_index] + 256 * state->m_gfx_bank; - int color = (state->m_color_codes[tile_index % 32 + 32 * (tile_index / 32 / 4)] & 0x0f) + 0x10 * state->m_palette_bank; + int code = m_video_ram[tile_index] + 256 * m_gfx_bank; + int color = (m_color_codes[tile_index % 32 + 32 * (tile_index / 32 / 4)] & 0x0f) + 0x10 * m_palette_bank; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( radarscp1_bg_tile_info ) +TILE_GET_INFO_MEMBER(dkong_state::radarscp1_bg_tile_info) { - dkong_state *state = machine.driver_data<dkong_state>(); - int code = state->m_video_ram[tile_index] + 256 * state->m_gfx_bank; - int color = (state->m_color_codes[tile_index % 32] & 0x0f); - color = color | (state->m_palette_bank<<4); + int code = m_video_ram[tile_index] + 256 * m_gfx_bank; + int color = (m_color_codes[tile_index % 32] & 0x0f); + color = color | (m_palette_bank<<4); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } /*************************************************************************** @@ -942,11 +940,11 @@ VIDEO_START( dkong ) /* fall through */ case HARDWARE_TKG04: case HARDWARE_TKG02: - state->m_bg_tilemap = tilemap_create(machine, dkong_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::dkong_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scrolldx(0, 128); break; case HARDWARE_TRS01: - state->m_bg_tilemap = tilemap_create(machine, radarscp1_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::radarscp1_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scrolldx(0, 128); machine.primary_screen->register_screen_bitmap(state->m_bg_bits); diff --git a/src/mame/video/docastle.c b/src/mame/video/docastle.c index 041c1b0586c..fdbb9854fcf 100644 --- a/src/mame/video/docastle.c +++ b/src/mame/video/docastle.c @@ -101,19 +101,18 @@ WRITE8_MEMBER(docastle_state::docastle_flipscreen_on_w) m_do_tilemap->mark_all_dirty(); } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(docastle_state::get_tile_info) { - docastle_state *state = machine.driver_data<docastle_state>(); - int code = state->m_videoram[tile_index] + 8 * (state->m_colorram[tile_index] & 0x20); - int color = state->m_colorram[tile_index] & 0x1f; + int code = m_videoram[tile_index] + 8 * (m_colorram[tile_index] & 0x20); + int color = m_colorram[tile_index] & 0x1f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } static void video_start_common( running_machine &machine, UINT32 tile_transmask ) { docastle_state *state = machine.driver_data<docastle_state>(); - state->m_do_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_do_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(docastle_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_do_tilemap->set_transmask(0, tile_transmask, 0x0000); } diff --git a/src/mame/video/dogfgt.c b/src/mame/video/dogfgt.c index bda7ef198ba..b931095f8a5 100644 --- a/src/mame/video/dogfgt.c +++ b/src/mame/video/dogfgt.c @@ -49,13 +49,12 @@ PALETTE_INIT( dogfgt ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(dogfgt_state::get_tile_info) { - dogfgt_state *state = machine.driver_data<dogfgt_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_bgvideoram[tile_index], - state->m_bgvideoram[tile_index + 0x400] & 0x03, + m_bgvideoram[tile_index], + m_bgvideoram[tile_index + 0x400] & 0x03, 0); } @@ -69,7 +68,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( dogfgt ) { dogfgt_state *state = machine.driver_data<dogfgt_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dogfgt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_bitmapram = auto_alloc_array(machine, UINT8, BITMAPRAM_SIZE); state->save_pointer(NAME(state->m_bitmapram), BITMAPRAM_SIZE); diff --git a/src/mame/video/dooyong.c b/src/mame/video/dooyong.c index e2fbc941099..0f129675a7c 100644 --- a/src/mame/video/dooyong.c +++ b/src/mame/video/dooyong.c @@ -261,61 +261,55 @@ INLINE void rshark_get_tile_info(running_machine &machine, tile_data &tileinfo, SET_TILE_INFO(graphics, code, color, flags); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(dooyong_state::get_bg_tile_info) { - dooyong_state *state = machine.driver_data<dooyong_state>(); - if (state->m_bg_tilerom2 != NULL) - rshark_get_tile_info(machine, tileinfo, tile_index, state->m_bg_tilerom, state->m_bg_tilerom2, state->m_bgscroll8, state->m_bg_gfx); + if (m_bg_tilerom2 != NULL) + rshark_get_tile_info(machine(), tileinfo, tile_index, m_bg_tilerom, m_bg_tilerom2, m_bgscroll8, m_bg_gfx); else - lastday_get_tile_info(machine, tileinfo, tile_index, state->m_bg_tilerom, state->m_bgscroll8, state->m_bg_gfx); + lastday_get_tile_info(machine(), tileinfo, tile_index, m_bg_tilerom, m_bgscroll8, m_bg_gfx); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(dooyong_state::get_bg2_tile_info) { - dooyong_state *state = machine.driver_data<dooyong_state>(); - if (state->m_bg2_tilerom2 != NULL) - rshark_get_tile_info(machine, tileinfo, tile_index, state->m_bg2_tilerom, state->m_bg2_tilerom2, state->m_bg2scroll8, state->m_bg2_gfx); + if (m_bg2_tilerom2 != NULL) + rshark_get_tile_info(machine(), tileinfo, tile_index, m_bg2_tilerom, m_bg2_tilerom2, m_bg2scroll8, m_bg2_gfx); else - lastday_get_tile_info(machine, tileinfo, tile_index, state->m_bg2_tilerom, state->m_bg2scroll8, state->m_bg2_gfx); + lastday_get_tile_info(machine(), tileinfo, tile_index, m_bg2_tilerom, m_bg2scroll8, m_bg2_gfx); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(dooyong_state::get_fg_tile_info) { - dooyong_state *state = machine.driver_data<dooyong_state>(); - if (state->m_fg_tilerom2 != NULL) - rshark_get_tile_info(machine, tileinfo, tile_index, state->m_fg_tilerom, state->m_fg_tilerom2, state->m_fgscroll8, state->m_fg_gfx); + if (m_fg_tilerom2 != NULL) + rshark_get_tile_info(machine(), tileinfo, tile_index, m_fg_tilerom, m_fg_tilerom2, m_fgscroll8, m_fg_gfx); else - lastday_get_tile_info(machine, tileinfo, tile_index, state->m_fg_tilerom, state->m_fgscroll8, state->m_fg_gfx); + lastday_get_tile_info(machine(), tileinfo, tile_index, m_fg_tilerom, m_fgscroll8, m_fg_gfx); } -static TILE_GET_INFO( get_fg2_tile_info ) +TILE_GET_INFO_MEMBER(dooyong_state::get_fg2_tile_info) { - dooyong_state *state = machine.driver_data<dooyong_state>(); - if (state->m_fg2_tilerom2 != NULL) - rshark_get_tile_info(machine, tileinfo, tile_index, state->m_fg2_tilerom, state->m_fg2_tilerom2, state->m_fg2scroll8, state->m_fg2_gfx); + if (m_fg2_tilerom2 != NULL) + rshark_get_tile_info(machine(), tileinfo, tile_index, m_fg2_tilerom, m_fg2_tilerom2, m_fg2scroll8, m_fg2_gfx); else - lastday_get_tile_info(machine, tileinfo, tile_index, state->m_fg2_tilerom, state->m_fg2scroll8, state->m_fg2_gfx); + lastday_get_tile_info(machine(), tileinfo, tile_index, m_fg2_tilerom, m_fg2scroll8, m_fg2_gfx); } /* flytiger uses some palette banking technique or something maybe a trash protection */ -static TILE_GET_INFO( flytiger_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(dooyong_state::flytiger_get_fg_tile_info) { - dooyong_state *state = machine.driver_data<dooyong_state>(); - const UINT8 *tilerom = state->m_fg_tilerom; + const UINT8 *tilerom = m_fg_tilerom; - int offs = (tile_index + (state->m_fgscroll8[1] << 6)) * 2; + int offs = (tile_index + (m_fgscroll8[1] << 6)) * 2; int attr = tilerom[offs]; int code = tilerom[offs + 1] | ((attr & 0x01) << 8) | ((attr & 0x80) << 2); int color = (attr & 0x78) >> 3; int flags = ((attr & 0x02) ? TILE_FLIPX : 0) | ((attr & 0x04) ? TILE_FLIPY : 0); - SET_TILE_INFO(state->m_fg_gfx, code, color, flags); + SET_TILE_INFO_MEMBER(m_fg_gfx, code, color, flags); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(dooyong_state::get_tx_tile_info) { - dooyong_state *state = machine.driver_data<dooyong_state>(); /* Each tile takes two bytes of memory: MSB LSB [offs + 0x00] cccc cccc (bits 7-0 of gfx code) @@ -323,20 +317,20 @@ static TILE_GET_INFO( get_tx_tile_info ) c = gfx code C = color code */ int offs, attr, code, color; - if (state->m_tx_tilemap_mode == 0) + if (m_tx_tilemap_mode == 0) { /* lastday/gulfstrm/pollux/flytiger */ offs = tile_index; - attr = state->m_txvideoram[offs | 0x0800]; + attr = m_txvideoram[offs | 0x0800]; } else { /* bluehawk/primella */ offs = tile_index * 2; - attr = state->m_txvideoram[offs + 1]; + attr = m_txvideoram[offs + 1]; } - code = state->m_txvideoram[offs] | ((attr & 0x0f) << 8); + code = m_txvideoram[offs] | ((attr & 0x0f) << 8); color = (attr & 0xf0) >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -638,11 +632,11 @@ VIDEO_START( lastday ) state->m_tx_tilemap_mode = 0; /* Create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); /* Configure tilemap transparency */ @@ -678,11 +672,11 @@ VIDEO_START( gulfstrm ) state->m_tx_tilemap_mode = 0; /* Create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); /* Configure tilemap transparency */ @@ -717,11 +711,11 @@ VIDEO_START( pollux ) state->m_tx_tilemap_mode = 0; /* Create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); /* Configure tilemap transparency */ @@ -756,13 +750,13 @@ VIDEO_START( bluehawk ) state->m_tx_tilemap_mode = 1; /* Create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_fg2_tilemap = tilemap_create(machine, get_fg2_tile_info, TILEMAP_SCAN_COLS, + state->m_fg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg2_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); /* Configure tilemap transparency */ @@ -794,11 +788,11 @@ VIDEO_START( flytiger ) state->m_tx_tilemap_mode = 0; /* Create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_fg_tilemap = tilemap_create(machine, flytiger_get_fg_tile_info, TILEMAP_SCAN_COLS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::flytiger_get_fg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); /* Configure tilemap transparency */ @@ -830,11 +824,11 @@ VIDEO_START( primella ) state->m_tx_tilemap_mode = 1; /* Create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); /* Configure tilemap transparency */ @@ -870,13 +864,13 @@ VIDEO_START( rshark ) state->m_fg2_gfx = 1; /* Create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_COLS, + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); - state->m_fg2_tilemap = tilemap_create(machine, get_fg2_tile_info, TILEMAP_SCAN_COLS, + state->m_fg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); /* Configure tilemap transparency */ @@ -905,7 +899,7 @@ VIDEO_START( popbingo ) state->m_bg_gfx = 1; /* Create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 32, 8); state->m_bg2_tilemap = state->m_fg_tilemap = state->m_fg2_tilemap = NULL; /* Stop scroll handler from crashing on these */ diff --git a/src/mame/video/dragrace.c b/src/mame/video/dragrace.c index 69fab6c5b5a..db99f595974 100644 --- a/src/mame/video/dragrace.c +++ b/src/mame/video/dragrace.c @@ -8,10 +8,9 @@ Atari Drag Race video emulation #include "includes/dragrace.h" -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(dragrace_state::get_tile_info) { - dragrace_state *state = machine.driver_data<dragrace_state>(); - UINT8 code = state->m_playfield_ram[tile_index]; + UINT8 code = m_playfield_ram[tile_index]; int num = 0; int col = 0; @@ -36,14 +35,14 @@ static TILE_GET_INFO( get_tile_info ) break; } - SET_TILE_INFO(((code & 0xA0) == 0x80) ? 1 : 0, num, col, 0); + SET_TILE_INFO_MEMBER(((code & 0xA0) == 0x80) ? 1 : 0, num, col, 0); } VIDEO_START( dragrace ) { dragrace_state *state = machine.driver_data<dragrace_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dragrace_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); } diff --git a/src/mame/video/drgnmst.c b/src/mame/video/drgnmst.c index 8f03caf6949..4e57e62cbe8 100644 --- a/src/mame/video/drgnmst.c +++ b/src/mame/video/drgnmst.c @@ -6,15 +6,14 @@ #include "includes/drgnmst.h" -static TILE_GET_INFO( get_drgnmst_fg_tile_info ) +TILE_GET_INFO_MEMBER(drgnmst_state::get_drgnmst_fg_tile_info) { - drgnmst_state *state = machine.driver_data<drgnmst_state>(); int tileno, colour, flipyx; - tileno = state->m_fg_videoram[tile_index * 2] & 0xfff; - colour = state->m_fg_videoram[tile_index * 2 + 1] & 0x1f; - flipyx = (state->m_fg_videoram[tile_index * 2 + 1] & 0x60)>>5; + tileno = m_fg_videoram[tile_index * 2] & 0xfff; + colour = m_fg_videoram[tile_index * 2 + 1] & 0x1f; + flipyx = (m_fg_videoram[tile_index * 2 + 1] & 0x60)>>5; - SET_TILE_INFO(1, tileno, colour, TILE_FLIPYX(flipyx)); + SET_TILE_INFO_MEMBER(1, tileno, colour, TILE_FLIPYX(flipyx)); } WRITE16_MEMBER(drgnmst_state::drgnmst_fg_videoram_w) @@ -23,15 +22,14 @@ WRITE16_MEMBER(drgnmst_state::drgnmst_fg_videoram_w) m_fg_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_drgnmst_bg_tile_info ) +TILE_GET_INFO_MEMBER(drgnmst_state::get_drgnmst_bg_tile_info) { - drgnmst_state *state = machine.driver_data<drgnmst_state>(); int tileno, colour, flipyx; - tileno = (state->m_bg_videoram[tile_index * 2]& 0x1fff) + 0x800; - colour = state->m_bg_videoram[tile_index * 2 + 1] & 0x1f; - flipyx = (state->m_bg_videoram[tile_index * 2 + 1] & 0x60) >> 5; + tileno = (m_bg_videoram[tile_index * 2]& 0x1fff) + 0x800; + colour = m_bg_videoram[tile_index * 2 + 1] & 0x1f; + flipyx = (m_bg_videoram[tile_index * 2 + 1] & 0x60) >> 5; - SET_TILE_INFO(3, tileno, colour, TILE_FLIPYX(flipyx)); + SET_TILE_INFO_MEMBER(3, tileno, colour, TILE_FLIPYX(flipyx)); } WRITE16_MEMBER(drgnmst_state::drgnmst_bg_videoram_w) @@ -40,15 +38,14 @@ WRITE16_MEMBER(drgnmst_state::drgnmst_bg_videoram_w) m_bg_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_drgnmst_md_tile_info ) +TILE_GET_INFO_MEMBER(drgnmst_state::get_drgnmst_md_tile_info) { - drgnmst_state *state = machine.driver_data<drgnmst_state>(); int tileno, colour, flipyx; - tileno = (state->m_md_videoram[tile_index * 2] & 0x7fff) - 0x2000; - colour = state->m_md_videoram[tile_index * 2 + 1] & 0x1f; - flipyx = (state->m_md_videoram[tile_index * 2 + 1] & 0x60) >> 5; + tileno = (m_md_videoram[tile_index * 2] & 0x7fff) - 0x2000; + colour = m_md_videoram[tile_index * 2 + 1] & 0x1f; + flipyx = (m_md_videoram[tile_index * 2 + 1] & 0x60) >> 5; - SET_TILE_INFO(2, tileno, colour, TILE_FLIPYX(flipyx)); + SET_TILE_INFO_MEMBER(2, tileno, colour, TILE_FLIPYX(flipyx)); } WRITE16_MEMBER(drgnmst_state::drgnmst_md_videoram_w) @@ -105,17 +102,17 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,const r } -static TILEMAP_MAPPER( drgnmst_fg_tilemap_scan_cols ) +TILEMAP_MAPPER_MEMBER(drgnmst_state::drgnmst_fg_tilemap_scan_cols) { return (col * 32) + (row & 0x1f) + ((row & 0xe0) >> 5) * 2048; } -static TILEMAP_MAPPER( drgnmst_md_tilemap_scan_cols ) +TILEMAP_MAPPER_MEMBER(drgnmst_state::drgnmst_md_tilemap_scan_cols) { return (col * 16) + (row & 0x0f) + ((row & 0xf0) >> 4) * 1024; } -static TILEMAP_MAPPER( drgnmst_bg_tilemap_scan_cols ) +TILEMAP_MAPPER_MEMBER(drgnmst_state::drgnmst_bg_tilemap_scan_cols) { return (col * 8) + (row & 0x07) + ((row & 0xf8) >> 3) * 512; } @@ -123,13 +120,13 @@ static TILEMAP_MAPPER( drgnmst_bg_tilemap_scan_cols ) VIDEO_START(drgnmst) { drgnmst_state *state = machine.driver_data<drgnmst_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_drgnmst_fg_tile_info, drgnmst_fg_tilemap_scan_cols, 8, 8, 64,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drgnmst_state::get_drgnmst_fg_tile_info),state), tilemap_mapper_delegate(FUNC(drgnmst_state::drgnmst_fg_tilemap_scan_cols),state), 8, 8, 64,64); state->m_fg_tilemap->set_transparent_pen(15); - state->m_md_tilemap = tilemap_create(machine, get_drgnmst_md_tile_info, drgnmst_md_tilemap_scan_cols, 16, 16, 64,64); + state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drgnmst_state::get_drgnmst_md_tile_info),state), tilemap_mapper_delegate(FUNC(drgnmst_state::drgnmst_md_tilemap_scan_cols),state), 16, 16, 64,64); state->m_md_tilemap->set_transparent_pen(15); - state->m_bg_tilemap = tilemap_create(machine, get_drgnmst_bg_tile_info, drgnmst_bg_tilemap_scan_cols, 32, 32, 64,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drgnmst_state::get_drgnmst_bg_tile_info),state), tilemap_mapper_delegate(FUNC(drgnmst_state::drgnmst_bg_tilemap_scan_cols),state), 32, 32, 64,64); state->m_bg_tilemap->set_transparent_pen(15); // do the other tilemaps have rowscroll too? probably not .. diff --git a/src/mame/video/drmicro.c b/src/mame/video/drmicro.c index adbe41b4f0f..9b9f832d965 100644 --- a/src/mame/video/drmicro.c +++ b/src/mame/video/drmicro.c @@ -26,34 +26,32 @@ WRITE8_MEMBER(drmicro_state::drmicro_videoram_w) /****************************************************************************/ -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(drmicro_state::get_bg1_tile_info) { - drmicro_state *state = machine.driver_data<drmicro_state>(); int code, col, flags; - code = state->m_videoram[tile_index + 0x0800]; - col = state->m_videoram[tile_index + 0x0c00]; + code = m_videoram[tile_index + 0x0800]; + col = m_videoram[tile_index + 0x0c00]; code += (col & 0xc0) << 2; flags = ((col & 0x20) ? TILEMAP_FLIPY : 0) | ((col & 0x10) ? TILEMAP_FLIPX : 0); col &= 0x0f; - SET_TILE_INFO( 0, code, col, flags); + SET_TILE_INFO_MEMBER( 0, code, col, flags); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(drmicro_state::get_bg2_tile_info) { - drmicro_state *state = machine.driver_data<drmicro_state>(); int code, col, flags; - code = state->m_videoram[tile_index + 0x0000]; - col = state->m_videoram[tile_index + 0x0400]; + code = m_videoram[tile_index + 0x0000]; + col = m_videoram[tile_index + 0x0400]; code += (col & 0xc0) << 2; flags = ((col & 0x20) ? TILEMAP_FLIPY : 0) | ((col & 0x10) ? TILEMAP_FLIPX : 0); col &= 0x0f; - SET_TILE_INFO( 1, code, col, flags); + SET_TILE_INFO_MEMBER( 1, code, col, flags); } /****************************************************************************/ @@ -110,8 +108,8 @@ VIDEO_START( drmicro) state->m_videoram = auto_alloc_array(machine, UINT8, 0x1000); state->save_pointer(NAME(state->m_videoram), 0x1000); - state->m_bg1 = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg2 = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drmicro_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drmicro_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg2->set_transparent_pen(0); } diff --git a/src/mame/video/dynduke.c b/src/mame/video/dynduke.c index 07a76baef3a..d64497cbe61 100644 --- a/src/mame/video/dynduke.c +++ b/src/mame/video/dynduke.c @@ -33,46 +33,43 @@ WRITE16_MEMBER(dynduke_state::dynduke_text_w) m_tx_layer->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(dynduke_state::get_bg_tile_info) { - dynduke_state *state = machine.driver_data<dynduke_state>(); - int tile=state->m_back_data[tile_index]; + int tile=m_back_data[tile_index]; int color=tile >> 12; tile=tile&0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - tile+state->m_back_bankbase, + tile+m_back_bankbase, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(dynduke_state::get_fg_tile_info) { - dynduke_state *state = machine.driver_data<dynduke_state>(); - int tile=state->m_fore_data[tile_index]; + int tile=m_fore_data[tile_index]; int color=tile >> 12; tile=tile&0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, - tile+state->m_fore_bankbase, + tile+m_fore_bankbase, color, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(dynduke_state::get_tx_tile_info) { - dynduke_state *state = machine.driver_data<dynduke_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int tile=videoram[tile_index]; int color=(tile >> 8) & 0x0f; tile = (tile & 0xff) | ((tile & 0xc000) >> 6); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -82,9 +79,9 @@ static TILE_GET_INFO( get_tx_tile_info ) VIDEO_START( dynduke ) { dynduke_state *state = machine.driver_data<dynduke_state>(); - state->m_bg_layer = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS, 16,16,32,32); - state->m_fg_layer = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,16,16,32,32); - state->m_tx_layer = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynduke_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS, 16,16,32,32); + state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynduke_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,16,16,32,32); + state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynduke_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); state->m_fg_layer->set_transparent_pen(15); state->m_tx_layer->set_transparent_pen(15); diff --git a/src/mame/video/eprom.c b/src/mame/video/eprom.c index e14621a3b42..ce4eb69aa70 100644 --- a/src/mame/video/eprom.c +++ b/src/mame/video/eprom.c @@ -51,36 +51,33 @@ static void update_palette(running_machine &machine) * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(eprom_state::get_alpha_tile_info) { - eprom_state *state = machine.driver_data<eprom_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0x3ff; int color = ((data >> 10) & 0x0f) | ((data >> 9) & 0x20); int opaque = data & 0x8000; - SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(eprom_state::get_playfield_tile_info) { - eprom_state *state = machine.driver_data<eprom_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] >> 8; int code = data1 & 0x7fff; int color = 0x10 + (data2 & 0x0f); - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); } -static TILE_GET_INFO( guts_get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(eprom_state::guts_get_playfield_tile_info) { - eprom_state *state = machine.driver_data<eprom_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] >> 8; int code = data1 & 0x7fff; int color = 0x10 + (data2 & 0x0f); - SET_TILE_INFO(2, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(2, code, color, (data1 >> 15) & 1); } @@ -132,13 +129,13 @@ VIDEO_START( eprom ) eprom_state *state = machine.driver_data<eprom_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(eprom_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(eprom_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* save states */ @@ -188,13 +185,13 @@ VIDEO_START( guts ) eprom_state *state = machine.driver_data<eprom_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, guts_get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(eprom_state::guts_get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(eprom_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* save states */ diff --git a/src/mame/video/equites.c b/src/mame/video/equites.c index ee95c912bbf..91cecf61562 100644 --- a/src/mame/video/equites.c +++ b/src/mame/video/equites.c @@ -62,48 +62,44 @@ PALETTE_INIT( splndrbt ) * *************************************/ -static TILE_GET_INFO( equites_fg_info ) +TILE_GET_INFO_MEMBER(equites_state::equites_fg_info) { - equites_state *state = machine.driver_data<equites_state>(); - int tile = state->m_fg_videoram[2 * tile_index]; - int color = state->m_fg_videoram[2 * tile_index + 1] & 0x1f; + int tile = m_fg_videoram[2 * tile_index]; + int color = m_fg_videoram[2 * tile_index + 1] & 0x1f; - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); if (color & 0x10) tileinfo.flags |= TILE_FORCE_LAYER0; } -static TILE_GET_INFO( splndrbt_fg_info ) +TILE_GET_INFO_MEMBER(equites_state::splndrbt_fg_info) { - equites_state *state = machine.driver_data<equites_state>(); - int tile = state->m_fg_videoram[2 * tile_index] + (state->m_fg_char_bank << 8); - int color = state->m_fg_videoram[2 * tile_index + 1] & 0x3f; + int tile = m_fg_videoram[2 * tile_index] + (m_fg_char_bank << 8); + int color = m_fg_videoram[2 * tile_index + 1] & 0x3f; - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); if (color & 0x10) tileinfo.flags |= TILE_FORCE_LAYER0; } -static TILE_GET_INFO( equites_bg_info ) +TILE_GET_INFO_MEMBER(equites_state::equites_bg_info) { - equites_state *state = machine.driver_data<equites_state>(); - int data = state->m_bg_videoram[tile_index]; + int data = m_bg_videoram[tile_index]; int tile = data & 0x1ff; int color = (data & 0xf000) >> 12; int fxy = (data & 0x0600) >> 9; - SET_TILE_INFO(1, tile, color, TILE_FLIPXY(fxy)); + SET_TILE_INFO_MEMBER(1, tile, color, TILE_FLIPXY(fxy)); } -static TILE_GET_INFO( splndrbt_bg_info ) +TILE_GET_INFO_MEMBER(equites_state::splndrbt_bg_info) { - equites_state *state = machine.driver_data<equites_state>(); - int data = state->m_bg_videoram[tile_index]; + int data = m_bg_videoram[tile_index]; int tile = data & 0x1ff; int color = (data & 0xf800) >> 11; int fxy = (data & 0x0600) >> 9; - SET_TILE_INFO(1, tile, color, TILE_FLIPXY(fxy)); + SET_TILE_INFO_MEMBER(1, tile, color, TILE_FLIPXY(fxy)); tileinfo.group = color; } @@ -121,10 +117,10 @@ VIDEO_START( equites ) state->m_fg_videoram = auto_alloc_array(machine, UINT8, 0x800); state->save_pointer(NAME(state->m_fg_videoram), 0x800); - state->m_fg_tilemap = tilemap_create(machine, equites_fg_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(equites_state::equites_fg_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); - state->m_bg_tilemap = tilemap_create(machine, equites_bg_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(equites_state::equites_bg_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); state->m_bg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scrolldx(0, -10); } @@ -137,11 +133,11 @@ VIDEO_START( splndrbt ) state->m_fg_videoram = auto_alloc_array(machine, UINT8, 0x800); state->save_pointer(NAME(state->m_fg_videoram), 0x800); - state->m_fg_tilemap = tilemap_create(machine, splndrbt_fg_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(equites_state::splndrbt_fg_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_scrolldx(8, -8); - state->m_bg_tilemap = tilemap_create(machine, splndrbt_bg_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(equites_state::splndrbt_bg_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[1], 0x10); } diff --git a/src/mame/video/esd16.c b/src/mame/video/esd16.c index 1185e4277dd..4e543a0f208 100644 --- a/src/mame/video/esd16.c +++ b/src/mame/video/esd16.c @@ -50,48 +50,44 @@ Note: if MAME_DEBUG is defined, pressing Z with: ***************************************************************************/ -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(esd16_state::get_tile_info_0) { - esd16_state *state = machine.driver_data<esd16_state>(); - UINT16 code = state->m_vram_0[tile_index]; - SET_TILE_INFO( + UINT16 code = m_vram_0[tile_index]; + SET_TILE_INFO_MEMBER( 1, code, - state->m_tilemap0_color, + m_tilemap0_color, 0); } -static TILE_GET_INFO( get_tile_info_0_16x16 ) +TILE_GET_INFO_MEMBER(esd16_state::get_tile_info_0_16x16) { - esd16_state *state = machine.driver_data<esd16_state>(); - UINT16 code = state->m_vram_0[tile_index]; - SET_TILE_INFO( + UINT16 code = m_vram_0[tile_index]; + SET_TILE_INFO_MEMBER( 2, code, - state->m_tilemap0_color, + m_tilemap0_color, 0); } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(esd16_state::get_tile_info_1) { - esd16_state *state = machine.driver_data<esd16_state>(); - UINT16 code = state->m_vram_1[tile_index]; - SET_TILE_INFO( + UINT16 code = m_vram_1[tile_index]; + SET_TILE_INFO_MEMBER( 1, code, - state->m_tilemap1_color, + m_tilemap1_color, 0); } -static TILE_GET_INFO( get_tile_info_1_16x16 ) +TILE_GET_INFO_MEMBER(esd16_state::get_tile_info_1_16x16) { - esd16_state *state = machine.driver_data<esd16_state>(); - UINT16 code = state->m_vram_1[tile_index]; - SET_TILE_INFO( + UINT16 code = m_vram_1[tile_index]; + SET_TILE_INFO_MEMBER( 2, code, - state->m_tilemap1_color, + m_tilemap1_color, 0); } @@ -141,14 +137,14 @@ VIDEO_START( esd16 ) { esd16_state *state = machine.driver_data<esd16_state>(); - state->m_tilemap_0 = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40); - state->m_tilemap_1 = tilemap_create( machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40); + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40); /* swatpolc changes tilemap 0 to 16x16 at various times */ - state->m_tilemap_0_16x16 = tilemap_create(machine, get_tile_info_0_16x16, TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); + state->m_tilemap_0_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_0_16x16),state), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); /* hedpanic changes tilemap 1 to 16x16 at various times */ - state->m_tilemap_1_16x16 = tilemap_create(machine, get_tile_info_1_16x16, TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); + state->m_tilemap_1_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_1_16x16),state), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); state->m_tilemap_0->set_scrolldx(-0x60 + 2, -0x60); state->m_tilemap_1->set_scrolldx(-0x60, -0x60 + 2); diff --git a/src/mame/video/espial.c b/src/mame/video/espial.c index 20b9fa56d7b..757dd0d70c3 100644 --- a/src/mame/video/espial.c +++ b/src/mame/video/espial.c @@ -66,13 +66,12 @@ PALETTE_INIT( espial ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(espial_state::get_tile_info) { - espial_state *state = machine.driver_data<espial_state>(); - UINT8 code = state->m_videoram[tile_index]; - UINT8 col = state->m_colorram[tile_index]; - UINT8 attr = state->m_attributeram[tile_index]; - SET_TILE_INFO(0, + UINT8 code = m_videoram[tile_index]; + UINT8 col = m_colorram[tile_index]; + UINT8 attr = m_attributeram[tile_index]; + SET_TILE_INFO_MEMBER(0, code | ((attr & 0x03) << 8), col & 0x3f, TILE_FLIPYX(attr >> 2)); @@ -90,7 +89,7 @@ VIDEO_START( espial ) { espial_state *state = machine.driver_data<espial_state>(); - 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(espial_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); state->save_item(NAME(state->m_flipscreen)); @@ -101,7 +100,7 @@ VIDEO_START( netwars ) espial_state *state = machine.driver_data<espial_state>(); /* Net Wars has a tile map that's twice as big as Espial's */ - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(espial_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 64); state->m_bg_tilemap->set_scroll_cols(32); state->m_bg_tilemap->set_scrolldy(0, 0x100); diff --git a/src/mame/video/exedexes.c b/src/mame/video/exedexes.c index 5b9f4b463e8..6a71551f914 100644 --- a/src/mame/video/exedexes.c +++ b/src/mame/video/exedexes.c @@ -127,43 +127,42 @@ WRITE8_MEMBER(exedexes_state::exedexes_gfxctrl_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(exedexes_state::get_bg_tile_info) { - UINT8 *tilerom = machine.root_device().memregion("gfx5")->base(); + UINT8 *tilerom = machine().root_device().memregion("gfx5")->base(); int attr = tilerom[tile_index]; int code = attr & 0x3f; int color = tilerom[tile_index + (8 * 8)]; int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(exedexes_state::get_fg_tile_info) { - int code = machine.root_device().memregion("gfx5")->base()[tile_index]; + int code = machine().root_device().memregion("gfx5")->base()[tile_index]; - SET_TILE_INFO(2, code, 0, 0); + SET_TILE_INFO_MEMBER(2, code, 0, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(exedexes_state::get_tx_tile_info) { - exedexes_state *state = machine.driver_data<exedexes_state>(); - int code = state->m_videoram[tile_index] + 2 * (state->m_colorram[tile_index] & 0x80); - int color = state->m_colorram[tile_index] & 0x3f; + int code = m_videoram[tile_index] + 2 * (m_colorram[tile_index] & 0x80); + int color = m_colorram[tile_index] & 0x3f; tileinfo.group = color; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILEMAP_MAPPER( exedexes_bg_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(exedexes_state::exedexes_bg_tilemap_scan) { /* logical (col,row) -> memory offset */ return ((col * 32 & 0xe0) >> 5) + ((row * 32 & 0xe0) >> 2) + ((col * 32 & 0x3f00) >> 1) + 0x4000; } -static TILEMAP_MAPPER( exedexes_fg_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(exedexes_state::exedexes_fg_tilemap_scan) { /* logical (col,row) -> memory offset */ return ((col * 16 & 0xf0) >> 4) + (row * 16 & 0xf0) + (col * 16 & 0x700) + ((row * 16 & 0x700) << 3); @@ -173,9 +172,9 @@ VIDEO_START( exedexes ) { exedexes_state *state = machine.driver_data<exedexes_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, exedexes_bg_tilemap_scan, 32, 32, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, exedexes_fg_tilemap_scan, 16, 16, 128, 128); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exedexes_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(exedexes_state::exedexes_bg_tilemap_scan),state), 32, 32, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exedexes_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(exedexes_state::exedexes_fg_tilemap_scan),state), 16, 16, 128, 128); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exedexes_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); colortable_configure_tilemap_groups(machine.colortable, state->m_tx_tilemap, machine.gfx[0], 0xcf); diff --git a/src/mame/video/exprraid.c b/src/mame/video/exprraid.c index d5bb6bd04d3..efcc8e58103 100644 --- a/src/mame/video/exprraid.c +++ b/src/mame/video/exprraid.c @@ -42,10 +42,9 @@ WRITE8_MEMBER(exprraid_state::exprraid_scrolly_w) m_bg_tilemap->set_scrolly(0, data); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(exprraid_state::get_bg_tile_info) { - exprraid_state *state = machine.driver_data<exprraid_state>(); - UINT8 *tilerom = state->memregion("gfx4")->base(); + UINT8 *tilerom = memregion("gfx4")->base(); int data, attr, bank, code, color, flags; int quadrant = 0, offs; @@ -56,7 +55,7 @@ static TILE_GET_INFO( get_bg_tile_info ) if (sx >= 16) quadrant++; if (sy >= 16) quadrant += 2; - offs = (sy % 16) * 16 + (sx % 16) + (state->m_bg_index[quadrant] & 0x3f) * 0x100; + offs = (sy % 16) * 16 + (sx % 16) + (m_bg_index[quadrant] & 0x3f) * 0x100; data = tilerom[offs]; attr = tilerom[offs + 0x4000]; @@ -67,25 +66,24 @@ static TILE_GET_INFO( get_bg_tile_info ) tileinfo.category = ((attr & 0x80) ? 1 : 0); - SET_TILE_INFO(bank, code, color, flags); + SET_TILE_INFO_MEMBER(bank, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(exprraid_state::get_fg_tile_info) { - exprraid_state *state = machine.driver_data<exprraid_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x07) << 8); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x07) << 8); int color = (attr & 0x10) >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( exprraid ) { exprraid_state *state = machine.driver_data<exprraid_state>(); - 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, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exprraid_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(exprraid_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(2); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/f1gp.c b/src/mame/video/f1gp.c index e8b9c0b84a5..95e5cbdf8fc 100644 --- a/src/mame/video/f1gp.c +++ b/src/mame/video/f1gp.c @@ -12,28 +12,25 @@ ***************************************************************************/ -static TILE_GET_INFO( f1gp_get_roz_tile_info ) +TILE_GET_INFO_MEMBER(f1gp_state::f1gp_get_roz_tile_info) { - f1gp_state *state = machine.driver_data<f1gp_state>(); - int code = state->m_rozvideoram[tile_index]; + int code = m_rozvideoram[tile_index]; - SET_TILE_INFO(3, code & 0x7ff, code >> 12, 0); + SET_TILE_INFO_MEMBER(3, code & 0x7ff, code >> 12, 0); } -static TILE_GET_INFO( f1gp2_get_roz_tile_info ) +TILE_GET_INFO_MEMBER(f1gp_state::f1gp2_get_roz_tile_info) { - f1gp_state *state = machine.driver_data<f1gp_state>(); - int code = state->m_rozvideoram[tile_index]; + int code = m_rozvideoram[tile_index]; - SET_TILE_INFO(2, (code & 0x7ff) + (state->m_roz_bank << 11), code >> 12, 0); + SET_TILE_INFO_MEMBER(2, (code & 0x7ff) + (m_roz_bank << 11), code >> 12, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(f1gp_state::get_fg_tile_info) { - f1gp_state *state = machine.driver_data<f1gp_state>(); - int code = state->m_fgvideoram[tile_index]; + int code = m_fgvideoram[tile_index]; - SET_TILE_INFO(0, code & 0x7fff, 0, (code & 0x8000) ? TILE_FLIPY : 0); + SET_TILE_INFO_MEMBER(0, code & 0x7fff, 0, (code & 0x8000) ? TILE_FLIPY : 0); } @@ -47,8 +44,8 @@ VIDEO_START( f1gp ) { f1gp_state *state = machine.driver_data<f1gp_state>(); - state->m_roz_tilemap = tilemap_create(machine, f1gp_get_roz_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::f1gp_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0xff); @@ -63,8 +60,8 @@ VIDEO_START( f1gpb ) { f1gp_state *state = machine.driver_data<f1gp_state>(); - state->m_roz_tilemap = tilemap_create(machine, f1gp_get_roz_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::f1gp_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0xff); @@ -78,8 +75,8 @@ VIDEO_START( f1gp2 ) { f1gp_state *state = machine.driver_data<f1gp_state>(); - state->m_roz_tilemap = tilemap_create(machine, f1gp2_get_roz_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::f1gp2_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0xff); state->m_roz_tilemap->set_transparent_pen(0x0f); diff --git a/src/mame/video/fastfred.c b/src/mame/video/fastfred.c index 79e5dd24338..b48da054aae 100644 --- a/src/mame/video/fastfred.c +++ b/src/mame/video/fastfred.c @@ -80,15 +80,14 @@ PALETTE_INIT( fastfred ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(fastfred_state::get_tile_info) { - fastfred_state *state = machine.driver_data<fastfred_state>(); UINT8 x = tile_index & 0x1f; - UINT16 code = state->m_charbank | state->m_videoram[tile_index]; - UINT8 color = state->m_colorbank | (state->m_attributesram[2 * x + 1] & 0x07); + UINT16 code = m_charbank | m_videoram[tile_index]; + UINT8 color = m_colorbank | (m_attributesram[2 * x + 1] & 0x07); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -102,7 +101,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( fastfred ) { fastfred_state *state = machine.driver_data<fastfred_state>(); - 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(fastfred_state::get_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); @@ -308,27 +307,25 @@ SCREEN_UPDATE_IND16( fastfred ) } -static TILE_GET_INFO( imago_get_tile_info_bg ) +TILE_GET_INFO_MEMBER(fastfred_state::imago_get_tile_info_bg) { - fastfred_state *state = machine.driver_data<fastfred_state>(); UINT8 x = tile_index & 0x1f; - UINT16 code = state->m_charbank * 0x100 + state->m_videoram[tile_index]; - UINT8 color = state->m_colorbank | (state->m_attributesram[2 * x + 1] & 0x07); + UINT16 code = m_charbank * 0x100 + m_videoram[tile_index]; + UINT8 color = m_colorbank | (m_attributesram[2 * x + 1] & 0x07); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( imago_get_tile_info_fg ) +TILE_GET_INFO_MEMBER(fastfred_state::imago_get_tile_info_fg) { - fastfred_state *state = machine.driver_data<fastfred_state>(); - int code = state->m_imago_fg_videoram[tile_index]; - SET_TILE_INFO(2, code, 2, 0); + int code = m_imago_fg_videoram[tile_index]; + SET_TILE_INFO_MEMBER(2, code, 2, 0); } -static TILE_GET_INFO( imago_get_tile_info_web ) +TILE_GET_INFO_MEMBER(fastfred_state::imago_get_tile_info_web) { - SET_TILE_INFO(3, tile_index & 0x1ff, 0, 0); + SET_TILE_INFO_MEMBER(3, tile_index & 0x1ff, 0, 0); } WRITE8_HANDLER( imago_fg_videoram_w ) @@ -351,9 +348,9 @@ WRITE8_HANDLER( imago_charbank_w ) VIDEO_START( imago ) { fastfred_state *state = machine.driver_data<fastfred_state>(); - state->m_web_tilemap = tilemap_create(machine, imago_get_tile_info_web,TILEMAP_SCAN_ROWS, 8,8,32,32); - state->m_bg_tilemap = tilemap_create(machine, imago_get_tile_info_bg, TILEMAP_SCAN_ROWS,8,8,32,32); - state->m_fg_tilemap = tilemap_create(machine, imago_get_tile_info_fg, TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_web_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_web),state),TILEMAP_SCAN_ROWS, 8,8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_bg),state), TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_fg),state), TILEMAP_SCAN_ROWS,8,8,32,32); state->m_bg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/fastlane.c b/src/mame/video/fastlane.c index 5d963fba0f2..b7027f6eee4 100644 --- a/src/mame/video/fastlane.c +++ b/src/mame/video/fastlane.c @@ -47,14 +47,13 @@ static void set_pens( running_machine &machine ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info0 ) +TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info0) { - fastlane_state *state = machine.driver_data<fastlane_state>(); - UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); - int attr = state->m_videoram1[tile_index]; - int code = state->m_videoram1[tile_index + 0x400]; + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); + int attr = m_videoram1[tile_index]; + int code = m_videoram1[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -69,21 +68,20 @@ static TILE_GET_INFO( get_tile_info0 ) bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code+bank*256, 1 + 64 * (attr & 0x0f), 0); } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info1) { - fastlane_state *state = machine.driver_data<fastlane_state>(); - UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); - int attr = state->m_videoram2[tile_index]; - int code = state->m_videoram2[tile_index + 0x400]; + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); + int attr = m_videoram2[tile_index]; + int code = m_videoram2[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -98,7 +96,7 @@ static TILE_GET_INFO( get_tile_info1 ) bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code+bank*256, 0 + 64 * (attr & 0x0f), @@ -115,8 +113,8 @@ VIDEO_START( fastlane ) { fastlane_state *state = machine.driver_data<fastlane_state>(); - state->m_layer0 = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_layer1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastlane_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastlane_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_layer0->set_scroll_rows(32); diff --git a/src/mame/video/fcombat.c b/src/mame/video/fcombat.c index ec2a643b527..dc2f22dc1fd 100644 --- a/src/mame/video/fcombat.c +++ b/src/mame/video/fcombat.c @@ -8,15 +8,15 @@ #include "includes/fcombat.h" -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(fcombat_state::get_bg_tile_info) { int tileno, palno; //32*16 x 32 //palno = (tile_index - (tile_index / 32 * 16) * 32 * 16) / 32; - tileno = machine.root_device().memregion("user1")->base()[tile_index]; - palno = 0x18; //machine.root_device().memregion("user2")->base()[tile_index] >> 3; - SET_TILE_INFO(2, tileno, palno, 0); + tileno = machine().root_device().memregion("user1")->base()[tile_index]; + palno = 0x18; //machine().root_device().memregion("user2")->base()[tile_index] >> 3; + SET_TILE_INFO_MEMBER(2, tileno, palno, 0); } @@ -102,7 +102,7 @@ PALETTE_INIT( fcombat ) VIDEO_START( fcombat ) { fcombat_state *state = machine.driver_data<fcombat_state>(); - state->m_bgmap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32); + state->m_bgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fcombat_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32); } diff --git a/src/mame/video/finalizr.c b/src/mame/video/finalizr.c index 0a179ae908a..705347f0cfc 100644 --- a/src/mame/video/finalizr.c +++ b/src/mame/video/finalizr.c @@ -44,34 +44,32 @@ PALETTE_INIT( finalizr ) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(finalizr_state::get_bg_tile_info) { - finalizr_state *state = machine.driver_data<finalizr_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0xc0) << 2) + (state->m_charbank << 10); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0xc0) << 2) + (m_charbank << 10); int color = attr & 0x0f; int flags = TILE_FLIPYX((attr & 0x30) >> 4); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(finalizr_state::get_fg_tile_info) { - finalizr_state *state = machine.driver_data<finalizr_state>(); - int attr = state->m_colorram2[tile_index]; - int code = state->m_videoram2[tile_index] + ((attr & 0xc0) << 2); + int attr = m_colorram2[tile_index]; + int code = m_videoram2[tile_index] + ((attr & 0xc0) << 2); int color = attr & 0x0f; int flags = TILE_FLIPYX((attr & 0x30) >> 4); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( finalizr ) { finalizr_state *state = machine.driver_data<finalizr_state>(); - 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(finalizr_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(finalizr_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/firetrap.c b/src/mame/video/firetrap.c index e082d76602e..e4d81dc2bab 100644 --- a/src/mame/video/firetrap.c +++ b/src/mame/video/firetrap.c @@ -72,24 +72,23 @@ PALETTE_INIT( firetrap ) ***************************************************************************/ -static TILEMAP_MAPPER( get_fg_memory_offset ) +TILEMAP_MAPPER_MEMBER(firetrap_state::get_fg_memory_offset) { return (row ^ 0x1f) + (col << 5); } -static TILEMAP_MAPPER( get_bg_memory_offset ) +TILEMAP_MAPPER_MEMBER(firetrap_state::get_bg_memory_offset) { return ((row & 0x0f) ^ 0x0f) | ((col & 0x0f) << 4) | /* hole at bit 8 */ ((row & 0x10) << 5) | ((col & 0x10) << 6); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(firetrap_state::get_fg_tile_info) { - firetrap_state *state = machine.driver_data<firetrap_state>(); - int code = state->m_fgvideoram[tile_index]; - int color = state->m_fgvideoram[tile_index + 0x400]; - SET_TILE_INFO( + int code = m_fgvideoram[tile_index]; + int color = m_fgvideoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, code | ((color & 0x01) << 8), color >> 4, @@ -107,16 +106,14 @@ INLINE void get_bg_tile_info(running_machine &machine, tile_data &tileinfo, int TILE_FLIPXY((color & 0x0c) >> 2)); } -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(firetrap_state::get_bg1_tile_info) { - firetrap_state *state = machine.driver_data<firetrap_state>(); - get_bg_tile_info(machine, tileinfo, tile_index, state->m_bg1videoram, 1); + get_bg_tile_info(machine(), tileinfo, tile_index, m_bg1videoram, 1); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(firetrap_state::get_bg2_tile_info) { - firetrap_state *state = machine.driver_data<firetrap_state>(); - get_bg_tile_info(machine, tileinfo, tile_index, state->m_bg2videoram, 2); + get_bg_tile_info(machine(), tileinfo, tile_index, m_bg2videoram, 2); } @@ -129,9 +126,9 @@ static TILE_GET_INFO( get_bg2_tile_info ) VIDEO_START( firetrap ) { firetrap_state *state = machine.driver_data<firetrap_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, get_fg_memory_offset, 8, 8, 32, 32); - state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info, get_bg_memory_offset, 16, 16, 32, 32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, get_bg_memory_offset, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrap_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(firetrap_state::get_fg_memory_offset),state), 8, 8, 32, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrap_state::get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(firetrap_state::get_bg_memory_offset),state), 16, 16, 32, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrap_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(firetrap_state::get_bg_memory_offset),state), 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg1_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/firetrk.c b/src/mame/video/firetrk.c index c2c806b9025..734b3fe37da 100644 --- a/src/mame/video/firetrk.c +++ b/src/mame/video/firetrk.c @@ -121,55 +121,51 @@ PALETTE_INIT( montecar ) } -static TILE_GET_INFO( firetrk_get_tile_info1 ) +TILE_GET_INFO_MEMBER(firetrk_state::firetrk_get_tile_info1) { - firetrk_state *state = machine.driver_data<firetrk_state>(); - int code = state->m_playfield_ram[tile_index] & 0x3f; - int color = (state->m_playfield_ram[tile_index] >> 6) & 0x03; + int code = m_playfield_ram[tile_index] & 0x3f; + int color = (m_playfield_ram[tile_index] >> 6) & 0x03; - if (*state->m_blink && (code >= 0x04) && (code <= 0x0b)) + if (*m_blink && (code >= 0x04) && (code <= 0x0b)) color = 0; - if (state->m_flash) + if (m_flash) color = color | 0x04; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( superbug_get_tile_info1 ) +TILE_GET_INFO_MEMBER(firetrk_state::superbug_get_tile_info1) { - firetrk_state *state = machine.driver_data<firetrk_state>(); - int code = state->m_playfield_ram[tile_index] & 0x3f; - int color = (state->m_playfield_ram[tile_index] >> 6) & 0x03; + int code = m_playfield_ram[tile_index] & 0x3f; + int color = (m_playfield_ram[tile_index] >> 6) & 0x03; - if (*state->m_blink && (code >= 0x08) && (code <= 0x0f)) + if (*m_blink && (code >= 0x08) && (code <= 0x0f)) color = 0; - if (state->m_flash) + if (m_flash) color = color | 0x04; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( montecar_get_tile_info1 ) +TILE_GET_INFO_MEMBER(firetrk_state::montecar_get_tile_info1) { - firetrk_state *state = machine.driver_data<firetrk_state>(); - int code = state->m_playfield_ram[tile_index] & 0x3f; - int color = (state->m_playfield_ram[tile_index] >> 6) & 0x03; + int code = m_playfield_ram[tile_index] & 0x3f; + int color = (m_playfield_ram[tile_index] >> 6) & 0x03; - if (state->m_flash) + if (m_flash) color = color | 0x04; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( firetrk_get_tile_info2 ) +TILE_GET_INFO_MEMBER(firetrk_state::firetrk_get_tile_info2) { - firetrk_state *state = machine.driver_data<firetrk_state>(); - UINT8 code = state->m_playfield_ram[tile_index] & 0x3f; + UINT8 code = m_playfield_ram[tile_index] & 0x3f; int color = 0; /* palette 1 for crash and palette 2 for skid */ @@ -179,14 +175,13 @@ static TILE_GET_INFO( firetrk_get_tile_info2 ) if ((code & 0x3c) == 0x0c) color = 2; /* palette 0, 2 */ - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( superbug_get_tile_info2 ) +TILE_GET_INFO_MEMBER(firetrk_state::superbug_get_tile_info2) { - firetrk_state *state = machine.driver_data<firetrk_state>(); - UINT8 code = state->m_playfield_ram[tile_index] & 0x3f; + UINT8 code = m_playfield_ram[tile_index] & 0x3f; int color = 0; /* palette 1 for crash and palette 2 for skid */ @@ -196,14 +191,13 @@ static TILE_GET_INFO( superbug_get_tile_info2 ) if ((code & 0x38) == 0x00) color = 2; /* palette 0, 2 */ - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( montecar_get_tile_info2 ) +TILE_GET_INFO_MEMBER(firetrk_state::montecar_get_tile_info2) { - firetrk_state *state = machine.driver_data<firetrk_state>(); - UINT8 code = state->m_playfield_ram[tile_index]; + UINT8 code = m_playfield_ram[tile_index]; int color = 0; /* palette 1 for crash and palette 2 for skid */ @@ -219,7 +213,7 @@ static TILE_GET_INFO( montecar_get_tile_info2 ) if ((code & 0x30) == 0x30) color = 0; /* palette 0, 0 */ - SET_TILE_INFO(2, code & 0x3f, color, 0); + SET_TILE_INFO_MEMBER(2, code & 0x3f, color, 0); } @@ -229,8 +223,8 @@ VIDEO_START( firetrk ) machine.primary_screen->register_screen_bitmap(state->m_helper1); machine.primary_screen->register_screen_bitmap(state->m_helper2); - state->m_tilemap1 = tilemap_create(machine, firetrk_get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); - state->m_tilemap2 = tilemap_create(machine, firetrk_get_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); } @@ -240,8 +234,8 @@ VIDEO_START( superbug ) machine.primary_screen->register_screen_bitmap(state->m_helper1); machine.primary_screen->register_screen_bitmap(state->m_helper2); - state->m_tilemap1 = tilemap_create(machine, superbug_get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); - state->m_tilemap2 = tilemap_create(machine, superbug_get_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); } @@ -251,8 +245,8 @@ VIDEO_START( montecar ) machine.primary_screen->register_screen_bitmap(state->m_helper1); machine.primary_screen->register_screen_bitmap(state->m_helper2); - state->m_tilemap1 = tilemap_create(machine, montecar_get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); - state->m_tilemap2 = tilemap_create(machine, montecar_get_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); } diff --git a/src/mame/video/fitfight.c b/src/mame/video/fitfight.c index 1afa4d89ca1..ca0dd6eca34 100644 --- a/src/mame/video/fitfight.c +++ b/src/mame/video/fitfight.c @@ -41,15 +41,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static TILE_GET_INFO( get_fof_bak_tile_info ) +TILE_GET_INFO_MEMBER(fitfight_state::get_fof_bak_tile_info) { - fitfight_state *state = machine.driver_data<fitfight_state>(); - int code = state->m_fof_bak_tileram[tile_index * 2 + 1]; - int colr = state->m_fof_bak_tileram[tile_index * 2] & 0x1f; - int xflip = (state->m_fof_bak_tileram[tile_index * 2] & 0x0020) >> 5; + int code = m_fof_bak_tileram[tile_index * 2 + 1]; + int colr = m_fof_bak_tileram[tile_index * 2] & 0x1f; + int xflip = (m_fof_bak_tileram[tile_index * 2] & 0x0020) >> 5; xflip ^= 1; - SET_TILE_INFO(2, code, colr, TILE_FLIPYX(xflip)); + SET_TILE_INFO_MEMBER(2, code, colr, TILE_FLIPYX(xflip)); } WRITE16_MEMBER(fitfight_state::fof_bak_tileram_w) @@ -60,15 +59,14 @@ WRITE16_MEMBER(fitfight_state::fof_bak_tileram_w) } -static TILE_GET_INFO( get_fof_mid_tile_info ) +TILE_GET_INFO_MEMBER(fitfight_state::get_fof_mid_tile_info) { - fitfight_state *state = machine.driver_data<fitfight_state>(); - int code = state->m_fof_mid_tileram[tile_index * 2 + 1]; - int colr = state->m_fof_mid_tileram[tile_index * 2] & 0x1f; - int xflip = (state->m_fof_mid_tileram[tile_index * 2] & 0x0020) >> 5; + int code = m_fof_mid_tileram[tile_index * 2 + 1]; + int colr = m_fof_mid_tileram[tile_index * 2] & 0x1f; + int xflip = (m_fof_mid_tileram[tile_index * 2] & 0x0020) >> 5; xflip ^= 1; - SET_TILE_INFO(1, code, colr, TILE_FLIPYX(xflip)); + SET_TILE_INFO_MEMBER(1, code, colr, TILE_FLIPYX(xflip)); } WRITE16_MEMBER(fitfight_state::fof_mid_tileram_w) @@ -78,15 +76,14 @@ WRITE16_MEMBER(fitfight_state::fof_mid_tileram_w) m_fof_mid_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_fof_txt_tile_info ) +TILE_GET_INFO_MEMBER(fitfight_state::get_fof_txt_tile_info) { - fitfight_state *state = machine.driver_data<fitfight_state>(); - int code = state->m_fof_txt_tileram[tile_index * 2 + 1]; - int colr = state->m_fof_txt_tileram[tile_index * 2] & 0x1f; - int xflip = (state->m_fof_txt_tileram[tile_index * 2] & 0x0020) >> 5; + int code = m_fof_txt_tileram[tile_index * 2 + 1]; + int colr = m_fof_txt_tileram[tile_index * 2] & 0x1f; + int xflip = (m_fof_txt_tileram[tile_index * 2] & 0x0020) >> 5; xflip ^= 1; - SET_TILE_INFO(0, code, colr, TILE_FLIPYX(xflip)); + SET_TILE_INFO_MEMBER(0, code, colr, TILE_FLIPYX(xflip)); } WRITE16_MEMBER(fitfight_state::fof_txt_tileram_w) @@ -101,13 +98,13 @@ WRITE16_MEMBER(fitfight_state::fof_txt_tileram_w) VIDEO_START(fitfight) { fitfight_state *state = machine.driver_data<fitfight_state>(); - state->m_fof_bak_tilemap = tilemap_create(machine, get_fof_bak_tile_info, TILEMAP_SCAN_COLS, 8, 8, 128, 32); + state->m_fof_bak_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_bak_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 128, 32); /* opaque */ - state->m_fof_mid_tilemap = tilemap_create(machine, get_fof_mid_tile_info, TILEMAP_SCAN_COLS, 8, 8, 128, 32); + state->m_fof_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_mid_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 128, 32); state->m_fof_mid_tilemap->set_transparent_pen(0); - state->m_fof_txt_tilemap = tilemap_create(machine, get_fof_txt_tile_info, TILEMAP_SCAN_COLS, 8, 8, 128, 32); + state->m_fof_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_txt_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 128, 32); state->m_fof_txt_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/flkatck.c b/src/mame/video/flkatck.c index 61cd6c5da02..217d43db55b 100644 --- a/src/mame/video/flkatck.c +++ b/src/mame/video/flkatck.c @@ -14,16 +14,15 @@ ***************************************************************************/ -static TILE_GET_INFO( get_tile_info_A ) +TILE_GET_INFO_MEMBER(flkatck_state::get_tile_info_A) { - flkatck_state *state = machine.driver_data<flkatck_state>(); - UINT8 ctrl_0 = k007121_ctrlram_r(state->m_k007121, 0); - UINT8 ctrl_2 = k007121_ctrlram_r(state->m_k007121, 2); - UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); - int attr = state->m_k007121_ram[tile_index]; - int code = state->m_k007121_ram[tile_index + 0x400]; + UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, 0); + UINT8 ctrl_2 = k007121_ctrlram_r(m_k007121, 2); + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); + int attr = m_k007121_ram[tile_index]; + int code = m_k007121_ram[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -42,20 +41,19 @@ static TILE_GET_INFO( get_tile_info_A ) bank = 0; /* this allows the game to print text in all banks selected by the k007121 */ - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code + 256*bank, (attr & 0x0f) + 16, (attr & 0x20) ? TILE_FLIPY : 0); } -static TILE_GET_INFO( get_tile_info_B ) +TILE_GET_INFO_MEMBER(flkatck_state::get_tile_info_B) { - flkatck_state *state = machine.driver_data<flkatck_state>(); - int attr = state->m_k007121_ram[tile_index + 0x800]; - int code = state->m_k007121_ram[tile_index + 0xc00]; + int attr = m_k007121_ram[tile_index + 0x800]; + int code = m_k007121_ram[tile_index + 0xc00]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, (attr & 0x0f) + 16, @@ -72,8 +70,8 @@ static TILE_GET_INFO( get_tile_info_B ) VIDEO_START( flkatck ) { flkatck_state *state = machine.driver_data<flkatck_state>(); - state->m_k007121_tilemap[0] = tilemap_create(machine, get_tile_info_A, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_k007121_tilemap[1] = tilemap_create(machine, get_tile_info_B, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_k007121_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flkatck_state::get_tile_info_A),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_k007121_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flkatck_state::get_tile_info_B),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/flower.c b/src/mame/video/flower.c index 212ca582284..22158cb082d 100644 --- a/src/mame/video/flower.c +++ b/src/mame/video/flower.c @@ -118,43 +118,40 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } -static TILE_GET_INFO( get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(flower_state::get_bg0_tile_info) { - flower_state *state = machine.driver_data<flower_state>(); - int code = state->m_bg0ram[tile_index]; - int color = state->m_bg0ram[tile_index+0x100]; + int code = m_bg0ram[tile_index]; + int color = m_bg0ram[tile_index+0x100]; /* Todo - may be tile flip bits? */ - SET_TILE_INFO(2, code, color>>4, 0); + SET_TILE_INFO_MEMBER(2, code, color>>4, 0); } -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(flower_state::get_bg1_tile_info) { - flower_state *state = machine.driver_data<flower_state>(); - int code = state->m_bg1ram[tile_index]; - int color = state->m_bg1ram[tile_index+0x100]; + int code = m_bg1ram[tile_index]; + int color = m_bg1ram[tile_index+0x100]; /* Todo - may be tile flip bits? */ - SET_TILE_INFO(2, code, color>>4, 0); + SET_TILE_INFO_MEMBER(2, code, color>>4, 0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(flower_state::get_text_tile_info) { - flower_state *state = machine.driver_data<flower_state>(); - int code = state->m_textram[tile_index]; - int color = state->m_textram[tile_index+0x400]; + int code = m_textram[tile_index]; + int color = m_textram[tile_index+0x400]; /* Todo - may be tile flip bits? */ - SET_TILE_INFO(0, code, color>>2, 0); + SET_TILE_INFO_MEMBER(0, code, color>>2, 0); } VIDEO_START(flower) { flower_state *state = machine.driver_data<flower_state>(); - state->m_bg0_tilemap = tilemap_create(machine, get_bg0_tile_info, TILEMAP_SCAN_ROWS,16,16,16,16); - state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS,16,16,16,16); - state->m_text_tilemap = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); - state->m_text_right_tilemap = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_COLS, 8, 8, 2,32); + state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flower_state::get_bg0_tile_info),state), TILEMAP_SCAN_ROWS,16,16,16,16); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flower_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS,16,16,16,16); + state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flower_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_text_right_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flower_state::get_text_tile_info),state),TILEMAP_SCAN_COLS, 8, 8, 2,32); state->m_bg1_tilemap->set_transparent_pen(15); state->m_text_tilemap->set_transparent_pen(3); diff --git a/src/mame/video/flstory.c b/src/mame/video/flstory.c index 7fa2ceb577c..4a6473b8d40 100644 --- a/src/mame/video/flstory.c +++ b/src/mame/video/flstory.c @@ -9,48 +9,45 @@ #include "emu.h" #include "includes/flstory.h" -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(flstory_state::get_tile_info) { - flstory_state *state = machine.driver_data<flstory_state>(); - int code = state->m_videoram[tile_index * 2]; - int attr = state->m_videoram[tile_index * 2 + 1]; - int tile_number = code + ((attr & 0xc0) << 2) + 0x400 + 0x800 * state->m_char_bank; + int code = m_videoram[tile_index * 2]; + int attr = m_videoram[tile_index * 2 + 1]; + int tile_number = code + ((attr & 0xc0) << 2) + 0x400 + 0x800 * m_char_bank; int flags = TILE_FLIPYX((attr & 0x18) >> 3); tileinfo.category = (attr & 0x20) >> 5; tileinfo.group = (attr & 0x20) >> 5; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, attr & 0x0f, flags); } -static TILE_GET_INFO( victnine_get_tile_info ) +TILE_GET_INFO_MEMBER(flstory_state::victnine_get_tile_info) { - flstory_state *state = machine.driver_data<flstory_state>(); - int code = state->m_videoram[tile_index * 2]; - int attr = state->m_videoram[tile_index * 2 + 1]; + int code = m_videoram[tile_index * 2]; + int attr = m_videoram[tile_index * 2 + 1]; int tile_number = ((attr & 0x38) << 5) + code; int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, attr & 0x07, flags); } -static TILE_GET_INFO( get_rumba_tile_info ) +TILE_GET_INFO_MEMBER(flstory_state::get_rumba_tile_info) { - flstory_state *state = machine.driver_data<flstory_state>(); - int code = state->m_videoram[tile_index * 2]; - int attr = state->m_videoram[tile_index * 2 + 1]; - int tile_number = code + ((attr & 0xc0) << 2) + 0x400 + 0x800 * state->m_char_bank; + int code = m_videoram[tile_index * 2]; + int attr = m_videoram[tile_index * 2 + 1]; + int tile_number = code + ((attr & 0xc0) << 2) + 0x400 + 0x800 * m_char_bank; int col = (attr & 0x0f); tileinfo.category = (attr & 0x20) >> 5; tileinfo.group = (attr & 0x20) >> 5; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, col, @@ -60,7 +57,7 @@ static TILE_GET_INFO( get_rumba_tile_info ) VIDEO_START( flstory ) { flstory_state *state = machine.driver_data<flstory_state>(); - 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(flstory_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); // state->m_bg_tilemap->set_transparent_pen(15); state->m_bg_tilemap->set_transmask(0, 0x3fff, 0xc000); /* split type 0 has pens 0-13 transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x8000, 0x7fff); /* split type 1 has pen 15 transparent in front half */ @@ -73,7 +70,7 @@ VIDEO_START( flstory ) VIDEO_START( rumba ) { flstory_state *state = machine.driver_data<flstory_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_rumba_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flstory_state::get_rumba_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); // state->m_bg_tilemap->set_transparent_pen(15); state->m_bg_tilemap->set_transmask(0, 0x3fff, 0xc000); /* split type 0 has pens 0-13 transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x8000, 0x7fff); /* split type 1 has pen 15 transparent in front half */ @@ -86,7 +83,7 @@ VIDEO_START( rumba ) VIDEO_START( victnine ) { flstory_state *state = machine.driver_data<flstory_state>(); - state->m_bg_tilemap = tilemap_create(machine, victnine_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flstory_state::victnine_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); state->m_generic_paletteram_8.allocate(0x200); diff --git a/src/mame/video/foodf.c b/src/mame/video/foodf.c index d168a2ec793..c57034169e4 100644 --- a/src/mame/video/foodf.c +++ b/src/mame/video/foodf.c @@ -15,13 +15,12 @@ * *************************************/ -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(foodf_state::get_playfield_tile_info) { - foodf_state *state = machine.driver_data<foodf_state>(); - UINT16 data = state->m_playfield[tile_index]; + UINT16 data = m_playfield[tile_index]; int code = (data & 0xff) | ((data >> 7) & 0x100); int color = (data >> 8) & 0x3f; - SET_TILE_INFO(0, code, color, state->m_playfield_flip ? (TILE_FLIPX | TILE_FLIPY) : 0); + SET_TILE_INFO_MEMBER(0, code, color, m_playfield_flip ? (TILE_FLIPX | TILE_FLIPY) : 0); } @@ -38,7 +37,7 @@ VIDEO_START( foodf ) foodf_state *state = machine.driver_data<foodf_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 32,32); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(foodf_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 32,32); state->m_playfield_tilemap->set_transparent_pen(0); /* adjust the playfield for the 8 pixel offset */ diff --git a/src/mame/video/freekick.c b/src/mame/video/freekick.c index 175137b37e9..144e29436ae 100644 --- a/src/mame/video/freekick.c +++ b/src/mame/video/freekick.c @@ -4,21 +4,20 @@ #include "includes/freekick.h" -static TILE_GET_INFO( get_freek_tile_info ) +TILE_GET_INFO_MEMBER(freekick_state::get_freek_tile_info) { - freekick_state *state = machine.driver_data<freekick_state>(); int tileno, palno; - tileno = state->m_videoram[tile_index] + ((state->m_videoram[tile_index + 0x400] & 0xe0) << 3); - palno = state->m_videoram[tile_index + 0x400] & 0x1f; - SET_TILE_INFO(0, tileno, palno, 0); + tileno = m_videoram[tile_index] + ((m_videoram[tile_index + 0x400] & 0xe0) << 3); + palno = m_videoram[tile_index + 0x400] & 0x1f; + SET_TILE_INFO_MEMBER(0, tileno, palno, 0); } VIDEO_START( freekick ) { freekick_state *state = machine.driver_data<freekick_state>(); - state->m_freek_tilemap = tilemap_create(machine, get_freek_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_freek_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(freekick_state::get_freek_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/fromanc2.c b/src/mame/video/fromanc2.c index 8e46e3a37d8..bf78451ee02 100644 --- a/src/mame/video/fromanc2.c +++ b/src/mame/video/fromanc2.c @@ -26,14 +26,14 @@ INLINE void fromanc2_get_tile_info( running_machine &machine, tile_data &tileinf SET_TILE_INFO(layer, tile, color, 0); } -static TILE_GET_INFO( fromanc2_get_v0_l0_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 0, 0); } -static TILE_GET_INFO( fromanc2_get_v0_l1_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 0, 1); } -static TILE_GET_INFO( fromanc2_get_v0_l2_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 0, 2); } -static TILE_GET_INFO( fromanc2_get_v0_l3_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 0, 3); } -static TILE_GET_INFO( fromanc2_get_v1_l0_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 1, 0); } -static TILE_GET_INFO( fromanc2_get_v1_l1_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 1, 1); } -static TILE_GET_INFO( fromanc2_get_v1_l2_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 1, 2); } -static TILE_GET_INFO( fromanc2_get_v1_l3_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 1, 3); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l0_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 0, 0); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l1_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 0, 1); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l2_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 0, 2); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l3_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 0, 3); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l0_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 1, 0); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l1_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 1, 1); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l2_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 1, 2); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l3_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 1, 3); } INLINE void fromancr_get_tile_info( running_machine &machine, tile_data &tileinfo, int tile_index, int vram, int layer ) @@ -47,12 +47,12 @@ INLINE void fromancr_get_tile_info( running_machine &machine, tile_data &tileinf SET_TILE_INFO(layer, tile, color, 0); } -static TILE_GET_INFO( fromancr_get_v0_l0_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 0, 0); } -static TILE_GET_INFO( fromancr_get_v0_l1_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 0, 1); } -static TILE_GET_INFO( fromancr_get_v0_l2_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 0, 2); } -static TILE_GET_INFO( fromancr_get_v1_l0_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 1, 0); } -static TILE_GET_INFO( fromancr_get_v1_l1_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 1, 1); } -static TILE_GET_INFO( fromancr_get_v1_l2_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 1, 2); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l0_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 0, 0); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l1_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 0, 1); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l2_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 0, 2); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l0_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 1, 0); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l1_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 1, 1); } +TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l2_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 1, 2); } /****************************************************************************** @@ -383,14 +383,14 @@ VIDEO_START( fromanc2 ) { fromanc2_state *state = machine.driver_data<fromanc2_state>(); - state->m_tilemap[0][0] = tilemap_create(machine, fromanc2_get_v0_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[0][1] = tilemap_create(machine, fromanc2_get_v0_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[0][2] = tilemap_create(machine, fromanc2_get_v0_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[0][3] = tilemap_create(machine, fromanc2_get_v0_l3_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[1][0] = tilemap_create(machine, fromanc2_get_v1_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[1][1] = tilemap_create(machine, fromanc2_get_v1_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[1][2] = tilemap_create(machine, fromanc2_get_v1_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[1][3] = tilemap_create(machine, fromanc2_get_v1_l3_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_tilemap[0][1]->set_transparent_pen(0x000); state->m_tilemap[0][2]->set_transparent_pen(0x000); @@ -433,13 +433,13 @@ VIDEO_START( fromancr ) { fromanc2_state *state = machine.driver_data<fromanc2_state>(); - state->m_tilemap[0][0] = tilemap_create(machine, fromancr_get_v0_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[0][1] = tilemap_create(machine, fromancr_get_v0_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[0][2] = tilemap_create(machine, fromancr_get_v0_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_tilemap[0][3] = 0; - state->m_tilemap[1][0] = tilemap_create(machine, fromancr_get_v1_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[1][1] = tilemap_create(machine, fromancr_get_v1_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tilemap[1][2] = tilemap_create(machine, fromancr_get_v1_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_tilemap[1][3] = 0; state->m_tilemap[0][1]->set_transparent_pen(0x0ff); @@ -478,13 +478,13 @@ VIDEO_START( fromanc4 ) { fromanc2_state *state = machine.driver_data<fromanc2_state>(); - state->m_tilemap[0][0] = tilemap_create(machine, fromancr_get_v0_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); - state->m_tilemap[0][1] = tilemap_create(machine, fromancr_get_v0_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); - state->m_tilemap[0][2] = tilemap_create(machine, fromancr_get_v0_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); + state->m_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); + state->m_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); + state->m_tilemap[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); state->m_tilemap[0][3] = 0; - state->m_tilemap[1][0] = tilemap_create(machine, fromancr_get_v1_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); - state->m_tilemap[1][1] = tilemap_create(machine, fromancr_get_v1_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); - state->m_tilemap[1][2] = tilemap_create(machine, fromancr_get_v1_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); + state->m_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); + state->m_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); + state->m_tilemap[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); state->m_tilemap[1][3] = 0; state->m_tilemap[0][1]->set_transparent_pen(0x000); diff --git a/src/mame/video/fromance.c b/src/mame/video/fromance.c index 3a4279c296a..327e3bc3aff 100644 --- a/src/mame/video/fromance.c +++ b/src/mame/video/fromance.c @@ -30,8 +30,8 @@ INLINE void get_fromance_tile_info( running_machine &machine, tile_data &tileinf SET_TILE_INFO(layer, tile, color, 0); } -static TILE_GET_INFO( get_fromance_bg_tile_info ) { get_fromance_tile_info(machine, tileinfo, tile_index, 0); } -static TILE_GET_INFO( get_fromance_fg_tile_info ) { get_fromance_tile_info(machine, tileinfo, tile_index, 1); } +TILE_GET_INFO_MEMBER(fromance_state::get_fromance_bg_tile_info){ get_fromance_tile_info(machine(), tileinfo, tile_index, 0); } +TILE_GET_INFO_MEMBER(fromance_state::get_fromance_fg_tile_info){ get_fromance_tile_info(machine(), tileinfo, tile_index, 1); } INLINE void get_nekkyoku_tile_info( running_machine &machine, tile_data &tileinfo, int tile_index, int layer ) @@ -44,8 +44,8 @@ INLINE void get_nekkyoku_tile_info( running_machine &machine, tile_data &tileinf SET_TILE_INFO(layer, tile, color, 0); } -static TILE_GET_INFO( get_nekkyoku_bg_tile_info ) { get_nekkyoku_tile_info(machine, tileinfo, tile_index, 0); } -static TILE_GET_INFO( get_nekkyoku_fg_tile_info ) { get_nekkyoku_tile_info(machine, tileinfo, tile_index, 1); } +TILE_GET_INFO_MEMBER(fromance_state::get_nekkyoku_bg_tile_info){ get_nekkyoku_tile_info(machine(), tileinfo, tile_index, 0); } +TILE_GET_INFO_MEMBER(fromance_state::get_nekkyoku_fg_tile_info){ get_nekkyoku_tile_info(machine(), tileinfo, tile_index, 1); } @@ -94,8 +94,8 @@ VIDEO_START( fromance ) fromance_state *state = machine.driver_data<fromance_state>(); /* allocate tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_fromance_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, get_fromance_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromance_state::get_fromance_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromance_state::get_fromance_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); init_common(machine); } @@ -105,8 +105,8 @@ VIDEO_START( nekkyoku ) fromance_state *state = machine.driver_data<fromance_state>(); /* allocate tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, get_nekkyoku_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, get_nekkyoku_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromance_state::get_nekkyoku_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromance_state::get_nekkyoku_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); init_common(machine); } diff --git a/src/mame/video/funkybee.c b/src/mame/video/funkybee.c index c08df511c24..41d967f807e 100644 --- a/src/mame/video/funkybee.c +++ b/src/mame/video/funkybee.c @@ -71,16 +71,15 @@ WRITE8_MEMBER(funkybee_state::funkybee_flipscreen_w) flip_screen_set(data & 0x01); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(funkybee_state::get_bg_tile_info) { - funkybee_state *state = machine.driver_data<funkybee_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x80) << 1); - int color = state->m_colorram[tile_index] & 0x03; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x80) << 1); + int color = m_colorram[tile_index] & 0x03; - SET_TILE_INFO(state->m_gfx_bank, code, color, 0); + SET_TILE_INFO_MEMBER(m_gfx_bank, code, color, 0); } -static TILEMAP_MAPPER( funkybee_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(funkybee_state::funkybee_tilemap_scan) { /* logical (col,row) -> memory offset */ return 256 * row + col; @@ -89,7 +88,7 @@ static TILEMAP_MAPPER( funkybee_tilemap_scan ) VIDEO_START( funkybee ) { funkybee_state *state = machine.driver_data<funkybee_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, funkybee_tilemap_scan, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(funkybee_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(funkybee_state::funkybee_tilemap_scan),state), 8, 8, 32, 32); } static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) diff --git a/src/mame/video/funworld.c b/src/mame/video/funworld.c index 5dcfecff581..3187bf16978 100644 --- a/src/mame/video/funworld.c +++ b/src/mame/video/funworld.c @@ -164,33 +164,32 @@ WRITE8_MEMBER(funworld_state::funworld_colorram_w) xxxx -xxx tiles color (background). */ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(funworld_state::get_bg_tile_info) { - funworld_state *state = machine.driver_data<funworld_state>(); /* - bits - 7654 3210 xxxx ---- tiles color. ---- xxxx unused. */ int offs = tile_index; - int attr = state->m_videoram[offs] + (state->m_colorram[offs] << 8); + int attr = m_videoram[offs] + (m_colorram[offs] << 8); int code = attr & 0xfff; - int color = state->m_colorram[offs] >> 4; // 4 bits for color. + int color = m_colorram[offs] >> 4; // 4 bits for color. - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START(funworld) { funworld_state *state = machine.driver_data<funworld_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 4, 8, 96, 29); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(funworld_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 96, 29); } VIDEO_START(magicrd2) { funworld_state *state = machine.driver_data<funworld_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 4, 8, 112, 34); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(funworld_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 112, 34); } diff --git a/src/mame/video/fuukifg2.c b/src/mame/video/fuukifg2.c index 663c3e424cf..95e8a69d80f 100644 --- a/src/mame/video/fuukifg2.c +++ b/src/mame/video/fuukifg2.c @@ -52,10 +52,10 @@ INLINE void get_tile_info(running_machine &machine, tile_data &tileinfo, tilemap SET_TILE_INFO(1 + _N_, code, attr & 0x3f, TILE_FLIPYX((attr >> 6) & 3)); } -static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info(machine, tileinfo, tile_index, 0); } -static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info(machine, tileinfo, tile_index, 1); } -static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info(machine, tileinfo, tile_index, 2); } -static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info(machine, tileinfo, tile_index, 3); } +TILE_GET_INFO_MEMBER(fuuki16_state::get_tile_info_0){ get_tile_info(machine(), tileinfo, tile_index, 0); } +TILE_GET_INFO_MEMBER(fuuki16_state::get_tile_info_1){ get_tile_info(machine(), tileinfo, tile_index, 1); } +TILE_GET_INFO_MEMBER(fuuki16_state::get_tile_info_2){ get_tile_info(machine(), tileinfo, tile_index, 2); } +TILE_GET_INFO_MEMBER(fuuki16_state::get_tile_info_3){ get_tile_info(machine(), tileinfo, tile_index, 3); } INLINE void fuuki16_vram_w(address_space *space, offs_t offset, UINT16 data, UINT16 mem_mask, int _N_) { @@ -95,10 +95,10 @@ PALETTE_INIT( fuuki16 ) VIDEO_START( fuuki16 ) { fuuki16_state *state = machine.driver_data<fuuki16_state>(); - state->m_tilemap[0] = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_tilemap[1] = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 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(fuuki16_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki16_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(fuuki16_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_tilemap[0]->set_transparent_pen(0x0f); // 4 bits state->m_tilemap[1]->set_transparent_pen(0xff); // 8 bits diff --git a/src/mame/video/fuukifg3.c b/src/mame/video/fuukifg3.c index 335b2131b08..7cc290bf039 100644 --- a/src/mame/video/fuukifg3.c +++ b/src/mame/video/fuukifg3.c @@ -56,8 +56,8 @@ INLINE void get_tile_info8bpp(running_machine &machine, tile_data &tileinfo, til SET_TILE_INFO(1 + _N_, code, (attr & 0x3f) >> 4, TILE_FLIPYX((attr >> 6) & 3)); } -static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info8bpp(machine, tileinfo, tile_index, 0); } -static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info8bpp(machine, tileinfo, tile_index, 1); } +TILE_GET_INFO_MEMBER(fuuki32_state::get_tile_info_0){ get_tile_info8bpp(machine(), tileinfo, tile_index, 0); } +TILE_GET_INFO_MEMBER(fuuki32_state::get_tile_info_1){ get_tile_info8bpp(machine(), tileinfo, tile_index, 1); } INLINE void get_tile_info4bpp(running_machine &machine, tile_data &tileinfo, tilemap_memory_index tile_index, int _N_) { @@ -67,8 +67,8 @@ INLINE void get_tile_info4bpp(running_machine &machine, tile_data &tileinfo, til SET_TILE_INFO(1 + _N_, code, attr & 0x3f, TILE_FLIPYX((attr >> 6) & 3)); } -static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info4bpp(machine, tileinfo, tile_index, 2); } -static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info4bpp(machine, tileinfo, tile_index, 3); } +TILE_GET_INFO_MEMBER(fuuki32_state::get_tile_info_2){ get_tile_info4bpp(machine(), tileinfo, tile_index, 2); } +TILE_GET_INFO_MEMBER(fuuki32_state::get_tile_info_3){ get_tile_info4bpp(machine(), tileinfo, tile_index, 3); } INLINE void fuuki32_vram_w(address_space *space, offs_t offset, UINT32 data, UINT32 mem_mask, int _N_) { @@ -100,10 +100,10 @@ VIDEO_START( fuuki32 ) state->save_pointer(NAME(state->m_buf_spriteram), state->m_spriteram.bytes() / 4); state->save_pointer(NAME(state->m_buf_spriteram2), state->m_spriteram.bytes() / 4); - state->m_tilemap[0] = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_tilemap[1] = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 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(fuuki32_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki32_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki32_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(fuuki32_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_tilemap[0]->set_transparent_pen(0xff); // 8 bits state->m_tilemap[1]->set_transparent_pen(0xff); // 8 bits diff --git a/src/mame/video/gaelco.c b/src/mame/video/gaelco.c index ba90fdfde72..24c136bf71d 100644 --- a/src/mame/video/gaelco.c +++ b/src/mame/video/gaelco.c @@ -31,29 +31,27 @@ 1 | xxxxxxxx -------- | not used */ -static TILE_GET_INFO( get_tile_info_gaelco_screen0 ) +TILE_GET_INFO_MEMBER(gaelco_state::get_tile_info_gaelco_screen0) { - gaelco_state *state = machine.driver_data<gaelco_state>(); - int data = state->m_videoram[tile_index << 1]; - int data2 = state->m_videoram[(tile_index << 1) + 1]; + int data = m_videoram[tile_index << 1]; + int data2 = m_videoram[(tile_index << 1) + 1]; int code = ((data & 0xfffc) >> 2); tileinfo.category = (data2 >> 6) & 0x03; - SET_TILE_INFO(1, 0x4000 + code, data2 & 0x3f, TILE_FLIPYX(data & 0x03)); + SET_TILE_INFO_MEMBER(1, 0x4000 + code, data2 & 0x3f, TILE_FLIPYX(data & 0x03)); } -static TILE_GET_INFO( get_tile_info_gaelco_screen1 ) +TILE_GET_INFO_MEMBER(gaelco_state::get_tile_info_gaelco_screen1) { - gaelco_state *state = machine.driver_data<gaelco_state>(); - int data = state->m_videoram[(0x1000 / 2) + (tile_index << 1)]; - int data2 = state->m_videoram[(0x1000 / 2) + (tile_index << 1) + 1]; + int data = m_videoram[(0x1000 / 2) + (tile_index << 1)]; + int data2 = m_videoram[(0x1000 / 2) + (tile_index << 1) + 1]; int code = ((data & 0xfffc) >> 2); tileinfo.category = (data2 >> 6) & 0x03; - SET_TILE_INFO(1, 0x4000 + code, data2 & 0x3f, TILE_FLIPYX(data & 0x03)); + SET_TILE_INFO_MEMBER(1, 0x4000 + code, data2 & 0x3f, TILE_FLIPYX(data & 0x03)); } /*************************************************************************** @@ -77,8 +75,8 @@ WRITE16_MEMBER(gaelco_state::gaelco_vram_w) VIDEO_START( bigkarnk ) { gaelco_state *state = machine.driver_data<gaelco_state>(); - state->m_tilemap[0] = tilemap_create(machine, get_tile_info_gaelco_screen0, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_tilemap[1] = tilemap_create(machine, get_tile_info_gaelco_screen1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info_gaelco_screen0),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info_gaelco_screen1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tilemap[0]->set_transmask(0, 0xff01, 0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */ state->m_tilemap[1]->set_transmask(0, 0xff01, 0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */ @@ -87,8 +85,8 @@ VIDEO_START( bigkarnk ) VIDEO_START( maniacsq ) { gaelco_state *state = machine.driver_data<gaelco_state>(); - state->m_tilemap[0] = tilemap_create(machine, get_tile_info_gaelco_screen0, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_tilemap[1] = tilemap_create(machine, get_tile_info_gaelco_screen1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info_gaelco_screen0),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info_gaelco_screen1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tilemap[0]->set_transparent_pen(0); state->m_tilemap[1]->set_transparent_pen(0); diff --git a/src/mame/video/gaelco2.c b/src/mame/video/gaelco2.c index f7ef95d405d..c5f0f3940bf 100644 --- a/src/mame/video/gaelco2.c +++ b/src/mame/video/gaelco2.c @@ -101,24 +101,22 @@ Multi monitor notes: ***************************************************************************/ -static TILE_GET_INFO( get_tile_info_gaelco2_screen0 ) +TILE_GET_INFO_MEMBER(gaelco2_state::get_tile_info_gaelco2_screen0) { - gaelco2_state *state = machine.driver_data<gaelco2_state>(); - int data = state->m_videoram[(((state->m_vregs[0] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; - int data2 = state->m_videoram[(((state->m_vregs[0] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; + int data = m_videoram[(((m_vregs[0] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; + int data2 = m_videoram[(((m_vregs[0] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; int code = ((data & 0x07) << 16) | (data2 & 0xffff); - SET_TILE_INFO(0, code, ((data >> 9) & 0x7f), TILE_FLIPXY((data >> 6) & 0x03)); + SET_TILE_INFO_MEMBER(0, code, ((data >> 9) & 0x7f), TILE_FLIPXY((data >> 6) & 0x03)); } -static TILE_GET_INFO( get_tile_info_gaelco2_screen1 ) +TILE_GET_INFO_MEMBER(gaelco2_state::get_tile_info_gaelco2_screen1) { - gaelco2_state *state = machine.driver_data<gaelco2_state>(); - int data = state->m_videoram[(((state->m_vregs[1] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; - int data2 = state->m_videoram[(((state->m_vregs[1] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; + int data = m_videoram[(((m_vregs[1] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; + int data2 = m_videoram[(((m_vregs[1] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; int code = ((data & 0x07) << 16) | (data2 & 0xffff); - SET_TILE_INFO(0, code, ((data >> 9) & 0x7f), TILE_FLIPXY((data >> 6) & 0x03)); + SET_TILE_INFO_MEMBER(0, code, ((data >> 9) & 0x7f), TILE_FLIPXY((data >> 6) & 0x03)); } @@ -144,24 +142,22 @@ static TILE_GET_INFO( get_tile_info_gaelco2_screen1 ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info_gaelco2_screen0_dual ) +TILE_GET_INFO_MEMBER(gaelco2_state::get_tile_info_gaelco2_screen0_dual) { - gaelco2_state *state = machine.driver_data<gaelco2_state>(); - int data = state->m_videoram[(((state->m_vregs[0] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; - int data2 = state->m_videoram[(((state->m_vregs[0] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; + int data = m_videoram[(((m_vregs[0] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; + int data2 = m_videoram[(((m_vregs[0] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; int code = ((data & 0x07) << 16) | (data2 & 0xffff); - SET_TILE_INFO(0, code, ((data >> 9) & 0x3f), TILE_FLIPXY((data >> 6) & 0x03)); + SET_TILE_INFO_MEMBER(0, code, ((data >> 9) & 0x3f), TILE_FLIPXY((data >> 6) & 0x03)); } -static TILE_GET_INFO( get_tile_info_gaelco2_screen1_dual ) +TILE_GET_INFO_MEMBER(gaelco2_state::get_tile_info_gaelco2_screen1_dual) { - gaelco2_state *state = machine.driver_data<gaelco2_state>(); - int data = state->m_videoram[(((state->m_vregs[1] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; - int data2 = state->m_videoram[(((state->m_vregs[1] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; + int data = m_videoram[(((m_vregs[1] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; + int data2 = m_videoram[(((m_vregs[1] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; int code = ((data & 0x07) << 16) | (data2 & 0xffff); - SET_TILE_INFO(0, code, 0x40 + ((data >> 9) & 0x3f), TILE_FLIPXY((data >> 6) & 0x03)); + SET_TILE_INFO_MEMBER(0, code, 0x40 + ((data >> 9) & 0x3f), TILE_FLIPXY((data >> 6) & 0x03)); } @@ -266,8 +262,8 @@ VIDEO_START( gaelco2 ) state->m_videoram = state->m_spriteram->live(); /* create tilemaps */ - state->m_pant[0] = tilemap_create(machine, get_tile_info_gaelco2_screen0,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_pant[1] = tilemap_create(machine, get_tile_info_gaelco2_screen1,TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_gaelco2_screen0),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_gaelco2_screen1),state),TILEMAP_SCAN_ROWS,16,16,64,32); /* set tilemap properties */ state->m_pant[0]->set_transparent_pen(0); @@ -287,8 +283,8 @@ VIDEO_START( gaelco2_dual ) state->m_videoram = state->m_spriteram->live(); /* create tilemaps */ - state->m_pant[0] = tilemap_create(machine, get_tile_info_gaelco2_screen0_dual,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_pant[1] = tilemap_create(machine, get_tile_info_gaelco2_screen1_dual,TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_gaelco2_screen0_dual),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_gaelco2_screen1_dual),state),TILEMAP_SCAN_ROWS,16,16,64,32); /* set tilemap properties */ state->m_pant[0]->set_transparent_pen(0); diff --git a/src/mame/video/gaiden.c b/src/mame/video/gaiden.c index fa6279fd8f7..89e3b0996a1 100644 --- a/src/mame/video/gaiden.c +++ b/src/mame/video/gaiden.c @@ -13,52 +13,48 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gaiden_state::get_bg_tile_info) { - gaiden_state *state = machine.driver_data<gaiden_state>(); - UINT16 *videoram1 = &state->m_videoram3[0x0800]; - UINT16 *videoram2 = state->m_videoram3; - SET_TILE_INFO( + UINT16 *videoram1 = &m_videoram3[0x0800]; + UINT16 *videoram2 = m_videoram3; + SET_TILE_INFO_MEMBER( 1, videoram1[tile_index] & 0x0fff, (videoram2[tile_index] & 0xf0) >> 4, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(gaiden_state::get_fg_tile_info) { - gaiden_state *state = machine.driver_data<gaiden_state>(); - UINT16 *videoram1 = &state->m_videoram2[0x0800]; - UINT16 *videoram2 = state->m_videoram2; - SET_TILE_INFO( + UINT16 *videoram1 = &m_videoram2[0x0800]; + UINT16 *videoram2 = m_videoram2; + SET_TILE_INFO_MEMBER( 2, videoram1[tile_index] & 0x0fff, (videoram2[tile_index] & 0xf0) >> 4, 0); } -static TILE_GET_INFO( get_fg_tile_info_raiga ) +TILE_GET_INFO_MEMBER(gaiden_state::get_fg_tile_info_raiga) { - gaiden_state *state = machine.driver_data<gaiden_state>(); - UINT16 *videoram1 = &state->m_videoram2[0x0800]; - UINT16 *videoram2 = state->m_videoram2; + UINT16 *videoram1 = &m_videoram2[0x0800]; + UINT16 *videoram2 = m_videoram2; /* bit 3 controls blending */ tileinfo.category = (videoram2[tile_index] & 0x08) >> 3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, videoram1[tile_index] & 0x0fff, ((videoram2[tile_index] & 0xf0) >> 4) | (tileinfo.category ? 0x80 : 0x00), 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(gaiden_state::get_tx_tile_info) { - gaiden_state *state = machine.driver_data<gaiden_state>(); - UINT16 *videoram1 = &state->m_videoram[0x0400]; - UINT16 *videoram2 = state->m_videoram; - SET_TILE_INFO( + UINT16 *videoram1 = &m_videoram[0x0400]; + UINT16 *videoram2 = m_videoram; + SET_TILE_INFO_MEMBER( 0, videoram1[tile_index] & 0x07ff, (videoram2[tile_index] & 0xf0) >> 4, @@ -80,9 +76,9 @@ VIDEO_START( gaiden ) machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg); machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg); - state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_text_layer = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_background->set_transparent_pen(0); state->m_foreground->set_transparent_pen(0); @@ -109,9 +105,9 @@ VIDEO_START( mastninj ) machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg); machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg); - state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_text_layer = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); // state->m_background->set_transparent_pen(15); state->m_foreground->set_transparent_pen(15); @@ -132,9 +128,9 @@ VIDEO_START( raiga ) machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg); machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg); - state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_text_layer = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_background->set_transparent_pen(0); state->m_foreground->set_transparent_pen(0); @@ -148,9 +144,9 @@ VIDEO_START( drgnbowl ) { gaiden_state *state = machine.driver_data<gaiden_state>(); /* set up tile layers */ - state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_foreground = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_text_layer = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_foreground->set_transparent_pen(15); state->m_text_layer->set_transparent_pen(15); diff --git a/src/mame/video/galaga.c b/src/mame/video/galaga.c index ebbc00b2035..354ce8157f7 100644 --- a/src/mame/video/galaga.c +++ b/src/mame/video/galaga.c @@ -391,7 +391,7 @@ PALETTE_INIT( galaga ) ***************************************************************************/ /* convert from 32x32 to 36x28 */ -static TILEMAP_MAPPER( tilemap_scan ) +TILEMAP_MAPPER_MEMBER(galaga_state::tilemap_scan) { int offs; @@ -406,20 +406,19 @@ static TILEMAP_MAPPER( tilemap_scan ) } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(galaga_state::get_tile_info) { /* the hardware has two character sets, one normal and one x-flipped. When screen is flipped, character y flip is done by the hardware inverting the timing signals, while x flip is done by selecting the 2nd character set. We reproduce this here, but since the tilemap system automatically flips characters when screen is flipped, we have to flip them back. */ - galaga_state *state = machine.driver_data<galaga_state>(); - int color = state->m_videoram[tile_index + 0x400] & 0x3f; - SET_TILE_INFO( + int color = m_videoram[tile_index + 0x400] & 0x3f; + SET_TILE_INFO_MEMBER( 0, - (state->m_videoram[tile_index] & 0x7f) | (state->flip_screen() ? 0x80 : 0) | (state->m_galaga_gfxbank << 8), + (m_videoram[tile_index] & 0x7f) | (flip_screen() ? 0x80 : 0) | (m_galaga_gfxbank << 8), color, - state->flip_screen() ? TILE_FLIPX : 0); + flip_screen() ? TILE_FLIPX : 0); tileinfo.group = color; } @@ -434,7 +433,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( galaga ) { galaga_state *state = machine.driver_data<galaga_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_tile_info,tilemap_scan,8,8,36,28); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaga_state::get_tile_info),state),tilemap_mapper_delegate(FUNC(galaga_state::tilemap_scan),state),8,8,36,28); colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 0x1f); state->m_galaga_gfxbank = 0; diff --git a/src/mame/video/galaxia.c b/src/mame/video/galaxia.c index da28ddc1e9e..993f999801b 100644 --- a/src/mame/video/galaxia.c +++ b/src/mame/video/galaxia.c @@ -60,22 +60,20 @@ PALETTE_INIT( astrowar ) palette_set_color_rgb(machine, BULLET_PEN, pal1bit(1), pal1bit(1), pal1bit(0)); } -static TILE_GET_INFO( get_galaxia_bg_tile_info ) +TILE_GET_INFO_MEMBER(galaxia_state::get_galaxia_bg_tile_info) { - galaxia_state *state = machine.driver_data<galaxia_state>(); - UINT8 code = state->m_video_ram[tile_index] & 0x7f; // d7 unused - UINT8 color = state->m_color_ram[tile_index] & 3; // highest bits unused + UINT8 code = m_video_ram[tile_index] & 0x7f; // d7 unused + UINT8 color = m_color_ram[tile_index] & 3; // highest bits unused - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_astrowar_bg_tile_info ) +TILE_GET_INFO_MEMBER(galaxia_state::get_astrowar_bg_tile_info) { - galaxia_state *state = machine.driver_data<galaxia_state>(); - UINT8 code = state->m_video_ram[tile_index]; - UINT8 color = state->m_color_ram[tile_index] & 7; // highest bits unused + UINT8 code = m_video_ram[tile_index]; + UINT8 color = m_color_ram[tile_index] & 7; // highest bits unused - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } static void init_common( running_machine &machine ) @@ -89,7 +87,7 @@ VIDEO_START( galaxia ) galaxia_state *state = machine.driver_data<galaxia_state>(); init_common(machine); - state->m_bg_tilemap = tilemap_create(machine, get_galaxia_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxia_state::get_galaxia_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(8); @@ -100,7 +98,7 @@ VIDEO_START( astrowar ) galaxia_state *state = machine.driver_data<galaxia_state>(); init_common(machine); - state->m_bg_tilemap = tilemap_create(machine, get_astrowar_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxia_state::get_astrowar_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(8); state->m_bg_tilemap->set_scrolldx(8, 8); diff --git a/src/mame/video/galaxian.c b/src/mame/video/galaxian.c index 79e171ee086..2b31084249c 100644 --- a/src/mame/video/galaxian.c +++ b/src/mame/video/galaxian.c @@ -235,7 +235,7 @@ H=B0: 0C,0C,0D,0D,0E,0E,0F,0F 0C,0C,2D,2D,0E,0E,2F,2F *************************************/ static void state_save_register(running_machine &machine); -static TILE_GET_INFO( bg_get_tile_info ); + static void sprites_draw(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, const UINT8 *spritebase); @@ -396,7 +396,7 @@ VIDEO_START( galaxian ) if (!state->m_sfx_tilemap) { /* normal galaxian hardware is row-based and individually scrolling columns */ - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, TILEMAP_SCAN_ROWS, GALAXIAN_XSCALE*8,8, 32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxian_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, GALAXIAN_XSCALE*8,8, 32,32); state->m_bg_tilemap->set_scroll_cols(32); state->m_bg_tilemap->set_scrolldx(0, -GALAXIAN_XSCALE * 128); state->m_bg_tilemap->set_scrolldy(0, 8); @@ -404,7 +404,7 @@ VIDEO_START( galaxian ) else { /* sfx hardware is column-based and individually scrolling rows */ - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, TILEMAP_SCAN_COLS, GALAXIAN_XSCALE*8,8, 32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxian_state::bg_get_tile_info),state), TILEMAP_SCAN_COLS, GALAXIAN_XSCALE*8,8, 32,32); state->m_bg_tilemap->set_scroll_rows(32); state->m_bg_tilemap->set_scrolldx(0, -GALAXIAN_XSCALE * 128); state->m_bg_tilemap->set_scrolldy(0, 8); @@ -481,20 +481,19 @@ SCREEN_UPDATE_RGB32( galaxian ) * *************************************/ -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(galaxian_state::bg_get_tile_info) { - galaxian_state *state = machine.driver_data<galaxian_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; UINT8 x = tile_index & 0x1f; UINT16 code = videoram[tile_index]; - UINT8 attrib = state->m_spriteram[x*2+1]; + UINT8 attrib = m_spriteram[x*2+1]; UINT8 color = attrib & 7; - if (state->m_extend_tile_info_ptr != NULL) - (*state->m_extend_tile_info_ptr)(machine, &code, &color, attrib, x); + if (m_extend_tile_info_ptr != NULL) + (*m_extend_tile_info_ptr)(machine(), &code, &color, attrib, x); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } diff --git a/src/mame/video/galaxold.c b/src/mame/video/galaxold.c index 9ee6e575268..92c0d00945f 100644 --- a/src/mame/video/galaxold.c +++ b/src/mame/video/galaxold.c @@ -12,8 +12,8 @@ #define BACKGROUND_COLOR_BASE (BULLETS_COLOR_BASE + 2) -static TILE_GET_INFO( get_tile_info ); -static TILE_GET_INFO( rockclim_get_tile_info ); + + static void mooncrst_modify_charcode(running_machine &machine, UINT16 *code, UINT8 x); static void pisces_modify_charcode(running_machine &machine, UINT16 *code, UINT8 x); static void mimonkey_modify_charcode(running_machine &machine, UINT16 *code, UINT8 x); @@ -478,7 +478,7 @@ VIDEO_START( galaxold_plain ) { galaxold_state *state = machine.driver_data<galaxold_state>(); video_start_common(machine); - 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(galaxold_state::get_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); @@ -694,7 +694,7 @@ VIDEO_START( rockclim ) { galaxold_state *state = machine.driver_data<galaxold_state>(); VIDEO_START_CALL(galaxold); - state->m_rockclim_tilemap = tilemap_create(machine, rockclim_get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_rockclim_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::rockclim_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_draw_background = rockclim_draw_background; state->m_modify_charcode = mooncrst_modify_charcode; @@ -705,25 +705,24 @@ VIDEO_START( rockclim ) state_save_register_global(machine, state->m_rockclim_h); } -static TILE_GET_INFO( drivfrcg_get_tile_info ) +TILE_GET_INFO_MEMBER(galaxold_state::drivfrcg_get_tile_info) { - galaxold_state *state = machine.driver_data<galaxold_state>(); - int code = state->m_videoram[tile_index]; + int code = m_videoram[tile_index]; UINT8 x = tile_index & 0x1f; - UINT8 color = state->m_attributesram[(x << 1) | 1] & 7; - UINT8 bank = state->m_attributesram[(x << 1) | 1] & 0x30; + UINT8 color = m_attributesram[(x << 1) | 1] & 7; + UINT8 bank = m_attributesram[(x << 1) | 1] & 0x30; code |= (bank << 4); - color |= ((state->m_attributesram[(x << 1) | 1] & 0x40) >> 3); + color |= ((m_attributesram[(x << 1) | 1] & 0x40) >> 3); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( drivfrcg ) { galaxold_state *state = machine.driver_data<galaxold_state>(); video_start_common(machine); - state->m_bg_tilemap = tilemap_create(machine, drivfrcg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::drivfrcg_get_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); @@ -738,7 +737,7 @@ VIDEO_START( ad2083 ) { galaxold_state *state = machine.driver_data<galaxold_state>(); video_start_common(machine); - state->m_bg_tilemap = tilemap_create(machine, drivfrcg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::drivfrcg_get_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); @@ -759,24 +758,23 @@ WRITE8_MEMBER(galaxold_state::racknrol_tiles_bank_w) m_bg_tilemap->mark_all_dirty(); } -static TILE_GET_INFO( racknrol_get_tile_info ) +TILE_GET_INFO_MEMBER(galaxold_state::racknrol_get_tile_info) { - galaxold_state *state = machine.driver_data<galaxold_state>(); - int code = state->m_videoram[tile_index]; + int code = m_videoram[tile_index]; UINT8 x = tile_index & 0x1f; - UINT8 color = state->m_attributesram[(x << 1) | 1] & 7; - UINT8 bank = state->m_racknrol_tiles_bank[x] & 7; + UINT8 color = m_attributesram[(x << 1) | 1] & 7; + UINT8 bank = m_racknrol_tiles_bank[x] & 7; code |= (bank << 8); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( racknrol ) { galaxold_state *state = machine.driver_data<galaxold_state>(); video_start_common(machine); - state->m_bg_tilemap = tilemap_create(machine, racknrol_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::racknrol_get_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); @@ -792,25 +790,24 @@ VIDEO_START( bongo ) state->m_modify_spritecode = batman2_modify_spritecode; } -static TILE_GET_INFO( dambustr_get_tile_info2 ) +TILE_GET_INFO_MEMBER(galaxold_state::dambustr_get_tile_info2) { - galaxold_state *state = machine.driver_data<galaxold_state>(); UINT8 x = tile_index & 0x1f; - UINT16 code = state->m_dambustr_videoram2[tile_index]; - UINT8 color = state->m_attributesram[(x << 1) | 1] & state->m_color_mask; + UINT16 code = m_dambustr_videoram2[tile_index]; + UINT8 color = m_attributesram[(x << 1) | 1] & m_color_mask; - if (state->m_modify_charcode) + if (m_modify_charcode) { - (*state->m_modify_charcode)(machine, &code, x); + (*m_modify_charcode)(machine(), &code, x); } - if (state->m_modify_color) + if (m_modify_color) { - (*state->m_modify_color)(&color); + (*m_modify_color)(&color); } - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( dambustr ) @@ -836,7 +833,7 @@ VIDEO_START( dambustr ) /* make a copy of the tilemap to emulate background priority */ state->m_dambustr_videoram2 = auto_alloc_array(machine, UINT8, 0x0400); - state->m_dambustr_tilemap2 = tilemap_create(machine, dambustr_get_tile_info2,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_dambustr_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::dambustr_get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_dambustr_tilemap2->set_transparent_pen(0); } @@ -1660,32 +1657,30 @@ static void start_stars_scroll_timer(running_machine &machine) -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(galaxold_state::get_tile_info) { - galaxold_state *state = machine.driver_data<galaxold_state>(); UINT8 x = tile_index & 0x1f; - UINT16 code = state->m_videoram[tile_index]; - UINT8 color = state->m_attributesram[(x << 1) | 1] & state->m_color_mask; + UINT16 code = m_videoram[tile_index]; + UINT8 color = m_attributesram[(x << 1) | 1] & m_color_mask; - if (state->m_modify_charcode) + if (m_modify_charcode) { - (*state->m_modify_charcode)(machine, &code, x); + (*m_modify_charcode)(machine(), &code, x); } - if (state->m_modify_color) + if (m_modify_color) { - (*state->m_modify_color)(&color); + (*m_modify_color)(&color); } - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( rockclim_get_tile_info ) +TILE_GET_INFO_MEMBER(galaxold_state::rockclim_get_tile_info) { - galaxold_state *state = machine.driver_data<galaxold_state>(); - UINT16 code = state->m_rockclim_videoram[tile_index]; - SET_TILE_INFO(2, code, 0, 0); + UINT16 code = m_rockclim_videoram[tile_index]; + SET_TILE_INFO_MEMBER(2, code, 0, 0); } static void draw_bullets_common(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/video/galivan.c b/src/mame/video/galivan.c index 580930ac75a..4a8e2e9c6af 100644 --- a/src/mame/video/galivan.c +++ b/src/mame/video/galivan.c @@ -120,24 +120,23 @@ PALETTE_INIT( galivan ) ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(galivan_state::get_bg_tile_info) { - UINT8 *BGROM = machine.root_device().memregion("gfx4")->base(); + UINT8 *BGROM = machine().root_device().memregion("gfx4")->base(); int attr = BGROM[tile_index + 0x4000]; int code = BGROM[tile_index] | ((attr & 0x03) << 8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, (attr & 0x78) >> 3, /* seems correct */ 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(galivan_state::get_tx_tile_info) { - galivan_state *state = machine.driver_data<galivan_state>(); - int attr = state->m_videoram[tile_index + 0x400]; - int code = state->m_videoram[tile_index] | ((attr & 0x01) << 8); - SET_TILE_INFO( + int attr = m_videoram[tile_index + 0x400]; + int code = m_videoram[tile_index] | ((attr & 0x01) << 8); + SET_TILE_INFO_MEMBER( 0, code, (attr & 0xe0) >> 5, /* not sure */ @@ -145,28 +144,27 @@ static TILE_GET_INFO( get_tx_tile_info ) tileinfo.category = attr & 8 ? 0 : 1; /* seems correct */ } -static TILE_GET_INFO( ninjemak_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(galivan_state::ninjemak_get_bg_tile_info) { - UINT8 *BGROM = machine.root_device().memregion("gfx4")->base(); + UINT8 *BGROM = machine().root_device().memregion("gfx4")->base(); int attr = BGROM[tile_index + 0x4000]; int code = BGROM[tile_index] | ((attr & 0x03) << 8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, ((attr & 0x60) >> 3) | ((attr & 0x0c) >> 2), /* seems correct */ 0); } -static TILE_GET_INFO( ninjemak_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(galivan_state::ninjemak_get_tx_tile_info) { - galivan_state *state = machine.driver_data<galivan_state>(); - int attr = state->m_videoram[tile_index + 0x400]; - int code = state->m_videoram[tile_index] | ((attr & 0x03) << 8); + int attr = m_videoram[tile_index + 0x400]; + int code = m_videoram[tile_index] | ((attr & 0x03) << 8); if(tile_index < 0x12) /* don't draw the NB1414M4 params! TODO: could be a better fix */ code = attr = 0x01; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, (attr & 0x1c) >> 2, /* seems correct ? */ @@ -185,8 +183,8 @@ VIDEO_START( galivan ) { galivan_state *state = machine.driver_data<galivan_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galivan_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galivan_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_tx_tilemap->set_transparent_pen(15); } @@ -195,8 +193,8 @@ VIDEO_START( ninjemak ) { galivan_state *state = machine.driver_data<galivan_state>(); - state->m_bg_tilemap = tilemap_create(machine, ninjemak_get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 512, 32); - state->m_tx_tilemap = tilemap_create(machine, ninjemak_get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galivan_state::ninjemak_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 512, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galivan_state::ninjemak_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_tx_tilemap->set_transparent_pen(15); } diff --git a/src/mame/video/gaplus.c b/src/mame/video/gaplus.c index 48a3e33f438..44da4997318 100644 --- a/src/mame/video/gaplus.c +++ b/src/mame/video/gaplus.c @@ -81,7 +81,7 @@ PALETTE_INIT( gaplus ) ***************************************************************************/ /* convert from 32x32 to 36x28 */ -static TILEMAP_MAPPER( tilemap_scan ) +TILEMAP_MAPPER_MEMBER(gaplus_state::tilemap_scan) { int offs; @@ -95,15 +95,14 @@ static TILEMAP_MAPPER( tilemap_scan ) return offs; } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(gaplus_state::get_tile_info) { - gaplus_state *state = machine.driver_data<gaplus_state>(); - UINT8 attr = state->m_videoram[tile_index + 0x400]; + UINT8 attr = m_videoram[tile_index + 0x400]; tileinfo.category = (attr & 0x40) >> 6; tileinfo.group = attr & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index] + ((attr & 0x80) << 1), + m_videoram[tile_index] + ((attr & 0x80) << 1), attr & 0x3f, 0); } @@ -183,7 +182,7 @@ static void starfield_init(running_machine &machine) VIDEO_START( gaplus ) { gaplus_state *state = machine.driver_data<gaplus_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info,tilemap_scan,8,8,36,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaplus_state::get_tile_info),state),tilemap_mapper_delegate(FUNC(gaplus_state::tilemap_scan),state),8,8,36,28); colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 0xff); diff --git a/src/mame/video/gatron.c b/src/mame/video/gatron.c index 9826f3ff1f1..81d81025b0c 100644 --- a/src/mame/video/gatron.c +++ b/src/mame/video/gatron.c @@ -28,10 +28,9 @@ WRITE8_MEMBER(gatron_state::gat_videoram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gatron_state::get_bg_tile_info) { - gatron_state *state = machine.driver_data<gatron_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; /* - bits - 7654 3210 xxxx xxxx tiles code. @@ -41,13 +40,13 @@ static TILE_GET_INFO( get_bg_tile_info ) int code = videoram[tile_index]; - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } VIDEO_START( gat ) { gatron_state *state = machine.driver_data<gatron_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 16, 48, 16); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gatron_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 16, 48, 16); } SCREEN_UPDATE_IND16( gat ) diff --git a/src/mame/video/gauntlet.c b/src/mame/video/gauntlet.c index 42aacc827f1..e679682845d 100644 --- a/src/mame/video/gauntlet.c +++ b/src/mame/video/gauntlet.c @@ -17,24 +17,22 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(gauntlet_state::get_alpha_tile_info) { - gauntlet_state *state = machine.driver_data<gauntlet_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0x3ff; int color = ((data >> 10) & 0x0f) | ((data >> 9) & 0x20); int opaque = data & 0x8000; - SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(gauntlet_state::get_playfield_tile_info) { - gauntlet_state *state = machine.driver_data<gauntlet_state>(); - UINT16 data = state->m_playfield[tile_index]; - int code = ((state->m_playfield_tile_bank * 0x1000) + (data & 0xfff)) ^ 0x800; - int color = 0x10 + (state->m_playfield_color_bank * 8) + ((data >> 12) & 7); - SET_TILE_INFO(0, code, color, (data >> 15) & 1); + UINT16 data = m_playfield[tile_index]; + int code = ((m_playfield_tile_bank * 0x1000) + (data & 0xfff)) ^ 0x800; + int color = 0x10 + (m_playfield_color_bank * 8) + ((data >> 12) & 7); + SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); } @@ -89,13 +87,13 @@ VIDEO_START( gauntlet ) int i, size; /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gauntlet_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gauntlet_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* modify the motion object code lookup table to account for the code XOR */ diff --git a/src/mame/video/gberet.c b/src/mame/video/gberet.c index 5bc9654b5a7..8efbdec0ea9 100644 --- a/src/mame/video/gberet.c +++ b/src/mame/video/gberet.c @@ -105,25 +105,24 @@ WRITE8_MEMBER(gberet_state::gberet_sprite_bank_w) m_spritebank = data; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gberet_state::get_bg_tile_info) { - gberet_state *state = machine.driver_data<gberet_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x40) << 2); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x40) << 2); int color = attr & 0x0f; int flags = TILE_FLIPYX((attr & 0x30) >> 4); tileinfo.group = color; tileinfo.category = (attr & 0x80) >> 7; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( gberet ) { gberet_state *state = machine.driver_data<gberet_state>(); - 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(gberet_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 0x10); state->m_bg_tilemap->set_scroll_rows(32); } diff --git a/src/mame/video/gcpinbal.c b/src/mame/video/gcpinbal.c index 5ef9cc6cbdc..9221b84d07b 100644 --- a/src/mame/video/gcpinbal.c +++ b/src/mame/video/gcpinbal.c @@ -5,38 +5,35 @@ /*******************************************************************/ -static TILE_GET_INFO( get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(gcpinbal_state::get_bg0_tile_info) { - gcpinbal_state *state = machine.driver_data<gcpinbal_state>(); - UINT16 tilenum = state->m_tilemapram[0 + tile_index * 2]; - UINT16 attr = state->m_tilemapram[1 + tile_index * 2]; + UINT16 tilenum = m_tilemapram[0 + tile_index * 2]; + UINT16 attr = m_tilemapram[1 + tile_index * 2]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - (tilenum & 0xfff) + state->m_bg0_gfxset, + (tilenum & 0xfff) + m_bg0_gfxset, (attr & 0x1f), TILE_FLIPYX( (attr & 0x300) >> 8)); } -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(gcpinbal_state::get_bg1_tile_info) { - gcpinbal_state *state = machine.driver_data<gcpinbal_state>(); - UINT16 tilenum = state->m_tilemapram[0x800 + tile_index * 2]; - UINT16 attr = state->m_tilemapram[0x801 + tile_index * 2]; + UINT16 tilenum = m_tilemapram[0x800 + tile_index * 2]; + UINT16 attr = m_tilemapram[0x801 + tile_index * 2]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - (tilenum & 0xfff) + 0x2000 + state->m_bg1_gfxset, + (tilenum & 0xfff) + 0x2000 + m_bg1_gfxset, (attr & 0x1f) + 0x30, TILE_FLIPYX( (attr & 0x300) >> 8)); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(gcpinbal_state::get_fg_tile_info) { - gcpinbal_state *state = machine.driver_data<gcpinbal_state>(); - UINT16 tilenum = state->m_tilemapram[0x1000 + tile_index]; + UINT16 tilenum = m_tilemapram[0x1000 + tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, (tilenum & 0xfff), (tilenum >> 12) | 0x70, @@ -49,9 +46,9 @@ static void gcpinbal_core_vh_start( running_machine &machine ) int xoffs = 0; int yoffs = 0; - state->m_tilemap[0] = tilemap_create(machine, get_bg0_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_tilemap[1] = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_tilemap[2] = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gcpinbal_state::get_bg0_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gcpinbal_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gcpinbal_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); state->m_tilemap[0]->set_transparent_pen(0); state->m_tilemap[1]->set_transparent_pen(0); diff --git a/src/mame/video/ginganin.c b/src/mame/video/ginganin.c index 1470ad9456e..3837bad1f17 100644 --- a/src/mame/video/ginganin.c +++ b/src/mame/video/ginganin.c @@ -74,11 +74,11 @@ Note: if MAME_DEBUG is defined, pressing Z with: #define BG_NX (16*32) #define BG_NY (16*2) -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ginganin_state::get_bg_tile_info) { - UINT8 *gfx = machine.root_device().memregion("gfx5")->base(); + UINT8 *gfx = machine().root_device().memregion("gfx5")->base(); int code = gfx[2 * tile_index + 0] * 256 + gfx[2 * tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( BG_GFX, code, code >> 12, @@ -92,11 +92,10 @@ static TILE_GET_INFO( get_bg_tile_info ) #define FG_NX (16*16) #define FG_NY (16*2) -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(ginganin_state::get_fg_tile_info) { - ginganin_state *state = machine.driver_data<ginganin_state>(); - UINT16 code = state->m_fgram[tile_index]; - SET_TILE_INFO( + UINT16 code = m_fgram[tile_index]; + SET_TILE_INFO_MEMBER( FG_GFX, code, code >> 12, @@ -116,11 +115,10 @@ WRITE16_MEMBER(ginganin_state::ginganin_fgram16_w) #define TXT_NX (32) #define TXT_NY (32) -static TILE_GET_INFO( get_txt_tile_info ) +TILE_GET_INFO_MEMBER(ginganin_state::get_txt_tile_info) { - ginganin_state *state = machine.driver_data<ginganin_state>(); - UINT16 code = state->m_txtram[tile_index]; - SET_TILE_INFO( + UINT16 code = m_txtram[tile_index]; + SET_TILE_INFO_MEMBER( TXT_GFX, code, code >> 12, @@ -137,9 +135,9 @@ WRITE16_MEMBER(ginganin_state::ginganin_txtram16_w) VIDEO_START( ginganin ) { ginganin_state *state = machine.driver_data<ginganin_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, BG_NX, BG_NY); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 16, 16, FG_NX, FG_NY); - state->m_tx_tilemap = tilemap_create(machine, get_txt_tile_info, TILEMAP_SCAN_ROWS, 8, 8, TXT_NX, TXT_NY); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ginganin_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, BG_NX, BG_NY); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ginganin_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, FG_NX, FG_NY); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ginganin_state::get_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, TXT_NX, TXT_NY); state->m_fg_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/gladiatr.c b/src/mame/video/gladiatr.c index 2d1313856bb..ad9adbfaa93 100644 --- a/src/mame/video/gladiatr.c +++ b/src/mame/video/gladiatr.c @@ -14,24 +14,22 @@ ***************************************************************************/ -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(gladiatr_state::bg_get_tile_info) { - gladiatr_state *state = machine.driver_data<gladiatr_state>(); - UINT8 attr = state->m_colorram[tile_index]; + UINT8 attr = m_colorram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - state->m_videoram[tile_index] + ((attr & 0x07) << 8) + (state->m_bg_tile_bank << 11), + m_videoram[tile_index] + ((attr & 0x07) << 8) + (m_bg_tile_bank << 11), (attr >> 3) ^ 0x1f, 0); } -static TILE_GET_INFO( fg_get_tile_info ) +TILE_GET_INFO_MEMBER(gladiatr_state::fg_get_tile_info) { - gladiatr_state *state = machine.driver_data<gladiatr_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_textram[tile_index] + (state->m_fg_tile_bank << 8), + m_textram[tile_index] + (m_fg_tile_bank << 8), 0, 0); } @@ -47,8 +45,8 @@ static TILE_GET_INFO( fg_get_tile_info ) VIDEO_START( ppking ) { gladiatr_state *state = machine.driver_data<gladiatr_state>(); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,64); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gladiatr_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gladiatr_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,64); state->m_fg_tilemap->set_transparent_pen(0); @@ -60,8 +58,8 @@ VIDEO_START( ppking ) VIDEO_START( gladiatr ) { gladiatr_state *state = machine.driver_data<gladiatr_state>(); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gladiatr_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gladiatr_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/glass.c b/src/mame/video/glass.c index 1caadcac0fc..e96aebacf8f 100644 --- a/src/mame/video/glass.c +++ b/src/mame/video/glass.c @@ -31,25 +31,23 @@ 1 | xxxxxxxx -------- | not used */ -static TILE_GET_INFO( get_tile_info_glass_screen0 ) +TILE_GET_INFO_MEMBER(glass_state::get_tile_info_glass_screen0) { - glass_state *state = machine.driver_data<glass_state>(); - int data = state->m_videoram[tile_index << 1]; - int data2 = state->m_videoram[(tile_index << 1) + 1]; + int data = m_videoram[tile_index << 1]; + int data2 = m_videoram[(tile_index << 1) + 1]; int code = ((data & 0x03) << 14) | ((data & 0x0fffc) >> 2); - SET_TILE_INFO(0, code, 0x20 + (data2 & 0x1f), TILE_FLIPYX((data2 & 0xc0) >> 6)); + SET_TILE_INFO_MEMBER(0, code, 0x20 + (data2 & 0x1f), TILE_FLIPYX((data2 & 0xc0) >> 6)); } -static TILE_GET_INFO( get_tile_info_glass_screen1 ) +TILE_GET_INFO_MEMBER(glass_state::get_tile_info_glass_screen1) { - glass_state *state = machine.driver_data<glass_state>(); - int data = state->m_videoram[(0x1000 / 2) + (tile_index << 1)]; - int data2 = state->m_videoram[(0x1000 / 2) + (tile_index << 1) + 1]; + int data = m_videoram[(0x1000 / 2) + (tile_index << 1)]; + int data2 = m_videoram[(0x1000 / 2) + (tile_index << 1) + 1]; int code = ((data & 0x03) << 14) | ((data & 0x0fffc) >> 2); - SET_TILE_INFO(0, code, 0x20 + (data2 & 0x1f), TILE_FLIPYX((data2 & 0xc0) >> 6)); + SET_TILE_INFO_MEMBER(0, code, 0x20 + (data2 & 0x1f), TILE_FLIPYX((data2 & 0xc0) >> 6)); } /*************************************************************************** @@ -128,8 +126,8 @@ WRITE16_MEMBER(glass_state::glass_vram_w) VIDEO_START( glass ) { glass_state *state = machine.driver_data<glass_state>(); - state->m_pant[0] = tilemap_create(machine, get_tile_info_glass_screen0, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_pant[1] = tilemap_create(machine, get_tile_info_glass_screen1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(glass_state::get_tile_info_glass_screen0),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(glass_state::get_tile_info_glass_screen1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_screen_bitmap = auto_bitmap_ind16_alloc (machine, 320, 200); state->save_item(NAME(*state->m_screen_bitmap)); diff --git a/src/mame/video/gng.c b/src/mame/video/gng.c index bd23b2670d5..646e17fc9a1 100644 --- a/src/mame/video/gng.c +++ b/src/mame/video/gng.c @@ -16,24 +16,22 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(gng_state::get_fg_tile_info) { - gng_state *state = machine.driver_data<gng_state>(); - UINT8 attr = state->m_fgvideoram[tile_index + 0x400]; - SET_TILE_INFO( + UINT8 attr = m_fgvideoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, - state->m_fgvideoram[tile_index] + ((attr & 0xc0) << 2), + m_fgvideoram[tile_index] + ((attr & 0xc0) << 2), attr & 0x0f, TILE_FLIPYX((attr & 0x30) >> 4)); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gng_state::get_bg_tile_info) { - gng_state *state = machine.driver_data<gng_state>(); - UINT8 attr = state->m_bgvideoram[tile_index + 0x400]; - SET_TILE_INFO( + UINT8 attr = m_bgvideoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 1, - state->m_bgvideoram[tile_index] + ((attr & 0xc0) << 2), + m_bgvideoram[tile_index] + ((attr & 0xc0) << 2), attr & 0x07, TILE_FLIPYX((attr & 0x30) >> 4)); tileinfo.group = (attr & 0x08) >> 3; @@ -50,8 +48,8 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( gng ) { gng_state *state = machine.driver_data<gng_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gng_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gng_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(3); state->m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */ diff --git a/src/mame/video/goal92.c b/src/mame/video/goal92.c index ff07f78c5b5..98f046ed13d 100644 --- a/src/mame/video/goal92.c +++ b/src/mame/video/goal92.c @@ -40,40 +40,37 @@ WRITE16_MEMBER(goal92_state::goal92_foreground_w) m_fg_layer->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(goal92_state::get_text_tile_info) { - goal92_state *state = machine.driver_data<goal92_state>(); - int tile = state->m_tx_data[tile_index]; + int tile = m_tx_data[tile_index]; int color = (tile >> 12) & 0xf; tile &= 0xfff; tile |= 0xc000; - SET_TILE_INFO(1, tile, color, 0); + SET_TILE_INFO_MEMBER(1, tile, color, 0); } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(goal92_state::get_back_tile_info) { - goal92_state *state = machine.driver_data<goal92_state>(); - int tile = state->m_bg_data[tile_index]; + int tile = m_bg_data[tile_index]; int color = (tile >> 12) & 0xf; tile &= 0xfff; - SET_TILE_INFO(2, tile, color, 0); + SET_TILE_INFO_MEMBER(2, tile, color, 0); } -static TILE_GET_INFO( get_fore_tile_info ) +TILE_GET_INFO_MEMBER(goal92_state::get_fore_tile_info) { - goal92_state *state = machine.driver_data<goal92_state>(); - int tile = state->m_fg_data[tile_index]; + int tile = m_fg_data[tile_index]; int color = (tile >> 12) & 0xf; int region; tile &= 0xfff; - if(state->m_fg_bank & 0xff) + if(m_fg_bank & 0xff) { region = 3; tile |= 0x1000; @@ -84,7 +81,7 @@ static TILE_GET_INFO( get_fore_tile_info ) tile |= 0x2000; } - SET_TILE_INFO(region, tile, color, 0); + SET_TILE_INFO_MEMBER(region, tile, color, 0); } static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) @@ -135,9 +132,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const VIDEO_START( goal92 ) { goal92_state *state = machine.driver_data<goal92_state>(); - state->m_bg_layer = tilemap_create(machine, get_back_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_fg_layer = tilemap_create(machine, get_fore_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_tx_layer = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goal92_state::get_back_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goal92_state::get_fore_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goal92_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, 0x400 * 2); state_save_register_global_pointer(machine, state->m_buffered_spriteram, 0x400 * 2); diff --git a/src/mame/video/goindol.c b/src/mame/video/goindol.c index 674ede097d4..c27432d6f78 100644 --- a/src/mame/video/goindol.c +++ b/src/mame/video/goindol.c @@ -15,26 +15,24 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(goindol_state::get_fg_tile_info) { - goindol_state *state = machine.driver_data<goindol_state>(); - int code = state->m_fg_videoram[2 * tile_index + 1]; - int attr = state->m_fg_videoram[2 * tile_index]; - SET_TILE_INFO( + int code = m_fg_videoram[2 * tile_index + 1]; + int attr = m_fg_videoram[2 * tile_index]; + SET_TILE_INFO_MEMBER( 0, - code | ((attr & 0x7) << 8) | (state->m_char_bank << 11), + code | ((attr & 0x7) << 8) | (m_char_bank << 11), (attr & 0xf8) >> 3, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(goindol_state::get_bg_tile_info) { - goindol_state *state = machine.driver_data<goindol_state>(); - int code = state->m_bg_videoram[2 * tile_index + 1]; - int attr = state->m_bg_videoram[2 * tile_index]; - SET_TILE_INFO( + int code = m_bg_videoram[2 * tile_index + 1]; + int attr = m_bg_videoram[2 * tile_index]; + SET_TILE_INFO_MEMBER( 1, - code | ((attr & 0x7) << 8) | (state->m_char_bank << 11), + code | ((attr & 0x7) << 8) | (m_char_bank << 11), (attr & 0xf8) >> 3, 0); } @@ -50,8 +48,8 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( goindol ) { goindol_state *state = machine.driver_data<goindol_state>(); - 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(goindol_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(goindol_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/video/goldstar.c b/src/mame/video/goldstar.c index fa6f8a45dd4..211567779e0 100644 --- a/src/mame/video/goldstar.c +++ b/src/mame/video/goldstar.c @@ -62,41 +62,38 @@ WRITE8_MEMBER(goldstar_state::goldstar_fg_atrram_w) m_fg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_goldstar_fg_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_fg_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_fg_vidram[tile_index]; - int attr = state->m_fg_atrram[tile_index]; + int code = m_fg_vidram[tile_index]; + int attr = m_fg_atrram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code | (attr & 0xf0)<<4, attr&0x0f, 0); } -static TILE_GET_INFO( get_magical_fg_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_magical_fg_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_fg_vidram[tile_index]; - int attr = state->m_fg_atrram[tile_index]; + int code = m_fg_vidram[tile_index]; + int attr = m_fg_atrram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - (code | (attr & 0xf0)<<4)+state->m_tile_bank*0x1000, + (code | (attr & 0xf0)<<4)+m_tile_bank*0x1000, attr&0x0f, 0); } // colour / high tile bits are swapped around -static TILE_GET_INFO( get_cherrym_fg_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_cherrym_fg_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_fg_vidram[tile_index]; - int attr = state->m_fg_atrram[tile_index]; + int code = m_fg_vidram[tile_index]; + int attr = m_fg_atrram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code | (attr & 0x0f)<<8, (attr&0xf0)>>4, @@ -112,15 +109,14 @@ WRITE8_MEMBER(goldstar_state::goldstar_reel1_ram_w) m_reel1_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_goldstar_reel1_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_reel1_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_reel1_ram[tile_index]; + int code = m_reel1_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, - state->m_bgcolor, + m_bgcolor, 0); } @@ -131,15 +127,14 @@ WRITE8_MEMBER(goldstar_state::goldstar_reel2_ram_w) m_reel2_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_goldstar_reel2_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_reel2_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_reel2_ram[tile_index]; + int code = m_reel2_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, - state->m_bgcolor, + m_bgcolor, 0); } @@ -150,15 +145,14 @@ WRITE8_MEMBER(goldstar_state::goldstar_reel3_ram_w) m_reel3_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_goldstar_reel3_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_reel3_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_reel3_ram[tile_index]; + int code = m_reel3_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, - state->m_bgcolor, + m_bgcolor, 0); } @@ -185,39 +179,36 @@ WRITE8_MEMBER(goldstar_state::unkch_reel3_attrram_w) } -static TILE_GET_INFO( get_unkch_reel1_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_unkch_reel1_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_reel1_ram[tile_index]; - int attr = state->m_reel1_attrram[tile_index]; + int code = m_reel1_ram[tile_index]; + int attr = m_reel1_attrram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code | (attr & 0x0f)<<8, (attr&0xf0)>>4, 0); } -static TILE_GET_INFO( get_unkch_reel2_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_unkch_reel2_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_reel2_ram[tile_index]; - int attr = state->m_reel2_attrram[tile_index]; + int code = m_reel2_ram[tile_index]; + int attr = m_reel2_attrram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code | (attr & 0x0f)<<8, (attr&0xf0)>>4, 0); } -static TILE_GET_INFO( get_unkch_reel3_tile_info ) +TILE_GET_INFO_MEMBER(goldstar_state::get_unkch_reel3_tile_info) { - goldstar_state *state = machine.driver_data<goldstar_state>(); - int code = state->m_reel3_ram[tile_index]; - int attr = state->m_reel3_attrram[tile_index]; + int code = m_reel3_ram[tile_index]; + int attr = m_reel3_attrram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code | (attr & 0x0f)<<8, (attr&0xf0)>>4, @@ -231,15 +222,15 @@ VIDEO_START( goldstar ) { goldstar_state *state = machine.driver_data<goldstar_state>(); - state->m_reel1_tilemap = tilemap_create(machine,get_goldstar_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_goldstar_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_goldstar_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_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_goldstar_fg_tile_info,TILEMAP_SCAN_ROWS,8,8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); // is there an enable reg for this game? @@ -250,11 +241,11 @@ VIDEO_START( bingowng ) { goldstar_state *state = machine.driver_data<goldstar_state>(); - state->m_reel1_tilemap = tilemap_create(machine,get_goldstar_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); state->m_reel1_tilemap->set_scroll_cols(64); - state->m_fg_tilemap = tilemap_create(machine,get_goldstar_fg_tile_info,TILEMAP_SCAN_ROWS,8,8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); // is there an enable reg for this game? @@ -265,15 +256,15 @@ VIDEO_START( magical ) { goldstar_state *state = machine.driver_data<goldstar_state>(); - state->m_reel1_tilemap = tilemap_create(machine,get_goldstar_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_goldstar_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_goldstar_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); state->m_reel1_tilemap->set_scroll_cols(32); state->m_reel2_tilemap->set_scroll_cols(32); state->m_reel3_tilemap->set_scroll_cols(32); - state->m_fg_tilemap = tilemap_create(machine,get_magical_fg_tile_info,TILEMAP_SCAN_ROWS,8,8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_magical_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); // is there an enable reg for this game? @@ -284,9 +275,9 @@ VIDEO_START( unkch ) { goldstar_state *state = machine.driver_data<goldstar_state>(); - state->m_reel1_tilemap = tilemap_create(machine,get_unkch_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_unkch_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_unkch_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_unkch_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_unkch_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_unkch_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); state->m_reel1_tilemap->set_scroll_cols(32); state->m_reel2_tilemap->set_scroll_cols(32); @@ -296,7 +287,7 @@ VIDEO_START( unkch ) state->m_cmaster_girl_pal = 0; state->m_unkch_vidreg = 0x00; - state->m_fg_tilemap = tilemap_create(machine,get_cherrym_fg_tile_info,TILEMAP_SCAN_ROWS,8,8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_cm_enable_reg = 0x0b; @@ -306,9 +297,9 @@ VIDEO_START( cherrym ) { goldstar_state *state = machine.driver_data<goldstar_state>(); - state->m_reel1_tilemap = tilemap_create(machine,get_goldstar_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel2_tilemap = tilemap_create(machine,get_goldstar_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); - state->m_reel3_tilemap = tilemap_create(machine,get_goldstar_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); + state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_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); @@ -317,7 +308,7 @@ VIDEO_START( cherrym ) state->m_cmaster_girl_num = 0; state->m_cmaster_girl_pal = 0; - state->m_fg_tilemap = tilemap_create(machine,get_cherrym_fg_tile_info,TILEMAP_SCAN_ROWS,8,8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_cm_enable_reg = 0x0b; diff --git a/src/mame/video/gomoku.c b/src/mame/video/gomoku.c index 6b4e6fab3e6..abcbb4a8608 100644 --- a/src/mame/video/gomoku.c +++ b/src/mame/video/gomoku.c @@ -54,15 +54,14 @@ PALETTE_INIT( gomoku ) ******************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(gomoku_state::get_fg_tile_info) { - gomoku_state *state = machine.driver_data<gomoku_state>(); - 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]); int color = (attr& 0x0f); int flipyx = (attr & 0xc0) >> 6; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -115,7 +114,7 @@ VIDEO_START( gomoku ) machine.primary_screen->register_screen_bitmap(state->m_bg_bitmap); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gomoku_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/video/gotcha.c b/src/mame/video/gotcha.c index e4102cbbbe6..41d9dea58fa 100644 --- a/src/mame/video/gotcha.c +++ b/src/mame/video/gotcha.c @@ -8,7 +8,7 @@ ***************************************************************************/ -static TILEMAP_MAPPER( gotcha_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(gotcha_state::gotcha_tilemap_scan) { return (col & 0x1f) | (row << 5) | ((col & 0x20) << 5); } @@ -22,16 +22,14 @@ INLINE void get_tile_info( running_machine &machine, tile_data &tileinfo, int ti SET_TILE_INFO(0, code, (data >> 12) + color_offs, 0); } -static TILE_GET_INFO( fg_get_tile_info ) +TILE_GET_INFO_MEMBER(gotcha_state::fg_get_tile_info) { - gotcha_state *state = machine.driver_data<gotcha_state>(); - get_tile_info(machine, tileinfo, tile_index, state->m_fgvideoram, 0); + get_tile_info(machine(), tileinfo, tile_index, m_fgvideoram, 0); } -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(gotcha_state::bg_get_tile_info) { - gotcha_state *state = machine.driver_data<gotcha_state>(); - get_tile_info(machine, tileinfo, tile_index, state->m_bgvideoram, 16); + get_tile_info(machine(), tileinfo, tile_index, m_bgvideoram, 16); } @@ -45,8 +43,8 @@ static TILE_GET_INFO( bg_get_tile_info ) VIDEO_START( gotcha ) { gotcha_state *state = machine.driver_data<gotcha_state>(); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info, gotcha_tilemap_scan, 16, 16, 64, 32); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, gotcha_tilemap_scan, 16, 16, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gotcha_state::fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(gotcha_state::gotcha_tilemap_scan),state), 16, 16, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gotcha_state::bg_get_tile_info),state), tilemap_mapper_delegate(FUNC(gotcha_state::gotcha_tilemap_scan),state), 16, 16, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/gottlieb.c b/src/mame/video/gottlieb.c index 25e9769e3c3..e2fb6f60649 100644 --- a/src/mame/video/gottlieb.c +++ b/src/mame/video/gottlieb.c @@ -121,26 +121,24 @@ WRITE8_MEMBER(gottlieb_state::gottlieb_charram_w) * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gottlieb_state::get_bg_tile_info) { - gottlieb_state *state = machine.driver_data<gottlieb_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[tile_index]; if ((code & 0x80) == 0) - SET_TILE_INFO(state->m_gfxcharlo, code, 0, 0); + SET_TILE_INFO_MEMBER(m_gfxcharlo, code, 0, 0); else - SET_TILE_INFO(state->m_gfxcharhi, code, 0, 0); + SET_TILE_INFO_MEMBER(m_gfxcharhi, code, 0, 0); } -static TILE_GET_INFO( get_screwloo_bg_tile_info ) +TILE_GET_INFO_MEMBER(gottlieb_state::get_screwloo_bg_tile_info) { - gottlieb_state *state = machine.driver_data<gottlieb_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[tile_index]; if ((code & 0xc0) == 0) - SET_TILE_INFO(state->m_gfxcharlo, code, 0, 0); + SET_TILE_INFO_MEMBER(m_gfxcharlo, code, 0, 0); else - SET_TILE_INFO(state->m_gfxcharhi, code, 0, 0); + SET_TILE_INFO_MEMBER(m_gfxcharhi, code, 0, 0); } @@ -159,7 +157,7 @@ VIDEO_START( gottlieb ) state->m_transparent0 = FALSE; /* configure the background tilemap */ - 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(gottlieb_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_scrolldx(0, 318 - 256); @@ -186,7 +184,7 @@ VIDEO_START( screwloo ) state->m_transparent0 = FALSE; /* configure the background tilemap */ - state->m_bg_tilemap = tilemap_create(machine, get_screwloo_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gottlieb_state::get_screwloo_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scrolldx(0, 318 - 256); diff --git a/src/mame/video/gotya.c b/src/mame/video/gotya.c index 5258260ba14..2cb82948268 100644 --- a/src/mame/video/gotya.c +++ b/src/mame/video/gotya.c @@ -90,16 +90,15 @@ WRITE8_MEMBER(gotya_state::gotya_video_control_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gotya_state::get_bg_tile_info) { - gotya_state *state = machine.driver_data<gotya_state>(); - int code = state->m_videoram[tile_index]; - int color = state->m_colorram[tile_index] & 0x0f; + int code = m_videoram[tile_index]; + int color = m_colorram[tile_index] & 0x0f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILEMAP_MAPPER( tilemap_scan_rows_thehand ) +TILEMAP_MAPPER_MEMBER(gotya_state::tilemap_scan_rows_thehand) { /* logical (col,row) -> memory offset */ row = 31 - row; @@ -110,7 +109,7 @@ static TILEMAP_MAPPER( tilemap_scan_rows_thehand ) VIDEO_START( gotya ) { gotya_state *state = machine.driver_data<gotya_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows_thehand, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gotya_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(gotya_state::tilemap_scan_rows_thehand),state), 8, 8, 64, 32); } static void draw_status_row( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int sx, int col ) diff --git a/src/mame/video/grchamp.c b/src/mame/video/grchamp.c index 38f8e9abb95..44fdee2bcd9 100644 --- a/src/mame/video/grchamp.c +++ b/src/mame/video/grchamp.c @@ -71,31 +71,27 @@ WRITE8_MEMBER(grchamp_state::grchamp_right_w) m_right_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(grchamp_state::get_text_tile_info) { - grchamp_state *state = machine.driver_data<grchamp_state>(); - SET_TILE_INFO(0, state->m_videoram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(0, m_videoram[tile_index], 0, 0); } -static TILE_GET_INFO( get_left_tile_info ) +TILE_GET_INFO_MEMBER(grchamp_state::get_left_tile_info) { - grchamp_state *state = machine.driver_data<grchamp_state>(); - SET_TILE_INFO(1, state->m_leftram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(1, m_leftram[tile_index], 0, 0); } -static TILE_GET_INFO( get_right_tile_info ) +TILE_GET_INFO_MEMBER(grchamp_state::get_right_tile_info) { - grchamp_state *state = machine.driver_data<grchamp_state>(); - SET_TILE_INFO(2, state->m_rightram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(2, m_rightram[tile_index], 0, 0); } -static TILE_GET_INFO( get_center_tile_info ) +TILE_GET_INFO_MEMBER(grchamp_state::get_center_tile_info) { - grchamp_state *state = machine.driver_data<grchamp_state>(); - SET_TILE_INFO(3, state->m_centerram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(3, m_centerram[tile_index], 0, 0); } -static TILEMAP_MAPPER( get_memory_offset ) +TILEMAP_MAPPER_MEMBER(grchamp_state::get_memory_offset) { return (col % 32) + row * 32 + (col / 32) * 32*32; } @@ -108,10 +104,10 @@ VIDEO_START( grchamp ) state->m_work_bitmap.allocate(32,32); /* allocate tilemaps for each of the three sections */ - state->m_text_tilemap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); - state->m_left_tilemap = tilemap_create(machine, get_left_tile_info, get_memory_offset, 8,8, 64,32); - state->m_right_tilemap = tilemap_create(machine, get_right_tile_info, get_memory_offset, 8,8, 64,32); - state->m_center_tilemap = tilemap_create(machine, get_center_tile_info, get_memory_offset, 8,8, 64,32); + state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(grchamp_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_left_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(grchamp_state::get_left_tile_info),state), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),state), 8,8, 64,32); + state->m_right_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(grchamp_state::get_right_tile_info),state), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),state), 8,8, 64,32); + state->m_center_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(grchamp_state::get_center_tile_info),state), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),state), 8,8, 64,32); } #if 0 diff --git a/src/mame/video/gstriker.c b/src/mame/video/gstriker.c index a77a948fd38..00c775ba3eb 100644 --- a/src/mame/video/gstriker.c +++ b/src/mame/video/gstriker.c @@ -25,18 +25,17 @@ t=tile, p=palette */ -static TILE_GET_INFO( VS920A_get_tile_info ) +TILE_GET_INFO_MEMBER(gstriker_state::VS920A_get_tile_info) { - gstriker_state *state = machine.driver_data<gstriker_state>(); int data; int tileno, pal; - data = state->m_VS920A_cur_chip->vram[tile_index]; + data = m_VS920A_cur_chip->vram[tile_index]; tileno = data & 0xFFF; pal = (data >> 12) & 0xF; - SET_TILE_INFO(state->m_VS920A_cur_chip->gfx_region, tileno, state->m_VS920A_cur_chip->pal_base + pal, 0); + SET_TILE_INFO_MEMBER(m_VS920A_cur_chip->gfx_region, tileno, m_VS920A_cur_chip->pal_base + pal, 0); } WRITE16_MEMBER(gstriker_state::VS920A_0_vram_w) @@ -61,7 +60,7 @@ static void VS920A_init(running_machine &machine, int numchips) for (i=0;i<numchips;i++) { - state->m_VS920A[i].tmap = tilemap_create(machine, VS920A_get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_VS920A[i].tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstriker_state::VS920A_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_VS920A[i].tmap->set_transparent_pen(0); } @@ -139,19 +138,18 @@ index is in the MSB. gstriker uses 5 bits for banking, but the chips could be ab -static TILE_GET_INFO( MB60553_get_tile_info ) +TILE_GET_INFO_MEMBER(gstriker_state::MB60553_get_tile_info) { - gstriker_state *state = machine.driver_data<gstriker_state>(); int data, bankno; int tileno, pal; - data = state->m_MB60553_cur_chip->vram[tile_index]; + data = m_MB60553_cur_chip->vram[tile_index]; tileno = data & 0x1FF; pal = (data >> 12) & 0xF; bankno = (data >> 9) & 0x7; - SET_TILE_INFO(state->m_MB60553->gfx_region, tileno + state->m_MB60553_cur_chip->bank[bankno] * 0x200, pal + state->m_MB60553->pal_base, 0); + SET_TILE_INFO_MEMBER(m_MB60553->gfx_region, tileno + m_MB60553_cur_chip->bank[bankno] * 0x200, pal + m_MB60553->pal_base, 0); } void gstriker_state::MB60553_reg_written(int numchip, int num_reg) @@ -203,7 +201,7 @@ void gstriker_state::MB60553_reg_written(int numchip, int num_reg) } /* twc94 has the tilemap made of 2 pages .. it needs this */ -static TILEMAP_MAPPER( twc94_scan ) +TILEMAP_MAPPER_MEMBER(gstriker_state::twc94_scan) { /* logical (col,row) -> memory offset */ return (row*64) + (col&63) + ((col&64)<<6); @@ -219,7 +217,7 @@ static void MB60553_init(running_machine &machine, int numchips) for (i=0;i<numchips;i++) { - state->m_MB60553[i].tmap = tilemap_create(machine, MB60553_get_tile_info,twc94_scan, 16,16,128,64); + state->m_MB60553[i].tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstriker_state::MB60553_get_tile_info),state),tilemap_mapper_delegate(FUNC(gstriker_state::twc94_scan),state), 16,16,128,64); state->m_MB60553[i].tmap->set_transparent_pen(0); } diff --git a/src/mame/video/gsword.c b/src/mame/video/gsword.c index d088c9cb763..9bd81d96e0b 100644 --- a/src/mame/video/gsword.c +++ b/src/mame/video/gsword.c @@ -142,21 +142,20 @@ WRITE8_MEMBER(gsword_state::gsword_scroll_w) m_bg_tilemap->set_scrolly(0, data); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gsword_state::get_bg_tile_info) { - gsword_state *state = machine.driver_data<gsword_state>(); - UINT8 *videoram = state->m_videoram; - int code = videoram[tile_index] + ((state->m_charbank & 0x03) << 8); - int color = ((code & 0x3c0) >> 6) + 16 * state->m_charpalbank; - int flags = state->m_flipscreen ? (TILE_FLIPX | TILE_FLIPY) : 0; + UINT8 *videoram = m_videoram; + int code = videoram[tile_index] + ((m_charbank & 0x03) << 8); + int color = ((code & 0x3c0) >> 6) + 16 * m_charpalbank; + int flags = m_flipscreen ? (TILE_FLIPX | TILE_FLIPY) : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( gsword ) { gsword_state *state = machine.driver_data<gsword_state>(); - 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(gsword_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 64); } diff --git a/src/mame/video/gumbo.c b/src/mame/video/gumbo.c index 7f9d3a2bde1..a7d59fa81e8 100644 --- a/src/mame/video/gumbo.c +++ b/src/mame/video/gumbo.c @@ -10,11 +10,10 @@ WRITE16_MEMBER(gumbo_state::gumbo_bg_videoram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_gumbo_bg_tile_info ) +TILE_GET_INFO_MEMBER(gumbo_state::get_gumbo_bg_tile_info) { - gumbo_state *state = machine.driver_data<gumbo_state>(); - int tileno = state->m_bg_videoram[tile_index]; - SET_TILE_INFO(0, tileno, 0, 0); + int tileno = m_bg_videoram[tile_index]; + SET_TILE_INFO_MEMBER(0, tileno, 0, 0); } @@ -24,19 +23,18 @@ WRITE16_MEMBER(gumbo_state::gumbo_fg_videoram_w) m_fg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_gumbo_fg_tile_info ) +TILE_GET_INFO_MEMBER(gumbo_state::get_gumbo_fg_tile_info) { - gumbo_state *state = machine.driver_data<gumbo_state>(); - int tileno = state->m_fg_videoram[tile_index]; - SET_TILE_INFO(1, tileno, 1, 0); + int tileno = m_fg_videoram[tile_index]; + SET_TILE_INFO_MEMBER(1, tileno, 1, 0); } VIDEO_START( gumbo ) { gumbo_state *state = machine.driver_data<gumbo_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_gumbo_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, get_gumbo_fg_tile_info, TILEMAP_SCAN_ROWS, 4, 4, 128, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gumbo_state::get_gumbo_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gumbo_state::get_gumbo_fg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 4, 128, 64); state->m_fg_tilemap->set_transparent_pen(0xff); } diff --git a/src/mame/video/gundealr.c b/src/mame/video/gundealr.c index f7f018f7b1f..b880b765ee6 100644 --- a/src/mame/video/gundealr.c +++ b/src/mame/video/gundealr.c @@ -16,30 +16,28 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gundealr_state::get_bg_tile_info) { - gundealr_state *state = machine.driver_data<gundealr_state>(); - UINT8 attr = state->m_bg_videoram[2 * tile_index + 1]; - SET_TILE_INFO( + UINT8 attr = m_bg_videoram[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 0, - state->m_bg_videoram[2 * tile_index] + ((attr & 0x07) << 8), + m_bg_videoram[2 * tile_index] + ((attr & 0x07) << 8), (attr & 0xf0) >> 4, 0); } -static TILEMAP_MAPPER( gundealr_scan ) +TILEMAP_MAPPER_MEMBER(gundealr_state::gundealr_scan) { /* logical (col,row) -> memory offset */ return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x10) << 6); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(gundealr_state::get_fg_tile_info) { - gundealr_state *state = machine.driver_data<gundealr_state>(); - UINT8 attr = state->m_fg_videoram[2 * tile_index + 1]; - SET_TILE_INFO( + UINT8 attr = m_fg_videoram[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 1, - state->m_fg_videoram[2 * tile_index] + ((attr & 0x03) << 8), + m_fg_videoram[2 * tile_index] + ((attr & 0x03) << 8), (attr & 0xf0) >> 4, 0); } @@ -55,8 +53,8 @@ static TILE_GET_INFO( get_fg_tile_info ) VIDEO_START( gundealr ) { gundealr_state *state = machine.driver_data<gundealr_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, gundealr_scan, 16, 16, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gundealr_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gundealr_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(gundealr_state::gundealr_scan),state), 16, 16, 64, 32); state->m_fg_tilemap->set_transparent_pen(15); } diff --git a/src/mame/video/gunsmoke.c b/src/mame/video/gunsmoke.c index 2c0a0ff5c03..2f332d383cf 100644 --- a/src/mame/video/gunsmoke.c +++ b/src/mame/video/gunsmoke.c @@ -103,9 +103,9 @@ WRITE8_MEMBER(gunsmoke_state::gunsmoke_d806_w) m_objon = data & 0x20; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(gunsmoke_state::get_bg_tile_info) { - UINT8 *tilerom = machine.root_device().memregion("gfx4")->base(); + UINT8 *tilerom = machine().root_device().memregion("gfx4")->base(); int offs = tile_index * 2; int attr = tilerom[offs + 1]; @@ -113,26 +113,25 @@ static TILE_GET_INFO( get_bg_tile_info ) int color = (attr & 0x3c) >> 2; int flags = TILE_FLIPYX((attr & 0xc0) >> 6); - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(gunsmoke_state::get_fg_tile_info) { - gunsmoke_state *state = machine.driver_data<gunsmoke_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0xe0) << 2); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0xe0) << 2); int color = attr & 0x1f; tileinfo.group = color; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( gunsmoke ) { gunsmoke_state *state = machine.driver_data<gunsmoke_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 32, 32, 2048, 8); - 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(gunsmoke_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 2048, 8); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gunsmoke_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 0x4f); } diff --git a/src/mame/video/gyruss.c b/src/mame/video/gyruss.c index 1522e5c0fb5..d6546eb427c 100644 --- a/src/mame/video/gyruss.c +++ b/src/mame/video/gyruss.c @@ -99,23 +99,22 @@ WRITE8_MEMBER(gyruss_state::gyruss_spriteram_w) } -static TILE_GET_INFO( gyruss_get_tile_info ) +TILE_GET_INFO_MEMBER(gyruss_state::gyruss_get_tile_info) { - gyruss_state *state = machine.driver_data<gyruss_state>(); - int code = ((state->m_colorram[tile_index] & 0x20) << 3) | state->m_videoram[tile_index]; - int color = state->m_colorram[tile_index] & 0x0f; - int flags = TILE_FLIPYX(state->m_colorram[tile_index] >> 6); + int code = ((m_colorram[tile_index] & 0x20) << 3) | m_videoram[tile_index]; + int color = m_colorram[tile_index] & 0x0f; + int flags = TILE_FLIPYX(m_colorram[tile_index] >> 6); - tileinfo.group = (state->m_colorram[tile_index] & 0x10) ? 0 : 1; + tileinfo.group = (m_colorram[tile_index] & 0x10) ? 0 : 1; - SET_TILE_INFO(2, code, color, flags); + SET_TILE_INFO_MEMBER(2, code, color, flags); } VIDEO_START( gyruss ) { gyruss_state *state = machine.driver_data<gyruss_state>(); - state->m_tilemap = tilemap_create(machine, gyruss_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gyruss_state::gyruss_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tilemap->set_transmask(0, 0x00, 0); /* opaque */ state->m_tilemap->set_transmask(1, 0x0f, 0); /* transparent */ } diff --git a/src/mame/video/hanaawas.c b/src/mame/video/hanaawas.c index 818272b205f..ccb149717fe 100644 --- a/src/mame/video/hanaawas.c +++ b/src/mame/video/hanaawas.c @@ -89,23 +89,22 @@ WRITE8_DEVICE_HANDLER( hanaawas_portB_w ) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(hanaawas_state::get_bg_tile_info) { - hanaawas_state *state = machine.driver_data<hanaawas_state>(); /* the color is determined by the current color byte, but the bank is via the previous one!!! */ - int offset = (tile_index + (state->flip_screen() ? 1 : -1)) & 0x3ff; - int attr = state->m_colorram[offset]; + int offset = (tile_index + (flip_screen() ? 1 : -1)) & 0x3ff; + int attr = m_colorram[offset]; int gfxbank = (attr & 0x40) >> 6; - int code = state->m_videoram[tile_index] + ((attr & 0x20) << 3); - int color = state->m_colorram[tile_index] & 0x1f; + int code = m_videoram[tile_index] + ((attr & 0x20) << 3); + int color = m_colorram[tile_index] & 0x1f; - SET_TILE_INFO(gfxbank, code, color, 0); + SET_TILE_INFO_MEMBER(gfxbank, code, color, 0); } VIDEO_START( hanaawas ) { hanaawas_state *state = machine.driver_data<hanaawas_state>(); - 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(hanaawas_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } SCREEN_UPDATE_IND16( hanaawas ) diff --git a/src/mame/video/hcastle.c b/src/mame/video/hcastle.c index 26cd538554b..f9e62cd8f65 100644 --- a/src/mame/video/hcastle.c +++ b/src/mame/video/hcastle.c @@ -65,23 +65,22 @@ static void set_pens(running_machine &machine) ***************************************************************************/ -static TILEMAP_MAPPER( tilemap_scan ) +TILEMAP_MAPPER_MEMBER(hcastle_state::tilemap_scan) { /* logical (col,row) -> memory offset */ return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 6); /* skip 0x400 */ } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(hcastle_state::get_fg_tile_info) { - hcastle_state *state = machine.driver_data<hcastle_state>(); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_1, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_1, 6); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; int bit3 = (ctrl_5 >> 6) & 0x03; - int attr = state->m_pf1_videoram[tile_index]; - int tile = state->m_pf1_videoram[tile_index + 0x400]; + int attr = m_pf1_videoram[tile_index]; + int tile = m_pf1_videoram[tile_index + 0x400]; int color = attr & 0x7; int bank = ((attr & 0x80) >> 7) | ((attr >> (bit0 + 2)) & 0x02) | @@ -89,24 +88,23 @@ static TILE_GET_INFO( get_fg_tile_info ) ((attr >> (bit2 )) & 0x08) | ((attr >> (bit3 - 1)) & 0x10); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - tile + bank * 0x100 + state->m_pf1_bankbase, + tile + bank * 0x100 + m_pf1_bankbase, ((ctrl_6 & 0x30) * 2 + 16) + color, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(hcastle_state::get_bg_tile_info) { - hcastle_state *state = machine.driver_data<hcastle_state>(); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_2, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_2, 6); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; int bit3 = (ctrl_5 >> 6) & 0x03; - int attr = state->m_pf2_videoram[tile_index]; - int tile = state->m_pf2_videoram[tile_index + 0x400]; + int attr = m_pf2_videoram[tile_index]; + int tile = m_pf2_videoram[tile_index + 0x400]; int color = attr & 0x7; int bank = ((attr & 0x80) >> 7) | ((attr >> (bit0 + 2)) & 0x02) | @@ -114,9 +112,9 @@ static TILE_GET_INFO( get_bg_tile_info ) ((attr >> (bit2 )) & 0x08) | ((attr >> (bit3 - 1)) & 0x10); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - tile + bank * 0x100 + state->m_pf2_bankbase, + tile + bank * 0x100 + m_pf2_bankbase, ((ctrl_6 & 0x30) * 2 + 16) + color, 0); } @@ -133,8 +131,8 @@ VIDEO_START( hcastle ) { hcastle_state *state = machine.driver_data<hcastle_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan, 8, 8, 64, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hcastle_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(hcastle_state::tilemap_scan),state), 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hcastle_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(hcastle_state::tilemap_scan),state), 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/hexion.c b/src/mame/video/hexion.c index 5bad4f47d2f..e6d8de44bc8 100644 --- a/src/mame/video/hexion.c +++ b/src/mame/video/hexion.c @@ -20,16 +20,14 @@ INLINE void get_tile_info(running_machine &machine,tile_data &tileinfo,int tile_ 0); } -static TILE_GET_INFO( get_tile_info0 ) +TILE_GET_INFO_MEMBER(hexion_state::get_tile_info0) { - hexion_state *state = machine.driver_data<hexion_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_vram[0]); + get_tile_info(machine(),tileinfo,tile_index,m_vram[0]); } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(hexion_state::get_tile_info1) { - hexion_state *state = machine.driver_data<hexion_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_vram[1]); + get_tile_info(machine(),tileinfo,tile_index,m_vram[1]); } @@ -43,8 +41,8 @@ static TILE_GET_INFO( get_tile_info1 ) VIDEO_START( hexion ) { hexion_state *state = machine.driver_data<hexion_state>(); - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS, 8,8,64,32); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hexion_state::get_tile_info0),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hexion_state::get_tile_info1),state),TILEMAP_SCAN_ROWS, 8,8,64,32); state->m_bg_tilemap[0]->set_transparent_pen(0); state->m_bg_tilemap[1]->set_scrollx(0,-4); diff --git a/src/mame/video/higemaru.c b/src/mame/video/higemaru.c index 9d171988e1f..5e24fe017c9 100644 --- a/src/mame/video/higemaru.c +++ b/src/mame/video/higemaru.c @@ -89,19 +89,18 @@ WRITE8_MEMBER(higemaru_state::higemaru_c800_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(higemaru_state::get_bg_tile_info) { - higemaru_state *state = machine.driver_data<higemaru_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x80) << 1); - int color = state->m_colorram[tile_index] & 0x1f; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x80) << 1); + int color = m_colorram[tile_index] & 0x1f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( higemaru ) { higemaru_state *state = machine.driver_data<higemaru_state>(); - 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(higemaru_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/video/himesiki.c b/src/mame/video/himesiki.c index 52f170d26d4..060591965f6 100644 --- a/src/mame/video/himesiki.c +++ b/src/mame/video/himesiki.c @@ -10,21 +10,20 @@ Video hardware #include "emu.h" #include "includes/himesiki.h" -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(himesiki_state::get_bg_tile_info) { - himesiki_state *state = machine.driver_data<himesiki_state>(); - int code = state->m_bg_ram[tile_index * 2] + state->m_bg_ram[tile_index * 2 + 1] * 0x100 ; + int code = m_bg_ram[tile_index * 2] + m_bg_ram[tile_index * 2 + 1] * 0x100 ; int col = code >> 12; code &= 0xfff; - SET_TILE_INFO(0, code, col, 0); + SET_TILE_INFO_MEMBER(0, code, col, 0); } VIDEO_START( himesiki ) { himesiki_state *state = machine.driver_data<himesiki_state>(); - 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(himesiki_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } WRITE8_MEMBER(himesiki_state::himesiki_bg_ram_w) diff --git a/src/mame/video/hng64.c b/src/mame/video/hng64.c index 68129f22420..226fe8c3038 100644 --- a/src/mame/video/hng64.c +++ b/src/mame/video/hng64.c @@ -529,18 +529,17 @@ static void transition_control(running_machine &machine, bitmap_rgb32 &bitmap, c // pppppppp ff--atttt tttttttt tttttttt #define HNG64_GET_TILE_INFO \ { \ - hng64_state *state = machine.driver_data<hng64_state>(); \ - UINT16 tilemapinfo = (state->m_videoregs[reg]>>shift)&0xffff; \ + UINT16 tilemapinfo = (m_videoregs[reg]>>shift)&0xffff; \ int tileno,pal, flip; \ \ - tileno = state->m_videoram[tile_index+(offset/4)]; \ + tileno = m_videoram[tile_index+(offset/4)]; \ \ pal = (tileno&0xff000000)>>24; \ flip =(tileno&0x00c00000)>>22; \ \ if (tileno&0x200000) \ { \ - tileno = (tileno & state->m_videoregs[0x0b]) | state->m_videoregs[0x0c]; \ + tileno = (tileno & m_videoregs[0x0b]) | m_videoregs[0x0c]; \ } \ \ tileno &= 0x1fffff; \ @@ -549,28 +548,28 @@ static void transition_control(running_machine &machine, bitmap_rgb32 &bitmap, c { \ if (tilemapinfo&0x400) \ { \ - SET_TILE_INFO(1,tileno>>1,pal>>4,TILE_FLIPYX(flip)); \ + SET_TILE_INFO_MEMBER(1,tileno>>1,pal>>4,TILE_FLIPYX(flip)); \ } \ else \ { \ - SET_TILE_INFO(0,tileno, pal,TILE_FLIPYX(flip)); \ + SET_TILE_INFO_MEMBER(0,tileno, pal,TILE_FLIPYX(flip)); \ } \ } \ else \ { \ if (tilemapinfo&0x400) \ { \ - SET_TILE_INFO(3,tileno>>3,pal>>4,TILE_FLIPYX(flip)); \ + SET_TILE_INFO_MEMBER(3,tileno>>3,pal>>4,TILE_FLIPYX(flip)); \ } \ else \ { \ - SET_TILE_INFO(2,tileno>>2, pal,TILE_FLIPYX(flip)); \ + SET_TILE_INFO_MEMBER(2,tileno>>2, pal,TILE_FLIPYX(flip)); \ } \ } \ } \ \ -static TILE_GET_INFO( get_hng64_tile0_8x8_info ) +TILE_GET_INFO_MEMBER(hng64_state::get_hng64_tile0_8x8_info) { int offset = 0x00000; int size = 0; @@ -580,7 +579,7 @@ static TILE_GET_INFO( get_hng64_tile0_8x8_info ) HNG64_GET_TILE_INFO } -static TILE_GET_INFO( get_hng64_tile0_16x16_info ) +TILE_GET_INFO_MEMBER(hng64_state::get_hng64_tile0_16x16_info) { int offset = 0x00000; int size = 1; @@ -590,7 +589,7 @@ static TILE_GET_INFO( get_hng64_tile0_16x16_info ) HNG64_GET_TILE_INFO } -static TILE_GET_INFO( get_hng64_tile1_8x8_info ) +TILE_GET_INFO_MEMBER(hng64_state::get_hng64_tile1_8x8_info) { int offset = 0x10000; int size = 0; @@ -600,7 +599,7 @@ static TILE_GET_INFO( get_hng64_tile1_8x8_info ) HNG64_GET_TILE_INFO } -static TILE_GET_INFO( get_hng64_tile1_16x16_info ) +TILE_GET_INFO_MEMBER(hng64_state::get_hng64_tile1_16x16_info) { int offset = 0x10000; int size = 1; @@ -610,7 +609,7 @@ static TILE_GET_INFO( get_hng64_tile1_16x16_info ) HNG64_GET_TILE_INFO } -static TILE_GET_INFO( get_hng64_tile2_8x8_info ) +TILE_GET_INFO_MEMBER(hng64_state::get_hng64_tile2_8x8_info) { int offset = 0x20000; int size = 0; @@ -620,7 +619,7 @@ static TILE_GET_INFO( get_hng64_tile2_8x8_info ) HNG64_GET_TILE_INFO } -static TILE_GET_INFO( get_hng64_tile2_16x16_info ) +TILE_GET_INFO_MEMBER(hng64_state::get_hng64_tile2_16x16_info) { int offset = 0x20000; int size = 1; @@ -630,7 +629,7 @@ static TILE_GET_INFO( get_hng64_tile2_16x16_info ) HNG64_GET_TILE_INFO } -static TILE_GET_INFO( get_hng64_tile3_8x8_info ) +TILE_GET_INFO_MEMBER(hng64_state::get_hng64_tile3_8x8_info) { int offset = 0x30000; int size = 0; @@ -640,7 +639,7 @@ static TILE_GET_INFO( get_hng64_tile3_8x8_info ) HNG64_GET_TILE_INFO } -static TILE_GET_INFO( get_hng64_tile3_16x16_info ) +TILE_GET_INFO_MEMBER(hng64_state::get_hng64_tile3_16x16_info) { int offset = 0x30000; int size = 1; @@ -1658,21 +1657,21 @@ VIDEO_START( hng64 ) state->m_old_tileflags2 = -1; state->m_old_tileflags3 = -1; - state->m_tilemap0_8x8 = tilemap_create(machine, get_hng64_tile0_8x8_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ - state->m_tilemap0_16x16 = tilemap_create(machine, get_hng64_tile0_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ - state->m_tilemap0_16x16_alt = tilemap_create(machine, get_hng64_tile0_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ + state->m_tilemap0_8x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_8x8_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ + state->m_tilemap0_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ + state->m_tilemap0_16x16_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ - state->m_tilemap1_8x8 = tilemap_create(machine, get_hng64_tile1_8x8_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ - state->m_tilemap1_16x16 = tilemap_create(machine, get_hng64_tile1_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ - state->m_tilemap1_16x16_alt = tilemap_create(machine, get_hng64_tile1_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ + state->m_tilemap1_8x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_8x8_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ + state->m_tilemap1_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ + state->m_tilemap1_16x16_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ - state->m_tilemap2_8x8 = tilemap_create(machine, get_hng64_tile2_8x8_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ - state->m_tilemap2_16x16 = tilemap_create(machine, get_hng64_tile2_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ - state->m_tilemap2_16x16_alt = tilemap_create(machine, get_hng64_tile2_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ + state->m_tilemap2_8x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_8x8_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ + state->m_tilemap2_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ + state->m_tilemap2_16x16_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ - state->m_tilemap3_8x8 = tilemap_create(machine, get_hng64_tile3_8x8_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ - state->m_tilemap3_16x16 = tilemap_create(machine, get_hng64_tile3_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ - state->m_tilemap3_16x16_alt = tilemap_create(machine, get_hng64_tile3_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ + state->m_tilemap3_8x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_8x8_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ + state->m_tilemap3_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ + state->m_tilemap3_16x16_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ state->m_tilemap0_8x8->set_transparent_pen(0); state->m_tilemap0_16x16->set_transparent_pen(0); diff --git a/src/mame/video/holeland.c b/src/mame/video/holeland.c index cd7eeaac3b8..4e5325a88e3 100644 --- a/src/mame/video/holeland.c +++ b/src/mame/video/holeland.c @@ -16,34 +16,32 @@ ***************************************************************************/ -static TILE_GET_INFO( holeland_get_tile_info ) +TILE_GET_INFO_MEMBER(holeland_state::holeland_get_tile_info) { - holeland_state *state = machine.driver_data<holeland_state>(); - int attr = state->m_colorram[tile_index]; - int tile_number = state->m_videoram[tile_index] | ((attr & 0x03) << 8); - -/*if (machine.input().code_pressed(KEYCODE_Q) && (attr & 0x10)) tile_number = rand(); */ -/*if (machine.input().code_pressed(KEYCODE_W) && (attr & 0x20)) tile_number = rand(); */ -/*if (machine.input().code_pressed(KEYCODE_E) && (attr & 0x40)) tile_number = rand(); */ -/*if (machine.input().code_pressed(KEYCODE_R) && (attr & 0x80)) tile_number = rand(); */ - SET_TILE_INFO( + int attr = m_colorram[tile_index]; + int tile_number = m_videoram[tile_index] | ((attr & 0x03) << 8); + +/*if (machine().input().code_pressed(KEYCODE_Q) && (attr & 0x10)) tile_number = rand(); */ +/*if (machine().input().code_pressed(KEYCODE_W) && (attr & 0x20)) tile_number = rand(); */ +/*if (machine().input().code_pressed(KEYCODE_E) && (attr & 0x40)) tile_number = rand(); */ +/*if (machine().input().code_pressed(KEYCODE_R) && (attr & 0x80)) tile_number = rand(); */ + SET_TILE_INFO_MEMBER( 0, tile_number, - state->m_palette_offset + ((attr >> 4) & 0x0f), + m_palette_offset + ((attr >> 4) & 0x0f), TILE_FLIPYX((attr >> 2) & 0x03)); tileinfo.group = (attr >> 4) & 1; } -static TILE_GET_INFO( crzrally_get_tile_info ) +TILE_GET_INFO_MEMBER(holeland_state::crzrally_get_tile_info) { - holeland_state *state = machine.driver_data<holeland_state>(); - int attr = state->m_colorram[tile_index]; - int tile_number = state->m_videoram[tile_index] | ((attr & 0x03) << 8); + int attr = m_colorram[tile_index]; + int tile_number = m_videoram[tile_index] | ((attr & 0x03) << 8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, - state->m_palette_offset + ((attr >> 4) & 0x0f), + m_palette_offset + ((attr >> 4) & 0x0f), TILE_FLIPYX((attr >> 2) & 0x03)); tileinfo.group = (attr >> 4) & 1; } @@ -57,7 +55,7 @@ static TILE_GET_INFO( crzrally_get_tile_info ) VIDEO_START( holeland ) { holeland_state *state = machine.driver_data<holeland_state>(); - state->m_bg_tilemap = tilemap_create(machine, holeland_get_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(holeland_state::holeland_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x01, 0xfe); /* split type 1 has pen 0? transparent in front half */ @@ -66,7 +64,7 @@ VIDEO_START( holeland ) VIDEO_START( crzrally ) { holeland_state *state = machine.driver_data<holeland_state>(); - state->m_bg_tilemap = tilemap_create(machine, crzrally_get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(holeland_state::crzrally_get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); } WRITE8_MEMBER(holeland_state::holeland_videoram_w) diff --git a/src/mame/video/homedata.c b/src/mame/video/homedata.c index 3b2e1b86b4b..322eb4f2d0f 100644 --- a/src/mame/video/homedata.c +++ b/src/mame/video/homedata.c @@ -425,28 +425,24 @@ INLINE void mrokumei_info1( running_machine &machine, tile_data &tileinfo, int t SET_TILE_INFO( 1, code, color, state->m_flipscreen ); } -static TILE_GET_INFO( mrokumei_get_info0_0 ) +TILE_GET_INFO_MEMBER(homedata_state::mrokumei_get_info0_0) { - homedata_state *state = machine.driver_data<homedata_state>(); - mrokumei_info0( machine, tileinfo, tile_index, 0, state->m_blitter_bank & 0x03 ); + mrokumei_info0( machine(), tileinfo, tile_index, 0, m_blitter_bank & 0x03 ); } -static TILE_GET_INFO( mrokumei_get_info1_0 ) +TILE_GET_INFO_MEMBER(homedata_state::mrokumei_get_info1_0) { - homedata_state *state = machine.driver_data<homedata_state>(); - mrokumei_info0( machine, tileinfo, tile_index, 1, state->m_blitter_bank & 0x03 ); + mrokumei_info0( machine(), tileinfo, tile_index, 1, m_blitter_bank & 0x03 ); } -static TILE_GET_INFO( mrokumei_get_info0_1 ) +TILE_GET_INFO_MEMBER(homedata_state::mrokumei_get_info0_1) { - homedata_state *state = machine.driver_data<homedata_state>(); - mrokumei_info1( machine, tileinfo, tile_index, 0, (state->m_blitter_bank & 0x38) >> 3 ); + mrokumei_info1( machine(), tileinfo, tile_index, 0, (m_blitter_bank & 0x38) >> 3 ); } -static TILE_GET_INFO( mrokumei_get_info1_1 ) +TILE_GET_INFO_MEMBER(homedata_state::mrokumei_get_info1_1) { - homedata_state *state = machine.driver_data<homedata_state>(); - mrokumei_info1( machine, tileinfo, tile_index, 1, (state->m_blitter_bank & 0x38) >> 3 ); + mrokumei_info1( machine(), tileinfo, tile_index, 1, (m_blitter_bank & 0x38) >> 3 ); } @@ -472,52 +468,44 @@ INLINE void reikaids_info( running_machine &machine, tile_data &tileinfo, int ti * xxxx.x--- layer#0 * ----.-xxx layer#2 */ -static TILE_GET_INFO( reikaids_get_info0_0 ) +TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info0_0) { - homedata_state *state = machine.driver_data<homedata_state>(); - reikaids_info(machine, tileinfo, tile_index, 0, 0, (state->m_gfx_bank[1] >> 3)); + reikaids_info(machine(), tileinfo, tile_index, 0, 0, (m_gfx_bank[1] >> 3)); } -static TILE_GET_INFO( reikaids_get_info1_0 ) +TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info1_0) { - homedata_state *state = machine.driver_data<homedata_state>(); - reikaids_info(machine, tileinfo, tile_index, 1, 0, (state->m_gfx_bank[1] >> 3)); + reikaids_info(machine(), tileinfo, tile_index, 1, 0, (m_gfx_bank[1] >> 3)); } -static TILE_GET_INFO( reikaids_get_info0_1 ) +TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info0_1) { - homedata_state *state = machine.driver_data<homedata_state>(); - reikaids_info(machine, tileinfo, tile_index, 0, 1, ((state->m_gfx_bank[0] & 0x78) >> 3)); + reikaids_info(machine(), tileinfo, tile_index, 0, 1, ((m_gfx_bank[0] & 0x78) >> 3)); } -static TILE_GET_INFO( reikaids_get_info1_1 ) +TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info1_1) { - homedata_state *state = machine.driver_data<homedata_state>(); - reikaids_info(machine, tileinfo, tile_index, 1, 1, ((state->m_gfx_bank[0] & 0x78) >> 3)); + reikaids_info(machine(), tileinfo, tile_index, 1, 1, ((m_gfx_bank[0] & 0x78) >> 3)); } -static TILE_GET_INFO( reikaids_get_info0_2 ) +TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info0_2) { - homedata_state *state = machine.driver_data<homedata_state>(); - reikaids_info(machine, tileinfo, tile_index, 0, 2, (state->m_gfx_bank[1] & 0x7)); + reikaids_info(machine(), tileinfo, tile_index, 0, 2, (m_gfx_bank[1] & 0x7)); } -static TILE_GET_INFO( reikaids_get_info1_2 ) +TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info1_2) { - homedata_state *state = machine.driver_data<homedata_state>(); - reikaids_info(machine, tileinfo, tile_index, 1, 2, (state->m_gfx_bank[1] & 0x7)); + reikaids_info(machine(), tileinfo, tile_index, 1, 2, (m_gfx_bank[1] & 0x7)); } -static TILE_GET_INFO( reikaids_get_info0_3 ) +TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info0_3) { - homedata_state *state = machine.driver_data<homedata_state>(); - reikaids_info(machine, tileinfo, tile_index, 0, 3, (state->m_gfx_bank[0] & 0x7)); + reikaids_info(machine(), tileinfo, tile_index, 0, 3, (m_gfx_bank[0] & 0x7)); } -static TILE_GET_INFO( reikaids_get_info1_3 ) +TILE_GET_INFO_MEMBER(homedata_state::reikaids_get_info1_3) { - homedata_state *state = machine.driver_data<homedata_state>(); - reikaids_info(machine, tileinfo, tile_index, 1, 3, (state->m_gfx_bank[0] & 0x7)); + reikaids_info(machine(), tileinfo, tile_index, 1, 3, (m_gfx_bank[0] & 0x7)); } @@ -532,28 +520,24 @@ INLINE void pteacher_info( running_machine &machine, tile_data &tileinfo, int ti SET_TILE_INFO(layer, code, color, state->m_flipscreen); } -static TILE_GET_INFO( pteacher_get_info0_0 ) +TILE_GET_INFO_MEMBER(homedata_state::pteacher_get_info0_0) { - homedata_state *state = machine.driver_data<homedata_state>(); - pteacher_info(machine, tileinfo, tile_index, 0, 0, state->m_gfx_bank[0] & 0x0f); + pteacher_info(machine(), tileinfo, tile_index, 0, 0, m_gfx_bank[0] & 0x0f); } -static TILE_GET_INFO( pteacher_get_info1_0 ) +TILE_GET_INFO_MEMBER(homedata_state::pteacher_get_info1_0) { - homedata_state *state = machine.driver_data<homedata_state>(); - pteacher_info(machine, tileinfo, tile_index, 1, 0, state->m_gfx_bank[0] & 0x0f); + pteacher_info(machine(), tileinfo, tile_index, 1, 0, m_gfx_bank[0] & 0x0f); } -static TILE_GET_INFO( pteacher_get_info0_1 ) +TILE_GET_INFO_MEMBER(homedata_state::pteacher_get_info0_1) { - homedata_state *state = machine.driver_data<homedata_state>(); - pteacher_info(machine, tileinfo, tile_index, 0, 1, state->m_gfx_bank[0] >> 4); + pteacher_info(machine(), tileinfo, tile_index, 0, 1, m_gfx_bank[0] >> 4); } -static TILE_GET_INFO( pteacher_get_info1_1 ) +TILE_GET_INFO_MEMBER(homedata_state::pteacher_get_info1_1) { - homedata_state *state = machine.driver_data<homedata_state>(); - pteacher_info(machine, tileinfo, tile_index, 1, 1, state->m_gfx_bank[0] >> 4); + pteacher_info(machine(), tileinfo, tile_index, 1, 1, m_gfx_bank[0] >> 4); } @@ -568,29 +552,25 @@ INLINE void lemnangl_info( running_machine &machine, tile_data &tileinfo, int ti SET_TILE_INFO(2 * layer + gfxset, code, color, state->m_flipscreen); } -static TILE_GET_INFO( lemnangl_get_info0_0 ) +TILE_GET_INFO_MEMBER(homedata_state::lemnangl_get_info0_0) { - homedata_state *state = machine.driver_data<homedata_state>(); - lemnangl_info( machine, tileinfo, tile_index, 0, 0, state->m_blitter_bank & 1, state->m_gfx_bank[0] & 0x0f ); + lemnangl_info( machine(), tileinfo, tile_index, 0, 0, m_blitter_bank & 1, m_gfx_bank[0] & 0x0f ); } -static TILE_GET_INFO( lemnangl_get_info1_0 ) +TILE_GET_INFO_MEMBER(homedata_state::lemnangl_get_info1_0) { - homedata_state *state = machine.driver_data<homedata_state>(); - lemnangl_info( machine, tileinfo, tile_index, 1, 0, state->m_blitter_bank & 1, state->m_gfx_bank[0] & 0x0f ); + lemnangl_info( machine(), tileinfo, tile_index, 1, 0, m_blitter_bank & 1, m_gfx_bank[0] & 0x0f ); } -static TILE_GET_INFO( lemnangl_get_info0_1 ) +TILE_GET_INFO_MEMBER(homedata_state::lemnangl_get_info0_1) { - homedata_state *state = machine.driver_data<homedata_state>(); - lemnangl_info( machine, tileinfo, tile_index, 0, 1, (state->m_blitter_bank & 2) >> 1, state->m_gfx_bank[0] >> 4 ); + lemnangl_info( machine(), tileinfo, tile_index, 0, 1, (m_blitter_bank & 2) >> 1, m_gfx_bank[0] >> 4 ); } -static TILE_GET_INFO( lemnangl_get_info1_1 ) +TILE_GET_INFO_MEMBER(homedata_state::lemnangl_get_info1_1) { - homedata_state *state = machine.driver_data<homedata_state>(); - lemnangl_info( machine, tileinfo, tile_index, 1, 1, (state->m_blitter_bank & 2) >> 1, state->m_gfx_bank[0] >> 4 ); + lemnangl_info( machine(), tileinfo, tile_index, 1, 1, (m_blitter_bank & 2) >> 1, m_gfx_bank[0] >> 4 ); } @@ -615,28 +595,24 @@ INLINE void mirderby_info1( running_machine &machine, tile_data &tileinfo, int t SET_TILE_INFO( 1, code, color, state->m_flipscreen ); } -static TILE_GET_INFO( mirderby_get_info0_0 ) +TILE_GET_INFO_MEMBER(homedata_state::mirderby_get_info0_0) { -// homedata_state *state = machine.driver_data<homedata_state>(); - mirderby_info0( machine, tileinfo, tile_index, 0, 0);// state->m_blitter_bank & 0x03 ); + mirderby_info0( machine(), tileinfo, tile_index, 0, 0);// m_blitter_bank & 0x03 ); } -static TILE_GET_INFO( mirderby_get_info1_0 ) +TILE_GET_INFO_MEMBER(homedata_state::mirderby_get_info1_0) { -// homedata_state *state = machine.driver_data<homedata_state>(); - mirderby_info0( machine, tileinfo, tile_index, 1, 0);// state->m_blitter_bank & 0x03 ); + mirderby_info0( machine(), tileinfo, tile_index, 1, 0);// m_blitter_bank & 0x03 ); } -static TILE_GET_INFO( mirderby_get_info0_1 ) +TILE_GET_INFO_MEMBER(homedata_state::mirderby_get_info0_1) { -// homedata_state *state = machine.driver_data<homedata_state>(); - mirderby_info1( machine, tileinfo, tile_index, 0, 0);//(state->m_blitter_bank & 0x38) >> 3 ); + mirderby_info1( machine(), tileinfo, tile_index, 0, 0);//(m_blitter_bank & 0x38) >> 3 ); } -static TILE_GET_INFO( mirderby_get_info1_1 ) +TILE_GET_INFO_MEMBER(homedata_state::mirderby_get_info1_1) { -// homedata_state *state = machine.driver_data<homedata_state>(); - mirderby_info1( machine, tileinfo, tile_index, 1, 0);//(state->m_blitter_bank & 0x38) >> 3 ); + mirderby_info1( machine(), tileinfo, tile_index, 1, 0);//(m_blitter_bank & 0x38) >> 3 ); } @@ -650,10 +626,10 @@ static TILE_GET_INFO( mirderby_get_info1_1 ) VIDEO_START( mrokumei ) { homedata_state *state = machine.driver_data<homedata_state>(); - state->m_bg_tilemap[0][0] = tilemap_create( machine, mrokumei_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); - state->m_bg_tilemap[0][1] = tilemap_create( machine, mrokumei_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); - state->m_bg_tilemap[1][0] = tilemap_create( machine, mrokumei_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); - state->m_bg_tilemap[1][1] = tilemap_create( machine, mrokumei_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); + state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); + state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); + state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); + state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); state->m_bg_tilemap[0][1]->set_transparent_pen(0); state->m_bg_tilemap[1][1]->set_transparent_pen(0); @@ -662,14 +638,14 @@ VIDEO_START( mrokumei ) VIDEO_START( reikaids ) { homedata_state *state = machine.driver_data<homedata_state>(); - state->m_bg_tilemap[0][0] = tilemap_create(machine, reikaids_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[0][1] = tilemap_create(machine, reikaids_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[0][2] = tilemap_create(machine, reikaids_get_info0_2, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[0][3] = tilemap_create(machine, reikaids_get_info0_3, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[1][0] = tilemap_create(machine, reikaids_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[1][1] = tilemap_create(machine, reikaids_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[1][2] = tilemap_create(machine, reikaids_get_info1_2, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap[1][3] = tilemap_create(machine, reikaids_get_info1_3, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_2),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_3),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_2),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap[1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_3),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap[0][0]->set_transparent_pen(0xff); state->m_bg_tilemap[0][1]->set_transparent_pen(0xff); @@ -684,10 +660,10 @@ VIDEO_START( reikaids ) VIDEO_START( pteacher ) { homedata_state *state = machine.driver_data<homedata_state>(); - state->m_bg_tilemap[0][0] = tilemap_create(machine, pteacher_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg_tilemap[0][1] = tilemap_create(machine, pteacher_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg_tilemap[1][0] = tilemap_create(machine, pteacher_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg_tilemap[1][1] = tilemap_create(machine, pteacher_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap[0][1]->set_transparent_pen(0xff); state->m_bg_tilemap[1][1]->set_transparent_pen(0xff); @@ -696,10 +672,10 @@ VIDEO_START( pteacher ) VIDEO_START( lemnangl ) { homedata_state *state = machine.driver_data<homedata_state>(); - state->m_bg_tilemap[0][0] = tilemap_create(machine, lemnangl_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg_tilemap[0][1] = tilemap_create(machine, lemnangl_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg_tilemap[1][0] = tilemap_create(machine, lemnangl_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg_tilemap[1][1] = tilemap_create(machine, lemnangl_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap[0][1]->set_transparent_pen(0x0f); state->m_bg_tilemap[1][1]->set_transparent_pen(0x0f); @@ -708,10 +684,10 @@ VIDEO_START( lemnangl ) VIDEO_START( mirderby ) { homedata_state *state = machine.driver_data<homedata_state>(); - state->m_bg_tilemap[0][0] = tilemap_create( machine, mirderby_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); - state->m_bg_tilemap[0][1] = tilemap_create( machine, mirderby_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); - state->m_bg_tilemap[1][0] = tilemap_create( machine, mirderby_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); - state->m_bg_tilemap[1][1] = tilemap_create( machine, mirderby_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); + state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); + state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); + state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); + state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); state->m_bg_tilemap[0][1]->set_transparent_pen(0); state->m_bg_tilemap[1][1]->set_transparent_pen(0); diff --git a/src/mame/video/homerun.c b/src/mame/video/homerun.c index 87bbcc7af07..4283a562107 100644 --- a/src/mame/video/homerun.c +++ b/src/mame/video/homerun.c @@ -43,19 +43,18 @@ WRITE8_MEMBER(homerun_state::homerun_color_w) palette_set_color(machine(), offset, MAKE_RGB(r,g,b)); } -static TILE_GET_INFO( get_homerun_tile_info ) +TILE_GET_INFO_MEMBER(homerun_state::get_homerun_tile_info) { - homerun_state *state = machine.driver_data<homerun_state>(); - int tileno = (state->m_videoram[tile_index]) + ((state->m_videoram[tile_index + 0x1000] & 0x38) << 5) + ((state->m_gfx_ctrl & 1) << 11); - int palno = (state->m_videoram[tile_index + 0x1000] & 0x07); + int tileno = (m_videoram[tile_index]) + ((m_videoram[tile_index + 0x1000] & 0x38) << 5) + ((m_gfx_ctrl & 1) << 11); + int palno = (m_videoram[tile_index + 0x1000] & 0x07); - SET_TILE_INFO(0, tileno, palno, 0); + SET_TILE_INFO_MEMBER(0, tileno, palno, 0); } VIDEO_START( homerun ) { homerun_state *state = machine.driver_data<homerun_state>(); - state->m_tilemap = tilemap_create(machine, get_homerun_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homerun_state::get_homerun_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); } static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) diff --git a/src/mame/video/hyperspt.c b/src/mame/video/hyperspt.c index 123b51bd191..54c6c34b640 100644 --- a/src/mame/video/hyperspt.c +++ b/src/mame/video/hyperspt.c @@ -111,21 +111,20 @@ WRITE8_MEMBER(hyperspt_state::hyperspt_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(hyperspt_state::get_bg_tile_info) { - hyperspt_state *state = machine.driver_data<hyperspt_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x80) << 1) + ((state->m_colorram[tile_index] & 0x40) << 3); - int color = state->m_colorram[tile_index] & 0x0f; - int flags = ((state->m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x80) << 1) + ((m_colorram[tile_index] & 0x40) << 3); + int color = m_colorram[tile_index] & 0x0f; + int flags = ((m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } VIDEO_START( hyperspt ) { hyperspt_state *state = machine.driver_data<hyperspt_state>(); - 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(hyperspt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_scroll_rows(32); } @@ -191,20 +190,19 @@ SCREEN_UPDATE_IND16( hyperspt ) } /* Road Fighter */ -static TILE_GET_INFO( roadf_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(hyperspt_state::roadf_get_bg_tile_info) { - hyperspt_state *state = machine.driver_data<hyperspt_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x80) << 1) + ((state->m_colorram[tile_index] & 0x60) << 4); - int color = state->m_colorram[tile_index] & 0x0f; - int flags = (state->m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x80) << 1) + ((m_colorram[tile_index] & 0x60) << 4); + int color = m_colorram[tile_index] & 0x0f; + int flags = (m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } VIDEO_START( roadf ) { hyperspt_state *state = machine.driver_data<hyperspt_state>(); - state->m_bg_tilemap = tilemap_create(machine, roadf_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyperspt_state::roadf_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_scroll_rows(32); } diff --git a/src/mame/video/hyprduel.c b/src/mame/video/hyprduel.c index 6f84195ab83..27109f42bfb 100644 --- a/src/mame/video/hyprduel.c +++ b/src/mame/video/hyprduel.c @@ -256,22 +256,19 @@ INLINE void hyprduel_vram_w( running_machine &machine, offs_t offset, UINT16 dat -static TILE_GET_INFO( get_tile_info_0_8bit ) +TILE_GET_INFO_MEMBER(hyprduel_state::get_tile_info_0_8bit) { - hyprduel_state *state = machine.driver_data<hyprduel_state>(); - get_tile_info_8bit(machine, tileinfo, tile_index, 0, state->m_vram_0); + get_tile_info_8bit(machine(), tileinfo, tile_index, 0, m_vram_0); } -static TILE_GET_INFO( get_tile_info_1_8bit ) +TILE_GET_INFO_MEMBER(hyprduel_state::get_tile_info_1_8bit) { - hyprduel_state *state = machine.driver_data<hyprduel_state>(); - get_tile_info_8bit(machine, tileinfo, tile_index, 1, state->m_vram_1); + get_tile_info_8bit(machine(), tileinfo, tile_index, 1, m_vram_1); } -static TILE_GET_INFO( get_tile_info_2_8bit ) +TILE_GET_INFO_MEMBER(hyprduel_state::get_tile_info_2_8bit) { - hyprduel_state *state = machine.driver_data<hyprduel_state>(); - get_tile_info_8bit(machine, tileinfo, tile_index, 2, state->m_vram_2); + get_tile_info_8bit(machine(), tileinfo, tile_index, 2, m_vram_2); } WRITE16_MEMBER(hyprduel_state::hyprduel_vram_0_w) @@ -370,9 +367,9 @@ static VIDEO_START( common_14220 ) state->save_pointer(NAME(state->m_tiletable_old), state->m_tiletable.bytes() / 2); state->save_pointer(NAME(state->m_dirtyindex), state->m_tiletable.bytes() / 4); - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info_0_8bit, TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info_1_8bit, TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); - state->m_bg_tilemap[2] = tilemap_create(machine, get_tile_info_2_8bit, TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyprduel_state::get_tile_info_0_8bit),state), TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyprduel_state::get_tile_info_1_8bit),state), TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); + state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyprduel_state::get_tile_info_2_8bit),state), TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); state->m_bg_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT); state->m_bg_tilemap[0]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT); diff --git a/src/mame/video/inufuku.c b/src/mame/video/inufuku.c index 2833836634d..12c5014b7f4 100644 --- a/src/mame/video/inufuku.c +++ b/src/mame/video/inufuku.c @@ -161,23 +161,21 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const ******************************************************************************/ -static TILE_GET_INFO( get_inufuku_bg_tile_info ) +TILE_GET_INFO_MEMBER(inufuku_state::get_inufuku_bg_tile_info) { - inufuku_state *state = machine.driver_data<inufuku_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_bg_videoram[tile_index], - state->m_bg_palettebank, + m_bg_videoram[tile_index], + m_bg_palettebank, 0); } -static TILE_GET_INFO( get_inufuku_tx_tile_info ) +TILE_GET_INFO_MEMBER(inufuku_state::get_inufuku_tx_tile_info) { - inufuku_state *state = machine.driver_data<inufuku_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - state->m_tx_videoram[tile_index], - state->m_tx_palettebank, + m_tx_videoram[tile_index], + m_tx_palettebank, 0); } @@ -214,8 +212,8 @@ VIDEO_START( inufuku ) { inufuku_state *state = machine.driver_data<inufuku_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_inufuku_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_tx_tilemap = tilemap_create(machine, get_inufuku_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(inufuku_state::get_inufuku_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(inufuku_state::get_inufuku_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_bg_tilemap->set_transparent_pen(255); state->m_tx_tilemap->set_transparent_pen(255); diff --git a/src/mame/video/iqblock.c b/src/mame/video/iqblock.c index 6ee36a4d563..3a5853c181c 100644 --- a/src/mame/video/iqblock.c +++ b/src/mame/video/iqblock.c @@ -8,22 +8,20 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(iqblock_state::get_bg_tile_info) { - iqblock_state *state = machine.driver_data<iqblock_state>(); - int code = state->m_bgvideoram[tile_index] + (state->m_bgvideoram[tile_index + 0x800] << 8); - SET_TILE_INFO( + int code = m_bgvideoram[tile_index] + (m_bgvideoram[tile_index + 0x800] << 8); + SET_TILE_INFO_MEMBER( 0, - code &(state->m_video_type ? 0x1fff : 0x3fff), - state->m_video_type? (2*(code >> 13)+1) : (4*(code >> 14)+3), + code &(m_video_type ? 0x1fff : 0x3fff), + m_video_type? (2*(code >> 13)+1) : (4*(code >> 14)+3), 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(iqblock_state::get_fg_tile_info) { - iqblock_state *state = machine.driver_data<iqblock_state>(); - int code = state->m_fgvideoram[tile_index]; - SET_TILE_INFO( + int code = m_fgvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 1, code & 0x7f, (code & 0x80) ? 3 : 0, @@ -41,8 +39,8 @@ static TILE_GET_INFO( get_fg_tile_info ) VIDEO_START( iqblock ) { iqblock_state *state = machine.driver_data<iqblock_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,32,64, 8); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(iqblock_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(iqblock_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,32,64, 8); state->m_bg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_scroll_cols(64); diff --git a/src/mame/video/ironhors.c b/src/mame/video/ironhors.c index 01a8e9a6f99..034511dfa77 100644 --- a/src/mame/video/ironhors.c +++ b/src/mame/video/ironhors.c @@ -132,22 +132,21 @@ WRITE8_MEMBER(ironhors_state::ironhors_flipscreen_w) /* other bits are used too, but unknown */ } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ironhors_state::get_bg_tile_info) { - ironhors_state *state = machine.driver_data<ironhors_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x40) << 2) + - ((state->m_colorram[tile_index] & 0x20) << 4) + (state->m_charbank << 10); - int color = (state->m_colorram[tile_index] & 0x0f) + 16 * state->m_palettebank; - int flags = ((state->m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | - ((state->m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x40) << 2) + + ((m_colorram[tile_index] & 0x20) << 4) + (m_charbank << 10); + int color = (m_colorram[tile_index] & 0x0f) + 16 * m_palettebank; + int flags = ((m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | + ((m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( ironhors ) { ironhors_state *state = machine.driver_data<ironhors_state>(); - 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(ironhors_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(32); } @@ -249,21 +248,20 @@ SCREEN_UPDATE_IND16( ironhors ) return 0; } -static TILE_GET_INFO( farwest_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ironhors_state::farwest_get_bg_tile_info) { - ironhors_state *state = machine.driver_data<ironhors_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x40) << 2) + - ((state->m_colorram[tile_index] & 0x20) << 4) + (state->m_charbank << 10); - int color = (state->m_colorram[tile_index] & 0x0f) + 16 * state->m_palettebank; - int flags = 0;//((state->m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x40) << 2) + + ((m_colorram[tile_index] & 0x20) << 4) + (m_charbank << 10); + int color = (m_colorram[tile_index] & 0x0f) + 16 * m_palettebank; + int flags = 0;//((m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( farwest ) { ironhors_state *state = machine.driver_data<ironhors_state>(); - state->m_bg_tilemap = tilemap_create(machine, farwest_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ironhors_state::farwest_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(32); } diff --git a/src/mame/video/jack.c b/src/mame/video/jack.c index e020541c79d..f247a114dbb 100644 --- a/src/mame/video/jack.c +++ b/src/mame/video/jack.c @@ -39,18 +39,17 @@ WRITE8_MEMBER(jack_state::jack_flipscreen_w) flip_screen_set(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(jack_state::get_bg_tile_info) { - jack_state *state = machine.driver_data<jack_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x18) << 5); - int color = state->m_colorram[tile_index] & 0x07; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x18) << 5); + int color = m_colorram[tile_index] & 0x07; - // striv: state->m_colorram[tile_index] & 0x80 ??? + // striv: m_colorram[tile_index] & 0x80 ??? - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILEMAP_MAPPER( tilemap_scan_cols_flipy ) +TILEMAP_MAPPER_MEMBER(jack_state::tilemap_scan_cols_flipy) { /* logical (col,row) -> memory offset */ return (col * num_rows) + (num_rows - 1 - row); @@ -59,7 +58,7 @@ static TILEMAP_MAPPER( tilemap_scan_cols_flipy ) VIDEO_START( jack ) { jack_state *state = machine.driver_data<jack_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_cols_flipy, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jack_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),state), 8, 8, 32, 32); } static void jack_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) @@ -133,19 +132,18 @@ PALETTE_INIT( joinem ) } } -static TILE_GET_INFO( joinem_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(jack_state::joinem_get_bg_tile_info) { - jack_state *state = machine.driver_data<jack_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x03) << 8); - int color = (state->m_colorram[tile_index] & 0x38) >> 3; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x03) << 8); + int color = (m_colorram[tile_index] & 0x38) >> 3; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( joinem ) { jack_state *state = machine.driver_data<jack_state>(); - state->m_bg_tilemap = tilemap_create(machine, joinem_get_bg_tile_info, tilemap_scan_cols_flipy, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jack_state::joinem_get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),state), 8, 8, 32, 32); } static void joinem_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) diff --git a/src/mame/video/jackal.c b/src/mame/video/jackal.c index d3766d76ad3..405c1e6af42 100644 --- a/src/mame/video/jackal.c +++ b/src/mame/video/jackal.c @@ -62,22 +62,22 @@ void jackal_mark_tile_dirty( running_machine &machine, int offset ) state->m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(jackal_state::get_bg_tile_info) { - UINT8 *RAM = machine.root_device().memregion("master")->base(); + UINT8 *RAM = machine().root_device().memregion("master")->base(); int attr = RAM[0x2000 + tile_index]; int code = RAM[0x2400 + tile_index] + ((attr & 0xc0) << 2) + ((attr & 0x30) << 6); int color = 0;//attr & 0x0f; int flags = ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x20) ? TILE_FLIPY : 0); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( jackal ) { jackal_state *state = machine.driver_data<jackal_state>(); - 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(jackal_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static void draw_background( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) diff --git a/src/mame/video/jailbrek.c b/src/mame/video/jailbrek.c index 183c91162a3..8de8189c7f7 100644 --- a/src/mame/video/jailbrek.c +++ b/src/mame/video/jailbrek.c @@ -47,20 +47,19 @@ WRITE8_MEMBER(jailbrek_state::jailbrek_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(jailbrek_state::get_bg_tile_info) { - jailbrek_state *state = machine.driver_data<jailbrek_state>(); - 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); } VIDEO_START( jailbrek ) { jailbrek_state *state = machine.driver_data<jailbrek_state>(); - 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(jailbrek_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_scrolldx(0, 396 - 256); } diff --git a/src/mame/video/karnov.c b/src/mame/video/karnov.c index 3ad4760c7b8..b00d77af223 100644 --- a/src/mame/video/karnov.c +++ b/src/mame/video/karnov.c @@ -135,11 +135,10 @@ SCREEN_UPDATE_IND16( karnov ) /******************************************************************************/ -static TILE_GET_INFO( get_fix_tile_info ) +TILE_GET_INFO_MEMBER(karnov_state::get_fix_tile_info) { - karnov_state *state = machine.driver_data<karnov_state>(); - int tile = state->m_videoram[tile_index]; - SET_TILE_INFO( + int tile = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, tile&0xfff, tile>>14, @@ -166,7 +165,7 @@ VIDEO_START( karnov ) /* Allocate bitmap & tilemap */ state->m_bitmap_f = auto_bitmap_ind16_alloc(machine, 512, 512); - state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(karnov_state::get_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->save_item(NAME(*state->m_bitmap_f)); @@ -179,7 +178,7 @@ VIDEO_START( wndrplnt ) /* Allocate bitmap & tilemap */ state->m_bitmap_f = auto_bitmap_ind16_alloc(machine, 512, 512); - state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(karnov_state::get_fix_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->save_item(NAME(*state->m_bitmap_f)); diff --git a/src/mame/video/kchamp.c b/src/mame/video/kchamp.c index 99533522d6e..bb54b1239e1 100644 --- a/src/mame/video/kchamp.c +++ b/src/mame/video/kchamp.c @@ -42,19 +42,18 @@ WRITE8_MEMBER(kchamp_state::kchamp_flipscreen_w) flip_screen_set(data & 0x01); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(kchamp_state::get_bg_tile_info) { - kchamp_state *state = machine.driver_data<kchamp_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 7) << 8); - int color = (state->m_colorram[tile_index] >> 3) & 0x1f; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 7) << 8); + int color = (m_colorram[tile_index] >> 3) & 0x1f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( kchamp ) { kchamp_state *state = machine.driver_data<kchamp_state>(); - 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(kchamp_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } /* diff --git a/src/mame/video/kickgoal.c b/src/mame/video/kickgoal.c index 9347e014b2b..c81790b90f2 100644 --- a/src/mame/video/kickgoal.c +++ b/src/mame/video/kickgoal.c @@ -23,61 +23,58 @@ WRITE16_MEMBER(kickgoal_state::kickgoal_bg2ram_w) } /* FG */ -static TILE_GET_INFO( get_kickgoal_fg_tile_info ) +TILE_GET_INFO_MEMBER(kickgoal_state::get_kickgoal_fg_tile_info) { - kickgoal_state *state = machine.driver_data<kickgoal_state>(); - int tileno = state->m_fgram[tile_index * 2] & 0x0fff; - int color = state->m_fgram[tile_index * 2 + 1] & 0x000f; + int tileno = m_fgram[tile_index * 2] & 0x0fff; + int color = m_fgram[tile_index * 2 + 1] & 0x000f; - SET_TILE_INFO(0, tileno + state->m_fg_base, color + 0x00, 0); + SET_TILE_INFO_MEMBER(0, tileno + m_fg_base, color + 0x00, 0); } /* BG */ -static TILE_GET_INFO( get_kickgoal_bg_tile_info ) +TILE_GET_INFO_MEMBER(kickgoal_state::get_kickgoal_bg_tile_info) { - kickgoal_state *state = machine.driver_data<kickgoal_state>(); - int tileno = state->m_bgram[tile_index * 2] & state->m_bg_mask; - int color = state->m_bgram[tile_index * 2 + 1] & 0x000f; - int flipx = state->m_bgram[tile_index * 2 + 1] & 0x0020; - int flipy = state->m_bgram[tile_index * 2 + 1] & 0x0040; + int tileno = m_bgram[tile_index * 2] & m_bg_mask; + int color = m_bgram[tile_index * 2 + 1] & 0x000f; + int flipx = m_bgram[tile_index * 2 + 1] & 0x0020; + int flipy = m_bgram[tile_index * 2 + 1] & 0x0040; - SET_TILE_INFO(1, tileno + state->m_bg_base, color + 0x10, (flipx ? TILE_FLIPX : 0) | (flipy ? TILE_FLIPY : 0)); + SET_TILE_INFO_MEMBER(1, tileno + m_bg_base, color + 0x10, (flipx ? TILE_FLIPX : 0) | (flipy ? TILE_FLIPY : 0)); } /* BG 2 */ -static TILE_GET_INFO( get_kickgoal_bg2_tile_info ) +TILE_GET_INFO_MEMBER(kickgoal_state::get_kickgoal_bg2_tile_info) { - kickgoal_state *state = machine.driver_data<kickgoal_state>(); - int tileno = state->m_bg2ram[tile_index * 2] & state->m_bg2_mask; - int color = state->m_bg2ram[tile_index * 2 + 1] & 0x000f; - int flipx = state->m_bg2ram[tile_index * 2 + 1] & 0x0020; - int flipy = state->m_bg2ram[tile_index * 2 + 1] & 0x0040; + int tileno = m_bg2ram[tile_index * 2] & m_bg2_mask; + int color = m_bg2ram[tile_index * 2 + 1] & 0x000f; + int flipx = m_bg2ram[tile_index * 2 + 1] & 0x0020; + int flipy = m_bg2ram[tile_index * 2 + 1] & 0x0040; - SET_TILE_INFO(state->m_bg2_region, tileno + state->m_bg2_base, color + 0x20, (flipx ? TILE_FLIPX : 0) | (flipy ? TILE_FLIPY : 0)); + SET_TILE_INFO_MEMBER(m_bg2_region, tileno + m_bg2_base, color + 0x20, (flipx ? TILE_FLIPX : 0) | (flipy ? TILE_FLIPY : 0)); } -static TILEMAP_MAPPER( tilemap_scan_kicksfg ) +TILEMAP_MAPPER_MEMBER(kickgoal_state::tilemap_scan_kicksfg) { /* logical (col,row) -> memory offset */ return col * 32 + (row & 0x1f) + ((row & 0x20) >> 5) * 0x800; } -static TILEMAP_MAPPER( tilemap_scan_kicksbg ) +TILEMAP_MAPPER_MEMBER(kickgoal_state::tilemap_scan_kicksbg) { /* logical (col,row) -> memory offset */ return col * 16 + (row & 0xf) + ((row & 0x70) >> 4) * 0x400; } -static TILEMAP_MAPPER( tilemap_scan_kicksbg2 ) // 16x16 tiles +TILEMAP_MAPPER_MEMBER(kickgoal_state::tilemap_scan_kicksbg2)// 16x16 tiles { /* logical (col,row) -> memory offset */ return col * 8 + (row & 0x7) + ((row & 0x3c) >> 3) * 0x200; } -static TILEMAP_MAPPER( tilemap_scan_actionhwbg2 ) // 32x32 tiles +TILEMAP_MAPPER_MEMBER(kickgoal_state::tilemap_scan_actionhwbg2)// 32x32 tiles { /* logical (col,row) -> memory offset */ return col * 16 + (row & 0xf) + ((row & 0x70) >> 4) * 0x400; @@ -133,9 +130,9 @@ VIDEO_START( kickgoal ) state->m_bg2_base = 0x2000 / 4; state->m_bg2_mask = (0x2000/4) - 1; - state->m_fgtm = tilemap_create(machine, get_kickgoal_fg_tile_info, tilemap_scan_kicksfg, 8, 8, 64, 64); - state->m_bgtm = tilemap_create(machine, get_kickgoal_bg_tile_info, tilemap_scan_kicksbg, 16, 16, 64, 64); - state->m_bg2tm = tilemap_create(machine, get_kickgoal_bg2_tile_info, tilemap_scan_kicksbg2, 32, 32, 64, 64); + state->m_fgtm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_fg_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksfg),state), 8, 8, 64, 64); + state->m_bgtm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_bg_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksbg),state), 16, 16, 64, 64); + state->m_bg2tm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksbg2),state), 32, 32, 64, 64); state->m_fgtm->set_transparent_pen(15); state->m_bgtm->set_transparent_pen(15); @@ -155,9 +152,9 @@ VIDEO_START( actionhw ) state->m_bg2_base = 0x2000; state->m_bg2_mask = 0x2000 - 1; - state->m_fgtm = tilemap_create(machine, get_kickgoal_fg_tile_info, tilemap_scan_kicksfg, 8, 8, 64, 64); - state->m_bgtm = tilemap_create(machine, get_kickgoal_bg_tile_info, tilemap_scan_kicksbg, 16, 16, 64, 64); - state->m_bg2tm = tilemap_create(machine, get_kickgoal_bg2_tile_info, tilemap_scan_actionhwbg2, 16, 16, 64, 64); + state->m_fgtm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_fg_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksfg),state), 8, 8, 64, 64); + state->m_bgtm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_bg_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksbg),state), 16, 16, 64, 64); + state->m_bg2tm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_actionhwbg2),state), 16, 16, 64, 64); state->m_fgtm->set_transparent_pen(15); state->m_bgtm->set_transparent_pen(15); diff --git a/src/mame/video/kingobox.c b/src/mame/video/kingobox.c index 15dfa320ea6..04229a5fb57 100644 --- a/src/mame/video/kingobox.c +++ b/src/mame/video/kingobox.c @@ -174,33 +174,31 @@ WRITE8_MEMBER(kingofb_state::kingofb_f800_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(kingofb_state::get_bg_tile_info) { - kingofb_state *state = machine.driver_data<kingofb_state>(); - int attr = state->m_colorram[tile_index]; + int attr = m_colorram[tile_index]; int bank = ((attr & 0x04) >> 2) + 2; - int code = (tile_index / 16) ? state->m_videoram[tile_index] + ((attr & 0x03) << 8) : 0; - int color = ((attr & 0x70) >> 4) + 8 * state->m_palette_bank; + int code = (tile_index / 16) ? m_videoram[tile_index] + ((attr & 0x03) << 8) : 0; + int color = ((attr & 0x70) >> 4) + 8 * m_palette_bank; - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(kingofb_state::get_fg_tile_info) { - kingofb_state *state = machine.driver_data<kingofb_state>(); - int attr = state->m_colorram2[tile_index]; + int attr = m_colorram2[tile_index]; int bank = (attr & 0x02) >> 1; - int code = state->m_videoram2[tile_index] + ((attr & 0x01) << 8); + int code = m_videoram2[tile_index] + ((attr & 0x01) << 8); int color = (attr & 0x38) >> 3; - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } VIDEO_START( kingofb ) { kingofb_state *state = machine.driver_data<kingofb_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingofb_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingofb_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); } @@ -256,20 +254,19 @@ SCREEN_UPDATE_IND16( kingofb ) /* Ring King */ -static TILE_GET_INFO( ringking_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(kingofb_state::ringking_get_bg_tile_info) { - kingofb_state *state = machine.driver_data<kingofb_state>(); - int code = (tile_index / 16) ? state->m_videoram[tile_index] : 0; - int color = ((state->m_colorram[tile_index] & 0x70) >> 4) + 8 * state->m_palette_bank; + int code = (tile_index / 16) ? m_videoram[tile_index] : 0; + int color = ((m_colorram[tile_index] & 0x70) >> 4) + 8 * m_palette_bank; - SET_TILE_INFO(4, code, color, 0); + SET_TILE_INFO_MEMBER(4, code, color, 0); } VIDEO_START( ringking ) { kingofb_state *state = machine.driver_data<kingofb_state>(); - state->m_bg_tilemap = tilemap_create(machine, ringking_get_bg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingofb_state::ringking_get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingofb_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/klax.c b/src/mame/video/klax.c index 970c3fff59c..81d771c6f84 100644 --- a/src/mame/video/klax.c +++ b/src/mame/video/klax.c @@ -16,14 +16,13 @@ * *************************************/ -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(klax_state::get_playfield_tile_info) { - klax_state *state = machine.driver_data<klax_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] >> 8; int code = data1 & 0x1fff; int color = data2 & 0x0f; - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); } @@ -75,7 +74,7 @@ VIDEO_START( klax ) klax_state *state = machine.driver_data<klax_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,32); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(klax_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,32); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); diff --git a/src/mame/video/kncljoe.c b/src/mame/video/kncljoe.c index d6db8fe4022..e4c073f81b0 100644 --- a/src/mame/video/kncljoe.c +++ b/src/mame/video/kncljoe.c @@ -81,13 +81,12 @@ PALETTE_INIT( kncljoe ) ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(kncljoe_state::get_bg_tile_info) { - kncljoe_state *state = machine.driver_data<kncljoe_state>(); - int attr = state->m_videoram[2 * tile_index + 1]; - int code = state->m_videoram[2 * tile_index] + ((attr & 0xc0) << 2) + (state->m_tile_bank << 10); + int attr = m_videoram[2 * tile_index + 1]; + int code = m_videoram[2 * tile_index] + ((attr & 0xc0) << 2) + (m_tile_bank << 10); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, attr & 0xf, @@ -105,7 +104,7 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( kncljoe ) { kncljoe_state *state = machine.driver_data<kncljoe_state>(); - 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(kncljoe_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_scroll_rows(4); } diff --git a/src/mame/video/konamigx.c b/src/mame/video/konamigx.c index c1469954ceb..09c3bb82b18 100644 --- a/src/mame/video/konamigx.c +++ b/src/mame/video/konamigx.c @@ -1812,7 +1812,7 @@ void konamigx_mixer(running_machine &machine, bitmap_rgb32 &bitmap, const rectan /* Run and Gun 2 / Rushing Heroes */ -static TILE_GET_INFO( get_gx_psac_tile_info ) +TILE_GET_INFO_MEMBER(konamigx_state::get_gx_psac_tile_info) { int tileno, colour, col, flip = 0; if (tile_index&1) @@ -1834,7 +1834,7 @@ static TILE_GET_INFO( get_gx_psac_tile_info ) colour = (psac_colorbase << 4) + col; - SET_TILE_INFO(0, tileno, colour, TILE_FLIPYX(flip)); + SET_TILE_INFO_MEMBER(0, tileno, colour, TILE_FLIPYX(flip)); } UINT32* konamigx_type3_psac2_bank; @@ -1860,10 +1860,10 @@ WRITE32_MEMBER(konamigx_state::konamigx_type3_psac2_bank_w) /* Soccer Superstars (tile and flip bits now TRUSTED) */ - static TILE_GET_INFO( get_gx_psac3_tile_info ) +TILE_GET_INFO_MEMBER(konamigx_state::get_gx_psac3_tile_info) { int tileno, colour, flip; - UINT8 *tmap = machine.root_device().memregion("gfx4")->base(); + UINT8 *tmap = machine().root_device().memregion("gfx4")->base(); int base_index = tile_index; @@ -1878,13 +1878,13 @@ WRITE32_MEMBER(konamigx_state::konamigx_type3_psac2_bank_w) if (tmap[(base_index*2)+1] & 0x20) flip |= TILE_FLIPY; if (tmap[(base_index*2)+1] & 0x10) flip |= TILE_FLIPX; - SET_TILE_INFO(0, tileno, colour, flip); + SET_TILE_INFO_MEMBER(0, tileno, colour, flip); } - static TILE_GET_INFO( get_gx_psac3_alt_tile_info ) +TILE_GET_INFO_MEMBER(konamigx_state::get_gx_psac3_alt_tile_info) { int tileno, colour, flip; - UINT8 *tmap = machine.root_device().memregion("gfx4")->base()+0x20000; + UINT8 *tmap = machine().root_device().memregion("gfx4")->base()+0x20000; int base_index = tile_index; @@ -1899,14 +1899,14 @@ WRITE32_MEMBER(konamigx_state::konamigx_type3_psac2_bank_w) if (tmap[(base_index*2)+1] & 0x20) flip |= TILE_FLIPY; if (tmap[(base_index*2)+1] & 0x10) flip |= TILE_FLIPX; - SET_TILE_INFO(0, tileno, colour, flip); + SET_TILE_INFO_MEMBER(0, tileno, colour, flip); } /* PSAC4 */ /* these tilemaps are weird in both format and content, one of them doesn't really look like it should be displayed? - it's height data */ -static TILE_GET_INFO( get_gx_psac1a_tile_info ) +TILE_GET_INFO_MEMBER(konamigx_state::get_gx_psac1a_tile_info) { int tileno, colour, flipx,flipy; int flip; @@ -1925,10 +1925,10 @@ static TILE_GET_INFO( get_gx_psac1a_tile_info ) if (flipx) flip |= TILE_FLIPX; if (flipy) flip |= TILE_FLIPY; - SET_TILE_INFO(1, tileno, colour, flip); + SET_TILE_INFO_MEMBER(1, tileno, colour, flip); } -static TILE_GET_INFO( get_gx_psac1b_tile_info ) +TILE_GET_INFO_MEMBER(konamigx_state::get_gx_psac1b_tile_info) { int tileno, colour, flipx,flipy; int flip; @@ -1947,7 +1947,7 @@ static TILE_GET_INFO( get_gx_psac1b_tile_info ) if (flipx) flip |= TILE_FLIPX; if (flipy) flip |= TILE_FLIPY; - SET_TILE_INFO(0, tileno, colour, flip); + SET_TILE_INFO_MEMBER(0, tileno, colour, flip); } static void konamigx_type2_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags) @@ -2144,6 +2144,7 @@ VIDEO_START(konamigx_6bpp) VIDEO_START(konamigx_type3) { + konamigx_state *state = machine.driver_data<konamigx_state>(); int width = machine.primary_screen->width(); int height = machine.primary_screen->height(); @@ -2155,8 +2156,8 @@ VIDEO_START(konamigx_type3) _gxcommoninitnosprites(machine); - gx_psac_tilemap = tilemap_create(machine, get_gx_psac3_tile_info, TILEMAP_SCAN_COLS, 16, 16, 256, 256); - gx_psac_tilemap_alt = tilemap_create(machine, get_gx_psac3_alt_tile_info, TILEMAP_SCAN_COLS, 16, 16, 256, 256); + gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 256); + gx_psac_tilemap_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_alt_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 256); gx_rozenable = 0; gx_specialrozenable = 2; @@ -2183,6 +2184,7 @@ VIDEO_START(konamigx_type3) VIDEO_START(konamigx_type4) { + konamigx_state *state = machine.driver_data<konamigx_state>(); int width = machine.primary_screen->width(); int height = machine.primary_screen->height(); @@ -2194,7 +2196,7 @@ VIDEO_START(konamigx_type4) _gxcommoninitnosprites(machine); - gx_psac_tilemap = tilemap_create(machine, get_gx_psac_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); + gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); gx_rozenable = 0; gx_specialrozenable = 3; @@ -2214,6 +2216,7 @@ VIDEO_START(konamigx_type4) VIDEO_START(konamigx_type4_vsn) { + konamigx_state *state = machine.driver_data<konamigx_state>(); int width = machine.primary_screen->width(); int height = machine.primary_screen->height(); @@ -2225,7 +2228,7 @@ VIDEO_START(konamigx_type4_vsn) _gxcommoninitnosprites(machine); - gx_psac_tilemap = tilemap_create(machine, get_gx_psac_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); + gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); gx_rozenable = 0; gx_specialrozenable = 3; @@ -2244,6 +2247,7 @@ VIDEO_START(konamigx_type4_vsn) VIDEO_START(konamigx_type4_sd2) { + konamigx_state *state = machine.driver_data<konamigx_state>(); int width = machine.primary_screen->width(); int height = machine.primary_screen->height(); @@ -2255,7 +2259,7 @@ VIDEO_START(konamigx_type4_sd2) _gxcommoninitnosprites(machine); - gx_psac_tilemap = tilemap_create(machine, get_gx_psac_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); + gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); gx_rozenable = 0; gx_specialrozenable = 3; @@ -2294,6 +2298,7 @@ VIDEO_START(konamigx_6bpp_2) VIDEO_START(opengolf) { + konamigx_state *state = machine.driver_data<konamigx_state>(); K056832_vh_start(machine, "gfx1", K056832_BPP_5, 0, NULL, konamigx_type2_tile_callback, 0); K055673_vh_start(machine, "gfx2", K055673_LAYOUT_GX6, -53, -23, konamigx_type2_sprite_callback); @@ -2304,8 +2309,8 @@ VIDEO_START(opengolf) K056832_set_LayerOffset(2, 2+1, 0); K056832_set_LayerOffset(3, 3+1, 0); - gx_psac_tilemap = tilemap_create(machine, get_gx_psac1a_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); - gx_psac_tilemap2 = tilemap_create(machine, get_gx_psac1b_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); + gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); + gx_psac_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); // transparency will be handled manually in post-processing //gx_psac_tilemap->set_transparent_pen(0); @@ -2332,6 +2337,7 @@ VIDEO_START(opengolf) VIDEO_START(racinfrc) { + konamigx_state *state = machine.driver_data<konamigx_state>(); K056832_vh_start(machine, "gfx1", K056832_BPP_6, 0, NULL, konamigx_type2_tile_callback, 0); K055673_vh_start(machine, "gfx2", K055673_LAYOUT_GX, -53, -23, konamigx_type2_sprite_callback); @@ -2342,8 +2348,8 @@ VIDEO_START(racinfrc) K056832_set_LayerOffset(2, 2+1, 0); K056832_set_LayerOffset(3, 3+1, 0); - gx_psac_tilemap = tilemap_create(machine, get_gx_psac1a_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); - gx_psac_tilemap2 = tilemap_create(machine, get_gx_psac1b_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); + gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); + gx_psac_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); // transparency will be handled manually in post-processing //gx_psac_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/kopunch.c b/src/mame/video/kopunch.c index 277a523c279..764e7fe8424 100644 --- a/src/mame/video/kopunch.c +++ b/src/mame/video/kopunch.c @@ -66,27 +66,25 @@ WRITE8_MEMBER(kopunch_state::kopunch_gfxbank_w) m_bg_tilemap->set_flip((data & 0x08) ? TILEMAP_FLIPY : 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(kopunch_state::get_fg_tile_info) { - kopunch_state *state = machine.driver_data<kopunch_state>(); - 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); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(kopunch_state::get_bg_tile_info) { - kopunch_state *state = machine.driver_data<kopunch_state>(); - int code = (state->m_videoram2[tile_index] & 0x7f) + 128 * state->m_gfxbank; + int code = (m_videoram2[tile_index] & 0x7f) + 128 * m_gfxbank; - SET_TILE_INFO(1, code, 0, 0); + SET_TILE_INFO_MEMBER(1, code, 0, 0); } VIDEO_START( kopunch ) { kopunch_state *state = machine.driver_data<kopunch_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kopunch_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kopunch_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/ksayakyu.c b/src/mame/video/ksayakyu.c index fbf4b904d06..90f7809144a 100644 --- a/src/mame/video/ksayakyu.c +++ b/src/mame/video/ksayakyu.c @@ -45,12 +45,12 @@ PALETTE_INIT( ksayakyu ) } } -static TILE_GET_INFO( get_ksayakyu_tile_info ) +TILE_GET_INFO_MEMBER(ksayakyu_state::get_ksayakyu_tile_info) { - int code = machine.root_device().memregion("user1")->base()[tile_index]; - int attr = machine.root_device().memregion("user1")->base()[tile_index + 0x2000]; + int code = machine().root_device().memregion("user1")->base()[tile_index]; + int attr = machine().root_device().memregion("user1")->base()[tile_index + 0x2000]; code += (attr & 3) << 8; - SET_TILE_INFO(1, code, ((attr >> 2) & 0x0f) * 2, (attr & 0x80) ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(1, code, ((attr >> 2) & 0x0f) * 2, (attr & 0x80) ? TILE_FLIPX : 0); } /* @@ -58,17 +58,16 @@ xy-- ---- flip bits --cc cc-- color ---- --bb bank select */ -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(ksayakyu_state::get_text_tile_info) { - ksayakyu_state *state = machine.driver_data<ksayakyu_state>(); - int code = state->m_videoram[tile_index * 2 + 1]; - int attr = state->m_videoram[tile_index * 2]; + int code = m_videoram[tile_index * 2 + 1]; + int attr = m_videoram[tile_index * 2]; int flags = ((attr & 0x80) ? TILE_FLIPX : 0) | ((attr & 0x40) ? TILE_FLIPY : 0); int color = (attr & 0x3c) >> 2; code |= (attr & 3) << 8; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } /* @@ -117,8 +116,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const VIDEO_START(ksayakyu) { ksayakyu_state *state = machine.driver_data<ksayakyu_state>(); - state->m_tilemap = tilemap_create(machine, get_ksayakyu_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32 * 8); - state->m_textmap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ksayakyu_state::get_ksayakyu_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 * 8); + state->m_textmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ksayakyu_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_textmap->set_transparent_pen(0); } diff --git a/src/mame/video/kyugo.c b/src/mame/video/kyugo.c index 28c0232d9da..aace00ed91f 100644 --- a/src/mame/video/kyugo.c +++ b/src/mame/video/kyugo.c @@ -14,25 +14,23 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(kyugo_state::get_fg_tile_info) { - kyugo_state *state = machine.driver_data<kyugo_state>(); - int code = state->m_fgvideoram[tile_index]; - SET_TILE_INFO(0, + int code = m_fgvideoram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, - 2 * state->m_color_codes[code >> 3] + state->m_fgcolor, + 2 * m_color_codes[code >> 3] + m_fgcolor, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(kyugo_state::get_bg_tile_info) { - kyugo_state *state = machine.driver_data<kyugo_state>(); - int code = state->m_bgvideoram[tile_index]; - int attr = state->m_bgattribram[tile_index]; - SET_TILE_INFO(1, + int code = m_bgvideoram[tile_index]; + int attr = m_bgattribram[tile_index]; + SET_TILE_INFO_MEMBER(1, code | ((attr & 0x03) << 8), - (attr >> 4) | (state->m_bgpalbank << 4), + (attr >> 4) | (m_bgpalbank << 4), TILE_FLIPYX((attr & 0x0c) >> 2)); } @@ -49,8 +47,8 @@ VIDEO_START( kyugo ) state->m_color_codes = state->memregion("proms")->base() + 0x300; - 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(kyugo_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(kyugo_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/labyrunr.c b/src/mame/video/labyrunr.c index 0793e74f34b..5de33126696 100644 --- a/src/mame/video/labyrunr.c +++ b/src/mame/video/labyrunr.c @@ -64,15 +64,14 @@ static void set_pens( running_machine &machine ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info0 ) +TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0) { - labyrunr_state *state = machine.driver_data<labyrunr_state>(); - UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121, 6); - int attr = state->m_videoram1[tile_index]; - int code = state->m_videoram1[tile_index + 0x400]; + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, 6); + int attr = m_videoram1[tile_index]; + int code = m_videoram1[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -87,22 +86,21 @@ static TILE_GET_INFO( get_tile_info0 ) bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code + bank * 256, ((ctrl_6 & 0x30) * 2 + 16)+(attr & 7), 0); } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info1) { - labyrunr_state *state = machine.driver_data<labyrunr_state>(); - UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121, 6); - int attr = state->m_videoram2[tile_index]; - int code = state->m_videoram2[tile_index + 0x400]; + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, 6); + int attr = m_videoram2[tile_index]; + int code = m_videoram2[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -117,7 +115,7 @@ static TILE_GET_INFO( get_tile_info1 ) bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code+bank*256, ((ctrl_6 & 0x30) * 2 + 16) + (attr & 7), @@ -135,8 +133,8 @@ VIDEO_START( labyrunr ) { labyrunr_state *state = machine.driver_data<labyrunr_state>(); - state->m_layer0 = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_layer1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(labyrunr_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(labyrunr_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_layer0->set_transparent_pen(0); state->m_layer1->set_transparent_pen(0); diff --git a/src/mame/video/ladybug.c b/src/mame/video/ladybug.c index 3c1929c406b..8ac02c01170 100644 --- a/src/mame/video/ladybug.c +++ b/src/mame/video/ladybug.c @@ -187,24 +187,23 @@ WRITE8_MEMBER(ladybug_state::sraider_io_w) redclash_set_stars_speed(machine(), (data & 0x07) - 1); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ladybug_state::get_bg_tile_info) { - ladybug_state *state = machine.driver_data<ladybug_state>(); - int code = state->m_videoram[tile_index] + 32 * (state->m_colorram[tile_index] & 0x08); - int color = state->m_colorram[tile_index] & 0x07; + int code = m_videoram[tile_index] + 32 * (m_colorram[tile_index] & 0x08); + int color = m_colorram[tile_index] & 0x07; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_grid_tile_info ) +TILE_GET_INFO_MEMBER(ladybug_state::get_grid_tile_info) { if (tile_index < 512) - SET_TILE_INFO(3, tile_index, 0, 0); + SET_TILE_INFO_MEMBER(3, tile_index, 0, 0); else { int temp = tile_index / 32; tile_index = (31 - temp) * 32 + (tile_index % 32); - SET_TILE_INFO(4, tile_index, 0, 0); + SET_TILE_INFO_MEMBER(4, tile_index, 0, 0); } } @@ -212,7 +211,7 @@ VIDEO_START( ladybug ) { ladybug_state *state = machine.driver_data<ladybug_state>(); - 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(ladybug_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(32); state->m_bg_tilemap->set_transparent_pen(0); } @@ -221,11 +220,11 @@ VIDEO_START( sraider ) { ladybug_state *state = machine.driver_data<ladybug_state>(); - state->m_grid_tilemap = tilemap_create(machine, get_grid_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_grid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ladybug_state::get_grid_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_grid_tilemap->set_scroll_rows(32); state->m_grid_tilemap->set_transparent_pen(0); - 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(ladybug_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(32); state->m_bg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/ladyfrog.c b/src/mame/video/ladyfrog.c index d651a7870d0..34e60df4c9e 100644 --- a/src/mame/video/ladyfrog.c +++ b/src/mame/video/ladyfrog.c @@ -19,14 +19,13 @@ READ8_MEMBER(ladyfrog_state::ladyfrog_spriteram_r) return m_spriteram[offset]; } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(ladyfrog_state::get_tile_info) { - ladyfrog_state *state = machine.driver_data<ladyfrog_state>(); - int pal = state->m_videoram[tile_index * 2 + 1] & 0x0f; - int tile = state->m_videoram[tile_index * 2] + ((state->m_videoram[tile_index * 2 + 1] & 0xc0) << 2)+ ((state->m_videoram[tile_index * 2 + 1] & 0x30) << 6); - SET_TILE_INFO( + int pal = m_videoram[tile_index * 2 + 1] & 0x0f; + int tile = m_videoram[tile_index * 2] + ((m_videoram[tile_index * 2 + 1] & 0xc0) << 2)+ ((m_videoram[tile_index * 2 + 1] & 0x30) << 6); + SET_TILE_INFO_MEMBER( 0, - tile + 0x1000 * state->m_tilebank, + tile + 0x1000 * m_tilebank, pal,TILE_FLIPY ); } @@ -133,7 +132,7 @@ static VIDEO_START( ladyfrog_common ) ladyfrog_state *state = machine.driver_data<ladyfrog_state>(); state->m_spriteram = auto_alloc_array(machine, UINT8, 160); - 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(ladyfrog_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_generic_paletteram_8.allocate(0x200); state->m_generic_paletteram2_8.allocate(0x200); diff --git a/src/mame/video/lasso.c b/src/mame/video/lasso.c index 9277264a61f..1bdcd652e4e 100644 --- a/src/mame/video/lasso.c +++ b/src/mame/video/lasso.c @@ -122,37 +122,35 @@ static void wwjgtin_set_last_four_colors( running_machine &machine, colortable_t ***************************************************************************/ -static TILE_GET_INFO( lasso_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(lasso_state::lasso_get_bg_tile_info) { - lasso_state *state = machine.driver_data<lasso_state>(); - 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(0, - code + ((UINT16)state->m_gfxbank << 8), + SET_TILE_INFO_MEMBER(0, + code + ((UINT16)m_gfxbank << 8), color & 0x0f, 0); } -static TILE_GET_INFO( wwjgtin_get_track_tile_info ) +TILE_GET_INFO_MEMBER(lasso_state::wwjgtin_get_track_tile_info) { - UINT8 *ROM = machine.root_device().memregion("user1")->base(); + UINT8 *ROM = machine().root_device().memregion("user1")->base(); int code = ROM[tile_index]; int color = ROM[tile_index + 0x2000]; - SET_TILE_INFO(2, + SET_TILE_INFO_MEMBER(2, code, color & 0x0f, 0); } -static TILE_GET_INFO( pinbo_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(lasso_state::pinbo_get_bg_tile_info) { - lasso_state *state = machine.driver_data<lasso_state>(); - 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(0, + SET_TILE_INFO_MEMBER(0, code + ((color & 0x30) << 4), color & 0x0f, 0); @@ -170,7 +168,7 @@ VIDEO_START( lasso ) lasso_state *state = machine.driver_data<lasso_state>(); /* create tilemap */ - state->m_bg_tilemap = tilemap_create(machine, lasso_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lasso_state::lasso_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); } @@ -180,8 +178,8 @@ VIDEO_START( wwjgtin ) lasso_state *state = machine.driver_data<lasso_state>(); /* create tilemaps */ - state->m_bg_tilemap = tilemap_create(machine, lasso_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_track_tilemap = tilemap_create(machine, wwjgtin_get_track_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lasso_state::lasso_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_track_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lasso_state::wwjgtin_get_track_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 64); state->m_bg_tilemap->set_transparent_pen(0); } @@ -191,7 +189,7 @@ VIDEO_START( pinbo ) lasso_state *state = machine.driver_data<lasso_state>(); /* create tilemap */ - state->m_bg_tilemap = tilemap_create(machine, pinbo_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lasso_state::pinbo_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/lastduel.c b/src/mame/video/lastduel.c index 86c5c4ef3e9..5379a39fa7b 100644 --- a/src/mame/video/lastduel.c +++ b/src/mame/video/lastduel.c @@ -16,23 +16,21 @@ ***************************************************************************/ -static TILE_GET_INFO( ld_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(lastduel_state::ld_get_bg_tile_info) { - lastduel_state *state = machine.driver_data<lastduel_state>(); - int tile = state->m_scroll2[2 * tile_index] & 0x1fff; - int color = state->m_scroll2[2 * tile_index + 1]; - SET_TILE_INFO( + int tile = m_scroll2[2 * tile_index] & 0x1fff; + int color = m_scroll2[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 2, tile,color & 0xf, TILE_FLIPYX((color & 0x60) >> 5)); } -static TILE_GET_INFO( ld_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(lastduel_state::ld_get_fg_tile_info) { - lastduel_state *state = machine.driver_data<lastduel_state>(); - int tile = state->m_scroll1[2 * tile_index] & 0x1fff; - int color = state->m_scroll1[2 * tile_index + 1]; - SET_TILE_INFO( + int tile = m_scroll1[2 * tile_index] & 0x1fff; + int color = m_scroll1[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 3, tile, color & 0xf, @@ -40,24 +38,22 @@ static TILE_GET_INFO( ld_get_fg_tile_info ) tileinfo.group = (color & 0x80) >> 7; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(lastduel_state::get_bg_tile_info) { - lastduel_state *state = machine.driver_data<lastduel_state>(); - int tile = state->m_scroll2[tile_index] & 0x1fff; - int color = state->m_scroll2[tile_index + 0x0800]; - SET_TILE_INFO( + int tile = m_scroll2[tile_index] & 0x1fff; + int color = m_scroll2[tile_index + 0x0800]; + SET_TILE_INFO_MEMBER( 2, tile, color & 0xf, TILE_FLIPYX((color & 0x60) >> 5)); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(lastduel_state::get_fg_tile_info) { - lastduel_state *state = machine.driver_data<lastduel_state>(); - int tile = state->m_scroll1[tile_index] & 0x1fff; - int color = state->m_scroll1[tile_index + 0x0800]; - SET_TILE_INFO( + int tile = m_scroll1[tile_index] & 0x1fff; + int color = m_scroll1[tile_index + 0x0800]; + SET_TILE_INFO_MEMBER( 3, tile, color & 0xf, @@ -65,11 +61,10 @@ static TILE_GET_INFO( get_fg_tile_info ) tileinfo.group = (color & 0x10) >> 4; } -static TILE_GET_INFO( get_fix_info ) +TILE_GET_INFO_MEMBER(lastduel_state::get_fix_info) { - lastduel_state *state = machine.driver_data<lastduel_state>(); - int tile = state->m_vram[tile_index]; - SET_TILE_INFO( + int tile = m_vram[tile_index]; + SET_TILE_INFO_MEMBER( 1, tile & 0x7ff, tile>>12, @@ -87,9 +82,9 @@ static TILE_GET_INFO( get_fix_info ) VIDEO_START( lastduel ) { lastduel_state *state = machine.driver_data<lastduel_state>(); - state->m_bg_tilemap = tilemap_create(machine, ld_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, ld_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_tx_tilemap = tilemap_create(machine, get_fix_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::ld_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::ld_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::get_fix_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transmask(0, 0xffff, 0x0001); state->m_fg_tilemap->set_transmask(1, 0xf07f, 0x0f81); @@ -103,9 +98,9 @@ VIDEO_START( lastduel ) VIDEO_START( madgear ) { lastduel_state *state = machine.driver_data<lastduel_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS,16,16,64,32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,16,16,64,32); - state->m_tx_tilemap = tilemap_create(machine, get_fix_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS,16,16,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,16,16,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::get_fix_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_fg_tilemap->set_transmask(0, 0xffff, 0x8000); state->m_fg_tilemap->set_transmask(1, 0x80ff, 0xff00); diff --git a/src/mame/video/legionna.c b/src/mame/video/legionna.c index 57876422bfb..b22fa950248 100644 --- a/src/mame/video/legionna.c +++ b/src/mame/video/legionna.c @@ -54,45 +54,41 @@ WRITE16_MEMBER(legionna_state::legionna_text_w) m_text_layer->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(legionna_state::get_back_tile_info) { - legionna_state *state = machine.driver_data<legionna_state>(); - int tile=state->m_back_data[tile_index]; + int tile=m_back_data[tile_index]; int color=(tile>>12)&0xf; tile &= 0xfff; - tile |= state->m_back_gfx_bank; /* Heatbrl uses banking */ + tile |= m_back_gfx_bank; /* Heatbrl uses banking */ - SET_TILE_INFO(1,tile,color,0); + SET_TILE_INFO_MEMBER(1,tile,color,0); } -static TILE_GET_INFO( get_mid_tile_info ) +TILE_GET_INFO_MEMBER(legionna_state::get_mid_tile_info) { - legionna_state *state = machine.driver_data<legionna_state>(); - int tile=state->m_mid_data[tile_index]; + int tile=m_mid_data[tile_index]; int color=(tile>>12)&0xf; tile &= 0xfff; - SET_TILE_INFO(5,tile,color,0); + SET_TILE_INFO_MEMBER(5,tile,color,0); } -static TILE_GET_INFO( get_mid_tile_info_denji ) +TILE_GET_INFO_MEMBER(legionna_state::get_mid_tile_info_denji) { - legionna_state *state = machine.driver_data<legionna_state>(); - int tile=state->m_mid_data[tile_index]; + int tile=m_mid_data[tile_index]; int color=(tile>>12)&0xf; tile &= 0xfff; - tile |= state->m_mid_gfx_bank; + tile |= m_mid_gfx_bank; - SET_TILE_INFO(5,tile,color,0); + SET_TILE_INFO_MEMBER(5,tile,color,0); } -static TILE_GET_INFO( get_mid_tile_info_cupsoc ) +TILE_GET_INFO_MEMBER(legionna_state::get_mid_tile_info_cupsoc) { - legionna_state *state = machine.driver_data<legionna_state>(); - int tile=state->m_mid_data[tile_index]; + int tile=m_mid_data[tile_index]; int color=(tile>>12)&0xf; tile &= 0xfff; @@ -100,51 +96,48 @@ static TILE_GET_INFO( get_mid_tile_info_cupsoc ) tile |= 0x1000; color += 0x10; - SET_TILE_INFO(1,tile,color,0); + SET_TILE_INFO_MEMBER(1,tile,color,0); } -static TILE_GET_INFO( get_fore_tile_info ) /* this is giving bad tiles... */ +TILE_GET_INFO_MEMBER(legionna_state::get_fore_tile_info)/* this is giving bad tiles... */ { - legionna_state *state = machine.driver_data<legionna_state>(); - int tile=state->m_fore_data[tile_index]; + int tile=m_fore_data[tile_index]; int color=(tile>>12)&0xf; // legionnaire tile numbers / gfx set wrong, see screen after coin insertion tile &= 0xfff; - SET_TILE_INFO(4,tile,color,0); + SET_TILE_INFO_MEMBER(4,tile,color,0); } -static TILE_GET_INFO( get_fore_tile_info_denji ) +TILE_GET_INFO_MEMBER(legionna_state::get_fore_tile_info_denji) { - legionna_state *state = machine.driver_data<legionna_state>(); - int tile=state->m_fore_data[tile_index]; + int tile=m_fore_data[tile_index]; int color=(tile>>12)&0xf; tile &= 0xfff; - tile |= state->m_fore_gfx_bank; + tile |= m_fore_gfx_bank; - SET_TILE_INFO(4,tile,color,0); + SET_TILE_INFO_MEMBER(4,tile,color,0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(legionna_state::get_text_tile_info) { - legionna_state *state = machine.driver_data<legionna_state>(); - int tile = state->m_textram[tile_index]; + int tile = m_textram[tile_index]; int color=(tile>>12)&0xf; tile &= 0xfff; - SET_TILE_INFO(0,tile,color,0); + SET_TILE_INFO_MEMBER(0,tile,color,0); } VIDEO_START( legionna ) { legionna_state *state = machine.driver_data<legionna_state>(); - state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_midground_layer = tilemap_create(machine, get_mid_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); + state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); state->m_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2); state->m_sprite_xoffs = 0; @@ -162,10 +155,10 @@ VIDEO_START( legionna ) VIDEO_START( denjinmk ) { legionna_state *state = machine.driver_data<legionna_state>(); - state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info_denji,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_midground_layer = tilemap_create(machine, get_mid_tile_info_denji, TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); + state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info_denji),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_denji),state), TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); state->m_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2); state->m_sprite_xoffs = 0; @@ -183,10 +176,10 @@ VIDEO_START( denjinmk ) VIDEO_START( cupsoc ) { legionna_state *state = machine.driver_data<legionna_state>(); - state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_midground_layer = tilemap_create(machine, get_mid_tile_info_cupsoc, TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); + state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_cupsoc),state), TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); state->m_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2); state->m_sprite_xoffs = 0; diff --git a/src/mame/video/lemmings.c b/src/mame/video/lemmings.c index 9ffdadfa1c8..71bf4e1f8d1 100644 --- a/src/mame/video/lemmings.c +++ b/src/mame/video/lemmings.c @@ -18,12 +18,11 @@ /******************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(lemmings_state::get_tile_info) { - lemmings_state *state = machine.driver_data<lemmings_state>(); - UINT16 tile = state->m_vram_data[tile_index]; + UINT16 tile = m_vram_data[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile&0x7ff, (tile>>12)&0xf, @@ -33,7 +32,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( lemmings ) { lemmings_state *state = machine.driver_data<lemmings_state>(); - state->m_vram_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); + state->m_vram_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lemmings_state::get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); state->m_vram_tilemap->set_transparent_pen(0); state->m_bitmap0.fill(0x100); diff --git a/src/mame/video/liberate.c b/src/mame/video/liberate.c index 2a5c1e68de2..693feec1dfd 100644 --- a/src/mame/video/liberate.c +++ b/src/mame/video/liberate.c @@ -25,38 +25,37 @@ void debug_print(bitmap_ind16 &bitmap) } #endif -static TILEMAP_MAPPER( back_scan ) +TILEMAP_MAPPER_MEMBER(liberate_state::back_scan) { /* logical (col,row) -> memory offset */ return ((row & 0xf)) + ((15 - (col & 0xf)) << 4) + ((row & 0x10) << 5) + ((col & 0x10) << 4); } -static TILEMAP_MAPPER( fix_scan ) +TILEMAP_MAPPER_MEMBER(liberate_state::fix_scan) { /* logical (col,row) -> memory offset */ return (row & 0x1f) + ((31 - (col & 0x1f)) << 5); } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(liberate_state::get_back_tile_info) { - liberate_state *state = machine.driver_data<liberate_state>(); - const UINT8 *RAM = state->memregion("user1")->base(); + const UINT8 *RAM = memregion("user1")->base(); int tile, bank; /* Convert tile index of 512x512 to paged format */ if (tile_index & 0x100) { if (tile_index & 0x200) - tile_index = (tile_index & 0xff) + (state->m_io_ram[5] << 8); /* Bottom right */ + tile_index = (tile_index & 0xff) + (m_io_ram[5] << 8); /* Bottom right */ else - tile_index = (tile_index & 0xff) + (state->m_io_ram[4] << 8); /* Bottom left */ + tile_index = (tile_index & 0xff) + (m_io_ram[4] << 8); /* Bottom left */ } else { if (tile_index & 0x200) - tile_index = (tile_index & 0xff) + (state->m_io_ram[3] << 8); /* Top right */ + tile_index = (tile_index & 0xff) + (m_io_ram[3] << 8); /* Top right */ else - tile_index = (tile_index & 0xff) + (state->m_io_ram[2] << 8); /* Top left */ + tile_index = (tile_index & 0xff) + (m_io_ram[2] << 8); /* Top left */ } tile = RAM[tile_index]; @@ -64,25 +63,23 @@ static TILE_GET_INFO( get_back_tile_info ) bank = 3; else bank = 2; - SET_TILE_INFO(bank, tile & 0x7f, state->m_background_color, 0); + SET_TILE_INFO_MEMBER(bank, tile & 0x7f, m_background_color, 0); } -static TILE_GET_INFO( get_fix_tile_info ) +TILE_GET_INFO_MEMBER(liberate_state::get_fix_tile_info) { - liberate_state *state = machine.driver_data<liberate_state>(); - UINT8 *videoram = state->m_videoram; - UINT8 *colorram = state->m_colorram; + UINT8 *videoram = m_videoram; + UINT8 *colorram = m_colorram; int tile, color; tile = videoram[tile_index] + (colorram[tile_index] << 8); color = (colorram[tile_index] & 0x70) >> 4; - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); } -static TILE_GET_INFO( prosport_get_back_tile_info ) +TILE_GET_INFO_MEMBER(liberate_state::prosport_get_back_tile_info) { - liberate_state *state = machine.driver_data<liberate_state>(); int tile; /* @@ -91,13 +88,13 @@ static TILE_GET_INFO( prosport_get_back_tile_info ) - bits 0-3 are not used by gfx hardware; the value is the color of the pixel in the map (golf) */ - tile = (state->m_bg_vram[tile_index] & 0xf0)>>4; + tile = (m_bg_vram[tile_index] & 0xf0)>>4; if (tile_index & 0x8) tile += 0x10; - tile += state->m_io_ram[0]&0x20; //Pro Bowling bg tiles banking bit + tile += m_io_ram[0]&0x20; //Pro Bowling bg tiles banking bit - SET_TILE_INFO(8, tile, 0, 0); + SET_TILE_INFO_MEMBER(8, tile, 0, 0); } /***************************************************************************/ @@ -205,8 +202,8 @@ WRITE8_MEMBER(liberate_state::prosport_bg_vram_w) VIDEO_START( prosoccr ) { liberate_state *state = machine.driver_data<liberate_state>(); - state->m_back_tilemap = tilemap_create(machine, get_back_tile_info, back_scan, 16, 16, 32, 32); - state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, fix_scan, 8, 8, 32, 32); + state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),state), 16, 16, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),state), 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); @@ -216,8 +213,8 @@ VIDEO_START( prosoccr ) VIDEO_START( boomrang ) { liberate_state *state = machine.driver_data<liberate_state>(); - state->m_back_tilemap = tilemap_create(machine, get_back_tile_info, back_scan, 16, 16, 32, 32); - state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, fix_scan, 8, 8, 32, 32); + state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),state), 16, 16, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),state), 8, 8, 32, 32); state->m_back_tilemap->set_transmask(0, 0x0001, 0x007e); /* Bottom 1 pen/Top 7 pens */ state->m_fix_tilemap->set_transparent_pen(0); @@ -226,8 +223,8 @@ VIDEO_START( boomrang ) VIDEO_START( liberate ) { liberate_state *state = machine.driver_data<liberate_state>(); - state->m_back_tilemap = tilemap_create(machine, get_back_tile_info, back_scan, 16, 16, 32, 32); - state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, fix_scan, 8, 8, 32, 32); + state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),state), 16, 16, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),state), 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); } @@ -235,8 +232,8 @@ VIDEO_START( liberate ) VIDEO_START( prosport ) { liberate_state *state = machine.driver_data<liberate_state>(); - state->m_back_tilemap = tilemap_create(machine, prosport_get_back_tile_info, back_scan, 16, 16, 32, 32); - state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, fix_scan, 8, 8, 32, 32); + state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::prosport_get_back_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),state), 16, 16, 32, 32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),state), 8, 8, 32, 32); state->m_fix_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/lkage.c b/src/mame/video/lkage.c index a8ef34b4121..92a2ba55183 100644 --- a/src/mame/video/lkage.c +++ b/src/mame/video/lkage.c @@ -65,34 +65,31 @@ WRITE8_MEMBER(lkage_state::lkage_videoram_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(lkage_state::get_bg_tile_info) { - lkage_state *state = machine.driver_data<lkage_state>(); - int code = state->m_videoram[tile_index + 0x800] + 256 * (state->m_bg_tile_bank ? 5 : 1); - SET_TILE_INFO( 0/*gfx*/, code, 0/*color*/, 0/*flags*/ ); + int code = m_videoram[tile_index + 0x800] + 256 * (m_bg_tile_bank ? 5 : 1); + SET_TILE_INFO_MEMBER( 0/*gfx*/, code, 0/*color*/, 0/*flags*/ ); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(lkage_state::get_fg_tile_info) { - lkage_state *state = machine.driver_data<lkage_state>(); - int code = state->m_videoram[tile_index + 0x400] + 256 * (state->m_fg_tile_bank ? 1 : 0); - SET_TILE_INFO( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); + int code = m_videoram[tile_index + 0x400] + 256 * (m_fg_tile_bank ? 1 : 0); + SET_TILE_INFO_MEMBER( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(lkage_state::get_tx_tile_info) { - lkage_state *state = machine.driver_data<lkage_state>(); - int code = state->m_videoram[tile_index] + 256 * (state->m_tx_tile_bank ? 4 : 0); - SET_TILE_INFO( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); + int code = m_videoram[tile_index] + 256 * (m_tx_tile_bank ? 4 : 0); + SET_TILE_INFO_MEMBER( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); } VIDEO_START( lkage ) { lkage_state *state = machine.driver_data<lkage_state>(); - 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_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lkage_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(lkage_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lkage_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_tx_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/lockon.c b/src/mame/video/lockon.c index 983b2ad445a..dd5a6be3cad 100644 --- a/src/mame/video/lockon.c +++ b/src/mame/video/lockon.c @@ -139,14 +139,13 @@ WRITE16_MEMBER(lockon_state::lockon_char_w) m_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_lockon_tile_info ) +TILE_GET_INFO_MEMBER(lockon_state::get_lockon_tile_info) { - lockon_state *state = machine.driver_data<lockon_state>(); - UINT32 tileno = state->m_char_ram[tile_index] & 0x03ff; - UINT32 col = (state->m_char_ram[tile_index] >> 10) & 0x3f; + UINT32 tileno = m_char_ram[tile_index] & 0x03ff; + UINT32 col = (m_char_ram[tile_index] >> 10) & 0x3f; col = (col & 0x1f) + (col & 0x20 ? 64 : 0); - SET_TILE_INFO(0, tileno, col, 0); + SET_TILE_INFO_MEMBER(0, tileno, col, 0); } @@ -900,7 +899,7 @@ VIDEO_START( lockon ) { lockon_state *state = machine.driver_data<lockon_state>(); - state->m_tilemap = tilemap_create(machine, get_lockon_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lockon_state::get_lockon_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_tilemap->set_transparent_pen(0); /* Allocate the two frame buffers for rotation */ diff --git a/src/mame/video/lordgun.c b/src/mame/video/lordgun.c index 9235495f710..c3b844b642e 100644 --- a/src/mame/video/lordgun.c +++ b/src/mame/video/lordgun.c @@ -70,10 +70,10 @@ INLINE void get_tile_info(running_machine &machine, tile_data &tileinfo, tilemap SET_TILE_INFO( _N_, code, ((attr & 0x0030) >> 4) + 0x10 + 0x4 * ((_N_ + 1) & 3) + pri*0x800/0x40, TILE_FLIPXY(attr >> 14)); } -static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info(machine, tileinfo, tile_index, 0); } -static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info(machine, tileinfo, tile_index, 1); } -static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info(machine, tileinfo, tile_index, 2); } -static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info(machine, tileinfo, tile_index, 3); } +TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_0){ get_tile_info(machine(), tileinfo, tile_index, 0); } +TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_1){ get_tile_info(machine(), tileinfo, tile_index, 1); } +TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_2){ get_tile_info(machine(), tileinfo, tile_index, 2); } +TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_3){ get_tile_info(machine(), tileinfo, tile_index, 3); } INLINE void lordgun_vram_w(address_space *space, offs_t offset, UINT16 data, UINT16 mem_mask, int _N_) { @@ -102,20 +102,16 @@ VIDEO_START( lordgun ) int h = machine.primary_screen->height(); // 0x800 x 200 - state->m_tilemap[0] = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, - 8,8, 0x100, 0x40 ); + state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS,8,8, 0x100, 0x40 ); // 0x800 x 200 - state->m_tilemap[1] = tilemap_create( machine, get_tile_info_1, TILEMAP_SCAN_ROWS, - 16,16, 0x80,0x20 ); + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS,16,16, 0x80,0x20 ); // 0x800 x 200 - state->m_tilemap[2] = tilemap_create( machine, get_tile_info_2, TILEMAP_SCAN_ROWS, - 32,32, 0x40,0x10 ); + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS,32,32, 0x40,0x10 ); // 0x200 x 100 - state->m_tilemap[3] = tilemap_create( machine, get_tile_info_3, TILEMAP_SCAN_ROWS, - 8,8, 0x40,0x20 ); + state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS,8,8, 0x40,0x20 ); state->m_tilemap[0]->set_scroll_rows(1); state->m_tilemap[0]->set_scroll_cols(1); diff --git a/src/mame/video/lucky74.c b/src/mame/video/lucky74.c index 32e977aea3f..fc012d5dcde 100644 --- a/src/mame/video/lucky74.c +++ b/src/mame/video/lucky74.c @@ -196,44 +196,42 @@ PALETTE_INIT( lucky74 ) } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(lucky74_state::get_fg_tile_info) { - lucky74_state *state = machine.driver_data<lucky74_state>(); /* - bits - 7654 3210 ---- xxxx tiles color. xxxx ---- tiles page offset. */ int bank = 0; - int attr = state->m_fg_colorram[tile_index]; - int code = state->m_fg_videoram[tile_index] + ((attr & 0xf0) << 4); + int attr = m_fg_colorram[tile_index]; + int code = m_fg_videoram[tile_index] + ((attr & 0xf0) << 4); int color = (attr & 0x0f); - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(lucky74_state::get_bg_tile_info) { - lucky74_state *state = machine.driver_data<lucky74_state>(); /* - bits - 7654 3210 ---- xxxx tiles color. xxxx ---- tiles page offset. */ int bank = 1; - int attr = state->m_bg_colorram[tile_index]; - int code = state->m_bg_videoram[tile_index] + ((attr & 0xf0) << 4); + int attr = m_bg_colorram[tile_index]; + int code = m_bg_videoram[tile_index] + ((attr & 0xf0) << 4); int color = (attr & 0x0f); - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); } VIDEO_START( lucky74 ) { lucky74_state *state = machine.driver_data<lucky74_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - 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(lucky74_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lucky74_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/video/lvcards.c b/src/mame/video/lvcards.c index 5a72721312a..7206659c48f 100644 --- a/src/mame/video/lvcards.c +++ b/src/mame/video/lvcards.c @@ -94,21 +94,20 @@ WRITE8_MEMBER(lvcards_state::lvcards_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(lvcards_state::get_bg_tile_info) { - lvcards_state *state = machine.driver_data<lvcards_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x30) << 4) + ((attr & 0x80) << 3); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x30) << 4) + ((attr & 0x80) << 3); int color = attr & 0x0f; int flags = (attr & 0x40) ? TILE_FLIPX : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( lvcards ) { lvcards_state *state = machine.driver_data<lvcards_state>(); - 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(lvcards_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/lwings.c b/src/mame/video/lwings.c index 5fb31ff9f98..a51110e0a12 100644 --- a/src/mame/video/lwings.c +++ b/src/mame/video/lwings.c @@ -15,61 +15,57 @@ ***************************************************************************/ -static TILEMAP_MAPPER( get_bg2_memory_offset ) +TILEMAP_MAPPER_MEMBER(lwings_state::get_bg2_memory_offset) { return (row * 0x800) | (col * 2); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(lwings_state::get_fg_tile_info) { - lwings_state *state = machine.driver_data<lwings_state>(); - int code = state->m_fgvideoram[tile_index]; - int color = state->m_fgvideoram[tile_index + 0x400]; - SET_TILE_INFO( + int code = m_fgvideoram[tile_index]; + int color = m_fgvideoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, code + ((color & 0xc0) << 2), color & 0x0f, TILE_FLIPYX((color & 0x30) >> 4)); } -static TILE_GET_INFO( lwings_get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(lwings_state::lwings_get_bg1_tile_info) { - lwings_state *state = machine.driver_data<lwings_state>(); - int code = state->m_bg1videoram[tile_index]; - int color = state->m_bg1videoram[tile_index + 0x400]; - SET_TILE_INFO( + int code = m_bg1videoram[tile_index]; + int color = m_bg1videoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 1, code + ((color & 0xe0) << 3), color & 0x07, TILE_FLIPYX((color & 0x18) >> 3)); } -static TILE_GET_INFO( trojan_get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(lwings_state::trojan_get_bg1_tile_info) { - lwings_state *state = machine.driver_data<lwings_state>(); - int code = state->m_bg1videoram[tile_index]; - int color = state->m_bg1videoram[tile_index + 0x400]; + int code = m_bg1videoram[tile_index]; + int color = m_bg1videoram[tile_index + 0x400]; code += (color & 0xe0)<<3; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, - state->m_bg2_avenger_hw ? ((color & 7) ^ 6) : (color & 7), + m_bg2_avenger_hw ? ((color & 7) ^ 6) : (color & 7), ((color & 0x10) ? TILE_FLIPX : 0)); tileinfo.group = (color & 0x08) >> 3; } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(lwings_state::get_bg2_tile_info) { - lwings_state *state = machine.driver_data<lwings_state>(); int code, color; - UINT8 *rom = state->memregion("gfx5")->base(); - int mask = state->memregion("gfx5")->bytes() - 1; + UINT8 *rom = memregion("gfx5")->base(); + int mask = memregion("gfx5")->bytes() - 1; - tile_index = (tile_index + state->m_bg2_image * 0x20) & mask; + tile_index = (tile_index + m_bg2_image * 0x20) & mask; code = rom[tile_index]; color = rom[tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, code + ((color & 0x80) << 1), color & 0x07, @@ -86,8 +82,8 @@ VIDEO_START( lwings ) { lwings_state *state = machine.driver_data<lwings_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg1_tilemap = tilemap_create(machine, lwings_get_bg1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::lwings_get_bg1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(3); } @@ -96,9 +92,9 @@ VIDEO_START( trojan ) { lwings_state *state = machine.driver_data<lwings_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg1_tilemap = tilemap_create(machine, trojan_get_bg1_tile_info,TILEMAP_SCAN_COLS, 16, 16, 32, 32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, get_bg2_memory_offset, 16, 16, 32, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::trojan_get_bg1_tile_info),state),TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(lwings_state::get_bg2_memory_offset),state), 16, 16, 32, 16); state->m_fg_tilemap->set_transparent_pen(3); state->m_bg1_tilemap->set_transmask(0, 0xffff, 0x0001); /* split type 0 is totally transparent in front half */ diff --git a/src/mame/video/m107.c b/src/mame/video/m107.c index e52cd26c3be..aa920a8c30e 100644 --- a/src/mame/video/m107.c +++ b/src/mame/video/m107.c @@ -42,17 +42,16 @@ /*****************************************************************************/ -static TILE_GET_INFO( get_pf_tile_info ) +TILE_GET_INFO_MEMBER(m107_state::get_pf_tile_info) { - m107_state *state = machine.driver_data<m107_state>(); pf_layer_info *layer = (pf_layer_info *)param; int tile, attrib; tile_index = 2 * tile_index + layer->vram_base; - attrib = state->m_vram_data[tile_index + 1]; - tile = state->m_vram_data[tile_index] + ((attrib & 0x1000) << 4); + attrib = m_vram_data[tile_index + 1]; + tile = m_vram_data[tile_index] + ((attrib & 0x1000) << 4); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, attrib & 0x7f, @@ -129,7 +128,7 @@ VIDEO_START( m107 ) pf_layer_info *layer = &state->m_pf_layer[laynum]; /* allocate a tilemaps per layer */ - layer->tmap = tilemap_create(machine, get_pf_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,64); + layer->tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m107_state::get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); /* set the user data to point to the layer */ layer->tmap->set_user_data(&state->m_pf_layer[laynum]); diff --git a/src/mame/video/m52.c b/src/mame/video/m52.c index f099f6898ef..6555255cf29 100644 --- a/src/mame/video/m52.c +++ b/src/mame/video/m52.c @@ -115,11 +115,10 @@ PALETTE_INIT( m52 ) * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(m52_state::get_tile_info) { - m52_state *state = machine.driver_data<m52_state>(); - UINT8 video = state->m_videoram[tile_index]; - UINT8 color = state->m_colorram[tile_index]; + UINT8 video = m_videoram[tile_index]; + UINT8 color = m_colorram[tile_index]; int flag = 0; int code = 0; @@ -136,7 +135,7 @@ static TILE_GET_INFO( get_tile_info ) flag |= TILE_FORCE_LAYER0; /* lines 0 to 6 are opaqe? */ } - SET_TILE_INFO(0, code, color & 0x3f, flag); + SET_TILE_INFO_MEMBER(0, code, color & 0x3f, flag); } @@ -151,7 +150,7 @@ VIDEO_START( m52 ) { m52_state *state = machine.driver_data<m52_state>(); - 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(m52_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scrolldx(128 - 1, -1); diff --git a/src/mame/video/m57.c b/src/mame/video/m57.c index 8b59d8236f0..dbd2cda9bc2 100644 --- a/src/mame/video/m57.c +++ b/src/mame/video/m57.c @@ -110,14 +110,13 @@ PALETTE_INIT( m57 ) * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(m57_state::get_tile_info) { - m57_state *state = machine.driver_data<m57_state>(); - UINT8 attr = state->m_videoram[tile_index * 2 + 0]; - UINT16 code = state->m_videoram[tile_index * 2 + 1] | ((attr & 0xc0) << 2); + UINT8 attr = m_videoram[tile_index * 2 + 0]; + UINT16 code = m_videoram[tile_index * 2 + 1] | ((attr & 0xc0) << 2); - SET_TILE_INFO(0, code, attr & 0x0f, TILE_FLIPXY(attr >> 4)); + SET_TILE_INFO_MEMBER(0, code, attr & 0x0f, TILE_FLIPXY(attr >> 4)); } @@ -145,7 +144,7 @@ VIDEO_START( m57 ) { m57_state *state = machine.driver_data<m57_state>(); - 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(m57_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(256); state->save_item(NAME(state->m_flipscreen)); diff --git a/src/mame/video/m58.c b/src/mame/video/m58.c index 396b4932fd2..07b9a07105c 100644 --- a/src/mame/video/m58.c +++ b/src/mame/video/m58.c @@ -144,21 +144,20 @@ WRITE8_MEMBER(m58_state::yard_scroll_panel_w) * *************************************/ -static TILE_GET_INFO( yard_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(m58_state::yard_get_bg_tile_info) { - m58_state *state = machine.driver_data<m58_state>(); int offs = tile_index * 2; - int attr = state->m_videoram[offs + 1]; - int code = state->m_videoram[offs] + ((attr & 0xc0) << 2); + int attr = m_videoram[offs + 1]; + int code = m_videoram[offs] + ((attr & 0xc0) << 2); int color = attr & 0x1f; int flags = (attr & 0x20) ? TILE_FLIPX : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } -static TILEMAP_MAPPER( yard_tilemap_scan_rows ) +TILEMAP_MAPPER_MEMBER(m58_state::yard_tilemap_scan_rows) { /* logical (col,row) -> memory offset */ if (col >= 32) @@ -183,7 +182,7 @@ VIDEO_START( yard ) int height = machine.primary_screen->height(); const rectangle &visarea = machine.primary_screen->visible_area(); - state->m_bg_tilemap = tilemap_create(machine, yard_get_bg_tile_info, yard_tilemap_scan_rows, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m58_state::yard_get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(m58_state::yard_tilemap_scan_rows),state), 8, 8, 64, 32); state->m_bg_tilemap->set_scrolldx(visarea.min_x, width - (visarea.max_x + 1)); state->m_bg_tilemap->set_scrolldy(visarea.min_y - 8, height + 16 - (visarea.max_y + 1)); diff --git a/src/mame/video/m62.c b/src/mame/video/m62.c index c3c0f7ae428..bdf91377f12 100644 --- a/src/mame/video/m62.c +++ b/src/mame/video/m62.c @@ -409,10 +409,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static void m62_start( running_machine &machine, tile_get_info_func tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 ) +static void m62_start( running_machine &machine, tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 ) { m62_state *state = machine.driver_data<m62_state>(); - state->m_bg_tilemap = tilemap_create(machine, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2); + state->m_bg_tilemap = &machine.tilemap().create(tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2); register_savestate(machine); @@ -423,10 +423,10 @@ static void m62_start( running_machine &machine, tile_get_info_func tile_get_inf state->m_bg_tilemap->set_scroll_cols(cols); } -static void m62_textlayer( running_machine &machine, tile_get_info_func tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 ) +static void m62_textlayer( running_machine &machine, tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 ) { m62_state *state = machine.driver_data<m62_state>(); - state->m_fg_tilemap = tilemap_create(machine, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2); + state->m_fg_tilemap = &machine.tilemap().create(tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2); if (rows != 0) state->m_fg_tilemap->set_scroll_rows(rows); @@ -441,20 +441,19 @@ WRITE8_MEMBER(m62_state::kungfum_tileram_w) m_bg_tilemap->mark_tile_dirty(offset & 0x7ff); } -static TILE_GET_INFO( get_kungfum_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_kungfum_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; int flags; - code = state->m_m62_tileram[tile_index]; - color = state->m_m62_tileram[tile_index + 0x800]; + code = m_m62_tileram[tile_index]; + color = m_m62_tileram[tile_index + 0x800]; flags = 0; if ((color & 0x20)) { flags |= TILE_FLIPX; } - SET_TILE_INFO(0, code | ((color & 0xc0)<< 2), color & 0x1f, flags); + SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0)<< 2), color & 0x1f, flags); /* is the following right? */ if ((tile_index / 64) < 6 || ((color & 0x1f) >> 1) > 0x0c) @@ -465,7 +464,8 @@ static TILE_GET_INFO( get_kungfum_bg_tile_info ) VIDEO_START( kungfum ) { - m62_start(machine, get_kungfum_bg_tile_info, 32, 0, 8, 8, 64, 32); + m62_state *state = machine.driver_data<m62_state>(); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_kungfum_bg_tile_info),state), 32, 0, 8, 8, 64, 32); } SCREEN_UPDATE_IND16( kungfum ) @@ -487,21 +487,20 @@ SCREEN_UPDATE_IND16( kungfum ) } -static TILE_GET_INFO( get_ldrun_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_ldrun_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; int flags; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; flags = 0; if ((color & 0x20)) { flags |= TILE_FLIPX; } - SET_TILE_INFO(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); + SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); if (((color & 0x1f) >> 1) >= 0x0c) tileinfo.group = 1; else @@ -512,7 +511,7 @@ VIDEO_START( ldrun ) { m62_state *state = machine.driver_data<m62_state>(); - m62_start(machine, get_ldrun_bg_tile_info, 1, 1, 8, 8, 64, 32); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_ldrun_bg_tile_info),state), 1, 1, 8, 8, 64, 32); state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ } @@ -530,20 +529,19 @@ SCREEN_UPDATE_IND16( ldrun ) return 0; } -static TILE_GET_INFO( get_ldrun2_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_ldrun2_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; int flags; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; flags = 0; if ((color & 0x20)) { flags |= TILE_FLIPX; } - SET_TILE_INFO(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); + SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); if (((color & 0x1f) >> 1) >= 0x04) tileinfo.group = 1; else @@ -553,7 +551,7 @@ static TILE_GET_INFO( get_ldrun2_bg_tile_info ) VIDEO_START( ldrun2 ) { m62_state *state = machine.driver_data<m62_state>(); - m62_start(machine, get_ldrun2_bg_tile_info, 1, 1, 8, 8, 64, 32); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_ldrun2_bg_tile_info),state), 1, 1, 8, 8, 64, 32); state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ } @@ -586,41 +584,39 @@ SCREEN_UPDATE_IND16( ldrun3 ) } -static TILE_GET_INFO( get_battroad_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_battroad_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; int flags; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; flags = 0; if ((color & 0x20)) { flags |= TILE_FLIPX; } - SET_TILE_INFO(0, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, flags); + SET_TILE_INFO_MEMBER(0, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, flags); if (((color & 0x1f) >> 1) >= 0x04) tileinfo.group = 1; else tileinfo.group = 0; } -static TILE_GET_INFO( get_battroad_fg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_battroad_fg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_textram[tile_index << 1]; - color = state->m_m62_textram[(tile_index << 1) | 1]; - SET_TILE_INFO(2, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, 0); + code = m_m62_textram[tile_index << 1]; + color = m_m62_textram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER(2, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, 0); } VIDEO_START( battroad ) { m62_state *state = machine.driver_data<m62_state>(); - m62_start(machine, get_battroad_bg_tile_info, 1, 1, 8, 8, 64, 32); - m62_textlayer(machine, get_battroad_fg_tile_info, 1, 1, 8, 8, 32, 32); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_battroad_bg_tile_info),state), 1, 1, 8, 8, 64, 32); + m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_battroad_fg_tile_info),state), 1, 1, 8, 8, 32, 32); state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ } @@ -645,19 +641,19 @@ SCREEN_UPDATE_IND16( battroad ) /* almost identical but scrolling background, more characters, */ /* no char x flip, and more sprites */ -static TILE_GET_INFO( get_ldrun4_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_ldrun4_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; - SET_TILE_INFO(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0); + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0); } VIDEO_START( ldrun4 ) { - m62_start(machine, get_ldrun4_bg_tile_info, 1, 0, 8, 8, 64, 32); + m62_state *state = machine.driver_data<m62_state>(); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_ldrun4_bg_tile_info),state), 1, 0, 8, 8, 64, 32); } SCREEN_UPDATE_IND16( ldrun4 ) @@ -671,36 +667,35 @@ SCREEN_UPDATE_IND16( ldrun4 ) } -static TILE_GET_INFO( get_lotlot_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_lotlot_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; int flags; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; flags = 0; if ((color & 0x20)) { flags |= TILE_FLIPX; } - SET_TILE_INFO(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); + SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); } -static TILE_GET_INFO( get_lotlot_fg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_lotlot_fg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_textram[tile_index << 1]; - color = state->m_m62_textram[(tile_index << 1) | 1]; - SET_TILE_INFO(2, code | ((color & 0xc0) << 2), color & 0x1f, 0); + code = m_m62_textram[tile_index << 1]; + color = m_m62_textram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER(2, code | ((color & 0xc0) << 2), color & 0x1f, 0); } VIDEO_START( lotlot ) { - m62_start(machine, get_lotlot_bg_tile_info, 1, 1, 12, 10, 32, 64); - m62_textlayer(machine, get_lotlot_fg_tile_info, 1, 1, 12, 10, 32, 64); + m62_state *state = machine.driver_data<m62_state>(); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_bg_tile_info),state), 1, 1, 12, 10, 32, 64); + m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_fg_tile_info),state), 1, 1, 12, 10, 32, 64); } SCREEN_UPDATE_IND16( lotlot ) @@ -738,38 +733,36 @@ WRITE8_MEMBER(m62_state::kidniki_background_bank_w) } } -static TILE_GET_INFO( get_kidniki_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_kidniki_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; - SET_TILE_INFO(0, code | ((color & 0xe0) << 3) | (state->m_kidniki_background_bank << 11), color & 0x1f, 0); + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER(0, code | ((color & 0xe0) << 3) | (m_kidniki_background_bank << 11), color & 0x1f, 0); tileinfo.group = ((color & 0xe0) == 0xe0) ? 1 : 0; } -static TILE_GET_INFO( get_kidniki_fg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_kidniki_fg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_textram[tile_index << 1]; - color = state->m_m62_textram[(tile_index << 1) | 1]; - SET_TILE_INFO(2, code | ( ( color & 0xc0 ) << 2 ), color & 0x1f, 0); + code = m_m62_textram[tile_index << 1]; + color = m_m62_textram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER(2, code | ( ( color & 0xc0 ) << 2 ), color & 0x1f, 0); } VIDEO_START( kidniki ) { m62_state *state = machine.driver_data<m62_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_kidniki_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ register_savestate(machine); - m62_textlayer(machine, get_kidniki_fg_tile_info, 1, 1, 12, 8, 32, 64); + m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_fg_tile_info),state), 1, 1, 12, 8, 32, 64); } SCREEN_UPDATE_IND16( kidniki ) @@ -798,31 +791,30 @@ WRITE8_MEMBER(m62_state::spelunkr_palbank_w) } } -static TILE_GET_INFO( get_spelunkr_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_spelunkr_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; - SET_TILE_INFO(0, code | ((color & 0x10) << 4) | ((color & 0x20) << 6) | ((color & 0xc0) << 3), (color & 0x0f) | (state->m_spelunkr_palbank << 4), 0); + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER(0, code | ((color & 0x10) << 4) | ((color & 0x20) << 6) | ((color & 0xc0) << 3), (color & 0x0f) | (m_spelunkr_palbank << 4), 0); } -static TILE_GET_INFO( get_spelunkr_fg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_spelunkr_fg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_textram[tile_index << 1]; - color = state->m_m62_textram[(tile_index << 1) | 1]; + code = m_m62_textram[tile_index << 1]; + color = m_m62_textram[(tile_index << 1) | 1]; if (color & 0xe0) popmessage("fg tilemap %x %x", tile_index, color & 0xe0); - SET_TILE_INFO(2, code | ((color & 0x10) << 4), (color & 0x0f) | (state->m_spelunkr_palbank << 4), 0); + SET_TILE_INFO_MEMBER(2, code | ((color & 0x10) << 4), (color & 0x0f) | (m_spelunkr_palbank << 4), 0); } VIDEO_START( spelunkr ) { - m62_start(machine, get_spelunkr_bg_tile_info, 1, 1, 8, 8, 64, 64); - m62_textlayer(machine, get_spelunkr_fg_tile_info, 1, 1, 12, 8, 32, 32); + m62_state *state = machine.driver_data<m62_state>(); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_bg_tile_info),state), 1, 1, 8, 8, 64, 64); + m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),state), 1, 1, 12, 8, 32, 32); } SCREEN_UPDATE_IND16( spelunkr ) @@ -853,20 +845,20 @@ WRITE8_MEMBER(m62_state::spelunk2_gfxport_w) } } -static TILE_GET_INFO( get_spelunk2_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_spelunk2_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; - SET_TILE_INFO( 0, code | ((color & 0xf0) << 4), (color & 0x0f) | (state->m_spelunkr_palbank << 4), 0 ); + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER( 0, code | ((color & 0xf0) << 4), (color & 0x0f) | (m_spelunkr_palbank << 4), 0 ); } VIDEO_START( spelunk2 ) { - m62_start(machine, get_spelunk2_bg_tile_info, 1, 1, 8, 8, 64, 64); - m62_textlayer(machine, get_spelunkr_fg_tile_info, 1, 1, 12, 8, 32, 32); + m62_state *state = machine.driver_data<m62_state>(); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_spelunk2_bg_tile_info),state), 1, 1, 8, 8, 64, 64); + m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),state), 1, 1, 12, 8, 32, 32); } SCREEN_UPDATE_IND16( spelunk2 ) @@ -885,35 +877,33 @@ SCREEN_UPDATE_IND16( spelunk2 ) } -static TILE_GET_INFO( get_youjyudn_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_youjyudn_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; - SET_TILE_INFO( 0, code | ((color & 0x60) << 3), color & 0x1f, 0); + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER( 0, code | ((color & 0x60) << 3), color & 0x1f, 0); if (((color & 0x1f) >> 1) >= 0x08) tileinfo.group = 1; else tileinfo.group = 0; } -static TILE_GET_INFO( get_youjyudn_fg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_youjyudn_fg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_textram[tile_index << 1]; - color = state->m_m62_textram[(tile_index << 1) | 1]; - SET_TILE_INFO(2, code | ((color & 0xc0) << 2), (color & 0x0f), 0); + code = m_m62_textram[tile_index << 1]; + color = m_m62_textram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER(2, code | ((color & 0xc0) << 2), (color & 0x0f), 0); } VIDEO_START( youjyudn ) { m62_state *state = machine.driver_data<m62_state>(); - m62_start(machine, get_youjyudn_bg_tile_info, 1, 0, 8, 16, 64, 16); - m62_textlayer(machine, get_youjyudn_fg_tile_info, 1, 1, 12, 8, 32, 32); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_youjyudn_bg_tile_info),state), 1, 0, 8, 16, 64, 16); + m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_youjyudn_fg_tile_info),state), 1, 1, 12, 8, 32, 32); state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ } @@ -939,14 +929,13 @@ WRITE8_MEMBER(m62_state::horizon_scrollram_w) m_scrollram[offset] = data; } -static TILE_GET_INFO( get_horizon_bg_tile_info ) +TILE_GET_INFO_MEMBER(m62_state::get_horizon_bg_tile_info) { - m62_state *state = machine.driver_data<m62_state>(); int code; int color; - code = state->m_m62_tileram[tile_index << 1]; - color = state->m_m62_tileram[(tile_index << 1) | 1]; - SET_TILE_INFO(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0); + code = m_m62_tileram[tile_index << 1]; + color = m_m62_tileram[(tile_index << 1) | 1]; + SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0); if (((color & 0x1f) >> 1) >= 0x08) tileinfo.group = 1; @@ -957,7 +946,7 @@ static TILE_GET_INFO( get_horizon_bg_tile_info ) VIDEO_START( horizon ) { m62_state *state = machine.driver_data<m62_state>(); - m62_start(machine, get_horizon_bg_tile_info, 32, 0, 8, 8, 64, 32); + m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_horizon_bg_tile_info),state), 32, 0, 8, 8, 64, 32); state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ } diff --git a/src/mame/video/m72.c b/src/mame/video/m72.c index 273d7506f5c..6f316a6b44f 100644 --- a/src/mame/video/m72.c +++ b/src/mame/video/m72.c @@ -57,38 +57,33 @@ INLINE void rtype2_get_tile_info(running_machine &machine,tile_data &tileinfo,in } -static TILE_GET_INFO( m72_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(m72_state::m72_get_bg_tile_info) { - m72_state *state = machine.driver_data<m72_state>(); - m72_get_tile_info(machine,tileinfo,tile_index,state->m_videoram2,2); + m72_get_tile_info(machine(),tileinfo,tile_index,m_videoram2,2); } -static TILE_GET_INFO( m72_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(m72_state::m72_get_fg_tile_info) { - m72_state *state = machine.driver_data<m72_state>(); - m72_get_tile_info(machine,tileinfo,tile_index,state->m_videoram1,1); + m72_get_tile_info(machine(),tileinfo,tile_index,m_videoram1,1); } -static TILE_GET_INFO( hharry_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(m72_state::hharry_get_bg_tile_info) { - m72_state *state = machine.driver_data<m72_state>(); - m72_get_tile_info(machine,tileinfo,tile_index,state->m_videoram2,1); + m72_get_tile_info(machine(),tileinfo,tile_index,m_videoram2,1); } -static TILE_GET_INFO( rtype2_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(m72_state::rtype2_get_bg_tile_info) { - m72_state *state = machine.driver_data<m72_state>(); - rtype2_get_tile_info(machine,tileinfo,tile_index,state->m_videoram2,1); + rtype2_get_tile_info(machine(),tileinfo,tile_index,m_videoram2,1); } -static TILE_GET_INFO( rtype2_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(m72_state::rtype2_get_fg_tile_info) { - m72_state *state = machine.driver_data<m72_state>(); - rtype2_get_tile_info(machine,tileinfo,tile_index,state->m_videoram1,1); + rtype2_get_tile_info(machine(),tileinfo,tile_index,m_videoram1,1); } -static TILEMAP_MAPPER( majtitle_scan_rows ) +TILEMAP_MAPPER_MEMBER(m72_state::majtitle_scan_rows) { /* logical (col,row) -> memory offset */ return row*256 + col; @@ -117,8 +112,8 @@ static void register_savestate(running_machine &machine) VIDEO_START( m72 ) { m72_state *state = machine.driver_data<m72_state>(); - state->m_bg_tilemap = tilemap_create(machine, m72_get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_fg_tilemap = tilemap_create(machine, m72_get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::m72_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::m72_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, state->m_spriteram.bytes()/2); @@ -157,8 +152,8 @@ VIDEO_START( xmultipl ) VIDEO_START( rtype2 ) { m72_state *state = machine.driver_data<m72_state>(); - state->m_bg_tilemap = tilemap_create(machine, rtype2_get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_fg_tilemap = tilemap_create(machine, rtype2_get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, state->m_spriteram.bytes()/2); @@ -205,9 +200,9 @@ VIDEO_START( majtitle ) m72_state *state = machine.driver_data<m72_state>(); // The tilemap can be 256x64, but seems to be used at 128x64 (scroll wraparound). // The layout ramains 256x64, the right half is just not displayed. -// state->m_bg_tilemap = tilemap_create(machine, rtype2_get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,256,64); - state->m_bg_tilemap = tilemap_create(machine, rtype2_get_bg_tile_info,majtitle_scan_rows,8,8,128,64); - state->m_fg_tilemap = tilemap_create(machine, rtype2_get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); +// state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,256,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(m72_state::majtitle_scan_rows),state),8,8,128,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, state->m_spriteram.bytes()/2); @@ -233,8 +228,8 @@ VIDEO_START( majtitle ) VIDEO_START( hharry ) { m72_state *state = machine.driver_data<m72_state>(); - state->m_bg_tilemap = tilemap_create(machine, hharry_get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_fg_tilemap = tilemap_create(machine, m72_get_fg_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::hharry_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::m72_get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, state->m_spriteram.bytes()/2); diff --git a/src/mame/video/m90.c b/src/mame/video/m90.c index db5d711ca7e..c5f946d9443 100644 --- a/src/mame/video/m90.c +++ b/src/mame/video/m90.c @@ -78,28 +78,28 @@ INLINE void dynablsb_get_tile_info(running_machine &machine,tile_data &tileinfo, tileinfo.category = (color & 0x30) ? 1 : 0; } -static TILE_GET_INFO( get_pf1_tile_info ) { get_tile_info(machine,tileinfo,tile_index,0,0x3); } -static TILE_GET_INFO( get_pf1w_tile_info ) { get_tile_info(machine,tileinfo,tile_index,0,0x2); } -static TILE_GET_INFO( get_pf2_tile_info ) { get_tile_info(machine,tileinfo,tile_index,1,0x3); } -static TILE_GET_INFO( get_pf2w_tile_info ) { get_tile_info(machine,tileinfo,tile_index,1,0x2); } +TILE_GET_INFO_MEMBER(m90_state::get_pf1_tile_info){ get_tile_info(machine(),tileinfo,tile_index,0,0x3); } +TILE_GET_INFO_MEMBER(m90_state::get_pf1w_tile_info){ get_tile_info(machine(),tileinfo,tile_index,0,0x2); } +TILE_GET_INFO_MEMBER(m90_state::get_pf2_tile_info){ get_tile_info(machine(),tileinfo,tile_index,1,0x3); } +TILE_GET_INFO_MEMBER(m90_state::get_pf2w_tile_info){ get_tile_info(machine(),tileinfo,tile_index,1,0x2); } -static TILE_GET_INFO( bomblord_get_pf1_tile_info ) { bomblord_get_tile_info(machine,tileinfo,tile_index,0); } -static TILE_GET_INFO( bomblord_get_pf1w_tile_info ) { bomblord_get_tile_info(machine,tileinfo,tile_index,0); } -static TILE_GET_INFO( bomblord_get_pf2_tile_info ) { bomblord_get_tile_info(machine,tileinfo,tile_index,2); } -static TILE_GET_INFO( bomblord_get_pf2w_tile_info ) { bomblord_get_tile_info(machine,tileinfo,tile_index,2); } +TILE_GET_INFO_MEMBER(m90_state::bomblord_get_pf1_tile_info){ bomblord_get_tile_info(machine(),tileinfo,tile_index,0); } +TILE_GET_INFO_MEMBER(m90_state::bomblord_get_pf1w_tile_info){ bomblord_get_tile_info(machine(),tileinfo,tile_index,0); } +TILE_GET_INFO_MEMBER(m90_state::bomblord_get_pf2_tile_info){ bomblord_get_tile_info(machine(),tileinfo,tile_index,2); } +TILE_GET_INFO_MEMBER(m90_state::bomblord_get_pf2w_tile_info){ bomblord_get_tile_info(machine(),tileinfo,tile_index,2); } -static TILE_GET_INFO( dynablsb_get_pf1_tile_info ) { dynablsb_get_tile_info(machine,tileinfo,tile_index,0); } -static TILE_GET_INFO( dynablsb_get_pf1w_tile_info ) { dynablsb_get_tile_info(machine,tileinfo,tile_index,0); } -static TILE_GET_INFO( dynablsb_get_pf2_tile_info ) { dynablsb_get_tile_info(machine,tileinfo,tile_index,2); } -static TILE_GET_INFO( dynablsb_get_pf2w_tile_info ) { dynablsb_get_tile_info(machine,tileinfo,tile_index,2); } +TILE_GET_INFO_MEMBER(m90_state::dynablsb_get_pf1_tile_info){ dynablsb_get_tile_info(machine(),tileinfo,tile_index,0); } +TILE_GET_INFO_MEMBER(m90_state::dynablsb_get_pf1w_tile_info){ dynablsb_get_tile_info(machine(),tileinfo,tile_index,0); } +TILE_GET_INFO_MEMBER(m90_state::dynablsb_get_pf2_tile_info){ dynablsb_get_tile_info(machine(),tileinfo,tile_index,2); } +TILE_GET_INFO_MEMBER(m90_state::dynablsb_get_pf2w_tile_info){ dynablsb_get_tile_info(machine(),tileinfo,tile_index,2); } VIDEO_START( m90 ) { m90_state *state = machine.driver_data<m90_state>(); - state->m_pf1_layer = tilemap_create(machine, get_pf1_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_pf1_wide_layer = tilemap_create(machine, get_pf1w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); - state->m_pf2_layer = tilemap_create(machine, get_pf2_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_pf2_wide_layer = tilemap_create(machine, get_pf2w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_pf1_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::get_pf1_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_pf1_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::get_pf1w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_pf2_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::get_pf2_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_pf2_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::get_pf2w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); state->m_pf1_layer->set_transparent_pen(0); state->m_pf1_wide_layer->set_transparent_pen(0); @@ -112,10 +112,10 @@ VIDEO_START( m90 ) VIDEO_START( bomblord ) { m90_state *state = machine.driver_data<m90_state>(); - state->m_pf1_layer = tilemap_create(machine, bomblord_get_pf1_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_pf1_wide_layer = tilemap_create(machine, bomblord_get_pf1w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); - state->m_pf2_layer = tilemap_create(machine, bomblord_get_pf2_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_pf2_wide_layer = tilemap_create(machine, bomblord_get_pf2w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_pf1_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::bomblord_get_pf1_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_pf1_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::bomblord_get_pf1w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_pf2_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::bomblord_get_pf2_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_pf2_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::bomblord_get_pf2w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); state->m_pf2_layer->set_transparent_pen(0); state->m_pf2_wide_layer->set_transparent_pen(0); @@ -128,10 +128,10 @@ VIDEO_START( bomblord ) VIDEO_START( dynablsb ) { m90_state *state = machine.driver_data<m90_state>(); - state->m_pf1_layer = tilemap_create(machine, dynablsb_get_pf1_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_pf1_wide_layer = tilemap_create(machine, dynablsb_get_pf1w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); - state->m_pf2_layer = tilemap_create(machine, dynablsb_get_pf2_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_pf2_wide_layer = tilemap_create(machine, dynablsb_get_pf2w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_pf1_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::dynablsb_get_pf1_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_pf1_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::dynablsb_get_pf1w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_pf2_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::dynablsb_get_pf2_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_pf2_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::dynablsb_get_pf2w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); state->m_pf2_layer->set_transparent_pen(0); state->m_pf2_wide_layer->set_transparent_pen(0); diff --git a/src/mame/video/m92.c b/src/mame/video/m92.c index bd5e8b7d551..ad52d4d37ac 100644 --- a/src/mame/video/m92.c +++ b/src/mame/video/m92.c @@ -136,17 +136,16 @@ WRITE16_MEMBER(m92_state::m92_paletteram_w) /*****************************************************************************/ -static TILE_GET_INFO( get_pf_tile_info ) +TILE_GET_INFO_MEMBER(m92_state::get_pf_tile_info) { - m92_state *state = machine.driver_data<m92_state>(); pf_layer_info *layer = (pf_layer_info *)param; int tile, attrib; tile_index = 2 * tile_index + layer->vram_base; - attrib = state->m_vram_data[tile_index + 1]; - tile = state->m_vram_data[tile_index] + ((attrib & 0x8000) << 1); + attrib = m_vram_data[tile_index + 1]; + tile = m_vram_data[tile_index] + ((attrib & 0x8000) << 1); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, attrib & 0x7f, @@ -249,8 +248,8 @@ VIDEO_START( m92 ) pf_layer_info *layer = &state->m_pf_layer[laynum]; /* allocate two tilemaps per layer, one normal, one wide */ - layer->tmap = tilemap_create(machine, get_pf_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,64); - layer->wide_tmap = tilemap_create(machine, get_pf_tile_info, TILEMAP_SCAN_ROWS, 8,8, 128,64); + layer->tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m92_state::get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); + layer->wide_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m92_state::get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 128,64); /* set the user data for each one to point to the layer */ layer->tmap->set_user_data(&state->m_pf_layer[laynum]); diff --git a/src/mame/video/macrossp.c b/src/mame/video/macrossp.c index 59528e280a9..5f284c3b80f 100644 --- a/src/mame/video/macrossp.c +++ b/src/mame/video/macrossp.c @@ -15,15 +15,14 @@ WRITE32_MEMBER(macrossp_state::macrossp_scra_videoram_w) } -static TILE_GET_INFO( get_macrossp_scra_tile_info ) +TILE_GET_INFO_MEMBER(macrossp_state::get_macrossp_scra_tile_info) { - macrossp_state *state = machine.driver_data<macrossp_state>(); UINT32 attr, tileno, color; - attr = state->m_scra_videoram[tile_index]; + attr = m_scra_videoram[tile_index]; tileno = attr & 0x0000ffff; - switch (state->m_scra_videoregs[0] & 0x00000c00) + switch (m_scra_videoregs[0] & 0x00000c00) { case 0x00000800: color = (attr & 0x000e0000) >> 15; @@ -34,11 +33,11 @@ static TILE_GET_INFO( get_macrossp_scra_tile_info ) break; default: - color = machine.rand() & 7; + color = machine().rand() & 7; break; } - SET_TILE_INFO(1, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); + SET_TILE_INFO_MEMBER(1, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); } /*** SCR B LAYER ***/ @@ -52,15 +51,14 @@ WRITE32_MEMBER(macrossp_state::macrossp_scrb_videoram_w) } -static TILE_GET_INFO( get_macrossp_scrb_tile_info ) +TILE_GET_INFO_MEMBER(macrossp_state::get_macrossp_scrb_tile_info) { - macrossp_state *state = machine.driver_data<macrossp_state>(); UINT32 attr, tileno, color; - attr = state->m_scrb_videoram[tile_index]; + attr = m_scrb_videoram[tile_index]; tileno = attr & 0x0000ffff; - switch (state->m_scrb_videoregs[0] & 0x00000c00) + switch (m_scrb_videoregs[0] & 0x00000c00) { case 0x00000800: color = (attr & 0x000e0000) >> 15; @@ -71,11 +69,11 @@ static TILE_GET_INFO( get_macrossp_scrb_tile_info ) break; default: - color = machine.rand() & 7; + color = machine().rand() & 7; break; } - SET_TILE_INFO(2, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); + SET_TILE_INFO_MEMBER(2, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); } /*** SCR C LAYER ***/ @@ -89,15 +87,14 @@ WRITE32_MEMBER(macrossp_state::macrossp_scrc_videoram_w) } -static TILE_GET_INFO( get_macrossp_scrc_tile_info ) +TILE_GET_INFO_MEMBER(macrossp_state::get_macrossp_scrc_tile_info) { - macrossp_state *state = machine.driver_data<macrossp_state>(); UINT32 attr, tileno, color; - attr = state->m_scrc_videoram[tile_index]; + attr = m_scrc_videoram[tile_index]; tileno = attr & 0x0000ffff; - switch (state->m_scrc_videoregs[0] & 0x00000c00) + switch (m_scrc_videoregs[0] & 0x00000c00) { case 0x00000800: color = (attr & 0x000e0000) >> 15; @@ -108,11 +105,11 @@ static TILE_GET_INFO( get_macrossp_scrc_tile_info ) break; default: - color = machine.rand() & 7; + color = machine().rand() & 7; break; } - SET_TILE_INFO(3, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); + SET_TILE_INFO_MEMBER(3, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); } /*** TEXT LAYER ***/ @@ -126,15 +123,14 @@ WRITE32_MEMBER(macrossp_state::macrossp_text_videoram_w) } -static TILE_GET_INFO( get_macrossp_text_tile_info ) +TILE_GET_INFO_MEMBER(macrossp_state::get_macrossp_text_tile_info) { - macrossp_state *state = machine.driver_data<macrossp_state>(); UINT32 tileno, colour; - tileno = state->m_text_videoram[tile_index] & 0x0000ffff; - colour = (state->m_text_videoram[tile_index] & 0x00fe0000) >> 17; + tileno = m_text_videoram[tile_index] & 0x0000ffff; + colour = (m_text_videoram[tile_index] & 0x00fe0000) >> 17; - SET_TILE_INFO(4, tileno, colour, 0); + SET_TILE_INFO_MEMBER(4, tileno, colour, 0); } @@ -148,10 +144,10 @@ VIDEO_START( macrossp ) state->m_spriteram_old = auto_alloc_array_clear(machine, UINT32, state->m_spriteram.bytes() / 4); state->m_spriteram_old2 = auto_alloc_array_clear(machine, UINT32, state->m_spriteram.bytes() / 4); - state->m_text_tilemap = tilemap_create(machine, get_macrossp_text_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_scra_tilemap = tilemap_create(machine, get_macrossp_scra_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_scrb_tilemap = tilemap_create(machine, get_macrossp_scrb_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_scrc_tilemap = tilemap_create(machine, get_macrossp_scrc_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_text_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_scra_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scra_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_scrb_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scrb_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_scrc_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scrc_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); state->m_text_tilemap->set_transparent_pen(0); state->m_scra_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/madalien.c b/src/mame/video/madalien.c index 35389e58963..ca71a648f15 100644 --- a/src/mame/video/madalien.c +++ b/src/mame/video/madalien.c @@ -71,46 +71,43 @@ INLINE int scan_helper(int col, int row, int section) } -static TILEMAP_MAPPER( scan_mode0 ) +TILEMAP_MAPPER_MEMBER(madalien_state::scan_mode0) { return scan_helper(col, row, 0); } -static TILEMAP_MAPPER( scan_mode1 ) +TILEMAP_MAPPER_MEMBER(madalien_state::scan_mode1) { return scan_helper(col, row, 1); } -static TILEMAP_MAPPER( scan_mode2 ) +TILEMAP_MAPPER_MEMBER(madalien_state::scan_mode2) { return scan_helper(col, row, BIT(col, 4) ? 1 : 0); } -static TILEMAP_MAPPER( scan_mode3 ) +TILEMAP_MAPPER_MEMBER(madalien_state::scan_mode3) { return scan_helper(col, row, BIT(col, 4) ? 0 : 1); } -static TILE_GET_INFO( get_tile_info_BG_1 ) +TILE_GET_INFO_MEMBER(madalien_state::get_tile_info_BG_1) { - madalien_state *state = machine.driver_data<madalien_state>(); - UINT8 *map = state->memregion("user1")->base() + ((*state->m_video_flags & 0x08) << 6); + UINT8 *map = memregion("user1")->base() + ((*m_video_flags & 0x08) << 6); - SET_TILE_INFO(1, map[tile_index], BIT(*state->m_video_flags, 2) ? 2 : 0, 0); + SET_TILE_INFO_MEMBER(1, map[tile_index], BIT(*m_video_flags, 2) ? 2 : 0, 0); } -static TILE_GET_INFO( get_tile_info_BG_2 ) +TILE_GET_INFO_MEMBER(madalien_state::get_tile_info_BG_2) { - madalien_state *state = machine.driver_data<madalien_state>(); - UINT8 *map = state->memregion("user1")->base() + ((*state->m_video_flags & 0x08) << 6) + 0x80; + UINT8 *map = memregion("user1")->base() + ((*m_video_flags & 0x08) << 6) + 0x80; - SET_TILE_INFO(1, map[tile_index], BIT(*state->m_video_flags, 2) ? 2 : 0, 0); + SET_TILE_INFO_MEMBER(1, map[tile_index], BIT(*m_video_flags, 2) ? 2 : 0, 0); } -static TILE_GET_INFO( get_tile_info_FG ) +TILE_GET_INFO_MEMBER(madalien_state::get_tile_info_FG) { - madalien_state *state = machine.driver_data<madalien_state>(); - SET_TILE_INFO(0, state->m_videoram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(0, m_videoram[tile_index], 0, 0); } WRITE8_MEMBER(madalien_state::madalien_videoram_w) @@ -125,9 +122,12 @@ static VIDEO_START( madalien ) madalien_state *state = machine.driver_data<madalien_state>(); int i; - static const tilemap_mapper_func scan_functions[4] = + static const tilemap_mapper_delegate scan_functions[4] = { - scan_mode0, scan_mode1, scan_mode2, scan_mode3 + tilemap_mapper_delegate(FUNC(madalien_state::scan_mode0),state), + tilemap_mapper_delegate(FUNC(madalien_state::scan_mode1),state), + tilemap_mapper_delegate(FUNC(madalien_state::scan_mode2),state), + tilemap_mapper_delegate(FUNC(madalien_state::scan_mode3),state) }; static const int tilemap_cols[4] = @@ -135,18 +135,18 @@ static VIDEO_START( madalien ) 16, 16, 32, 32 }; - state->m_tilemap_fg = tilemap_create(machine, get_tile_info_FG, TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); + state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_FG),state), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); state->m_tilemap_fg->set_transparent_pen(0); state->m_tilemap_fg->set_scrolldx(0, 0x50); state->m_tilemap_fg->set_scrolldy(0, 0x20); for (i = 0; i < 4; i++) { - state->m_tilemap_edge1[i] = tilemap_create(machine, get_tile_info_BG_1, scan_functions[i], 16, 16, tilemap_cols[i], 8); + state->m_tilemap_edge1[i] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_1),state), scan_functions[i], 16, 16, tilemap_cols[i], 8); state->m_tilemap_edge1[i]->set_scrolldx(0, 0x50); state->m_tilemap_edge1[i]->set_scrolldy(0, 0x20); - state->m_tilemap_edge2[i] = tilemap_create(machine, get_tile_info_BG_2, scan_functions[i], 16, 16, tilemap_cols[i], 8); + state->m_tilemap_edge2[i] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_2),state), scan_functions[i], 16, 16, tilemap_cols[i], 8); state->m_tilemap_edge2[i]->set_scrolldx(0, 0x50); state->m_tilemap_edge2[i]->set_scrolldy(0, machine.primary_screen->height() - 256); } diff --git a/src/mame/video/mainsnk.c b/src/mame/video/mainsnk.c index d99b39e7515..db2d10a46f4 100644 --- a/src/mame/video/mainsnk.c +++ b/src/mame/video/mainsnk.c @@ -34,7 +34,7 @@ PALETTE_INIT( mainsnk ) } } -static TILEMAP_MAPPER( marvins_tx_scan_cols ) +TILEMAP_MAPPER_MEMBER(mainsnk_state::marvins_tx_scan_cols) { // tilemap is 36x28, the central part is from the first RAM page and the // extra 4 columns are from the second page @@ -45,25 +45,23 @@ static TILEMAP_MAPPER( marvins_tx_scan_cols ) return row + (col << 5); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(mainsnk_state::get_tx_tile_info) { - mainsnk_state *state = machine.driver_data<mainsnk_state>(); - int code = state->m_fgram[tile_index]; + int code = m_fgram[tile_index]; - SET_TILE_INFO(0, + SET_TILE_INFO_MEMBER(0, code, 0, tile_index & 0x400 ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mainsnk_state::get_bg_tile_info) { - mainsnk_state *state = machine.driver_data<mainsnk_state>(); - int code = (state->m_bgram[tile_index]); + int code = (m_bgram[tile_index]); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_bg_tile_offset + code, + m_bg_tile_offset + code, 0, 0); } @@ -73,8 +71,8 @@ VIDEO_START(mainsnk) { mainsnk_state *state = machine.driver_data<mainsnk_state>(); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mainsnk_state::get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(mainsnk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mainsnk_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_tx_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_scrolldy(8, 8); diff --git a/src/mame/video/mappy.c b/src/mame/video/mappy.c index df942a2a7ef..1045e89e2b9 100644 --- a/src/mame/video/mappy.c +++ b/src/mame/video/mappy.c @@ -235,7 +235,7 @@ PALETTE_INIT( phozon ) ***************************************************************************/ /* convert from 32x32 to 36x28 */ -static TILEMAP_MAPPER( superpac_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(mappy_state::superpac_tilemap_scan) { int offs; @@ -250,7 +250,7 @@ static TILEMAP_MAPPER( superpac_tilemap_scan ) } /* tilemap is a composition of a 32x60 scrolling portion and two 2x28 fixed portions on the sides */ -static TILEMAP_MAPPER( mappy_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(mappy_state::mappy_tilemap_scan) { int offs; @@ -271,44 +271,41 @@ static TILEMAP_MAPPER( mappy_tilemap_scan ) return offs; } -static TILE_GET_INFO( superpac_get_tile_info ) +TILE_GET_INFO_MEMBER(mappy_state::superpac_get_tile_info) { - mappy_state *state = machine.driver_data<mappy_state>(); - UINT8 attr = state->m_videoram[tile_index + 0x400]; + UINT8 attr = m_videoram[tile_index + 0x400]; tileinfo.category = (attr & 0x40) >> 6; tileinfo.group = attr & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index], + m_videoram[tile_index], attr & 0x3f, 0); } -static TILE_GET_INFO( phozon_get_tile_info ) +TILE_GET_INFO_MEMBER(mappy_state::phozon_get_tile_info) { - mappy_state *state = machine.driver_data<mappy_state>(); - UINT8 attr = state->m_videoram[tile_index + 0x400]; + UINT8 attr = m_videoram[tile_index + 0x400]; tileinfo.category = (attr & 0x40) >> 6; tileinfo.group = attr & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index] + ((attr & 0x80) << 1), + m_videoram[tile_index] + ((attr & 0x80) << 1), attr & 0x3f, 0); } -static TILE_GET_INFO( mappy_get_tile_info ) +TILE_GET_INFO_MEMBER(mappy_state::mappy_get_tile_info) { - mappy_state *state = machine.driver_data<mappy_state>(); - UINT8 attr = state->m_videoram[tile_index + 0x800]; + UINT8 attr = m_videoram[tile_index + 0x800]; tileinfo.category = (attr & 0x40) >> 6; tileinfo.group = attr & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index], + m_videoram[tile_index], attr & 0x3f, 0); } @@ -325,7 +322,7 @@ VIDEO_START( superpac ) { mappy_state *state = machine.driver_data<mappy_state>(); - state->m_bg_tilemap = tilemap_create(machine, superpac_get_tile_info,superpac_tilemap_scan,8,8,36,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mappy_state::superpac_get_tile_info),state),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),state),8,8,36,28); machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap); colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 31); @@ -335,7 +332,7 @@ VIDEO_START( phozon ) { mappy_state *state = machine.driver_data<mappy_state>(); - state->m_bg_tilemap = tilemap_create(machine, phozon_get_tile_info,superpac_tilemap_scan,8,8,36,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mappy_state::phozon_get_tile_info),state),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),state),8,8,36,28); colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 15); @@ -346,7 +343,7 @@ VIDEO_START( mappy ) { mappy_state *state = machine.driver_data<mappy_state>(); - state->m_bg_tilemap = tilemap_create(machine, mappy_get_tile_info,mappy_tilemap_scan,8,8,36,60); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mappy_state::mappy_get_tile_info),state),tilemap_mapper_delegate(FUNC(mappy_state::mappy_tilemap_scan),state),8,8,36,60); colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 31); state->m_bg_tilemap->set_scroll_cols(36); diff --git a/src/mame/video/marineb.c b/src/mame/video/marineb.c index 0601d791e6a..07b8c781b57 100644 --- a/src/mame/video/marineb.c +++ b/src/mame/video/marineb.c @@ -45,16 +45,15 @@ PALETTE_INIT( marineb ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(marineb_state::get_tile_info) { - marineb_state *state = machine.driver_data<marineb_state>(); - UINT8 code = state->m_videoram[tile_index]; - UINT8 col = state->m_colorram[tile_index]; + UINT8 code = m_videoram[tile_index]; + UINT8 col = m_colorram[tile_index]; - SET_TILE_INFO(0, + SET_TILE_INFO_MEMBER(0, code | ((col & 0xc0) << 2), - (col & 0x0f) | (state->m_palette_bank << 4), + (col & 0x0f) | (m_palette_bank << 4), TILE_FLIPXY((col >> 4) & 0x03)); } @@ -70,7 +69,7 @@ VIDEO_START( marineb ) { marineb_state *state = machine.driver_data<marineb_state>(); - 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(marineb_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); state->save_item(NAME(state->m_palette_bank)); diff --git a/src/mame/video/mario.c b/src/mame/video/mario.c index cfd5129614f..d450d3fe5c9 100644 --- a/src/mame/video/mario.c +++ b/src/mame/video/mario.c @@ -125,22 +125,21 @@ WRITE8_MEMBER(mario_state::mario_flip_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mario_state::get_bg_tile_info) { - mario_state *state = machine.driver_data<mario_state>(); - int code = state->m_videoram[tile_index] + 256 * state->m_gfx_bank; + int code = m_videoram[tile_index] + 256 * m_gfx_bank; int color; - color = ((state->m_videoram[tile_index] >> 2) & 0x38) | 0x40 | (state->m_palette_bank<<7) | (state->m_monitor<<8); + color = ((m_videoram[tile_index] >> 2) & 0x38) | 0x40 | (m_palette_bank<<7) | (m_monitor<<8); color = color >> 2; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( mario ) { mario_state *state = machine.driver_data<mario_state>(); - 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(mario_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_gfx_bank = 0; diff --git a/src/mame/video/markham.c b/src/mame/video/markham.c index 795604dce98..78c73dbb0fe 100644 --- a/src/mame/video/markham.c +++ b/src/mame/video/markham.c @@ -55,20 +55,19 @@ WRITE8_MEMBER(markham_state::markham_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(markham_state::get_bg_tile_info) { - markham_state *state = machine.driver_data<markham_state>(); - int attr = state->m_videoram[tile_index * 2]; - int code = state->m_videoram[(tile_index * 2) + 1] + ((attr & 0x60) << 3); + int attr = m_videoram[tile_index * 2]; + int code = m_videoram[(tile_index * 2) + 1] + ((attr & 0x60) << 3); int color = (attr & 0x1f) | ((attr & 0x80) >> 2); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( markham ) { markham_state *state = machine.driver_data<markham_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(markham_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(32); } diff --git a/src/mame/video/mcatadv.c b/src/mame/video/mcatadv.c index 4af6dac3cea..9d64e773eb3 100644 --- a/src/mame/video/mcatadv.c +++ b/src/mame/video/mcatadv.c @@ -13,14 +13,13 @@ ToDo: Fix Sprites & Rowscroll/Select for Cocktail #include "emu.h" #include "includes/mcatadv.h" -static TILE_GET_INFO( get_mcatadv_tile_info1 ) +TILE_GET_INFO_MEMBER(mcatadv_state::get_mcatadv_tile_info1) { - mcatadv_state *state = machine.driver_data<mcatadv_state>(); - int tileno = state->m_videoram1[tile_index * 2 + 1]; - int colour = (state->m_videoram1[tile_index * 2] & 0x3f00) >> 8; - int pri = (state->m_videoram1[tile_index * 2] & 0xc000) >> 14; + int tileno = m_videoram1[tile_index * 2 + 1]; + int colour = (m_videoram1[tile_index * 2] & 0x3f00) >> 8; + int pri = (m_videoram1[tile_index * 2] & 0xc000) >> 14; - SET_TILE_INFO(0,tileno,colour + state->m_palette_bank1 * 0x40, 0); + SET_TILE_INFO_MEMBER(0,tileno,colour + m_palette_bank1 * 0x40, 0); tileinfo.category = pri; } @@ -31,14 +30,13 @@ WRITE16_MEMBER(mcatadv_state::mcatadv_videoram1_w) m_tilemap1->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_mcatadv_tile_info2 ) +TILE_GET_INFO_MEMBER(mcatadv_state::get_mcatadv_tile_info2) { - mcatadv_state *state = machine.driver_data<mcatadv_state>(); - int tileno = state->m_videoram2[tile_index * 2 + 1]; - int colour = (state->m_videoram2[tile_index * 2] & 0x3f00) >> 8; - int pri = (state->m_videoram2[tile_index * 2] & 0xc000) >> 14; + int tileno = m_videoram2[tile_index * 2 + 1]; + int colour = (m_videoram2[tile_index * 2] & 0x3f00) >> 8; + int pri = (m_videoram2[tile_index * 2] & 0xc000) >> 14; - SET_TILE_INFO(1, tileno, colour + state->m_palette_bank2 * 0x40, 0); + SET_TILE_INFO_MEMBER(1, tileno, colour + m_palette_bank2 * 0x40, 0); tileinfo.category = pri; } @@ -253,10 +251,10 @@ SCREEN_UPDATE_IND16( mcatadv ) VIDEO_START( mcatadv ) { mcatadv_state *state = machine.driver_data<mcatadv_state>(); - state->m_tilemap1 = tilemap_create(machine, get_mcatadv_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcatadv_state::get_mcatadv_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tilemap1->set_transparent_pen(0); - state->m_tilemap2 = tilemap_create(machine, get_mcatadv_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcatadv_state::get_mcatadv_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tilemap2->set_transparent_pen(0); state->m_spriteram_old = auto_alloc_array_clear(machine, UINT16, state->m_spriteram.bytes() / 2); diff --git a/src/mame/video/mcr.c b/src/mame/video/mcr.c index ff482434ca2..22eacc0d306 100644 --- a/src/mame/video/mcr.c +++ b/src/mame/video/mcr.c @@ -26,11 +26,10 @@ static tilemap_t *bg_tilemap; Byte 0: pppppppp = picture index */ -static TILE_GET_INFO( mcr_90009_get_tile_info ) +TILE_GET_INFO_MEMBER(mcr_state::mcr_90009_get_tile_info) { - mcr_state *state = machine.driver_data<mcr_state>(); - UINT8 *videoram = state->m_videoram; - SET_TILE_INFO(0, videoram[tile_index], 0, 0); + UINT8 *videoram = m_videoram; + SET_TILE_INFO_MEMBER(0, videoram[tile_index], 0, 0); /* sprite color base is constant 0x10 */ tileinfo.category = 1; @@ -50,14 +49,13 @@ static TILE_GET_INFO( mcr_90009_get_tile_info ) ------x- = X flip -------p = picture index (high 1 bit) */ -static TILE_GET_INFO( mcr_90010_get_tile_info ) +TILE_GET_INFO_MEMBER(mcr_state::mcr_90010_get_tile_info) { - mcr_state *state = machine.driver_data<mcr_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index * 2] | (videoram[tile_index * 2 + 1] << 8); int code = data & 0x1ff; int color = (data >> 11) & 3; - SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 9) & 3)); + SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 9) & 3)); /* sprite color base comes from the top 2 bits */ tileinfo.category = (data >> 14) & 3; @@ -77,14 +75,13 @@ static TILE_GET_INFO( mcr_90010_get_tile_info ) -----x-- = X flip ------pp = picture index (high 2 bits) */ -static TILE_GET_INFO( mcr_91490_get_tile_info ) +TILE_GET_INFO_MEMBER(mcr_state::mcr_91490_get_tile_info) { - mcr_state *state = machine.driver_data<mcr_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index * 2] | (videoram[tile_index * 2 + 1] << 8); int code = data & 0x3ff; int color = (data >> 12) & 3; - SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 10) & 3)); + SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 10) & 3)); /* sprite color base might come from the top 2 bits */ tileinfo.category = (data >> 14) & 3; @@ -100,23 +97,24 @@ static TILE_GET_INFO( mcr_91490_get_tile_info ) VIDEO_START( mcr ) { + mcr_state *state = machine.driver_data<mcr_state>(); /* the tilemap callback is based on the CPU board */ switch (mcr_cpu_board) { case 90009: - bg_tilemap = tilemap_create(machine, mcr_90009_get_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,30); + bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr_state::mcr_90009_get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); break; case 90010: - bg_tilemap = tilemap_create(machine, mcr_90010_get_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,30); + bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr_state::mcr_90010_get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); break; case 91475: - bg_tilemap = tilemap_create(machine, mcr_90010_get_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,30); + bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr_state::mcr_90010_get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); break; case 91490: - bg_tilemap = tilemap_create(machine, mcr_91490_get_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,30); + bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr_state::mcr_91490_get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); break; default: diff --git a/src/mame/video/mcr3.c b/src/mame/video/mcr3.c index 53d9a38c8c3..f739e1f286c 100644 --- a/src/mame/video/mcr3.c +++ b/src/mame/video/mcr3.c @@ -17,50 +17,46 @@ *************************************/ #ifdef UNUSED_FUNCTION -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mcr3_state::get_bg_tile_info) { - mcr3_state *state = machine.driver_data<mcr3_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index * 2] | (videoram[tile_index * 2 + 1] << 8); int code = (data & 0x3ff) | ((data >> 4) & 0x400); int color = (data >> 12) & 3; - SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 10) & 3)); + SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 10) & 3)); } #endif -static TILE_GET_INFO( mcrmono_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mcr3_state::mcrmono_get_bg_tile_info) { - mcr3_state *state = machine.driver_data<mcr3_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index * 2] | (videoram[tile_index * 2 + 1] << 8); int code = (data & 0x3ff) | ((data >> 4) & 0x400); int color = ((data >> 12) & 3) ^ 3; - SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 10) & 3)); + SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 10) & 3)); } -static TILEMAP_MAPPER( spyhunt_bg_scan ) +TILEMAP_MAPPER_MEMBER(mcr3_state::spyhunt_bg_scan) { /* logical (col,row) -> memory offset */ return (row & 0x0f) | ((col & 0x3f) << 4) | ((row & 0x10) << 6); } -static TILE_GET_INFO( spyhunt_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mcr3_state::spyhunt_get_bg_tile_info) { - mcr3_state *state = machine.driver_data<mcr3_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int data = videoram[tile_index]; int code = (data & 0x3f) | ((data >> 1) & 0x40); - SET_TILE_INFO(0, code, 0, (data & 0x40) ? TILE_FLIPY : 0); + SET_TILE_INFO_MEMBER(0, code, 0, (data & 0x40) ? TILE_FLIPY : 0); } -static TILE_GET_INFO( spyhunt_get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(mcr3_state::spyhunt_get_alpha_tile_info) { - mcr3_state *state = machine.driver_data<mcr3_state>(); - SET_TILE_INFO(2, state->m_spyhunt_alpharam[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(2, m_spyhunt_alpharam[tile_index], 0, 0); } @@ -93,7 +89,7 @@ VIDEO_START( mcr3 ) { mcr3_state *state = machine.driver_data<mcr3_state>(); /* initialize the background tilemap */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,30); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr3_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); } #endif @@ -102,7 +98,7 @@ VIDEO_START( mcrmono ) { mcr3_state *state = machine.driver_data<mcr3_state>(); /* initialize the background tilemap */ - state->m_bg_tilemap = tilemap_create(machine, mcrmono_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,30); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr3_state::mcrmono_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); } @@ -110,10 +106,10 @@ VIDEO_START( spyhunt ) { mcr3_state *state = machine.driver_data<mcr3_state>(); /* initialize the background tilemap */ - state->m_bg_tilemap = tilemap_create(machine, spyhunt_get_bg_tile_info, spyhunt_bg_scan, 64,32, 64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr3_state::spyhunt_get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(mcr3_state::spyhunt_bg_scan),state), 64,32, 64,32); /* initialize the text tilemap */ - state->m_alpha_tilemap = tilemap_create(machine, spyhunt_get_alpha_tile_info, TILEMAP_SCAN_COLS, 16,16, 32,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr3_state::spyhunt_get_alpha_tile_info),state), TILEMAP_SCAN_COLS, 16,16, 32,32); state->m_alpha_tilemap->set_transparent_pen(0); state->m_alpha_tilemap->set_scrollx(0, 16); diff --git a/src/mame/video/mcr68.c b/src/mame/video/mcr68.c index 9f6a32c42e8..871f54c6175 100644 --- a/src/mame/video/mcr68.c +++ b/src/mame/video/mcr68.c @@ -18,36 +18,33 @@ * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mcr68_state::get_bg_tile_info) { - mcr68_state *state = machine.driver_data<mcr68_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int data = LOW_BYTE(videoram[tile_index * 2]) | (LOW_BYTE(videoram[tile_index * 2 + 1]) << 8); int code = (data & 0x3ff) | ((data >> 4) & 0xc00); int color = (~data >> 12) & 3; - SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 10) & 3)); - if (machine.gfx[0]->elements() < 0x1000) + SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 10) & 3)); + if (machine().gfx[0]->elements() < 0x1000) tileinfo.category = (data >> 15) & 1; } -static TILE_GET_INFO( zwackery_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mcr68_state::zwackery_get_bg_tile_info) { - mcr68_state *state = machine.driver_data<mcr68_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int data = videoram[tile_index]; int color = (data >> 13) & 7; - SET_TILE_INFO(0, data & 0x3ff, color, TILE_FLIPYX((data >> 11) & 3)); + SET_TILE_INFO_MEMBER(0, data & 0x3ff, color, TILE_FLIPYX((data >> 11) & 3)); } -static TILE_GET_INFO( zwackery_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(mcr68_state::zwackery_get_fg_tile_info) { - mcr68_state *state = machine.driver_data<mcr68_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int data = videoram[tile_index]; int color = (data >> 13) & 7; - SET_TILE_INFO(2, data & 0x3ff, color, TILE_FLIPYX((data >> 11) & 3)); + SET_TILE_INFO_MEMBER(2, data & 0x3ff, color, TILE_FLIPYX((data >> 11) & 3)); tileinfo.category = (color != 0); } @@ -63,7 +60,7 @@ VIDEO_START( mcr68 ) { mcr68_state *state = machine.driver_data<mcr68_state>(); /* initialize the background tilemap */ - 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(mcr68_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32); state->m_bg_tilemap->set_transparent_pen(0); } @@ -79,10 +76,10 @@ VIDEO_START( zwackery ) int code, y, x; /* initialize the background tilemap */ - state->m_bg_tilemap = tilemap_create(machine, zwackery_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr68_state::zwackery_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32); /* initialize the foreground tilemap */ - state->m_fg_tilemap = tilemap_create(machine, zwackery_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr68_state::zwackery_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32); state->m_fg_tilemap->set_transparent_pen(0); /* allocate memory for the assembled gfx data */ diff --git a/src/mame/video/meadows.c b/src/mame/video/meadows.c index 605ba8b1e9d..a877184199f 100644 --- a/src/mame/video/meadows.c +++ b/src/mame/video/meadows.c @@ -18,11 +18,10 @@ * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(meadows_state::get_tile_info) { - meadows_state *state = machine.driver_data<meadows_state>(); - UINT8 *videoram = state->m_videoram; - SET_TILE_INFO(0, videoram[tile_index] & 0x7f, 0, 0); + UINT8 *videoram = m_videoram; + SET_TILE_INFO_MEMBER(0, videoram[tile_index] & 0x7f, 0, 0); } @@ -36,7 +35,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( meadows ) { meadows_state *state = machine.driver_data<meadows_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,30); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(meadows_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,30); } diff --git a/src/mame/video/megasys1.c b/src/mame/video/megasys1.c index 07c64deee91..4a1593e0308 100644 --- a/src/mame/video/megasys1.c +++ b/src/mame/video/megasys1.c @@ -335,34 +335,32 @@ WRITE16_MEMBER(megasys1_state::megasys1_scrollram_2_w){ scrollram_w(&space, offs 3 2 x 16 2 x 4 */ -static TILEMAP_MAPPER( megasys1_scan_8x8 ) +TILEMAP_MAPPER_MEMBER(megasys1_state::megasys1_scan_8x8) { return (col * TILES_PER_PAGE_Y) + (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE * (num_cols / TILES_PER_PAGE_X) + (row % TILES_PER_PAGE_Y); } -static TILEMAP_MAPPER( megasys1_scan_16x16 ) +TILEMAP_MAPPER_MEMBER(megasys1_state::megasys1_scan_16x16) { return ( ((col / 2) * (TILES_PER_PAGE_Y / 2)) + ((row / 2) / (TILES_PER_PAGE_Y / 2)) * (TILES_PER_PAGE / 4) * (num_cols / TILES_PER_PAGE_X) + ((row / 2) % (TILES_PER_PAGE_Y / 2)) )*4 + (row&1) + (col&1)*2; } -static TILE_GET_INFO( megasys1_get_scroll_tile_info_8x8 ) +TILE_GET_INFO_MEMBER(megasys1_state::megasys1_get_scroll_tile_info_8x8) { - megasys1_state *state = machine.driver_data<megasys1_state>(); int tmap = (FPTR)param; - UINT16 code = state->m_scrollram[tmap][tile_index]; - SET_TILE_INFO(tmap, (code & 0xfff) * state->m_8x8_scroll_factor[tmap], code >> (16 - state->m_bits_per_color_code), 0); + UINT16 code = m_scrollram[tmap][tile_index]; + SET_TILE_INFO_MEMBER(tmap, (code & 0xfff) * m_8x8_scroll_factor[tmap], code >> (16 - m_bits_per_color_code), 0); } -static TILE_GET_INFO( megasys1_get_scroll_tile_info_16x16 ) +TILE_GET_INFO_MEMBER(megasys1_state::megasys1_get_scroll_tile_info_16x16) { - megasys1_state *state = machine.driver_data<megasys1_state>(); int tmap = (FPTR)param; - UINT16 code = state->m_scrollram[tmap][tile_index/4]; - SET_TILE_INFO(tmap, (code & 0xfff) * state->m_16x16_scroll_factor[tmap] + (tile_index & 3), code >> (16 - state->m_bits_per_color_code), 0); + UINT16 code = m_scrollram[tmap][tile_index/4]; + SET_TILE_INFO_MEMBER(tmap, (code & 0xfff) * m_16x16_scroll_factor[tmap] + (tile_index & 3), code >> (16 - m_bits_per_color_code), 0); } static void create_tilemaps(running_machine &machine) @@ -373,23 +371,23 @@ static void create_tilemaps(running_machine &machine) for (layer = 0; layer < 3; layer++) { /* 16x16 tilemaps */ - state->m_tilemap[layer][0][0] = tilemap_create(machine, megasys1_get_scroll_tile_info_16x16, megasys1_scan_16x16, + state->m_tilemap[layer][0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_16x16),state), 8,8, TILES_PER_PAGE_X * 16, TILES_PER_PAGE_Y * 2); - state->m_tilemap[layer][0][1] = tilemap_create(machine, megasys1_get_scroll_tile_info_16x16, megasys1_scan_16x16, + state->m_tilemap[layer][0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_16x16),state), 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 4); - state->m_tilemap[layer][0][2] = tilemap_create(machine, megasys1_get_scroll_tile_info_16x16, megasys1_scan_16x16, + state->m_tilemap[layer][0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_16x16),state), 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 8); - state->m_tilemap[layer][0][3] = tilemap_create(machine, megasys1_get_scroll_tile_info_16x16, megasys1_scan_16x16, + state->m_tilemap[layer][0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_16x16),state), 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 16); /* 8x8 tilemaps */ - state->m_tilemap[layer][1][0] = tilemap_create(machine, megasys1_get_scroll_tile_info_8x8, megasys1_scan_8x8, + state->m_tilemap[layer][1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_8x8),state), 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 1); - state->m_tilemap[layer][1][1] = tilemap_create(machine, megasys1_get_scroll_tile_info_8x8, megasys1_scan_8x8, + state->m_tilemap[layer][1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_8x8),state), 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2); - state->m_tilemap[layer][1][2] = tilemap_create(machine, megasys1_get_scroll_tile_info_8x8, megasys1_scan_8x8, + state->m_tilemap[layer][1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_8x8),state), 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2); - state->m_tilemap[layer][1][3] = tilemap_create(machine, megasys1_get_scroll_tile_info_8x8, megasys1_scan_8x8, + state->m_tilemap[layer][1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_8x8),state), 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 4); /* set user data and transparency */ diff --git a/src/mame/video/mermaid.c b/src/mame/video/mermaid.c index bdabe16d927..d800216ccbc 100644 --- a/src/mame/video/mermaid.c +++ b/src/mame/video/mermaid.c @@ -143,38 +143,36 @@ READ8_MEMBER(mermaid_state::mermaid_collision_r) return collision; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mermaid_state::get_bg_tile_info) { - mermaid_state *state = machine.driver_data<mermaid_state>(); - int code = state->m_videoram2[tile_index]; + int code = m_videoram2[tile_index]; int sx = tile_index % 32; int color = (sx >= 26) ? 0 : 1; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(mermaid_state::get_fg_tile_info) { - mermaid_state *state = machine.driver_data<mermaid_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x30) << 4); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x30) << 4); int color = attr & 0x0f; int flags = TILE_FLIPYX((attr & 0xc0) >> 6); - code |= state->m_rougien_gfxbank1 * 0x2800; - code |= state->m_rougien_gfxbank2 * 0x2400; + code |= m_rougien_gfxbank1 * 0x2800; + code |= m_rougien_gfxbank2 * 0x2400; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( mermaid ) { mermaid_state *state = machine.driver_data<mermaid_state>(); - 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(mermaid_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mermaid_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_scroll_cols(32); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/metlclsh.c b/src/mame/video/metlclsh.c index 450f3f2d1d5..1d39ea2004a 100644 --- a/src/mame/video/metlclsh.c +++ b/src/mame/video/metlclsh.c @@ -64,15 +64,14 @@ WRITE8_MEMBER(metlclsh_state::metlclsh_gfxbank_w) ***************************************************************************/ -static TILEMAP_MAPPER( metlclsh_bgtilemap_scan ) +TILEMAP_MAPPER_MEMBER(metlclsh_state::metlclsh_bgtilemap_scan) { return (row & 7) + ((row & ~7) << 4) + ((col & 0xf) << 3) + ((col & ~0xf) << 4); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(metlclsh_state::get_bg_tile_info) { - metlclsh_state *state = machine.driver_data<metlclsh_state>(); - SET_TILE_INFO(1, state->m_bgram[tile_index] + (state->m_gfxbank << 7), 0, 0); + SET_TILE_INFO_MEMBER(1, m_bgram[tile_index] + (m_gfxbank << 7), 0, 0); } WRITE8_MEMBER(metlclsh_state::metlclsh_bgram_w) @@ -112,12 +111,11 @@ WRITE8_MEMBER(metlclsh_state::metlclsh_bgram_w) ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(metlclsh_state::get_fg_tile_info) { - metlclsh_state *state = machine.driver_data<metlclsh_state>(); - UINT8 code = state->m_fgram[tile_index + 0x000]; - UINT8 attr = state->m_fgram[tile_index + 0x400]; - SET_TILE_INFO(2, code + ((attr & 0x03) << 8), (attr >> 5) & 3, 0); + UINT8 code = m_fgram[tile_index + 0x000]; + UINT8 attr = m_fgram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER(2, code + ((attr & 0x03) << 8), (attr >> 5) & 3, 0); tileinfo.category = ((attr & 0x80) ? 1 : 2); } @@ -140,8 +138,8 @@ VIDEO_START( metlclsh ) state->m_otherram = auto_alloc_array(machine, UINT8, 0x800); // banked ram - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, metlclsh_bgtilemap_scan, 16, 16, 32, 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(metlclsh_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(metlclsh_state::metlclsh_bgtilemap_scan),state), 16, 16, 32, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(metlclsh_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/metro.c b/src/mame/video/metro.c index a53dff022a9..61b8d79e061 100644 --- a/src/mame/video/metro.c +++ b/src/mame/video/metro.c @@ -55,24 +55,22 @@ Note: if MAME_DEBUG is defined, pressing Z with: #include "includes/metro.h" #include "video/konicdev.h" -static TILE_GET_INFO( metro_k053936_get_tile_info ) +TILE_GET_INFO_MEMBER(metro_state::metro_k053936_get_tile_info) { - metro_state *state = machine.driver_data<metro_state>(); - int code = state->m_k053936_ram[tile_index]; + int code = m_k053936_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code & 0x7fff, 0x1e, 0); } -static TILE_GET_INFO( metro_k053936_gstrik2_get_tile_info ) +TILE_GET_INFO_MEMBER(metro_state::metro_k053936_gstrik2_get_tile_info) { - metro_state *state = machine.driver_data<metro_state>(); - int code = state->m_k053936_ram[tile_index]; + int code = m_k053936_ram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, (code & 0x7fff)>>2, 0x1e, @@ -85,7 +83,7 @@ WRITE16_MEMBER(metro_state::metro_k053936_w) m_k053936_tilemap->mark_tile_dirty(offset); } -static TILEMAP_MAPPER( tilemap_scan_gstrik2 ) +TILEMAP_MAPPER_MEMBER(metro_state::tilemap_scan_gstrik2) { /* logical (col,row) -> memory offset */ int val; @@ -358,7 +356,7 @@ VIDEO_START( blzntrnd ) state->m_has_zoom = 1; - state->m_k053936_tilemap = tilemap_create(machine, metro_k053936_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 512); + state->m_k053936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(metro_state::metro_k053936_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 512); state->m_bg_tilemap_scrolldx[0] = 8; state->m_bg_tilemap_scrolldx[1] = 8; @@ -373,7 +371,7 @@ VIDEO_START( gstrik2 ) state->m_has_zoom = 1; - state->m_k053936_tilemap = tilemap_create(machine, metro_k053936_gstrik2_get_tile_info, tilemap_scan_gstrik2, 16, 16, 128, 256); + state->m_k053936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(metro_state::metro_k053936_gstrik2_get_tile_info),state), tilemap_mapper_delegate(FUNC(metro_state::tilemap_scan_gstrik2),state), 16, 16, 128, 256); state->m_bg_tilemap_scrolldx[0] = 8; state->m_bg_tilemap_scrolldx[1] = 0; diff --git a/src/mame/video/mikie.c b/src/mame/video/mikie.c index d2faeac4c97..660c537a46a 100644 --- a/src/mame/video/mikie.c +++ b/src/mame/video/mikie.c @@ -121,18 +121,17 @@ WRITE8_MEMBER(mikie_state::mikie_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mikie_state::get_bg_tile_info) { - mikie_state *state = machine.driver_data<mikie_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x20) << 3); - int color = (state->m_colorram[tile_index] & 0x0f) + 16 * state->m_palettebank; - int flags = ((state->m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); - if (state->m_colorram[tile_index] & 0x10) + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x20) << 3); + int color = (m_colorram[tile_index] & 0x0f) + 16 * m_palettebank; + int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); + if (m_colorram[tile_index] & 0x10) tileinfo.category = 1; else tileinfo.category = 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } @@ -140,7 +139,7 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( mikie ) { mikie_state *state = machine.driver_data<mikie_state>(); - 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(mikie_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/video/mitchell.c b/src/mame/video/mitchell.c index fccf99c955e..40455eebef2 100644 --- a/src/mame/video/mitchell.c +++ b/src/mame/video/mitchell.c @@ -14,12 +14,11 @@ ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(mitchell_state::get_tile_info) { - mitchell_state *state = machine.driver_data<mitchell_state>(); - UINT8 attr = state->m_colorram[tile_index]; - int code = state->m_videoram[2 * tile_index] + (state->m_videoram[2 * tile_index + 1] << 8); - SET_TILE_INFO( + UINT8 attr = m_colorram[tile_index]; + int code = m_videoram[2 * tile_index] + (m_videoram[2 * tile_index + 1] << 8); + SET_TILE_INFO_MEMBER( 0, code, attr & 0x7f, @@ -38,7 +37,7 @@ VIDEO_START( pang ) { mitchell_state *state = machine.driver_data<mitchell_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mitchell_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_transparent_pen(15); /* OBJ RAM */ diff --git a/src/mame/video/mjkjidai.c b/src/mame/video/mjkjidai.c index 5a4070afa56..9dee144db4b 100644 --- a/src/mame/video/mjkjidai.c +++ b/src/mame/video/mjkjidai.c @@ -8,14 +8,13 @@ ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(mjkjidai_state::get_tile_info) { - mjkjidai_state *state = machine.driver_data<mjkjidai_state>(); - int attr = state->m_videoram[tile_index + 0x800]; - int code = state->m_videoram[tile_index] + ((attr & 0x1f) << 8); - int color = state->m_videoram[tile_index + 0x1000]; - SET_TILE_INFO(0,code,color >> 3,0); + int attr = m_videoram[tile_index + 0x800]; + int code = m_videoram[tile_index] + ((attr & 0x1f) << 8); + int color = m_videoram[tile_index + 0x1000]; + SET_TILE_INFO_MEMBER(0,code,color >> 3,0); } @@ -29,7 +28,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( mjkjidai ) { mjkjidai_state *state = machine.driver_data<mjkjidai_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mjkjidai_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); } diff --git a/src/mame/video/mosaic.c b/src/mame/video/mosaic.c index 80131672d92..0be63e44352 100644 --- a/src/mame/video/mosaic.c +++ b/src/mame/video/mosaic.c @@ -15,24 +15,22 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(mosaic_state::get_fg_tile_info) { - mosaic_state *state = machine.driver_data<mosaic_state>(); tile_index *= 2; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_fgvideoram[tile_index] + (state->m_fgvideoram[tile_index+1] << 8), + m_fgvideoram[tile_index] + (m_fgvideoram[tile_index+1] << 8), 0, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mosaic_state::get_bg_tile_info) { - mosaic_state *state = machine.driver_data<mosaic_state>(); tile_index *= 2; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - state->m_bgvideoram[tile_index] + (state->m_bgvideoram[tile_index+1] << 8), + m_bgvideoram[tile_index] + (m_bgvideoram[tile_index+1] << 8), 0, 0); } @@ -49,8 +47,8 @@ VIDEO_START( mosaic ) { mosaic_state *state = machine.driver_data<mosaic_state>(); - 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(mosaic_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(mosaic_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(0xff); } diff --git a/src/mame/video/mrdo.c b/src/mame/video/mrdo.c index 760daef1776..697d78749f7 100644 --- a/src/mame/video/mrdo.c +++ b/src/mame/video/mrdo.c @@ -134,24 +134,22 @@ PALETTE_INIT( mrdo ) ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mrdo_state::get_bg_tile_info) { - mrdo_state *state = machine.driver_data<mrdo_state>(); - UINT8 attr = state->m_bgvideoram[tile_index]; - SET_TILE_INFO( + UINT8 attr = m_bgvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 1, - state->m_bgvideoram[tile_index + 0x400] + ((attr & 0x80) << 1), + m_bgvideoram[tile_index + 0x400] + ((attr & 0x80) << 1), attr & 0x3f, (attr & 0x40) ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(mrdo_state::get_fg_tile_info) { - mrdo_state *state = machine.driver_data<mrdo_state>(); - UINT8 attr = state->m_fgvideoram[tile_index]; - SET_TILE_INFO( + UINT8 attr = m_fgvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, - state->m_fgvideoram[tile_index+0x400] + ((attr & 0x80) << 1), + m_fgvideoram[tile_index+0x400] + ((attr & 0x80) << 1), attr & 0x3f, (attr & 0x40) ? TILE_FORCE_LAYER0 : 0); } @@ -168,8 +166,8 @@ VIDEO_START( mrdo ) { mrdo_state *state = machine.driver_data<mrdo_state>(); - 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(mrdo_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(mrdo_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_bg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/mrjong.c b/src/mame/video/mrjong.c index 9a381d194db..492a5ed624c 100644 --- a/src/mame/video/mrjong.c +++ b/src/mame/video/mrjong.c @@ -90,20 +90,19 @@ WRITE8_MEMBER(mrjong_state::mrjong_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mrjong_state::get_bg_tile_info) { - mrjong_state *state = machine.driver_data<mrjong_state>(); - int code = state->m_videoram[tile_index] | ((state->m_colorram[tile_index] & 0x20) << 3); - int color = state->m_colorram[tile_index] & 0x1f; - int flags = ((state->m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); + int code = m_videoram[tile_index] | ((m_colorram[tile_index] & 0x20) << 3); + int color = m_colorram[tile_index] & 0x1f; + int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( mrjong ) { mrjong_state *state = machine.driver_data<mrjong_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mrjong_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32); } /* diff --git a/src/mame/video/ms32.c b/src/mame/video/ms32.c index e3baa5e11ee..de19af46efc 100644 --- a/src/mame/video/ms32.c +++ b/src/mame/video/ms32.c @@ -20,48 +20,44 @@ priority should be given to /********** Tilemaps **********/ -static TILE_GET_INFO( get_ms32_tx_tile_info ) +TILE_GET_INFO_MEMBER(ms32_state::get_ms32_tx_tile_info) { - ms32_state *state = machine.driver_data<ms32_state>(); int tileno, colour; - tileno = state->m_txram_16[tile_index *2] & 0xffff; - colour = state->m_txram_16[tile_index *2+1] & 0x000f; + tileno = m_txram_16[tile_index *2] & 0xffff; + colour = m_txram_16[tile_index *2+1] & 0x000f; - SET_TILE_INFO(3,tileno,colour,0); + SET_TILE_INFO_MEMBER(3,tileno,colour,0); } -static TILE_GET_INFO( get_ms32_roz_tile_info ) +TILE_GET_INFO_MEMBER(ms32_state::get_ms32_roz_tile_info) { - ms32_state *state = machine.driver_data<ms32_state>(); int tileno,colour; - tileno = state->m_rozram_16[tile_index *2] & 0xffff; - colour = state->m_rozram_16[tile_index *2+1] & 0x000f; + tileno = m_rozram_16[tile_index *2] & 0xffff; + colour = m_rozram_16[tile_index *2+1] & 0x000f; - SET_TILE_INFO(1,tileno,colour,0); + SET_TILE_INFO_MEMBER(1,tileno,colour,0); } -static TILE_GET_INFO( get_ms32_bg_tile_info ) +TILE_GET_INFO_MEMBER(ms32_state::get_ms32_bg_tile_info) { - ms32_state *state = machine.driver_data<ms32_state>(); int tileno,colour; - tileno = state->m_bgram_16[tile_index *2] & 0xffff; - colour = state->m_bgram_16[tile_index *2+1] & 0x000f; + tileno = m_bgram_16[tile_index *2] & 0xffff; + colour = m_bgram_16[tile_index *2+1] & 0x000f; - SET_TILE_INFO(2,tileno,colour,0); + SET_TILE_INFO_MEMBER(2,tileno,colour,0); } -static TILE_GET_INFO( get_ms32_extra_tile_info ) +TILE_GET_INFO_MEMBER(ms32_state::get_ms32_extra_tile_info) { - ms32_state *state = machine.driver_data<ms32_state>(); int tileno,colour; - tileno = state->m_f1superb_extraram_16[tile_index *2] & 0xffff; - colour = state->m_f1superb_extraram_16[tile_index *2+1] & 0x000f; + tileno = m_f1superb_extraram_16[tile_index *2] & 0xffff; + colour = m_f1superb_extraram_16[tile_index *2+1] & 0x000f; - SET_TILE_INFO(4,tileno,colour+0x50,0); + SET_TILE_INFO_MEMBER(4,tileno,colour+0x50,0); } @@ -78,10 +74,10 @@ VIDEO_START( ms32 ) state->m_bgram_16 = auto_alloc_array_clear(machine, UINT16, 0x4000); state->m_txram_16 = auto_alloc_array_clear(machine, UINT16, 0x4000); - state->m_tx_tilemap = tilemap_create(machine, get_ms32_tx_tile_info,TILEMAP_SCAN_ROWS,8, 8,64,64); - state->m_bg_tilemap = tilemap_create(machine, get_ms32_bg_tile_info,TILEMAP_SCAN_ROWS,16,16,64,64); - state->m_bg_tilemap_alt = tilemap_create(machine, get_ms32_bg_tile_info,TILEMAP_SCAN_ROWS,16,16,256,16); // alt layout, controller by register? - state->m_roz_tilemap = tilemap_create(machine, get_ms32_roz_tile_info,TILEMAP_SCAN_ROWS,16,16,128,128); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_tx_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,64,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,64); + state->m_bg_tilemap_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,256,16); // alt layout, controller by register? + state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_roz_tile_info),state),TILEMAP_SCAN_ROWS,16,16,128,128); /* set up tile layers */ @@ -119,7 +115,7 @@ VIDEO_START( f1superb ) VIDEO_START_CALL( ms32 ); state->m_f1superb_extraram_16 = auto_alloc_array_clear(machine, UINT16, 0x10000); - state->m_extra_tilemap = tilemap_create(machine, get_ms32_extra_tile_info,TILEMAP_SCAN_ROWS,2048,1,1,0x400); + state->m_extra_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_extra_tile_info),state),TILEMAP_SCAN_ROWS,2048,1,1,0x400); } diff --git a/src/mame/video/msisaac.c b/src/mame/video/msisaac.c index 02121beda4f..44adf40b55d 100644 --- a/src/mame/video/msisaac.c +++ b/src/mame/video/msisaac.c @@ -12,35 +12,32 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(msisaac_state::get_fg_tile_info) { - msisaac_state *state = machine.driver_data<msisaac_state>(); - int tile_number = state->m_videoram[tile_index]; - SET_TILE_INFO( 0, + int tile_number = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, tile_number, 0x10, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(msisaac_state::get_bg_tile_info) { - msisaac_state *state = machine.driver_data<msisaac_state>(); - int tile_number = state->m_videoram2[tile_index]; - SET_TILE_INFO( 1, + int tile_number = m_videoram2[tile_index]; + SET_TILE_INFO_MEMBER( 1, 0x100 + tile_number, 0x30, 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(msisaac_state::get_bg2_tile_info) { - msisaac_state *state = machine.driver_data<msisaac_state>(); - int tile_number = state->m_videoram3[tile_index]; + int tile_number = m_videoram3[tile_index]; /* graphics 0 or 1 */ - int gfx_b = (state->m_bg2_textbank >> 3) & 1; + int gfx_b = (m_bg2_textbank >> 3) & 1; - SET_TILE_INFO( gfx_b, + SET_TILE_INFO_MEMBER( gfx_b, tile_number, 0x20, 0); @@ -55,9 +52,9 @@ static TILE_GET_INFO( get_bg2_tile_info ) VIDEO_START( msisaac ) { msisaac_state *state = machine.driver_data<msisaac_state>(); - 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, 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(msisaac_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(msisaac_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(msisaac_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg2_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/mugsmash.c b/src/mame/video/mugsmash.c index fa4a585f495..f3633646ca3 100644 --- a/src/mame/video/mugsmash.c +++ b/src/mame/video/mugsmash.c @@ -59,7 +59,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } } -static TILE_GET_INFO( get_mugsmash_tile_info1 ) +TILE_GET_INFO_MEMBER(mugsmash_state::get_mugsmash_tile_info1) { /* fF-- cccc nnnn nnnn */ @@ -70,14 +70,13 @@ static TILE_GET_INFO( get_mugsmash_tile_info1 ) f = flip-Y */ - mugsmash_state *state = machine.driver_data<mugsmash_state>(); int tileno, colour, fx; - tileno = state->m_videoram1[tile_index * 2 + 1]; - colour = state->m_videoram1[tile_index * 2] & 0x000f; - fx = (state->m_videoram1[tile_index * 2] & 0xc0) >> 6; + tileno = m_videoram1[tile_index * 2 + 1]; + colour = m_videoram1[tile_index * 2] & 0x000f; + fx = (m_videoram1[tile_index * 2] & 0xc0) >> 6; - SET_TILE_INFO(1, tileno, colour, TILE_FLIPYX(fx)); + SET_TILE_INFO_MEMBER(1, tileno, colour, TILE_FLIPYX(fx)); } WRITE16_MEMBER(mugsmash_state::mugsmash_videoram1_w) @@ -87,7 +86,7 @@ WRITE16_MEMBER(mugsmash_state::mugsmash_videoram1_w) m_tilemap1->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_mugsmash_tile_info2 ) +TILE_GET_INFO_MEMBER(mugsmash_state::get_mugsmash_tile_info2) { /* fF-- cccc nnnn nnnn */ @@ -98,14 +97,13 @@ static TILE_GET_INFO( get_mugsmash_tile_info2 ) f = flip-Y */ - mugsmash_state *state = machine.driver_data<mugsmash_state>(); int tileno, colour, fx; - tileno = state->m_videoram2[tile_index * 2 + 1]; - colour = state->m_videoram2[tile_index * 2] & 0x000f; - fx = (state->m_videoram2[tile_index * 2] & 0xc0) >> 6; + tileno = m_videoram2[tile_index * 2 + 1]; + colour = m_videoram2[tile_index * 2] & 0x000f; + fx = (m_videoram2[tile_index * 2] & 0xc0) >> 6; - SET_TILE_INFO(1, tileno, 16 + colour, TILE_FLIPYX(fx)); + SET_TILE_INFO_MEMBER(1, tileno, 16 + colour, TILE_FLIPYX(fx)); } WRITE16_MEMBER(mugsmash_state::mugsmash_videoram2_w) @@ -142,10 +140,10 @@ VIDEO_START( mugsmash ) { mugsmash_state *state = machine.driver_data<mugsmash_state>(); - state->m_tilemap1 = tilemap_create(machine, get_mugsmash_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tilemap1->set_transparent_pen(0); - state->m_tilemap2 = tilemap_create(machine, get_mugsmash_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); } SCREEN_UPDATE_IND16( mugsmash ) diff --git a/src/mame/video/mustache.c b/src/mame/video/mustache.c index e9905e88b0f..edea4a79b86 100644 --- a/src/mame/video/mustache.c +++ b/src/mame/video/mustache.c @@ -76,15 +76,14 @@ WRITE8_MEMBER(mustache_state::mustache_scroll_w) m_bg_tilemap->set_scrollx(3, 0x100); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mustache_state::get_bg_tile_info) { - mustache_state *state = machine.driver_data<mustache_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int attr = videoram[2 * tile_index + 1]; - int code = videoram[2 * tile_index] + ((attr & 0x60) << 3) + ((state->m_control_byte & 0x08) << 7); + int code = videoram[2 * tile_index] + ((attr & 0x60) << 3) + ((m_control_byte & 0x08) << 7); int color = attr & 0x0f; - SET_TILE_INFO(0, code, color, ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0) ); + SET_TILE_INFO_MEMBER(0, code, color, ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0) ); } @@ -92,7 +91,7 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( mustache ) { mustache_state *state = machine.driver_data<mustache_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS_FLIP_X, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mustache_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 64, 32); state->m_bg_tilemap->set_scroll_rows(4); diff --git a/src/mame/video/mystston.c b/src/mame/video/mystston.c index b92a6042be2..c2171935e24 100644 --- a/src/mame/video/mystston.c +++ b/src/mame/video/mystston.c @@ -148,26 +148,24 @@ WRITE8_MEMBER(mystston_state::mystston_video_control_w) * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(mystston_state::get_bg_tile_info) { - mystston_state *state = machine.driver_data<mystston_state>(); - int page = (*state->m_video_control & 0x04) << 8; - int code = ((state->m_bg_videoram[page | 0x200 | tile_index] & 0x01) << 8) | state->m_bg_videoram[page | tile_index]; + int page = (*m_video_control & 0x04) << 8; + int code = ((m_bg_videoram[page | 0x200 | tile_index] & 0x01) << 8) | m_bg_videoram[page | tile_index]; int flags = (tile_index & 0x10) ? TILE_FLIPY : 0; - SET_TILE_INFO(1, code, 0, flags); + SET_TILE_INFO_MEMBER(1, code, 0, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(mystston_state::get_fg_tile_info) { - mystston_state *state = machine.driver_data<mystston_state>(); - int code = ((state->m_fg_videoram[0x400 | tile_index] & 0x07) << 8) | state->m_fg_videoram[tile_index]; - int color = ((*state->m_video_control & 0x01) << 1) | ((*state->m_video_control & 0x02) >> 1); + int code = ((m_fg_videoram[0x400 | tile_index] & 0x07) << 8) | m_fg_videoram[tile_index]; + int color = ((*m_video_control & 0x01) << 1) | ((*m_video_control & 0x02) >> 1); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -221,9 +219,9 @@ static VIDEO_START( mystston ) { mystston_state *state = machine.driver_data<mystston_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mystston_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mystston_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); /* create the interrupt timer */ diff --git a/src/mame/video/mystwarr.c b/src/mame/video/mystwarr.c index b69045c0649..5f4658fbb57 100644 --- a/src/mame/video/mystwarr.c +++ b/src/mame/video/mystwarr.c @@ -140,11 +140,10 @@ static void martchmp_sprite_callback(running_machine &machine, int *code, int *c -static TILE_GET_INFO( get_gai_936_tile_info ) +TILE_GET_INFO_MEMBER(mystwarr_state::get_gai_936_tile_info) { - mystwarr_state *state = machine.driver_data<mystwarr_state>(); int tileno, colour; - UINT8 *ROM = state->memregion("gfx4")->base(); + UINT8 *ROM = memregion("gfx4")->base(); UINT8 *dat1 = ROM, *dat2 = ROM + 0x20000, *dat3 = ROM + 0x60000; tileno = dat3[tile_index] | ((dat2[tile_index]&0x3f)<<8); @@ -156,9 +155,9 @@ static TILE_GET_INFO( get_gai_936_tile_info ) if (dat2[tile_index] & 0x80) colour |= 0x10; - colour |= state->m_sub1_colorbase << 4; + colour |= m_sub1_colorbase << 4; - SET_TILE_INFO(0, tileno, colour, 0); + SET_TILE_INFO_MEMBER(0, tileno, colour, 0); } VIDEO_START(gaiapols) @@ -185,22 +184,21 @@ VIDEO_START(gaiapols) K053936_wraparound_enable(0, 1); K053936GP_set_offset(0, -10, 0); // floor tiles in demo loop2 (Elaine vs. boss) - state->m_ult_936_tilemap = tilemap_create(machine, get_gai_936_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 512, 512); + state->m_ult_936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mystwarr_state::get_gai_936_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 512, 512); state->m_ult_936_tilemap->set_transparent_pen(0); } -static TILE_GET_INFO( get_ult_936_tile_info ) +TILE_GET_INFO_MEMBER(mystwarr_state::get_ult_936_tile_info) { - mystwarr_state *state = machine.driver_data<mystwarr_state>(); int tileno, colour; - UINT8 *ROM = state->memregion("gfx4")->base(); + UINT8 *ROM = memregion("gfx4")->base(); UINT8 *dat1 = ROM, *dat2 = ROM + 0x40000; tileno = dat2[tile_index] | ((dat1[tile_index]&0x1f)<<8); - colour = state->m_sub1_colorbase; + colour = m_sub1_colorbase; - SET_TILE_INFO(0, tileno, colour, (dat1[tile_index]&0x40) ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(0, tileno, colour, (dat1[tile_index]&0x40) ? TILE_FLIPX : 0); } VIDEO_START(dadandrn) @@ -229,7 +227,7 @@ VIDEO_START(dadandrn) K053936_wraparound_enable(0, 1); K053936GP_set_offset(0, -8, 0); // Brainy's laser - state->m_ult_936_tilemap = tilemap_create(machine, get_ult_936_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 512, 512); + state->m_ult_936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mystwarr_state::get_ult_936_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 512, 512); state->m_ult_936_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/namcona1.c b/src/mame/video/namcona1.c index bbd39ba2422..7bab78b5cc5 100644 --- a/src/mame/video/namcona1.c +++ b/src/mame/video/namcona1.c @@ -62,41 +62,36 @@ static void tilemap_get_info( } } /* tilemap_get_info */ -static TILE_GET_INFO( tilemap_get_info0 ) +TILE_GET_INFO_MEMBER(namcona1_state::tilemap_get_info0) { - namcona1_state *state = machine.driver_data<namcona1_state>(); - UINT16 *videoram = state->m_videoram; - tilemap_get_info(machine,tileinfo,tile_index,0*0x1000+videoram,state->m_tilemap_palette_bank[0],state->m_vreg[0xbc/2]&1); + UINT16 *videoram = m_videoram; + tilemap_get_info(machine(),tileinfo,tile_index,0*0x1000+videoram,m_tilemap_palette_bank[0],m_vreg[0xbc/2]&1); } -static TILE_GET_INFO( tilemap_get_info1 ) +TILE_GET_INFO_MEMBER(namcona1_state::tilemap_get_info1) { - namcona1_state *state = machine.driver_data<namcona1_state>(); - UINT16 *videoram = state->m_videoram; - tilemap_get_info(machine,tileinfo,tile_index,1*0x1000+videoram,state->m_tilemap_palette_bank[1],state->m_vreg[0xbc/2]&2); + UINT16 *videoram = m_videoram; + tilemap_get_info(machine(),tileinfo,tile_index,1*0x1000+videoram,m_tilemap_palette_bank[1],m_vreg[0xbc/2]&2); } -static TILE_GET_INFO( tilemap_get_info2 ) +TILE_GET_INFO_MEMBER(namcona1_state::tilemap_get_info2) { - namcona1_state *state = machine.driver_data<namcona1_state>(); - UINT16 *videoram = state->m_videoram; - tilemap_get_info(machine,tileinfo,tile_index,2*0x1000+videoram,state->m_tilemap_palette_bank[2],state->m_vreg[0xbc/2]&4); + UINT16 *videoram = m_videoram; + tilemap_get_info(machine(),tileinfo,tile_index,2*0x1000+videoram,m_tilemap_palette_bank[2],m_vreg[0xbc/2]&4); } -static TILE_GET_INFO( tilemap_get_info3 ) +TILE_GET_INFO_MEMBER(namcona1_state::tilemap_get_info3) { - namcona1_state *state = machine.driver_data<namcona1_state>(); - UINT16 *videoram = state->m_videoram; - tilemap_get_info(machine,tileinfo,tile_index,3*0x1000+videoram,state->m_tilemap_palette_bank[3],state->m_vreg[0xbc/2]&8); + UINT16 *videoram = m_videoram; + tilemap_get_info(machine(),tileinfo,tile_index,3*0x1000+videoram,m_tilemap_palette_bank[3],m_vreg[0xbc/2]&8); } -static TILE_GET_INFO( roz_get_info ) +TILE_GET_INFO_MEMBER(namcona1_state::roz_get_info) { - namcona1_state *state = machine.driver_data<namcona1_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; /* each logical tile is constructed from 4*4 normal tiles */ - int tilemap_color = state->m_roz_palette; - int use_4bpp_gfx = state->m_vreg[0xbc/2]&16; /* ? */ + int tilemap_color = m_roz_palette; + int use_4bpp_gfx = m_vreg[0xbc/2]&16; /* ? */ int c = tile_index%0x40; int r = tile_index/0x40; int data = videoram[0x8000/2+(r/4)*0x40+c/4]&0xfbf; /* mask out bit 0x40 - patch for Emeraldia Japan */ @@ -109,16 +104,16 @@ static TILE_GET_INFO( roz_get_info ) } if( data & 0x8000 ) { - SET_TILE_INFO( gfx,tile,tilemap_color,TILE_FORCE_LAYER0 ); + SET_TILE_INFO_MEMBER( gfx,tile,tilemap_color,TILE_FORCE_LAYER0 ); } else { - UINT8 *mask_data = (UINT8 *)(state->m_shaperam+4*tile); + UINT8 *mask_data = (UINT8 *)(m_shaperam+4*tile); if (ENDIANNESS_NATIVE == ENDIANNESS_LITTLE) { UINT16 *source = (UINT16 *)mask_data; - UINT8 *conv_data = state->m_conv_data; + UINT8 *conv_data = m_conv_data; conv_data[0] = source[0]>>8; conv_data[1] = source[0]&0xff; conv_data[2] = source[1]>>8; @@ -129,7 +124,7 @@ static TILE_GET_INFO( roz_get_info ) conv_data[7] = source[3]&0xff; mask_data = conv_data; } - SET_TILE_INFO( gfx,tile,tilemap_color,0 ); + SET_TILE_INFO_MEMBER( gfx,tile,tilemap_color,0 ); tileinfo.mask_data = mask_data; } } /* roz_get_info */ @@ -283,15 +278,20 @@ static void UpdateGfx(running_machine &machine) VIDEO_START( namcona1 ) { namcona1_state *state = machine.driver_data<namcona1_state>(); - static const tile_get_info_func get_info[4] = { tilemap_get_info0, tilemap_get_info1, tilemap_get_info2, tilemap_get_info3 }; + static const tilemap_get_info_delegate get_info[4] = { + tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info0),state), + tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info1),state), + tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info2),state), + tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info3),state) + }; int i; - state->m_roz_tilemap = tilemap_create( machine, roz_get_info, TILEMAP_SCAN_ROWS, 8,8,64,64 ); + state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcona1_state::roz_get_info),state), TILEMAP_SCAN_ROWS, 8,8,64,64 ); state->m_roz_palette = -1; for( i=0; i<NAMCONA1_NUM_TILEMAPS; i++ ) { - state->m_bg_tilemap[i] = tilemap_create( machine, get_info[i], TILEMAP_SCAN_ROWS, 8,8,64,64 ); + state->m_bg_tilemap[i] = &machine.tilemap().create(get_info[i], TILEMAP_SCAN_ROWS, 8,8,64,64 ); state->m_tilemap_palette_bank[i] = -1; } diff --git a/src/mame/video/namcos1.c b/src/mame/video/namcos1.c index b3f10919f3d..6e7da23f6d2 100644 --- a/src/mame/video/namcos1.c +++ b/src/mame/video/namcos1.c @@ -72,40 +72,34 @@ INLINE void fg_get_info(running_machine &machine,tile_data &tileinfo,int tile_in tileinfo.mask_data = &state->m_tilemap_maskdata[code << 3]; } -static TILE_GET_INFO( bg_get_info0 ) +TILE_GET_INFO_MEMBER(namcos1_state::bg_get_info0) { - namcos1_state *state = machine.driver_data<namcos1_state>(); - bg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x0000]); + bg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x0000]); } -static TILE_GET_INFO( bg_get_info1 ) +TILE_GET_INFO_MEMBER(namcos1_state::bg_get_info1) { - namcos1_state *state = machine.driver_data<namcos1_state>(); - bg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x2000]); + bg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x2000]); } -static TILE_GET_INFO( bg_get_info2 ) +TILE_GET_INFO_MEMBER(namcos1_state::bg_get_info2) { - namcos1_state *state = machine.driver_data<namcos1_state>(); - bg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x4000]); + bg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x4000]); } -static TILE_GET_INFO( bg_get_info3 ) +TILE_GET_INFO_MEMBER(namcos1_state::bg_get_info3) { - namcos1_state *state = machine.driver_data<namcos1_state>(); - bg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x6000]); + bg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x6000]); } -static TILE_GET_INFO( fg_get_info4 ) +TILE_GET_INFO_MEMBER(namcos1_state::fg_get_info4) { - namcos1_state *state = machine.driver_data<namcos1_state>(); - fg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x7010]); + fg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x7010]); } -static TILE_GET_INFO( fg_get_info5 ) +TILE_GET_INFO_MEMBER(namcos1_state::fg_get_info5) { - namcos1_state *state = machine.driver_data<namcos1_state>(); - fg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x7810]); + fg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x7810]); } @@ -128,12 +122,12 @@ VIDEO_START( namcos1 ) state->m_spriteram = auto_alloc_array(machine, UINT8, 0x1000); /* initialize playfields */ - state->m_bg_tilemap[0] = tilemap_create(machine, bg_get_info0,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_bg_tilemap[1] = tilemap_create(machine, bg_get_info1,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_bg_tilemap[2] = tilemap_create(machine, bg_get_info2,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_bg_tilemap[3] = tilemap_create(machine, bg_get_info3,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_bg_tilemap[4] = tilemap_create(machine, fg_get_info4,TILEMAP_SCAN_ROWS,8,8,36,28); - state->m_bg_tilemap[5] = tilemap_create(machine, fg_get_info5,TILEMAP_SCAN_ROWS,8,8,36,28); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::bg_get_info0),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::bg_get_info1),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::bg_get_info2),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_bg_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::bg_get_info3),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap[4] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::fg_get_info4),state),TILEMAP_SCAN_ROWS,8,8,36,28); + state->m_bg_tilemap[5] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::fg_get_info5),state),TILEMAP_SCAN_ROWS,8,8,36,28); state->m_bg_tilemap[4]->set_scrolldx(73,512-73); state->m_bg_tilemap[5]->set_scrolldx(73,512-73); diff --git a/src/mame/video/namcos22.c b/src/mame/video/namcos22.c index ae3e3b8175e..b21e639ec57 100644 --- a/src/mame/video/namcos22.c +++ b/src/mame/video/namcos22.c @@ -1793,16 +1793,15 @@ static void UpdatePalette(running_machine &machine) } /* UpdatePalette */ -static TILE_GET_INFO( TextTilemapGetInfo ) +TILE_GET_INFO_MEMBER(namcos22_state::TextTilemapGetInfo) { - namcos22_state *state = machine.driver_data<namcos22_state>(); - UINT16 data = nthword( state->m_textram,tile_index ); + UINT16 data = nthword( m_textram,tile_index ); /** * xxxx.----.----.---- palette select * ----.xx--.----.---- flip * ----.--xx.xxxx.xxxx code */ - SET_TILE_INFO( GFX_CHAR,data&0x03ff,data>>12,TILE_FLIPYX((data&0x0c00)>>10) ); + SET_TILE_INFO_MEMBER( GFX_CHAR,data&0x03ff,data>>12,TILE_FLIPYX((data&0x0c00)>>10) ); } READ32_MEMBER(namcos22_state::namcos22_textram_r) @@ -2731,7 +2730,7 @@ static VIDEO_START( common ) int code; state->m_mix_bitmap = auto_bitmap_ind16_alloc(machine,640,480); - 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(namcos22_state::TextTilemapGetInfo),state),TILEMAP_SCAN_ROWS,16,16,64,64 ); state->m_bgtilemap->set_transparent_pen(0xf); state->m_mbDSPisActive = 0; diff --git a/src/mame/video/namcos86.c b/src/mame/video/namcos86.c index 4d8c8d58796..1a4249448ac 100644 --- a/src/mame/video/namcos86.c +++ b/src/mame/video/namcos86.c @@ -105,28 +105,24 @@ INLINE void get_tile_info(running_machine &machine,tile_data &tileinfo,int tile_ 0); } -static TILE_GET_INFO( get_tile_info0 ) +TILE_GET_INFO_MEMBER(namcos86_state::get_tile_info0) { - namcos86_state *state = machine.driver_data<namcos86_state>(); - get_tile_info(machine,tileinfo,tile_index,0,&state->m_rthunder_videoram1[0x0000]); + get_tile_info(machine(),tileinfo,tile_index,0,&m_rthunder_videoram1[0x0000]); } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(namcos86_state::get_tile_info1) { - namcos86_state *state = machine.driver_data<namcos86_state>(); - get_tile_info(machine,tileinfo,tile_index,1,&state->m_rthunder_videoram1[0x1000]); + get_tile_info(machine(),tileinfo,tile_index,1,&m_rthunder_videoram1[0x1000]); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(namcos86_state::get_tile_info2) { - namcos86_state *state = machine.driver_data<namcos86_state>(); - get_tile_info(machine,tileinfo,tile_index,2,&state->m_rthunder_videoram2[0x0000]); + get_tile_info(machine(),tileinfo,tile_index,2,&m_rthunder_videoram2[0x0000]); } -static TILE_GET_INFO( get_tile_info3 ) +TILE_GET_INFO_MEMBER(namcos86_state::get_tile_info3) { - namcos86_state *state = machine.driver_data<namcos86_state>(); - get_tile_info(machine,tileinfo,tile_index,3,&state->m_rthunder_videoram2[0x1000]); + get_tile_info(machine(),tileinfo,tile_index,3,&m_rthunder_videoram2[0x1000]); } @@ -139,10 +135,10 @@ static TILE_GET_INFO( get_tile_info3 ) VIDEO_START( namcos86 ) { namcos86_state *state = machine.driver_data<namcos86_state>(); - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_bg_tilemap[2] = tilemap_create(machine, get_tile_info2,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_bg_tilemap[3] = tilemap_create(machine, get_tile_info3,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info0),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_bg_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info3),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_bg_tilemap[0]->set_transparent_pen(7); state->m_bg_tilemap[1]->set_transparent_pen(7); diff --git a/src/mame/video/nemesis.c b/src/mame/video/nemesis.c index 7c6c81cdd83..2362a674db0 100644 --- a/src/mame/video/nemesis.c +++ b/src/mame/video/nemesis.c @@ -21,13 +21,12 @@ sprite_data[8] = }; -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(nemesis_state::get_bg_tile_info) { - nemesis_state *state = machine.driver_data<nemesis_state>(); int code, color, flags, mask, layer; - code = state->m_videoram2[tile_index]; - color = state->m_colorram2[tile_index]; + code = m_videoram2[tile_index]; + color = m_colorram2[tile_index]; flags = 0; if (color & 0x80) @@ -41,12 +40,12 @@ static TILE_GET_INFO( get_bg_tile_info ) if (code & 0xf800) { - SET_TILE_INFO( 0, code & 0x7ff, color & 0x7f, flags ); + SET_TILE_INFO_MEMBER( 0, code & 0x7ff, color & 0x7f, flags ); } else { - SET_TILE_INFO( 0, 0, 0x00, 0 ); - tileinfo.pen_data = state->m_blank_tile; + SET_TILE_INFO_MEMBER( 0, 0, 0x00, 0 ); + tileinfo.pen_data = m_blank_tile; } mask = (code & 0x1000) >> 12; @@ -57,13 +56,12 @@ static TILE_GET_INFO( get_bg_tile_info ) tileinfo.category = mask | (layer << 1); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(nemesis_state::get_fg_tile_info) { - nemesis_state *state = machine.driver_data<nemesis_state>(); int code, color, flags, mask, layer; - code = state->m_videoram1[tile_index]; - color = state->m_colorram1[tile_index]; + code = m_videoram1[tile_index]; + color = m_colorram1[tile_index]; flags = 0; if (color & 0x80) @@ -77,12 +75,12 @@ static TILE_GET_INFO( get_fg_tile_info ) if (code & 0xf800) { - SET_TILE_INFO( 0, code & 0x7ff, color & 0x7f, flags ); + SET_TILE_INFO_MEMBER( 0, code & 0x7ff, color & 0x7f, flags ); } else { - SET_TILE_INFO( 0, 0, 0x00, 0 ); - tileinfo.pen_data = state->m_blank_tile; + SET_TILE_INFO_MEMBER( 0, 0, 0x00, 0 ); + tileinfo.pen_data = m_blank_tile; } mask = (code & 0x1000) >> 12; @@ -299,8 +297,8 @@ VIDEO_START( nemesis ) state->m_spriteram_words = state->m_spriteram.bytes() / 2; - state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_foreground = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nemesis_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nemesis_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_background->set_transparent_pen(0); state->m_foreground->set_transparent_pen(0); diff --git a/src/mame/video/news.c b/src/mame/video/news.c index a82392640a9..fef0ea99305 100644 --- a/src/mame/video/news.c +++ b/src/mame/video/news.c @@ -8,28 +8,26 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(news_state::get_fg_tile_info) { - news_state *state = machine.driver_data<news_state>(); - int code = (state->m_fgram[tile_index * 2] << 8) | state->m_fgram[tile_index * 2 + 1]; - SET_TILE_INFO( + int code = (m_fgram[tile_index * 2] << 8) | m_fgram[tile_index * 2 + 1]; + SET_TILE_INFO_MEMBER( 0, code & 0x0fff, (code & 0xf000) >> 12, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(news_state::get_bg_tile_info) { - news_state *state = machine.driver_data<news_state>(); - int code = (state->m_bgram[tile_index * 2] << 8) | state->m_bgram[tile_index * 2 + 1]; + int code = (m_bgram[tile_index * 2] << 8) | m_bgram[tile_index * 2 + 1]; int color = (code & 0xf000) >> 12; code &= 0x0fff; if ((code & 0x0e00) == 0x0e00) - code = (code & 0x1ff) | (state->m_bgpic << 9); + code = (code & 0x1ff) | (m_bgpic << 9); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -48,10 +46,10 @@ VIDEO_START( news ) { news_state *state = machine.driver_data<news_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(news_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); - 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(news_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/ninjakd2.c b/src/mame/video/ninjakd2.c index 8b22cb054df..ad944d07094 100644 --- a/src/mame/video/ninjakd2.c +++ b/src/mame/video/ninjakd2.c @@ -10,61 +10,58 @@ * *************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(ninjakd2_state::get_fg_tile_info) { - ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); - int const lo = state->m_fg_videoram[(tile_index << 1)]; - int const hi = state->m_fg_videoram[(tile_index << 1) | 1]; + int const lo = m_fg_videoram[(tile_index << 1)]; + int const hi = m_fg_videoram[(tile_index << 1) | 1]; int const tile = ((hi & 0xc0) << 2) | lo; int const flipyx = (hi & 0x30) >> 4; int const color = hi & 0x0f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, TILE_FLIPYX(flipyx)); } -static TILE_GET_INFO( ninjakd2_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ninjakd2_state::ninjakd2_get_bg_tile_info) { - ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); - int const lo = state->m_bg_videoram[(tile_index << 1)]; - int const hi = state->m_bg_videoram[(tile_index << 1) | 1]; + int const lo = m_bg_videoram[(tile_index << 1)]; + int const hi = m_bg_videoram[(tile_index << 1) | 1]; int const tile = ((hi & 0xc0) << 2) | lo; int const flipyx = (hi & 0x30) >> 4; int const color = hi & 0x0f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile, color, TILE_FLIPYX(flipyx)); } -static TILE_GET_INFO( mnight_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ninjakd2_state::mnight_get_bg_tile_info) { - ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); - int const lo = state->m_bg_videoram[(tile_index << 1)]; - int const hi = state->m_bg_videoram[(tile_index << 1) | 1]; + int const lo = m_bg_videoram[(tile_index << 1)]; + int const hi = m_bg_videoram[(tile_index << 1) | 1]; int const tile = ((hi & 0x10) << 6) | ((hi & 0xc0) << 2) | lo; int const flipy = (hi & 0x20) >> 5; int const color = hi & 0x0f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile, color, flipy ? TILE_FLIPY : 0); } -static TILEMAP_MAPPER( robokid_bg_scan ) +TILEMAP_MAPPER_MEMBER(ninjakd2_state::robokid_bg_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) | ((row & 0x1f) << 4) | ((col & 0x10) << 5); } -static TILEMAP_MAPPER( omegaf_bg_scan ) +TILEMAP_MAPPER_MEMBER(ninjakd2_state::omegaf_bg_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) | ((row & 0x1f) << 4) | ((col & 0x70) << 5); @@ -84,22 +81,19 @@ static void robokid_get_bg_tile_info(running_machine& machine, tile_data& tilein 0); } -static TILE_GET_INFO( robokid_get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(ninjakd2_state::robokid_get_bg0_tile_info) { - ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); - robokid_get_bg_tile_info(machine, tileinfo, tile_index, 2, state->m_robokid_bg0_videoram); + robokid_get_bg_tile_info(machine(), tileinfo, tile_index, 2, m_robokid_bg0_videoram); } -static TILE_GET_INFO( robokid_get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(ninjakd2_state::robokid_get_bg1_tile_info) { - ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); - robokid_get_bg_tile_info(machine, tileinfo, tile_index, 3, state->m_robokid_bg1_videoram); + robokid_get_bg_tile_info(machine(), tileinfo, tile_index, 3, m_robokid_bg1_videoram); } -static TILE_GET_INFO( robokid_get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(ninjakd2_state::robokid_get_bg2_tile_info) { - ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); - robokid_get_bg_tile_info(machine, tileinfo, tile_index, 4, state->m_robokid_bg2_videoram); + robokid_get_bg_tile_info(machine(), tileinfo, tile_index, 4, m_robokid_bg2_videoram); } @@ -135,8 +129,8 @@ VIDEO_START( ninjakd2 ) ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); videoram_alloc(machine, 0); - state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, ninjakd2_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::ninjakd2_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); @@ -149,8 +143,8 @@ VIDEO_START( mnight ) ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); videoram_alloc(machine, 0); - state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, mnight_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::mnight_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); @@ -163,8 +157,8 @@ VIDEO_START( arkarea ) ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); videoram_alloc(machine, 0); - state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, mnight_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::mnight_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); @@ -179,10 +173,10 @@ VIDEO_START( robokid ) videoram_alloc(machine, 0x0800); - state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg0_tilemap = tilemap_create(machine, robokid_get_bg0_tile_info, robokid_bg_scan, 16, 16, 32, 32); - state->m_bg1_tilemap = tilemap_create(machine, robokid_get_bg1_tile_info, robokid_bg_scan, 16, 16, 32, 32); - state->m_bg2_tilemap = tilemap_create(machine, robokid_get_bg2_tile_info, robokid_bg_scan, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),state), 16, 16, 32, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),state), 16, 16, 32, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),state), 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); state->m_bg1_tilemap->set_transparent_pen(TRANSPARENTCODE); @@ -199,10 +193,10 @@ VIDEO_START( omegaf ) videoram_alloc(machine, 0x2000); - state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg0_tilemap = tilemap_create(machine, robokid_get_bg0_tile_info, omegaf_bg_scan, 16, 16, 128, 32); - state->m_bg1_tilemap = tilemap_create(machine, robokid_get_bg1_tile_info, omegaf_bg_scan, 16, 16, 128, 32); - state->m_bg2_tilemap = tilemap_create(machine, robokid_get_bg2_tile_info, omegaf_bg_scan, 16, 16, 128, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),state), 16, 16, 128, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),state), 16, 16, 128, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),state), 16, 16, 128, 32); state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); state->m_bg0_tilemap->set_transparent_pen(TRANSPARENTCODE); diff --git a/src/mame/video/nitedrvr.c b/src/mame/video/nitedrvr.c index f072276c2d2..5ca23afe7a0 100644 --- a/src/mame/video/nitedrvr.c +++ b/src/mame/video/nitedrvr.c @@ -23,12 +23,11 @@ WRITE8_MEMBER(nitedrvr_state::nitedrvr_hvc_w) watchdog_reset_w(space, 0, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(nitedrvr_state::get_bg_tile_info) { - nitedrvr_state *state = machine.driver_data<nitedrvr_state>(); - int code = state->m_videoram[tile_index] & 0x3f; + int code = m_videoram[tile_index] & 0x3f; - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } @@ -36,7 +35,7 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( nitedrvr ) { nitedrvr_state *state = machine.driver_data<nitedrvr_state>(); - 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(nitedrvr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static void draw_box( bitmap_ind16 &bitmap, int bx, int by, int ex, int ey ) diff --git a/src/mame/video/nmk16.c b/src/mame/video/nmk16.c index 553829d9d7e..193ce512bce 100644 --- a/src/mame/video/nmk16.c +++ b/src/mame/video/nmk16.c @@ -26,7 +26,7 @@ #define PAGES_PER_TMAP_X (0x10) #define PAGES_PER_TMAP_Y (0x02) -static TILEMAP_MAPPER( afega_tilemap_scan_pages ) +TILEMAP_MAPPER_MEMBER(nmk16_state::afega_tilemap_scan_pages) { return (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE_X * TILES_PER_PAGE_Y * PAGES_PER_TMAP_X + (row % TILES_PER_PAGE_Y) + @@ -35,74 +35,66 @@ static TILEMAP_MAPPER( afega_tilemap_scan_pages ) (col % TILES_PER_PAGE_X) * TILES_PER_PAGE_Y; } -static TILE_GET_INFO( macross_get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(nmk16_state::macross_get_bg0_tile_info) { - nmk16_state *state = machine.driver_data<nmk16_state>(); - int code = state->m_nmk_bgvideoram0[tile_index]; - SET_TILE_INFO(1,(code & 0xfff) + (state->m_bgbank << 12),code >> 12,0); + int code = m_nmk_bgvideoram0[tile_index]; + SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0); } -static TILE_GET_INFO( macross_get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(nmk16_state::macross_get_bg1_tile_info) { - nmk16_state *state = machine.driver_data<nmk16_state>(); - int code = state->m_nmk_bgvideoram1[tile_index]; - SET_TILE_INFO(1,(code & 0xfff) + (state->m_bgbank << 12),code >> 12,0); + int code = m_nmk_bgvideoram1[tile_index]; + SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0); } -static TILE_GET_INFO( macross_get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(nmk16_state::macross_get_bg2_tile_info) { - nmk16_state *state = machine.driver_data<nmk16_state>(); - int code = state->m_nmk_bgvideoram2[tile_index]; - SET_TILE_INFO(1,(code & 0xfff) + (state->m_bgbank << 12),code >> 12,0); + int code = m_nmk_bgvideoram2[tile_index]; + SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0); } -static TILE_GET_INFO( macross_get_bg3_tile_info ) +TILE_GET_INFO_MEMBER(nmk16_state::macross_get_bg3_tile_info) { - nmk16_state *state = machine.driver_data<nmk16_state>(); - int code = state->m_nmk_bgvideoram3[tile_index]; - SET_TILE_INFO(1,(code & 0xfff) + (state->m_bgbank << 12),code >> 12,0); + int code = m_nmk_bgvideoram3[tile_index]; + SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0); } -static TILE_GET_INFO( strahl_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(nmk16_state::strahl_get_fg_tile_info) { - nmk16_state *state = machine.driver_data<nmk16_state>(); - int code = state->m_nmk_fgvideoram[tile_index]; - SET_TILE_INFO( + int code = m_nmk_fgvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 3, (code & 0xfff), code >> 12, 0); } -static TILE_GET_INFO( macross_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(nmk16_state::macross_get_tx_tile_info) { - nmk16_state *state = machine.driver_data<nmk16_state>(); - int code = state->m_nmk_txvideoram[tile_index]; - SET_TILE_INFO( + int code = m_nmk_txvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, code & 0xfff, code >> 12, 0); } -static TILE_GET_INFO( bjtwin_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(nmk16_state::bjtwin_get_bg_tile_info) { - nmk16_state *state = machine.driver_data<nmk16_state>(); - int code = state->m_nmk_bgvideoram0[tile_index]; + int code = m_nmk_bgvideoram0[tile_index]; int bank = (code & 0x800) ? 1 : 0; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( bank, - (code & 0x7ff) + ((bank) ? (state->m_bgbank << 11) : 0), + (code & 0x7ff) + ((bank) ? (m_bgbank << 11) : 0), code >> 12, 0); } -static TILE_GET_INFO( get_tile_info_0_8bit ) +TILE_GET_INFO_MEMBER(nmk16_state::get_tile_info_0_8bit) { - nmk16_state *state = machine.driver_data<nmk16_state>(); - UINT16 code = state->m_nmk_bgvideoram0[tile_index]; - SET_TILE_INFO( + UINT16 code = m_nmk_bgvideoram0[tile_index]; + SET_TILE_INFO_MEMBER( 1, code, 0, @@ -131,8 +123,8 @@ static void nmk16_video_init(running_machine &machine) VIDEO_START( bioship ) { nmk16_state *state = machine.driver_data<nmk16_state>(); - state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,32,32); + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,32,32); state->m_bg_tilemap0->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(15); @@ -147,9 +139,9 @@ VIDEO_START( bioship ) VIDEO_START( strahl ) { nmk16_state *state = machine.driver_data<nmk16_state>(); - state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_fg_tilemap = tilemap_create(machine, strahl_get_fg_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,32,32); + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::strahl_get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,32,32); state->m_fg_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(15); @@ -160,8 +152,8 @@ VIDEO_START( strahl ) VIDEO_START( macross ) { nmk16_state *state = machine.driver_data<nmk16_state>(); - state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,32,32); + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,32,32); state->m_tx_tilemap->set_transparent_pen(15); @@ -171,8 +163,8 @@ VIDEO_START( macross ) VIDEO_START( gunnail ) { nmk16_state *state = machine.driver_data<nmk16_state>(); - state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); state->m_tx_tilemap->set_transparent_pen(15); state->m_bg_tilemap0->set_scroll_rows(512); @@ -186,12 +178,12 @@ VIDEO_START( gunnail ) VIDEO_START( macross2 ) { nmk16_state *state = machine.driver_data<nmk16_state>(); - state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_bg_tilemap1 = tilemap_create(machine, macross_get_bg1_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_bg_tilemap2 = tilemap_create(machine, macross_get_bg2_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_bg_tilemap3 = tilemap_create(machine, macross_get_bg3_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_bg_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_bg_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); + state->m_bg_tilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg3_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); state->m_tx_tilemap->set_transparent_pen(15); @@ -210,7 +202,7 @@ VIDEO_START( raphero ) VIDEO_START( bjtwin ) { nmk16_state *state = machine.driver_data<nmk16_state>(); - state->m_bg_tilemap0 = tilemap_create(machine, bjtwin_get_bg_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::bjtwin_get_bg_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); nmk16_video_init(machine); state->m_videoshift = 64; /* 384x224 screen, leftmost 64 pixels have to be retrieved */ @@ -902,13 +894,11 @@ VIDEO_START( afega ) state->m_spriteram_old = auto_alloc_array_clear(machine, UINT16, 0x1000/2); state->m_spriteram_old2 = auto_alloc_array_clear(machine, UINT16, 0x1000/2); - state->m_bg_tilemap0 = tilemap_create( machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages, - + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state), 16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tx_tilemap = tilemap_create( machine, macross_get_tx_tile_info, TILEMAP_SCAN_COLS, - + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 32,32); @@ -923,13 +913,11 @@ VIDEO_START( grdnstrm ) state->m_spriteram_old2 = auto_alloc_array_clear(machine, UINT16, 0x1000/2); - state->m_bg_tilemap0 = tilemap_create( machine, get_tile_info_0_8bit, afega_tilemap_scan_pages, - + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::get_tile_info_0_8bit),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state), 16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tx_tilemap = tilemap_create( machine, macross_get_tx_tile_info, TILEMAP_SCAN_COLS, - + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 32,32); @@ -944,13 +932,11 @@ VIDEO_START( firehawk ) state->m_spriteram_old2 = auto_alloc_array_clear(machine, UINT16, 0x1000/2); - state->m_bg_tilemap0 = tilemap_create( machine, get_tile_info_0_8bit, afega_tilemap_scan_pages, - + state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::get_tile_info_0_8bit),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state), 16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tx_tilemap = tilemap_create( machine, macross_get_tx_tile_info, TILEMAP_SCAN_COLS, - + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 32,32); diff --git a/src/mame/video/nova2001.c b/src/mame/video/nova2001.c index 9f5fe6119fa..8fa8aa0917a 100644 --- a/src/mame/video/nova2001.c +++ b/src/mame/video/nova2001.c @@ -77,78 +77,71 @@ WRITE8_MEMBER(nova2001_state::ninjakun_paletteram_w) * *************************************/ -static TILE_GET_INFO( nova2001_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(nova2001_state::nova2001_get_bg_tile_info) { - nova2001_state *state = machine.driver_data<nova2001_state>(); - int code = state->m_bg_videoram[tile_index]; - int color = state->m_bg_videoram[tile_index + 0x400] & 0x0f; + int code = m_bg_videoram[tile_index]; + int color = m_bg_videoram[tile_index + 0x400] & 0x0f; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( nova2001_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(nova2001_state::nova2001_get_fg_tile_info) { - nova2001_state *state = machine.driver_data<nova2001_state>(); - int attr = state->m_fg_videoram[tile_index + 0x400]; - int code = state->m_fg_videoram[tile_index]; + int attr = m_fg_videoram[tile_index + 0x400]; + int code = m_fg_videoram[tile_index]; int color = attr & 0x0f; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); tileinfo.category = (attr & 0x10) >> 4; } -static TILE_GET_INFO( ninjakun_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(nova2001_state::ninjakun_get_bg_tile_info) { - nova2001_state *state = machine.driver_data<nova2001_state>(); - int attr = state->m_bg_videoram[tile_index+0x400]; - int code = state->m_bg_videoram[tile_index] + ((attr & 0xc0) << 2); + int attr = m_bg_videoram[tile_index+0x400]; + int code = m_bg_videoram[tile_index] + ((attr & 0xc0) << 2); int color = attr & 0x0f; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( ninjakun_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(nova2001_state::ninjakun_get_fg_tile_info) { - nova2001_state *state = machine.driver_data<nova2001_state>(); - int attr = state->m_fg_videoram[tile_index+0x400]; - int code = state->m_fg_videoram[tile_index] + ((attr & 0x20) << 3); + int attr = m_fg_videoram[tile_index+0x400]; + int code = m_fg_videoram[tile_index] + ((attr & 0x20) << 3); int color = attr & 0x0f; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); tileinfo.category = (attr & 0x10) >> 4; } -static TILE_GET_INFO( pkunwar_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(nova2001_state::pkunwar_get_bg_tile_info) { - nova2001_state *state = machine.driver_data<nova2001_state>(); - int attr = state->m_bg_videoram[tile_index + 0x400]; - int code = state->m_bg_videoram[tile_index] + ((attr & 0x07) << 8); + int attr = m_bg_videoram[tile_index + 0x400]; + int code = m_bg_videoram[tile_index] + ((attr & 0x07) << 8); int color = (attr & 0xf0) >> 4; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); tileinfo.category = (attr & 0x08) >> 3; } -static TILE_GET_INFO( raiders5_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(nova2001_state::raiders5_get_bg_tile_info) { - nova2001_state *state = machine.driver_data<nova2001_state>(); - int attr = state->m_bg_videoram[tile_index+0x400]; - int code = state->m_bg_videoram[tile_index] + ((attr & 0x01) << 8); + int attr = m_bg_videoram[tile_index+0x400]; + int code = m_bg_videoram[tile_index] + ((attr & 0x01) << 8); int color = (attr & 0xf0) >> 4; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( raiders5_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(nova2001_state::raiders5_get_fg_tile_info) { - nova2001_state *state = machine.driver_data<nova2001_state>(); - int code = state->m_fg_videoram[tile_index]; - int color = (state->m_fg_videoram[tile_index + 0x400] & 0xf0) >> 4; + int code = m_fg_videoram[tile_index]; + int color = (m_fg_videoram[tile_index + 0x400] & 0xf0) >> 4; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } @@ -162,8 +155,8 @@ static TILE_GET_INFO( raiders5_get_fg_tile_info ) VIDEO_START( nova2001 ) { nova2001_state *state = machine.driver_data<nova2001_state>(); - state->m_bg_tilemap = tilemap_create(machine, nova2001_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, nova2001_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::nova2001_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::nova2001_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scrolldx(0, -7); } @@ -171,15 +164,15 @@ VIDEO_START( nova2001 ) VIDEO_START( pkunwar ) { nova2001_state *state = machine.driver_data<nova2001_state>(); - state->m_bg_tilemap = tilemap_create(machine, pkunwar_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::pkunwar_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); } VIDEO_START( ninjakun ) { nova2001_state *state = machine.driver_data<nova2001_state>(); - state->m_bg_tilemap = tilemap_create(machine, ninjakun_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, ninjakun_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::ninjakun_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::ninjakun_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scrolldx(7, 0); } @@ -187,8 +180,8 @@ VIDEO_START( ninjakun ) VIDEO_START( raiders5 ) { nova2001_state *state = machine.driver_data<nova2001_state>(); - state->m_bg_tilemap = tilemap_create(machine, raiders5_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, raiders5_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::raiders5_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::raiders5_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scrolldx(7, 0); } diff --git a/src/mame/video/nycaptor.c b/src/mame/video/nycaptor.c index 01c2620c321..7588941a16d 100644 --- a/src/mame/video/nycaptor.c +++ b/src/mame/video/nycaptor.c @@ -37,36 +37,35 @@ READ8_MEMBER(nycaptor_state::nycaptor_spriteram_r) return m_spriteram[offset]; } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(nycaptor_state::get_tile_info) { - nycaptor_state *state = machine.driver_data<nycaptor_state>(); - int pal = state->m_videoram[tile_index * 2 + 1] & 0x0f; - tileinfo.category = (state->m_videoram[tile_index * 2 + 1] & 0x30) >> 4; + int pal = m_videoram[tile_index * 2 + 1] & 0x0f; + tileinfo.category = (m_videoram[tile_index * 2 + 1] & 0x30) >> 4; tileinfo.group = 0; - if ((!nycaptor_spot(machine)) && (pal == 6)) + if ((!nycaptor_spot(machine())) && (pal == 6)) tileinfo.group = 1; - if (((nycaptor_spot(machine) == 3) && (pal == 8)) || ((nycaptor_spot(machine) == 1) && (pal == 0xc))) + if (((nycaptor_spot(machine()) == 3) && (pal == 8)) || ((nycaptor_spot(machine()) == 1) && (pal == 0xc))) tileinfo.group = 2; - if ((nycaptor_spot(machine) == 1) && (tileinfo.category == 2)) + if ((nycaptor_spot(machine()) == 1) && (tileinfo.category == 2)) tileinfo.group = 3; #if NYCAPTOR_DEBUG - if (state->m_mask & (1 << tileinfo.category)) + if (m_mask & (1 << tileinfo.category)) { - if (nycaptor_spot(machine)) + if (nycaptor_spot(machine())) pal = 0xe; else pal = 4; } #endif - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index * 2] + ((state->m_videoram[tile_index * 2 + 1] & 0xc0) << 2) + 0x400 * state->m_char_bank, + m_videoram[tile_index * 2] + ((m_videoram[tile_index * 2 + 1] & 0xc0) << 2) + 0x400 * m_char_bank, pal, 0 ); } @@ -77,7 +76,7 @@ VIDEO_START( nycaptor ) nycaptor_state *state = machine.driver_data<nycaptor_state>(); state->m_spriteram = auto_alloc_array(machine, UINT8, 160); - 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(nycaptor_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 ); state->m_bg_tilemap->set_transmask(0, 0xf800, 0x7ff); //split 0 state->m_bg_tilemap->set_transmask(1, 0xfe00, 0x01ff);//split 1 diff --git a/src/mame/video/offtwall.c b/src/mame/video/offtwall.c index f49eb0019b9..29fbf6897b4 100644 --- a/src/mame/video/offtwall.c +++ b/src/mame/video/offtwall.c @@ -16,14 +16,13 @@ * *************************************/ -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(offtwall_state::get_playfield_tile_info) { - offtwall_state *state = machine.driver_data<offtwall_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] >> 8; int code = data1 & 0x7fff; int color = 0x10 + (data2 & 0x0f); - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); } @@ -75,7 +74,7 @@ VIDEO_START( offtwall ) offtwall_state *state = machine.driver_data<offtwall_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(offtwall_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); diff --git a/src/mame/video/ohmygod.c b/src/mame/video/ohmygod.c index 8efa97e76e9..14d52271fd4 100644 --- a/src/mame/video/ohmygod.c +++ b/src/mame/video/ohmygod.c @@ -7,12 +7,11 @@ ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(ohmygod_state::get_tile_info) { - ohmygod_state *state = machine.driver_data<ohmygod_state>(); - UINT16 code = state->m_videoram[2 * tile_index + 1]; - UINT16 attr = state->m_videoram[2 * tile_index]; - SET_TILE_INFO( + UINT16 code = m_videoram[2 * tile_index + 1]; + UINT16 attr = m_videoram[2 * tile_index]; + SET_TILE_INFO_MEMBER( 0, code, (attr & 0x0f00) >> 8, @@ -30,7 +29,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( ohmygod ) { ohmygod_state *state = machine.driver_data<ohmygod_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ohmygod_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); } diff --git a/src/mame/video/ojankohs.c b/src/mame/video/ojankohs.c index 6d78e16f3e0..50b5da42544 100644 --- a/src/mame/video/ojankohs.c +++ b/src/mame/video/ojankohs.c @@ -153,30 +153,28 @@ WRITE8_MEMBER(ojankohs_state::ojankohs_flipscreen_w) } } -static TILE_GET_INFO( ojankohs_get_tile_info ) +TILE_GET_INFO_MEMBER(ojankohs_state::ojankohs_get_tile_info) { - ojankohs_state *state = machine.driver_data<ojankohs_state>(); - int tile = state->m_videoram[tile_index] | ((state->m_colorram[tile_index] & 0x0f) << 8); - int color = (state->m_colorram[tile_index] & 0xe0) >> 5; + int tile = m_videoram[tile_index] | ((m_colorram[tile_index] & 0x0f) << 8); + int color = (m_colorram[tile_index] & 0xe0) >> 5; - if (state->m_colorram[tile_index] & 0x10) + if (m_colorram[tile_index] & 0x10) { - tile |= (state->m_gfxreg & 0x07) << 12; - color |= (state->m_gfxreg & 0xe0) >> 2; + tile |= (m_gfxreg & 0x07) << 12; + color |= (m_gfxreg & 0xe0) >> 2; } - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); } -static TILE_GET_INFO( ojankoy_get_tile_info ) +TILE_GET_INFO_MEMBER(ojankohs_state::ojankoy_get_tile_info) { - ojankohs_state *state = machine.driver_data<ojankohs_state>(); - int tile = state->m_videoram[tile_index] | (state->m_videoram[tile_index + 0x1000] << 8); - int color = state->m_colorram[tile_index] & 0x3f; - int flipx = ((state->m_colorram[tile_index] & 0x40) >> 6) ? TILEMAP_FLIPX : 0; - int flipy = ((state->m_colorram[tile_index] & 0x80) >> 7) ? TILEMAP_FLIPY : 0; + int tile = m_videoram[tile_index] | (m_videoram[tile_index + 0x1000] << 8); + int color = m_colorram[tile_index] & 0x3f; + int flipx = ((m_colorram[tile_index] & 0x40) >> 6) ? TILEMAP_FLIPX : 0; + int flipy = ((m_colorram[tile_index] & 0x80) >> 7) ? TILEMAP_FLIPY : 0; - SET_TILE_INFO(0, tile, color, (flipx | flipy)); + SET_TILE_INFO_MEMBER(0, tile, color, (flipx | flipy)); } @@ -263,7 +261,7 @@ VIDEO_START( ojankohs ) { ojankohs_state *state = machine.driver_data<ojankohs_state>(); - state->m_tilemap = tilemap_create(machine, ojankohs_get_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ojankohs_state::ojankohs_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); // state->m_videoram = auto_alloc_array(machine, UINT8, 0x1000); // state->m_colorram = auto_alloc_array(machine, UINT8, 0x1000); // state->m_paletteram = auto_alloc_array(machine, UINT8, 0x800); @@ -273,7 +271,7 @@ VIDEO_START( ojankoy ) { ojankohs_state *state = machine.driver_data<ojankohs_state>(); - state->m_tilemap = tilemap_create(machine, ojankoy_get_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ojankohs_state::ojankoy_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); // state->m_videoram = auto_alloc_array(machine, UINT8, 0x2000); // state->m_colorram = auto_alloc_array(machine, UINT8, 0x1000); } diff --git a/src/mame/video/oneshot.c b/src/mame/video/oneshot.c index 26ea79d5efb..2fed7650108 100644 --- a/src/mame/video/oneshot.c +++ b/src/mame/video/oneshot.c @@ -5,12 +5,11 @@ /* bg tilemap */ -static TILE_GET_INFO( get_oneshot_bg_tile_info ) +TILE_GET_INFO_MEMBER(oneshot_state::get_oneshot_bg_tile_info) { - oneshot_state *state = machine.driver_data<oneshot_state>(); - int tileno = state->m_bg_videoram[tile_index * 2 + 1]; + int tileno = m_bg_videoram[tile_index * 2 + 1]; - SET_TILE_INFO(0, tileno, 0, 0); + SET_TILE_INFO_MEMBER(0, tileno, 0, 0); } WRITE16_MEMBER(oneshot_state::oneshot_bg_videoram_w) @@ -20,12 +19,11 @@ WRITE16_MEMBER(oneshot_state::oneshot_bg_videoram_w) } /* mid tilemap */ -static TILE_GET_INFO( get_oneshot_mid_tile_info ) +TILE_GET_INFO_MEMBER(oneshot_state::get_oneshot_mid_tile_info) { - oneshot_state *state = machine.driver_data<oneshot_state>(); - int tileno = state->m_mid_videoram[tile_index * 2 + 1]; + int tileno = m_mid_videoram[tile_index * 2 + 1]; - SET_TILE_INFO(0, tileno, 2, 0); + SET_TILE_INFO_MEMBER(0, tileno, 2, 0); } WRITE16_MEMBER(oneshot_state::oneshot_mid_videoram_w) @@ -36,12 +34,11 @@ WRITE16_MEMBER(oneshot_state::oneshot_mid_videoram_w) /* fg tilemap */ -static TILE_GET_INFO( get_oneshot_fg_tile_info ) +TILE_GET_INFO_MEMBER(oneshot_state::get_oneshot_fg_tile_info) { - oneshot_state *state = machine.driver_data<oneshot_state>(); - int tileno = state->m_fg_videoram[tile_index * 2 + 1]; + int tileno = m_fg_videoram[tile_index * 2 + 1]; - SET_TILE_INFO(0, tileno, 3, 0); + SET_TILE_INFO_MEMBER(0, tileno, 3, 0); } WRITE16_MEMBER(oneshot_state::oneshot_fg_videoram_w) @@ -54,9 +51,9 @@ VIDEO_START( oneshot ) { oneshot_state *state = machine.driver_data<oneshot_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_oneshot_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_mid_tilemap = tilemap_create(machine, get_oneshot_mid_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_oneshot_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(oneshot_state::get_oneshot_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(oneshot_state::get_oneshot_mid_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(oneshot_state::get_oneshot_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); state->m_mid_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/orbit.c b/src/mame/video/orbit.c index 08dd9a5a02b..064048d7548 100644 --- a/src/mame/video/orbit.c +++ b/src/mame/video/orbit.c @@ -14,25 +14,24 @@ WRITE8_MEMBER(orbit_state::orbit_playfield_w) } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(orbit_state::get_tile_info) { - orbit_state *state = machine.driver_data<orbit_state>(); - UINT8 code = state->m_playfield_ram[tile_index]; + UINT8 code = m_playfield_ram[tile_index]; int flags = 0; if (BIT(code, 6)) flags |= TILE_FLIPX; - if (state->m_flip_screen) + if (m_flip_screen) flags |= TILE_FLIPY; - SET_TILE_INFO(3, code & 0x3f, 0, flags); + SET_TILE_INFO_MEMBER(3, code & 0x3f, 0, flags); } VIDEO_START( orbit ) { orbit_state *state = machine.driver_data<orbit_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 30); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(orbit_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 30); } diff --git a/src/mame/video/othldrby.c b/src/mame/video/othldrby.c index 34482cbdab1..60482292619 100644 --- a/src/mame/video/othldrby.c +++ b/src/mame/video/othldrby.c @@ -28,19 +28,19 @@ INLINE void get_tile_info( running_machine &machine, tile_data &tileinfo, int ti tileinfo.category = (attr & 0x0600) >> 9; } -static TILE_GET_INFO( get_tile_info0 ) +TILE_GET_INFO_MEMBER(othldrby_state::get_tile_info0) { - get_tile_info(machine, tileinfo, tile_index, 0); + get_tile_info(machine(), tileinfo, tile_index, 0); } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(othldrby_state::get_tile_info1) { - get_tile_info(machine, tileinfo, tile_index, 1); + get_tile_info(machine(), tileinfo, tile_index, 1); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(othldrby_state::get_tile_info2) { - get_tile_info(machine, tileinfo, tile_index, 2); + get_tile_info(machine(), tileinfo, tile_index, 2); } @@ -55,9 +55,9 @@ VIDEO_START( othldrby ) { othldrby_state *state = machine.driver_data<othldrby_state>(); - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_bg_tilemap[2] = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(othldrby_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(othldrby_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(othldrby_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_vram = auto_alloc_array(machine, UINT16, VIDEORAM_SIZE); state->m_buf_spriteram = auto_alloc_array(machine, UINT16, 2 * SPRITERAM_SIZE); diff --git a/src/mame/video/pacland.c b/src/mame/video/pacland.c index 944587bd6a9..4e6388d1101 100644 --- a/src/mame/video/pacland.c +++ b/src/mame/video/pacland.c @@ -157,31 +157,29 @@ PALETTE_INIT( pacland ) ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(pacland_state::get_bg_tile_info) { - pacland_state *state = machine.driver_data<pacland_state>(); int offs = tile_index * 2; - int attr = state->m_videoram2[offs + 1]; - int code = state->m_videoram2[offs] + ((attr & 0x01) << 8); + int attr = m_videoram2[offs + 1]; + int code = m_videoram2[offs] + ((attr & 0x01) << 8); int color = ((attr & 0x3e) >> 1) + ((code & 0x1c0) >> 1); int flags = TILE_FLIPYX(attr >> 6); - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(pacland_state::get_fg_tile_info) { - pacland_state *state = machine.driver_data<pacland_state>(); int offs = tile_index * 2; - int attr = state->m_videoram[offs + 1]; - int code = state->m_videoram[offs] + ((attr & 0x01) << 8); + int attr = m_videoram[offs + 1]; + int code = m_videoram[offs] + ((attr & 0x01) << 8); int color = ((attr & 0x1e) >> 1) + ((code & 0x1e0) >> 1); int flags = TILE_FLIPYX(attr >> 6); tileinfo.category = (attr & 0x20) ? 1 : 0; tileinfo.group = color; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } @@ -200,8 +198,8 @@ VIDEO_START( pacland ) machine.primary_screen->register_screen_bitmap(state->m_fg_bitmap); state->m_fg_bitmap.fill(0xffff); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); - 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(pacland_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacland_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_fg_tilemap->set_scroll_rows(32); diff --git a/src/mame/video/pacman.c b/src/mame/video/pacman.c index fe794b04a62..4eaca441462 100644 --- a/src/mame/video/pacman.c +++ b/src/mame/video/pacman.c @@ -119,7 +119,7 @@ PALETTE_INIT( pacman ) } } -static TILEMAP_MAPPER( pacman_scan_rows ) +TILEMAP_MAPPER_MEMBER(pacman_state::pacman_scan_rows) { int offs; @@ -133,13 +133,12 @@ static TILEMAP_MAPPER( pacman_scan_rows ) return offs; } -static TILE_GET_INFO( pacman_get_tile_info ) +TILE_GET_INFO_MEMBER(pacman_state::pacman_get_tile_info) { - pacman_state *state = machine.driver_data<pacman_state>(); - int code = state->m_videoram[tile_index] | (state->m_charbank << 8); - int attr = (state->m_colorram[tile_index] & 0x1f) | (state->m_colortablebank << 5) | (state->m_palettebank << 6 ); + int code = m_videoram[tile_index] | (m_charbank << 8); + int attr = (m_colorram[tile_index] & 0x1f) | (m_colortablebank << 5) | (m_palettebank << 6 ); - SET_TILE_INFO(0,code,attr,0); + SET_TILE_INFO_MEMBER(0,code,attr,0); } /*************************************************************************** @@ -177,7 +176,7 @@ VIDEO_START( pacman ) /* one pixel to the left to get a more correct placement */ state->m_xoffsethack = 1; - state->m_bg_tilemap = tilemap_create( machine, pacman_get_tile_info, pacman_scan_rows, 8, 8, 36, 28 ); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),state), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),state), 8, 8, 36, 28 ); state->m_bg_tilemap->set_scrolldx(0, 384 - 288 ); state->m_bg_tilemap->set_scrolldy(0, 264 - 224 ); @@ -333,7 +332,7 @@ VIDEO_START( pengo ) state->m_inv_spr = 0; state->m_xoffsethack = 0; - state->m_bg_tilemap = tilemap_create( machine, pacman_get_tile_info, pacman_scan_rows, 8, 8, 36, 28 ); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),state), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),state), 8, 8, 36, 28 ); state->m_bg_tilemap->set_scrolldx(0, 384 - 288 ); state->m_bg_tilemap->set_scrolldy(0, 264 - 224 ); @@ -374,17 +373,16 @@ S2650 Games **************************************************************************/ -static TILE_GET_INFO( s2650_get_tile_info ) +TILE_GET_INFO_MEMBER(pacman_state::s2650_get_tile_info) { - pacman_state *state = machine.driver_data<pacman_state>(); int colbank, code, attr; - colbank = state->m_s2650games_tileram[tile_index & 0x1f] & 0x3; + colbank = m_s2650games_tileram[tile_index & 0x1f] & 0x3; - code = state->m_videoram[tile_index] + (colbank << 8); - attr = state->m_colorram[tile_index & 0x1f]; + code = m_videoram[tile_index] + (colbank << 8); + attr = m_colorram[tile_index & 0x1f]; - SET_TILE_INFO(0,code,attr & 0x1f,0); + SET_TILE_INFO_MEMBER(0,code,attr & 0x1f,0); } VIDEO_START( s2650games ) @@ -401,7 +399,7 @@ VIDEO_START( s2650games ) state->m_inv_spr = 0; state->m_xoffsethack = 1; - state->m_bg_tilemap = tilemap_create( machine, s2650_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32 ); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacman_state::s2650_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); state->m_bg_tilemap->set_scroll_cols(32); } @@ -501,7 +499,7 @@ Jr. Pac-Man 2018 - 2045 = column 1 attr (28 rows) */ -static TILEMAP_MAPPER( jrpacman_scan_rows ) +TILEMAP_MAPPER_MEMBER(pacman_state::jrpacman_scan_rows) { int offs; @@ -516,9 +514,8 @@ static TILEMAP_MAPPER( jrpacman_scan_rows ) return offs; } -static TILE_GET_INFO( jrpacman_get_tile_info ) +TILE_GET_INFO_MEMBER(pacman_state::jrpacman_get_tile_info) { - pacman_state *state = machine.driver_data<pacman_state>(); int color_index, code, attr; if( tile_index < 1792 ) { @@ -529,10 +526,10 @@ static TILE_GET_INFO( jrpacman_get_tile_info ) color_index = tile_index + 0x80; } - code = state->m_videoram[tile_index] | (state->m_charbank << 8); - attr = (state->m_videoram[color_index] & 0x1f) | (state->m_colortablebank << 5) | (state->m_palettebank << 6 ); + code = m_videoram[tile_index] | (m_charbank << 8); + attr = (m_videoram[color_index] & 0x1f) | (m_colortablebank << 5) | (m_palettebank << 6 ); - SET_TILE_INFO(0,code,attr,0); + SET_TILE_INFO_MEMBER(0,code,attr,0); } static void jrpacman_mark_tile_dirty( running_machine &machine, int offset ) @@ -573,7 +570,7 @@ VIDEO_START( jrpacman ) state->m_inv_spr = 0; state->m_xoffsethack = 1; - state->m_bg_tilemap = tilemap_create( machine, jrpacman_get_tile_info,jrpacman_scan_rows,8,8,36,54 ); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacman_state::jrpacman_get_tile_info),state),tilemap_mapper_delegate(FUNC(pacman_state::jrpacman_scan_rows),state),8,8,36,54 ); state->m_bg_tilemap->set_transparent_pen(0 ); state->m_bg_tilemap->set_scroll_cols(36 ); diff --git a/src/mame/video/pandoras.c b/src/mame/video/pandoras.c index da2abbd1f7d..e90e6cc06b3 100644 --- a/src/mame/video/pandoras.c +++ b/src/mame/video/pandoras.c @@ -88,13 +88,12 @@ PALETTE_INIT( pandoras ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info0 ) +TILE_GET_INFO_MEMBER(pandoras_state::get_tile_info0) { - pandoras_state *state = machine.driver_data<pandoras_state>(); - UINT8 attr = state->m_colorram[tile_index]; - SET_TILE_INFO( + UINT8 attr = m_colorram[tile_index]; + SET_TILE_INFO_MEMBER( 1, - state->m_videoram[tile_index] + ((attr & 0x10) << 4), + m_videoram[tile_index] + ((attr & 0x10) << 4), attr & 0x0f, TILE_FLIPYX((attr & 0xc0) >> 6)); tileinfo.category = (attr & 0x20) >> 5; @@ -109,7 +108,7 @@ static TILE_GET_INFO( get_tile_info0 ) VIDEO_START( pandoras ) { pandoras_state *state = machine.driver_data<pandoras_state>(); - state->m_layer0 = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pandoras_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->save_item(NAME(state->m_flipscreen)); } diff --git a/src/mame/video/paradise.c b/src/mame/video/paradise.c index c49c24dc3ce..71384b85890 100644 --- a/src/mame/video/paradise.c +++ b/src/mame/video/paradise.c @@ -95,11 +95,10 @@ WRITE8_MEMBER(paradise_state::paradise_palbank_w) } } -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(paradise_state::get_tile_info_0) { - paradise_state *state = machine.driver_data<paradise_state>(); - int code = state->m_vram_0[tile_index] + (state->m_vram_0[tile_index + 0x400] << 8); - SET_TILE_INFO(1, code, state->m_palbank, 0); + int code = m_vram_0[tile_index] + (m_vram_0[tile_index + 0x400] << 8); + SET_TILE_INFO_MEMBER(1, code, m_palbank, 0); } @@ -110,11 +109,10 @@ WRITE8_MEMBER(paradise_state::paradise_vram_1_w) m_tilemap_1->mark_tile_dirty(offset % 0x400); } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(paradise_state::get_tile_info_1) { - paradise_state *state = machine.driver_data<paradise_state>(); - int code = state->m_vram_1[tile_index] + (state->m_vram_1[tile_index + 0x400] << 8); - SET_TILE_INFO(2, code, 0, 0); + int code = m_vram_1[tile_index] + (m_vram_1[tile_index + 0x400] << 8); + SET_TILE_INFO_MEMBER(2, code, 0, 0); } @@ -125,11 +123,10 @@ WRITE8_MEMBER(paradise_state::paradise_vram_2_w) m_tilemap_2->mark_tile_dirty(offset % 0x400); } -static TILE_GET_INFO( get_tile_info_2 ) +TILE_GET_INFO_MEMBER(paradise_state::get_tile_info_2) { - paradise_state *state = machine.driver_data<paradise_state>(); - int code = state->m_vram_2[tile_index] + (state->m_vram_2[tile_index + 0x400] << 8); - SET_TILE_INFO(3, code, 0, 0); + int code = m_vram_2[tile_index] + (m_vram_2[tile_index + 0x400] << 8); + SET_TILE_INFO_MEMBER(3, code, 0, 0); } /* 256 x 256 bitmap. 4 bits per pixel so every byte encodes 2 pixels */ @@ -158,9 +155,9 @@ VIDEO_START( paradise ) { paradise_state *state = machine.driver_data<paradise_state>(); - state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); - state->m_tilemap_2 = tilemap_create(machine, get_tile_info_2, TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); + state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); /* pixmap */ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap); diff --git a/src/mame/video/pass.c b/src/mame/video/pass.c index 874053c649f..c4259502677 100644 --- a/src/mame/video/pass.c +++ b/src/mame/video/pass.c @@ -5,14 +5,13 @@ /* background tilemap stuff */ -static TILE_GET_INFO( get_pass_bg_tile_info ) +TILE_GET_INFO_MEMBER(pass_state::get_pass_bg_tile_info) { - pass_state *state = machine.driver_data<pass_state>(); int tileno, fx; - tileno = state->m_bg_videoram[tile_index] & 0x1fff; - fx = (state->m_bg_videoram[tile_index] & 0xc000) >> 14; - SET_TILE_INFO(1, tileno, 0, TILE_FLIPYX(fx)); + tileno = m_bg_videoram[tile_index] & 0x1fff; + fx = (m_bg_videoram[tile_index] & 0xc000) >> 14; + SET_TILE_INFO_MEMBER(1, tileno, 0, TILE_FLIPYX(fx)); } @@ -25,15 +24,14 @@ WRITE16_MEMBER(pass_state::pass_bg_videoram_w) /* foreground 'sprites' tilemap stuff */ -static TILE_GET_INFO( get_pass_fg_tile_info ) +TILE_GET_INFO_MEMBER(pass_state::get_pass_fg_tile_info) { - pass_state *state = machine.driver_data<pass_state>(); int tileno, flip; - tileno = state->m_fg_videoram[tile_index] & 0x3fff; - flip = (state->m_fg_videoram[tile_index] & 0xc000) >>14; + tileno = m_fg_videoram[tile_index] & 0x3fff; + flip = (m_fg_videoram[tile_index] & 0xc000) >>14; - SET_TILE_INFO(0, tileno, 0, TILE_FLIPYX(flip)); + SET_TILE_INFO_MEMBER(0, tileno, 0, TILE_FLIPYX(flip)); } @@ -49,8 +47,8 @@ VIDEO_START( pass ) { pass_state *state = machine.driver_data<pass_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_pass_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, get_pass_fg_tile_info, TILEMAP_SCAN_ROWS, 4, 4, 128, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pass_state::get_pass_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pass_state::get_pass_fg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 4, 128, 64); state->m_fg_tilemap->set_transparent_pen(255); } diff --git a/src/mame/video/pbaction.c b/src/mame/video/pbaction.c index efbdf4f59f8..1bbbc43e546 100644 --- a/src/mame/video/pbaction.c +++ b/src/mame/video/pbaction.c @@ -48,33 +48,31 @@ WRITE8_MEMBER(pbaction_state::pbaction_flipscreen_w) flip_screen_set(data & 0x01); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(pbaction_state::get_bg_tile_info) { - pbaction_state *state = machine.driver_data<pbaction_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + 0x10 * (attr & 0x70); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + 0x10 * (attr & 0x70); int color = attr & 0x07; int flags = (attr & 0x80) ? TILE_FLIPY : 0; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(pbaction_state::get_fg_tile_info) { - pbaction_state *state = machine.driver_data<pbaction_state>(); - int attr = state->m_colorram2[tile_index]; - int code = state->m_videoram2[tile_index] + 0x10 * (attr & 0x30); + int attr = m_colorram2[tile_index]; + int code = m_videoram2[tile_index] + 0x10 * (attr & 0x30); int color = attr & 0x0f; 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); } VIDEO_START( pbaction ) { pbaction_state *state = machine.driver_data<pbaction_state>(); - 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(pbaction_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(pbaction_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/video/pgm.c b/src/mame/video/pgm.c index e7ccb2a1a34..e4bc40c77a8 100644 --- a/src/mame/video/pgm.c +++ b/src/mame/video/pgm.c @@ -561,7 +561,7 @@ WRITE16_MEMBER(pgm_state::pgm_tx_videoram_w) m_tx_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_pgm_tx_tilemap_tile_info ) +TILE_GET_INFO_MEMBER(pgm_state::get_pgm_tx_tilemap_tile_info) { /* 0x904000 - 0x90ffff is the Text Overlay Ram (pgm_tx_videoram) @@ -578,14 +578,13 @@ static TILE_GET_INFO( get_pgm_tx_tilemap_tile_info ) p = palette f = flip */ - pgm_state *state = machine.driver_data<pgm_state>(); int tileno, colour, flipyx; //,game; - tileno = state->m_tx_videoram[tile_index * 2] & 0xffff; - colour = (state->m_tx_videoram[tile_index * 2 + 1] & 0x3e) >> 1; - flipyx = (state->m_tx_videoram[tile_index * 2 + 1] & 0xc0) >> 6; + tileno = m_tx_videoram[tile_index * 2] & 0xffff; + colour = (m_tx_videoram[tile_index * 2 + 1] & 0x3e) >> 1; + flipyx = (m_tx_videoram[tile_index * 2 + 1] & 0xc0) >> 6; - SET_TILE_INFO(0,tileno,colour,TILE_FLIPYX(flipyx)); + SET_TILE_INFO_MEMBER(0,tileno,colour,TILE_FLIPYX(flipyx)); } /* BG Layer */ @@ -596,19 +595,18 @@ WRITE16_MEMBER(pgm_state::pgm_bg_videoram_w) m_bg_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_pgm_bg_tilemap_tile_info ) +TILE_GET_INFO_MEMBER(pgm_state::get_pgm_bg_tilemap_tile_info) { /* pretty much the same as tx layer */ - pgm_state *state = machine.driver_data<pgm_state>(); int tileno, colour, flipyx; - tileno = state->m_bg_videoram[tile_index *2] & 0xffff; + tileno = m_bg_videoram[tile_index *2] & 0xffff; - colour = (state->m_bg_videoram[tile_index * 2 + 1] & 0x3e) >> 1; - flipyx = (state->m_bg_videoram[tile_index * 2 + 1] & 0xc0) >> 6; + colour = (m_bg_videoram[tile_index * 2 + 1] & 0x3e) >> 1; + flipyx = (m_bg_videoram[tile_index * 2 + 1] & 0xc0) >> 6; - SET_TILE_INFO(1,tileno,colour,TILE_FLIPYX(flipyx)); + SET_TILE_INFO_MEMBER(1,tileno,colour,TILE_FLIPYX(flipyx)); } @@ -625,10 +623,10 @@ VIDEO_START( pgm ) state->m_aoffset = 0; state->m_boffset = 0; - state->m_tx_tilemap = tilemap_create(machine, get_pgm_tx_tilemap_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pgm_state::get_pgm_tx_tilemap_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_tx_tilemap->set_transparent_pen(15); - state->m_bg_tilemap = tilemap_create(machine, get_pgm_bg_tilemap_tile_info, TILEMAP_SCAN_ROWS, 32, 32, 64, 16); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pgm_state::get_pgm_bg_tilemap_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 64, 16); state->m_bg_tilemap->set_transparent_pen(31); state->m_bg_tilemap->set_scroll_rows(16 * 32); diff --git a/src/mame/video/phoenix.c b/src/mame/video/phoenix.c index 5f7a89fd163..33dac40ff1e 100644 --- a/src/mame/video/phoenix.c +++ b/src/mame/video/phoenix.c @@ -136,30 +136,28 @@ PALETTE_INIT( pleiads ) ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(phoenix_state::get_fg_tile_info) { - phoenix_state *state = machine.driver_data<phoenix_state>(); int code, col; - code = state->m_videoram_pg[state->m_videoram_pg_index][tile_index]; + code = m_videoram_pg[m_videoram_pg_index][tile_index]; col = (code >> 5); - col = col | 0x08 | (state->m_palette_bank << 4); - SET_TILE_INFO( + col = col | 0x08 | (m_palette_bank << 4); + SET_TILE_INFO_MEMBER( 1, code, col, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(phoenix_state::get_bg_tile_info) { - phoenix_state *state = machine.driver_data<phoenix_state>(); int code, col; - code = state->m_videoram_pg[state->m_videoram_pg_index][tile_index + 0x800]; + code = m_videoram_pg[m_videoram_pg_index][tile_index + 0x800]; col = (code >> 5); - col = col | 0x00 | (state->m_palette_bank << 4); - SET_TILE_INFO( + col = col | 0x00 | (m_palette_bank << 4); + SET_TILE_INFO_MEMBER( 0, code, col, @@ -186,8 +184,8 @@ VIDEO_START( phoenix ) state->m_palette_bank = 0; state->m_cocktail_mode = 0; - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(phoenix_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(phoenix_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/pingpong.c b/src/mame/video/pingpong.c index 6d7d41d7630..4a5a0397d6a 100644 --- a/src/mame/video/pingpong.c +++ b/src/mame/video/pingpong.c @@ -95,21 +95,20 @@ WRITE8_MEMBER(pingpong_state::pingpong_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(pingpong_state::get_bg_tile_info) { - pingpong_state *state = machine.driver_data<pingpong_state>(); - 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; 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); } VIDEO_START( pingpong ) { pingpong_state *state = machine.driver_data<pingpong_state>(); - 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(pingpong_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/video/pirates.c b/src/mame/video/pirates.c index 5c2b9b3d66b..046ff3805e0 100644 --- a/src/mame/video/pirates.c +++ b/src/mame/video/pirates.c @@ -6,31 +6,28 @@ /* tilemaps */ -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(pirates_state::get_tx_tile_info) { - pirates_state *state = machine.driver_data<pirates_state>(); - int code = state->m_tx_tileram[tile_index*2]; - int colr = state->m_tx_tileram[tile_index*2+1]; + int code = m_tx_tileram[tile_index*2]; + int colr = m_tx_tileram[tile_index*2+1]; - SET_TILE_INFO(0,code,colr,0); + SET_TILE_INFO_MEMBER(0,code,colr,0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(pirates_state::get_fg_tile_info) { - pirates_state *state = machine.driver_data<pirates_state>(); - int code = state->m_fg_tileram[tile_index*2]; - int colr = state->m_fg_tileram[tile_index*2+1]+0x80; + int code = m_fg_tileram[tile_index*2]; + int colr = m_fg_tileram[tile_index*2+1]+0x80; - SET_TILE_INFO(0,code,colr,0); + SET_TILE_INFO_MEMBER(0,code,colr,0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(pirates_state::get_bg_tile_info) { - pirates_state *state = machine.driver_data<pirates_state>(); - int code = state->m_bg_tileram[tile_index*2]; - int colr = state->m_bg_tileram[tile_index*2+1]+ 0x100; + int code = m_bg_tileram[tile_index*2]; + int colr = m_bg_tileram[tile_index*2+1]+ 0x100; - SET_TILE_INFO(0,code,colr,0); + SET_TILE_INFO_MEMBER(0,code,colr,0); } @@ -39,11 +36,11 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START(pirates) { pirates_state *state = machine.driver_data<pirates_state>(); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,36,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pirates_state::get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,36,32); /* Not sure how big they can be, Pirates uses only 32 columns, Genix 44 */ - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS, 8,8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pirates_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pirates_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS, 8,8,64,32); state->m_tx_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/pitnrun.c b/src/mame/video/pitnrun.c index fe784e72aa2..57a3f1e064f 100644 --- a/src/mame/video/pitnrun.c +++ b/src/mame/video/pitnrun.c @@ -21,28 +21,26 @@ In debug build press 'w' for spotlight and 'e' for lightning -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(pitnrun_state::get_tile_info1) { - pitnrun_state *state = machine.driver_data<pitnrun_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code; code = videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, 0, 0); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(pitnrun_state::get_tile_info2) { - pitnrun_state *state = machine.driver_data<pitnrun_state>(); int code; - code = state->m_videoram2[tile_index]; - SET_TILE_INFO( + code = m_videoram2[tile_index]; + SET_TILE_INFO_MEMBER( 1, - code + (state->m_char_bank<<8), - state->m_color_select&1, + code + (m_char_bank<<8), + m_color_select&1, 0); } @@ -165,8 +163,8 @@ PALETTE_INIT (pitnrun) VIDEO_START(pitnrun) { pitnrun_state *state = machine.driver_data<pitnrun_state>(); - state->m_fg = tilemap_create( machine, get_tile_info1,TILEMAP_SCAN_ROWS,8,8,32,32 ); - state->m_bg = tilemap_create( machine, get_tile_info2,TILEMAP_SCAN_ROWS,8,8,32*4,32 ); + state->m_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pitnrun_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); + state->m_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pitnrun_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,32*4,32 ); state->m_fg->set_transparent_pen(0 ); state->m_tmp_bitmap[0] = auto_bitmap_ind16_alloc(machine,128,128); state->m_tmp_bitmap[1] = auto_bitmap_ind16_alloc(machine,128,128); diff --git a/src/mame/video/playch10.c b/src/mame/video/playch10.c index 820b12ad703..477b8a16a22 100644 --- a/src/mame/video/playch10.c +++ b/src/mame/video/playch10.c @@ -79,15 +79,14 @@ const ppu2c0x_interface playch10_ppu_interface = ppu_irq /* irq */ }; -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(playch10_state::get_bg_tile_info) { - playch10_state *state = machine.driver_data<playch10_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int offs = tile_index * 2; int code = videoram[offs] + ((videoram[offs + 1] & 0x07) << 8); int color = (videoram[offs + 1] >> 3) & 0x1f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( playch10 ) @@ -96,7 +95,7 @@ VIDEO_START( playch10 ) const UINT8 *bios = state->memregion("maincpu")->base(); state->m_pc10_bios = (bios[3] == 0x2a) ? 1 : 2; - 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(playch10_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } @@ -106,7 +105,7 @@ VIDEO_START( playch10_hboard ) const UINT8 *bios = state->memregion("maincpu")->base(); state->m_pc10_bios = (bios[3] == 0x2a) ? 1 : 2; - 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(playch10_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/playmark.c b/src/mame/video/playmark.c index c81f8a11b58..c956fdd03e9 100644 --- a/src/mame/video/playmark.c +++ b/src/mame/video/playmark.c @@ -8,103 +8,94 @@ ***************************************************************************/ -static TILE_GET_INFO( bigtwin_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::bigtwin_get_tx_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - UINT16 code = state->m_videoram1[2 * tile_index]; - UINT16 color = state->m_videoram1[2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code = m_videoram1[2 * tile_index]; + UINT16 color = m_videoram1[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 2, code, color, 0); } -static TILE_GET_INFO( bigtwin_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::bigtwin_get_fg_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - UINT16 code = state->m_videoram2[2 * tile_index]; - UINT16 color = state->m_videoram2[2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code = m_videoram2[2 * tile_index]; + UINT16 color = m_videoram2[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 1, code, color, 0); } -static TILE_GET_INFO( wbeachvl_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::wbeachvl_get_tx_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - UINT16 code = state->m_videoram1[2 * tile_index]; - UINT16 color = state->m_videoram1[2 * tile_index + 1]; + UINT16 code = m_videoram1[2 * tile_index]; + UINT16 color = m_videoram1[2 * tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code, color / 4, 0); } -static TILE_GET_INFO( wbeachvl_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::wbeachvl_get_fg_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - UINT16 code = state->m_videoram2[2 * tile_index]; - UINT16 color = state->m_videoram2[2 * tile_index + 1]; + UINT16 code = m_videoram2[2 * tile_index]; + UINT16 color = m_videoram2[2 * tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code & 0x7fff, color / 4 + 8, (code & 0x8000) ? TILE_FLIPX : 0); } -static TILE_GET_INFO( wbeachvl_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::wbeachvl_get_bg_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - UINT16 code = state->m_videoram3[2 * tile_index]; - UINT16 color = state->m_videoram3[2 * tile_index + 1]; + UINT16 code = m_videoram3[2 * tile_index]; + UINT16 color = m_videoram3[2 * tile_index + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code & 0x7fff, color / 4, (code & 0x8000) ? TILE_FLIPX : 0); } -static TILE_GET_INFO( hrdtimes_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::hrdtimes_get_tx_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - int code = state->m_videoram1[tile_index] & 0x03ff; - int colr = state->m_videoram1[tile_index] & 0xe000; + int code = m_videoram1[tile_index] & 0x03ff; + int colr = m_videoram1[tile_index] & 0xe000; - SET_TILE_INFO(2,code + state->m_txt_tile_offset, colr >> 13, 0); + SET_TILE_INFO_MEMBER(2,code + m_txt_tile_offset, colr >> 13, 0); } -static TILE_GET_INFO( bigtwinb_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::bigtwinb_get_tx_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - int code = state->m_videoram1[tile_index] & 0x0fff; - int colr = state->m_videoram1[tile_index] & 0xf000; + int code = m_videoram1[tile_index] & 0x0fff; + int colr = m_videoram1[tile_index] & 0xf000; - SET_TILE_INFO(2,code + state->m_txt_tile_offset, colr >> 12, 0); + SET_TILE_INFO_MEMBER(2,code + m_txt_tile_offset, colr >> 12, 0); } -static TILE_GET_INFO( hrdtimes_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::hrdtimes_get_fg_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - int code = state->m_videoram2[tile_index] & 0x1fff; - int colr = state->m_videoram2[tile_index] & 0xe000; + int code = m_videoram2[tile_index] & 0x1fff; + int colr = m_videoram2[tile_index] & 0xe000; - SET_TILE_INFO(1,code + 0x2000,(colr >> 13) + 8,0); + SET_TILE_INFO_MEMBER(1,code + 0x2000,(colr >> 13) + 8,0); } -static TILE_GET_INFO( hrdtimes_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(playmark_state::hrdtimes_get_bg_tile_info) { - playmark_state *state = machine.driver_data<playmark_state>(); - int code = state->m_videoram3[tile_index] & 0x1fff; - int colr = state->m_videoram3[tile_index] & 0xe000; + int code = m_videoram3[tile_index] & 0x1fff; + int colr = m_videoram3[tile_index] & 0xe000; - SET_TILE_INFO(1, code, colr >> 13, 0); + SET_TILE_INFO_MEMBER(1, code, colr >> 13, 0); } /*************************************************************************** @@ -117,8 +108,8 @@ VIDEO_START( bigtwin ) { playmark_state *state = machine.driver_data<playmark_state>(); - state->m_tx_tilemap = tilemap_create(machine, bigtwin_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, bigtwin_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tx_tilemap->set_transparent_pen(0); @@ -136,9 +127,9 @@ VIDEO_START( bigtwinb ) { playmark_state *state = machine.driver_data<playmark_state>(); - state->m_tx_tilemap = tilemap_create(machine, bigtwinb_get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, hrdtimes_get_fg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, hrdtimes_get_bg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwinb_get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tx_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); @@ -159,9 +150,9 @@ VIDEO_START( wbeachvl ) { playmark_state *state = machine.driver_data<playmark_state>(); - state->m_tx_tilemap = tilemap_create(machine, wbeachvl_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, wbeachvl_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); - state->m_bg_tilemap = tilemap_create(machine, wbeachvl_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); state->m_tx_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); @@ -179,8 +170,8 @@ VIDEO_START( excelsr ) { playmark_state *state = machine.driver_data<playmark_state>(); - state->m_tx_tilemap = tilemap_create(machine, bigtwin_get_tx_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, bigtwin_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tx_tilemap->set_transparent_pen(0); @@ -197,9 +188,9 @@ VIDEO_START( hotmind ) { playmark_state *state = machine.driver_data<playmark_state>(); - state->m_tx_tilemap = tilemap_create(machine, hrdtimes_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, hrdtimes_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, hrdtimes_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tx_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); @@ -221,9 +212,9 @@ VIDEO_START( hrdtimes ) { playmark_state *state = machine.driver_data<playmark_state>(); - state->m_tx_tilemap = tilemap_create(machine, hrdtimes_get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_fg_tilemap = tilemap_create(machine, hrdtimes_get_fg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_bg_tilemap = tilemap_create(machine, hrdtimes_get_bg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tx_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/plygonet.c b/src/mame/video/plygonet.c index ad9ddb6c837..013d9840b47 100644 --- a/src/mame/video/plygonet.c +++ b/src/mame/video/plygonet.c @@ -13,27 +13,25 @@ /* TTL text plane */ -static TILE_GET_INFO( ttl_get_tile_info ) +TILE_GET_INFO_MEMBER(polygonet_state::ttl_get_tile_info) { - polygonet_state *state = machine.driver_data<polygonet_state>(); int attr, code; - code = state->m_ttl_vram[tile_index]&0xfff; + code = m_ttl_vram[tile_index]&0xfff; - attr = state->m_ttl_vram[tile_index]>>12; /* palette in all 4 bits? */ + attr = m_ttl_vram[tile_index]>>12; /* palette in all 4 bits? */ - SET_TILE_INFO(state->m_ttl_gfx_index, code, attr, 0); + SET_TILE_INFO_MEMBER(m_ttl_gfx_index, code, attr, 0); } -static TILE_GET_INFO( roz_get_tile_info ) +TILE_GET_INFO_MEMBER(polygonet_state::roz_get_tile_info) { - polygonet_state *state = machine.driver_data<polygonet_state>(); int attr, code; - attr = (state->m_roz_vram[tile_index] >> 12) + 16; /* roz base palette is palette 16 */ - code = state->m_roz_vram[tile_index] & 0x3ff; + attr = (m_roz_vram[tile_index] >> 12) + 16; /* roz base palette is palette 16 */ + code = m_roz_vram[tile_index] & 0x3ff; - SET_TILE_INFO(0, code, attr, 0); + SET_TILE_INFO_MEMBER(0, code, attr, 0); } READ32_MEMBER(polygonet_state::polygonet_ttl_ram_r) @@ -70,12 +68,12 @@ WRITE32_MEMBER(polygonet_state::polygonet_roz_ram_w) m_roz_tilemap->mark_tile_dirty(offset*2+1); } -static TILEMAP_MAPPER( plygonet_scan ) +TILEMAP_MAPPER_MEMBER(polygonet_state::plygonet_scan) { return row * num_cols + (col^1); } -static TILEMAP_MAPPER( plygonet_scan_cols ) +TILEMAP_MAPPER_MEMBER(polygonet_state::plygonet_scan_cols) { return col * num_rows + (row^1); } @@ -105,12 +103,12 @@ VIDEO_START( polygonet ) machine.gfx[state->m_ttl_gfx_index] = auto_alloc(machine, gfx_element(machine, charlayout, machine.root_device().memregion("gfx1")->base(), machine.total_colors() / 16, 0)); /* create the tilemap */ - state->m_ttl_tilemap = tilemap_create(machine, ttl_get_tile_info, plygonet_scan, 8, 8, 64, 32); + state->m_ttl_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(polygonet_state::ttl_get_tile_info),state), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan),state), 8, 8, 64, 32); state->m_ttl_tilemap->set_transparent_pen(0); /* set up the roz t-map too */ - state->m_roz_tilemap = tilemap_create(machine, roz_get_tile_info, plygonet_scan_cols, 16, 16, 32, 64); + state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(polygonet_state::roz_get_tile_info),state), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan_cols),state), 16, 16, 32, 64); state->m_roz_tilemap->set_transparent_pen(0); /* save states */ diff --git a/src/mame/video/pokechmp.c b/src/mame/video/pokechmp.c index 9bc60be7eaa..1ab9d2889f3 100644 --- a/src/mame/video/pokechmp.c +++ b/src/mame/video/pokechmp.c @@ -20,20 +20,19 @@ WRITE8_MEMBER(pokechmp_state::pokechmp_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(pokechmp_state::get_bg_tile_info) { - pokechmp_state *state = machine.driver_data<pokechmp_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[tile_index*2+1] + ((videoram[tile_index*2] & 0x3f) << 8); int color = videoram[tile_index*2] >> 6; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( pokechmp ) { pokechmp_state *state = machine.driver_data<pokechmp_state>(); - 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(pokechmp_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/polepos.c b/src/mame/video/polepos.c index 685b6ee60fb..28be78ff160 100644 --- a/src/mame/video/polepos.c +++ b/src/mame/video/polepos.c @@ -145,30 +145,28 @@ PALETTE_INIT( polepos ) ***************************************************************************/ -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(polepos_state::bg_get_tile_info) { - polepos_state *state = machine.driver_data<polepos_state>(); - UINT16 word = state->m_view16_memory[tile_index]; + UINT16 word = m_view16_memory[tile_index]; int code = (word & 0xff) | ((word & 0x4000) >> 6); int color = (word & 0x3f00) >> 8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, color, 0); } -static TILE_GET_INFO( tx_get_tile_info ) +TILE_GET_INFO_MEMBER(polepos_state::tx_get_tile_info) { - polepos_state *state = machine.driver_data<polepos_state>(); - UINT16 word = state->m_alpha16_memory[tile_index]; + UINT16 word = m_alpha16_memory[tile_index]; int code = (word & 0xff) | ((word & 0x4000) >> 6); int color = (word & 0x3f00) >> 8; /* I assume the purpose of CHACL is to allow the Z80 to control the display (therefore using only the bottom 8 bits of tilemap RAM) in case the Z8002 is not working. */ - if (state->m_chacl == 0) + if (m_chacl == 0) { code &= 0xff; color = 0; @@ -177,7 +175,7 @@ static TILE_GET_INFO( tx_get_tile_info ) /* 128V input to the palette PROM */ if (tile_index >= 32*16) color |= 0x40; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -196,8 +194,8 @@ static TILE_GET_INFO( tx_get_tile_info ) VIDEO_START( polepos ) { polepos_state *state = machine.driver_data<polepos_state>(); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_COLS,8,8,64,16); - state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(polepos_state::bg_get_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,16); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(polepos_state::tx_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); colortable_configure_tilemap_groups(machine.colortable, state->m_tx_tilemap, machine.gfx[0], 0x2f); } diff --git a/src/mame/video/poolshrk.c b/src/mame/video/poolshrk.c index 8d8de384707..283c09ccabf 100644 --- a/src/mame/video/poolshrk.c +++ b/src/mame/video/poolshrk.c @@ -10,17 +10,16 @@ Atari Poolshark video emulation -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(poolshrk_state::get_tile_info) { - poolshrk_state *state = machine.driver_data<poolshrk_state>(); - SET_TILE_INFO(1, state->m_playfield_ram[tile_index] & 0x3f, 0, 0); + SET_TILE_INFO_MEMBER(1, m_playfield_ram[tile_index] & 0x3f, 0, 0); } VIDEO_START( poolshrk ) { poolshrk_state *state = machine.driver_data<poolshrk_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(poolshrk_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/pooyan.c b/src/mame/video/pooyan.c index 472b50cfc30..4caba227343 100644 --- a/src/mame/video/pooyan.c +++ b/src/mame/video/pooyan.c @@ -96,15 +96,14 @@ PALETTE_INIT( pooyan ) * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(pooyan_state::get_bg_tile_info) { - pooyan_state *state = machine.driver_data<pooyan_state>(); - 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 color = attr & 0x0f; int flags = TILE_FLIPYX(attr >> 6); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } @@ -118,7 +117,7 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( pooyan ) { pooyan_state *state = machine.driver_data<pooyan_state>(); - 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(pooyan_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/popeye.c b/src/mame/video/popeye.c index 6d2221cd115..61a5e71f1c5 100644 --- a/src/mame/video/popeye.c +++ b/src/mame/video/popeye.c @@ -233,13 +233,12 @@ WRITE8_MEMBER(popeye_state::skyskipr_bitmap_w) popeye_bitmap_w(space,offset,data); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(popeye_state::get_fg_tile_info) { - popeye_state *state = machine.driver_data<popeye_state>(); - int code = state->m_videoram[tile_index]; - int color = state->m_colorram[tile_index] & 0x0f; + int code = m_videoram[tile_index]; + int color = m_colorram[tile_index] & 0x0f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( skyskipr ) @@ -250,7 +249,7 @@ VIDEO_START( skyskipr ) state->m_bitmap_type = TYPE_SKYSKIPR; - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popeye_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_lastflip = 0; @@ -268,7 +267,7 @@ VIDEO_START( popeye ) state->m_bitmap_type = TYPE_POPEYE; - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popeye_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_lastflip = 0; diff --git a/src/mame/video/popper.c b/src/mame/video/popper.c index fd96152414f..1e320a28b9e 100644 --- a/src/mame/video/popper.c +++ b/src/mame/video/popper.c @@ -114,14 +114,13 @@ WRITE8_MEMBER(popper_state::popper_gfx_bank_w) } } -static TILE_GET_INFO( get_popper_p123_tile_info ) +TILE_GET_INFO_MEMBER(popper_state::get_popper_p123_tile_info) { - popper_state *state = machine.driver_data<popper_state>(); - UINT32 tile_number = state->m_videoram[tile_index]; - UINT8 attr = state->m_attribram[tile_index]; - tile_number += state->m_gfx_bank << 8; + UINT32 tile_number = m_videoram[tile_index]; + UINT8 attr = m_attribram[tile_index]; + tile_number += m_gfx_bank << 8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (attr & 0xf), @@ -129,31 +128,29 @@ static TILE_GET_INFO( get_popper_p123_tile_info ) tileinfo.group = (attr & 0x80) >> 7; } -static TILE_GET_INFO( get_popper_p0_tile_info ) +TILE_GET_INFO_MEMBER(popper_state::get_popper_p0_tile_info) { - popper_state *state = machine.driver_data<popper_state>(); - UINT32 tile_number = state->m_videoram[tile_index]; - UINT8 attr = state->m_attribram[tile_index]; - tile_number += state->m_gfx_bank << 8; + UINT32 tile_number = m_videoram[tile_index]; + UINT8 attr = m_attribram[tile_index]; + tile_number += m_gfx_bank << 8; //pen 0 only in front if colour set as well tileinfo.group = (attr & 0x70) ? ((attr & 0x80) >> 7) : 0; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, ((attr & 0x70) >> 4) + 8, 0); } -static TILE_GET_INFO( get_popper_ol_p123_tile_info ) +TILE_GET_INFO_MEMBER(popper_state::get_popper_ol_p123_tile_info) { - popper_state *state = machine.driver_data<popper_state>(); - UINT32 tile_number = state->m_ol_videoram[tile_index]; - UINT8 attr = state->m_ol_attribram[tile_index]; - tile_number += state->m_gfx_bank << 8; + UINT32 tile_number = m_ol_videoram[tile_index]; + UINT8 attr = m_ol_attribram[tile_index]; + tile_number += m_gfx_bank << 8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (attr & 0xf), @@ -161,17 +158,16 @@ static TILE_GET_INFO( get_popper_ol_p123_tile_info ) tileinfo.group = (attr & 0x80) >> 7; } -static TILE_GET_INFO( get_popper_ol_p0_tile_info ) +TILE_GET_INFO_MEMBER(popper_state::get_popper_ol_p0_tile_info) { - popper_state *state = machine.driver_data<popper_state>(); - UINT32 tile_number = state->m_ol_videoram[tile_index]; - UINT8 attr = state->m_ol_attribram[tile_index]; - tile_number += state->m_gfx_bank << 8; + UINT32 tile_number = m_ol_videoram[tile_index]; + UINT8 attr = m_ol_attribram[tile_index]; + tile_number += m_gfx_bank << 8; //pen 0 only in front if colour set as well tileinfo.group = (attr & 0x70) ? ((attr & 0x80) >> 7) : 0; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, ((attr & 0x70) >> 4) + 8, @@ -181,10 +177,10 @@ static TILE_GET_INFO( get_popper_ol_p0_tile_info ) VIDEO_START( popper ) { popper_state *state = machine.driver_data<popper_state>(); - state->m_p123_tilemap = tilemap_create(machine, get_popper_p123_tile_info, TILEMAP_SCAN_COLS, 8, 8, 33, 32 ); - state->m_p0_tilemap = tilemap_create(machine, get_popper_p0_tile_info, TILEMAP_SCAN_COLS, 8, 8, 33, 32); - state->m_ol_p123_tilemap = tilemap_create(machine, get_popper_ol_p123_tile_info, TILEMAP_SCAN_COLS, 8, 8, 2, 32); - state->m_ol_p0_tilemap = tilemap_create(machine, get_popper_ol_p0_tile_info, TILEMAP_SCAN_COLS, 8, 8, 2, 32); + state->m_p123_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popper_state::get_popper_p123_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 33, 32 ); + state->m_p0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popper_state::get_popper_p0_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 33, 32); + state->m_ol_p123_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popper_state::get_popper_ol_p123_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 2, 32); + state->m_ol_p0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popper_state::get_popper_ol_p0_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 2, 32); state->m_p123_tilemap->set_transmask(0, 0x0f, 0x01); state->m_p123_tilemap->set_transmask(1, 0x01, 0x0f); diff --git a/src/mame/video/portrait.c b/src/mame/video/portrait.c index 02e6caeb87c..bf43e569aff 100644 --- a/src/mame/video/portrait.c +++ b/src/mame/video/portrait.c @@ -52,23 +52,21 @@ INLINE void get_tile_info( running_machine &machine, tile_data &tileinfo, int ti SET_TILE_INFO( 0, tilenum, color, flags ); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(portrait_state::get_bg_tile_info) { - portrait_state *state = machine.driver_data<portrait_state>(); - get_tile_info( machine, tileinfo, tile_index, state->m_bgvideoram ); + get_tile_info( machine(), tileinfo, tile_index, m_bgvideoram ); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(portrait_state::get_fg_tile_info) { - portrait_state *state = machine.driver_data<portrait_state>(); - get_tile_info( machine, tileinfo, tile_index, state->m_fgvideoram ); + get_tile_info( machine(), tileinfo, tile_index, m_fgvideoram ); } VIDEO_START( portrait ) { portrait_state *state = machine.driver_data<portrait_state>(); - state->m_background = tilemap_create( machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32 ); - state->m_foreground = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32 ); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(portrait_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 ); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(portrait_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 ); state->m_foreground->set_transparent_pen(7 ); } diff --git a/src/mame/video/powerins.c b/src/mame/video/powerins.c index 065dfcaa3af..d44b585b98c 100644 --- a/src/mame/video/powerins.c +++ b/src/mame/video/powerins.c @@ -118,13 +118,12 @@ Offset: #define DIM_NY_0 (0x20) -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(powerins_state::get_tile_info_0) { - powerins_state *state = machine.driver_data<powerins_state>(); - UINT16 code = state->m_vram_0[tile_index]; - SET_TILE_INFO( + UINT16 code = m_vram_0[tile_index]; + SET_TILE_INFO_MEMBER( 0, - (code & 0x07ff) + (state->m_tile_bank*0x800), + (code & 0x07ff) + (m_tile_bank*0x800), ((code & 0xf000) >> (16-4)) + ((code & 0x0800) >> (11-4)), 0); } @@ -135,7 +134,7 @@ WRITE16_MEMBER(powerins_state::powerins_vram_0_w) m_tilemap_0->mark_tile_dirty(offset); } -static TILEMAP_MAPPER( powerins_get_memory_offset_0 ) +TILEMAP_MAPPER_MEMBER(powerins_state::powerins_get_memory_offset_0) { return (col * TILES_PER_PAGE_Y) + @@ -159,11 +158,10 @@ Offset: #define DIM_NX_1 (0x40) #define DIM_NY_1 (0x20) -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(powerins_state::get_tile_info_1) { - powerins_state *state = machine.driver_data<powerins_state>(); - UINT16 code = state->m_vram_1[tile_index]; - SET_TILE_INFO( + UINT16 code = m_vram_1[tile_index]; + SET_TILE_INFO_MEMBER( 1, code & 0x0fff, (code & 0xf000) >> (16-4), @@ -191,24 +189,15 @@ WRITE16_MEMBER(powerins_state::powerins_vram_1_w) VIDEO_START( powerins ) { powerins_state *state = machine.driver_data<powerins_state>(); - state->m_tilemap_0 = tilemap_create( machine, get_tile_info_0, - powerins_get_memory_offset_0, - - 16,16, - DIM_NX_0, DIM_NY_0 ); - - state->m_tilemap_1 = tilemap_create( machine, get_tile_info_1, - TILEMAP_SCAN_COLS, - - 8,8, - DIM_NX_1, DIM_NY_1 ); + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_0),state),tilemap_mapper_delegate(FUNC(powerins_state::powerins_get_memory_offset_0),state),16,16,DIM_NX_0, DIM_NY_0 ); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_1),state),TILEMAP_SCAN_COLS,8,8,DIM_NX_1, DIM_NY_1 ); - state->m_tilemap_0->set_scroll_rows(1); - state->m_tilemap_0->set_scroll_cols(1); + state->m_tilemap_0->set_scroll_rows(1); + state->m_tilemap_0->set_scroll_cols(1); - state->m_tilemap_1->set_scroll_rows(1); - state->m_tilemap_1->set_scroll_cols(1); - state->m_tilemap_1->set_transparent_pen(15); + state->m_tilemap_1->set_scroll_rows(1); + state->m_tilemap_1->set_scroll_cols(1); + state->m_tilemap_1->set_transparent_pen(15); } diff --git a/src/mame/video/prehisle.c b/src/mame/video/prehisle.c index 1a97e882edf..b0d1a772cef 100644 --- a/src/mame/video/prehisle.c +++ b/src/mame/video/prehisle.c @@ -57,9 +57,9 @@ WRITE16_MEMBER(prehisle_state::prehisle_control16_w) } } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(prehisle_state::get_bg2_tile_info) { - UINT8 *tilerom = machine.root_device().memregion("gfx5")->base(); + UINT8 *tilerom = machine().root_device().memregion("gfx5")->base(); int offs = tile_index * 2; int attr = tilerom[offs + 1] + (tilerom[offs] << 8); @@ -67,41 +67,39 @@ static TILE_GET_INFO( get_bg2_tile_info ) int color = attr >> 12; int flags = (attr & 0x800) ? TILE_FLIPX : 0; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(prehisle_state::get_bg_tile_info) { - prehisle_state *state = machine.driver_data<prehisle_state>(); - int attr = state->m_bg_videoram16[tile_index]; + int attr = m_bg_videoram16[tile_index]; int code = attr & 0x7ff; int color = attr >> 12; int flags = (attr & 0x800) ? TILE_FLIPY : 0; - SET_TILE_INFO(2, code, color, flags); + SET_TILE_INFO_MEMBER(2, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(prehisle_state::get_fg_tile_info) { - prehisle_state *state = machine.driver_data<prehisle_state>(); - int attr = state->m_videoram[tile_index]; + int attr = m_videoram[tile_index]; int code = attr & 0xfff; int color = attr >> 12; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( prehisle ) { prehisle_state *state = machine.driver_data<prehisle_state>(); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_COLS, + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(prehisle_state::get_bg2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 1024, 32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(prehisle_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(prehisle_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/psikyo.c b/src/mame/video/psikyo.c index d7408f8083d..e5db59d9d2b 100644 --- a/src/mame/video/psikyo.c +++ b/src/mame/video/psikyo.c @@ -71,24 +71,22 @@ Offset: ***************************************************************************/ -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(psikyo_state::get_tile_info_0) { - psikyo_state *state = machine.driver_data<psikyo_state>(); - UINT16 code = ((UINT16 *)state->m_vram_0.target())[BYTE_XOR_BE(tile_index)]; - SET_TILE_INFO( + UINT16 code = ((UINT16 *)m_vram_0.target())[BYTE_XOR_BE(tile_index)]; + SET_TILE_INFO_MEMBER( 1, - (code & 0x1fff) + 0x2000 * state->m_tilemap_0_bank, + (code & 0x1fff) + 0x2000 * m_tilemap_0_bank, (code >> 13) & 7, 0); } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(psikyo_state::get_tile_info_1) { - psikyo_state *state = machine.driver_data<psikyo_state>(); - UINT16 code = ((UINT16 *)state->m_vram_1.target())[BYTE_XOR_BE(tile_index)]; - SET_TILE_INFO( + UINT16 code = ((UINT16 *)m_vram_1.target())[BYTE_XOR_BE(tile_index)]; + SET_TILE_INFO_MEMBER( 1, - (code & 0x1fff) + 0x2000 * state->m_tilemap_1_bank, + (code & 0x1fff) + 0x2000 * m_tilemap_1_bank, ((code >> 13) & 7) + 0x40, // So we only have to decode the gfx once. 0); } @@ -166,15 +164,15 @@ VIDEO_START( psikyo ) /* The Hardware is Capable of Changing the Dimensions of the Tilemaps, its safer to create the various sized tilemaps now as opposed to later */ - state->m_tilemap_0_size0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x80); - state->m_tilemap_0_size1 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x40); - state->m_tilemap_0_size2 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x80, 0x20); - state->m_tilemap_0_size3 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x100, 0x10); + state->m_tilemap_0_size0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x80); + state->m_tilemap_0_size1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x40); + state->m_tilemap_0_size2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x80, 0x20); + state->m_tilemap_0_size3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x100, 0x10); - state->m_tilemap_1_size0 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x80); - state->m_tilemap_1_size1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x40); - state->m_tilemap_1_size2 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x80, 0x20); - state->m_tilemap_1_size3 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x100, 0x10); + state->m_tilemap_1_size0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x80); + state->m_tilemap_1_size1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x40); + state->m_tilemap_1_size2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x80, 0x20); + state->m_tilemap_1_size3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x100, 0x10); state->m_spritebuf1 = auto_alloc_array(machine, UINT32, 0x2000 / 4); state->m_spritebuf2 = auto_alloc_array(machine, UINT32, 0x2000 / 4); diff --git a/src/mame/video/psychic5.c b/src/mame/video/psychic5.c index e274d77da27..e4d979a02b0 100644 --- a/src/mame/video/psychic5.c +++ b/src/mame/video/psychic5.c @@ -198,28 +198,26 @@ WRITE8_MEMBER(psychic5_state::bombsa_unknown_w) Callbacks for the tilemap code ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(psychic5_state::get_bg_tile_info) { - psychic5_state *state = machine.driver_data<psychic5_state>(); int offs = tile_index << 1; - int attr = state->m_bg_videoram[offs + 1]; - int code = state->m_bg_videoram[offs] | ((attr & 0xc0) << 2); + int attr = m_bg_videoram[offs + 1]; + int code = m_bg_videoram[offs] | ((attr & 0xc0) << 2); int color = attr & 0x0f; int flags = TILE_FLIPYX((attr & 0x30) >> 4); - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(psychic5_state::get_fg_tile_info) { - psychic5_state *state = machine.driver_data<psychic5_state>(); int offs = tile_index << 1; - int attr = state->m_fg_videoram[offs + 1]; - int code = state->m_fg_videoram[offs] | ((attr & 0xc0) << 2); + int attr = m_fg_videoram[offs + 1]; + int code = m_fg_videoram[offs] | ((attr & 0xc0) << 2); int color = attr & 0x0f; int flags = TILE_FLIPYX((attr & 0x30) >> 4); - SET_TILE_INFO(2, code, color, flags); + SET_TILE_INFO_MEMBER(2, code, color, flags); } @@ -231,8 +229,8 @@ VIDEO_START( psychic5 ) { psychic5_state *state = machine.driver_data<psychic5_state>(); /* info offset w h col row */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(15); @@ -255,8 +253,8 @@ VIDEO_START( bombsa ) { psychic5_state *state = machine.driver_data<psychic5_state>(); /* info offset w h col row */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/punchout.c b/src/mame/video/punchout.c index 844692a5dd4..b9ff09dbd25 100644 --- a/src/mame/video/punchout.c +++ b/src/mame/video/punchout.c @@ -43,82 +43,75 @@ DRIVER_INIT_MEMBER(punchout_state,armwrest) ***************************************************************************/ -static TILE_GET_INFO( top_get_info ) +TILE_GET_INFO_MEMBER(punchout_state::top_get_info) { - punchout_state *state = machine.driver_data<punchout_state>(); - int attr = state->m_bg_top_videoram[tile_index*2 + 1]; - int code = state->m_bg_top_videoram[tile_index*2] + ((attr & 0x03) << 8); + int attr = m_bg_top_videoram[tile_index*2 + 1]; + int code = m_bg_top_videoram[tile_index*2] + ((attr & 0x03) << 8); int color = ((attr & 0x7c) >> 2); int flipx = attr & 0x80; - SET_TILE_INFO(0, code, color, flipx ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(0, code, color, flipx ? TILE_FLIPX : 0); } -static TILE_GET_INFO( armwrest_top_get_info ) +TILE_GET_INFO_MEMBER(punchout_state::armwrest_top_get_info) { - punchout_state *state = machine.driver_data<punchout_state>(); - int attr = state->m_bg_top_videoram[tile_index*2 + 1]; - int code = state->m_bg_top_videoram[tile_index*2] + ((attr & 0x03) << 8) + ((attr & 0x80) << 3); + int attr = m_bg_top_videoram[tile_index*2 + 1]; + int code = m_bg_top_videoram[tile_index*2] + ((attr & 0x03) << 8) + ((attr & 0x80) << 3); int color = ((attr & 0x7c) >> 2); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( bot_get_info ) +TILE_GET_INFO_MEMBER(punchout_state::bot_get_info) { - punchout_state *state = machine.driver_data<punchout_state>(); - int attr = state->m_bg_bot_videoram[tile_index*2 + 1]; - int code = state->m_bg_bot_videoram[tile_index*2] + ((attr & 0x03) << 8); + int attr = m_bg_bot_videoram[tile_index*2 + 1]; + int code = m_bg_bot_videoram[tile_index*2] + ((attr & 0x03) << 8); int color = ((attr & 0x7c) >> 2); int flipx = attr & 0x80; - SET_TILE_INFO(1, code, color, flipx ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(1, code, color, flipx ? TILE_FLIPX : 0); } -static TILE_GET_INFO( armwrest_bot_get_info ) +TILE_GET_INFO_MEMBER(punchout_state::armwrest_bot_get_info) { - punchout_state *state = machine.driver_data<punchout_state>(); - int attr = state->m_bg_bot_videoram[tile_index*2 + 1]; - int code = state->m_bg_bot_videoram[tile_index*2] + ((attr & 0x03) << 8); + int attr = m_bg_bot_videoram[tile_index*2 + 1]; + int code = m_bg_bot_videoram[tile_index*2] + ((attr & 0x03) << 8); int color = ((attr & 0x7c) >> 2) + 0x40; int flipx = attr & 0x80; - SET_TILE_INFO(0, code, color, flipx ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(0, code, color, flipx ? TILE_FLIPX : 0); } -static TILE_GET_INFO( bs1_get_info ) +TILE_GET_INFO_MEMBER(punchout_state::bs1_get_info) { - punchout_state *state = machine.driver_data<punchout_state>(); - int attr = state->m_spr1_videoram[tile_index*4 + 3]; - int code = state->m_spr1_videoram[tile_index*4] + ((state->m_spr1_videoram[tile_index*4 + 1] & 0x1f) << 8); + int attr = m_spr1_videoram[tile_index*4 + 3]; + int code = m_spr1_videoram[tile_index*4] + ((m_spr1_videoram[tile_index*4 + 1] & 0x1f) << 8); int color = attr & 0x1f; int flipx = attr & 0x80; - SET_TILE_INFO(2, code, color, flipx ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(2, code, color, flipx ? TILE_FLIPX : 0); } -static TILE_GET_INFO( bs2_get_info ) +TILE_GET_INFO_MEMBER(punchout_state::bs2_get_info) { - punchout_state *state = machine.driver_data<punchout_state>(); - int attr = state->m_spr2_videoram[tile_index*4 + 3]; - int code = state->m_spr2_videoram[tile_index*4] + ((state->m_spr2_videoram[tile_index*4 + 1] & 0x0f) << 8); + int attr = m_spr2_videoram[tile_index*4 + 3]; + int code = m_spr2_videoram[tile_index*4] + ((m_spr2_videoram[tile_index*4 + 1] & 0x0f) << 8); int color = attr & 0x3f; int flipx = attr & 0x80; - SET_TILE_INFO(3, code, color, flipx ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(3, code, color, flipx ? TILE_FLIPX : 0); } -static TILE_GET_INFO( armwrest_fg_get_info ) +TILE_GET_INFO_MEMBER(punchout_state::armwrest_fg_get_info) { - punchout_state *state = machine.driver_data<punchout_state>(); - int attr = state->m_armwrest_fg_videoram[tile_index*2 + 1]; - int code = state->m_armwrest_fg_videoram[tile_index*2] + 256 * (attr & 0x07); + int attr = m_armwrest_fg_videoram[tile_index*2 + 1]; + int code = m_armwrest_fg_videoram[tile_index*2] + 256 * (attr & 0x07); int color = ((attr & 0xf8) >> 3); int flipx = attr & 0x80; - SET_TILE_INFO(1, code, color, flipx ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(1, code, color, flipx ? TILE_FLIPX : 0); } -static TILEMAP_MAPPER( armwrest_bs1_scan ) +TILEMAP_MAPPER_MEMBER(punchout_state::armwrest_bs1_scan) { int halfcols = num_cols/2; return (col/halfcols)*(halfcols*num_rows) + row*halfcols + col%halfcols; } -static TILEMAP_MAPPER( armwrest_bs1_scan_flipx ) +TILEMAP_MAPPER_MEMBER(punchout_state::armwrest_bs1_scan_flipx) { int halfcols = num_cols/2; col ^=0x10; @@ -129,12 +122,12 @@ static TILEMAP_MAPPER( armwrest_bs1_scan_flipx ) VIDEO_START( punchout ) { punchout_state *state = machine.driver_data<punchout_state>(); - state->m_bg_top_tilemap = tilemap_create(machine, top_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); - state->m_bg_bot_tilemap = tilemap_create(machine, bot_get_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_bg_top_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::top_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_bg_bot_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bot_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_bg_bot_tilemap->set_scroll_rows(32); - state->m_spr1_tilemap = tilemap_create(machine, bs1_get_info, TILEMAP_SCAN_ROWS, 8,8, 16,32); - state->m_spr2_tilemap = tilemap_create(machine, bs2_get_info, TILEMAP_SCAN_ROWS, 8,8, 16,32); + state->m_spr1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 16,32); + state->m_spr2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs2_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 16,32); state->m_fg_tilemap = NULL; @@ -146,13 +139,13 @@ VIDEO_START( punchout ) VIDEO_START( armwrest ) { punchout_state *state = machine.driver_data<punchout_state>(); - state->m_bg_top_tilemap = tilemap_create(machine, armwrest_top_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); - state->m_bg_bot_tilemap = tilemap_create(machine, armwrest_bot_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_bg_top_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::armwrest_top_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_bg_bot_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::armwrest_bot_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); - state->m_spr1_tilemap = tilemap_create(machine, bs1_get_info, armwrest_bs1_scan, 8,8, 32,16); - state->m_spr1_tilemap_flipx = tilemap_create(machine, bs1_get_info, armwrest_bs1_scan_flipx, 8,8, 32,16); - state->m_spr2_tilemap = tilemap_create(machine, bs2_get_info, TILEMAP_SCAN_ROWS, 8,8, 16,32); - state->m_fg_tilemap = tilemap_create(machine, armwrest_fg_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_spr1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),state), tilemap_mapper_delegate(FUNC(punchout_state::armwrest_bs1_scan),state), 8,8, 32,16); + state->m_spr1_tilemap_flipx = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),state), tilemap_mapper_delegate(FUNC(punchout_state::armwrest_bs1_scan_flipx),state), 8,8, 32,16); + state->m_spr2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs2_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 16,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::armwrest_fg_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); state->m_spr1_tilemap->set_transparent_pen(0x07); state->m_spr1_tilemap_flipx->set_transparent_pen(0x07); diff --git a/src/mame/video/pushman.c b/src/mame/video/pushman.c index 201419c127b..da491d34912 100644 --- a/src/mame/video/pushman.c +++ b/src/mame/video/pushman.c @@ -7,31 +7,30 @@ ***************************************************************************/ -static TILEMAP_MAPPER( background_scan_rows ) +TILEMAP_MAPPER_MEMBER(pushman_state::background_scan_rows) { /* logical (col,row) -> memory offset */ return ((col & 0x7)) + ((7 - (row & 0x7)) << 3) + ((col & 0x78) << 3) + ((0x38 - (row & 0x38)) << 7); } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(pushman_state::get_back_tile_info) { - UINT8 *bg_map = machine.root_device().memregion("gfx4")->base(); + UINT8 *bg_map = machine().root_device().memregion("gfx4")->base(); int tile; tile = bg_map[tile_index << 1] + (bg_map[(tile_index << 1) + 1] << 8); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, (tile & 0xff) | ((tile & 0x4000) >> 6), (tile >> 8) & 0xf, (tile & 0x2000) ? TILE_FLIPX : 0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(pushman_state::get_text_tile_info) { - pushman_state *state = machine.driver_data<pushman_state>(); - int tile = state->m_videoram[tile_index]; - SET_TILE_INFO( + int tile = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, (tile & 0xff) | ((tile & 0xc000) >> 6) | ((tile & 0x2000) >> 3), (tile >> 8) & 0xf, @@ -50,8 +49,8 @@ VIDEO_START( pushman ) { pushman_state *state = machine.driver_data<pushman_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_back_tile_info, background_scan_rows, 32, 32, 128, 64); - state->m_tx_tilemap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pushman_state::get_back_tile_info),state), tilemap_mapper_delegate(FUNC(pushman_state::background_scan_rows),state), 32, 32, 128, 64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pushman_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tx_tilemap->set_transparent_pen(3); } diff --git a/src/mame/video/quizdna.c b/src/mame/video/quizdna.c index 4187df3f328..9ac8a52de7d 100644 --- a/src/mame/video/quizdna.c +++ b/src/mame/video/quizdna.c @@ -13,23 +13,21 @@ Video hardware #include "includes/quizdna.h" -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(quizdna_state::get_bg_tile_info) { - quizdna_state *state = machine.driver_data<quizdna_state>(); - int code = state->m_bg_ram[tile_index*2] + state->m_bg_ram[tile_index*2+1]*0x100 ; - int col = state->m_bg_ram[tile_index*2+0x1000] & 0x7f; + int code = m_bg_ram[tile_index*2] + m_bg_ram[tile_index*2+1]*0x100 ; + int col = m_bg_ram[tile_index*2+0x1000] & 0x7f; if (code>0x7fff) code &= 0x83ff; - SET_TILE_INFO(1, code, col, 0); + SET_TILE_INFO_MEMBER(1, code, col, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(quizdna_state::get_fg_tile_info) { - quizdna_state *state = machine.driver_data<quizdna_state>(); int code,col,x,y; - UINT8 *FG = state->memregion("user1")->base(); + UINT8 *FG = memregion("user1")->base(); x = tile_index & 0x1f; y = FG[(tile_index >> 5) & 0x1f] & 0x3f; @@ -37,12 +35,12 @@ static TILE_GET_INFO( get_fg_tile_info ) y >>= 1; - col = state->m_fg_ram[x*2 + y*0x40 + 1]; - code += (state->m_fg_ram[x*2 + y*0x40] + (col & 0x1f) * 0x100) * 2; + col = m_fg_ram[x*2 + y*0x40 + 1]; + code += (m_fg_ram[x*2 + y*0x40] + (col & 0x1f) * 0x100) * 2; col >>= 5; col = (col & 3) | ((col & 4) << 1); - SET_TILE_INFO(0, code, col, 0); + SET_TILE_INFO_MEMBER(0, code, col, 0); } @@ -57,8 +55,8 @@ VIDEO_START( quizdna ) state->m_bg_ram = auto_alloc_array(machine, UINT8, 0x2000); state->m_fg_ram = auto_alloc_array(machine, UINT8, 0x1000); - state->m_bg_tilemap = tilemap_create( machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32 ); - state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,8,32,32 ); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizdna_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32 ); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizdna_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,8,32,32 ); state->m_fg_tilemap->set_transparent_pen(0 ); } diff --git a/src/mame/video/quizpani.c b/src/mame/video/quizpani.c index 4adc4c58d7e..e021daba0bd 100644 --- a/src/mame/video/quizpani.c +++ b/src/mame/video/quizpani.c @@ -8,32 +8,30 @@ #include "includes/quizpani.h" -static TILEMAP_MAPPER( bg_scan ) +TILEMAP_MAPPER_MEMBER(quizpani_state::bg_scan) { /* logical (col,row) -> memory offset */ return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8); } -static TILE_GET_INFO( bg_tile_info ) +TILE_GET_INFO_MEMBER(quizpani_state::bg_tile_info) { - quizpani_state *state = machine.driver_data<quizpani_state>(); - int code = state->m_bg_videoram[tile_index]; + int code = m_bg_videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - (code & 0xfff) + (0x1000 * state->m_bgbank), + (code & 0xfff) + (0x1000 * m_bgbank), code >> 12, 0); } -static TILE_GET_INFO( txt_tile_info ) +TILE_GET_INFO_MEMBER(quizpani_state::txt_tile_info) { - quizpani_state *state = machine.driver_data<quizpani_state>(); - int code = state->m_txt_videoram[tile_index]; + int code = m_txt_videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - (code & 0xfff) + (0x1000 * state->m_txtbank), + (code & 0xfff) + (0x1000 * m_txtbank), code >> 12, 0); } @@ -71,8 +69,8 @@ WRITE16_MEMBER(quizpani_state::quizpani_tilesbank_w) VIDEO_START( quizpani ) { quizpani_state *state = machine.driver_data<quizpani_state>(); - state->m_bg_tilemap = tilemap_create(machine, bg_tile_info, bg_scan,16,16,256,32); - state->m_txt_tilemap = tilemap_create(machine, txt_tile_info,bg_scan,16,16,256,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpani_state::bg_tile_info),state), tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),state),16,16,256,32); + state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpani_state::txt_tile_info),state),tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),state),16,16,256,32); state->m_txt_tilemap->set_transparent_pen(15); } diff --git a/src/mame/video/raiden.c b/src/mame/video/raiden.c index f7aae1e3986..1a8d29a8542 100644 --- a/src/mame/video/raiden.c +++ b/src/mame/video/raiden.c @@ -23,45 +23,42 @@ WRITE16_MEMBER(raiden_state::raiden_text_w) m_tx_layer->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(raiden_state::get_back_tile_info) { - raiden_state *state = machine.driver_data<raiden_state>(); - int tile=state->m_back_data[tile_index]; + int tile=m_back_data[tile_index]; int color=tile >> 12; tile=tile&0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, color, 0); } -static TILE_GET_INFO( get_fore_tile_info ) +TILE_GET_INFO_MEMBER(raiden_state::get_fore_tile_info) { - raiden_state *state = machine.driver_data<raiden_state>(); - int tile=state->m_fore_data[tile_index]; + int tile=m_fore_data[tile_index]; int color=tile >> 12; tile=tile&0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile, color, 0); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(raiden_state::get_text_tile_info) { - raiden_state *state = machine.driver_data<raiden_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int tiledata = videoram[tile_index]; int tile = (tiledata & 0xff) | ((tiledata >> 6) & 0x300); int color = (tiledata >> 8) & 0x0f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -71,9 +68,9 @@ static TILE_GET_INFO( get_text_tile_info ) VIDEO_START( raiden ) { raiden_state *state = machine.driver_data<raiden_state>(); - state->m_bg_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_COLS, 16,16,32,32); - state->m_fg_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_COLS,16,16,32,32); - state->m_tx_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_COLS,8,8,32,32); + state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_back_tile_info),state),TILEMAP_SCAN_COLS, 16,16,32,32); + state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_fore_tile_info),state),TILEMAP_SCAN_COLS,16,16,32,32); + state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_text_tile_info),state),TILEMAP_SCAN_COLS,8,8,32,32); state->m_alternate=0; state->m_fg_layer->set_transparent_pen(15); @@ -83,9 +80,9 @@ VIDEO_START( raiden ) VIDEO_START( raidena ) { raiden_state *state = machine.driver_data<raiden_state>(); - state->m_bg_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_COLS, 16,16,32,32); - state->m_fg_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_COLS,16,16,32,32); - state->m_tx_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_back_tile_info),state),TILEMAP_SCAN_COLS, 16,16,32,32); + state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_fore_tile_info),state),TILEMAP_SCAN_COLS,16,16,32,32); + state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_alternate=1; state->m_fg_layer->set_transparent_pen(15); diff --git a/src/mame/video/rallyx.c b/src/mame/video/rallyx.c index f1db57f25b7..07f9e525e7d 100644 --- a/src/mame/video/rallyx.c +++ b/src/mame/video/rallyx.c @@ -216,7 +216,7 @@ PALETTE_INIT( jungler ) ***************************************************************************/ /* the video RAM has space for 32x32 tiles and is only partially used for the radar */ -static TILEMAP_MAPPER( fg_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(rallyx_state::fg_tilemap_scan) { return col + (row << 5); } @@ -234,14 +234,14 @@ INLINE void rallyx_get_tile_info( running_machine &machine, tile_data &tileinfo, TILE_FLIPYX(attr >> 6) ^ TILE_FLIPX); } -static TILE_GET_INFO( rallyx_bg_get_tile_info ) +TILE_GET_INFO_MEMBER(rallyx_state::rallyx_bg_get_tile_info) { - rallyx_get_tile_info(machine, tileinfo, tile_index, 0x400); + rallyx_get_tile_info(machine(), tileinfo, tile_index, 0x400); } -static TILE_GET_INFO( rallyx_fg_get_tile_info ) +TILE_GET_INFO_MEMBER(rallyx_state::rallyx_fg_get_tile_info) { - rallyx_get_tile_info(machine, tileinfo, tile_index, 0x000); + rallyx_get_tile_info(machine(), tileinfo, tile_index, 0x000); } @@ -259,14 +259,14 @@ INLINE void locomotn_get_tile_info(running_machine &machine,tile_data &tileinfo, (attr & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0); } -static TILE_GET_INFO( locomotn_bg_get_tile_info ) +TILE_GET_INFO_MEMBER(rallyx_state::locomotn_bg_get_tile_info) { - locomotn_get_tile_info(machine, tileinfo, tile_index, 0x400); + locomotn_get_tile_info(machine(), tileinfo, tile_index, 0x400); } -static TILE_GET_INFO( locomotn_fg_get_tile_info ) +TILE_GET_INFO_MEMBER(rallyx_state::locomotn_fg_get_tile_info) { - locomotn_get_tile_info(machine, tileinfo, tile_index, 0x000); + locomotn_get_tile_info(machine(), tileinfo, tile_index, 0x000); } @@ -343,8 +343,8 @@ VIDEO_START( rallyx ) { rallyx_state *state = machine.driver_data<rallyx_state>(); - state->m_bg_tilemap = tilemap_create(machine, rallyx_bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, rallyx_fg_get_tile_info, fg_tilemap_scan, 8, 8, 8, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),state), 8, 8, 8, 32); /* the scrolling tilemap is slightly misplaced in Rally X */ state->m_bg_tilemap->set_scrolldx(3, 3); @@ -359,8 +359,8 @@ VIDEO_START( jungler ) { rallyx_state *state = machine.driver_data<rallyx_state>(); - state->m_bg_tilemap = tilemap_create(machine, rallyx_bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, rallyx_fg_get_tile_info, fg_tilemap_scan, 8, 8, 8, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),state), 8, 8, 8, 32); state->m_spriteram_base = 0x14; @@ -373,8 +373,8 @@ VIDEO_START( locomotn ) { rallyx_state *state = machine.driver_data<rallyx_state>(); - state->m_bg_tilemap = tilemap_create(machine, locomotn_bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, locomotn_fg_get_tile_info, fg_tilemap_scan, 8, 8, 8, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),state), 8, 8, 8, 32); /* handle reduced visible area in some games */ if (machine.primary_screen->visible_area().max_x == 32 * 8 - 1) @@ -394,8 +394,8 @@ VIDEO_START( commsega ) { rallyx_state *state = machine.driver_data<rallyx_state>(); - state->m_bg_tilemap = tilemap_create(machine, locomotn_bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, locomotn_fg_get_tile_info, fg_tilemap_scan, 8, 8, 8, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),state), 8, 8, 8, 32); /* handle reduced visible area in some games */ if (machine.primary_screen->visible_area().max_x == 32 * 8 - 1) diff --git a/src/mame/video/realbrk.c b/src/mame/video/realbrk.c index 07dcaa965f7..21fd6608ebc 100644 --- a/src/mame/video/realbrk.c +++ b/src/mame/video/realbrk.c @@ -68,24 +68,22 @@ WRITE16_MEMBER(realbrk_state::dai2kaku_flipscreen_w) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(realbrk_state::get_tile_info_0) { - realbrk_state *state = machine.driver_data<realbrk_state>(); - UINT16 attr = state->m_vram_0[tile_index * 2 + 0]; - UINT16 code = state->m_vram_0[tile_index * 2 + 1]; - SET_TILE_INFO( + UINT16 attr = m_vram_0[tile_index * 2 + 0]; + UINT16 code = m_vram_0[tile_index * 2 + 1]; + SET_TILE_INFO_MEMBER( 0, code, attr & 0x7f, TILE_FLIPYX( attr >> 14 )); } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(realbrk_state::get_tile_info_1) { - realbrk_state *state = machine.driver_data<realbrk_state>(); - UINT16 attr = state->m_vram_1[tile_index * 2 + 0]; - UINT16 code = state->m_vram_1[tile_index * 2 + 1]; - SET_TILE_INFO( + UINT16 attr = m_vram_1[tile_index * 2 + 0]; + UINT16 code = m_vram_1[tile_index * 2 + 1]; + SET_TILE_INFO_MEMBER( 0, code, attr & 0x7f, @@ -118,14 +116,13 @@ WRITE16_MEMBER(realbrk_state::realbrk_vram_1_w) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info_2 ) +TILE_GET_INFO_MEMBER(realbrk_state::get_tile_info_2) { - realbrk_state *state = machine.driver_data<realbrk_state>(); - UINT16 code = state->m_vram_2[tile_index]; - SET_TILE_INFO( + UINT16 code = m_vram_2[tile_index]; + SET_TILE_INFO_MEMBER( 1, code & 0x0fff, - ((code & 0xf000) >> 12) | ((state->m_vregs[0xa/2] & 0x7f) << 4), + ((code & 0xf000) >> 12) | ((m_vregs[0xa/2] & 0x7f) << 4), 0); } @@ -149,11 +146,11 @@ VIDEO_START(realbrk) { realbrk_state *state = machine.driver_data<realbrk_state>(); /* Backgrounds */ - state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20); - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20); + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20); /* Text */ - state->m_tilemap_2 = tilemap_create(machine, get_tile_info_2, TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20); + state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20); state->m_tilemap_0->set_transparent_pen(0); state->m_tilemap_1->set_transparent_pen(0); diff --git a/src/mame/video/relief.c b/src/mame/video/relief.c index fde24597e4a..cdc5f89f1fc 100644 --- a/src/mame/video/relief.c +++ b/src/mame/video/relief.c @@ -17,25 +17,23 @@ * *************************************/ -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(relief_state::get_playfield_tile_info) { - relief_state *state = machine.driver_data<relief_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] & 0xff; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] & 0xff; int code = data1 & 0x7fff; int color = 0x20 + (data2 & 0x0f); - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); } -static TILE_GET_INFO( get_playfield2_tile_info ) +TILE_GET_INFO_MEMBER(relief_state::get_playfield2_tile_info) { - relief_state *state = machine.driver_data<relief_state>(); - UINT16 data1 = state->m_playfield2[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; + UINT16 data1 = m_playfield2[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] >> 8; int code = data1 & 0x7fff; int color = data2 & 0x0f; - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); } @@ -90,10 +88,10 @@ VIDEO_START( relief ) machine.gfx[1]->set_granularity(16); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(relief_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the second playfield */ - state->m_playfield2_tilemap = tilemap_create(machine, get_playfield2_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(relief_state::get_playfield2_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); state->m_playfield2_tilemap->set_transparent_pen(0); /* initialize the motion objects */ diff --git a/src/mame/video/renegade.c b/src/mame/video/renegade.c index 95b075228a1..4b0fac4ef87 100644 --- a/src/mame/video/renegade.c +++ b/src/mame/video/renegade.c @@ -38,25 +38,23 @@ WRITE8_MEMBER(renegade_state::renegade_scroll1_w) m_scrollx = (m_scrollx & 0xff) | (data << 8); } -static TILE_GET_INFO( get_bg_tilemap_info ) +TILE_GET_INFO_MEMBER(renegade_state::get_bg_tilemap_info) { - renegade_state *state = machine.driver_data<renegade_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; const UINT8 *source = &videoram[tile_index]; UINT8 attributes = source[0x400]; /* CCC??BBB */ - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1 + (attributes & 0x7), source[0], attributes >> 5, 0); } -static TILE_GET_INFO( get_fg_tilemap_info ) +TILE_GET_INFO_MEMBER(renegade_state::get_fg_tilemap_info) { - renegade_state *state = machine.driver_data<renegade_state>(); - const UINT8 *source = &state->m_videoram2[tile_index]; + const UINT8 *source = &m_videoram2[tile_index]; UINT8 attributes = source[0x400]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, (attributes & 3) * 256 + source[0], attributes >> 6, @@ -66,8 +64,8 @@ static TILE_GET_INFO( get_fg_tilemap_info ) VIDEO_START( renegade ) { renegade_state *state = machine.driver_data<renegade_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tilemap_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 16); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tilemap_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(renegade_state::get_bg_tilemap_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(renegade_state::get_fg_tilemap_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_scrolldx(256, 0); diff --git a/src/mame/video/retofinv.c b/src/mame/video/retofinv.c index 2e9c493de0c..e6276c06220 100644 --- a/src/mame/video/retofinv.c +++ b/src/mame/video/retofinv.c @@ -62,7 +62,7 @@ PALETTE_INIT( retofinv ) ***************************************************************************/ /* convert from 32x32 to 36x28 */ -static TILEMAP_MAPPER( tilemap_scan ) +TILEMAP_MAPPER_MEMBER(retofinv_state::tilemap_scan) { row += 2; col -= 2; @@ -72,26 +72,24 @@ static TILEMAP_MAPPER( tilemap_scan ) return (row << 5) + col; } -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(retofinv_state::bg_get_tile_info) { - retofinv_state *state = machine.driver_data<retofinv_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, - state->m_bg_videoram[tile_index] + 256 * state->m_bg_bank, - state->m_bg_videoram[0x400 + tile_index] & 0x3f, + m_bg_videoram[tile_index] + 256 * m_bg_bank, + m_bg_videoram[0x400 + tile_index] & 0x3f, 0); } -static TILE_GET_INFO( fg_get_tile_info ) +TILE_GET_INFO_MEMBER(retofinv_state::fg_get_tile_info) { - retofinv_state *state = machine.driver_data<retofinv_state>(); - int color = state->m_fg_videoram[0x400 + tile_index]; + int color = m_fg_videoram[0x400 + tile_index]; tileinfo.group = color; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_fg_videoram[tile_index] + 256 * state->m_fg_bank, + m_fg_videoram[tile_index] + 256 * m_fg_bank, color, 0); } @@ -107,8 +105,8 @@ static TILE_GET_INFO( fg_get_tile_info ) VIDEO_START( retofinv ) { retofinv_state *state = machine.driver_data<retofinv_state>(); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,tilemap_scan,8,8,36,28); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,tilemap_scan,8,8,36,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(retofinv_state::bg_get_tile_info),state),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),state),8,8,36,28); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(retofinv_state::fg_get_tile_info),state),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),state),8,8,36,28); colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 0); } diff --git a/src/mame/video/rocnrope.c b/src/mame/video/rocnrope.c index 416c5ce11c1..2d9bc96c55f 100644 --- a/src/mame/video/rocnrope.c +++ b/src/mame/video/rocnrope.c @@ -104,21 +104,20 @@ WRITE8_MEMBER(rocnrope_state::rocnrope_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(rocnrope_state::get_bg_tile_info) { - rocnrope_state *state = machine.driver_data<rocnrope_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + 2 * (attr & 0x80); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + 2 * (attr & 0x80); int color = attr & 0x0f; int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x20) ? TILE_FLIPY : 0); - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } VIDEO_START( rocnrope ) { rocnrope_state *state = machine.driver_data<rocnrope_state>(); - 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(rocnrope_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/video/rpunch.c b/src/mame/video/rpunch.c index efd7c594e13..a2ccb644a57 100644 --- a/src/mame/video/rpunch.c +++ b/src/mame/video/rpunch.c @@ -21,35 +21,33 @@ * *************************************/ -static TILE_GET_INFO( get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(rpunch_state::get_bg0_tile_info) { - rpunch_state *state = machine.driver_data<rpunch_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int data = videoram[tile_index]; int code; - if (state->m_videoflags & 0x0400) code = (data & 0x0fff) | 0x2000; + if (m_videoflags & 0x0400) code = (data & 0x0fff) | 0x2000; else code = (data & 0x1fff); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, - ((state->m_videoflags & 0x0010) >> 1) | ((data >> 13) & 7), + ((m_videoflags & 0x0010) >> 1) | ((data >> 13) & 7), 0); } -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(rpunch_state::get_bg1_tile_info) { - rpunch_state *state = machine.driver_data<rpunch_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int data = videoram[0x2000 / 2 + tile_index]; int code; - if (state->m_videoflags & 0x0800) code = (data & 0x0fff) | 0x2000; + if (m_videoflags & 0x0800) code = (data & 0x0fff) | 0x2000; else code = (data & 0x1fff); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, - ((state->m_videoflags & 0x0020) >> 2) | ((data >> 13) & 7), + ((m_videoflags & 0x0020) >> 2) | ((data >> 13) & 7), 0); } @@ -73,8 +71,8 @@ VIDEO_START( rpunch ) { rpunch_state *state = machine.driver_data<rpunch_state>(); /* allocate tilemaps for the backgrounds */ - state->m_background[0] = tilemap_create(machine, get_bg0_tile_info,TILEMAP_SCAN_COLS,8,8,64,64); - state->m_background[1] = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_COLS,8,8,64,64); + state->m_background[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rpunch_state::get_bg0_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,64); + state->m_background[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rpunch_state::get_bg1_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,64); /* configure the tilemaps */ state->m_background[1]->set_transparent_pen(15); diff --git a/src/mame/video/runaway.c b/src/mame/video/runaway.c index d98fbccbd19..1e5bbbc2e83 100644 --- a/src/mame/video/runaway.c +++ b/src/mame/video/runaway.c @@ -49,21 +49,19 @@ WRITE8_MEMBER(runaway_state::runaway_tile_bank_w) } -static TILE_GET_INFO( runaway_get_tile_info ) +TILE_GET_INFO_MEMBER(runaway_state::runaway_get_tile_info) { - runaway_state *state = machine.driver_data<runaway_state>(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; - SET_TILE_INFO(0, ((code & 0x3f) << 1) | ((code & 0x40) >> 6) | (state->m_tile_bank << 7), 0, (code & 0x80) ? TILE_FLIPY : 0); + SET_TILE_INFO_MEMBER(0, ((code & 0x3f) << 1) | ((code & 0x40) >> 6) | (m_tile_bank << 7), 0, (code & 0x80) ? TILE_FLIPY : 0); } -static TILE_GET_INFO( qwak_get_tile_info ) +TILE_GET_INFO_MEMBER(runaway_state::qwak_get_tile_info) { - runaway_state *state = machine.driver_data<runaway_state>(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; - SET_TILE_INFO(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), 0, 0); + SET_TILE_INFO_MEMBER(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), 0, 0); } @@ -71,7 +69,7 @@ static TILE_GET_INFO( qwak_get_tile_info ) VIDEO_START( runaway ) { runaway_state *state = machine.driver_data<runaway_state>(); - state->m_bg_tilemap = tilemap_create(machine, runaway_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 30); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(runaway_state::runaway_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 30); state->save_item(NAME(state->m_tile_bank)); } @@ -80,7 +78,7 @@ VIDEO_START( runaway ) VIDEO_START( qwak ) { runaway_state *state = machine.driver_data<runaway_state>(); - state->m_bg_tilemap = tilemap_create(machine, qwak_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 30); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(runaway_state::qwak_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 30); state->save_item(NAME(state->m_tile_bank)); } diff --git a/src/mame/video/rungun.c b/src/mame/video/rungun.c index 57dfb17f8ba..f1af1be7e6f 100644 --- a/src/mame/video/rungun.c +++ b/src/mame/video/rungun.c @@ -14,16 +14,15 @@ #include "includes/rungun.h" /* TTL text plane stuff */ -static TILE_GET_INFO( ttl_get_tile_info ) +TILE_GET_INFO_MEMBER(rungun_state::ttl_get_tile_info) { - rungun_state *state = machine.driver_data<rungun_state>(); - UINT8 *lvram = (UINT8 *)state->m_ttl_vram; + UINT8 *lvram = (UINT8 *)m_ttl_vram; int attr, code; attr = (lvram[BYTE_XOR_LE(tile_index<<2)] & 0xf0) >> 4; code = ((lvram[BYTE_XOR_LE(tile_index<<2)] & 0x0f) << 8) | (lvram[BYTE_XOR_LE((tile_index<<2)+2)]); - SET_TILE_INFO(state->m_ttl_gfx_index, code, attr, 0); + SET_TILE_INFO_MEMBER(m_ttl_gfx_index, code, attr, 0); } void rng_sprite_callback( running_machine &machine, int *code, int *color, int *priority_mask ) @@ -49,16 +48,15 @@ WRITE16_MEMBER(rungun_state::rng_936_videoram_w) m_936_tilemap->mark_tile_dirty(offset / 2); } -static TILE_GET_INFO( get_rng_936_tile_info ) +TILE_GET_INFO_MEMBER(rungun_state::get_rng_936_tile_info) { - rungun_state *state = machine.driver_data<rungun_state>(); int tileno, colour, flipx; - tileno = state->m_936_videoram[tile_index * 2 + 1] & 0x3fff; - flipx = (state->m_936_videoram[tile_index * 2 + 1] & 0xc000) >> 14; - colour = 0x10 + (state->m_936_videoram[tile_index * 2] & 0x000f); + tileno = m_936_videoram[tile_index * 2 + 1] & 0x3fff; + flipx = (m_936_videoram[tile_index * 2 + 1] & 0xc000) >> 14; + colour = 0x10 + (m_936_videoram[tile_index * 2] & 0x000f); - SET_TILE_INFO(0, tileno, colour, TILE_FLIPYX(flipx)); + SET_TILE_INFO_MEMBER(0, tileno, colour, TILE_FLIPYX(flipx)); } @@ -78,7 +76,7 @@ VIDEO_START( rng ) rungun_state *state = machine.driver_data<rungun_state>(); int gfx_index; - state->m_936_tilemap = tilemap_create(machine, get_rng_936_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); + state->m_936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rungun_state::get_rng_936_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); state->m_936_tilemap->set_transparent_pen(0); /* find first empty slot to decode gfx */ @@ -93,7 +91,7 @@ VIDEO_START( rng ) state->m_ttl_gfx_index = gfx_index; // create the tilemap - state->m_ttl_tilemap = tilemap_create(machine, ttl_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_ttl_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rungun_state::ttl_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_ttl_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/sauro.c b/src/mame/video/sauro.c index 1e181540f24..2bf6156a2d6 100644 --- a/src/mame/video/sauro.c +++ b/src/mame/video/sauro.c @@ -45,24 +45,22 @@ WRITE8_MEMBER(sauro_state::tecfri_scroll_bg_w) m_bg_tilemap->set_scrollx(0, data); } -static TILE_GET_INFO( get_tile_info_bg ) +TILE_GET_INFO_MEMBER(sauro_state::get_tile_info_bg) { - sauro_state *state = machine.driver_data<sauro_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x07) << 8); - int color = ((state->m_colorram[tile_index] >> 4) & 0x0f) | state->m_palette_bank; - int flags = state->m_colorram[tile_index] & 0x08 ? TILE_FLIPX : 0; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x07) << 8); + int color = ((m_colorram[tile_index] >> 4) & 0x0f) | m_palette_bank; + int flags = m_colorram[tile_index] & 0x08 ? TILE_FLIPX : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } -static TILE_GET_INFO( get_tile_info_fg ) +TILE_GET_INFO_MEMBER(sauro_state::get_tile_info_fg) { - sauro_state *state = machine.driver_data<sauro_state>(); - int code = state->m_videoram2[tile_index] + ((state->m_colorram2[tile_index] & 0x07) << 8); - int color = ((state->m_colorram2[tile_index] >> 4) & 0x0f) | state->m_palette_bank; - int flags = state->m_colorram2[tile_index] & 0x08 ? TILE_FLIPX : 0; + int code = m_videoram2[tile_index] + ((m_colorram2[tile_index] & 0x07) << 8); + int color = ((m_colorram2[tile_index] >> 4) & 0x0f) | m_palette_bank; + int flags = m_colorram2[tile_index] & 0x08 ? TILE_FLIPX : 0; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } /* Sauro */ @@ -89,10 +87,10 @@ VIDEO_START( sauro ) { sauro_state *state = machine.driver_data<sauro_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info_bg, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_bg),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_tile_info_fg, TILEMAP_SCAN_COLS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_fg),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); @@ -163,7 +161,7 @@ VIDEO_START( trckydoc ) { sauro_state *state = machine.driver_data<sauro_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info_bg, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_bg),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); } diff --git a/src/mame/video/sbasketb.c b/src/mame/video/sbasketb.c index 9b9b484a278..8f229fe2ee0 100644 --- a/src/mame/video/sbasketb.c +++ b/src/mame/video/sbasketb.c @@ -116,21 +116,20 @@ WRITE8_MEMBER(sbasketb_state::sbasketb_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(sbasketb_state::get_bg_tile_info) { - sbasketb_state *state = machine.driver_data<sbasketb_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x20) << 3); - int color = state->m_colorram[tile_index] & 0x0f; - int flags = ((state->m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x20) << 3); + int color = m_colorram[tile_index] & 0x0f; + int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( sbasketb ) { sbasketb_state *state = machine.driver_data<sbasketb_state>(); - 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(sbasketb_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); } diff --git a/src/mame/video/sbugger.c b/src/mame/video/sbugger.c index 25034b0fd74..6912d8a7948 100644 --- a/src/mame/video/sbugger.c +++ b/src/mame/video/sbugger.c @@ -3,15 +3,14 @@ #include "emu.h" #include "includes/sbugger.h" -static TILE_GET_INFO( get_sbugger_tile_info ) +TILE_GET_INFO_MEMBER(sbugger_state::get_sbugger_tile_info) { - sbugger_state *state = machine.driver_data<sbugger_state>(); int tileno, color; - tileno = state->m_videoram[tile_index]; - color = state->m_videoram_attr[tile_index]; + tileno = m_videoram[tile_index]; + color = m_videoram_attr[tile_index]; - SET_TILE_INFO(0,tileno,color,0); + SET_TILE_INFO_MEMBER(0,tileno,color,0); } WRITE8_MEMBER(sbugger_state::sbugger_videoram_w) @@ -31,7 +30,7 @@ WRITE8_MEMBER(sbugger_state::sbugger_videoram_attr_w) VIDEO_START(sbugger) { sbugger_state *state = machine.driver_data<sbugger_state>(); - state->m_tilemap = tilemap_create(machine, get_sbugger_tile_info, TILEMAP_SCAN_ROWS, 8, 16, 64, 16); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sbugger_state::get_sbugger_tile_info),state), TILEMAP_SCAN_ROWS, 8, 16, 64, 16); } SCREEN_UPDATE_IND16(sbugger) diff --git a/src/mame/video/scotrsht.c b/src/mame/video/scotrsht.c index 58bd392ba0f..d162c162021 100644 --- a/src/mame/video/scotrsht.c +++ b/src/mame/video/scotrsht.c @@ -79,12 +79,11 @@ WRITE8_MEMBER(scotrsht_state::scotrsht_palettebank_w) } -static TILE_GET_INFO( scotrsht_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(scotrsht_state::scotrsht_get_bg_tile_info) { - scotrsht_state *state = machine.driver_data<scotrsht_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + (state->m_charbank << 9) + ((attr & 0x40) << 2); - int color = (attr & 0x0f) + state->m_palette_bank * 16; + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + (m_charbank << 9) + ((attr & 0x40) << 2); + int color = (attr & 0x0f) + m_palette_bank * 16; int flag = 0; if(attr & 0x10) flag |= TILE_FLIPX; @@ -92,7 +91,7 @@ static TILE_GET_INFO( scotrsht_get_bg_tile_info ) // data & 0x80 -> tile priority? - SET_TILE_INFO(0, code, color, flag); + SET_TILE_INFO_MEMBER(0, code, color, flag); } /* Same as Jailbreak + palette bank */ @@ -130,7 +129,7 @@ VIDEO_START( scotrsht ) { scotrsht_state *state = machine.driver_data<scotrsht_state>(); - state->m_bg_tilemap = tilemap_create(machine, scotrsht_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(scotrsht_state::scotrsht_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_scroll_cols(64); } diff --git a/src/mame/video/sderby.c b/src/mame/video/sderby.c index 9626ae8fa7f..90782f47f74 100644 --- a/src/mame/video/sderby.c +++ b/src/mame/video/sderby.c @@ -3,15 +3,14 @@ /* BG Layer */ -static TILE_GET_INFO( get_sderby_tile_info ) +TILE_GET_INFO_MEMBER(sderby_state::get_sderby_tile_info) { - sderby_state *state = machine.driver_data<sderby_state>(); int tileno,colour; - tileno = state->m_videoram[tile_index*2]; - colour = state->m_videoram[tile_index*2+1] & 0x0f; + tileno = m_videoram[tile_index*2]; + colour = m_videoram[tile_index*2+1] & 0x0f; - SET_TILE_INFO(1,tileno,colour,0); + SET_TILE_INFO_MEMBER(1,tileno,colour,0); } WRITE16_MEMBER(sderby_state::sderby_videoram_w) @@ -23,15 +22,14 @@ WRITE16_MEMBER(sderby_state::sderby_videoram_w) /* MD Layer */ -static TILE_GET_INFO( get_sderby_md_tile_info ) +TILE_GET_INFO_MEMBER(sderby_state::get_sderby_md_tile_info) { - sderby_state *state = machine.driver_data<sderby_state>(); int tileno,colour; - tileno = state->m_md_videoram[tile_index*2]; - colour = state->m_md_videoram[tile_index*2+1] & 0x0f; + tileno = m_md_videoram[tile_index*2]; + colour = m_md_videoram[tile_index*2+1] & 0x0f; - SET_TILE_INFO(1,tileno,colour+16,0); + SET_TILE_INFO_MEMBER(1,tileno,colour+16,0); } WRITE16_MEMBER(sderby_state::sderby_md_videoram_w) @@ -43,15 +41,14 @@ WRITE16_MEMBER(sderby_state::sderby_md_videoram_w) /* FG Layer */ -static TILE_GET_INFO( get_sderby_fg_tile_info ) +TILE_GET_INFO_MEMBER(sderby_state::get_sderby_fg_tile_info) { - sderby_state *state = machine.driver_data<sderby_state>(); int tileno,colour; - tileno = state->m_fg_videoram[tile_index*2]; - colour = state->m_fg_videoram[tile_index*2+1] & 0x0f; + tileno = m_fg_videoram[tile_index*2]; + colour = m_fg_videoram[tile_index*2+1] & 0x0f; - SET_TILE_INFO(0,tileno,colour+32,0); + SET_TILE_INFO_MEMBER(0,tileno,colour+32,0); } WRITE16_MEMBER(sderby_state::sderby_fg_videoram_w) @@ -96,12 +93,12 @@ VIDEO_START( sderby ) { sderby_state *state = machine.driver_data<sderby_state>(); - state->m_tilemap = tilemap_create(machine, get_sderby_tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); - state->m_md_tilemap = tilemap_create(machine, get_sderby_md_tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); + state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_md_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); state->m_md_tilemap->set_transparent_pen(0); - state->m_fg_tilemap = tilemap_create(machine, get_sderby_fg_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_fg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/segag80r.c b/src/mame/video/segag80r.c index ba2391fd529..0fd202ade9c 100644 --- a/src/mame/video/segag80r.c +++ b/src/mame/video/segag80r.c @@ -150,15 +150,14 @@ static void spaceod_bg_init_palette(running_machine &machine) * *************************************/ -static TILE_GET_INFO( spaceod_get_tile_info ) +TILE_GET_INFO_MEMBER(segag80r_state::spaceod_get_tile_info) { - segag80r_state *state = machine.driver_data<segag80r_state>(); - int code = state->memregion("gfx2")->base()[tile_index + 0x1000 * (state->m_spaceod_bg_control >> 6)]; - SET_TILE_INFO(1, code + 0x100 * ((state->m_spaceod_bg_control >> 2) & 1), 0, 0); + int code = memregion("gfx2")->base()[tile_index + 0x1000 * (m_spaceod_bg_control >> 6)]; + SET_TILE_INFO_MEMBER(1, code + 0x100 * ((m_spaceod_bg_control >> 2) & 1), 0, 0); } -static TILEMAP_MAPPER( spaceod_scan_rows ) +TILEMAP_MAPPER_MEMBER(segag80r_state::spaceod_scan_rows) { /* this works for both horizontal and vertical tilemaps */ /* which are 4 32x32 sections */ @@ -166,11 +165,10 @@ static TILEMAP_MAPPER( spaceod_scan_rows ) } -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(segag80r_state::bg_get_tile_info) { - segag80r_state *state = machine.driver_data<segag80r_state>(); - int code = state->memregion("gfx2")->base()[tile_index]; - SET_TILE_INFO(1, code + 0x100 * state->m_bg_char_bank, code >> 4, 0); + int code = memregion("gfx2")->base()[tile_index]; + SET_TILE_INFO_MEMBER(1, code + 0x100 * m_bg_char_bank, code >> 4, 0); } @@ -210,19 +208,19 @@ VIDEO_START( segag80r ) /* and one vertically scrolling */ case G80_BACKGROUND_SPACEOD: spaceod_bg_init_palette(machine); - state->m_spaceod_bg_htilemap = tilemap_create(machine, spaceod_get_tile_info, spaceod_scan_rows, 8,8, 128,32); - state->m_spaceod_bg_vtilemap = tilemap_create(machine, spaceod_get_tile_info, spaceod_scan_rows, 8,8, 32,128); + state->m_spaceod_bg_htilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::spaceod_get_tile_info),state), tilemap_mapper_delegate(FUNC(segag80r_state::spaceod_scan_rows),state), 8,8, 128,32); + state->m_spaceod_bg_vtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::spaceod_get_tile_info),state), tilemap_mapper_delegate(FUNC(segag80r_state::spaceod_scan_rows),state), 8,8, 32,128); break; /* background tilemap is effectively 1 screen x n screens */ case G80_BACKGROUND_MONSTERB: - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,machine.root_device().memregion("gfx2")->bytes() / 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,machine.root_device().memregion("gfx2")->bytes() / 32); break; /* background tilemap is effectively 4 screens x n screens */ case G80_BACKGROUND_PIGNEWT: case G80_BACKGROUND_SINDBADM: - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 128,machine.root_device().memregion("gfx2")->bytes() / 128); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 128,machine.root_device().memregion("gfx2")->bytes() / 128); break; } diff --git a/src/mame/video/segas32.c b/src/mame/video/segas32.c index e1fe54f7e22..be752ad6ada 100644 --- a/src/mame/video/segas32.c +++ b/src/mame/video/segas32.c @@ -221,7 +221,7 @@ struct cache_entry * *************************************/ -static TILE_GET_INFO( get_tile_info ); + static void sprite_erase_buffer(segas32_state *state); static void sprite_swap_buffers(segas32_state *state); static void sprite_render_list(running_machine &machine); @@ -252,7 +252,7 @@ static void common_start(running_machine &machine, int multi32) { struct cache_entry *entry = auto_alloc(machine, struct cache_entry); - entry->tmap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,16); + entry->tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas32_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,16); entry->page = 0xff; entry->bank = 0; entry->next = state->m_cache_head; @@ -747,12 +747,11 @@ static tilemap_t *find_cache_entry(segas32_state *state, int page, int bank) * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(segas32_state::get_tile_info) { - segas32_state *state = machine.driver_data<segas32_state>(); struct cache_entry *entry = (struct cache_entry *)param; - UINT16 data = state->m_system32_videoram[(entry->page & 0x7f) * 0x200 + tile_index]; - SET_TILE_INFO(0, (entry->bank << 13) + (data & 0x1fff), (data >> 4) & 0x1ff, (data >> 14) & 3); + UINT16 data = m_system32_videoram[(entry->page & 0x7f) * 0x200 + tile_index]; + SET_TILE_INFO_MEMBER(0, (entry->bank << 13) + (data & 0x1fff), (data >> 4) & 0x1ff, (data >> 14) & 3); } diff --git a/src/mame/video/seibuspi.c b/src/mame/video/seibuspi.c index d1f9422f4d2..0fba7332cff 100644 --- a/src/mame/video/seibuspi.c +++ b/src/mame/video/seibuspi.c @@ -400,65 +400,61 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r } } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(seibuspi_state::get_text_tile_info) { - seibuspi_state *state = machine.driver_data<seibuspi_state>(); int offs = tile_index / 2; - int tile = (state->m_tilemap_ram[offs + state->m_text_layer_offset] >> ((tile_index & 0x1) ? 16 : 0)) & 0xffff; + int tile = (m_tilemap_ram[offs + m_text_layer_offset] >> ((tile_index & 0x1) ? 16 : 0)) & 0xffff; int color = (tile >> 12) & 0xf; tile &= 0xfff; - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(seibuspi_state::get_back_tile_info) { - seibuspi_state *state = machine.driver_data<seibuspi_state>(); int offs = tile_index / 2; - int tile = (state->m_tilemap_ram[offs] >> ((tile_index & 0x1) ? 16 : 0)) & 0xffff; + int tile = (m_tilemap_ram[offs] >> ((tile_index & 0x1) ? 16 : 0)) & 0xffff; int color = (tile >> 13) & 0x7; tile &= 0x1fff; - if( state->m_rf2_layer_bank[0] ) + if( m_rf2_layer_bank[0] ) tile |= 0x4000; - SET_TILE_INFO(1, tile, color, 0); + SET_TILE_INFO_MEMBER(1, tile, color, 0); } -static TILE_GET_INFO( get_mid_tile_info ) +TILE_GET_INFO_MEMBER(seibuspi_state::get_mid_tile_info) { - seibuspi_state *state = machine.driver_data<seibuspi_state>(); int offs = tile_index / 2; - int tile = (state->m_tilemap_ram[offs + state->m_mid_layer_offset] >> ((tile_index & 0x1) ? 16 : 0)) & 0xffff; + int tile = (m_tilemap_ram[offs + m_mid_layer_offset] >> ((tile_index & 0x1) ? 16 : 0)) & 0xffff; int color = (tile >> 13) & 0x7; tile &= 0x1fff; tile |= 0x2000; - if( state->m_rf2_layer_bank[1] ) + if( m_rf2_layer_bank[1] ) tile |= 0x4000; - SET_TILE_INFO(1, tile, color + 16, 0); + SET_TILE_INFO_MEMBER(1, tile, color + 16, 0); } -static TILE_GET_INFO( get_fore_tile_info ) +TILE_GET_INFO_MEMBER(seibuspi_state::get_fore_tile_info) { - seibuspi_state *state = machine.driver_data<seibuspi_state>(); int offs = tile_index / 2; - int tile = (state->m_tilemap_ram[offs + state->m_fore_layer_offset] >> ((tile_index & 0x1) ? 16 : 0)) & 0xffff; + int tile = (m_tilemap_ram[offs + m_fore_layer_offset] >> ((tile_index & 0x1) ? 16 : 0)) & 0xffff; int color = (tile >> 13) & 0x7; tile &= 0x1fff; - tile |= state->m_bg_fore_layer_position; + tile |= m_bg_fore_layer_position; - if( state->m_rf2_layer_bank[2] ) + if( m_rf2_layer_bank[2] ) tile |= 0x4000; - tile |= ((state->m_layer_bank >> 27) & 0x1) << 13; + tile |= ((m_layer_bank >> 27) & 0x1) << 13; - SET_TILE_INFO(1, tile, color + 8, 0); + SET_TILE_INFO_MEMBER(1, tile, color + 8, 0); } VIDEO_START( spi ) @@ -467,10 +463,10 @@ VIDEO_START( spi ) int i; int region_length; - state->m_text_layer = tilemap_create( machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8,8,64,32 ); - state->m_back_layer = tilemap_create( machine, get_back_tile_info, TILEMAP_SCAN_COLS, 16,16,32,32 ); - state->m_mid_layer = tilemap_create( machine, get_mid_tile_info, TILEMAP_SCAN_COLS, 16,16,32,32 ); - state->m_fore_layer = tilemap_create( machine, get_fore_tile_info, TILEMAP_SCAN_COLS, 16,16,32,32 ); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seibuspi_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8,8,64,32 ); + state->m_back_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seibuspi_state::get_back_tile_info),state), TILEMAP_SCAN_COLS, 16,16,32,32 ); + state->m_mid_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seibuspi_state::get_mid_tile_info),state), TILEMAP_SCAN_COLS, 16,16,32,32 ); + state->m_fore_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seibuspi_state::get_fore_tile_info),state), TILEMAP_SCAN_COLS, 16,16,32,32 ); state->m_text_layer->set_transparent_pen(31); state->m_mid_layer->set_transparent_pen(63); diff --git a/src/mame/video/seicross.c b/src/mame/video/seicross.c index 95d9fd33d02..e50cbf90997 100644 --- a/src/mame/video/seicross.c +++ b/src/mame/video/seicross.c @@ -76,21 +76,20 @@ WRITE8_MEMBER(seicross_state::seicross_colorram_w) m_bg_tilemap->mark_tile_dirty(offset + 0x20); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(seicross_state::get_bg_tile_info) { - seicross_state *state = machine.driver_data<seicross_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x10) << 4); - int color = state->m_colorram[tile_index] & 0x0f; - int flags = ((state->m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x10) << 4); + int color = m_colorram[tile_index] & 0x0f; + int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( seicross ) { seicross_state *state = machine.driver_data<seicross_state>(); - 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(seicross_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); diff --git a/src/mame/video/senjyo.c b/src/mame/video/senjyo.c index 28559e9aabd..de413a99540 100644 --- a/src/mame/video/senjyo.c +++ b/src/mame/video/senjyo.c @@ -17,67 +17,62 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(senjyo_state::get_fg_tile_info) { - senjyo_state *state = machine.driver_data<senjyo_state>(); - UINT8 attr = state->m_fgcolorram[tile_index]; + UINT8 attr = m_fgcolorram[tile_index]; int flags = (attr & 0x80) ? TILE_FLIPY : 0; - if (state->m_is_senjyo && (tile_index & 0x1f) >= 32-8) + if (m_is_senjyo && (tile_index & 0x1f) >= 32-8) flags |= TILE_FORCE_LAYER0; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_fgvideoram[tile_index] + ((attr & 0x10) << 4), + m_fgvideoram[tile_index] + ((attr & 0x10) << 4), attr & 0x07, flags); } -static TILE_GET_INFO( senjyo_bg1_tile_info ) +TILE_GET_INFO_MEMBER(senjyo_state::senjyo_bg1_tile_info) { - senjyo_state *state = machine.driver_data<senjyo_state>(); - UINT8 code = state->m_bg1videoram[tile_index]; + UINT8 code = m_bg1videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, (code & 0x70) >> 4, 0); } -static TILE_GET_INFO( starforc_bg1_tile_info ) +TILE_GET_INFO_MEMBER(senjyo_state::starforc_bg1_tile_info) { /* Star Force has more tiles in bg1, so to get a uniform color code spread */ /* they wired bit 7 of the tile code in place of bit 4 to get the color code */ static const UINT8 colormap[8] = { 0, 2, 4, 6, 1, 3, 5, 7 }; - senjyo_state *state = machine.driver_data<senjyo_state>(); - UINT8 code = state->m_bg1videoram[tile_index]; + UINT8 code = m_bg1videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, colormap[(code & 0xe0) >> 5], 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(senjyo_state::get_bg2_tile_info) { - senjyo_state *state = machine.driver_data<senjyo_state>(); - UINT8 code = state->m_bg2videoram[tile_index]; + UINT8 code = m_bg2videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code, (code & 0xe0) >> 5, 0); } -static TILE_GET_INFO( get_bg3_tile_info ) +TILE_GET_INFO_MEMBER(senjyo_state::get_bg3_tile_info) { - senjyo_state *state = machine.driver_data<senjyo_state>(); - UINT8 code = state->m_bg3videoram[tile_index]; + UINT8 code = m_bg3videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, code, (code & 0xe0) >> 5, @@ -96,19 +91,19 @@ VIDEO_START( senjyo ) { senjyo_state *state = machine.driver_data<senjyo_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); if (state->m_is_senjyo) { - state->m_bg1_tilemap = tilemap_create(machine, senjyo_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 48); /* only 16x32 used by Star Force */ - state->m_bg3_tilemap = tilemap_create(machine, get_bg3_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 56); /* only 16x32 used by Star Force */ + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::senjyo_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 48); /* only 16x32 used by Star Force */ + state->m_bg3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_bg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 56); /* only 16x32 used by Star Force */ } else { - state->m_bg1_tilemap = tilemap_create(machine, starforc_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */ - state->m_bg3_tilemap = tilemap_create(machine, get_bg3_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */ + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::starforc_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */ + state->m_bg3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_bg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */ } state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/seta.c b/src/mame/video/seta.c index ee780985d5e..50989864e94 100644 --- a/src/mame/video/seta.c +++ b/src/mame/video/seta.c @@ -372,8 +372,8 @@ INLINE void twineagl_tile_info( running_machine &machine, tile_data &tileinfo, i SET_TILE_INFO( 1, (code & 0x3fff), attr & 0x1f, TILE_FLIPXY((code & 0xc000) >> 14) ); } -static TILE_GET_INFO( twineagl_get_tile_info_0 ) { twineagl_tile_info( machine, tileinfo, tile_index, 0x0000 ); } -static TILE_GET_INFO( twineagl_get_tile_info_1 ) { twineagl_tile_info( machine, tileinfo, tile_index, 0x1000 ); } +TILE_GET_INFO_MEMBER(seta_state::twineagl_get_tile_info_0){ twineagl_tile_info( machine(), tileinfo, tile_index, 0x0000 ); } +TILE_GET_INFO_MEMBER(seta_state::twineagl_get_tile_info_1){ twineagl_tile_info( machine(), tileinfo, tile_index, 0x1000 ); } INLINE void get_tile_info( running_machine &machine, tile_data &tileinfo, int tile_index, int layer, int offset ) @@ -397,10 +397,10 @@ INLINE void get_tile_info( running_machine &machine, tile_data &tileinfo, int ti SET_TILE_INFO( gfx, state->m_tiles_offset + (code & 0x3fff), attr & 0x1f, TILE_FLIPXY((code & 0xc000) >> 14) ); } -static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info( machine, tileinfo, tile_index, 0, 0x0000 ); } -static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info( machine, tileinfo, tile_index, 0, 0x1000 ); } -static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info( machine, tileinfo, tile_index, 1, 0x0000 ); } -static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info( machine, tileinfo, tile_index, 1, 0x1000 ); } +TILE_GET_INFO_MEMBER(seta_state::get_tile_info_0){ get_tile_info( machine(), tileinfo, tile_index, 0, 0x0000 ); } +TILE_GET_INFO_MEMBER(seta_state::get_tile_info_1){ get_tile_info( machine(), tileinfo, tile_index, 0, 0x1000 ); } +TILE_GET_INFO_MEMBER(seta_state::get_tile_info_2){ get_tile_info( machine(), tileinfo, tile_index, 1, 0x0000 ); } +TILE_GET_INFO_MEMBER(seta_state::get_tile_info_3){ get_tile_info( machine(), tileinfo, tile_index, 1, 0x1000 ); } WRITE16_MEMBER(seta_state::seta_vram_0_w) @@ -449,18 +449,18 @@ VIDEO_START( seta_2_layers ) at any given time */ /* layer 0 */ - state->m_tilemap_0 = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16,16, 64,32 ); - state->m_tilemap_1 = tilemap_create( machine, get_tile_info_1, TILEMAP_SCAN_ROWS, + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16,16, 64,32 ); /* layer 1 */ - state->m_tilemap_2 = tilemap_create( machine, get_tile_info_2, TILEMAP_SCAN_ROWS, + state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 16,16, 64,32 ); - state->m_tilemap_3 = tilemap_create( machine, get_tile_info_3, TILEMAP_SCAN_ROWS, + state->m_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS, 16,16, 64,32 ); state->m_tilemaps_flip = 0; @@ -484,10 +484,10 @@ VIDEO_START( seta_1_layer ) at any given time */ /* layer 0 */ - state->m_tilemap_0 = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16,16, 64,32 ); - state->m_tilemap_1 = tilemap_create( machine, get_tile_info_1, TILEMAP_SCAN_ROWS, + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16,16, 64,32 ); state->m_color_mode_shift = 4; @@ -506,10 +506,10 @@ VIDEO_START( twineagl_1_layer ) at any given time */ /* layer 0 */ - state->m_tilemap_0 = tilemap_create( machine, twineagl_get_tile_info_0, TILEMAP_SCAN_ROWS, + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16,16, 64,32 ); - state->m_tilemap_1 = tilemap_create( machine, twineagl_get_tile_info_1, TILEMAP_SCAN_ROWS, + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16,16, 64,32 ); state->m_tilemap_0->set_transparent_pen(0); diff --git a/src/mame/video/sf.c b/src/mame/video/sf.c index ef1a5f7d73c..6737b079d30 100644 --- a/src/mame/video/sf.c +++ b/src/mame/video/sf.c @@ -7,37 +7,36 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(sf_state::get_bg_tile_info) { - UINT8 *base = machine.root_device().memregion("gfx5")->base() + 2 * tile_index; + UINT8 *base = machine().root_device().memregion("gfx5")->base() + 2 * tile_index; int attr = base[0x10000]; int color = base[0]; int code = (base[0x10000 + 1] << 8) | base[1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, TILE_FLIPYX(attr & 3)); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(sf_state::get_fg_tile_info) { - UINT8 *base = machine.root_device().memregion("gfx5")->base() + 0x20000 + 2 * tile_index; + UINT8 *base = machine().root_device().memregion("gfx5")->base() + 0x20000 + 2 * tile_index; int attr = base[0x10000]; int color = base[0]; int code = (base[0x10000 + 1] << 8) | base[1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, color, TILE_FLIPYX(attr & 3)); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(sf_state::get_tx_tile_info) { - sf_state *state = machine.driver_data<sf_state>(); - int code = state->m_videoram[tile_index]; - SET_TILE_INFO( + int code = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER( 3, code & 0x3ff, code>>12, @@ -56,9 +55,9 @@ VIDEO_START( sf ) { sf_state *state = machine.driver_data<sf_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 2048, 16); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 2048, 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(sf_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 2048, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sf_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 2048, 16); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sf_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(3); diff --git a/src/mame/video/shadfrce.c b/src/mame/video/shadfrce.c index cbcf8faf375..a0d2bd047c7 100644 --- a/src/mame/video/shadfrce.c +++ b/src/mame/video/shadfrce.c @@ -1,17 +1,16 @@ #include "emu.h" #include "includes/shadfrce.h" -static TILE_GET_INFO( get_shadfrce_fgtile_info ) +TILE_GET_INFO_MEMBER(shadfrce_state::get_shadfrce_fgtile_info) { /* ---- ---- tttt tttt ---- ---- pppp TTTT */ - shadfrce_state *state = machine.driver_data<shadfrce_state>(); int tileno, colour; - tileno = (state->m_fgvideoram[tile_index *2] & 0x00ff) | ((state->m_fgvideoram[tile_index *2+1] & 0x000f) << 8); - colour = (state->m_fgvideoram[tile_index *2+1] & 0x00f0) >>4; + tileno = (m_fgvideoram[tile_index *2] & 0x00ff) | ((m_fgvideoram[tile_index *2+1] & 0x000f) << 8); + colour = (m_fgvideoram[tile_index *2+1] & 0x00f0) >>4; - SET_TILE_INFO(0,tileno,colour*4,0); + SET_TILE_INFO_MEMBER(0,tileno,colour*4,0); } WRITE16_MEMBER(shadfrce_state::shadfrce_fgvideoram_w) @@ -21,19 +20,18 @@ WRITE16_MEMBER(shadfrce_state::shadfrce_fgvideoram_w) m_fgtilemap->mark_tile_dirty(offset/2); } -static TILE_GET_INFO( get_shadfrce_bg0tile_info ) +TILE_GET_INFO_MEMBER(shadfrce_state::get_shadfrce_bg0tile_info) { /* ---- ---- ---- cccc --TT TTTT TTTT TTTT */ - shadfrce_state *state = machine.driver_data<shadfrce_state>(); int tileno, colour,fyx; - tileno = (state->m_bg0videoram[tile_index *2+1] & 0x3fff); - colour = state->m_bg0videoram[tile_index *2] & 0x001f; + tileno = (m_bg0videoram[tile_index *2+1] & 0x3fff); + colour = m_bg0videoram[tile_index *2] & 0x001f; if (colour & 0x10) colour ^= 0x30; /* skip hole */ - fyx = (state->m_bg0videoram[tile_index *2] & 0x00c0) >>6; + fyx = (m_bg0videoram[tile_index *2] & 0x00c0) >>6; - SET_TILE_INFO(2,tileno,colour,TILE_FLIPYX(fyx)); + SET_TILE_INFO_MEMBER(2,tileno,colour,TILE_FLIPYX(fyx)); } WRITE16_MEMBER(shadfrce_state::shadfrce_bg0videoram_w) @@ -43,15 +41,14 @@ WRITE16_MEMBER(shadfrce_state::shadfrce_bg0videoram_w) m_bg0tilemap->mark_tile_dirty(offset/2); } -static TILE_GET_INFO( get_shadfrce_bg1tile_info ) +TILE_GET_INFO_MEMBER(shadfrce_state::get_shadfrce_bg1tile_info) { - shadfrce_state *state = machine.driver_data<shadfrce_state>(); int tileno, colour; - tileno = (state->m_bg1videoram[tile_index] & 0x0fff); - colour = (state->m_bg1videoram[tile_index] & 0xf000) >> 12; + tileno = (m_bg1videoram[tile_index] & 0x0fff); + colour = (m_bg1videoram[tile_index] & 0xf000) >> 12; - SET_TILE_INFO(2,tileno,colour+64,0); + SET_TILE_INFO_MEMBER(2,tileno,colour+64,0); } WRITE16_MEMBER(shadfrce_state::shadfrce_bg1videoram_w) @@ -68,13 +65,13 @@ VIDEO_START( shadfrce ) { shadfrce_state *state = machine.driver_data<shadfrce_state>(); - state->m_fgtilemap = tilemap_create(machine, get_shadfrce_fgtile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_fgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shadfrce_state::get_shadfrce_fgtile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_fgtilemap->set_transparent_pen(0); - state->m_bg0tilemap = tilemap_create(machine, get_shadfrce_bg0tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); + state->m_bg0tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shadfrce_state::get_shadfrce_bg0tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); state->m_bg0tilemap->set_transparent_pen(0); - state->m_bg1tilemap = tilemap_create(machine, get_shadfrce_bg1tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); + state->m_bg1tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shadfrce_state::get_shadfrce_bg1tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); state->m_spvideoram_old = auto_alloc_array(machine, UINT16, state->m_spvideoram.bytes()/2); } diff --git a/src/mame/video/shangkid.c b/src/mame/video/shangkid.c index 2f0765c9d3b..e6b97c2dbcc 100644 --- a/src/mame/video/shangkid.c +++ b/src/mame/video/shangkid.c @@ -5,14 +5,13 @@ #include "includes/shangkid.h" -static TILE_GET_INFO( get_bg_tile_info ){ - shangkid_state *state = machine.driver_data<shangkid_state>(); - UINT8 *videoram = state->m_videoram; +TILE_GET_INFO_MEMBER(shangkid_state::get_bg_tile_info){ + UINT8 *videoram = m_videoram; int attributes = videoram[tile_index+0x800]; int tile_number = videoram[tile_index]+0x100*(attributes&0x3); int color; - if( state->m_gfx_type==1 ) + if( m_gfx_type==1 ) { /* Shanghai Kid: ------xx bank @@ -21,7 +20,7 @@ static TILE_GET_INFO( get_bg_tile_info ){ */ color = attributes>>3; color = (color&0x03)|((color&0x1c)<<1); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, color, @@ -35,7 +34,7 @@ static TILE_GET_INFO( get_bg_tile_info ){ x------- flipx? */ color = (attributes>>2)&0x1f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, color, @@ -43,13 +42,13 @@ static TILE_GET_INFO( get_bg_tile_info ){ } tileinfo.category = - (machine.root_device().memregion( "proms" )->base()[0x800+color*4]==2)?1:0; + (machine().root_device().memregion( "proms" )->base()[0x800+color*4]==2)?1:0; } VIDEO_START( shangkid ) { shangkid_state *state = machine.driver_data<shangkid_state>(); - state->m_background = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shangkid_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); } WRITE8_MEMBER(shangkid_state::shangkid_videoram_w) diff --git a/src/mame/video/shaolins.c b/src/mame/video/shaolins.c index 3b488269dcf..abc3b71ce36 100644 --- a/src/mame/video/shaolins.c +++ b/src/mame/video/shaolins.c @@ -133,22 +133,21 @@ WRITE8_MEMBER(shaolins_state::shaolins_nmi_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(shaolins_state::get_bg_tile_info) { - shaolins_state *state = machine.driver_data<shaolins_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x40) << 2); - int color = (attr & 0x0f) + 16 * state->m_palettebank; + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x40) << 2); + int color = (attr & 0x0f) + 16 * m_palettebank; int flags = (attr & 0x20) ? TILE_FLIPY : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( shaolins ) { shaolins_state *state = machine.driver_data<shaolins_state>(); - 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(shaolins_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(32); diff --git a/src/mame/video/shisen.c b/src/mame/video/shisen.c index 721929ea1ba..ee966f786aa 100644 --- a/src/mame/video/shisen.c +++ b/src/mame/video/shisen.c @@ -41,21 +41,20 @@ WRITE8_MEMBER(shisen_state::sichuan2_paletteram_w) palette_set_color_rgb(machine(), offset, pal5bit(m_paletteram[offset + 0x000]), pal5bit(m_paletteram[offset + 0x100]), pal5bit(m_paletteram[offset + 0x200])); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(shisen_state::get_bg_tile_info) { - shisen_state *state = machine.driver_data<shisen_state>(); int offs = tile_index * 2; - int code = state->m_videoram[offs] + ((state->m_videoram[offs + 1] & 0x0f) << 8) + (state->m_gfxbank << 12); - int color = (state->m_videoram[offs + 1] & 0xf0) >> 4; + int code = m_videoram[offs] + ((m_videoram[offs + 1] & 0x0f) << 8) + (m_gfxbank << 12); + int color = (m_videoram[offs + 1] & 0xf0) >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( sichuan2 ) { shisen_state *state = machine.driver_data<shisen_state>(); - 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(shisen_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } diff --git a/src/mame/video/shootout.c b/src/mame/video/shootout.c index 4c9053f117b..dd668128c1c 100644 --- a/src/mame/video/shootout.c +++ b/src/mame/video/shootout.c @@ -39,28 +39,26 @@ PALETTE_INIT( shootout ) -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(shootout_state::get_bg_tile_info) { - shootout_state *state = machine.driver_data<shootout_state>(); - int attributes = state->m_videoram[tile_index+0x400]; /* CCCC -TTT */ - int tile_number = state->m_videoram[tile_index] + 256*(attributes&7); + int attributes = m_videoram[tile_index+0x400]; /* CCCC -TTT */ + int tile_number = m_videoram[tile_index] + 256*(attributes&7); int color = attributes>>4; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile_number, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(shootout_state::get_fg_tile_info) { - shootout_state *state = machine.driver_data<shootout_state>(); - int attributes = state->m_textram[tile_index+0x400]; /* CCCC --TT */ - int tile_number = state->m_textram[tile_index] + 256*(attributes&0x3); + int attributes = m_textram[tile_index+0x400]; /* CCCC --TT */ + int tile_number = m_textram[tile_index] + 256*(attributes&0x3); int color = attributes>>4; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, color, @@ -85,8 +83,8 @@ VIDEO_START( shootout ) { shootout_state *state = machine.driver_data<shootout_state>(); - state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_foreground = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shootout_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shootout_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_foreground->set_transparent_pen(0 ); } diff --git a/src/mame/video/shuuz.c b/src/mame/video/shuuz.c index cbed097ce7e..a1f3f25f86d 100644 --- a/src/mame/video/shuuz.c +++ b/src/mame/video/shuuz.c @@ -16,14 +16,13 @@ * *************************************/ -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(shuuz_state::get_playfield_tile_info) { - shuuz_state *state = machine.driver_data<shuuz_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] >> 8; int code = data1 & 0x3fff; int color = data2 & 0x0f; - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); } @@ -75,7 +74,7 @@ VIDEO_START( shuuz ) shuuz_state *state = machine.driver_data<shuuz_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shuuz_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); diff --git a/src/mame/video/sidearms.c b/src/mame/video/sidearms.c index 84e6b388392..b089c81a3df 100644 --- a/src/mame/video/sidearms.c +++ b/src/mame/video/sidearms.c @@ -93,45 +93,42 @@ WRITE8_MEMBER(sidearms_state::sidearms_star_scrolly_w) } -static TILE_GET_INFO( get_sidearms_bg_tile_info ) +TILE_GET_INFO_MEMBER(sidearms_state::get_sidearms_bg_tile_info) { - sidearms_state *state = machine.driver_data<sidearms_state>(); int code, attr, color, flags; - code = state->m_tilerom[tile_index]; - attr = state->m_tilerom[tile_index + 1]; + code = m_tilerom[tile_index]; + attr = m_tilerom[tile_index + 1]; code |= attr<<8 & 0x100; color = attr>>3 & 0x1f; flags = attr>>1 & 0x03; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_philko_bg_tile_info ) +TILE_GET_INFO_MEMBER(sidearms_state::get_philko_bg_tile_info) { - sidearms_state *state = machine.driver_data<sidearms_state>(); int code, attr, color, flags; - code = state->m_tilerom[tile_index]; - attr = state->m_tilerom[tile_index + 1]; + code = m_tilerom[tile_index]; + attr = m_tilerom[tile_index + 1]; code |= (((attr>>6 & 0x02) | (attr & 0x01)) * 0x100); color = attr>>3 & 0x0f; flags = attr>>1 & 0x03; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(sidearms_state::get_fg_tile_info) { - sidearms_state *state = machine.driver_data<sidearms_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + (attr<<2 & 0x300); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + (attr<<2 & 0x300); int color = attr & 0x3f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILEMAP_MAPPER( sidearms_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(sidearms_state::sidearms_tilemap_scan) { /* logical (col,row) -> memory offset */ int offset = ((row << 7) + col) << 1; @@ -147,17 +144,17 @@ VIDEO_START( sidearms ) if (!state->m_gameid) { - state->m_bg_tilemap = tilemap_create(machine, get_sidearms_bg_tile_info, sidearms_tilemap_scan, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sidearms_state::get_sidearms_bg_tile_info),state), tilemap_mapper_delegate(FUNC(sidearms_state::sidearms_tilemap_scan),state), 32, 32, 128, 128); state->m_bg_tilemap->set_transparent_pen(15); } else { - state->m_bg_tilemap = tilemap_create(machine, get_philko_bg_tile_info, sidearms_tilemap_scan, 32, 32, 128, 128); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sidearms_state::get_philko_bg_tile_info),state), tilemap_mapper_delegate(FUNC(sidearms_state::sidearms_tilemap_scan),state), 32, 32, 128, 128); } - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sidearms_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_fg_tilemap->set_transparent_pen(3); diff --git a/src/mame/video/sidepckt.c b/src/mame/video/sidepckt.c index 48de403d5a4..269ff6af3b0 100644 --- a/src/mame/video/sidepckt.c +++ b/src/mame/video/sidepckt.c @@ -42,13 +42,12 @@ PALETTE_INIT( sidepckt ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(sidepckt_state::get_tile_info) { - sidepckt_state *state = machine.driver_data<sidepckt_state>(); - UINT8 attr = state->m_colorram[tile_index]; - SET_TILE_INFO( + UINT8 attr = m_colorram[tile_index]; + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index] + ((attr & 0x07) << 8), + m_videoram[tile_index] + ((attr & 0x07) << 8), ((attr & 0x10) >> 3) | ((attr & 0x20) >> 5), TILE_FLIPX); tileinfo.group = (attr & 0x80) >> 7; @@ -65,7 +64,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( sidepckt ) { sidepckt_state *state = machine.driver_data<sidepckt_state>(); - 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(sidepckt_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_bg_tilemap->set_transmask(0,0xff,0x00); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1,0x01,0xfe); /* split type 1 has pen 0 transparent in front half */ diff --git a/src/mame/video/silkroad.c b/src/mame/video/silkroad.c index 8566ec32210..95b3dbe9567 100644 --- a/src/mame/video/silkroad.c +++ b/src/mame/video/silkroad.c @@ -55,16 +55,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(silkroad_state::get_fg_tile_info) { - silkroad_state *state = machine.driver_data<silkroad_state>(); - int code = ((state->m_vidram[tile_index] & 0xffff0000) >> 16 ); - int color = ((state->m_vidram[tile_index] & 0x000001f)); - int flipx = ((state->m_vidram[tile_index] & 0x0000080) >> 7); + int code = ((m_vidram[tile_index] & 0xffff0000) >> 16 ); + int color = ((m_vidram[tile_index] & 0x000001f)); + int flipx = ((m_vidram[tile_index] & 0x0000080) >> 7); code += 0x18000; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -80,14 +79,13 @@ WRITE32_MEMBER(silkroad_state::silkroad_fgram_w) m_fg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_fg2_tile_info ) +TILE_GET_INFO_MEMBER(silkroad_state::get_fg2_tile_info) { - silkroad_state *state = machine.driver_data<silkroad_state>(); - int code = ((state->m_vidram2[tile_index] & 0xffff0000) >> 16 ); - int color = ((state->m_vidram2[tile_index] & 0x000001f)); - int flipx = ((state->m_vidram2[tile_index] & 0x0000080) >> 7); + int code = ((m_vidram2[tile_index] & 0xffff0000) >> 16 ); + int color = ((m_vidram2[tile_index] & 0x000001f)); + int flipx = ((m_vidram2[tile_index] & 0x0000080) >> 7); code += 0x18000; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -103,14 +101,13 @@ WRITE32_MEMBER(silkroad_state::silkroad_fgram2_w) m_fg2_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_fg3_tile_info ) +TILE_GET_INFO_MEMBER(silkroad_state::get_fg3_tile_info) { - silkroad_state *state = machine.driver_data<silkroad_state>(); - int code = ((state->m_vidram3[tile_index] & 0xffff0000) >> 16 ); - int color = ((state->m_vidram3[tile_index] & 0x000001f)); - int flipx = ((state->m_vidram3[tile_index] & 0x0000080) >> 7); + int code = ((m_vidram3[tile_index] & 0xffff0000) >> 16 ); + int color = ((m_vidram3[tile_index] & 0x000001f)); + int flipx = ((m_vidram3[tile_index] & 0x0000080) >> 7); code += 0x18000; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color, @@ -129,9 +126,9 @@ WRITE32_MEMBER(silkroad_state::silkroad_fgram3_w) VIDEO_START(silkroad) { silkroad_state *state = machine.driver_data<silkroad_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_fg2_tilemap = tilemap_create(machine, get_fg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_fg3_tilemap = tilemap_create(machine, get_fg3_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silkroad_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_fg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silkroad_state::get_fg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_fg3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silkroad_state::get_fg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); state->m_fg_tilemap->set_transparent_pen(0); state->m_fg2_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/skullxbo.c b/src/mame/video/skullxbo.c index 9c925f2597f..ae09ea53f98 100644 --- a/src/mame/video/skullxbo.c +++ b/src/mame/video/skullxbo.c @@ -16,25 +16,23 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(skullxbo_state::get_alpha_tile_info) { - skullxbo_state *state = machine.driver_data<skullxbo_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = (data ^ 0x400) & 0x7ff; int color = (data >> 11) & 0x0f; int opaque = data & 0x8000; - SET_TILE_INFO(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(skullxbo_state::get_playfield_tile_info) { - skullxbo_state *state = machine.driver_data<skullxbo_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] & 0xff; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] & 0xff; int code = data1 & 0x7fff; int color = data2 & 0x0f; - SET_TILE_INFO(1, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(1, code, color, (data1 >> 15) & 1); } @@ -86,13 +84,13 @@ VIDEO_START( skullxbo ) skullxbo_state *state = machine.driver_data<skullxbo_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 16,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skullxbo_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 16,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 16,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skullxbo_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/skydiver.c b/src/mame/video/skydiver.c index b277b2d7107..48f5467a60b 100644 --- a/src/mame/video/skydiver.c +++ b/src/mame/video/skydiver.c @@ -36,11 +36,10 @@ MACHINE_RESET( skydiver ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(skydiver_state::get_tile_info) { - skydiver_state *state = machine.driver_data<skydiver_state>(); - UINT8 code = state->m_videoram[tile_index]; - SET_TILE_INFO(0, code & 0x3f, code >> 6, 0); + UINT8 code = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER(0, code & 0x3f, code >> 6, 0); } @@ -54,7 +53,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( skydiver ) { skydiver_state *state = machine.driver_data<skydiver_state>(); - 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(skydiver_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); } diff --git a/src/mame/video/skykid.c b/src/mame/video/skykid.c index fbc39cbcb70..758de8f1782 100644 --- a/src/mame/video/skykid.c +++ b/src/mame/video/skykid.c @@ -57,7 +57,7 @@ PALETTE_INIT( skykid ) ***************************************************************************/ /* convert from 32x32 to 36x28 */ -static TILEMAP_MAPPER( tx_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(skykid_state::tx_tilemap_scan) { int offs; @@ -71,32 +71,30 @@ static TILEMAP_MAPPER( tx_tilemap_scan ) return offs; } -static TILE_GET_INFO( tx_get_tile_info ) +TILE_GET_INFO_MEMBER(skykid_state::tx_get_tile_info) { - skykid_state *state = machine.driver_data<skykid_state>(); - int code = state->m_textram[tile_index]; - int attr = state->m_textram[tile_index + 0x400]; + int code = m_textram[tile_index]; + int attr = m_textram[tile_index + 0x400]; tileinfo.category = code >> 4 & 0xf; /* the hardware has two character sets, one normal and one flipped. When screen is flipped, character flip is done by selecting the 2nd character set. We reproduce this here, but since the tilemap system automatically flips characters when screen is flipped, we have to flip them back. */ - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - code | (state->flip_screen() ? 0x100 : 0), + code | (flip_screen() ? 0x100 : 0), attr & 0x3f, - state->flip_screen() ? (TILE_FLIPY | TILE_FLIPX) : 0); + flip_screen() ? (TILE_FLIPY | TILE_FLIPX) : 0); } -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(skykid_state::bg_get_tile_info) { - skykid_state *state = machine.driver_data<skykid_state>(); - int code = state->m_videoram[tile_index]; - int attr = state->m_videoram[tile_index+0x800]; + int code = m_videoram[tile_index]; + int attr = m_videoram[tile_index+0x800]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code + ((attr & 0x01) << 8), ((attr & 0x7e) >> 1) | ((attr & 0x01) << 6), @@ -114,8 +112,8 @@ static TILE_GET_INFO( bg_get_tile_info ) VIDEO_START( skykid ) { skykid_state *state = machine.driver_data<skykid_state>(); - state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,tx_tilemap_scan, 8,8,36,28); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skykid_state::tx_get_tile_info),state),tilemap_mapper_delegate(FUNC(skykid_state::tx_tilemap_scan),state), 8,8,36,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skykid_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); state->m_tx_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/slapfght.c b/src/mame/video/slapfght.c index 62ed22a9c6c..520a8655bdf 100644 --- a/src/mame/video/slapfght.c +++ b/src/mame/video/slapfght.c @@ -16,44 +16,41 @@ ***************************************************************************/ -static TILE_GET_INFO( get_pf_tile_info ) /* For Performan only */ +TILE_GET_INFO_MEMBER(slapfght_state::get_pf_tile_info)/* For Performan only */ { - slapfght_state *state = machine.driver_data<slapfght_state>(); int tile,color; - tile=state->m_slapfight_videoram[tile_index] + ((state->m_slapfight_colorram[tile_index] & 0x03) << 8); - color=(state->m_slapfight_colorram[tile_index] >> 3) & 0x0f; - SET_TILE_INFO( + tile=m_slapfight_videoram[tile_index] + ((m_slapfight_colorram[tile_index] & 0x03) << 8); + color=(m_slapfight_colorram[tile_index] >> 3) & 0x0f; + SET_TILE_INFO_MEMBER( 0, tile, color, 0); } -static TILE_GET_INFO( get_pf1_tile_info ) +TILE_GET_INFO_MEMBER(slapfght_state::get_pf1_tile_info) { - slapfght_state *state = machine.driver_data<slapfght_state>(); int tile,color; - tile=state->m_slapfight_videoram[tile_index] + ((state->m_slapfight_colorram[tile_index] & 0x0f) << 8); - color=(state->m_slapfight_colorram[tile_index] & 0xf0) >> 4; + tile=m_slapfight_videoram[tile_index] + ((m_slapfight_colorram[tile_index] & 0x0f) << 8); + color=(m_slapfight_colorram[tile_index] & 0xf0) >> 4; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, color, 0); } -static TILE_GET_INFO( get_fix_tile_info ) +TILE_GET_INFO_MEMBER(slapfght_state::get_fix_tile_info) { - slapfght_state *state = machine.driver_data<slapfght_state>(); int tile,color; - tile=state->m_slapfight_fixvideoram[tile_index] + ((state->m_slapfight_fixcolorram[tile_index] & 0x03) << 8); - color=(state->m_slapfight_fixcolorram[tile_index] & 0xfc) >> 2; + tile=m_slapfight_fixvideoram[tile_index] + ((m_slapfight_fixcolorram[tile_index] & 0x03) << 8); + color=(m_slapfight_fixcolorram[tile_index] & 0xfc) >> 2; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -70,7 +67,7 @@ static TILE_GET_INFO( get_fix_tile_info ) VIDEO_START( perfrman ) { slapfght_state *state = machine.driver_data<slapfght_state>(); - state->m_pf1_tilemap = tilemap_create(machine, get_pf_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(slapfght_state::get_pf_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_pf1_tilemap->set_transparent_pen(0); } @@ -78,8 +75,8 @@ VIDEO_START( perfrman ) VIDEO_START( slapfight ) { slapfght_state *state = machine.driver_data<slapfght_state>(); - state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); - state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(slapfght_state::get_pf1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); + state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(slapfght_state::get_fix_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_fix_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/snk.c b/src/mame/video/snk.c index 1fee02a42a2..8a86172f8aa 100644 --- a/src/mame/video/snk.c +++ b/src/mame/video/snk.c @@ -59,7 +59,7 @@ PALETTE_INIT( tnk3 ) /**************************************************************************************/ -static TILEMAP_MAPPER( marvins_tx_scan_cols ) +TILEMAP_MAPPER_MEMBER(snk_state::marvins_tx_scan_cols) { // tilemap is 36x28, the central part is from the first RAM page and the // extra 4 columns are from the second page @@ -70,121 +70,112 @@ static TILEMAP_MAPPER( marvins_tx_scan_cols ) return row + (col << 5); } -static TILE_GET_INFO( marvins_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::marvins_get_tx_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int code = state->m_tx_videoram[tile_index]; + int code = m_tx_videoram[tile_index]; int color = code >> 5; - SET_TILE_INFO(0, - state->m_tx_tile_offset + code, + SET_TILE_INFO_MEMBER(0, + m_tx_tile_offset + code, color, tile_index & 0x400 ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( ikari_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::ikari_get_tx_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int code = state->m_tx_videoram[tile_index]; + int code = m_tx_videoram[tile_index]; - SET_TILE_INFO(0, - state->m_tx_tile_offset + code, + SET_TILE_INFO_MEMBER(0, + m_tx_tile_offset + code, 0, tile_index & 0x400 ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( gwar_get_tx_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::gwar_get_tx_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int code = state->m_tx_videoram[tile_index]; + int code = m_tx_videoram[tile_index]; - SET_TILE_INFO(0, - state->m_tx_tile_offset + code, + SET_TILE_INFO_MEMBER(0, + m_tx_tile_offset + code, 0, 0); } -static TILE_GET_INFO( marvins_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::marvins_get_fg_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int code = state->m_fg_videoram[tile_index]; + int code = m_fg_videoram[tile_index]; - SET_TILE_INFO(1, + SET_TILE_INFO_MEMBER(1, code, 0, 0); } -static TILE_GET_INFO( marvins_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::marvins_get_bg_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int code = state->m_bg_videoram[tile_index]; + int code = m_bg_videoram[tile_index]; - SET_TILE_INFO(2, + SET_TILE_INFO_MEMBER(2, code, 0, 0); } -static TILE_GET_INFO( aso_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::aso_get_bg_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int code = state->m_bg_videoram[tile_index]; + int code = m_bg_videoram[tile_index]; - SET_TILE_INFO(1, - state->m_bg_tile_offset + code, + SET_TILE_INFO_MEMBER(1, + m_bg_tile_offset + code, 0, 0); } -static TILE_GET_INFO( tnk3_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::tnk3_get_bg_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int attr = state->m_bg_videoram[2*tile_index+1]; - int code = state->m_bg_videoram[2*tile_index] | ((attr & 0x30) << 4); + int attr = m_bg_videoram[2*tile_index+1]; + int code = m_bg_videoram[2*tile_index] | ((attr & 0x30) << 4); int color = (attr & 0xf) ^ 8; - SET_TILE_INFO(1, + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( ikari_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::ikari_get_bg_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int attr = state->m_bg_videoram[2*tile_index+1]; - int code = state->m_bg_videoram[2*tile_index] | ((attr & 0x03) << 8); + int attr = m_bg_videoram[2*tile_index+1]; + int code = m_bg_videoram[2*tile_index] | ((attr & 0x03) << 8); int color = (attr & 0x70) >> 4; - SET_TILE_INFO(1, + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( gwar_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snk_state::gwar_get_bg_tile_info) { - snk_state *state = machine.driver_data<snk_state>(); - int attr = state->m_bg_videoram[2*tile_index+1]; - int code = state->m_bg_videoram[2*tile_index] | ((attr & 0x0f) << 8); + int attr = m_bg_videoram[2*tile_index+1]; + int code = m_bg_videoram[2*tile_index] | ((attr & 0x0f) << 8); int color = (attr & 0xf0) >> 4; - if (state->m_is_psychos) // psychos has a separate palette bank bit + if (m_is_psychos) // psychos has a separate palette bank bit color &= 7; - SET_TILE_INFO(1, + SET_TILE_INFO_MEMBER(1, code, color, 0); // bermudat, tdfever use FFFF to blank the background. - // (still call SET_TILE_INFO, otherwise problems might occur on boot when + // (still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot when // the tile data hasn't been initialised) - if (code >= machine.gfx[1]->elements()) - tileinfo.pen_data = state->m_empty_tile; + if (code >= machine().gfx[1]->elements()) + tileinfo.pen_data = m_empty_tile; } @@ -235,9 +226,9 @@ VIDEO_START( marvins ) VIDEO_START_CALL(snk_3bpp_shadow); - state->m_tx_tilemap = tilemap_create(machine, marvins_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); - state->m_fg_tilemap = tilemap_create(machine, marvins_get_fg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); - state->m_bg_tilemap = tilemap_create(machine, marvins_get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_fg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); state->m_tx_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_scrolldy(8, 8); @@ -258,8 +249,8 @@ VIDEO_START( jcross ) VIDEO_START_CALL(snk_3bpp_shadow); - state->m_tx_tilemap = tilemap_create(machine, marvins_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); - state->m_bg_tilemap = tilemap_create(machine, aso_get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::aso_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 64); state->m_tx_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_scrolldy(8, 8); @@ -279,8 +270,8 @@ VIDEO_START( sgladiat ) VIDEO_START_CALL(snk_3bpp_shadow); - state->m_tx_tilemap = tilemap_create(machine, marvins_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); - state->m_bg_tilemap = tilemap_create(machine, aso_get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::aso_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); state->m_tx_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_scrolldy(8, 8); @@ -325,8 +316,8 @@ VIDEO_START( tnk3 ) VIDEO_START_CALL(snk_3bpp_shadow); - state->m_tx_tilemap = tilemap_create(machine, marvins_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); - state->m_bg_tilemap = tilemap_create(machine, tnk3_get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::tnk3_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 64); state->m_tx_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_scrolldy(8, 8); @@ -345,8 +336,8 @@ VIDEO_START( ikari ) VIDEO_START_CALL(snk_3bpp_shadow); - state->m_tx_tilemap = tilemap_create(machine, ikari_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); - state->m_bg_tilemap = tilemap_create(machine, ikari_get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::ikari_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::ikari_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_tx_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_scrolldy(8, 8); @@ -368,8 +359,8 @@ VIDEO_START( gwar ) memset(state->m_empty_tile, 0xf, sizeof(state->m_empty_tile)); - state->m_tx_tilemap = tilemap_create(machine, gwar_get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 50, 32); - state->m_bg_tilemap = tilemap_create(machine, gwar_get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::gwar_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 50, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::gwar_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_tx_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/snk6502.c b/src/mame/video/snk6502.c index e3848c4eb24..275c0a76626 100644 --- a/src/mame/video/snk6502.c +++ b/src/mame/video/snk6502.c @@ -156,30 +156,28 @@ WRITE8_MEMBER(snk6502_state::snk6502_scrolly_w) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snk6502_state::get_bg_tile_info) { - snk6502_state *state = machine.driver_data<snk6502_state>(); - int code = state->m_videoram[tile_index] + 256 * state->m_charbank; - int color = (state->m_colorram[tile_index] & 0x38) >> 3; + int code = m_videoram[tile_index] + 256 * m_charbank; + int color = (m_colorram[tile_index] & 0x38) >> 3; - 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(snk6502_state::get_fg_tile_info) { - snk6502_state *state = machine.driver_data<snk6502_state>(); - int code = state->m_videoram2[tile_index]; - int color = state->m_colorram[tile_index] & 0x07; + int code = m_videoram2[tile_index]; + int color = m_colorram[tile_index] & 0x07; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( snk6502 ) { snk6502_state *state = machine.driver_data<snk6502_state>(); - 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(snk6502_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(snk6502_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); @@ -293,30 +291,28 @@ WRITE8_MEMBER(snk6502_state::satansat_backcolor_w) } } -static TILE_GET_INFO( satansat_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snk6502_state::satansat_get_bg_tile_info) { - snk6502_state *state = machine.driver_data<snk6502_state>(); - int code = state->m_videoram[tile_index]; - int color = (state->m_colorram[tile_index] & 0x0c) >> 2; + int code = m_videoram[tile_index]; + int color = (m_colorram[tile_index] & 0x0c) >> 2; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( satansat_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(snk6502_state::satansat_get_fg_tile_info) { - snk6502_state *state = machine.driver_data<snk6502_state>(); - int code = state->m_videoram2[tile_index]; - int color = state->m_colorram[tile_index] & 0x03; + int code = m_videoram2[tile_index]; + int color = m_colorram[tile_index] & 0x03; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( satansat ) { snk6502_state *state = machine.driver_data<snk6502_state>(); - state->m_bg_tilemap = tilemap_create(machine, satansat_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, satansat_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk6502_state::satansat_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk6502_state::satansat_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/video/snk68.c b/src/mame/video/snk68.c index 6e724b20b8a..c0f9dc31d02 100644 --- a/src/mame/video/snk68.c +++ b/src/mame/video/snk68.c @@ -22,26 +22,24 @@ Notes: ***************************************************************************/ -static TILE_GET_INFO( get_pow_tile_info ) +TILE_GET_INFO_MEMBER(snk68_state::get_pow_tile_info) { - snk68_state *state = machine.driver_data<snk68_state>(); - int tile = state->m_fg_tile_offset + (state->m_pow_fg_videoram[2*tile_index] & 0xff); - int color = state->m_pow_fg_videoram[2*tile_index+1] & 0x07; + int tile = m_fg_tile_offset + (m_pow_fg_videoram[2*tile_index] & 0xff); + int color = m_pow_fg_videoram[2*tile_index+1] & 0x07; - SET_TILE_INFO(0, tile, color, 0); + SET_TILE_INFO_MEMBER(0, tile, color, 0); } -static TILE_GET_INFO( get_searchar_tile_info ) +TILE_GET_INFO_MEMBER(snk68_state::get_searchar_tile_info) { - snk68_state *state = machine.driver_data<snk68_state>(); - int data = state->m_pow_fg_videoram[2*tile_index]; + int data = m_pow_fg_videoram[2*tile_index]; int tile = data & 0x7ff; int color = (data & 0x7000) >> 12; // used in the ikari3 intro int flags = (data & 0x8000) ? TILE_FORCE_LAYER0 : 0; - SET_TILE_INFO(0, tile, color, flags); + SET_TILE_INFO_MEMBER(0, tile, color, flags); } /*************************************************************************** @@ -64,7 +62,7 @@ VIDEO_START( pow ) { snk68_state *state = machine.driver_data<snk68_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_pow_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk68_state::get_pow_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_fg_tile_offset = 0; common_video_start(machine); @@ -74,7 +72,7 @@ VIDEO_START( searchar ) { snk68_state *state = machine.driver_data<snk68_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_searchar_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk68_state::get_searchar_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); common_video_start(machine); } diff --git a/src/mame/video/snookr10.c b/src/mame/video/snookr10.c index 01f3916bb42..4998d4578c9 100644 --- a/src/mame/video/snookr10.c +++ b/src/mame/video/snookr10.c @@ -94,20 +94,19 @@ PALETTE_INIT( snookr10 ) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snookr10_state::get_bg_tile_info) { - snookr10_state *state = machine.driver_data<snookr10_state>(); /* - bits - 7654 3210 xxxx ---- tiles color. ---- xxxx seems unused. */ int offs = tile_index; - int attr = state->m_videoram[offs] + (state->m_colorram[offs] << 8); + int attr = m_videoram[offs] + (m_colorram[offs] << 8); int code = attr & 0xfff; - int color = state->m_colorram[offs] >> 4; + int color = m_colorram[offs] >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -158,33 +157,32 @@ PALETTE_INIT( apple10 ) } } -static TILE_GET_INFO( apple10_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(snookr10_state::apple10_get_bg_tile_info) { - snookr10_state *state = machine.driver_data<snookr10_state>(); /* - bits - 7654 3210 xxxx ---- tiles color. ---- xxxx seems unused. */ int offs = tile_index; - int attr = state->m_videoram[offs] + (state->m_colorram[offs] << 8); + int attr = m_videoram[offs] + (m_colorram[offs] << 8); int code = BITSWAP16((attr & 0xfff),15,14,13,12,8,9,10,11,0,1,2,3,4,5,6,7); /* encrypted tile matrix */ - int color = state->m_colorram[offs] >> 4; + int color = m_colorram[offs] >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( snookr10 ) { snookr10_state *state = machine.driver_data<snookr10_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 4, 8, 128, 30); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snookr10_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 128, 30); } VIDEO_START( apple10 ) { snookr10_state *state = machine.driver_data<snookr10_state>(); - state->m_bg_tilemap = tilemap_create(machine, apple10_get_bg_tile_info, TILEMAP_SCAN_ROWS, 4, 8, 128, 30); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snookr10_state::apple10_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 128, 30); } SCREEN_UPDATE_IND16( snookr10 ) diff --git a/src/mame/video/solomon.c b/src/mame/video/solomon.c index 14fd58a544d..a94c11e9e19 100644 --- a/src/mame/video/solomon.c +++ b/src/mame/video/solomon.c @@ -38,35 +38,33 @@ WRITE8_MEMBER(solomon_state::solomon_flipscreen_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(solomon_state::get_bg_tile_info) { - solomon_state *state = machine.driver_data<solomon_state>(); - int attr = state->m_colorram2[tile_index]; - int code = state->m_videoram2[tile_index] + 256 * (attr & 0x07); + int attr = m_colorram2[tile_index]; + int code = m_videoram2[tile_index] + 256 * (attr & 0x07); int color = ((attr & 0x70) >> 4); int flags = ((attr & 0x80) ? TILE_FLIPX : 0) | ((attr & 0x08) ? TILE_FLIPY : 0); - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(solomon_state::get_fg_tile_info) { - solomon_state *state = machine.driver_data<solomon_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + 256 * (attr & 0x07); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + 256 * (attr & 0x07); int color = (attr & 0x70) >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( solomon ) { solomon_state *state = machine.driver_data<solomon_state>(); - 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(solomon_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(solomon_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/video/sonson.c b/src/mame/video/sonson.c index eaca06a4223..52236426d7e 100644 --- a/src/mame/video/sonson.c +++ b/src/mame/video/sonson.c @@ -120,21 +120,20 @@ WRITE8_MEMBER(sonson_state::sonson_flipscreen_w) flip_screen_set(~data & 0x01); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(sonson_state::get_bg_tile_info) { - sonson_state *state = machine.driver_data<sonson_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + 256 * (attr & 0x03); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + 256 * (attr & 0x03); int color = attr >> 2; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( sonson ) { sonson_state *state = machine.driver_data<sonson_state>(); - 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(sonson_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(32); } diff --git a/src/mame/video/spdodgeb.c b/src/mame/video/spdodgeb.c index 14e583c4772..38591f85436 100644 --- a/src/mame/video/spdodgeb.c +++ b/src/mame/video/spdodgeb.c @@ -45,21 +45,20 @@ PALETTE_INIT( spdodgeb ) ***************************************************************************/ -static TILEMAP_MAPPER( background_scan ) +TILEMAP_MAPPER_MEMBER(spdodgeb_state::background_scan) { /* logical (col,row) -> memory offset */ return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(spdodgeb_state::get_bg_tile_info) { - spdodgeb_state *state = machine.driver_data<spdodgeb_state>(); - UINT8 code = state->m_videoram[tile_index]; - UINT8 attr = state->m_videoram[tile_index + 0x800]; - SET_TILE_INFO( + UINT8 code = m_videoram[tile_index]; + UINT8 attr = m_videoram[tile_index + 0x800]; + SET_TILE_INFO_MEMBER( 0, code + ((attr & 0x1f) << 8), - ((attr & 0xe0) >> 5) + 8 * state->m_tile_palbank, + ((attr & 0xe0) >> 5) + 8 * m_tile_palbank, 0); } @@ -73,7 +72,7 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( spdodgeb ) { spdodgeb_state *state = machine.driver_data<spdodgeb_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,background_scan,8,8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spdodgeb_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(spdodgeb_state::background_scan),state),8,8,64,32); } diff --git a/src/mame/video/speedbal.c b/src/mame/video/speedbal.c index 96e229fd650..9ff44e0306b 100644 --- a/src/mame/video/speedbal.c +++ b/src/mame/video/speedbal.c @@ -10,23 +10,21 @@ #include "includes/speedbal.h" -static TILE_GET_INFO( get_tile_info_bg ) +TILE_GET_INFO_MEMBER(speedbal_state::get_tile_info_bg) { - speedbal_state *state = machine.driver_data<speedbal_state>(); - int code = state->m_background_videoram[tile_index*2] + ((state->m_background_videoram[tile_index*2+1] & 0x30) << 4); - int color = state->m_background_videoram[tile_index*2+1] & 0x0f; + int code = m_background_videoram[tile_index*2] + ((m_background_videoram[tile_index*2+1] & 0x30) << 4); + int color = m_background_videoram[tile_index*2+1] & 0x0f; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); tileinfo.group = (color == 8); } -static TILE_GET_INFO( get_tile_info_fg ) +TILE_GET_INFO_MEMBER(speedbal_state::get_tile_info_fg) { - speedbal_state *state = machine.driver_data<speedbal_state>(); - int code = state->m_foreground_videoram[tile_index*2] + ((state->m_foreground_videoram[tile_index*2+1] & 0x30) << 4); - int color = state->m_foreground_videoram[tile_index*2+1] & 0x0f; + int code = m_foreground_videoram[tile_index*2] + ((m_foreground_videoram[tile_index*2+1] & 0x30) << 4); + int color = m_foreground_videoram[tile_index*2+1] & 0x0f; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); tileinfo.group = (color == 9); } @@ -39,8 +37,8 @@ static TILE_GET_INFO( get_tile_info_fg ) VIDEO_START( speedbal ) { speedbal_state *state = machine.driver_data<speedbal_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info_bg, TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 16); - state->m_fg_tilemap = tilemap_create(machine, get_tile_info_fg, TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(speedbal_state::get_tile_info_bg),state), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(speedbal_state::get_tile_info_fg),state), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); state->m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1,0x00f7,0x0000); /* split type 1 has pen 0-2, 4-7 transparent in front half */ diff --git a/src/mame/video/speedspn.c b/src/mame/video/speedspn.c index ba5463abb56..3bb6d2dbd19 100644 --- a/src/mame/video/speedspn.c +++ b/src/mame/video/speedspn.c @@ -4,20 +4,19 @@ #include "includes/speedspn.h" -static TILE_GET_INFO( get_speedspn_tile_info ) +TILE_GET_INFO_MEMBER(speedspn_state::get_speedspn_tile_info) { - speedspn_state *state = machine.driver_data<speedspn_state>(); - int code = state->m_vidram[tile_index*2+1] | (state->m_vidram[tile_index*2] << 8); - int attr = state->m_attram[tile_index^0x400]; + int code = m_vidram[tile_index*2+1] | (m_vidram[tile_index*2] << 8); + int attr = m_attram[tile_index^0x400]; - SET_TILE_INFO(0,code,attr & 0x3f,(attr & 0x80) ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(0,code,attr & 0x3f,(attr & 0x80) ? TILE_FLIPX : 0); } VIDEO_START(speedspn) { speedspn_state *state = machine.driver_data<speedspn_state>(); state->m_vidram = auto_alloc_array(machine, UINT8, 0x1000 * 2); - state->m_tilemap = tilemap_create(machine, get_speedspn_tile_info,TILEMAP_SCAN_COLS, 8, 8,64,32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(speedspn_state::get_speedspn_tile_info),state),TILEMAP_SCAN_COLS, 8, 8,64,32); } WRITE8_MEMBER(speedspn_state::speedspn_vidram_w) diff --git a/src/mame/video/splash.c b/src/mame/video/splash.c index f50105c4b20..b50bd789e4a 100644 --- a/src/mame/video/splash.c +++ b/src/mame/video/splash.c @@ -38,28 +38,26 @@ 0 | xxxx---- -------- | color */ -static TILE_GET_INFO( get_tile_info_splash_tilemap0 ) +TILE_GET_INFO_MEMBER(splash_state::get_tile_info_splash_tilemap0) { - splash_state *state = machine.driver_data<splash_state>(); - int data = state->m_videoram[tile_index]; + int data = m_videoram[tile_index]; int attr = data >> 8; int code = data & 0xff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code + ((0x20 + (attr & 0x0f)) << 8), (attr & 0xf0) >> 4, 0); } -static TILE_GET_INFO( get_tile_info_splash_tilemap1 ) +TILE_GET_INFO_MEMBER(splash_state::get_tile_info_splash_tilemap1) { - splash_state *state = machine.driver_data<splash_state>(); - int data = state->m_videoram[(0x1000/2) + tile_index]; + int data = m_videoram[(0x1000/2) + tile_index]; int attr = data >> 8; int code = data & 0xff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, (code >> 2) + ((0x30 + (attr & 0x0f)) << 6), (attr & 0xf0) >> 4, @@ -171,8 +169,8 @@ VIDEO_START( splash ) { splash_state *state = machine.driver_data<splash_state>(); - state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info_splash_tilemap0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info_splash_tilemap1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(splash_state::get_tile_info_splash_tilemap0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(splash_state::get_tile_info_splash_tilemap1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_bg_tilemap[0]->set_transparent_pen(0); state->m_bg_tilemap[1]->set_transparent_pen(0); diff --git a/src/mame/video/sprcros2.c b/src/mame/video/sprcros2.c index 085d88ed57c..e9241eb3f98 100644 --- a/src/mame/video/sprcros2.c +++ b/src/mame/video/sprcros2.c @@ -89,11 +89,10 @@ WRITE8_MEMBER(sprcros2_state::sprcros2_bgscrolly_w) m_bgtilemap->set_scrolly(0, data); } -static TILE_GET_INFO( get_sprcros2_bgtile_info ) +TILE_GET_INFO_MEMBER(sprcros2_state::get_sprcros2_bgtile_info) { - sprcros2_state *state = machine.driver_data<sprcros2_state>(); - UINT32 tile_number = state->m_bgvideoram[tile_index]; - UINT8 attr = state->m_bgvideoram[tile_index + 0x400]; + UINT32 tile_number = m_bgvideoram[tile_index]; + UINT8 attr = m_bgvideoram[tile_index + 0x400]; //attr //76543210 @@ -103,18 +102,17 @@ static TILE_GET_INFO( get_sprcros2_bgtile_info ) tile_number += (attr&0x07)<<8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (attr&0xf0)>>4, (attr&0x08)?TILE_FLIPX:0); } -static TILE_GET_INFO( get_sprcros2_fgtile_info ) +TILE_GET_INFO_MEMBER(sprcros2_state::get_sprcros2_fgtile_info) { - sprcros2_state *state = machine.driver_data<sprcros2_state>(); - UINT32 tile_number = state->m_fgvideoram[tile_index]; - UINT8 attr = state->m_fgvideoram[tile_index + 0x400]; + UINT32 tile_number = m_fgvideoram[tile_index]; + UINT8 attr = m_fgvideoram[tile_index + 0x400]; int color = (attr&0xfc)>>2; tileinfo.group = color; @@ -126,7 +124,7 @@ static TILE_GET_INFO( get_sprcros2_fgtile_info ) tile_number += (attr&0x03)<<8; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile_number, color, @@ -137,8 +135,8 @@ VIDEO_START( sprcros2 ) { sprcros2_state *state = machine.driver_data<sprcros2_state>(); - state->m_bgtilemap = tilemap_create(machine, get_sprcros2_bgtile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_fgtilemap = tilemap_create(machine, get_sprcros2_fgtile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprcros2_state::get_sprcros2_bgtile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_fgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprcros2_state::get_sprcros2_fgtile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); colortable_configure_tilemap_groups(machine.colortable, state->m_fgtilemap, machine.gfx[2], 0); } diff --git a/src/mame/video/sprint2.c b/src/mame/video/sprint2.c index 20e8a8d2f49..39e45cd6ad9 100644 --- a/src/mame/video/sprint2.c +++ b/src/mame/video/sprint2.c @@ -34,12 +34,11 @@ PALETTE_INIT( sprint2 ) } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(sprint2_state::get_tile_info) { - sprint2_state *state = machine.driver_data<sprint2_state>(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; - SET_TILE_INFO(0, code & 0x3f, code >> 7, 0); + SET_TILE_INFO_MEMBER(0, code & 0x3f, code >> 7, 0); } @@ -48,7 +47,7 @@ VIDEO_START( sprint2 ) sprint2_state *state = machine.driver_data<sprint2_state>(); machine.primary_screen->register_screen_bitmap(state->m_helper); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprint2_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); } diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c index 4ffa4e7637c..13a9c224899 100644 --- a/src/mame/video/sprint4.c +++ b/src/mame/video/sprint4.c @@ -35,16 +35,15 @@ PALETTE_INIT( sprint4 ) } -static TILE_GET_INFO( sprint4_tile_info ) +TILE_GET_INFO_MEMBER(sprint4_state::sprint4_tile_info) { - sprint4_state *state = machine.driver_data<sprint4_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; UINT8 code = videoram[tile_index]; if ((code & 0x30) == 0x30) - SET_TILE_INFO(0, code & ~0x40, (code >> 6) ^ 3, 0); + SET_TILE_INFO_MEMBER(0, code & ~0x40, (code >> 6) ^ 3, 0); else - SET_TILE_INFO(0, code, 4, 0); + SET_TILE_INFO_MEMBER(0, code, 4, 0); } @@ -53,7 +52,7 @@ VIDEO_START( sprint4 ) sprint4_state *state = machine.driver_data<sprint4_state>(); machine.primary_screen->register_screen_bitmap(state->m_helper); - state->m_playfield = tilemap_create(machine, sprint4_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_playfield = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprint4_state::sprint4_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/sprint8.c b/src/mame/video/sprint8.c index f30dda74734..c1a66503095 100644 --- a/src/mame/video/sprint8.c +++ b/src/mame/video/sprint8.c @@ -63,10 +63,9 @@ static void set_pens(sprint8_state *state, colortable_t *colortable) } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(sprint8_state::get_tile_info1) { - sprint8_state *state = machine.driver_data<sprint8_state>(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; int color = 0; @@ -85,14 +84,13 @@ static TILE_GET_INFO( get_tile_info1 ) } - SET_TILE_INFO(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); + SET_TILE_INFO_MEMBER(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(sprint8_state::get_tile_info2) { - sprint8_state *state = machine.driver_data<sprint8_state>(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; int color = 0; @@ -101,7 +99,7 @@ static TILE_GET_INFO( get_tile_info2 ) else color = 17; - SET_TILE_INFO(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); + SET_TILE_INFO_MEMBER(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); } @@ -119,8 +117,8 @@ VIDEO_START( sprint8 ) machine.primary_screen->register_screen_bitmap(state->m_helper1); machine.primary_screen->register_screen_bitmap(state->m_helper2); - state->m_tilemap1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); - state->m_tilemap2 = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); state->m_tilemap1->set_scrolly(0, +24); state->m_tilemap2->set_scrolly(0, +24); diff --git a/src/mame/video/srumbler.c b/src/mame/video/srumbler.c index 7f6b01758d4..9c49e0996f8 100644 --- a/src/mame/video/srumbler.c +++ b/src/mame/video/srumbler.c @@ -16,24 +16,22 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(srumbler_state::get_fg_tile_info) { - srumbler_state *state = machine.driver_data<srumbler_state>(); - UINT8 attr = state->m_foregroundram[2*tile_index]; - SET_TILE_INFO( + UINT8 attr = m_foregroundram[2*tile_index]; + SET_TILE_INFO_MEMBER( 0, - state->m_foregroundram[2*tile_index + 1] + ((attr & 0x03) << 8), + m_foregroundram[2*tile_index + 1] + ((attr & 0x03) << 8), (attr & 0x3c) >> 2, (attr & 0x40) ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(srumbler_state::get_bg_tile_info) { - srumbler_state *state = machine.driver_data<srumbler_state>(); - UINT8 attr = state->m_backgroundram[2*tile_index]; - SET_TILE_INFO( + UINT8 attr = m_backgroundram[2*tile_index]; + SET_TILE_INFO_MEMBER( 1, - state->m_backgroundram[2*tile_index + 1] + ((attr & 0x07) << 8), + m_backgroundram[2*tile_index + 1] + ((attr & 0x07) << 8), (attr & 0xe0) >> 5, ((attr & 0x08) ? TILE_FLIPY : 0)); tileinfo.group = (attr & 0x10) >> 4; @@ -50,8 +48,8 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( srumbler ) { srumbler_state *state = machine.driver_data<srumbler_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS, 16,16,64,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(srumbler_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(srumbler_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS, 16,16,64,64); state->m_fg_tilemap->set_transparent_pen(3); diff --git a/src/mame/video/sslam.c b/src/mame/video/sslam.c index 4ee521326ed..0bfbfa40e68 100644 --- a/src/mame/video/sslam.c +++ b/src/mame/video/sslam.c @@ -91,13 +91,12 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r /* Text Layer */ -static TILE_GET_INFO( get_sslam_tx_tile_info ) +TILE_GET_INFO_MEMBER(sslam_state::get_sslam_tx_tile_info) { - sslam_state *state = machine.driver_data<sslam_state>(); - int code = state->m_tx_tileram[tile_index] & 0x0fff; - int colr = state->m_tx_tileram[tile_index] & 0xf000; + int code = m_tx_tileram[tile_index] & 0x0fff; + int colr = m_tx_tileram[tile_index] & 0xf000; - SET_TILE_INFO(3,code+0xc000 ,colr >> 12,0); + SET_TILE_INFO_MEMBER(3,code+0xc000 ,colr >> 12,0); } WRITE16_MEMBER(sslam_state::sslam_tx_tileram_w) @@ -109,13 +108,12 @@ WRITE16_MEMBER(sslam_state::sslam_tx_tileram_w) /* Middle Layer */ -static TILE_GET_INFO( get_sslam_md_tile_info ) +TILE_GET_INFO_MEMBER(sslam_state::get_sslam_md_tile_info) { - sslam_state *state = machine.driver_data<sslam_state>(); - int code = state->m_md_tileram[tile_index] & 0x0fff; - int colr = state->m_md_tileram[tile_index] & 0xf000; + int code = m_md_tileram[tile_index] & 0x0fff; + int colr = m_md_tileram[tile_index] & 0xf000; - SET_TILE_INFO(2,code+0x2000 ,colr >> 12,0); + SET_TILE_INFO_MEMBER(2,code+0x2000 ,colr >> 12,0); } WRITE16_MEMBER(sslam_state::sslam_md_tileram_w) @@ -127,13 +125,12 @@ WRITE16_MEMBER(sslam_state::sslam_md_tileram_w) /* Background Layer */ -static TILE_GET_INFO( get_sslam_bg_tile_info ) +TILE_GET_INFO_MEMBER(sslam_state::get_sslam_bg_tile_info) { - sslam_state *state = machine.driver_data<sslam_state>(); - int code = state->m_bg_tileram[tile_index] & 0x1fff; - int colr = state->m_bg_tileram[tile_index] & 0xe000; + int code = m_bg_tileram[tile_index] & 0x1fff; + int colr = m_bg_tileram[tile_index] & 0xe000; - SET_TILE_INFO(1,code ,colr >> 13,0); + SET_TILE_INFO_MEMBER(1,code ,colr >> 13,0); } WRITE16_MEMBER(sslam_state::sslam_bg_tileram_w) @@ -143,16 +140,15 @@ WRITE16_MEMBER(sslam_state::sslam_bg_tileram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_powerbls_bg_tile_info ) +TILE_GET_INFO_MEMBER(sslam_state::get_powerbls_bg_tile_info) { - sslam_state *state = machine.driver_data<sslam_state>(); - int code = state->m_bg_tileram[tile_index*2+1] & 0x0fff; - int colr = (state->m_bg_tileram[tile_index*2+1] & 0xf000) >> 12; - code |= (state->m_bg_tileram[tile_index*2] & 0x0f00) << 4; + int code = m_bg_tileram[tile_index*2+1] & 0x0fff; + int colr = (m_bg_tileram[tile_index*2+1] & 0xf000) >> 12; + code |= (m_bg_tileram[tile_index*2] & 0x0f00) << 4; - //(state->m_bg_tileram[tile_index*2] & 0x0f00) == 0xf000 ??? + //(m_bg_tileram[tile_index*2] & 0x0f00) == 0xf000 ??? - SET_TILE_INFO(1,code,colr,0); + SET_TILE_INFO_MEMBER(1,code,colr,0); } WRITE16_MEMBER(sslam_state::powerbls_bg_tileram_w) @@ -166,9 +162,9 @@ VIDEO_START(sslam) { sslam_state *state = machine.driver_data<sslam_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_sslam_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_md_tilemap = tilemap_create(machine, get_sslam_md_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - state->m_tx_tilemap = tilemap_create(machine, get_sslam_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_md_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_md_tilemap->set_transparent_pen(0); state->m_tx_tilemap->set_transparent_pen(0); @@ -181,7 +177,7 @@ VIDEO_START(powerbls) { sslam_state *state = machine.driver_data<sslam_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_powerbls_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sslam_state::get_powerbls_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); state->m_sprites_x_offset = -21; state->save_item(NAME(state->m_sprites_x_offset)); diff --git a/src/mame/video/ssozumo.c b/src/mame/video/ssozumo.c index ea1d46900be..ec8d01ed8e3 100644 --- a/src/mame/video/ssozumo.c +++ b/src/mame/video/ssozumo.c @@ -113,33 +113,31 @@ WRITE8_MEMBER(ssozumo_state::ssozumo_flipscreen_w) flip_screen_set(data & 0x80); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(ssozumo_state::get_bg_tile_info) { - ssozumo_state *state = machine.driver_data<ssozumo_state>(); - int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x08) << 5); - int color = (state->m_colorram[tile_index] & 0x30) >> 4; + int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x08) << 5); + int color = (m_colorram[tile_index] & 0x30) >> 4; int flags = ((tile_index % 32) >= 16) ? TILE_FLIPY : 0; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(ssozumo_state::get_fg_tile_info) { - ssozumo_state *state = machine.driver_data<ssozumo_state>(); - int code = state->m_videoram2[tile_index] + 256 * (state->m_colorram2[tile_index] & 0x07); - int color = (state->m_colorram2[tile_index] & 0x30) >> 4; + int code = m_videoram2[tile_index] + 256 * (m_colorram2[tile_index] & 0x07); + int color = (m_colorram2[tile_index] & 0x30) >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( ssozumo ) { ssozumo_state *state = machine.driver_data<ssozumo_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS_FLIP_X, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssozumo_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS_FLIP_X, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssozumo_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/ssrj.c b/src/mame/video/ssrj.c index 7078775d6e9..d25c4af0eca 100644 --- a/src/mame/video/ssrj.c +++ b/src/mame/video/ssrj.c @@ -10,12 +10,11 @@ WRITE8_MEMBER(ssrj_state::ssrj_vram1_w) m_tilemap1->mark_tile_dirty(offset>>1); } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(ssrj_state::get_tile_info1) { - ssrj_state *state = machine.driver_data<ssrj_state>(); int code; - code = state->m_vram1[tile_index<<1] + (state->m_vram1[(tile_index<<1)+1]<<8); - SET_TILE_INFO( + code = m_vram1[tile_index<<1] + (m_vram1[(tile_index<<1)+1]<<8); + SET_TILE_INFO_MEMBER( 0, code&0x3ff, (code>>12)&0x3, @@ -31,12 +30,11 @@ WRITE8_MEMBER(ssrj_state::ssrj_vram2_w) m_tilemap2->mark_tile_dirty(offset>>1); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(ssrj_state::get_tile_info2) { - ssrj_state *state = machine.driver_data<ssrj_state>(); int code; - code = state->m_vram2[tile_index<<1] + (state->m_vram2[(tile_index<<1)+1]<<8); - SET_TILE_INFO( + code = m_vram2[tile_index<<1] + (m_vram2[(tile_index<<1)+1]<<8); + SET_TILE_INFO_MEMBER( 0, code&0x3ff, ((code>>12)&0x3)+4, @@ -52,12 +50,11 @@ WRITE8_MEMBER(ssrj_state::ssrj_vram4_w) m_tilemap4->mark_tile_dirty(offset>>1); } -static TILE_GET_INFO( get_tile_info4 ) +TILE_GET_INFO_MEMBER(ssrj_state::get_tile_info4) { - ssrj_state *state = machine.driver_data<ssrj_state>(); int code; - code = state->m_vram4[tile_index<<1] + (state->m_vram4[(tile_index<<1)+1]<<8); - SET_TILE_INFO( + code = m_vram4[tile_index<<1] + (m_vram4[(tile_index<<1)+1]<<8); + SET_TILE_INFO_MEMBER( 0, code&0x3ff, ((code>>12)&0x3)+12, @@ -223,9 +220,9 @@ VIDEO_START( ssrj ) { ssrj_state *state = machine.driver_data<ssrj_state>(); - state->m_tilemap1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_COLS, 8, 8, 32, 32); - state->m_tilemap2 = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_COLS, 8, 8, 32, 32); - state->m_tilemap4 = tilemap_create(machine, get_tile_info4, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info1),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info2),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_tilemap4 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info4),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_tilemap2->set_transparent_pen(0); state->m_tilemap4->set_transparent_pen(0); diff --git a/src/mame/video/ssv.c b/src/mame/video/ssv.c index 98d68d463ac..cd5b4501591 100644 --- a/src/mame/video/ssv.c +++ b/src/mame/video/ssv.c @@ -208,12 +208,11 @@ VIDEO_START( eaglshot ) machine.gfx[1]->set_source((UINT8 *)state->m_eaglshot_gfxram); } -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(ssv_state::get_tile_info_0) { - ssv_state *state = machine.driver_data<ssv_state>(); - UINT16 tile = state->m_gdfs_tmapram[tile_index]; + UINT16 tile = m_gdfs_tmapram[tile_index]; - SET_TILE_INFO(2, tile, 0, TILE_FLIPXY( tile >> 14 )); + SET_TILE_INFO_MEMBER(2, tile, 0, TILE_FLIPXY( tile >> 14 )); } WRITE16_MEMBER(ssv_state::gdfs_tmapram_w) @@ -230,8 +229,7 @@ VIDEO_START( gdfs ) VIDEO_START_CALL(ssv); - state->m_gdfs_tmap = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, - 16,16, 0x100,0x100 ); + state->m_gdfs_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssv_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16,16, 0x100,0x100); state->m_gdfs_tmap->set_transparent_pen(0); } diff --git a/src/mame/video/stadhero.c b/src/mame/video/stadhero.c index b534cd51ad3..9f5712bbc7c 100644 --- a/src/mame/video/stadhero.c +++ b/src/mame/video/stadhero.c @@ -42,14 +42,13 @@ WRITE16_MEMBER(stadhero_state::stadhero_pf1_data_w) /******************************************************************************/ -static TILE_GET_INFO( get_pf1_tile_info ) +TILE_GET_INFO_MEMBER(stadhero_state::get_pf1_tile_info) { - stadhero_state *state = machine.driver_data<stadhero_state>(); - int tile=state->m_pf1_data[tile_index]; + int tile=m_pf1_data[tile_index]; int color=tile >> 12; tile=tile&0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, @@ -59,7 +58,7 @@ static TILE_GET_INFO( get_pf1_tile_info ) VIDEO_START( stadhero ) { stadhero_state *state = machine.driver_data<stadhero_state>(); - state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stadhero_state::get_pf1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); state->m_pf1_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/starshp1.c b/src/mame/video/starshp1.c index e1111d17c05..7b739ad1e8e 100644 --- a/src/mame/video/starshp1.c +++ b/src/mame/video/starshp1.c @@ -45,12 +45,11 @@ PALETTE_INIT( starshp1 ) } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(starshp1_state::get_tile_info) { - starshp1_state *state = machine.driver_data<starshp1_state>(); - UINT8 code = state->m_playfield_ram[tile_index]; + UINT8 code = m_playfield_ram[tile_index]; - SET_TILE_INFO(0, code & 0x3f, 0, 0); + SET_TILE_INFO_MEMBER(0, code & 0x3f, 0, 0); } @@ -61,7 +60,7 @@ VIDEO_START( starshp1 ) int i; - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(starshp1_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); state->m_bg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/stfight.c b/src/mame/video/stfight.c index 7a823b6b602..6b742f93166 100644 --- a/src/mame/video/stfight.c +++ b/src/mame/video/stfight.c @@ -89,28 +89,28 @@ static void set_pens(running_machine &machine) ***************************************************************************/ -static TILEMAP_MAPPER( fg_scan ) +TILEMAP_MAPPER_MEMBER(stfight_state::fg_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x70) << 4) + ((row & 0xf0) << 7); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(stfight_state::get_fg_tile_info) { - UINT8 *fgMap = machine.root_device().memregion("gfx5")->base(); + UINT8 *fgMap = machine().root_device().memregion("gfx5")->base(); int attr,tile_base; attr = fgMap[0x8000+tile_index]; tile_base = ((attr & 0x80) << 2) | ((attr & 0x20) << 3); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile_base + fgMap[tile_index], attr & 0x07, 0); } -static TILEMAP_MAPPER( bg_scan ) +TILEMAP_MAPPER_MEMBER(stfight_state::bg_scan) { /* logical (col,row) -> memory offset */ return ((col & 0x0e) >> 1) + ((row & 0x0f) << 3) + ((col & 0x70) << 3) + @@ -118,33 +118,32 @@ static TILEMAP_MAPPER( bg_scan ) ((row & 0x60) << 8); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(stfight_state::get_bg_tile_info) { - UINT8 *bgMap = machine.root_device().memregion("gfx6")->base(); + UINT8 *bgMap = machine().root_device().memregion("gfx6")->base(); int attr,tile_bank,tile_base; attr = bgMap[0x8000+tile_index]; tile_bank = (attr & 0x20) >> 5; tile_base = (attr & 0x80) << 1; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2+tile_bank, tile_base + bgMap[tile_index], attr & 0x07, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(stfight_state::get_tx_tile_info) { - stfight_state *state = machine.driver_data<stfight_state>(); - UINT8 attr = state->m_text_attr_ram[tile_index]; + UINT8 attr = m_text_attr_ram[tile_index]; int color = attr & 0x0f; tileinfo.group = color; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_text_char_ram[tile_index] + ((attr & 0x80) << 1), + m_text_char_ram[tile_index] + ((attr & 0x80) << 1), attr & 0x0f, TILE_FLIPYX((attr & 0x60) >> 5)); } @@ -159,9 +158,9 @@ static TILE_GET_INFO( get_tx_tile_info ) VIDEO_START( stfight ) { stfight_state *state = machine.driver_data<stfight_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,bg_scan, 16,16,128,256); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,fg_scan,16,16,128,256); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8,8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stfight_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(stfight_state::bg_scan),state),16,16,128,256); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stfight_state::get_fg_tile_info),state),tilemap_mapper_delegate(FUNC(stfight_state::fg_scan),state),16,16,128,256); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stfight_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32,32); state->m_fg_tilemap->set_transparent_pen(0x0f); colortable_configure_tilemap_groups(machine.colortable, state->m_tx_tilemap, machine.gfx[0], 0xcf); diff --git a/src/mame/video/stlforce.c b/src/mame/video/stlforce.c index c9c6e19bfa6..9f7a504f1db 100644 --- a/src/mame/video/stlforce.c +++ b/src/mame/video/stlforce.c @@ -5,15 +5,14 @@ /* background, appears to be the bottom layer */ -static TILE_GET_INFO( get_stlforce_bg_tile_info ) +TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_bg_tile_info) { - stlforce_state *state = machine.driver_data<stlforce_state>(); int tileno,colour; - tileno = state->m_bg_videoram[tile_index] & 0x0fff; - colour = state->m_bg_videoram[tile_index] & 0xe000; + tileno = m_bg_videoram[tile_index] & 0x0fff; + colour = m_bg_videoram[tile_index] & 0xe000; colour = colour >> 13; - SET_TILE_INFO(0,tileno,colour,0); + SET_TILE_INFO_MEMBER(0,tileno,colour,0); } WRITE16_MEMBER(stlforce_state::stlforce_bg_videoram_w) @@ -25,18 +24,17 @@ WRITE16_MEMBER(stlforce_state::stlforce_bg_videoram_w) /* middle layer, low */ -static TILE_GET_INFO( get_stlforce_mlow_tile_info ) +TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_mlow_tile_info) { - stlforce_state *state = machine.driver_data<stlforce_state>(); int tileno,colour; - tileno = state->m_mlow_videoram[tile_index] & 0x0fff; - colour = state->m_mlow_videoram[tile_index] & 0xe000; + tileno = m_mlow_videoram[tile_index] & 0x0fff; + colour = m_mlow_videoram[tile_index] & 0xe000; colour = colour >> 13; colour += 8; tileno += 0x1000; - SET_TILE_INFO(0,tileno,colour,0); + SET_TILE_INFO_MEMBER(0,tileno,colour,0); } WRITE16_MEMBER(stlforce_state::stlforce_mlow_videoram_w) @@ -48,18 +46,17 @@ WRITE16_MEMBER(stlforce_state::stlforce_mlow_videoram_w) /* middle layer, high */ -static TILE_GET_INFO( get_stlforce_mhigh_tile_info ) +TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_mhigh_tile_info) { - stlforce_state *state = machine.driver_data<stlforce_state>(); int tileno,colour; - tileno = state->m_mhigh_videoram[tile_index] & 0x0fff; - colour = state->m_mhigh_videoram[tile_index] & 0xe000; + tileno = m_mhigh_videoram[tile_index] & 0x0fff; + colour = m_mhigh_videoram[tile_index] & 0xe000; colour = colour >> 13; colour += 16; tileno += 0x2000; - SET_TILE_INFO(0,tileno,colour,0); + SET_TILE_INFO_MEMBER(0,tileno,colour,0); } WRITE16_MEMBER(stlforce_state::stlforce_mhigh_videoram_w) @@ -71,19 +68,18 @@ WRITE16_MEMBER(stlforce_state::stlforce_mhigh_videoram_w) /* text layer, appears to be the top layer */ -static TILE_GET_INFO( get_stlforce_tx_tile_info ) +TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_tx_tile_info) { - stlforce_state *state = machine.driver_data<stlforce_state>(); int tileno,colour; - tileno = state->m_tx_videoram[tile_index] & 0x0fff; - colour = state->m_tx_videoram[tile_index] & 0xe000; + tileno = m_tx_videoram[tile_index] & 0x0fff; + colour = m_tx_videoram[tile_index] & 0xe000; colour = colour >> 13; tileno += 0xc000; colour += 24; - SET_TILE_INFO(1,tileno,colour,0); + SET_TILE_INFO_MEMBER(1,tileno,colour,0); } WRITE16_MEMBER(stlforce_state::stlforce_tx_videoram_w) @@ -184,10 +180,10 @@ VIDEO_START( stlforce ) { stlforce_state *state = machine.driver_data<stlforce_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_stlforce_bg_tile_info, TILEMAP_SCAN_COLS, 16,16,64,16); - state->m_mlow_tilemap = tilemap_create(machine, get_stlforce_mlow_tile_info, TILEMAP_SCAN_COLS, 16,16,64,16); - state->m_mhigh_tilemap = tilemap_create(machine, get_stlforce_mhigh_tile_info,TILEMAP_SCAN_COLS, 16,16,64,16); - state->m_tx_tilemap = tilemap_create(machine, get_stlforce_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_bg_tile_info),state), TILEMAP_SCAN_COLS, 16,16,64,16); + state->m_mlow_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_mlow_tile_info),state), TILEMAP_SCAN_COLS, 16,16,64,16); + state->m_mhigh_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_mhigh_tile_info),state),TILEMAP_SCAN_COLS, 16,16,64,16); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_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/video/strnskil.c b/src/mame/video/strnskil.c index d9e49b5b89b..f46fc149cf0 100644 --- a/src/mame/video/strnskil.c +++ b/src/mame/video/strnskil.c @@ -60,21 +60,20 @@ WRITE8_MEMBER(strnskil_state::strnskil_scrl_ctrl_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(strnskil_state::get_bg_tile_info) { - strnskil_state *state = machine.driver_data<strnskil_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int attr = videoram[tile_index * 2]; int code = videoram[(tile_index * 2) + 1] + ((attr & 0x60) << 3); int color = (attr & 0x1f) | ((attr & 0x80) >> 2); - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( strnskil ) { strnskil_state *state = machine.driver_data<strnskil_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(strnskil_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_bg_tilemap->set_scroll_rows(32); diff --git a/src/mame/video/suna8.c b/src/mame/video/suna8.c index 45a65279607..37a67fab79b 100644 --- a/src/mame/video/suna8.c +++ b/src/mame/video/suna8.c @@ -76,25 +76,24 @@ For Debug: there's no tilemap, just sprites. ***************************************************************************/ #if TILEMAPS -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(suna8_state::get_tile_info) { - suna8_state *state = machine.driver_data<suna8_state>(); UINT8 code, attr; - if (machine.input().code_pressed(KEYCODE_X)) + if (machine().input().code_pressed(KEYCODE_X)) { - UINT8 *rom = state->memregion("maincpu")->base() + 0x10000 + 0x4000 * state->m_trombank; + UINT8 *rom = memregion("maincpu")->base() + 0x10000 + 0x4000 * m_trombank; code = rom[ 2 * tile_index + 0 ]; attr = rom[ 2 * tile_index + 1 ]; } else { - code = state->m_spriteram[ 2 * tile_index + 0 ]; - attr = state->m_spriteram[ 2 * tile_index + 1 ]; + code = m_spriteram[ 2 * tile_index + 0 ]; + attr = m_spriteram[ 2 * tile_index + 1 ]; } - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - ( (attr & 0x03) << 8 ) + code + state->m_tiles*0x400, + ( (attr & 0x03) << 8 ) + code + m_tiles*0x400, (attr >> 2) & 0xf, TILE_FLIPYX( (attr >> 6) & 3 )); } diff --git a/src/mame/video/superqix.c b/src/mame/video/superqix.c index a912ab6f6f2..aa91ae6204b 100644 --- a/src/mame/video/superqix.c +++ b/src/mame/video/superqix.c @@ -18,26 +18,24 @@ ***************************************************************************/ -static TILE_GET_INFO( pb_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(superqix_state::pb_get_bg_tile_info) { - superqix_state *state = machine.driver_data<superqix_state>(); - int attr = state->m_videoram[tile_index + 0x400]; - int code = state->m_videoram[tile_index] + 256 * (attr & 0x7); + int attr = m_videoram[tile_index + 0x400]; + int code = m_videoram[tile_index] + 256 * (attr & 0x7); int color = (attr & 0xf0) >> 4; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( sqix_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(superqix_state::sqix_get_bg_tile_info) { - superqix_state *state = machine.driver_data<superqix_state>(); - int attr = state->m_videoram[tile_index + 0x400]; + int attr = m_videoram[tile_index + 0x400]; int bank = (attr & 0x04) ? 0 : 1; - int code = state->m_videoram[tile_index] + 256 * (attr & 0x03); + int code = m_videoram[tile_index] + 256 * (attr & 0x03); int color = (attr & 0xf0) >> 4; - if (bank) code += 1024 * state->m_gfxbank; + if (bank) code += 1024 * m_gfxbank; - SET_TILE_INFO(bank, code, color, 0); + SET_TILE_INFO_MEMBER(bank, code, color, 0); tileinfo.group = (attr & 0x08) >> 3; } @@ -52,7 +50,7 @@ static TILE_GET_INFO( sqix_get_bg_tile_info ) VIDEO_START( pbillian ) { superqix_state *state = machine.driver_data<superqix_state>(); - state->m_bg_tilemap = tilemap_create(machine, pb_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superqix_state::pb_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32); } VIDEO_START( superqix ) @@ -60,7 +58,7 @@ VIDEO_START( superqix ) superqix_state *state = machine.driver_data<superqix_state>(); state->m_fg_bitmap[0] = auto_bitmap_ind16_alloc(machine, 256, 256); state->m_fg_bitmap[1] = auto_bitmap_ind16_alloc(machine, 256, 256); - state->m_bg_tilemap = tilemap_create(machine, sqix_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superqix_state::sqix_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1,0x0001,0xfffe); /* split type 1 has pen 0 transparent in front half */ diff --git a/src/mame/video/suprloco.c b/src/mame/video/suprloco.c index c309190ef74..62aa928ed91 100644 --- a/src/mame/video/suprloco.c +++ b/src/mame/video/suprloco.c @@ -75,13 +75,12 @@ PALETTE_INIT( suprloco ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(suprloco_state::get_tile_info) { - suprloco_state *state = machine.driver_data<suprloco_state>(); - UINT8 attr = state->m_videoram[2*tile_index+1]; - SET_TILE_INFO( + UINT8 attr = m_videoram[2*tile_index+1]; + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[2*tile_index] | ((attr & 0x03) << 8), + m_videoram[2*tile_index] | ((attr & 0x03) << 8), (attr & 0x1c) >> 2, 0); tileinfo.category = (attr & 0x20) >> 5; @@ -98,7 +97,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( suprloco ) { suprloco_state *state = machine.driver_data<suprloco_state>(); - 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(suprloco_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_bg_tilemap->set_scroll_rows(32); } diff --git a/src/mame/video/suprnova.c b/src/mame/video/suprnova.c index 87ab99f4d04..c62b9c87fca 100644 --- a/src/mame/video/suprnova.c +++ b/src/mame/video/suprnova.c @@ -272,19 +272,18 @@ static void palette_update(running_machine &machine) -static TILE_GET_INFO( get_tilemap_A_tile_info ) +TILE_GET_INFO_MEMBER(skns_state::get_tilemap_A_tile_info) { - skns_state *state = machine.driver_data<skns_state>(); - int code = ((state->m_tilemapA_ram[tile_index] & 0x001fffff) >> 0 ); - int colr = ((state->m_tilemapA_ram[tile_index] & 0x3f000000) >> 24 ); - int pri = ((state->m_tilemapA_ram[tile_index] & 0x00e00000) >> 21 ); - int depth = (state->m_v3_regs[0x0c/4] & 0x0001) << 1; + int code = ((m_tilemapA_ram[tile_index] & 0x001fffff) >> 0 ); + int colr = ((m_tilemapA_ram[tile_index] & 0x3f000000) >> 24 ); + int pri = ((m_tilemapA_ram[tile_index] & 0x00e00000) >> 21 ); + int depth = (m_v3_regs[0x0c/4] & 0x0001) << 1; int flags = 0; - if(state->m_tilemapA_ram[tile_index] & 0x80000000) flags |= TILE_FLIPX; - if(state->m_tilemapA_ram[tile_index] & 0x40000000) flags |= TILE_FLIPY; + if(m_tilemapA_ram[tile_index] & 0x80000000) flags |= TILE_FLIPX; + if(m_tilemapA_ram[tile_index] & 0x40000000) flags |= TILE_FLIPY; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0+depth, code, 0x40+colr, @@ -300,19 +299,18 @@ WRITE32_MEMBER(skns_state::skns_tilemapA_w) m_tilemap_A->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_tilemap_B_tile_info ) +TILE_GET_INFO_MEMBER(skns_state::get_tilemap_B_tile_info) { - skns_state *state = machine.driver_data<skns_state>(); - int code = ((state->m_tilemapB_ram[tile_index] & 0x001fffff) >> 0 ); - int colr = ((state->m_tilemapB_ram[tile_index] & 0x3f000000) >> 24 ); - int pri = ((state->m_tilemapB_ram[tile_index] & 0x00e00000) >> 21 ); - int depth = (state->m_v3_regs[0x0c/4] & 0x0100) >> 7; + int code = ((m_tilemapB_ram[tile_index] & 0x001fffff) >> 0 ); + int colr = ((m_tilemapB_ram[tile_index] & 0x3f000000) >> 24 ); + int pri = ((m_tilemapB_ram[tile_index] & 0x00e00000) >> 21 ); + int depth = (m_v3_regs[0x0c/4] & 0x0100) >> 7; int flags = 0; - if(state->m_tilemapB_ram[tile_index] & 0x80000000) flags |= TILE_FLIPX; - if(state->m_tilemapB_ram[tile_index] & 0x40000000) flags |= TILE_FLIPY; + if(m_tilemapB_ram[tile_index] & 0x80000000) flags |= TILE_FLIPX; + if(m_tilemapB_ram[tile_index] & 0x40000000) flags |= TILE_FLIPY; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1+depth, code, 0x40+colr, @@ -354,10 +352,10 @@ VIDEO_START(skns) state->m_spritegen = machine.device<sknsspr_device>("spritegen"); - state->m_tilemap_A = tilemap_create(machine, get_tilemap_A_tile_info,TILEMAP_SCAN_ROWS,16,16,64, 64); + state->m_tilemap_A = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skns_state::get_tilemap_A_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64, 64); state->m_tilemap_A->set_transparent_pen(0); - state->m_tilemap_B = tilemap_create(machine, get_tilemap_B_tile_info,TILEMAP_SCAN_ROWS,16,16,64, 64); + state->m_tilemap_B = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skns_state::get_tilemap_B_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64, 64); state->m_tilemap_B->set_transparent_pen(0); state->m_sprite_bitmap.allocate(1024,1024); diff --git a/src/mame/video/suprridr.c b/src/mame/video/suprridr.c index ddfe221b68f..64c8f969fc7 100644 --- a/src/mame/video/suprridr.c +++ b/src/mame/video/suprridr.c @@ -14,19 +14,17 @@ * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(suprridr_state::get_tile_info) { - suprridr_state *state = machine.driver_data<suprridr_state>(); - UINT8 code = state->m_bgram[tile_index]; - SET_TILE_INFO(0, code, 0, 0); + UINT8 code = m_bgram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, 0, 0); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(suprridr_state::get_tile_info2) { - suprridr_state *state = machine.driver_data<suprridr_state>(); - UINT8 code = state->m_fgram[tile_index]; - SET_TILE_INFO(1, code, 0, 0); + UINT8 code = m_fgram[tile_index]; + SET_TILE_INFO_MEMBER(1, code, 0, 0); } @@ -40,9 +38,9 @@ static TILE_GET_INFO( get_tile_info2 ) VIDEO_START( suprridr ) { suprridr_state *state = machine.driver_data<suprridr_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 8,8, 32,32); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); - state->m_bg_tilemap_noscroll = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_bg_tilemap_noscroll = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); state->m_fg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/suprslam.c b/src/mame/video/suprslam.c index ab8398b222e..5624c001a0f 100644 --- a/src/mame/video/suprslam.c +++ b/src/mame/video/suprslam.c @@ -105,16 +105,15 @@ WRITE16_MEMBER(suprslam_state::suprslam_screen_videoram_w) } -static TILE_GET_INFO( get_suprslam_tile_info ) +TILE_GET_INFO_MEMBER(suprslam_state::get_suprslam_tile_info) { - suprslam_state *state = machine.driver_data<suprslam_state>(); - int tileno = state->m_screen_videoram[tile_index] & 0x0fff; - int colour = state->m_screen_videoram[tile_index] & 0xf000; + int tileno = m_screen_videoram[tile_index] & 0x0fff; + int colour = m_screen_videoram[tile_index] & 0xf000; - tileno += state->m_screen_bank; + tileno += m_screen_bank; colour = colour >> 12; - SET_TILE_INFO(0, tileno, colour, 0); + SET_TILE_INFO_MEMBER(0, tileno, colour, 0); } @@ -127,16 +126,15 @@ WRITE16_MEMBER(suprslam_state::suprslam_bg_videoram_w) } -static TILE_GET_INFO( get_suprslam_bg_tile_info ) +TILE_GET_INFO_MEMBER(suprslam_state::get_suprslam_bg_tile_info) { - suprslam_state *state = machine.driver_data<suprslam_state>(); - int tileno = state->m_bg_videoram[tile_index] & 0x0fff; - int colour = state->m_bg_videoram[tile_index] & 0xf000; + int tileno = m_bg_videoram[tile_index] & 0x0fff; + int colour = m_bg_videoram[tile_index] & 0xf000; - tileno += state->m_bg_bank; + tileno += m_bg_bank; colour = colour >> 12; - SET_TILE_INFO(2, tileno, colour, 0); + SET_TILE_INFO_MEMBER(2, tileno, colour, 0); } @@ -144,8 +142,8 @@ VIDEO_START( suprslam ) { suprslam_state *state = machine.driver_data<suprslam_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_suprslam_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_screen_tilemap = tilemap_create(machine, get_suprslam_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprslam_state::get_suprslam_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_screen_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprslam_state::get_suprslam_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_screen_tilemap->set_transparent_pen(15); } diff --git a/src/mame/video/system1.c b/src/mame/video/system1.c index 2e4e8411c27..91ac2ef42b2 100644 --- a/src/mame/video/system1.c +++ b/src/mame/video/system1.c @@ -96,14 +96,14 @@ * *************************************/ -static TILE_GET_INFO( tile_get_info ) +TILE_GET_INFO_MEMBER(system1_state::tile_get_info) { const UINT8 *rambase = (const UINT8 *)param; UINT32 tiledata = rambase[tile_index*2+0] | (rambase[tile_index*2+1] << 8); UINT32 code = ((tiledata >> 4) & 0x800) | (tiledata & 0x7ff); UINT32 color = (tiledata >> 5) & 0xff; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } @@ -130,7 +130,7 @@ static void video_start_common(running_machine &machine, int pagecount) /* create the tilemap pages */ for (pagenum = 0; pagenum < pagecount; pagenum++) { - state->m_tilemap_page[pagenum] = tilemap_create(machine, tile_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_tilemap_page[pagenum] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(system1_state::tile_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); state->m_tilemap_page[pagenum]->set_transparent_pen(0); state->m_tilemap_page[pagenum]->set_user_data(state->m_videoram + 0x800 * pagenum); } diff --git a/src/mame/video/system16.c b/src/mame/video/system16.c index 1365f1a5358..d7a1e132699 100644 --- a/src/mame/video/system16.c +++ b/src/mame/video/system16.c @@ -58,7 +58,7 @@ static void setup_system16_bootleg_spritebanking( running_machine& machine ) /***************************************************************************/ -static TILEMAP_MAPPER( sys16_bg_map ) +TILEMAP_MAPPER_MEMBER(segas1x_bootleg_state::sys16_bg_map) { int page = 0; if (row < 32) @@ -83,7 +83,7 @@ static TILEMAP_MAPPER( sys16_bg_map ) return page * 64 * 32 + row * 64 + col; } -static TILEMAP_MAPPER( sys16_text_map ) +TILEMAP_MAPPER_MEMBER(segas1x_bootleg_state::sys16_text_map) { return row * 64 + col + (64 - 40); } @@ -235,56 +235,52 @@ static void update_page( running_machine &machine ) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(segas1x_bootleg_state::get_bg_tile_info) { - segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); - const UINT16 *source = 64 * 32 * state->m_bg_page[tile_index / (64 * 32)] + state->m_tileram; + const UINT16 *source = 64 * 32 * m_bg_page[tile_index / (64 * 32)] + m_tileram; int data = source[tile_index%(64*32)]; - int tile_number = (data & 0xfff) + 0x1000 * ((data & state->m_tilebank_switch) ? state->m_tile_bank1 : state->m_tile_bank0); + int tile_number = (data & 0xfff) + 0x1000 * ((data & m_tilebank_switch) ? m_tile_bank1 : m_tile_bank0); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (data >> 6) & 0x7f, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(segas1x_bootleg_state::get_fg_tile_info) { - segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); - const UINT16 *source = 64 * 32 * state->m_fg_page[tile_index / (64 * 32)] + state->m_tileram; + const UINT16 *source = 64 * 32 * m_fg_page[tile_index / (64 * 32)] + m_tileram; int data = source[tile_index % (64 * 32)]; - int tile_number = (data & 0xfff) + 0x1000 * ((data & state->m_tilebank_switch) ? state->m_tile_bank1 : state->m_tile_bank0); + int tile_number = (data & 0xfff) + 0x1000 * ((data & m_tilebank_switch) ? m_tile_bank1 : m_tile_bank0); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (data >> 6) & 0x7f, 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(segas1x_bootleg_state::get_bg2_tile_info) { - segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); - const UINT16 *source = 64 * 32 * state->m_bg2_page[tile_index / (64 * 32)] + state->m_tileram; + const UINT16 *source = 64 * 32 * m_bg2_page[tile_index / (64 * 32)] + m_tileram; int data = source[tile_index % (64 * 32)]; - int tile_number = (data & 0xfff) + 0x1000 * ((data & 0x1000) ? state->m_tile_bank1 : state->m_tile_bank0); + int tile_number = (data & 0xfff) + 0x1000 * ((data & 0x1000) ? m_tile_bank1 : m_tile_bank0); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (data >> 6) & 0x7f, 0); } -static TILE_GET_INFO( get_fg2_tile_info ) +TILE_GET_INFO_MEMBER(segas1x_bootleg_state::get_fg2_tile_info) { - segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); - const UINT16 *source = 64 * 32 * state->m_fg2_page[tile_index / (64 * 32)] + state->m_tileram; + const UINT16 *source = 64 * 32 * m_fg2_page[tile_index / (64 * 32)] + m_tileram; int data = source[tile_index % (64 * 32)]; - int tile_number = (data & 0xfff) + 0x1000 * ((data & 0x1000) ? state->m_tile_bank1 : state->m_tile_bank0); + int tile_number = (data & 0xfff) + 0x1000 * ((data & 0x1000) ? m_tile_bank1 : m_tile_bank0); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (data >> 6) & 0x7f, @@ -329,33 +325,32 @@ WRITE16_MEMBER(segas1x_bootleg_state::sys16_tileram_w) /***************************************************************************/ -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(segas1x_bootleg_state::get_text_tile_info) { - segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); - const UINT16 *source = state->m_textram; + const UINT16 *source = m_textram; int tile_number = source[tile_index]; int pri = tile_number >> 8; - if (!state->m_shinobl_kludge) + if (!m_shinobl_kludge) { - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - (tile_number & 0x1ff) + state->m_tile_bank0 * 0x1000, + (tile_number & 0x1ff) + m_tile_bank0 * 0x1000, (tile_number >> 9) % 8, 0); } else { - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - (tile_number & 0xff) + state->m_tile_bank0 * 0x1000, + (tile_number & 0xff) + m_tile_bank0 * 0x1000, (tile_number >> 8) % 8, 0); } - if (pri >= state->m_textlayer_lo_min && pri <= state->m_textlayer_lo_max) + if (pri >= m_textlayer_lo_min && pri <= m_textlayer_lo_max) tileinfo.category = 1; - if (pri >= state->m_textlayer_hi_min && pri <= state->m_textlayer_hi_max) + if (pri >= m_textlayer_hi_min && pri <= m_textlayer_hi_max) tileinfo.category = 0; } @@ -387,19 +382,19 @@ VIDEO_START( system16 ) ); if (!state->m_bg1_trans) - state->m_background = tilemap_create(machine, get_bg_tile_info, sys16_bg_map, + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), 8,8, 64*2,32*2 ); else - state->m_background = tilemap_create(machine, get_bg_tile_info, sys16_bg_map, + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), 8,8, 64*2,32*2 ); - state->m_foreground = tilemap_create(machine, get_fg_tile_info, sys16_bg_map, + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), 8,8, 64*2,32*2 ); - state->m_text_layer = tilemap_create(machine, get_text_tile_info, sys16_text_map, + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_text_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_text_map),state), 8,8, 40,28 ); @@ -442,11 +437,11 @@ VIDEO_START( system18old ) state->m_bg1_trans = 1; - state->m_background2 = tilemap_create(machine, get_bg2_tile_info, sys16_bg_map, + state->m_background2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), 8,8, 64*2,32*2 ); - state->m_foreground2 = tilemap_create(machine, get_fg2_tile_info, sys16_bg_map, + state->m_foreground2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_fg2_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), 8,8, 64*2,32*2 ); @@ -491,46 +486,43 @@ VIDEO_START( system18old ) *****************************************************************************************/ -static TILE_GET_INFO( get_s16a_bootleg_tile_infotxt ) +TILE_GET_INFO_MEMBER(segas1x_bootleg_state::get_s16a_bootleg_tile_infotxt) { - segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); int data, tile_number; - data = state->m_textram[tile_index]; + data = m_textram[tile_index]; tile_number = data & 0x1ff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, ((data >> 9) & 0x7), 0); } -static TILE_GET_INFO( get_s16a_bootleg_tile_info0 ) +TILE_GET_INFO_MEMBER(segas1x_bootleg_state::get_s16a_bootleg_tile_info0) { - segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); int data, tile_number; - data = state->m_bg0_tileram[tile_index]; + data = m_bg0_tileram[tile_index]; tile_number = data & 0x1fff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (data >> 6) & 0x7f, 0); } -static TILE_GET_INFO( get_s16a_bootleg_tile_info1 ) +TILE_GET_INFO_MEMBER(segas1x_bootleg_state::get_s16a_bootleg_tile_info1) { - segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); int data, tile_number; - data = state->m_bg1_tileram[tile_index]; + data = m_bg1_tileram[tile_index]; tile_number = data & 0x1fff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, (data >> 6) & 0x7f, @@ -585,11 +577,11 @@ VIDEO_START( s16a_bootleg ) - state->m_text_tilemap = tilemap_create(machine, get_s16a_bootleg_tile_infotxt, TILEMAP_SCAN_ROWS, 8,8, 64,32 ); + state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_infotxt),state), TILEMAP_SCAN_ROWS, 8,8, 64,32 ); // the system16a bootlegs have simple tilemaps instead of the paged system - state->m_bg_tilemaps[0] = tilemap_create(machine, get_s16a_bootleg_tile_info0, TILEMAP_SCAN_ROWS, 8,8, 64,32 ); - state->m_bg_tilemaps[1] = tilemap_create(machine, get_s16a_bootleg_tile_info1, TILEMAP_SCAN_ROWS, 8,8, 64,32 ); + state->m_bg_tilemaps[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info0),state), TILEMAP_SCAN_ROWS, 8,8, 64,32 ); + state->m_bg_tilemaps[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info1),state), TILEMAP_SCAN_ROWS, 8,8, 64,32 ); state->m_text_tilemap->set_transparent_pen(0); state->m_bg_tilemaps[0]->set_transparent_pen(0); diff --git a/src/mame/video/tagteam.c b/src/mame/video/tagteam.c index 7359b66c3ed..16892f5409a 100644 --- a/src/mame/video/tagteam.c +++ b/src/mame/video/tagteam.c @@ -127,19 +127,18 @@ WRITE8_MEMBER(tagteam_state::tagteam_flipscreen_w) coin_counter_w(machine(), 1, data & 0x40); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tagteam_state::get_bg_tile_info) { - tagteam_state *state = machine.driver_data<tagteam_state>(); - int code = state->m_videoram[tile_index] + 256 * state->m_colorram[tile_index]; - int color = state->m_palettebank << 1; + int code = m_videoram[tile_index] + 256 * m_colorram[tile_index]; + int color = m_palettebank << 1; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( tagteam ) { tagteam_state *state = machine.driver_data<tagteam_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS_FLIP_X, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tagteam_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32); } diff --git a/src/mame/video/tail2nos.c b/src/mame/video/tail2nos.c index 0fd3b6e3c5a..defd3bf893a 100644 --- a/src/mame/video/tail2nos.c +++ b/src/mame/video/tail2nos.c @@ -11,14 +11,13 @@ ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(tail2nos_state::get_tile_info) { - tail2nos_state *state = machine.driver_data<tail2nos_state>(); - UINT16 code = state->m_bgvideoram[tile_index]; - SET_TILE_INFO( + UINT16 code = m_bgvideoram[tile_index]; + SET_TILE_INFO_MEMBER( 0, - (code & 0x1fff) + (state->m_charbank << 13), - ((code & 0xe000) >> 13) + state->m_charpalette * 16, + (code & 0x1fff) + (m_charbank << 13), + ((code & 0xe000) >> 13) + m_charpalette * 16, 0); } @@ -58,7 +57,7 @@ VIDEO_START( tail2nos ) { tail2nos_state *state = machine.driver_data<tail2nos_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tail2nos_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c index 822fb788982..8f327514003 100644 --- a/src/mame/video/taito_f3.c +++ b/src/mame/video/taito_f3.c @@ -420,80 +420,70 @@ INLINE void get_tile_info(running_machine &machine, tile_data &tileinfo, int til tileinfo.pen_mask = (extra_planes << 4) | 0x0f; } -static TILE_GET_INFO( get_tile_info1 ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info1) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_1); + get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_1); } -static TILE_GET_INFO( get_tile_info2 ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info2) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_2); + get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_2); } -static TILE_GET_INFO( get_tile_info3 ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info3) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_3); + get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_3); } -static TILE_GET_INFO( get_tile_info4 ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info4) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_4); + get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_4); } -static TILE_GET_INFO( get_tile_info5 ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info5) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_5); + get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_5); } -static TILE_GET_INFO( get_tile_info6 ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info6) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_6); + get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_6); } -static TILE_GET_INFO( get_tile_info7 ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info7) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_7); + get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_7); } -static TILE_GET_INFO( get_tile_info8 ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info8) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); - get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_8); + get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_8); } -static TILE_GET_INFO( get_tile_info_vram ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info_vram) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); int vram_tile; int flags=0; - vram_tile = (state->m_videoram[tile_index]&0xffff); + vram_tile = (m_videoram[tile_index]&0xffff); if (vram_tile&0x0100) flags|=TILE_FLIPX; if (vram_tile&0x8000) flags|=TILE_FLIPY; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, vram_tile&0xff, (vram_tile>>9)&0x3f, flags); } -static TILE_GET_INFO( get_tile_info_pixel ) +TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info_pixel) { - taito_f3_state *state = machine.driver_data<taito_f3_state>(); int vram_tile,col_off; int flags=0; - int y_offs=(state->m_f3_control_1[5]&0x1ff); - if (state->m_flipscreen) y_offs+=0x100; + int y_offs=(m_f3_control_1[5]&0x1ff); + if (m_flipscreen) y_offs+=0x100; /* Colour is shared with VRAM layer */ if ((((tile_index%32)*8 + y_offs)&0x1ff)>0xff) @@ -501,12 +491,12 @@ static TILE_GET_INFO( get_tile_info_pixel ) else col_off=((tile_index%32)*0x40)+((tile_index&0xfe0)>>5); - vram_tile = (state->m_videoram[col_off]&0xffff); + vram_tile = (m_videoram[col_off]&0xffff); if (vram_tile&0x0100) flags|=TILE_FLIPX; if (vram_tile&0x8000) flags|=TILE_FLIPY; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, tile_index, (vram_tile>>9)&0x3f, @@ -588,10 +578,10 @@ VIDEO_START( f3 ) state->m_spriteram = auto_alloc_array_clear(machine, UINT16, 0x10000/2); if (state->m_f3_game_config->extend) { - state->m_pf1_tilemap = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_pf2_tilemap = tilemap_create(machine, get_tile_info2,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_pf3_tilemap = tilemap_create(machine, get_tile_info3,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_pf4_tilemap = tilemap_create(machine, get_tile_info4,TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pf3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info3),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pf4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info4),state),TILEMAP_SCAN_ROWS,16,16,64,32); state->m_f3_pf_data_1=state->m_f3_pf_data+(0x0000/2); state->m_f3_pf_data_2=state->m_f3_pf_data+(0x2000/2); @@ -609,14 +599,14 @@ VIDEO_START( f3 ) } else { - state->m_pf1_tilemap = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_pf2_tilemap = tilemap_create(machine, get_tile_info2,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_pf3_tilemap = tilemap_create(machine, get_tile_info3,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_pf4_tilemap = tilemap_create(machine, get_tile_info4,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_pf5_tilemap = tilemap_create(machine, get_tile_info5,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_pf6_tilemap = tilemap_create(machine, get_tile_info6,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_pf7_tilemap = tilemap_create(machine, get_tile_info7,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_pf8_tilemap = tilemap_create(machine, get_tile_info8,TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pf3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info3),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pf4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info4),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pf5_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info5),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pf6_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info6),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pf7_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info7),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pf8_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info8),state),TILEMAP_SCAN_ROWS,16,16,32,32); state->m_f3_pf_data_1=state->m_f3_pf_data+(0x0000/2); state->m_f3_pf_data_2=state->m_f3_pf_data+(0x1000/2); @@ -644,8 +634,8 @@ VIDEO_START( f3 ) state->m_spriteram16_buffered = auto_alloc_array(machine, UINT16, 0x10000/2); state->m_spritelist = auto_alloc_array(machine, struct tempsprite, 0x400); state->m_sprite_end = state->m_spritelist; - state->m_vram_layer = tilemap_create(machine, get_tile_info_vram,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_pixel_layer = tilemap_create(machine, get_tile_info_pixel,TILEMAP_SCAN_COLS,8,8,64,32); + state->m_vram_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_vram),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_pixel_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_pixel),state),TILEMAP_SCAN_COLS,8,8,64,32); state->m_pf_line_inf = auto_alloc_array(machine, struct f3_playfield_line_inf, 5); state->m_sa_line_inf = auto_alloc_array(machine, struct f3_spritealpha_line_inf, 1); machine.primary_screen->register_screen_bitmap(state->m_pri_alp_bitmap); diff --git a/src/mame/video/taito_l.c b/src/mame/video/taito_l.c index d85fbe268bd..e6b8e53820d 100644 --- a/src/mame/video/taito_l.c +++ b/src/mame/video/taito_l.c @@ -7,45 +7,42 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg18_tile_info ) +TILE_GET_INFO_MEMBER(taitol_state::get_bg18_tile_info) { - taitol_state *state = machine.driver_data<taitol_state>(); - int attr = state->m_rambanks[2 * tile_index + 0x8000 + 1]; - int code = state->m_rambanks[2 * tile_index + 0x8000] + int attr = m_rambanks[2 * tile_index + 0x8000 + 1]; + int code = m_rambanks[2 * tile_index + 0x8000] | ((attr & 0x03) << 8) - | ((state->m_bankc[(attr & 0xc) >> 2]) << 10) - | (state->m_horshoes_gfxbank << 12); + | ((m_bankc[(attr & 0xc) >> 2]) << 10) + | (m_horshoes_gfxbank << 12); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, (attr & 0xf0) >> 4, 0); } -static TILE_GET_INFO( get_bg19_tile_info ) +TILE_GET_INFO_MEMBER(taitol_state::get_bg19_tile_info) { - taitol_state *state = machine.driver_data<taitol_state>(); - int attr = state->m_rambanks[2 * tile_index + 0x9000 + 1]; - int code = state->m_rambanks[2 * tile_index + 0x9000] + int attr = m_rambanks[2 * tile_index + 0x9000 + 1]; + int code = m_rambanks[2 * tile_index + 0x9000] | ((attr & 0x03) << 8) - | ((state->m_bankc[(attr & 0xc) >> 2]) << 10) - | (state->m_horshoes_gfxbank << 12); + | ((m_bankc[(attr & 0xc) >> 2]) << 10) + | (m_horshoes_gfxbank << 12); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, (attr & 0xf0) >> 4, 0); } -static TILE_GET_INFO( get_ch1a_tile_info ) +TILE_GET_INFO_MEMBER(taitol_state::get_ch1a_tile_info) { - taitol_state *state = machine.driver_data<taitol_state>(); - int attr = state->m_rambanks[2 * tile_index + 0xa000 + 1]; - int code = state->m_rambanks[2 * tile_index + 0xa000] | ((attr & 0x01) << 8) | ((attr & 0x04) << 7); + int attr = m_rambanks[2 * tile_index + 0xa000 + 1]; + int code = m_rambanks[2 * tile_index + 0xa000] | ((attr & 0x01) << 8) | ((attr & 0x04) << 7); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code, (attr & 0xf0) >> 4, @@ -65,9 +62,9 @@ VIDEO_START( taitol ) taitol_state *state = machine.driver_data<taitol_state>(); int i; - state->m_bg18_tilemap = tilemap_create(machine, get_bg18_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg19_tilemap = tilemap_create(machine, get_bg19_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_ch1a_tilemap = tilemap_create(machine, get_ch1a_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg18_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taitol_state::get_bg18_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg19_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taitol_state::get_bg19_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_ch1a_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taitol_state::get_ch1a_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg18_tilemap->set_transparent_pen(0); state->m_ch1a_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c index 3a6a04ecc8d..b9862aa9997 100644 --- a/src/mame/video/taitojc.c +++ b/src/mame/video/taitojc.c @@ -13,14 +13,13 @@ static const gfx_layout taitojc_char_layout = 16*64 }; -static TILE_GET_INFO( taitojc_tile_info ) +TILE_GET_INFO_MEMBER(taitojc_state::taitojc_tile_info) { - taitojc_state *state = machine.driver_data<taitojc_state>(); - UINT32 val = state->m_tile_ram[tile_index]; + UINT32 val = m_tile_ram[tile_index]; int color = (val >> 22) & 0xff; int tile = (val >> 2) & 0x7f; - SET_TILE_INFO(state->m_gfx_index, tile, color, 0); + SET_TILE_INFO_MEMBER(m_gfx_index, tile, color, 0); } READ32_MEMBER(taitojc_state::taitojc_palette_r) @@ -312,7 +311,7 @@ VIDEO_START( taitojc ) assert(state->m_gfx_index != MAX_GFX_ELEMENTS); - state->m_tilemap = tilemap_create(machine, taitojc_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taitojc_state::taitojc_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); state->m_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/tank8.c b/src/mame/video/tank8.c index c1d2fdb633e..9b0fa3c1f7f 100644 --- a/src/mame/video/tank8.c +++ b/src/mame/video/tank8.c @@ -69,10 +69,9 @@ WRITE8_MEMBER(tank8_state::tank8_video_ram_w) -static TILE_GET_INFO( tank8_get_tile_info ) +TILE_GET_INFO_MEMBER(tank8_state::tank8_get_tile_info) { - tank8_state *state = machine.driver_data<tank8_state>(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; int color = 0; @@ -95,7 +94,7 @@ static TILE_GET_INFO( tank8_get_tile_info ) color |= 4; } - SET_TILE_INFO(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); + SET_TILE_INFO_MEMBER(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); } @@ -107,7 +106,7 @@ VIDEO_START( tank8 ) machine.primary_screen->register_screen_bitmap(state->m_helper2); machine.primary_screen->register_screen_bitmap(state->m_helper3); - state->m_tilemap = tilemap_create(machine, tank8_get_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tank8_state::tank8_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); /* VBLANK starts on scanline #256 and ends on scanline #24 */ diff --git a/src/mame/video/tankbatt.c b/src/mame/video/tankbatt.c index f6d83fc6b36..03dcab7cb70 100644 --- a/src/mame/video/tankbatt.c +++ b/src/mame/video/tankbatt.c @@ -66,20 +66,19 @@ WRITE8_MEMBER(tankbatt_state::tankbatt_videoram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tankbatt_state::get_bg_tile_info) { - tankbatt_state *state = machine.driver_data<tankbatt_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[tile_index]; int color = videoram[tile_index] | 0x01; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( tankbatt ) { tankbatt_state *state = machine.driver_data<tankbatt_state>(); - 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(tankbatt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } static void draw_bullets(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/video/tankbust.c b/src/mame/video/tankbust.c index 0c6f57eb3e0..2f569130e3f 100644 --- a/src/mame/video/tankbust.c +++ b/src/mame/video/tankbust.c @@ -26,11 +26,10 @@ note: */ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tankbust_state::get_bg_tile_info) { - tankbust_state *state = machine.driver_data<tankbust_state>(); - 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]; int color = ((attr>>4) & 0x07); @@ -51,19 +50,18 @@ static TILE_GET_INFO( get_bg_tile_info ) /* priority bg/sprites (1 = this bg tile on top of sprites) */ tileinfo.category = (attr & 0x08) >> 3; - SET_TILE_INFO( 1, + SET_TILE_INFO_MEMBER( 1, code, (color&4) | ((color&2)>>1) | ((color&1)<<1), 0); } -static TILE_GET_INFO( get_txt_tile_info ) +TILE_GET_INFO_MEMBER(tankbust_state::get_txt_tile_info) { - tankbust_state *state = machine.driver_data<tankbust_state>(); - int code = state->m_txtram[tile_index]; + int code = m_txtram[tile_index]; int color = ((code>>6) & 0x03); - SET_TILE_INFO( 2, + SET_TILE_INFO_MEMBER( 2, code & 0x3f, ((color&2)>>1) | ((color&1)<<1), 0); @@ -80,10 +78,10 @@ VIDEO_START( tankbust ) { tankbust_state *state = machine.driver_data<tankbust_state>(); /* not scrollable */ - state->m_txt_tilemap = tilemap_create(machine, get_txt_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tankbust_state::get_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); /* scrollable */ - 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(tankbust_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_txt_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/taotaido.c b/src/mame/video/taotaido.c index 8fcefc36d2a..0fddf0df71f 100644 --- a/src/mame/video/taotaido.c +++ b/src/mame/video/taotaido.c @@ -159,23 +159,22 @@ WRITE16_MEMBER(taotaido_state::taotaido_bgvideoram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( taotaido_bg_tile_info ) +TILE_GET_INFO_MEMBER(taotaido_state::taotaido_bg_tile_info) { - taotaido_state *state = machine.driver_data<taotaido_state>(); - int code = state->m_bgram[tile_index]&0x01ff; - int bank = (state->m_bgram[tile_index]&0x0e00)>>9; - int col = (state->m_bgram[tile_index]&0xf000)>>12; + int code = m_bgram[tile_index]&0x01ff; + int bank = (m_bgram[tile_index]&0x0e00)>>9; + int col = (m_bgram[tile_index]&0xf000)>>12; - code |= state->m_video_bank_select[bank]*0x200; + code |= m_video_bank_select[bank]*0x200; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, code, col, 0); } -static TILEMAP_MAPPER( taotaido_tilemap_scan_rows ) +TILEMAP_MAPPER_MEMBER(taotaido_state::taotaido_tilemap_scan_rows) { /* logical (col,row) -> memory offset */ return row*0x40 + (col&0x3f) + ((col&0x40)<<6); @@ -184,7 +183,7 @@ static TILEMAP_MAPPER( taotaido_tilemap_scan_rows ) VIDEO_START(taotaido) { taotaido_state *state = machine.driver_data<taotaido_state>(); - state->m_bg_tilemap = tilemap_create(machine, taotaido_bg_tile_info,taotaido_tilemap_scan_rows, 16,16,128,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taotaido_state::taotaido_bg_tile_info),state),tilemap_mapper_delegate(FUNC(taotaido_state::taotaido_tilemap_scan_rows),state),16,16,128,64); state->m_spriteram_old = auto_alloc_array(machine, UINT16, 0x2000/2); state->m_spriteram_older = auto_alloc_array(machine, UINT16, 0x2000/2); diff --git a/src/mame/video/targeth.c b/src/mame/video/targeth.c index e46335add84..dc7b90753bb 100644 --- a/src/mame/video/targeth.c +++ b/src/mame/video/targeth.c @@ -32,24 +32,22 @@ 1 | xxxxxxxx x------- | not used? */ -static TILE_GET_INFO( get_tile_info_targeth_screen0 ) +TILE_GET_INFO_MEMBER(targeth_state::get_tile_info_targeth_screen0) { - targeth_state *state = machine.driver_data<targeth_state>(); - int data = state->m_videoram[tile_index << 1]; - int data2 = state->m_videoram[(tile_index << 1) + 1]; + int data = m_videoram[tile_index << 1]; + int data2 = m_videoram[(tile_index << 1) + 1]; int code = data & 0x3fff; - SET_TILE_INFO(0, code, data2 & 0x1f, TILE_FLIPXY((data2 >> 5) & 0x03)); + SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPXY((data2 >> 5) & 0x03)); } -static TILE_GET_INFO( get_tile_info_targeth_screen1 ) +TILE_GET_INFO_MEMBER(targeth_state::get_tile_info_targeth_screen1) { - targeth_state *state = machine.driver_data<targeth_state>(); - int data = state->m_videoram[(0x2000/2) + (tile_index << 1)]; - int data2 = state->m_videoram[(0x2000/2) + (tile_index << 1) + 1]; + int data = m_videoram[(0x2000/2) + (tile_index << 1)]; + int data2 = m_videoram[(0x2000/2) + (tile_index << 1) + 1]; int code = data & 0x3fff; - SET_TILE_INFO(0, code, data2 & 0x1f, TILE_FLIPXY((data2 >> 5) & 0x03)); + SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPXY((data2 >> 5) & 0x03)); } /*************************************************************************** @@ -74,8 +72,8 @@ WRITE16_MEMBER(targeth_state::targeth_vram_w) VIDEO_START( targeth ) { targeth_state *state = machine.driver_data<targeth_state>(); - state->m_pant[0] = tilemap_create(machine, get_tile_info_targeth_screen0,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_pant[1] = tilemap_create(machine, get_tile_info_targeth_screen1,TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(targeth_state::get_tile_info_targeth_screen0),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(targeth_state::get_tile_info_targeth_screen1),state),TILEMAP_SCAN_ROWS,16,16,64,32); state->m_pant[0]->set_transparent_pen(0); } diff --git a/src/mame/video/tatsumi.c b/src/mame/video/tatsumi.c index 3eee6a337e2..0dfcbe87a0e 100644 --- a/src/mame/video/tatsumi.c +++ b/src/mame/video/tatsumi.c @@ -159,32 +159,29 @@ WRITE16_MEMBER(tatsumi_state::roundup5_crt_w) /********************************************************************/ -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(tatsumi_state::get_text_tile_info) { - tatsumi_state *state = machine.driver_data<tatsumi_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int tile = videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile & 0xfff, tile >> 12, 0); } -static TILE_GET_INFO( get_tile_info_bigfight_0 ) +TILE_GET_INFO_MEMBER(tatsumi_state::get_tile_info_bigfight_0) { - tatsumi_state *state = machine.driver_data<tatsumi_state>(); - int tile=state->m_cyclwarr_videoram0[(tile_index+0x400)%0x8000]; - int bank = (state->m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf; - SET_TILE_INFO(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0); + int tile=m_cyclwarr_videoram0[(tile_index+0x400)%0x8000]; + int bank = (m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf; + SET_TILE_INFO_MEMBER(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0); } -static TILE_GET_INFO( get_tile_info_bigfight_1 ) +TILE_GET_INFO_MEMBER(tatsumi_state::get_tile_info_bigfight_1) { - tatsumi_state *state = machine.driver_data<tatsumi_state>(); - int tile=state->m_cyclwarr_videoram1[(tile_index+0x400)%0x8000]; - int bank = (state->m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf; - SET_TILE_INFO(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0); + int tile=m_cyclwarr_videoram1[(tile_index+0x400)%0x8000]; + int bank = (m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf; + SET_TILE_INFO_MEMBER(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0); } /********************************************************************/ @@ -192,7 +189,7 @@ static TILE_GET_INFO( get_tile_info_bigfight_1 ) VIDEO_START( apache3 ) { tatsumi_state *state = machine.driver_data<tatsumi_state>(); - state->m_tx_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); state->m_shadow_pen_array = auto_alloc_array_clear(machine, UINT8, 8192); state->m_temp_bitmap.allocate(512, 512); state->m_apache3_road_x_ram = auto_alloc_array(machine, UINT8, 512); @@ -203,7 +200,7 @@ VIDEO_START( apache3 ) VIDEO_START( roundup5 ) { tatsumi_state *state = machine.driver_data<tatsumi_state>(); - state->m_tx_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); + state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); state->m_shadow_pen_array = auto_alloc_array_clear(machine, UINT8, 8192); state->m_roundup5_vram = auto_alloc_array(machine, UINT16, (0x48000 * 4)/2); @@ -215,11 +212,11 @@ VIDEO_START( roundup5 ) VIDEO_START( cyclwarr ) { tatsumi_state *state = machine.driver_data<tatsumi_state>(); - state->m_layer0 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,64,512); - //state->m_layer1 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,64,512); - state->m_layer1 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,128,256); - state->m_layer2 = tilemap_create(machine, get_tile_info_bigfight_1,TILEMAP_SCAN_ROWS,8,8,64,512); - state->m_layer3 = tilemap_create(machine, get_tile_info_bigfight_1,TILEMAP_SCAN_ROWS,8,8,64,512); + state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,64,512); + //state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,64,512); + state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,128,256); + state->m_layer2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),state),TILEMAP_SCAN_ROWS,8,8,64,512); + state->m_layer3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),state),TILEMAP_SCAN_ROWS,8,8,64,512); state->m_shadow_pen_array = auto_alloc_array_clear(machine, UINT8, 8192); } @@ -227,10 +224,10 @@ VIDEO_START( cyclwarr ) VIDEO_START( bigfight ) { tatsumi_state *state = machine.driver_data<tatsumi_state>(); - state->m_layer0 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,128,256); - state->m_layer1 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,128,256); - state->m_layer2 = tilemap_create(machine, get_tile_info_bigfight_1,TILEMAP_SCAN_ROWS,8,8,128,256); - state->m_layer3 = tilemap_create(machine, get_tile_info_bigfight_1,TILEMAP_SCAN_ROWS,8,8,128,256); + state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,128,256); + state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,128,256); + state->m_layer2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),state),TILEMAP_SCAN_ROWS,8,8,128,256); + state->m_layer3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),state),TILEMAP_SCAN_ROWS,8,8,128,256); state->m_shadow_pen_array = auto_alloc_array_clear(machine, UINT8, 8192); } diff --git a/src/mame/video/tbowl.c b/src/mame/video/tbowl.c index 3abbcafc328..95845200e8e 100644 --- a/src/mame/video/tbowl.c +++ b/src/mame/video/tbowl.c @@ -8,16 +8,15 @@ /* Foreground Layer (tx) Tilemap */ -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(tbowl_state::get_tx_tile_info) { - tbowl_state *state = machine.driver_data<tbowl_state>(); int tileno; int col; - tileno = state->m_txvideoram[tile_index] | ((state->m_txvideoram[tile_index+0x800] & 0x07) << 8); - col = (state->m_txvideoram[tile_index+0x800] & 0xf0) >> 4; + tileno = m_txvideoram[tile_index] | ((m_txvideoram[tile_index+0x800] & 0x07) << 8); + col = (m_txvideoram[tile_index+0x800] & 0xf0) >> 4; - SET_TILE_INFO(0,tileno,col,0); + SET_TILE_INFO_MEMBER(0,tileno,col,0); } WRITE8_MEMBER(tbowl_state::tbowl_txvideoram_w) @@ -28,16 +27,15 @@ WRITE8_MEMBER(tbowl_state::tbowl_txvideoram_w) /* Bottom BG Layer (bg) Tilemap */ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tbowl_state::get_bg_tile_info) { - tbowl_state *state = machine.driver_data<tbowl_state>(); int tileno; int col; - tileno = state->m_bgvideoram[tile_index] | ((state->m_bgvideoram[tile_index+0x1000] & 0x0f) << 8); - col = (state->m_bgvideoram[tile_index+0x1000] & 0xf0) >> 4; + tileno = m_bgvideoram[tile_index] | ((m_bgvideoram[tile_index+0x1000] & 0x0f) << 8); + col = (m_bgvideoram[tile_index+0x1000] & 0xf0) >> 4; - SET_TILE_INFO(1,tileno,col,0); + SET_TILE_INFO_MEMBER(1,tileno,col,0); } WRITE8_MEMBER(tbowl_state::tbowl_bg2videoram_w) @@ -68,17 +66,16 @@ WRITE8_MEMBER(tbowl_state::tbowl_bgyscroll_hi) /* Middle BG Layer (bg2) Tilemaps */ -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(tbowl_state::get_bg2_tile_info) { - tbowl_state *state = machine.driver_data<tbowl_state>(); int tileno; int col; - tileno = state->m_bg2videoram[tile_index] | ((state->m_bg2videoram[tile_index+0x1000] & 0x0f) << 8); + tileno = m_bg2videoram[tile_index] | ((m_bg2videoram[tile_index+0x1000] & 0x0f) << 8); tileno ^= 0x400; - col = (state->m_bg2videoram[tile_index+0x1000] & 0xf0) >> 4; + col = (m_bg2videoram[tile_index+0x1000] & 0xf0) >> 4; - SET_TILE_INFO(2,tileno,col,0); + SET_TILE_INFO_MEMBER(2,tileno,col,0); } WRITE8_MEMBER(tbowl_state::tbowl_bgvideoram_w) @@ -193,9 +190,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re VIDEO_START( tbowl ) { tbowl_state *state = machine.driver_data<tbowl_state>(); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 16, 16,128,32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info,TILEMAP_SCAN_ROWS, 16, 16,128,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tbowl_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tbowl_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,128,32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tbowl_state::get_bg2_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,128,32); state->m_tx_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/tceptor.c b/src/mame/video/tceptor.c index 9b4d6b0b893..32cb46baca5 100644 --- a/src/mame/video/tceptor.c +++ b/src/mame/video/tceptor.c @@ -104,16 +104,15 @@ INLINE int get_tile_addr(int tile_index) return TX_TILE_OFFSET_CENTER + (x - 1) + y * 32; } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(tceptor_state::get_tx_tile_info) { - tceptor_state *state = machine.driver_data<tceptor_state>(); int offset = get_tile_addr(tile_index); - int code = state->m_tile_ram[offset]; - int color = state->m_tile_attr[offset]; + int code = m_tile_ram[offset]; + int color = m_tile_attr[offset]; tileinfo.group = color; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } void tceptor_state::tile_mark_dirty(int offset) @@ -164,24 +163,22 @@ WRITE8_MEMBER(tceptor_state::tceptor_tile_attr_w) /*******************************************************************/ -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(tceptor_state::get_bg1_tile_info) { - tceptor_state *state = machine.driver_data<tceptor_state>(); - UINT16 data = state->m_bg_ram[tile_index * 2] | (state->m_bg_ram[tile_index * 2 + 1] << 8); + UINT16 data = m_bg_ram[tile_index * 2] | (m_bg_ram[tile_index * 2 + 1] << 8); int code = (data & 0x3ff) | 0x000; int color = (data & 0xfc00) >> 10; - SET_TILE_INFO(state->m_bg, code, color, 0); + SET_TILE_INFO_MEMBER(m_bg, code, color, 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(tceptor_state::get_bg2_tile_info) { - tceptor_state *state = machine.driver_data<tceptor_state>(); - UINT16 data = state->m_bg_ram[tile_index * 2 + 0x1000] | (state->m_bg_ram[tile_index * 2 + 1 + 0x1000] << 8); + UINT16 data = m_bg_ram[tile_index * 2 + 0x1000] | (m_bg_ram[tile_index * 2 + 1 + 0x1000] << 8); int code = (data & 0x3ff) | 0x400; int color = (data & 0xfc00) >> 10; - SET_TILE_INFO(state->m_bg, code, color, 0); + SET_TILE_INFO_MEMBER(m_bg, code, color, 0); } WRITE8_MEMBER(tceptor_state::tceptor_bg_ram_w) @@ -395,14 +392,14 @@ VIDEO_START( tceptor ) state->m_c45_road->set_transparent_color(colortable_entry_get_value(machine.colortable, 0xfff)); - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 34, 28); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tceptor_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 34, 28); state->m_tx_tilemap->set_scrollx(0, -2*8); state->m_tx_tilemap->set_scrolly(0, 0); colortable_configure_tilemap_groups(machine.colortable, state->m_tx_tilemap, machine.gfx[0], 7); - state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tceptor_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tceptor_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state_save_register_global_pointer(machine, state->m_sprite_ram_buffered, 0x200 / 2); state_save_register_global(machine, state->m_bg1_scroll_x); diff --git a/src/mame/video/tecmo.c b/src/mame/video/tecmo.c index 5641c7585a0..4ae54866f3e 100644 --- a/src/mame/video/tecmo.c +++ b/src/mame/video/tecmo.c @@ -21,57 +21,52 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tecmo_state::get_bg_tile_info) { - tecmo_state *state = machine.driver_data<tecmo_state>(); - UINT8 attr = state->m_bgvideoram[tile_index+0x200]; - SET_TILE_INFO( + UINT8 attr = m_bgvideoram[tile_index+0x200]; + SET_TILE_INFO_MEMBER( 3, - state->m_bgvideoram[tile_index] + ((attr & 0x07) << 8), + m_bgvideoram[tile_index] + ((attr & 0x07) << 8), attr >> 4, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tecmo_state::get_fg_tile_info) { - tecmo_state *state = machine.driver_data<tecmo_state>(); - UINT8 attr = state->m_fgvideoram[tile_index+0x200]; - SET_TILE_INFO( + UINT8 attr = m_fgvideoram[tile_index+0x200]; + SET_TILE_INFO_MEMBER( 2, - state->m_fgvideoram[tile_index] + ((attr & 0x07) << 8), + m_fgvideoram[tile_index] + ((attr & 0x07) << 8), attr >> 4, 0); } -static TILE_GET_INFO( gemini_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tecmo_state::gemini_get_bg_tile_info) { - tecmo_state *state = machine.driver_data<tecmo_state>(); - UINT8 attr = state->m_bgvideoram[tile_index+0x200]; - SET_TILE_INFO( + UINT8 attr = m_bgvideoram[tile_index+0x200]; + SET_TILE_INFO_MEMBER( 3, - state->m_bgvideoram[tile_index] + ((attr & 0x70) << 4), + m_bgvideoram[tile_index] + ((attr & 0x70) << 4), attr & 0x0f, 0); } -static TILE_GET_INFO( gemini_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tecmo_state::gemini_get_fg_tile_info) { - tecmo_state *state = machine.driver_data<tecmo_state>(); - UINT8 attr = state->m_fgvideoram[tile_index+0x200]; - SET_TILE_INFO( + UINT8 attr = m_fgvideoram[tile_index+0x200]; + SET_TILE_INFO_MEMBER( 2, - state->m_fgvideoram[tile_index] + ((attr & 0x70) << 4), + m_fgvideoram[tile_index] + ((attr & 0x70) << 4), attr & 0x0f, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(tecmo_state::get_tx_tile_info) { - tecmo_state *state = machine.driver_data<tecmo_state>(); - UINT8 attr = state->m_txvideoram[tile_index+0x400]; - SET_TILE_INFO( + UINT8 attr = m_txvideoram[tile_index+0x400]; + SET_TILE_INFO_MEMBER( 0, - state->m_txvideoram[tile_index] + ((attr & 0x03) << 8), + m_txvideoram[tile_index] + ((attr & 0x03) << 8), attr >> 4, 0); } @@ -89,15 +84,15 @@ VIDEO_START( tecmo ) tecmo_state *state = machine.driver_data<tecmo_state>(); if (state->m_video_type == 2) /* gemini */ { - state->m_bg_tilemap = tilemap_create(machine, gemini_get_bg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); - state->m_fg_tilemap = tilemap_create(machine, gemini_get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::gemini_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::gemini_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); } else /* rygar, silkworm */ { - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); } - state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); state->m_bg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/tecmo16.c b/src/mame/video/tecmo16.c index 7e7a2862016..c0668abfb4f 100644 --- a/src/mame/video/tecmo16.c +++ b/src/mame/video/tecmo16.c @@ -14,40 +14,37 @@ /******************************************************************************/ -static TILE_GET_INFO( fg_get_tile_info ) +TILE_GET_INFO_MEMBER(tecmo16_state::fg_get_tile_info) { - tecmo16_state *state = machine.driver_data<tecmo16_state>(); - int tile = state->m_videoram[tile_index] & 0x1fff; - int color = state->m_colorram[tile_index] & 0x0f; + int tile = m_videoram[tile_index] & 0x1fff; + int color = m_colorram[tile_index] & 0x0f; /* bit 4 controls blending */ - tileinfo.category = (state->m_colorram[tile_index] & 0x10) >> 4; + tileinfo.category = (m_colorram[tile_index] & 0x10) >> 4; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, color | (tileinfo.category ? 0x70 : 0x00), 0); } -static TILE_GET_INFO( bg_get_tile_info ) +TILE_GET_INFO_MEMBER(tecmo16_state::bg_get_tile_info) { - tecmo16_state *state = machine.driver_data<tecmo16_state>(); - int tile = state->m_videoram2[tile_index] & 0x1fff; - int color = (state->m_colorram2[tile_index] & 0x0f)+0x10; + int tile = m_videoram2[tile_index] & 0x1fff; + int color = (m_colorram2[tile_index] & 0x0f)+0x10; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, color, 0); } -static TILE_GET_INFO( tx_get_tile_info ) +TILE_GET_INFO_MEMBER(tecmo16_state::tx_get_tile_info) { - tecmo16_state *state = machine.driver_data<tecmo16_state>(); - int tile = state->m_charram[tile_index]; - SET_TILE_INFO( + int tile = m_charram[tile_index]; + SET_TILE_INFO_MEMBER( 0, tile & 0x0fff, tile >> 12, @@ -67,9 +64,9 @@ VIDEO_START( fstarfrc ) /* set up sprites */ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transparent_pen(0); @@ -91,9 +88,9 @@ VIDEO_START( ginkun ) /* set up sprites */ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transparent_pen(0); @@ -113,9 +110,9 @@ VIDEO_START( riot ) /* set up sprites */ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap); - state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/tecmosys.c b/src/mame/video/tecmosys.c index 8603999876d..6c4a8943930 100644 --- a/src/mame/video/tecmosys.c +++ b/src/mame/video/tecmosys.c @@ -8,48 +8,44 @@ #include "includes/tecmosys.h" -static TILE_GET_INFO( get_bg0tile_info ) +TILE_GET_INFO_MEMBER(tecmosys_state::get_bg0tile_info) { - tecmosys_state *state = machine.driver_data<tecmosys_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, - state->m_bg0tilemap_ram[2*tile_index+1], - (state->m_bg0tilemap_ram[2*tile_index]&0x3f), - TILE_FLIPYX((state->m_bg0tilemap_ram[2*tile_index]&0xc0)>>6)); + m_bg0tilemap_ram[2*tile_index+1], + (m_bg0tilemap_ram[2*tile_index]&0x3f), + TILE_FLIPYX((m_bg0tilemap_ram[2*tile_index]&0xc0)>>6)); } -static TILE_GET_INFO( get_bg1tile_info ) +TILE_GET_INFO_MEMBER(tecmosys_state::get_bg1tile_info) { - tecmosys_state *state = machine.driver_data<tecmosys_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, - state->m_bg1tilemap_ram[2*tile_index+1], - (state->m_bg1tilemap_ram[2*tile_index]&0x3f), - TILE_FLIPYX((state->m_bg1tilemap_ram[2*tile_index]&0xc0)>>6)); + m_bg1tilemap_ram[2*tile_index+1], + (m_bg1tilemap_ram[2*tile_index]&0x3f), + TILE_FLIPYX((m_bg1tilemap_ram[2*tile_index]&0xc0)>>6)); } -static TILE_GET_INFO( get_bg2tile_info ) +TILE_GET_INFO_MEMBER(tecmosys_state::get_bg2tile_info) { - tecmosys_state *state = machine.driver_data<tecmosys_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, - state->m_bg2tilemap_ram[2*tile_index+1], - (state->m_bg2tilemap_ram[2*tile_index]&0x3f), - TILE_FLIPYX((state->m_bg2tilemap_ram[2*tile_index]&0xc0)>>6)); + m_bg2tilemap_ram[2*tile_index+1], + (m_bg2tilemap_ram[2*tile_index]&0x3f), + TILE_FLIPYX((m_bg2tilemap_ram[2*tile_index]&0xc0)>>6)); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tecmosys_state::get_fg_tile_info) { - tecmosys_state *state = machine.driver_data<tecmosys_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_fgtilemap_ram[2*tile_index+1], - (state->m_fgtilemap_ram[2*tile_index]&0x3f), - TILE_FLIPYX((state->m_fgtilemap_ram[2*tile_index]&0xc0)>>6)); + m_fgtilemap_ram[2*tile_index+1], + (m_fgtilemap_ram[2*tile_index]&0x3f), + TILE_FLIPYX((m_fgtilemap_ram[2*tile_index]&0xc0)>>6)); } @@ -345,15 +341,15 @@ VIDEO_START(tecmosys) state->m_tmp_tilemap_renderbitmap.fill(0x0000); - state->m_txt_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32*2,32*2); + state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmosys_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32*2,32*2); state->m_txt_tilemap->set_transparent_pen(0); - state->m_bg0tilemap = tilemap_create(machine, get_bg0tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_bg0tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmosys_state::get_bg0tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); state->m_bg0tilemap->set_transparent_pen(0); - state->m_bg1tilemap = tilemap_create(machine, get_bg1tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_bg1tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmosys_state::get_bg1tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); state->m_bg1tilemap->set_transparent_pen(0); - state->m_bg2tilemap = tilemap_create(machine, get_bg2tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_bg2tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmosys_state::get_bg2tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); state->m_bg2tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/tehkanwc.c b/src/mame/video/tehkanwc.c index c670b093433..a67ef7fb922 100644 --- a/src/mame/video/tehkanwc.c +++ b/src/mame/video/tehkanwc.c @@ -62,38 +62,36 @@ WRITE8_MEMBER(tehkanwc_state::gridiron_led1_w) m_led1 = data; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tehkanwc_state::get_bg_tile_info) { - tehkanwc_state *state = machine.driver_data<tehkanwc_state>(); int offs = tile_index * 2; - int attr = state->m_videoram2[offs + 1]; - int code = state->m_videoram2[offs] + ((attr & 0x30) << 4); + int attr = m_videoram2[offs + 1]; + int code = m_videoram2[offs] + ((attr & 0x30) << 4); int color = attr & 0x0f; int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); - SET_TILE_INFO(2, code, color, flags); + SET_TILE_INFO_MEMBER(2, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tehkanwc_state::get_fg_tile_info) { - tehkanwc_state *state = machine.driver_data<tehkanwc_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x10) << 4); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x10) << 4); int color = attr & 0x0f; int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); tileinfo.category = (attr & 0x20) ? 0 : 1; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( tehkanwc ) { tehkanwc_state *state = machine.driver_data<tehkanwc_state>(); - 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(tehkanwc_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tehkanwc_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/video/terracre.c b/src/mame/video/terracre.c index a52f8df9a7d..371bbbaa5d3 100644 --- a/src/mame/video/terracre.c +++ b/src/mame/video/terracre.c @@ -10,25 +10,21 @@ #include "includes/terracre.h" -static -TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(terracre_state::get_bg_tile_info) { - terracre_state *state = machine.driver_data<terracre_state>(); /* xxxx.----.----.---- * ----.xx--.----.---- * ----.--xx.xxxx.xxxx */ - unsigned data = state->m_amazon_videoram[tile_index]; + unsigned data = m_amazon_videoram[tile_index]; unsigned color = data>>11; - SET_TILE_INFO( 1,data&0x3ff,color,0 ); + SET_TILE_INFO_MEMBER( 1,data&0x3ff,color,0 ); } -static -TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(terracre_state::get_fg_tile_info) { - terracre_state *state = machine.driver_data<terracre_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int data = videoram[tile_index]; - SET_TILE_INFO( 0,data&0xff,0,0 ); + SET_TILE_INFO_MEMBER( 0,data&0xff,0,0 ); } static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) @@ -190,8 +186,8 @@ WRITE16_MEMBER(terracre_state::amazon_scrollx_w) VIDEO_START( amazon ) { terracre_state *state = machine.driver_data<terracre_state>(); - state->m_background = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS,16,16,64,32); - state->m_foreground = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(terracre_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS,16,16,64,32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(terracre_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); state->m_foreground->set_transparent_pen(0xf); /* register for saving */ diff --git a/src/mame/video/tetrisp2.c b/src/mame/video/tetrisp2.c index 2f6dadbc10d..3e151acc1be 100644 --- a/src/mame/video/tetrisp2.c +++ b/src/mame/video/tetrisp2.c @@ -123,12 +123,11 @@ READ8_MEMBER(tetrisp2_state::tetrisp2_priority_r) #define NX_0 (0x40) #define NY_0 (0x40) -static TILE_GET_INFO( get_tile_info_bg ) +TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_bg) { - tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); - UINT16 code_hi = state->m_vram_bg[ 2 * tile_index + 0]; - UINT16 code_lo = state->m_vram_bg[ 2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code_hi = m_vram_bg[ 2 * tile_index + 0]; + UINT16 code_lo = m_vram_bg[ 2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 1, code_hi, code_lo & 0xf, @@ -145,12 +144,11 @@ WRITE16_MEMBER(tetrisp2_state::tetrisp2_vram_bg_w) #define NX_1 (0x40) #define NY_1 (0x40) -static TILE_GET_INFO( get_tile_info_fg ) +TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_fg) { - tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); - UINT16 code_hi = state->m_vram_fg[ 2 * tile_index + 0]; - UINT16 code_lo = state->m_vram_fg[ 2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code_hi = m_vram_fg[ 2 * tile_index + 0]; + UINT16 code_lo = m_vram_fg[ 2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 3, code_hi, code_lo & 0xf, @@ -164,12 +162,11 @@ WRITE16_MEMBER(tetrisp2_state::tetrisp2_vram_fg_w) } -static TILE_GET_INFO( get_tile_info_rot ) +TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_rot) { - tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); - UINT16 code_hi = state->m_vram_rot[ 2 * tile_index + 0]; - UINT16 code_lo = state->m_vram_rot[ 2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code_hi = m_vram_rot[ 2 * tile_index + 0]; + UINT16 code_lo = m_vram_rot[ 2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 2, code_hi, code_lo & 0xf, @@ -182,12 +179,11 @@ WRITE16_MEMBER(tetrisp2_state::tetrisp2_vram_rot_w) m_tilemap_rot->mark_tile_dirty(offset/2); } -static TILE_GET_INFO( get_tile_info_rocknms_sub_bg ) +TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_rocknms_sub_bg) { - tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); - UINT16 code_hi = state->m_rocknms_sub_vram_bg[ 2 * tile_index + 0]; - UINT16 code_lo = state->m_rocknms_sub_vram_bg[ 2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code_hi = m_rocknms_sub_vram_bg[ 2 * tile_index + 0]; + UINT16 code_lo = m_rocknms_sub_vram_bg[ 2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 5, code_hi, code_lo & 0xf, @@ -201,12 +197,11 @@ WRITE16_MEMBER(tetrisp2_state::rocknms_sub_vram_bg_w) } -static TILE_GET_INFO( get_tile_info_rocknms_sub_fg ) +TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_rocknms_sub_fg) { - tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); - UINT16 code_hi = state->m_rocknms_sub_vram_fg[ 2 * tile_index + 0]; - UINT16 code_lo = state->m_rocknms_sub_vram_fg[ 2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code_hi = m_rocknms_sub_vram_fg[ 2 * tile_index + 0]; + UINT16 code_lo = m_rocknms_sub_vram_fg[ 2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 7, code_hi, code_lo & 0xf, @@ -220,12 +215,11 @@ WRITE16_MEMBER(tetrisp2_state::rocknms_sub_vram_fg_w) } -static TILE_GET_INFO( get_tile_info_rocknms_sub_rot ) +TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_rocknms_sub_rot) { - tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); - UINT16 code_hi = state->m_rocknms_sub_vram_rot[ 2 * tile_index + 0]; - UINT16 code_lo = state->m_rocknms_sub_vram_rot[ 2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code_hi = m_rocknms_sub_vram_rot[ 2 * tile_index + 0]; + UINT16 code_lo = m_rocknms_sub_vram_rot[ 2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( 6, code_hi, code_lo & 0xf, @@ -245,18 +239,9 @@ VIDEO_START( tetrisp2 ) tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); state->m_flipscreen_old = -1; - state->m_tilemap_bg = tilemap_create( machine, get_tile_info_bg,TILEMAP_SCAN_ROWS, - - 16,16,NX_0,NY_0); - - state->m_tilemap_fg = tilemap_create( machine, get_tile_info_fg,TILEMAP_SCAN_ROWS, - - 8,8,NX_1,NY_1); - - state->m_tilemap_rot = tilemap_create( machine, get_tile_info_rot,TILEMAP_SCAN_ROWS, - - 16,16,NX_0*2,NY_0*2); - + state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,16,16,NX_0,NY_0); + state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8,8,NX_1,NY_1); + state->m_tilemap_rot = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),state),TILEMAP_SCAN_ROWS,16,16,NX_0*2,NY_0*2); state->m_tilemap_bg->set_transparent_pen(0); state->m_tilemap_fg->set_transparent_pen(0); state->m_tilemap_rot->set_transparent_pen(0); @@ -278,17 +263,9 @@ VIDEO_START( rockntread ) tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); state->m_flipscreen_old = -1; - state->m_tilemap_bg = tilemap_create( machine, get_tile_info_bg,TILEMAP_SCAN_ROWS, - - 16, 16, 256, 16); // rockn ms(main),1,2,3,4 - - state->m_tilemap_fg = tilemap_create( machine, get_tile_info_fg,TILEMAP_SCAN_ROWS, - - 8, 8, 64, 64); - - state->m_tilemap_rot = tilemap_create( machine, get_tile_info_rot,TILEMAP_SCAN_ROWS, - - 16, 16, 128, 128); + state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,16, 16, 256, 16); // rockn ms(main),1,2,3,4 + state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8, 8, 64, 64); + state->m_tilemap_rot = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),state),TILEMAP_SCAN_ROWS,16, 16, 128, 128); state->m_tilemap_bg->set_transparent_pen(0); state->m_tilemap_fg->set_transparent_pen(0); @@ -305,17 +282,9 @@ VIDEO_START( rocknms ) tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); VIDEO_START_CALL( rockntread ); - state->m_tilemap_sub_bg = tilemap_create(machine, get_tile_info_rocknms_sub_bg,TILEMAP_SCAN_ROWS, - - 16, 16, 32, 256); // rockn ms(sub) - - state->m_tilemap_sub_fg = tilemap_create(machine, get_tile_info_rocknms_sub_fg,TILEMAP_SCAN_ROWS, - - 8, 8, 64, 64); - - state->m_tilemap_sub_rot = tilemap_create( machine, get_tile_info_rocknms_sub_rot,TILEMAP_SCAN_ROWS, - - 16, 16, 128, 128); + state->m_tilemap_sub_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_bg),state),TILEMAP_SCAN_ROWS,16, 16, 32, 256); // rockn ms(sub) + state->m_tilemap_sub_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_fg),state),TILEMAP_SCAN_ROWS,8, 8, 64, 64); + state->m_tilemap_sub_rot = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_rot),state),TILEMAP_SCAN_ROWS,16, 16, 128, 128); state->m_tilemap_sub_bg->set_transparent_pen(0); state->m_tilemap_sub_fg->set_transparent_pen(0); @@ -760,18 +729,17 @@ SCREEN_UPDATE_RGB32( rocknms_right ) // Temporary hack for stpestag: unaltered ASCII bytes are written in the most significant byte // of code_hi, one of the CPUs probably reads them and writes the actual tile codes somewhere. -static TILE_GET_INFO( stepstag_get_tile_info_fg ) +TILE_GET_INFO_MEMBER(tetrisp2_state::stepstag_get_tile_info_fg) { - stepstag_state *state = machine.driver_data<stepstag_state>(); - UINT16 code_hi = state->m_vram_fg[ 2 * tile_index + 0]; - UINT16 code_lo = state->m_vram_fg[ 2 * tile_index + 1]; + UINT16 code_hi = m_vram_fg[ 2 * tile_index + 0]; + UINT16 code_lo = m_vram_fg[ 2 * tile_index + 1]; // ASCII -> tile codes code_hi = (code_hi & 0xff00) >> 8; code_hi = (code_hi & 0x0f) + (code_hi & 0xf0)*2; code_hi += 0xbd6c; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, code_hi, code_lo & 0xf, @@ -783,16 +751,10 @@ VIDEO_START( stepstag ) stepstag_state *state = machine.driver_data<stepstag_state>(); state->m_flipscreen_old = -1; - state->m_tilemap_bg = tilemap_create( machine, get_tile_info_bg,TILEMAP_SCAN_ROWS, - 16,16,NX_0,NY_0); - + state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,16,16,NX_0,NY_0); // Temporary hack - state->m_tilemap_fg = tilemap_create( machine, stepstag_get_tile_info_fg,TILEMAP_SCAN_ROWS, - 8,8,NX_1,NY_1); - - state->m_tilemap_rot = tilemap_create( machine, get_tile_info_rot,TILEMAP_SCAN_ROWS, - 16,16,NX_0*2,NY_0*2); - + state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::stepstag_get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8,8,NX_1,NY_1); + state->m_tilemap_rot = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),state),TILEMAP_SCAN_ROWS,16,16,NX_0*2,NY_0*2); state->m_tilemap_bg->set_transparent_pen(0); state->m_tilemap_fg->set_transparent_pen(0); state->m_tilemap_rot->set_transparent_pen(0); diff --git a/src/mame/video/thedeep.c b/src/mame/video/thedeep.c index e4f452b7209..a6afa9b2d74 100644 --- a/src/mame/video/thedeep.c +++ b/src/mame/video/thedeep.c @@ -38,29 +38,27 @@ ***************************************************************************/ -static TILEMAP_MAPPER( tilemap_scan_rows_back ) +TILEMAP_MAPPER_MEMBER(thedeep_state::tilemap_scan_rows_back) { return (col & 0x0f) + ((col & 0x10) << 5) + (row << 4); } -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(thedeep_state::get_tile_info_0) { - thedeep_state *state = machine.driver_data<thedeep_state>(); - UINT8 code = state->m_vram_0[ tile_index * 2 + 0 ]; - UINT8 color = state->m_vram_0[ tile_index * 2 + 1 ]; - SET_TILE_INFO( + UINT8 code = m_vram_0[ tile_index * 2 + 0 ]; + UINT8 color = m_vram_0[ tile_index * 2 + 1 ]; + SET_TILE_INFO_MEMBER( 1, code + (color << 8), (color & 0xf0) >> 4, TILE_FLIPX ); // why? } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(thedeep_state::get_tile_info_1) { - thedeep_state *state = machine.driver_data<thedeep_state>(); - UINT8 code = state->m_vram_1[ tile_index * 2 + 0 ]; - UINT8 color = state->m_vram_1[ tile_index * 2 + 1 ]; - SET_TILE_INFO( + UINT8 code = m_vram_1[ tile_index * 2 + 0 ]; + UINT8 color = m_vram_1[ tile_index * 2 + 1 ]; + SET_TILE_INFO_MEMBER( 2, code + (color << 8), (color & 0xf0) >> 4, @@ -103,8 +101,8 @@ PALETTE_INIT( thedeep ) VIDEO_START( thedeep ) { thedeep_state *state = machine.driver_data<thedeep_state>(); - state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0,tilemap_scan_rows_back,16,16,0x20,0x20); - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1,TILEMAP_SCAN_ROWS,8,8,0x20,0x20); + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thedeep_state::get_tile_info_0),state),tilemap_mapper_delegate(FUNC(thedeep_state::tilemap_scan_rows_back),state),16,16,0x20,0x20); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thedeep_state::get_tile_info_1),state),TILEMAP_SCAN_ROWS,8,8,0x20,0x20); state->m_tilemap_0->set_transparent_pen(0 ); state->m_tilemap_1->set_transparent_pen(0 ); diff --git a/src/mame/video/thepit.c b/src/mame/video/thepit.c index f7c80df659e..04c49cfe314 100644 --- a/src/mame/video/thepit.c +++ b/src/mame/video/thepit.c @@ -95,23 +95,21 @@ PALETTE_INIT( suprmous ) ***************************************************************************/ -static TILE_GET_INFO( solid_get_tile_info ) +TILE_GET_INFO_MEMBER(thepit_state::solid_get_tile_info) { - thepit_state *state = machine.driver_data<thepit_state>(); - UINT8 back_color = (state->m_colorram[tile_index] & 0x70) >> 4; - int priority = (back_color != 0) && ((state->m_colorram[tile_index] & 0x80) == 0); - tileinfo.pen_data = state->m_dummy_tile; + UINT8 back_color = (m_colorram[tile_index] & 0x70) >> 4; + int priority = (back_color != 0) && ((m_colorram[tile_index] & 0x80) == 0); + tileinfo.pen_data = m_dummy_tile; tileinfo.palette_base = back_color + 32; tileinfo.category = priority; } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(thepit_state::get_tile_info) { - thepit_state *state = machine.driver_data<thepit_state>(); - UINT8 fore_color = state->m_colorram[tile_index] % machine.gfx[0]->colors(); - UINT8 code = state->m_videoram[tile_index]; - SET_TILE_INFO(2 * state->m_graphics_bank, code, fore_color, 0); + UINT8 fore_color = m_colorram[tile_index] % machine().gfx[0]->colors(); + UINT8 code = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER(2 * m_graphics_bank, code, fore_color, 0); } @@ -125,9 +123,9 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( thepit ) { thepit_state *state = machine.driver_data<thepit_state>(); - state->m_solid_tilemap = tilemap_create(machine, solid_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_solid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thepit_state::solid_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); - 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(thepit_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_tilemap->set_transparent_pen(0); state->m_solid_tilemap->set_scroll_cols(32); diff --git a/src/mame/video/thoop2.c b/src/mame/video/thoop2.c index 2ba505b0e41..7f1d22538b1 100644 --- a/src/mame/video/thoop2.c +++ b/src/mame/video/thoop2.c @@ -36,29 +36,27 @@ 1 | x------- -------- | flip y */ -static TILE_GET_INFO( get_tile_info_thoop2_screen0 ) +TILE_GET_INFO_MEMBER(thoop2_state::get_tile_info_thoop2_screen0) { - thoop2_state *state = machine.driver_data<thoop2_state>(); - int data = state->m_videoram[tile_index << 1]; - int data2 = state->m_videoram[(tile_index << 1) + 1]; + int data = m_videoram[tile_index << 1]; + int data2 = m_videoram[(tile_index << 1) + 1]; int code = ((data & 0xfffc) >> 2) | ((data & 0x0003) << 14); tileinfo.category = (data2 >> 6) & 0x03; - SET_TILE_INFO(1, code, data2 & 0x3f, TILE_FLIPYX((data2 >> 14) & 0x03)); + SET_TILE_INFO_MEMBER(1, code, data2 & 0x3f, TILE_FLIPYX((data2 >> 14) & 0x03)); } -static TILE_GET_INFO( get_tile_info_thoop2_screen1 ) +TILE_GET_INFO_MEMBER(thoop2_state::get_tile_info_thoop2_screen1) { - thoop2_state *state = machine.driver_data<thoop2_state>(); - int data = state->m_videoram[(0x1000/2) + (tile_index << 1)]; - int data2 = state->m_videoram[(0x1000/2) + (tile_index << 1) + 1]; + int data = m_videoram[(0x1000/2) + (tile_index << 1)]; + int data2 = m_videoram[(0x1000/2) + (tile_index << 1) + 1]; int code = ((data & 0xfffc) >> 2) | ((data & 0x0003) << 14); tileinfo.category = (data2 >> 6) & 0x03; - SET_TILE_INFO(1, code, data2 & 0x3f, TILE_FLIPYX((data2 >> 14) & 0x03)); + SET_TILE_INFO_MEMBER(1, code, data2 & 0x3f, TILE_FLIPYX((data2 >> 14) & 0x03)); } /*************************************************************************** @@ -84,8 +82,8 @@ VIDEO_START( thoop2 ) thoop2_state *state = machine.driver_data<thoop2_state>(); int i; - state->m_pant[0] = tilemap_create(machine, get_tile_info_thoop2_screen0,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_pant[1] = tilemap_create(machine, get_tile_info_thoop2_screen1,TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thoop2_state::get_tile_info_thoop2_screen0),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thoop2_state::get_tile_info_thoop2_screen1),state),TILEMAP_SCAN_ROWS,16,16,32,32); state->m_pant[0]->set_transmask(0,0xff01,0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */ state->m_pant[1]->set_transmask(0,0xff01,0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */ diff --git a/src/mame/video/thunderj.c b/src/mame/video/thunderj.c index 6244d736a3b..6557e532f6b 100644 --- a/src/mame/video/thunderj.c +++ b/src/mame/video/thunderj.c @@ -17,37 +17,34 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(thunderj_state::get_alpha_tile_info) { - thunderj_state *state = machine.driver_data<thunderj_state>(); - UINT16 data = state->m_alpha[tile_index]; - int code = ((data & 0x200) ? (state->m_alpha_tile_bank * 0x200) : 0) + (data & 0x1ff); + UINT16 data = m_alpha[tile_index]; + int code = ((data & 0x200) ? (m_alpha_tile_bank * 0x200) : 0) + (data & 0x1ff); int color = ((data >> 10) & 0x0f) | ((data >> 9) & 0x20); int opaque = data & 0x8000; - SET_TILE_INFO(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(thunderj_state::get_playfield_tile_info) { - thunderj_state *state = machine.driver_data<thunderj_state>(); - UINT16 data1 = state->m_playfield[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] & 0xff; + UINT16 data1 = m_playfield[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] & 0xff; int code = data1 & 0x7fff; int color = 0x10 + (data2 & 0x0f); - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); tileinfo.category = (data2 >> 4) & 3; } -static TILE_GET_INFO( get_playfield2_tile_info ) +TILE_GET_INFO_MEMBER(thunderj_state::get_playfield2_tile_info) { - thunderj_state *state = machine.driver_data<thunderj_state>(); - UINT16 data1 = state->m_playfield2[tile_index]; - UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; + UINT16 data1 = m_playfield2[tile_index]; + UINT16 data2 = m_playfield_upper[tile_index] >> 8; int code = data1 & 0x7fff; int color = data2 & 0x0f; - SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); tileinfo.category = (data2 >> 4) & 3; } @@ -100,17 +97,17 @@ VIDEO_START( thunderj ) thunderj_state *state = machine.driver_data<thunderj_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thunderj_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the second playfield */ - state->m_playfield2_tilemap = tilemap_create(machine, get_playfield2_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thunderj_state::get_playfield2_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); state->m_playfield2_tilemap->set_transparent_pen(0); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thunderj_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/tiamc1.c b/src/mame/video/tiamc1.c index 8ce2a35e404..5c66fab78b0 100644 --- a/src/mame/video/tiamc1.c +++ b/src/mame/video/tiamc1.c @@ -111,16 +111,14 @@ PALETTE_INIT( tiamc1 ) } } -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(tiamc1_state::get_bg1_tile_info) { - tiamc1_state *state = machine.driver_data<tiamc1_state>(); - SET_TILE_INFO(0, state->m_tileram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(0, m_tileram[tile_index], 0, 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(tiamc1_state::get_bg2_tile_info) { - tiamc1_state *state = machine.driver_data<tiamc1_state>(); - SET_TILE_INFO(0, state->m_tileram[tile_index + 1024], 0, 0); + SET_TILE_INFO_MEMBER(0, m_tileram[tile_index + 1024], 0, 0); } VIDEO_START( tiamc1 ) @@ -140,10 +138,10 @@ VIDEO_START( tiamc1 ) state_save_register_global_pointer(machine, video_ram, 0x3040); - state->m_bg_tilemap1 = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, + state->m_bg_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - state->m_bg_tilemap2 = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, + state->m_bg_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_vshift = 0; diff --git a/src/mame/video/tigeroad.c b/src/mame/video/tigeroad.c index 10e5b9fb33f..9cfd543a195 100644 --- a/src/mame/video/tigeroad.c +++ b/src/mame/video/tigeroad.c @@ -109,35 +109,33 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tigeroad_state::get_bg_tile_info) { - tigeroad_state *state = machine.driver_data<tigeroad_state>(); - UINT8 *tilerom = state->memregion("gfx4")->base(); + UINT8 *tilerom = memregion("gfx4")->base(); int data = tilerom[tile_index]; int attr = tilerom[tile_index + 1]; - int code = data + ((attr & 0xc0) << 2) + (state->m_bgcharbank << 10); + int code = data + ((attr & 0xc0) << 2) + (m_bgcharbank << 10); int color = attr & 0x0f; int flags = (attr & 0x20) ? TILE_FLIPX : 0; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); tileinfo.group = (attr & 0x10) ? 1 : 0; } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tigeroad_state::get_fg_tile_info) { - tigeroad_state *state = machine.driver_data<tigeroad_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int data = videoram[tile_index]; int attr = data >> 8; int code = (data & 0xff) + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5); int color = attr & 0x0f; int flags = (attr & 0x10) ? TILE_FLIPY : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } -static TILEMAP_MAPPER( tigeroad_tilemap_scan ) +TILEMAP_MAPPER_MEMBER(tigeroad_state::tigeroad_tilemap_scan) { /* logical (col,row) -> memory offset */ return 2 * (col % 8) + 16 * ((127 - row) % 8) + 128 * (col / 8) + 2048 * ((127 - row) / 8); @@ -146,10 +144,10 @@ static TILEMAP_MAPPER( tigeroad_tilemap_scan ) VIDEO_START( tigeroad ) { tigeroad_state *state = machine.driver_data<tigeroad_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tigeroad_tilemap_scan, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tigeroad_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(tigeroad_state::tigeroad_tilemap_scan),state), 32, 32, 128, 128); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tigeroad_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap->set_transmask(0, 0xffff, 0); diff --git a/src/mame/video/timelimt.c b/src/mame/video/timelimt.c index de183903aa2..69e4375f03b 100644 --- a/src/mame/video/timelimt.c +++ b/src/mame/video/timelimt.c @@ -54,26 +54,24 @@ PALETTE_INIT( timelimt ) { ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(timelimt_state::get_bg_tile_info) { - timelimt_state *state = machine.driver_data<timelimt_state>(); - SET_TILE_INFO(1, state->m_bg_videoram[tile_index], 0, 0); + SET_TILE_INFO_MEMBER(1, m_bg_videoram[tile_index], 0, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(timelimt_state::get_fg_tile_info) { - timelimt_state *state = machine.driver_data<timelimt_state>(); - UINT8 *videoram = state->m_videoram; - SET_TILE_INFO(0, videoram[tile_index], 0, 0); + UINT8 *videoram = m_videoram; + SET_TILE_INFO_MEMBER(0, videoram[tile_index], 0, 0); } VIDEO_START( timelimt ) { timelimt_state *state = machine.driver_data<timelimt_state>(); - 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(timelimt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(timelimt_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/video/timeplt.c b/src/mame/video/timeplt.c index f0620e3880a..52b4ddaa5a7 100644 --- a/src/mame/video/timeplt.c +++ b/src/mame/video/timeplt.c @@ -90,28 +90,26 @@ PALETTE_INIT( timeplt ) * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(timeplt_state::get_tile_info) { - timeplt_state *state = machine.driver_data<timeplt_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + 8 * (attr & 0x20); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + 8 * (attr & 0x20); int color = attr & 0x1f; int flags = TILE_FLIPYX(attr >> 6); tileinfo.category = (attr & 0x10) >> 4; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } -static TILE_GET_INFO( get_chkun_tile_info ) +TILE_GET_INFO_MEMBER(timeplt_state::get_chkun_tile_info) { - timeplt_state *state = machine.driver_data<timeplt_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + ((attr & 0x60) << 3); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + ((attr & 0x60) << 3); int color = attr & 0x1f; int flags = 0;//TILE_FLIPYX(attr >> 6); tileinfo.category = (attr & 0x80) >> 7; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } @@ -125,13 +123,13 @@ static TILE_GET_INFO( get_chkun_tile_info ) VIDEO_START( timeplt ) { timeplt_state *state = machine.driver_data<timeplt_state>(); - 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(timeplt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } VIDEO_START( chkun ) { timeplt_state *state = machine.driver_data<timeplt_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_chkun_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(timeplt_state::get_chkun_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/tmnt.c b/src/mame/video/tmnt.c index 4c6fa025892..cea60ab83d5 100644 --- a/src/mame/video/tmnt.c +++ b/src/mame/video/tmnt.c @@ -2,25 +2,24 @@ #include "video/konicdev.h" #include "includes/tmnt.h" -static TILE_GET_INFO( glfgreat_get_roz_tile_info ) +TILE_GET_INFO_MEMBER(tmnt_state::glfgreat_get_roz_tile_info) { - tmnt_state *state = machine.driver_data<tmnt_state>(); - UINT8 *rom = state->memregion("user1")->base(); + UINT8 *rom = memregion("user1")->base(); int code; - tile_index += 0x40000 * state->m_glfgreat_roz_rom_bank; + tile_index += 0x40000 * m_glfgreat_roz_rom_bank; code = rom[tile_index + 0x80000] + 256 * rom[tile_index] + 256 * 256 * ((rom[tile_index / 4 + 0x100000] >> (2 * (tile_index & 3))) & 3); - SET_TILE_INFO(0, code & 0x3fff, code >> 14, 0); + SET_TILE_INFO_MEMBER(0, code & 0x3fff, code >> 14, 0); } -static TILE_GET_INFO( prmrsocr_get_roz_tile_info ) +TILE_GET_INFO_MEMBER(tmnt_state::prmrsocr_get_roz_tile_info) { - UINT8 *rom = machine.root_device().memregion("user1")->base(); + UINT8 *rom = machine().root_device().memregion("user1")->base(); int code = rom[tile_index + 0x20000] + 256 * rom[tile_index]; - SET_TILE_INFO(0, code & 0x1fff, code >> 13, 0); + SET_TILE_INFO_MEMBER(0, code & 0x1fff, code >> 13, 0); } @@ -274,7 +273,7 @@ VIDEO_START( glfgreat ) { tmnt_state *state = machine.driver_data<tmnt_state>(); - state->m_roz_tilemap = tilemap_create(machine, glfgreat_get_roz_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 512, 512); + state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tmnt_state::glfgreat_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 512, 512); state->m_roz_tilemap->set_transparent_pen(0); state->m_glfgreat_roz_rom_bank = 0; @@ -289,7 +288,7 @@ VIDEO_START( prmrsocr ) { tmnt_state *state = machine.driver_data<tmnt_state>(); - state->m_roz_tilemap = tilemap_create(machine, prmrsocr_get_roz_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 512, 256); + state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tmnt_state::prmrsocr_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 512, 256); state->m_roz_tilemap->set_transparent_pen(0); state->m_prmrsocr_sprite_bank = 0; diff --git a/src/mame/video/toaplan1.c b/src/mame/video/toaplan1.c index b50c7a85d27..fbeb19f3d4e 100644 --- a/src/mame/video/toaplan1.c +++ b/src/mame/video/toaplan1.c @@ -136,71 +136,67 @@ Abnormalities: ***************************************************************************/ -static TILE_GET_INFO( get_pf1_tile_info ) +TILE_GET_INFO_MEMBER(toaplan1_state::get_pf1_tile_info) { - toaplan1_state *state = machine.driver_data<toaplan1_state>(); int color, tile_number, attrib; - tile_number = state->m_pf1_tilevram16[2*tile_index+1] & 0x7fff; - attrib = state->m_pf1_tilevram16[2*tile_index]; + tile_number = m_pf1_tilevram16[2*tile_index+1] & 0x7fff; + attrib = m_pf1_tilevram16[2*tile_index]; color = attrib & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, color, 0); - if (state->m_pf1_tilevram16[2*tile_index+1] & 0x8000) tileinfo.pen_data = state->m_empty_tile; + if (m_pf1_tilevram16[2*tile_index+1] & 0x8000) tileinfo.pen_data = m_empty_tile; tileinfo.category = (attrib & 0xf000) >> 12; } -static TILE_GET_INFO( get_pf2_tile_info ) +TILE_GET_INFO_MEMBER(toaplan1_state::get_pf2_tile_info) { - toaplan1_state *state = machine.driver_data<toaplan1_state>(); int color, tile_number, attrib; - tile_number = state->m_pf2_tilevram16[2*tile_index+1] & 0x7fff; - attrib = state->m_pf2_tilevram16[2*tile_index]; + tile_number = m_pf2_tilevram16[2*tile_index+1] & 0x7fff; + attrib = m_pf2_tilevram16[2*tile_index]; color = attrib & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, color, 0); - if (state->m_pf2_tilevram16[2*tile_index+1] & 0x8000) tileinfo.pen_data = state->m_empty_tile; + if (m_pf2_tilevram16[2*tile_index+1] & 0x8000) tileinfo.pen_data = m_empty_tile; tileinfo.category = (attrib & 0xf000) >> 12; } -static TILE_GET_INFO( get_pf3_tile_info ) +TILE_GET_INFO_MEMBER(toaplan1_state::get_pf3_tile_info) { - toaplan1_state *state = machine.driver_data<toaplan1_state>(); int color, tile_number, attrib; - tile_number = state->m_pf3_tilevram16[2*tile_index+1] & 0x7fff; - attrib = state->m_pf3_tilevram16[2*tile_index]; + tile_number = m_pf3_tilevram16[2*tile_index+1] & 0x7fff; + attrib = m_pf3_tilevram16[2*tile_index]; color = attrib & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, color, 0); - if (state->m_pf3_tilevram16[2*tile_index+1] & 0x8000) tileinfo.pen_data = state->m_empty_tile; + if (m_pf3_tilevram16[2*tile_index+1] & 0x8000) tileinfo.pen_data = m_empty_tile; tileinfo.category = (attrib & 0xf000) >> 12; } -static TILE_GET_INFO( get_pf4_tile_info ) +TILE_GET_INFO_MEMBER(toaplan1_state::get_pf4_tile_info) { - toaplan1_state *state = machine.driver_data<toaplan1_state>(); int color, tile_number, attrib; - tile_number = state->m_pf4_tilevram16[2*tile_index+1] & 0x7fff; - attrib = state->m_pf4_tilevram16[2*tile_index]; + tile_number = m_pf4_tilevram16[2*tile_index+1] & 0x7fff; + attrib = m_pf4_tilevram16[2*tile_index]; color = attrib & 0x3f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, color, 0); - if (state->m_pf4_tilevram16[2*tile_index+1] & 0x8000) tileinfo.pen_data = state->m_empty_tile; + if (m_pf4_tilevram16[2*tile_index+1] & 0x8000) tileinfo.pen_data = m_empty_tile; tileinfo.category = (attrib & 0xf000) >> 12; } @@ -214,10 +210,10 @@ static void toaplan1_create_tilemaps(running_machine &machine) { toaplan1_state *state = machine.driver_data<toaplan1_state>(); - state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_pf3_tilemap = tilemap_create(machine, get_pf3_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - state->m_pf4_tilemap = tilemap_create(machine, get_pf4_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan1_state::get_pf1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan1_state::get_pf2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_pf3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan1_state::get_pf3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + state->m_pf4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan1_state::get_pf4_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_pf1_tilemap->set_transparent_pen(0); state->m_pf2_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c index 4aafc1c4b40..ed2828ddf99 100644 --- a/src/mame/video/toaplan2.c +++ b/src/mame/video/toaplan2.c @@ -34,15 +34,14 @@ ***************************************************************************/ -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(toaplan2_state::get_text_tile_info) { - toaplan2_state *state = machine.driver_data<toaplan2_state>(); int color, tile_number, attrib; - attrib = state->m_txvideoram16[tile_index]; + attrib = m_txvideoram16[tile_index]; tile_number = attrib & 0x3ff; color = ((attrib >> 10) | 0x40) & 0x7f; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile_number, color, @@ -60,7 +59,7 @@ static void truxton2_create_tx_tilemap(running_machine &machine) { toaplan2_state *state = machine.driver_data<toaplan2_state>(); - state->m_tx_tilemap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan2_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_tx_tilemap->set_scroll_rows(8*32); /* line scrolling */ state->m_tx_tilemap->set_scroll_cols(1); state->m_tx_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/toki.c b/src/mame/video/toki.c index fe201519a1f..fdf6edee0bd 100644 --- a/src/mame/video/toki.c +++ b/src/mame/video/toki.c @@ -32,46 +32,43 @@ WRITE16_MEMBER(toki_state::toki_control_w) COMBINE_DATA(&m_scrollram16[offset]); } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(toki_state::get_text_tile_info) { - toki_state *state = machine.driver_data<toki_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int tile = videoram[tile_index]; int color = (tile >> 12) & 0xf; tile &= 0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile, color, 0); } -static TILE_GET_INFO( get_back_tile_info ) +TILE_GET_INFO_MEMBER(toki_state::get_back_tile_info) { - toki_state *state = machine.driver_data<toki_state>(); - int tile = state->m_background1_videoram16[tile_index]; + int tile = m_background1_videoram16[tile_index]; int color = (tile >> 12) & 0xf; tile &= 0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile, color, 0); } -static TILE_GET_INFO( get_fore_tile_info ) +TILE_GET_INFO_MEMBER(toki_state::get_fore_tile_info) { - toki_state *state = machine.driver_data<toki_state>(); - int tile = state->m_background2_videoram16[tile_index]; + int tile = m_background2_videoram16[tile_index]; int color = (tile >> 12) & 0xf; tile &= 0xfff; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, tile, color, @@ -88,9 +85,9 @@ static TILE_GET_INFO( get_fore_tile_info ) VIDEO_START( toki ) { toki_state *state = machine.driver_data<toki_state>(); - state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,32,32); - state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); - state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toki_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32,32); + state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toki_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); + state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toki_state::get_fore_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); state->m_text_layer->set_transparent_pen(15); state->m_background_layer->set_transparent_pen(15); diff --git a/src/mame/video/toobin.c b/src/mame/video/toobin.c index 989163e8624..58f5371c3a9 100644 --- a/src/mame/video/toobin.c +++ b/src/mame/video/toobin.c @@ -17,24 +17,22 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(toobin_state::get_alpha_tile_info) { - toobin_state *state = machine.driver_data<toobin_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0x3ff; int color = (data >> 12) & 0x0f; - SET_TILE_INFO(2, code, color, (data >> 10) & 1); + SET_TILE_INFO_MEMBER(2, code, color, (data >> 10) & 1); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(toobin_state::get_playfield_tile_info) { - toobin_state *state = machine.driver_data<toobin_state>(); - UINT16 data1 = state->m_playfield[tile_index * 2]; - UINT16 data2 = state->m_playfield[tile_index * 2 + 1]; + UINT16 data1 = m_playfield[tile_index * 2]; + UINT16 data2 = m_playfield[tile_index * 2 + 1]; int code = data2 & 0x3fff; int color = data1 & 0x0f; - SET_TILE_INFO(0, code, color, TILE_FLIPYX(data2 >> 14)); + SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX(data2 >> 14)); tileinfo.category = (data1 >> 4) & 3; } @@ -87,13 +85,13 @@ VIDEO_START( toobin ) toobin_state *state = machine.driver_data<toobin_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_ROWS, 8,8, 128,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toobin_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 128,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,48); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toobin_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,48); state->m_alpha_tilemap->set_transparent_pen(0); /* allocate a playfield bitmap for rendering */ diff --git a/src/mame/video/toypop.c b/src/mame/video/toypop.c index 4da8dea2e44..87eb475176f 100644 --- a/src/mame/video/toypop.c +++ b/src/mame/video/toypop.c @@ -78,7 +78,7 @@ PALETTE_INIT( toypop ) ***************************************************************************/ /* convert from 32x32 to 36x28 */ -static TILEMAP_MAPPER( tilemap_scan ) +TILEMAP_MAPPER_MEMBER(toypop_state::tilemap_scan) { int offs; @@ -92,14 +92,13 @@ static TILEMAP_MAPPER( tilemap_scan ) return offs; } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(toypop_state::get_tile_info) { - toypop_state *state = machine.driver_data<toypop_state>(); - UINT8 attr = state->m_videoram[tile_index + 0x400]; - SET_TILE_INFO( + UINT8 attr = m_videoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index], - (attr & 0x3f) + 0x40 * state->m_palettebank, + m_videoram[tile_index], + (attr & 0x3f) + 0x40 * m_palettebank, 0); } @@ -114,7 +113,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( toypop ) { toypop_state *state = machine.driver_data<toypop_state>(); - state->m_bg_tilemap = tilemap_create(machine,get_tile_info,tilemap_scan,8,8,36,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toypop_state::get_tile_info),state), tilemap_mapper_delegate(FUNC(toypop_state::tilemap_scan),state),8,8,36,28); state->m_bg_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/tp84.c b/src/mame/video/tp84.c index 01685753907..634c902fcdf 100644 --- a/src/mame/video/tp84.c +++ b/src/mame/video/tp84.c @@ -119,36 +119,34 @@ READ8_MEMBER(tp84_state::tp84_scanline_r) } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tp84_state::get_bg_tile_info) { - tp84_state *state = machine.driver_data<tp84_state>(); - int code = ((state->m_bg_colorram[tile_index] & 0x30) << 4) | state->m_bg_videoram[tile_index]; - int color = ((*state->m_palette_bank & 0x07) << 6) | - ((*state->m_palette_bank & 0x18) << 1) | - (state->m_bg_colorram[tile_index] & 0x0f); - int flags = TILE_FLIPYX(state->m_bg_colorram[tile_index] >> 6); + int code = ((m_bg_colorram[tile_index] & 0x30) << 4) | m_bg_videoram[tile_index]; + int color = ((*m_palette_bank & 0x07) << 6) | + ((*m_palette_bank & 0x18) << 1) | + (m_bg_colorram[tile_index] & 0x0f); + int flags = TILE_FLIPYX(m_bg_colorram[tile_index] >> 6); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tp84_state::get_fg_tile_info) { - tp84_state *state = machine.driver_data<tp84_state>(); - int code = ((state->m_fg_colorram[tile_index] & 0x30) << 4) | state->m_fg_videoram[tile_index]; - int color = ((*state->m_palette_bank & 0x07) << 6) | - ((*state->m_palette_bank & 0x18) << 1) | - (state->m_fg_colorram[tile_index] & 0x0f); - int flags = TILE_FLIPYX(state->m_fg_colorram[tile_index] >> 6); + int code = ((m_fg_colorram[tile_index] & 0x30) << 4) | m_fg_videoram[tile_index]; + int color = ((*m_palette_bank & 0x07) << 6) | + ((*m_palette_bank & 0x18) << 1) | + (m_fg_colorram[tile_index] & 0x0f); + int flags = TILE_FLIPYX(m_fg_colorram[tile_index] >> 6); - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( tp84 ) { tp84_state *state = machine.driver_data<tp84_state>(); - 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(tp84_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(tp84_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/trackfld.c b/src/mame/video/trackfld.c index e2a38cb803a..1e2ffd822cd 100644 --- a/src/mame/video/trackfld.c +++ b/src/mame/video/trackfld.c @@ -158,24 +158,23 @@ WRITE8_MEMBER(trackfld_state::atlantol_gfxbank_w) } } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(trackfld_state::get_bg_tile_info) { - trackfld_state *state = machine.driver_data<trackfld_state>(); - int attr = state->m_colorram[tile_index]; - int code = state->m_videoram[tile_index] + 4 * (attr & 0xc0); + int attr = m_colorram[tile_index]; + int code = m_videoram[tile_index] + 4 * (attr & 0xc0); int color = attr & 0x0f; int flags = ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x20) ? TILE_FLIPY : 0); - if (state->m_bg_bank) + if (m_bg_bank) code |= 0x400; - SET_TILE_INFO(1, code, color, flags); + SET_TILE_INFO_MEMBER(1, code, color, flags); } VIDEO_START( trackfld ) { trackfld_state *state = machine.driver_data<trackfld_state>(); - 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(trackfld_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_scroll_rows(32); state->m_sprites_gfx_banked = 0; } diff --git a/src/mame/video/travrusa.c b/src/mame/video/travrusa.c index 166005f1e76..d2d7503ffa3 100644 --- a/src/mame/video/travrusa.c +++ b/src/mame/video/travrusa.c @@ -197,17 +197,16 @@ PALETTE_INIT( shtrider ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(travrusa_state::get_tile_info) { - travrusa_state *state = machine.driver_data<travrusa_state>(); - UINT8 attr = state->m_videoram[2 * tile_index + 1]; + UINT8 attr = m_videoram[2 * tile_index + 1]; int flags = TILE_FLIPXY((attr & 0x30) >> 4); tileinfo.group = ((attr & 0x0f) == 0x0f) ? 1 : 0; /* tunnels */ - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[2 * tile_index] + ((attr & 0xc0) << 2), + m_videoram[2 * tile_index] + ((attr & 0xc0) << 2), attr & 0x0f, flags); } @@ -226,7 +225,7 @@ VIDEO_START( travrusa ) state->save_item(NAME(state->m_scrollx)); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(travrusa_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */ state->m_bg_tilemap->set_transmask(1, 0x3f, 0xc0); /* split type 1 has pens 6 and 7 opaque - tunnels */ diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c index 54ffce7efa8..f60ee819a46 100644 --- a/src/mame/video/triplhnt.c +++ b/src/mame/video/triplhnt.c @@ -8,12 +8,11 @@ Atari Triple Hunt video emulation #include "includes/triplhnt.h" -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(triplhnt_state::get_tile_info) { - triplhnt_state *state = machine.driver_data<triplhnt_state>(); - int code = state->m_playfield_ram[tile_index] & 0x3f; + int code = m_playfield_ram[tile_index] & 0x3f; - SET_TILE_INFO(2, code, code == 0x3f ? 1 : 0, 0); + SET_TILE_INFO_MEMBER(2, code, code == 0x3f ? 1 : 0, 0); } @@ -22,7 +21,7 @@ VIDEO_START( triplhnt ) triplhnt_state *state = machine.driver_data<triplhnt_state>(); machine.primary_screen->register_screen_bitmap(state->m_helper); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(triplhnt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); } diff --git a/src/mame/video/trucocl.c b/src/mame/video/trucocl.c index bb8d72c4294..579efd4af64 100644 --- a/src/mame/video/trucocl.c +++ b/src/mame/video/trucocl.c @@ -57,25 +57,24 @@ WRITE8_MEMBER(trucocl_state::trucocl_colorram_w) m_bg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(trucocl_state::get_bg_tile_info) { - trucocl_state *state = machine.driver_data<trucocl_state>(); - int gfxsel = state->m_colorram[tile_index] & 1; - int bank = ( ( state->m_colorram[tile_index] >> 2 ) & 0x07 ); - int code = state->m_videoram[tile_index]; - int colour = (state->m_colorram[tile_index] & 2) >> 1; + int gfxsel = m_colorram[tile_index] & 1; + int bank = ( ( m_colorram[tile_index] >> 2 ) & 0x07 ); + int code = m_videoram[tile_index]; + int colour = (m_colorram[tile_index] & 2) >> 1; code |= ( bank & 1 ) << 10; code |= ( bank & 2 ) << 8; code += ( bank & 4 ) << 6; - SET_TILE_INFO(gfxsel,code,colour,0); + SET_TILE_INFO_MEMBER(gfxsel,code,colour,0); } VIDEO_START( trucocl ) { trucocl_state *state = machine.driver_data<trucocl_state>(); - 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(trucocl_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 ); } SCREEN_UPDATE_IND16( trucocl ) diff --git a/src/mame/video/tryout.c b/src/mame/video/tryout.c index e55113a0fdc..cade4f1f8a0 100644 --- a/src/mame/video/tryout.c +++ b/src/mame/video/tryout.c @@ -38,10 +38,9 @@ PALETTE_INIT( tryout ) } } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tryout_state::get_fg_tile_info) { - tryout_state *state = machine.driver_data<tryout_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code, attr, color; code = videoram[tile_index]; @@ -49,13 +48,12 @@ static TILE_GET_INFO( get_fg_tile_info ) code |= ((attr & 0x03) << 8); color = ((attr & 0x4)>>2)+6; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tryout_state::get_bg_tile_info) { - tryout_state *state = machine.driver_data<tryout_state>(); - SET_TILE_INFO(2, state->m_vram[tile_index] & 0x7f, 2, 0); + SET_TILE_INFO_MEMBER(2, m_vram[tile_index] & 0x7f, 2, 0); } READ8_MEMBER(tryout_state::tryout_vram_r) @@ -148,12 +146,12 @@ WRITE8_MEMBER(tryout_state::tryout_flipscreen_w) flip_screen_set(data & 1); } -static TILEMAP_MAPPER( get_fg_memory_offset ) +TILEMAP_MAPPER_MEMBER(tryout_state::get_fg_memory_offset) { return (row ^ 0x1f) + (col << 5); } -static TILEMAP_MAPPER( get_bg_memory_offset ) +TILEMAP_MAPPER_MEMBER(tryout_state::get_bg_memory_offset) { int a; // if (col&0x20) @@ -168,8 +166,8 @@ static TILEMAP_MAPPER( get_bg_memory_offset ) VIDEO_START( tryout ) { tryout_state *state = machine.driver_data<tryout_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,get_fg_memory_offset,8,8,32,32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,get_bg_memory_offset,16,16,64,16); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tryout_state::get_fg_tile_info),state),tilemap_mapper_delegate(FUNC(tryout_state::get_fg_memory_offset),state),8,8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tryout_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(tryout_state::get_bg_memory_offset),state),16,16,64,16); state->m_vram=auto_alloc_array(machine, UINT8, 8 * 0x800); state->m_vram_gfx=auto_alloc_array(machine, UINT8, 0x6000); diff --git a/src/mame/video/tsamurai.c b/src/mame/video/tsamurai.c index 582cf257079..3d00d6fb44a 100644 --- a/src/mame/video/tsamurai.c +++ b/src/mame/video/tsamurai.c @@ -12,30 +12,28 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(tsamurai_state::get_bg_tile_info) { - tsamurai_state *state = machine.driver_data<tsamurai_state>(); - UINT8 attributes = state->m_bg_videoram[2*tile_index+1]; - int tile_number = state->m_bg_videoram[2*tile_index]; + UINT8 attributes = m_bg_videoram[2*tile_index+1]; + int tile_number = m_bg_videoram[2*tile_index]; tile_number += (( attributes & 0xc0 ) >> 6 ) * 256; /* legacy */ tile_number += (( attributes & 0x20 ) >> 5 ) * 1024; /* Mission 660 add-on*/ - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, attributes & 0x1f, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tsamurai_state::get_fg_tile_info) { - tsamurai_state *state = machine.driver_data<tsamurai_state>(); - int tile_number = state->m_videoram[tile_index]; - if (state->m_textbank1 & 0x01) tile_number += 256; /* legacy */ - if (state->m_textbank2 & 0x01) tile_number += 512; /* Mission 660 add-on */ - SET_TILE_INFO( + int tile_number = m_videoram[tile_index]; + if (m_textbank1 & 0x01) tile_number += 256; /* legacy */ + if (m_textbank2 & 0x01) tile_number += 512; /* Mission 660 add-on */ + SET_TILE_INFO_MEMBER( 1, tile_number, - state->m_colorram[((tile_index&0x1f)*2)+1] & 0x1f, + m_colorram[((tile_index&0x1f)*2)+1] & 0x1f, 0); } @@ -49,8 +47,8 @@ static TILE_GET_INFO( get_fg_tile_info ) VIDEO_START( tsamurai ) { tsamurai_state *state = machine.driver_data<tsamurai_state>(); - state->m_background = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); - state->m_foreground = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_background->set_transparent_pen(0); state->m_foreground->set_transparent_pen(0); @@ -234,13 +232,12 @@ WRITE8_MEMBER(tsamurai_state::vsgongf_color_w) } -static TILE_GET_INFO( get_vsgongf_tile_info ) +TILE_GET_INFO_MEMBER(tsamurai_state::get_vsgongf_tile_info) { - tsamurai_state *state = machine.driver_data<tsamurai_state>(); - int tile_number = state->m_videoram[tile_index]; - int color = state->m_vsgongf_color&0x1f; - if( state->m_textbank1 ) tile_number += 0x100; - SET_TILE_INFO( + int tile_number = m_videoram[tile_index]; + int color = m_vsgongf_color&0x1f; + if( m_textbank1 ) tile_number += 0x100; + SET_TILE_INFO_MEMBER( 1, tile_number, color, @@ -250,7 +247,7 @@ static TILE_GET_INFO( get_vsgongf_tile_info ) VIDEO_START( vsgongf ) { tsamurai_state *state = machine.driver_data<tsamurai_state>(); - state->m_foreground = tilemap_create(machine, get_vsgongf_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_vsgongf_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); } SCREEN_UPDATE_IND16( vsgongf ) diff --git a/src/mame/video/tumbleb.c b/src/mame/video/tumbleb.c index e18c98b6dff..b1281822308 100644 --- a/src/mame/video/tumbleb.c +++ b/src/mame/video/tumbleb.c @@ -121,7 +121,7 @@ WRITE16_MEMBER(tumbleb_state::pangpang_pf2_data_w) /******************************************************************************/ -static TILEMAP_MAPPER( tumblep_scan ) +TILEMAP_MAPPER_MEMBER(tumbleb_state::tumblep_scan) { /* logical (col,row) -> memory offset */ return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x60) << 5); @@ -139,17 +139,16 @@ INLINE void get_bg_tile_info( running_machine &machine, tile_data &tileinfo, int 0); } -static TILE_GET_INFO( get_bg1_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); get_bg_tile_info(machine, tileinfo, tile_index, 2, state->m_pf1_data); } -static TILE_GET_INFO( get_bg2_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); get_bg_tile_info(machine, tileinfo, tile_index, 1, state->m_pf2_data); } +TILE_GET_INFO_MEMBER(tumbleb_state::get_bg1_tile_info){ get_bg_tile_info(machine(), tileinfo, tile_index, 2, m_pf1_data); } +TILE_GET_INFO_MEMBER(tumbleb_state::get_bg2_tile_info){ get_bg_tile_info(machine(), tileinfo, tile_index, 1, m_pf2_data); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tumbleb_state::get_fg_tile_info) { - tumbleb_state *state = machine.driver_data<tumbleb_state>(); - int data = state->m_pf1_data[tile_index]; + int data = m_pf1_data[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - (data & 0x0fff) | state->m_tilebank, + (data & 0x0fff) | m_tilebank, data >> 12, 0); } @@ -166,16 +165,15 @@ INLINE void get_fncywld_bg_tile_info( running_machine &machine, tile_data &tilei 0); } -static TILE_GET_INFO( get_fncywld_bg1_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); get_fncywld_bg_tile_info(machine, tileinfo, tile_index, 2, state->m_pf1_data); } -static TILE_GET_INFO( get_fncywld_bg2_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); get_fncywld_bg_tile_info(machine, tileinfo, tile_index, 1, state->m_pf2_data); } +TILE_GET_INFO_MEMBER(tumbleb_state::get_fncywld_bg1_tile_info){ get_fncywld_bg_tile_info(machine(), tileinfo, tile_index, 2, m_pf1_data); } +TILE_GET_INFO_MEMBER(tumbleb_state::get_fncywld_bg2_tile_info){ get_fncywld_bg_tile_info(machine(), tileinfo, tile_index, 1, m_pf2_data); } -static TILE_GET_INFO( get_fncywld_fg_tile_info ) +TILE_GET_INFO_MEMBER(tumbleb_state::get_fncywld_fg_tile_info) { - tumbleb_state *state = machine.driver_data<tumbleb_state>(); - int data = state->m_pf1_data[tile_index * 2]; - int attr = state->m_pf1_data[tile_index * 2 + 1]; + int data = m_pf1_data[tile_index * 2]; + int attr = m_pf1_data[tile_index * 2 + 1]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, data & 0x1fff, attr & 0x1f, @@ -208,16 +206,15 @@ INLINE void pangpang_get_bg2x_tile_info( running_machine &machine, tile_data &ti } -static TILE_GET_INFO( pangpang_get_bg1_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); pangpang_get_bg_tile_info(machine, tileinfo, tile_index, 2, state->m_pf1_data); } -static TILE_GET_INFO( pangpang_get_bg2_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); pangpang_get_bg2x_tile_info(machine, tileinfo, tile_index, 1, state->m_pf2_data); } +TILE_GET_INFO_MEMBER(tumbleb_state::pangpang_get_bg1_tile_info){ pangpang_get_bg_tile_info(machine(), tileinfo, tile_index, 2, m_pf1_data); } +TILE_GET_INFO_MEMBER(tumbleb_state::pangpang_get_bg2_tile_info){ pangpang_get_bg2x_tile_info(machine(), tileinfo, tile_index, 1, m_pf2_data); } -static TILE_GET_INFO( pangpang_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tumbleb_state::pangpang_get_fg_tile_info) { - tumbleb_state *state = machine.driver_data<tumbleb_state>(); - int data = state->m_pf1_data[tile_index * 2 + 1]; - int attr = state->m_pf1_data[tile_index * 2]; + int data = m_pf1_data[tile_index * 2 + 1]; + int attr = m_pf1_data[tile_index * 2]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, data & 0x1fff, (attr >> 12)& 0x1f, @@ -240,9 +237,9 @@ VIDEO_START( pangpang ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); - state->m_pf1_tilemap = tilemap_create(machine, pangpang_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_pf1_alt_tilemap = tilemap_create(machine, pangpang_get_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); - state->m_pf2_tilemap = tilemap_create(machine, pangpang_get_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); state->m_pf1_tilemap->set_transparent_pen(0); state->m_pf1_alt_tilemap->set_transparent_pen(0); @@ -255,9 +252,9 @@ VIDEO_START( tumblepb ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); - state->m_pf1_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_pf1_alt_tilemap = tilemap_create(machine, get_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); - state->m_pf2_tilemap = tilemap_create(machine, get_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); state->m_pf1_tilemap->set_transparent_pen(0); state->m_pf1_alt_tilemap->set_transparent_pen(0); @@ -269,9 +266,9 @@ VIDEO_START( sdfight ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); - state->m_pf1_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 64*64 to prevent bad tilemap wrapping? - check real behavior - state->m_pf1_alt_tilemap = tilemap_create(machine, get_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); - state->m_pf2_tilemap = tilemap_create(machine, get_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 64*64 to prevent bad tilemap wrapping? - check real behavior + state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); state->m_pf1_tilemap->set_transparent_pen(0); state->m_pf1_alt_tilemap->set_transparent_pen(0); @@ -283,9 +280,9 @@ VIDEO_START( fncywld ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); - state->m_pf1_tilemap = tilemap_create(machine, get_fncywld_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_pf1_alt_tilemap = tilemap_create(machine, get_fncywld_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); - state->m_pf2_tilemap = tilemap_create(machine, get_fncywld_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); state->m_pf1_tilemap->set_transparent_pen(15); state->m_pf1_alt_tilemap->set_transparent_pen(15); @@ -298,9 +295,9 @@ VIDEO_START( suprtrio ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); - state->m_pf1_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - state->m_pf1_alt_tilemap = tilemap_create(machine, get_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); - state->m_pf2_tilemap = tilemap_create(machine, get_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); + state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); + state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); state->m_pf1_alt_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/tunhunt.c b/src/mame/video/tunhunt.c index 237c9eb15b7..b88c24e30d4 100644 --- a/src/mame/video/tunhunt.c +++ b/src/mame/video/tunhunt.c @@ -55,15 +55,14 @@ WRITE8_MEMBER(tunhunt_state::tunhunt_videoram_w) m_fg_tilemap->mark_tile_dirty(offset); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(tunhunt_state::get_fg_tile_info) { - tunhunt_state *state = machine.driver_data<tunhunt_state>(); - int attr = state->m_videoram[tile_index]; + int attr = m_videoram[tile_index]; int code = attr & 0x3f; int color = attr >> 6; int flags = color ? TILE_FORCE_LAYER0 : 0; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( tunhunt ) @@ -77,7 +76,7 @@ VIDEO_START( tunhunt ) state->m_tmpbitmap.allocate(256, 64, machine.primary_screen->format()); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tunhunt_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_scrollx(0, 64); diff --git a/src/mame/video/turbo.c b/src/mame/video/turbo.c index c6bc6aa58f8..7e763bcb612 100644 --- a/src/mame/video/turbo.c +++ b/src/mame/video/turbo.c @@ -165,11 +165,10 @@ PALETTE_INIT( buckrog ) * *************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(turbo_state::get_fg_tile_info) { - turbo_state *state = machine.driver_data<turbo_state>(); - int code = state->m_videoram[tile_index]; - SET_TILE_INFO(0, code, code >> 2, 0); + int code = m_videoram[tile_index]; + SET_TILE_INFO_MEMBER(0, code, code >> 2, 0); } @@ -178,7 +177,7 @@ VIDEO_START( turbo ) turbo_state *state = machine.driver_data<turbo_state>(); /* initialize the foreground tilemap */ - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(turbo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); } @@ -187,7 +186,7 @@ VIDEO_START( buckrog ) turbo_state *state = machine.driver_data<turbo_state>(); /* initialize the foreground tilemap */ - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(turbo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); /* allocate the bitmap RAM */ state->m_buckrog_bitmap_ram = auto_alloc_array(machine, UINT8, 0xe000); diff --git a/src/mame/video/twin16.c b/src/mame/video/twin16.c index 4b15c6392d6..9f8480a7aa4 100644 --- a/src/mame/video/twin16.c +++ b/src/mame/video/twin16.c @@ -471,10 +471,9 @@ static void draw_layer( running_machine &machine, bitmap_ind16 &bitmap, int opaq } } -static TILE_GET_INFO( get_text_tile_info ) +TILE_GET_INFO_MEMBER(twin16_state::get_text_tile_info) { - twin16_state *state = machine.driver_data<twin16_state>(); - const UINT16 *source = state->m_text_ram; + const UINT16 *source = m_text_ram; int attr = source[tile_index]; /* fedcba9876543210 -x-------------- yflip @@ -489,13 +488,13 @@ static TILE_GET_INFO( get_text_tile_info ) if (attr&0x2000) flags|=TILE_FLIPX; if (attr&0x4000) flags|=TILE_FLIPY; - SET_TILE_INFO(0, code, color, flags); + SET_TILE_INFO_MEMBER(0, code, color, flags); } VIDEO_START( twin16 ) { twin16_state *state = machine.driver_data<twin16_state>(); - state->m_text_tilemap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(twin16_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_text_tilemap->set_transparent_pen(0); palette_set_shadow_factor(machine,0.4); // screenshots estimate diff --git a/src/mame/video/twincobr.c b/src/mame/video/twincobr.c index a42bcb522a6..361843e9a28 100644 --- a/src/mame/video/twincobr.c +++ b/src/mame/video/twincobr.c @@ -40,45 +40,42 @@ const mc6845_interface twincobr_mc6845_intf = Callbacks for the TileMap code ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(twincobr_state::get_bg_tile_info) { - twincobr_state *state = machine.driver_data<twincobr_state>(); int code, tile_number, color; - code = state->m_bgvideoram16[tile_index+state->m_bg_ram_bank]; + code = m_bgvideoram16[tile_index+m_bg_ram_bank]; tile_number = code & 0x0fff; color = (code & 0xf000) >> 12; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile_number, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(twincobr_state::get_fg_tile_info) { - twincobr_state *state = machine.driver_data<twincobr_state>(); int code, tile_number, color; - code = state->m_fgvideoram16[tile_index]; - tile_number = (code & 0x0fff) | state->m_fg_rom_bank; + code = m_fgvideoram16[tile_index]; + tile_number = (code & 0x0fff) | m_fg_rom_bank; color = (code & 0xf000) >> 12; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile_number, color, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(twincobr_state::get_tx_tile_info) { - twincobr_state *state = machine.driver_data<twincobr_state>(); int code, tile_number, color; - code = state->m_txvideoram16[tile_index]; + code = m_txvideoram16[tile_index]; tile_number = code & 0x07ff; color = (code & 0xf800) >> 11; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tile_number, color, @@ -93,9 +90,9 @@ static void twincobr_create_tilemaps(running_machine &machine) { twincobr_state *state = machine.driver_data<twincobr_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); - 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(twincobr_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(twincobr_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(twincobr_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); state->m_fg_tilemap->set_transparent_pen(0); state->m_tx_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c index 2a7115d51e6..c3c71c63723 100644 --- a/src/mame/video/ultratnk.c +++ b/src/mame/video/ultratnk.c @@ -34,16 +34,15 @@ PALETTE_INIT( ultratnk ) } -static TILE_GET_INFO( ultratnk_tile_info ) +TILE_GET_INFO_MEMBER(ultratnk_state::ultratnk_tile_info) { - ultratnk_state *state = machine.driver_data<ultratnk_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; UINT8 code = videoram[tile_index]; if (code & 0x20) - SET_TILE_INFO(0, code, code >> 6, 0); + SET_TILE_INFO_MEMBER(0, code, code >> 6, 0); else - SET_TILE_INFO(0, code, 4, 0); + SET_TILE_INFO_MEMBER(0, code, 4, 0); } @@ -52,7 +51,7 @@ VIDEO_START( ultratnk ) ultratnk_state *state = machine.driver_data<ultratnk_state>(); machine.primary_screen->register_screen_bitmap(state->m_helper); - state->m_playfield = tilemap_create(machine, ultratnk_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + state->m_playfield = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ultratnk_state::ultratnk_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/unico.c b/src/mame/video/unico.c index 563b239ef87..4aec338de36 100644 --- a/src/mame/video/unico.c +++ b/src/mame/video/unico.c @@ -88,20 +88,20 @@ WRITE32_MEMBER(unico_state::unico_palette32_w) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(unico_state::get_tile_info) { UINT16 *vram = (UINT16 *)param; UINT16 code = vram[2 * tile_index + 0 ]; UINT16 attr = vram[2 * tile_index + 1 ]; - SET_TILE_INFO(1, code, attr & 0x1f, TILE_FLIPYX( attr >> 5 )); + SET_TILE_INFO_MEMBER(1, code, attr & 0x1f, TILE_FLIPYX( attr >> 5 )); } -static TILE_GET_INFO( get_tile_info32 ) +TILE_GET_INFO_MEMBER(unico_state::get_tile_info32) { UINT32 *vram = (UINT32 *)param; UINT16 code = vram[tile_index] >> 16; UINT16 attr = vram[tile_index] & 0xff; - SET_TILE_INFO(1, code, attr & 0x1f, TILE_FLIPYX( attr >> 5 )); + SET_TILE_INFO_MEMBER(1, code, attr & 0x1f, TILE_FLIPYX( attr >> 5 )); } WRITE16_MEMBER(unico_state::unico_vram_w) @@ -134,13 +134,13 @@ WRITE32_MEMBER(unico_state::unico_vram32_w) VIDEO_START( unico ) { unico_state *state = machine.driver_data<unico_state>(); - state->m_tilemap[0] = tilemap_create( machine, get_tile_info,TILEMAP_SCAN_ROWS, + state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),state),TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); - state->m_tilemap[1] = tilemap_create( machine, get_tile_info,TILEMAP_SCAN_ROWS, + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),state),TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); - state->m_tilemap[2] = tilemap_create( machine, get_tile_info,TILEMAP_SCAN_ROWS, + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),state),TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); state->m_tilemap[0]->set_user_data(&state->m_vram[0x8000/2]); @@ -166,13 +166,13 @@ VIDEO_START( unico ) VIDEO_START( zeropnt2 ) { unico_state *state = machine.driver_data<unico_state>(); - state->m_tilemap[0] = tilemap_create( machine, get_tile_info32,TILEMAP_SCAN_ROWS, + state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info32),state),TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); - state->m_tilemap[1] = tilemap_create( machine, get_tile_info32,TILEMAP_SCAN_ROWS, + state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info32),state),TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); - state->m_tilemap[2] = tilemap_create( machine, get_tile_info32,TILEMAP_SCAN_ROWS, + state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info32),state),TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); state->m_tilemap[0]->set_user_data(&state->m_vram32[0x8000/4]); diff --git a/src/mame/video/usgames.c b/src/mame/video/usgames.c index a4466774b6c..b38d98ae9ff 100644 --- a/src/mame/video/usgames.c +++ b/src/mame/video/usgames.c @@ -31,21 +31,20 @@ PALETTE_INIT(usgames) -static TILE_GET_INFO( get_usgames_tile_info ) +TILE_GET_INFO_MEMBER(usgames_state::get_usgames_tile_info) { - usgames_state *state = machine.driver_data<usgames_state>(); int tileno, colour; - tileno = state->m_videoram[tile_index*2]; - colour = state->m_videoram[tile_index*2+1]; + tileno = m_videoram[tile_index*2]; + colour = m_videoram[tile_index*2+1]; - SET_TILE_INFO(0,tileno,colour,0); + SET_TILE_INFO_MEMBER(0,tileno,colour,0); } VIDEO_START(usgames) { usgames_state *state = machine.driver_data<usgames_state>(); - state->m_tilemap = tilemap_create(machine, get_usgames_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(usgames_state::get_usgames_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); machine.gfx[0]->set_source(state->m_charram); } diff --git a/src/mame/video/vastar.c b/src/mame/video/vastar.c index aa6d4521fb3..82f5a18c9f1 100644 --- a/src/mame/video/vastar.c +++ b/src/mame/video/vastar.c @@ -16,45 +16,42 @@ ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(vastar_state::get_fg_tile_info) { - vastar_state *state = machine.driver_data<vastar_state>(); - UINT8 *videoram = state->m_fgvideoram; + UINT8 *videoram = m_fgvideoram; int code, color; code = videoram[tile_index + 0x800] | (videoram[tile_index + 0x400] << 8); color = videoram[tile_index]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, code, color & 0x3f, 0); } -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(vastar_state::get_bg1_tile_info) { - vastar_state *state = machine.driver_data<vastar_state>(); - UINT8 *videoram = state->m_bg1videoram; + UINT8 *videoram = m_bg1videoram; int code, color; code = videoram[tile_index + 0x800] | (videoram[tile_index] << 8); color = videoram[tile_index + 0xc00]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 4, code, color & 0x3f, 0); } -static TILE_GET_INFO( get_bg2_tile_info ) +TILE_GET_INFO_MEMBER(vastar_state::get_bg2_tile_info) { - vastar_state *state = machine.driver_data<vastar_state>(); - UINT8 *videoram = state->m_bg2videoram; + UINT8 *videoram = m_bg2videoram; int code, color; code = videoram[tile_index + 0x800] | (videoram[tile_index] << 8); color = videoram[tile_index + 0xc00]; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, code, color & 0x3f, @@ -72,9 +69,9 @@ VIDEO_START( vastar ) { vastar_state *state = machine.driver_data<vastar_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS,8,8,32,32); - state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); - state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); + state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_bg2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_fg_tilemap->set_transparent_pen(0); state->m_bg1_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/vball.c b/src/mame/video/vball.c index b00e7388f81..ea232120292 100644 --- a/src/mame/video/vball.c +++ b/src/mame/video/vball.c @@ -19,20 +19,19 @@ ***************************************************************************/ -static TILEMAP_MAPPER( background_scan ) +TILEMAP_MAPPER_MEMBER(vball_state::background_scan) { /* logical (col,row) -> memory offset */ return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) <<6); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(vball_state::get_bg_tile_info) { - vball_state *state = machine.driver_data<vball_state>(); - UINT8 code = state->m_vb_videoram[tile_index]; - UINT8 attr = state->m_vb_attribram[tile_index]; - SET_TILE_INFO( + UINT8 code = m_vb_videoram[tile_index]; + UINT8 attr = m_vb_attribram[tile_index]; + SET_TILE_INFO_MEMBER( 0, - code + ((attr & 0x1f) << 8) + (state->m_gfxset<<8), + code + ((attr & 0x1f) << 8) + (m_gfxset<<8), (attr >> 5) & 0x7, 0); } @@ -41,7 +40,7 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( vb ) { vball_state *state = machine.driver_data<vball_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,background_scan, 8, 8,64,64); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vball_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(vball_state::background_scan),state), 8, 8,64,64); state->m_bg_tilemap->set_scroll_rows(32); state->m_gfxset=0; diff --git a/src/mame/video/videopin.c b/src/mame/video/videopin.c index f73e746381b..994cf906058 100644 --- a/src/mame/video/videopin.c +++ b/src/mame/video/videopin.c @@ -11,25 +11,24 @@ -static TILEMAP_MAPPER( get_memory_offset ) +TILEMAP_MAPPER_MEMBER(videopin_state::get_memory_offset) { return num_rows * ((col + 16) % 48) + row; } -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(videopin_state::get_tile_info) { - videopin_state *state = machine.driver_data<videopin_state>(); - UINT8 code = state->m_video_ram[tile_index]; + UINT8 code = m_video_ram[tile_index]; - SET_TILE_INFO(0, code, 0, (code & 0x40) ? TILE_FLIPY : 0); + SET_TILE_INFO_MEMBER(0, code, 0, (code & 0x40) ? TILE_FLIPY : 0); } VIDEO_START( videopin ) { videopin_state *state = machine.driver_data<videopin_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, get_memory_offset, 8, 8, 48, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(videopin_state::get_tile_info),state), tilemap_mapper_delegate(FUNC(videopin_state::get_memory_offset),state), 8, 8, 48, 32); } diff --git a/src/mame/video/vindictr.c b/src/mame/video/vindictr.c index d6ce2c11545..32ba3b9aa11 100644 --- a/src/mame/video/vindictr.c +++ b/src/mame/video/vindictr.c @@ -16,24 +16,22 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(vindictr_state::get_alpha_tile_info) { - vindictr_state *state = machine.driver_data<vindictr_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0x3ff; int color = ((data >> 10) & 0x0f) | ((data >> 9) & 0x20); int opaque = data & 0x8000; - SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(vindictr_state::get_playfield_tile_info) { - vindictr_state *state = machine.driver_data<vindictr_state>(); - UINT16 data = state->m_playfield[tile_index]; - int code = (state->m_playfield_tile_bank * 0x1000) + (data & 0xfff); + UINT16 data = m_playfield[tile_index]; + int code = (m_playfield_tile_bank * 0x1000) + (data & 0xfff); int color = 0x10 + 2 * ((data >> 12) & 7); - SET_TILE_INFO(0, code, color, (data >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); } @@ -85,13 +83,13 @@ VIDEO_START( vindictr ) vindictr_state *state = machine.driver_data<vindictr_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_COLS, 8,8, 64,64); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vindictr_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vindictr_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); /* save states */ diff --git a/src/mame/video/vulgus.c b/src/mame/video/vulgus.c index ceb30ab7116..22cb8aaf33d 100644 --- a/src/mame/video/vulgus.c +++ b/src/mame/video/vulgus.c @@ -77,14 +77,13 @@ PALETTE_INIT( vulgus ) ***************************************************************************/ -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(vulgus_state::get_fg_tile_info) { - vulgus_state *state = machine.driver_data<vulgus_state>(); int code, color; - code = state->m_fgvideoram[tile_index]; - color = state->m_fgvideoram[tile_index + 0x400]; - SET_TILE_INFO( + code = m_fgvideoram[tile_index]; + color = m_fgvideoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, code + ((color & 0x80) << 1), color & 0x3f, @@ -92,17 +91,16 @@ static TILE_GET_INFO( get_fg_tile_info ) tileinfo.group = color & 0x3f; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(vulgus_state::get_bg_tile_info) { - vulgus_state *state = machine.driver_data<vulgus_state>(); int code, color; - code = state->m_bgvideoram[tile_index]; - color = state->m_bgvideoram[tile_index + 0x400]; - SET_TILE_INFO( + code = m_bgvideoram[tile_index]; + color = m_bgvideoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 1, code + ((color & 0x80) << 1), - (color & 0x1f) + (0x20 * state->m_palette_bank), + (color & 0x1f) + (0x20 * m_palette_bank), TILE_FLIPYX((color & 0x60) >> 5)); } @@ -116,8 +114,8 @@ static TILE_GET_INFO( get_bg_tile_info ) VIDEO_START( vulgus ) { vulgus_state *state = machine.driver_data<vulgus_state>(); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS,16,16,32,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vulgus_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vulgus_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS,16,16,32,32); colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 47); } diff --git a/src/mame/video/warpwarp.c b/src/mame/video/warpwarp.c index 66278ed7b0f..e9854bea3e8 100644 --- a/src/mame/video/warpwarp.c +++ b/src/mame/video/warpwarp.c @@ -111,7 +111,7 @@ PALETTE_INIT( warpwarp ) ***************************************************************************/ /* convert from 32x32 to 34x28 */ -static TILEMAP_MAPPER( tilemap_scan ) +TILEMAP_MAPPER_MEMBER(warpwarp_state::tilemap_scan) { int offs; @@ -125,37 +125,34 @@ static TILEMAP_MAPPER( tilemap_scan ) return offs; } -static TILE_GET_INFO( geebee_get_tile_info ) +TILE_GET_INFO_MEMBER(warpwarp_state::geebee_get_tile_info) { - warpwarp_state *state = machine.driver_data<warpwarp_state>(); - int code = state->m_geebee_videoram[tile_index]; - int color = (state->m_geebee_bgw & 1) | ((code & 0x80) >> 6); - SET_TILE_INFO( + int code = m_geebee_videoram[tile_index]; + int color = (m_geebee_bgw & 1) | ((code & 0x80) >> 6); + SET_TILE_INFO_MEMBER( 0, code, color, 0); } -static TILE_GET_INFO( navarone_get_tile_info ) +TILE_GET_INFO_MEMBER(warpwarp_state::navarone_get_tile_info) { - warpwarp_state *state = machine.driver_data<warpwarp_state>(); - int code = state->m_geebee_videoram[tile_index]; - int color = state->m_geebee_bgw & 1; - SET_TILE_INFO( + int code = m_geebee_videoram[tile_index]; + int color = m_geebee_bgw & 1; + SET_TILE_INFO_MEMBER( 0, code, color, 0); } -static TILE_GET_INFO( warpwarp_get_tile_info ) +TILE_GET_INFO_MEMBER(warpwarp_state::warpwarp_get_tile_info) { - warpwarp_state *state = machine.driver_data<warpwarp_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index], - state->m_videoram[tile_index + 0x400], + m_videoram[tile_index], + m_videoram[tile_index + 0x400], 0); } @@ -170,19 +167,19 @@ static TILE_GET_INFO( warpwarp_get_tile_info ) VIDEO_START( geebee ) { warpwarp_state *state = machine.driver_data<warpwarp_state>(); - state->m_bg_tilemap = tilemap_create(machine, geebee_get_tile_info,tilemap_scan,8,8,34,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpwarp_state::geebee_get_tile_info),state),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),state),8,8,34,28); } VIDEO_START( navarone ) { warpwarp_state *state = machine.driver_data<warpwarp_state>(); - state->m_bg_tilemap = tilemap_create(machine, navarone_get_tile_info,tilemap_scan,8,8,34,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpwarp_state::navarone_get_tile_info),state),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),state),8,8,34,28); } VIDEO_START( warpwarp ) { warpwarp_state *state = machine.driver_data<warpwarp_state>(); - state->m_bg_tilemap = tilemap_create(machine, warpwarp_get_tile_info,tilemap_scan,8,8,34,28); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpwarp_state::warpwarp_get_tile_info),state),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),state),8,8,34,28); } diff --git a/src/mame/video/wc90.c b/src/mame/video/wc90.c index af19e9fb797..c99651dd9e1 100644 --- a/src/mame/video/wc90.c +++ b/src/mame/video/wc90.c @@ -8,62 +8,57 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(wc90_state::get_bg_tile_info) { - wc90_state *state = machine.driver_data<wc90_state>(); - int attr = state->m_bgvideoram[tile_index]; - int tile = state->m_bgvideoram[tile_index + 0x800] + + int attr = m_bgvideoram[tile_index]; + int tile = m_bgvideoram[tile_index + 0x800] + 256 * ((attr & 3) + ((attr >> 1) & 4)); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile, attr >> 4, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(wc90_state::get_fg_tile_info) { - wc90_state *state = machine.driver_data<wc90_state>(); - int attr = state->m_fgvideoram[tile_index]; - int tile = state->m_fgvideoram[tile_index + 0x800] + + int attr = m_fgvideoram[tile_index]; + int tile = m_fgvideoram[tile_index + 0x800] + 256 * ((attr & 3) + ((attr >> 1) & 4)); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, attr >> 4, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(wc90_state::get_tx_tile_info) { - wc90_state *state = machine.driver_data<wc90_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_txvideoram[tile_index + 0x800] + ((state->m_txvideoram[tile_index] & 0x07) << 8), - state->m_txvideoram[tile_index] >> 4, + m_txvideoram[tile_index + 0x800] + ((m_txvideoram[tile_index] & 0x07) << 8), + m_txvideoram[tile_index] >> 4, 0); } -static TILE_GET_INFO( track_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(wc90_state::track_get_bg_tile_info) { - wc90_state *state = machine.driver_data<wc90_state>(); - int attr = state->m_bgvideoram[tile_index]; - int tile = state->m_bgvideoram[tile_index + 0x800] + + int attr = m_bgvideoram[tile_index]; + int tile = m_bgvideoram[tile_index + 0x800] + 256 * (attr & 7); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tile, attr >> 4, 0); } -static TILE_GET_INFO( track_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(wc90_state::track_get_fg_tile_info) { - wc90_state *state = machine.driver_data<wc90_state>(); - int attr = state->m_fgvideoram[tile_index]; - int tile = state->m_fgvideoram[tile_index + 0x800] + + int attr = m_fgvideoram[tile_index]; + int tile = m_fgvideoram[tile_index + 0x800] + 256 * (attr & 7); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 1, tile, attr >> 4, @@ -80,9 +75,9 @@ static TILE_GET_INFO( track_get_fg_tile_info ) VIDEO_START( wc90 ) { wc90_state *state = machine.driver_data<wc90_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 16,16,64,32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); - 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(wc90_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_fg_tilemap->set_transparent_pen(0); state->m_tx_tilemap->set_transparent_pen(0); @@ -91,9 +86,9 @@ VIDEO_START( wc90 ) VIDEO_START( wc90t ) { wc90_state *state = machine.driver_data<wc90_state>(); - state->m_bg_tilemap = tilemap_create(machine, track_get_bg_tile_info,TILEMAP_SCAN_ROWS, 16,16,64,32); - state->m_fg_tilemap = tilemap_create(machine, track_get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); - 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(wc90_state::track_get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::track_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_fg_tilemap->set_transparent_pen(0); state->m_tx_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/wc90b.c b/src/mame/video/wc90b.c index 0f64e31d7e7..59384bbe8c9 100644 --- a/src/mame/video/wc90b.c +++ b/src/mame/video/wc90b.c @@ -8,37 +8,34 @@ ***************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(wc90b_state::get_bg_tile_info) { - wc90b_state *state = machine.driver_data<wc90b_state>(); - int attr = state->m_bgvideoram[tile_index]; - int tile = state->m_bgvideoram[tile_index + 0x800]; - SET_TILE_INFO( + int attr = m_bgvideoram[tile_index]; + int tile = m_bgvideoram[tile_index + 0x800]; + SET_TILE_INFO_MEMBER( 9 + ((attr & 3) + ((attr >> 1) & 4)), tile, attr >> 4, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(wc90b_state::get_fg_tile_info) { - wc90b_state *state = machine.driver_data<wc90b_state>(); - int attr = state->m_fgvideoram[tile_index]; - int tile = state->m_fgvideoram[tile_index + 0x800]; - SET_TILE_INFO( + int attr = m_fgvideoram[tile_index]; + int tile = m_fgvideoram[tile_index + 0x800]; + SET_TILE_INFO_MEMBER( 1 + ((attr & 3) + ((attr >> 1) & 4)), tile, attr >> 4, 0); } -static TILE_GET_INFO( get_tx_tile_info ) +TILE_GET_INFO_MEMBER(wc90b_state::get_tx_tile_info) { - wc90b_state *state = machine.driver_data<wc90b_state>(); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - state->m_txvideoram[tile_index + 0x800] + ((state->m_txvideoram[tile_index] & 0x07) << 8), - state->m_txvideoram[tile_index] >> 4, + m_txvideoram[tile_index + 0x800] + ((m_txvideoram[tile_index] & 0x07) << 8), + m_txvideoram[tile_index] >> 4, 0); } @@ -53,9 +50,9 @@ static TILE_GET_INFO( get_tx_tile_info ) VIDEO_START( wc90b ) { wc90b_state *state = machine.driver_data<wc90b_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 16,16,64,32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); - 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(wc90b_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,64,32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90b_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90b_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_fg_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(15); diff --git a/src/mame/video/wecleman.c b/src/mame/video/wecleman.c index cd80b1ce7ee..109b1151803 100644 --- a/src/mame/video/wecleman.c +++ b/src/mame/video/wecleman.c @@ -417,11 +417,10 @@ static void sprite_draw(running_machine &machine, _BitmapClass &bitmap, const re [ Frontmost (text) layer + video registers ] ------------------------------------------------------------------------*/ -static TILE_GET_INFO( wecleman_get_txt_tile_info ) +TILE_GET_INFO_MEMBER(wecleman_state::wecleman_get_txt_tile_info) { - wecleman_state *state = machine.driver_data<wecleman_state>(); - int code = state->m_txtram[tile_index]; - SET_TILE_INFO(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); + int code = m_txtram[tile_index]; + SET_TILE_INFO_MEMBER(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); } WRITE16_MEMBER(wecleman_state::wecleman_txtram_w) @@ -464,27 +463,25 @@ WRITE16_MEMBER(wecleman_state::wecleman_txtram_w) [ Background ] ------------------------------------------------------------------------*/ -static TILE_GET_INFO( wecleman_get_bg_tile_info ) +TILE_GET_INFO_MEMBER(wecleman_state::wecleman_get_bg_tile_info) { - wecleman_state *state = machine.driver_data<wecleman_state>(); - int page = state->m_bgpage[((tile_index&0x7f)>>6) + ((tile_index>>12)<<1)]; - int code = state->m_pageram[(tile_index&0x3f) + ((tile_index>>7&0x1f)<<6) + (page<<11)]; + int page = m_bgpage[((tile_index&0x7f)>>6) + ((tile_index>>12)<<1)]; + int code = m_pageram[(tile_index&0x3f) + ((tile_index>>7&0x1f)<<6) + (page<<11)]; - SET_TILE_INFO(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); + SET_TILE_INFO_MEMBER(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); } /*------------------------------------------------------------------------ [ Foreground ] ------------------------------------------------------------------------*/ -static TILE_GET_INFO( wecleman_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(wecleman_state::wecleman_get_fg_tile_info) { - wecleman_state *state = machine.driver_data<wecleman_state>(); - int page = state->m_fgpage[((tile_index&0x7f)>>6) + ((tile_index>>12)<<1)]; - int code = state->m_pageram[(tile_index&0x3f) + ((tile_index>>7&0x1f)<<6) + (page<<11)]; + int page = m_fgpage[((tile_index&0x7f)>>6) + ((tile_index>>12)<<1)]; + int code = m_pageram[(tile_index&0x3f) + ((tile_index>>7&0x1f)<<6) + (page<<11)]; if (!code || code==0xffff) code = 0x20; - SET_TILE_INFO(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); + SET_TILE_INFO_MEMBER(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); } /*------------------------------------------------------------------------ @@ -933,19 +930,19 @@ VIDEO_START( wecleman ) state->m_sprite_list = auto_alloc_array_clear(machine, struct sprite, NUM_SPRITES); - state->m_bg_tilemap = tilemap_create(machine, wecleman_get_bg_tile_info, + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, /* We draw part of the road below */ 8,8, PAGE_NX * 2, PAGE_NY * 2 ); - state->m_fg_tilemap = tilemap_create(machine, wecleman_get_fg_tile_info, + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, PAGE_NX * 2, PAGE_NY * 2); - state->m_txt_tilemap = tilemap_create(machine, wecleman_get_txt_tile_info, + state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, diff --git a/src/mame/video/welltris.c b/src/mame/video/welltris.c index 96cc3230085..e79b44aca81 100644 --- a/src/mame/video/welltris.c +++ b/src/mame/video/welltris.c @@ -191,16 +191,15 @@ WRITE16_MEMBER(welltris_state::welltris_scrollreg_w) } } -static TILE_GET_INFO( get_welltris_tile_info ) +TILE_GET_INFO_MEMBER(welltris_state::get_welltris_tile_info) { - welltris_state *state = machine.driver_data<welltris_state>(); - UINT16 code = state->m_charvideoram[tile_index]; + UINT16 code = m_charvideoram[tile_index]; int bank = (code & 0x1000) >> 12; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, - (code & 0x0fff) + (state->m_gfxbank[bank] << 12), - ((code & 0xe000) >> 13) + (8 * state->m_charpalettebank), + (code & 0x0fff) + (m_gfxbank[bank] << 12), + ((code & 0xe000) >> 13) + (8 * m_charpalettebank), 0); } @@ -214,7 +213,7 @@ WRITE16_MEMBER(welltris_state::welltris_charvideoram_w) VIDEO_START( welltris ) { welltris_state *state = machine.driver_data<welltris_state>(); - state->m_char_tilemap = tilemap_create(machine, get_welltris_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + state->m_char_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(welltris_state::get_welltris_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_char_tilemap->set_transparent_pen(15); } diff --git a/src/mame/video/wgp.c b/src/mame/video/wgp.c index d144e59be4a..ea107655230 100644 --- a/src/mame/video/wgp.c +++ b/src/mame/video/wgp.c @@ -18,19 +18,19 @@ INLINE void common_get_piv_tile_info( running_machine &machine, tile_data &tilei TILE_FLIPYX( (attr & 0xc0) >> 6)); } -static TILE_GET_INFO( get_piv0_tile_info ) +TILE_GET_INFO_MEMBER(wgp_state::get_piv0_tile_info) { - common_get_piv_tile_info(machine, tileinfo, tile_index, 0); + common_get_piv_tile_info(machine(), tileinfo, tile_index, 0); } -static TILE_GET_INFO( get_piv1_tile_info ) +TILE_GET_INFO_MEMBER(wgp_state::get_piv1_tile_info) { - common_get_piv_tile_info(machine, tileinfo, tile_index, 1); + common_get_piv_tile_info(machine(), tileinfo, tile_index, 1); } -static TILE_GET_INFO( get_piv2_tile_info ) +TILE_GET_INFO_MEMBER(wgp_state::get_piv2_tile_info) { - common_get_piv_tile_info(machine, tileinfo, tile_index, 2); + common_get_piv_tile_info(machine(), tileinfo, tile_index, 2); } @@ -38,9 +38,9 @@ static void wgp_core_vh_start( running_machine &machine, int piv_xoffs, int piv_ { wgp_state *state = machine.driver_data<wgp_state>(); - state->m_piv_tilemap[0] = tilemap_create(machine, get_piv0_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_piv_tilemap[1] = tilemap_create(machine, get_piv1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); - state->m_piv_tilemap[2] = tilemap_create(machine, get_piv2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_piv_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wgp_state::get_piv0_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_piv_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wgp_state::get_piv1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); + state->m_piv_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wgp_state::get_piv2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); state->m_piv_xoffs = piv_xoffs; state->m_piv_yoffs = piv_yoffs; diff --git a/src/mame/video/williams.c b/src/mame/video/williams.c index c909110842f..f0cb6b30a44 100644 --- a/src/mame/video/williams.c +++ b/src/mame/video/williams.c @@ -105,7 +105,7 @@ static void blitter_init(running_machine &machine, int blitter_config, const UINT8 *remap_prom); static void create_palette_lookup(running_machine &machine); -static TILE_GET_INFO( get_tile_info ); + static int blitter_core(address_space *space, int sstart, int dstart, int w, int h, int data); @@ -157,7 +157,7 @@ VIDEO_START( williams2 ) state->m_generic_paletteram_8.allocate(0x400 * 2); /* create the tilemap */ - state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_COLS, 24,16, 128,16); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(williams_state::get_tile_info),state), TILEMAP_SCAN_COLS, 24,16, 128,16); state->m_bg_tilemap->set_scrolldx(2, 0); state_save_register(machine); @@ -375,15 +375,14 @@ READ8_MEMBER(williams_state::williams2_video_counter_r) * *************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(williams_state::get_tile_info) { - williams_state *state = machine.driver_data<williams_state>(); - int mask = machine.gfx[0]->elements() - 1; - int data = state->m_williams2_tileram[tile_index]; + int mask = machine().gfx[0]->elements() - 1; + int data = m_williams2_tileram[tile_index]; int y = (tile_index >> 1) & 7; int color = 0; - switch (state->m_williams2_tilemap_config) + switch (m_williams2_tilemap_config) { case WILLIAMS_TILEMAP_MYSTICM: { @@ -406,7 +405,7 @@ static TILE_GET_INFO( get_tile_info ) break; } - SET_TILE_INFO(0, data & mask, color, (data & ~mask) ? TILE_FLIPX : 0); + SET_TILE_INFO_MEMBER(0, data & mask, color, (data & ~mask) ? TILE_FLIPX : 0); } diff --git a/src/mame/video/wrally.c b/src/mame/video/wrally.c index f9f054aa0fa..840caf4e051 100644 --- a/src/mame/video/wrally.c +++ b/src/mame/video/wrally.c @@ -34,28 +34,26 @@ 1 | xxx----- -------- | not used? */ -static TILE_GET_INFO( get_tile_info_wrally_screen0 ) +TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_wrally_screen0) { - wrally_state *state = machine.driver_data<wrally_state>(); - int data = state->m_videoram[tile_index << 1]; - int data2 = state->m_videoram[(tile_index << 1) + 1]; + int data = m_videoram[tile_index << 1]; + int data2 = m_videoram[(tile_index << 1) + 1]; int code = data & 0x3fff; tileinfo.category = (data2 >> 5) & 0x01; - SET_TILE_INFO(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); + SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); } -static TILE_GET_INFO( get_tile_info_wrally_screen1 ) +TILE_GET_INFO_MEMBER(wrally_state::get_tile_info_wrally_screen1) { - wrally_state *state = machine.driver_data<wrally_state>(); - int data = state->m_videoram[(0x2000/2) + (tile_index << 1)]; - int data2 = state->m_videoram[(0x2000/2) + (tile_index << 1) + 1]; + int data = m_videoram[(0x2000/2) + (tile_index << 1)]; + int data2 = m_videoram[(0x2000/2) + (tile_index << 1) + 1]; int code = data & 0x3fff; tileinfo.category = (data2 >> 5) & 0x01; - SET_TILE_INFO(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); + SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); } /*************************************************************************** @@ -67,8 +65,8 @@ static TILE_GET_INFO( get_tile_info_wrally_screen1 ) VIDEO_START( wrally ) { wrally_state *state = machine.driver_data<wrally_state>(); - state->m_pant[0] = tilemap_create(machine, get_tile_info_wrally_screen0,TILEMAP_SCAN_ROWS,16,16,64,32); - state->m_pant[1] = tilemap_create(machine, get_tile_info_wrally_screen1,TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_wrally_screen0),state),TILEMAP_SCAN_ROWS,16,16,64,32); + state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_wrally_screen1),state),TILEMAP_SCAN_ROWS,16,16,64,32); state->m_pant[0]->set_transmask(0,0xff01,0x00ff); /* this layer is split in two (pens 1..7, pens 8-15) */ state->m_pant[1]->set_transparent_pen(0); diff --git a/src/mame/video/wwfsstar.c b/src/mame/video/wwfsstar.c index f8eac4e100d..f68c7f44974 100644 --- a/src/mame/video/wwfsstar.c +++ b/src/mame/video/wwfsstar.c @@ -33,7 +33,7 @@ WRITE16_MEMBER(wwfsstar_state::wwfsstar_bg0_videoram_w) Tilemap Related Functions *******************************************************************************/ -static TILE_GET_INFO( get_fg0_tile_info ) +TILE_GET_INFO_MEMBER(wwfsstar_state::get_fg0_tile_info) { /*- FG0 RAM Format -** @@ -50,27 +50,26 @@ static TILE_GET_INFO( get_fg0_tile_info ) **- End of Comments -*/ - wwfsstar_state *state = machine.driver_data<wwfsstar_state>(); UINT16 *tilebase; int tileno; int colbank; - tilebase = &state->m_fg0_videoram[tile_index*2]; + tilebase = &m_fg0_videoram[tile_index*2]; tileno = (tilebase[1] & 0x00ff) | ((tilebase[0] & 0x000f) << 8); colbank = (tilebase[0] & 0x00f0) >> 4; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tileno, colbank, 0); } -static TILEMAP_MAPPER( bg0_scan ) +TILEMAP_MAPPER_MEMBER(wwfsstar_state::bg0_scan) { return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x10) << 4) + ((row & 0x10) << 5); } -static TILE_GET_INFO( get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(wwfsstar_state::get_bg0_tile_info) { /*- BG0 RAM Format -** @@ -88,15 +87,14 @@ static TILE_GET_INFO( get_bg0_tile_info ) **- End of Comments -*/ - wwfsstar_state *state = machine.driver_data<wwfsstar_state>(); UINT16 *tilebase; int tileno, colbank, flipx; - tilebase = &state->m_bg0_videoram[tile_index*2]; + tilebase = &m_bg0_videoram[tile_index*2]; tileno = (tilebase[1] & 0x00ff) | ((tilebase[0] & 0x000f) << 8); colbank = (tilebase[0] & 0x0070) >> 4; flipx = (tilebase[0] & 0x0080) >> 7; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tileno, colbank, @@ -211,10 +209,10 @@ VIDEO_START( wwfsstar ) { wwfsstar_state *state = machine.driver_data<wwfsstar_state>(); - state->m_fg0_tilemap = tilemap_create(machine, get_fg0_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_fg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfsstar_state::get_fg0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); state->m_fg0_tilemap->set_transparent_pen(0); - state->m_bg0_tilemap = tilemap_create(machine, get_bg0_tile_info,bg0_scan, 16, 16,32,32); + state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfsstar_state::get_bg0_tile_info),state),tilemap_mapper_delegate(FUNC(wwfsstar_state::bg0_scan),state), 16, 16,32,32); state->m_fg0_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/wwfwfest.c b/src/mame/video/wwfwfest.c index 772cecf2bee..df5aa3c69ea 100644 --- a/src/mame/video/wwfwfest.c +++ b/src/mame/video/wwfwfest.c @@ -45,9 +45,8 @@ WRITE16_MEMBER(wwfwfest_state::wwfwfest_bg1_videoram_w) /******************************************************************************* Tilemap Related Functions *******************************************************************************/ -static TILE_GET_INFO( get_fg0_tile_info ) +TILE_GET_INFO_MEMBER(wwfwfest_state::get_fg0_tile_info) { - wwfwfest_state *state = machine.driver_data<wwfwfest_state>(); /*- FG0 RAM Format -** 4 bytes per tile @@ -67,19 +66,18 @@ static TILE_GET_INFO( get_fg0_tile_info ) UINT16 *tilebase; int tileno; int colbank; - tilebase = &state->m_fg0_videoram[tile_index*2]; + tilebase = &m_fg0_videoram[tile_index*2]; tileno = (tilebase[0] & 0x00ff) | ((tilebase[1] & 0x000f) << 8); colbank = (tilebase[1] & 0x00f0) >> 4; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 0, tileno, colbank, 0); } -static TILE_GET_INFO( get_bg0_tile_info ) +TILE_GET_INFO_MEMBER(wwfwfest_state::get_bg0_tile_info) { - wwfwfest_state *state = machine.driver_data<wwfwfest_state>(); /*- BG0 RAM Format -** 4 bytes per tile @@ -98,19 +96,18 @@ static TILE_GET_INFO( get_bg0_tile_info ) UINT16 *tilebase; int tileno,colbank; - tilebase = &state->m_bg0_videoram[tile_index*2]; + tilebase = &m_bg0_videoram[tile_index*2]; tileno = (tilebase[1] & 0x0fff); colbank = (tilebase[0] & 0x000f); - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 2, tileno, colbank, TILE_FLIPYX((tilebase[0] & 0x00c0) >> 6)); } -static TILE_GET_INFO( get_bg1_tile_info ) +TILE_GET_INFO_MEMBER(wwfwfest_state::get_bg1_tile_info) { - wwfwfest_state *state = machine.driver_data<wwfwfest_state>(); /*- BG1 RAM Format -** 2 bytes per tile @@ -125,10 +122,10 @@ static TILE_GET_INFO( get_bg1_tile_info ) UINT16 *tilebase; int tileno; int colbank; - tilebase = &state->m_bg1_videoram[tile_index]; + tilebase = &m_bg1_videoram[tile_index]; tileno = (tilebase[0] & 0x0fff); colbank = (tilebase[0] & 0xf000) >> 12; - SET_TILE_INFO( + SET_TILE_INFO_MEMBER( 3, tileno, colbank, @@ -231,9 +228,9 @@ VIDEO_START( wwfwfest ) state_save_register_global(machine, state->m_bg1_scrollx); state_save_register_global(machine, state->m_bg1_scrolly); - state->m_fg0_tilemap = tilemap_create(machine, get_fg0_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); - state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); - state->m_bg0_tilemap = tilemap_create(machine, get_bg0_tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); + state->m_fg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_fg0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); + state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); + state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_bg0_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); state->m_fg0_tilemap->set_transparent_pen(0); state->m_bg1_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/xain.c b/src/mame/video/xain.c index 9295019645d..92ba62ddd53 100644 --- a/src/mame/video/xain.c +++ b/src/mame/video/xain.c @@ -40,41 +40,38 @@ ***************************************************************************/ -static TILEMAP_MAPPER( back_scan ) +TILEMAP_MAPPER_MEMBER(xain_state::back_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x10) << 4) + ((row & 0x10) << 5); } -static TILE_GET_INFO( get_bgram0_tile_info ) +TILE_GET_INFO_MEMBER(xain_state::get_bgram0_tile_info) { - xain_state *state = machine.driver_data<xain_state>(); - int attr = state->m_bgram0[tile_index | 0x400]; - SET_TILE_INFO( + int attr = m_bgram0[tile_index | 0x400]; + SET_TILE_INFO_MEMBER( 2, - state->m_bgram0[tile_index] | ((attr & 7) << 8), + m_bgram0[tile_index] | ((attr & 7) << 8), (attr & 0x70) >> 4, (attr & 0x80) ? TILE_FLIPX : 0); } -static TILE_GET_INFO( get_bgram1_tile_info ) +TILE_GET_INFO_MEMBER(xain_state::get_bgram1_tile_info) { - xain_state *state = machine.driver_data<xain_state>(); - int attr = state->m_bgram1[tile_index | 0x400]; - SET_TILE_INFO( + int attr = m_bgram1[tile_index | 0x400]; + SET_TILE_INFO_MEMBER( 1, - state->m_bgram1[tile_index] | ((attr & 7) << 8), + m_bgram1[tile_index] | ((attr & 7) << 8), (attr & 0x70) >> 4, (attr & 0x80) ? TILE_FLIPX : 0); } -static TILE_GET_INFO( get_char_tile_info ) +TILE_GET_INFO_MEMBER(xain_state::get_char_tile_info) { - xain_state *state = machine.driver_data<xain_state>(); - int attr = state->m_charram[tile_index | 0x400]; - SET_TILE_INFO( + int attr = m_charram[tile_index | 0x400]; + SET_TILE_INFO_MEMBER( 0, - state->m_charram[tile_index] | ((attr & 3) << 8), + m_charram[tile_index] | ((attr & 3) << 8), (attr & 0xe0) >> 5, 0); } @@ -89,9 +86,9 @@ static TILE_GET_INFO( get_char_tile_info ) VIDEO_START( xain ) { xain_state *state = machine.driver_data<xain_state>(); - state->m_bgram0_tilemap = tilemap_create(machine, get_bgram0_tile_info,back_scan, 16,16,32,32); - state->m_bgram1_tilemap = tilemap_create(machine, get_bgram1_tile_info,back_scan, 16,16,32,32); - state->m_char_tilemap = tilemap_create(machine, get_char_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); + state->m_bgram0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xain_state::get_bgram0_tile_info),state),tilemap_mapper_delegate(FUNC(xain_state::back_scan),state),16,16,32,32); + state->m_bgram1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xain_state::get_bgram1_tile_info),state),tilemap_mapper_delegate(FUNC(xain_state::back_scan),state),16,16,32,32); + state->m_char_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xain_state::get_char_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); state->m_bgram0_tilemap->set_transparent_pen(0); state->m_bgram1_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/xorworld.c b/src/mame/video/xorworld.c index 57767b330e0..f51b3fe3089 100644 --- a/src/mame/video/xorworld.c +++ b/src/mame/video/xorworld.c @@ -66,20 +66,19 @@ WRITE16_MEMBER(xorworld_state::xorworld_videoram16_w) 0 | xxxx---- -------- | color */ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(xorworld_state::get_bg_tile_info) { - xorworld_state *state = machine.driver_data<xorworld_state>(); - UINT16 *videoram = state->m_videoram; + UINT16 *videoram = m_videoram; int data = videoram[tile_index]; int code = data & 0x0fff; - SET_TILE_INFO(0, code, data >> 12, 0); + SET_TILE_INFO_MEMBER(0, code, data >> 12, 0); } VIDEO_START( xorworld ) { xorworld_state *state = machine.driver_data<xorworld_state>(); - 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(xorworld_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } diff --git a/src/mame/video/xxmissio.c b/src/mame/video/xxmissio.c index 2b647815fad..1f79ee204e6 100644 --- a/src/mame/video/xxmissio.c +++ b/src/mame/video/xxmissio.c @@ -50,29 +50,27 @@ WRITE8_MEMBER(xxmissio_state::xxmissio_paletteram_w) /****************************************************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(xxmissio_state::get_bg_tile_info) { - xxmissio_state *state = machine.driver_data<xxmissio_state>(); - int code = ((state->m_bgram[0x400 | tile_index] & 0xc0) << 2) | state->m_bgram[0x000 | tile_index]; - int color = state->m_bgram[0x400 | tile_index] & 0x0f; + int code = ((m_bgram[0x400 | tile_index] & 0xc0) << 2) | m_bgram[0x000 | tile_index]; + int color = m_bgram[0x400 | tile_index] & 0x0f; - SET_TILE_INFO(2, code, color, 0); + SET_TILE_INFO_MEMBER(2, code, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(xxmissio_state::get_fg_tile_info) { - xxmissio_state *state = machine.driver_data<xxmissio_state>(); - int code = state->m_fgram[0x000 | tile_index]; - int color = state->m_fgram[0x400 | tile_index] & 0x07; + int code = m_fgram[0x000 | tile_index]; + int color = m_fgram[0x400 | tile_index] & 0x07; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } VIDEO_START( xxmissio ) { xxmissio_state *state = machine.driver_data<xxmissio_state>(); - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); - state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xxmissio_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); + state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xxmissio_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); state->m_bg_tilemap->set_scroll_cols(1); state->m_bg_tilemap->set_scroll_rows(1); diff --git a/src/mame/video/xybots.c b/src/mame/video/xybots.c index 39b8d272da8..28d1781d579 100644 --- a/src/mame/video/xybots.c +++ b/src/mame/video/xybots.c @@ -17,24 +17,22 @@ * *************************************/ -static TILE_GET_INFO( get_alpha_tile_info ) +TILE_GET_INFO_MEMBER(xybots_state::get_alpha_tile_info) { - xybots_state *state = machine.driver_data<xybots_state>(); - UINT16 data = state->m_alpha[tile_index]; + UINT16 data = m_alpha[tile_index]; int code = data & 0x3ff; int color = (data >> 12) & 7; int opaque = data & 0x8000; - SET_TILE_INFO(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); + SET_TILE_INFO_MEMBER(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); } -static TILE_GET_INFO( get_playfield_tile_info ) +TILE_GET_INFO_MEMBER(xybots_state::get_playfield_tile_info) { - xybots_state *state = machine.driver_data<xybots_state>(); - UINT16 data = state->m_playfield[tile_index]; + UINT16 data = m_playfield[tile_index]; int code = data & 0x1fff; int color = (data >> 11) & 0x0f; - SET_TILE_INFO(0, code, color, (data >> 15) & 1); + SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); } @@ -86,13 +84,13 @@ VIDEO_START( xybots ) xybots_state *state = machine.driver_data<xybots_state>(); /* initialize the playfield */ - state->m_playfield_tilemap = tilemap_create(machine, get_playfield_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xybots_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); /* initialize the motion objects */ atarimo_init(machine, 0, &modesc); /* initialize the alphanumerics */ - state->m_alpha_tilemap = tilemap_create(machine, get_alpha_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); + state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xybots_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); state->m_alpha_tilemap->set_transparent_pen(0); } diff --git a/src/mame/video/xyonix.c b/src/mame/video/xyonix.c index 9175fed7141..4f1a9765411 100644 --- a/src/mame/video/xyonix.c +++ b/src/mame/video/xyonix.c @@ -31,15 +31,14 @@ PALETTE_INIT( xyonix ) } -static TILE_GET_INFO( get_xyonix_tile_info ) +TILE_GET_INFO_MEMBER(xyonix_state::get_xyonix_tile_info) { - xyonix_state *state = machine.driver_data<xyonix_state>(); int tileno; - int attr = state->m_vidram[tile_index+0x1000+1]; + int attr = m_vidram[tile_index+0x1000+1]; - tileno = (state->m_vidram[tile_index+1] << 0) | ((attr & 0x0f) << 8); + tileno = (m_vidram[tile_index+1] << 0) | ((attr & 0x0f) << 8); - SET_TILE_INFO(0,tileno,attr >> 4,0); + SET_TILE_INFO_MEMBER(0,tileno,attr >> 4,0); } WRITE8_MEMBER(xyonix_state::xyonix_vidram_w) @@ -53,7 +52,7 @@ VIDEO_START(xyonix) { xyonix_state *state = machine.driver_data<xyonix_state>(); - state->m_tilemap = tilemap_create(machine, get_xyonix_tile_info, TILEMAP_SCAN_ROWS, 4, 8, 80, 32); + state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xyonix_state::get_xyonix_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 80, 32); } SCREEN_UPDATE_IND16(xyonix) diff --git a/src/mame/video/yiear.c b/src/mame/video/yiear.c index bf717a88335..cd5e4ee2649 100644 --- a/src/mame/video/yiear.c +++ b/src/mame/video/yiear.c @@ -86,22 +86,21 @@ WRITE8_MEMBER(yiear_state::yiear_control_w) coin_counter_w(machine(), 1, data & 0x10); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(yiear_state::get_bg_tile_info) { - yiear_state *state = machine.driver_data<yiear_state>(); int offs = tile_index * 2; - int attr = state->m_videoram[offs]; - int code = state->m_videoram[offs + 1] | ((attr & 0x10) << 4); + int attr = m_videoram[offs]; + int code = m_videoram[offs + 1] | ((attr & 0x10) << 4); // int color = (attr & 0xf0) >> 4; int flags = ((attr & 0x80) ? TILE_FLIPX : 0) | ((attr & 0x40) ? TILE_FLIPY : 0); - SET_TILE_INFO(0, code, 0, flags); + SET_TILE_INFO_MEMBER(0, code, 0, flags); } VIDEO_START( yiear ) { yiear_state *state = machine.driver_data<yiear_state>(); - 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(yiear_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/video/yunsun16.c b/src/mame/video/yunsun16.c index da16e7bad3f..fbee4371774 100644 --- a/src/mame/video/yunsun16.c +++ b/src/mame/video/yunsun16.c @@ -38,7 +38,7 @@ #define PAGES_PER_TMAP_X (0x4) #define PAGES_PER_TMAP_Y (0x4) -static TILEMAP_MAPPER( yunsun16_tilemap_scan_pages ) +TILEMAP_MAPPER_MEMBER(yunsun16_state::yunsun16_tilemap_scan_pages) { return (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE_X * TILES_PER_PAGE_Y * PAGES_PER_TMAP_X + (row % TILES_PER_PAGE_Y) + @@ -47,24 +47,22 @@ static TILEMAP_MAPPER( yunsun16_tilemap_scan_pages ) (col % TILES_PER_PAGE_X) * TILES_PER_PAGE_Y; } -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(yunsun16_state::get_tile_info_0) { - yunsun16_state *state = machine.driver_data<yunsun16_state>(); - UINT16 code = state->m_vram_0[2 * tile_index + 0]; - UINT16 attr = state->m_vram_0[2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code = m_vram_0[2 * tile_index + 0]; + UINT16 attr = m_vram_0[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( TMAP_GFX, code, attr & 0xf, (attr & 0x20) ? TILE_FLIPX : 0); } -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(yunsun16_state::get_tile_info_1) { - yunsun16_state *state = machine.driver_data<yunsun16_state>(); - UINT16 code = state->m_vram_1[2 * tile_index + 0]; - UINT16 attr = state->m_vram_1[2 * tile_index + 1]; - SET_TILE_INFO( + UINT16 code = m_vram_1[2 * tile_index + 0]; + UINT16 attr = m_vram_1[2 * tile_index + 1]; + SET_TILE_INFO_MEMBER( TMAP_GFX, code, attr & 0xf, @@ -98,9 +96,9 @@ VIDEO_START( yunsun16 ) { yunsun16_state *state = machine.driver_data<yunsun16_state>(); - state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0,yunsun16_tilemap_scan_pages, + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yunsun16_state::get_tile_info_0),state),tilemap_mapper_delegate(FUNC(yunsun16_state::yunsun16_tilemap_scan_pages),state), 16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1,yunsun16_tilemap_scan_pages, + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yunsun16_state::get_tile_info_1),state),tilemap_mapper_delegate(FUNC(yunsun16_state::yunsun16_tilemap_scan_pages),state), 16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); state->m_tilemap_0->set_scrolldx(-0x34, 0); diff --git a/src/mame/video/yunsung8.c b/src/mame/video/yunsung8.c index f1c19dbabe9..970ee1927b1 100644 --- a/src/mame/video/yunsung8.c +++ b/src/mame/video/yunsung8.c @@ -131,12 +131,11 @@ WRITE8_MEMBER(yunsung8_state::yunsung8_flipscreen_w) #define DIM_NX_0 (0x40) #define DIM_NY_0 (0x20) -static TILE_GET_INFO( get_tile_info_0 ) +TILE_GET_INFO_MEMBER(yunsung8_state::get_tile_info_0) { - yunsung8_state *state = machine.driver_data<yunsung8_state>(); - int code = state->m_videoram_0[0x1000 + tile_index * 2 + 0] + state->m_videoram_0[0x1000 + tile_index * 2 + 1] * 256; - int color = state->m_videoram_0[0x0800 + tile_index] & 0x07; - SET_TILE_INFO( + int code = m_videoram_0[0x1000 + tile_index * 2 + 0] + m_videoram_0[0x1000 + tile_index * 2 + 1] * 256; + int color = m_videoram_0[0x0800 + tile_index] & 0x07; + SET_TILE_INFO_MEMBER( 0, code, color, @@ -148,12 +147,11 @@ static TILE_GET_INFO( get_tile_info_0 ) #define DIM_NX_1 (0x40) #define DIM_NY_1 (0x20) -static TILE_GET_INFO( get_tile_info_1 ) +TILE_GET_INFO_MEMBER(yunsung8_state::get_tile_info_1) { - yunsung8_state *state = machine.driver_data<yunsung8_state>(); - int code = state->m_videoram_1[0x1000 + tile_index * 2 + 0] + state->m_videoram_1[0x1000 + tile_index * 2 + 1] * 256; - int color = state->m_videoram_1[0x0800 + tile_index] & 0x3f; - SET_TILE_INFO( + int code = m_videoram_1[0x1000 + tile_index * 2 + 0] + m_videoram_1[0x1000 + tile_index * 2 + 1] * 256; + int color = m_videoram_1[0x0800 + tile_index] & 0x3f; + SET_TILE_INFO_MEMBER( 1, code, color, @@ -175,8 +173,8 @@ VIDEO_START( yunsung8 ) { yunsung8_state *state = machine.driver_data<yunsung8_state>(); - state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_0, DIM_NY_0 ); - state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_1, DIM_NY_1 ); + state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yunsung8_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_0, DIM_NY_0 ); + state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yunsung8_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_1, DIM_NY_1 ); state->m_tilemap_1->set_transparent_pen(0); } diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c index 652d84a5812..50a77ee77ab 100644 --- a/src/mame/video/zac2650.c +++ b/src/mame/video/zac2650.c @@ -111,19 +111,18 @@ static int SpriteCollision(running_machine &machine, int first,int second) return Checksum; } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(zac2650_state::get_bg_tile_info) { - zac2650_state *state = machine.driver_data<zac2650_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int code = videoram[tile_index]; - SET_TILE_INFO(0, code, 0, 0); + SET_TILE_INFO_MEMBER(0, code, 0, 0); } VIDEO_START( tinvader ) { zac2650_state *state = machine.driver_data<zac2650_state>(); - 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(zac2650_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 24, 24, 32, 32); machine.primary_screen->register_screen_bitmap(state->m_bitmap); diff --git a/src/mame/video/zaccaria.c b/src/mame/video/zaccaria.c index eb53d362895..6790d7b0d69 100644 --- a/src/mame/video/zaccaria.c +++ b/src/mame/video/zaccaria.c @@ -113,14 +113,13 @@ PALETTE_INIT( zaccaria ) ***************************************************************************/ -static TILE_GET_INFO( get_tile_info ) +TILE_GET_INFO_MEMBER(zaccaria_state::get_tile_info) { - zaccaria_state *state = machine.driver_data<zaccaria_state>(); - UINT8 attr = state->m_videoram[tile_index + 0x400]; - SET_TILE_INFO( + UINT8 attr = m_videoram[tile_index + 0x400]; + SET_TILE_INFO_MEMBER( 0, - state->m_videoram[tile_index] + ((attr & 0x03) << 8), - ((attr & 0x0c) >> 2) + ((state->m_attributesram[2 * (tile_index % 32) + 1] & 0x07) << 2), + m_videoram[tile_index] + ((attr & 0x03) << 8), + ((attr & 0x0c) >> 2) + ((m_attributesram[2 * (tile_index % 32) + 1] & 0x07) << 2), 0); } @@ -135,7 +134,7 @@ static TILE_GET_INFO( get_tile_info ) VIDEO_START( zaccaria ) { zaccaria_state *state = machine.driver_data<zaccaria_state>(); - 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(zaccaria_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); state->m_bg_tilemap->set_scroll_cols(32); } diff --git a/src/mame/video/zaxxon.c b/src/mame/video/zaxxon.c index 84430d96f3d..e3c218d5136 100644 --- a/src/mame/video/zaxxon.c +++ b/src/mame/video/zaxxon.c @@ -67,47 +67,44 @@ PALETTE_INIT( zaxxon ) * *************************************/ -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(zaxxon_state::get_bg_tile_info) { - const UINT8 *source = machine.root_device().memregion("tilemap_dat")->base(); - int size = machine.root_device().memregion("tilemap_dat")->bytes() / 2; + const UINT8 *source = machine().root_device().memregion("tilemap_dat")->base(); + int size = machine().root_device().memregion("tilemap_dat")->bytes() / 2; int eff_index = tile_index & (size - 1); int code = source[eff_index] + 256 * (source[eff_index + size] & 3); int color = source[eff_index + size] >> 4; - SET_TILE_INFO(1, code, color, 0); + SET_TILE_INFO_MEMBER(1, code, color, 0); } -static TILE_GET_INFO( zaxxon_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(zaxxon_state::zaxxon_get_fg_tile_info) { - zaxxon_state *state = machine.driver_data<zaxxon_state>(); int sx = tile_index % 32; int sy = tile_index / 32; - int code = state->m_videoram[tile_index]; - int color = state->m_color_codes[sx + 32 * (sy / 4)] & 0x0f; + int code = m_videoram[tile_index]; + int color = m_color_codes[sx + 32 * (sy / 4)] & 0x0f; - SET_TILE_INFO(0, code, color * 2, 0); + SET_TILE_INFO_MEMBER(0, code, color * 2, 0); } -static TILE_GET_INFO( razmataz_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(zaxxon_state::razmataz_get_fg_tile_info) { - zaxxon_state *state = machine.driver_data<zaxxon_state>(); - int code = state->m_videoram[tile_index]; - int color = state->m_color_codes[code] & 0x0f; + int code = m_videoram[tile_index]; + int color = m_color_codes[code] & 0x0f; - SET_TILE_INFO(0, code, color * 2, 0); + SET_TILE_INFO_MEMBER(0, code, color * 2, 0); } -static TILE_GET_INFO( congo_get_fg_tile_info ) +TILE_GET_INFO_MEMBER(zaxxon_state::congo_get_fg_tile_info) { - zaxxon_state *state = machine.driver_data<zaxxon_state>(); - int code = state->m_videoram[tile_index] + (state->m_congo_fg_bank << 8); - int color = state->m_colorram[tile_index] & 0x1f; + int code = m_videoram[tile_index] + (m_congo_fg_bank << 8); + int color = m_colorram[tile_index] & 0x1f; - SET_TILE_INFO(0, code, color * 2, 0); + SET_TILE_INFO_MEMBER(0, code, color * 2, 0); } @@ -118,7 +115,7 @@ static TILE_GET_INFO( congo_get_fg_tile_info ) * *************************************/ -static void video_start_common(running_machine &machine, tile_get_info_func fg_tile_info) +static void video_start_common(running_machine &machine, tilemap_get_info_delegate fg_tile_info) { zaxxon_state *state = machine.driver_data<zaxxon_state>(); @@ -132,8 +129,8 @@ static void video_start_common(running_machine &machine, tile_get_info_func fg_t memset(state->m_congo_custom, 0, sizeof(state->m_congo_custom)); /* create a background and foreground tilemap */ - state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,512); - state->m_fg_tilemap = tilemap_create(machine, fg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); + state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(zaxxon_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,512); + state->m_fg_tilemap = &machine.tilemap().create(fg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); /* configure the foreground tilemap */ state->m_fg_tilemap->set_transparent_pen(0); @@ -150,13 +147,15 @@ static void video_start_common(running_machine &machine, tile_get_info_func fg_t VIDEO_START( zaxxon ) { - video_start_common(machine, zaxxon_get_fg_tile_info); + zaxxon_state *state = machine.driver_data<zaxxon_state>(); + video_start_common(machine, tilemap_get_info_delegate(FUNC(zaxxon_state::zaxxon_get_fg_tile_info),state)); } VIDEO_START( razmataz ) { - video_start_common(machine, razmataz_get_fg_tile_info); + zaxxon_state *state = machine.driver_data<zaxxon_state>(); + video_start_common(machine, tilemap_get_info_delegate(FUNC(zaxxon_state::razmataz_get_fg_tile_info),state)); } @@ -172,7 +171,7 @@ VIDEO_START( congo ) state->save_item(NAME(state->m_congo_color_bank)); state->save_item(NAME(state->m_congo_custom)); - video_start_common(machine, congo_get_fg_tile_info); + video_start_common(machine, tilemap_get_info_delegate(FUNC(zaxxon_state::congo_get_fg_tile_info),state)); } diff --git a/src/mame/video/zerozone.c b/src/mame/video/zerozone.c index aaa0976efb4..8de160ef134 100644 --- a/src/mame/video/zerozone.c +++ b/src/mame/video/zerozone.c @@ -21,23 +21,22 @@ WRITE16_MEMBER( zerozone_state::tilebank_w ) m_zz_tilemap->mark_all_dirty(); } -static TILE_GET_INFO( get_zerozone_tile_info ) +TILE_GET_INFO_MEMBER(zerozone_state::get_zerozone_tile_info) { - zerozone_state *state = machine.driver_data<zerozone_state>(); - int tileno = state->m_vram[tile_index] & 0x07ff; - int colour = state->m_vram[tile_index] & 0xf000; + int tileno = m_vram[tile_index] & 0x07ff; + int colour = m_vram[tile_index] & 0xf000; - if (state->m_vram[tile_index] & 0x0800) - tileno += state->m_tilebank * 0x800; + if (m_vram[tile_index] & 0x0800) + tileno += m_tilebank * 0x800; - SET_TILE_INFO(0, tileno, colour >> 12, 0); + SET_TILE_INFO_MEMBER(0, tileno, colour >> 12, 0); } void zerozone_state::video_start() { // i'm not 100% sure it should be opaque, pink title screen looks strange in las vegas girls // but if its transparent other things look incorrect - m_zz_tilemap = tilemap_create(machine(), get_zerozone_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); + m_zz_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(zerozone_state::get_zerozone_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32); } UINT32 zerozone_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/video/zodiack.c b/src/mame/video/zodiack.c index 94735b00799..bc3ddd9e4ef 100644 --- a/src/mame/video/zodiack.c +++ b/src/mame/video/zodiack.c @@ -99,30 +99,28 @@ PALETTE_INIT( zodiack ) colortable_entry_set_value(machine.colortable, 0x31, 0x30); } -static TILE_GET_INFO( get_bg_tile_info ) +TILE_GET_INFO_MEMBER(zodiack_state::get_bg_tile_info) { - zodiack_state *state = machine.driver_data<zodiack_state>(); - int code = state->m_videoram_2[tile_index]; - int color = (state->m_attributeram[2 * (tile_index % 32) + 1] >> 4) & 0x07; + int code = m_videoram_2[tile_index]; + int color = (m_attributeram[2 * (tile_index % 32) + 1] >> 4) & 0x07; - SET_TILE_INFO(0, code, color, 0); + SET_TILE_INFO_MEMBER(0, code, color, 0); } -static TILE_GET_INFO( get_fg_tile_info ) +TILE_GET_INFO_MEMBER(zodiack_state::get_fg_tile_info) { - zodiack_state *state = machine.driver_data<zodiack_state>(); - int code = state->m_videoram[tile_index]; - int color = state->m_attributeram[2 * (tile_index % 32) + 1] & 0x07; + int code = m_videoram[tile_index]; + int color = m_attributeram[2 * (tile_index % 32) + 1] & 0x07; - SET_TILE_INFO(3, code, color, 0); + SET_TILE_INFO_MEMBER(3, code, color, 0); } void zodiack_state::video_start() { - m_bg_tilemap = tilemap_create(machine(), get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - m_fg_tilemap = tilemap_create(machine(), get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(zodiack_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(zodiack_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_fg_tilemap->set_transparent_pen(0); m_fg_tilemap->set_scroll_cols(32); |