TILE/TILEMAP modernization part 1 (no whatsnew)

This commit is contained in:
Miodrag Milanovic 2012-09-06 10:15:51 +00:00
parent 17e7fa2f1e
commit d19e0caf9d
118 changed files with 1384 additions and 1362 deletions

View File

@ -74,6 +74,7 @@ public:
DECLARE_WRITE16_MEMBER(k3_scrollx_w); DECLARE_WRITE16_MEMBER(k3_scrollx_w);
DECLARE_WRITE16_MEMBER(k3_scrolly_w); DECLARE_WRITE16_MEMBER(k3_scrolly_w);
DECLARE_WRITE16_MEMBER(k3_soundbanks_w); DECLARE_WRITE16_MEMBER(k3_soundbanks_w);
TILE_GET_INFO_MEMBER(get_k3_bg_tile_info);
}; };
@ -83,17 +84,16 @@ WRITE16_MEMBER(k3_state::k3_bgram_w)
m_bg_tilemap->mark_tile_dirty(offset); m_bg_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_k3_bg_tile_info ) TILE_GET_INFO_MEMBER(k3_state::get_k3_bg_tile_info)
{ {
k3_state *state = machine.driver_data<k3_state>(); int tileno = m_bgram[tile_index];
int tileno = state->m_bgram[tile_index]; SET_TILE_INFO_MEMBER(1, tileno, 0, 0);
SET_TILE_INFO(1, tileno, 0, 0);
} }
static VIDEO_START(k3) static VIDEO_START(k3)
{ {
k3_state *state = machine.driver_data<k3_state>(); k3_state *state = machine.driver_data<k3_state>();
state->m_bg_tilemap = tilemap_create(machine, get_k3_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 64); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(k3_state::get_k3_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 64);
} }
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )

View File

@ -483,6 +483,7 @@ public:
DECLARE_READ8_MEMBER(pia1_b_r); DECLARE_READ8_MEMBER(pia1_b_r);
DECLARE_WRITE8_MEMBER(fclown_ay8910_w); DECLARE_WRITE8_MEMBER(fclown_ay8910_w);
DECLARE_DRIVER_INIT(fclown); DECLARE_DRIVER_INIT(fclown);
TILE_GET_INFO_MEMBER(get_fclown_tile_info);
}; };
@ -507,9 +508,8 @@ WRITE8_MEMBER(_5clown_state::fclown_colorram_w)
} }
static TILE_GET_INFO( get_fclown_tile_info ) TILE_GET_INFO_MEMBER(_5clown_state::get_fclown_tile_info)
{ {
_5clown_state *state = machine.driver_data<_5clown_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
@ -520,19 +520,19 @@ static TILE_GET_INFO( get_fclown_tile_info )
x--- ---- Extra color for 7's. x--- ---- Extra color for 7's.
*/ */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = ((attr & 0x01) << 8) | ((attr & 0x40) << 2) | state->m_videoram[tile_index]; /* bit 8 for extended char set */ int code = ((attr & 0x01) << 8) | ((attr & 0x40) << 2) | m_videoram[tile_index]; /* bit 8 for extended char set */
int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */
int color = (attr & 0x3c) >> 2 | ((attr & 0x80) >> 3); /* bits 2-3-4-5-7 for color */ int color = (attr & 0x3c) >> 2 | ((attr & 0x80) >> 3); /* bits 2-3-4-5-7 for color */
SET_TILE_INFO(bank, code, color, 0); SET_TILE_INFO_MEMBER(bank, code, color, 0);
} }
static VIDEO_START(fclown) static VIDEO_START(fclown)
{ {
_5clown_state *state = machine.driver_data<_5clown_state>(); _5clown_state *state = machine.driver_data<_5clown_state>();
state->m_bg_tilemap = tilemap_create(machine, get_fclown_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_5clown_state::get_fclown_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }

View File

@ -88,32 +88,33 @@ public:
DECLARE_READ16_MEMBER(ac_devices_r); DECLARE_READ16_MEMBER(ac_devices_r);
DECLARE_WRITE16_MEMBER(ac_devices_w); DECLARE_WRITE16_MEMBER(ac_devices_w);
DECLARE_WRITE16_MEMBER(ac_unk2_w); DECLARE_WRITE16_MEMBER(ac_unk2_w);
TILEMAP_MAPPER_MEMBER(bg_scan);
TILE_GET_INFO_MEMBER(ac_get_bg_tile_info);
TILE_GET_INFO_MEMBER(ac_get_tx_tile_info);
}; };
static TILEMAP_MAPPER( bg_scan ) TILEMAP_MAPPER_MEMBER(acommand_state::bg_scan)
{ {
/* logical (col,row) -> memory offset */ /* logical (col,row) -> memory offset */
return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8); return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8);
} }
static TILE_GET_INFO( ac_get_bg_tile_info ) TILE_GET_INFO_MEMBER(acommand_state::ac_get_bg_tile_info)
{ {
acommand_state *state = machine.driver_data<acommand_state>(); int code = m_ac_bgvram[tile_index];
int code = state->m_ac_bgvram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
1, 1,
code & 0xfff, code & 0xfff,
(code & 0xf000) >> 12, (code & 0xf000) >> 12,
0); 0);
} }
static TILE_GET_INFO( ac_get_tx_tile_info ) TILE_GET_INFO_MEMBER(acommand_state::ac_get_tx_tile_info)
{ {
acommand_state *state = machine.driver_data<acommand_state>(); int code = m_ac_txvram[tile_index];
int code = state->m_ac_txvram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
0, 0,
code & 0xfff, code & 0xfff,
(code & 0xf000) >> 12, (code & 0xf000) >> 12,
@ -182,8 +183,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
static VIDEO_START( acommand ) static VIDEO_START( acommand )
{ {
acommand_state *state = machine.driver_data<acommand_state>(); acommand_state *state = machine.driver_data<acommand_state>();
state->m_tx_tilemap = tilemap_create(machine, ac_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,512,32); state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(acommand_state::ac_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,512,32);
state->m_bg_tilemap = tilemap_create(machine, ac_get_bg_tile_info,bg_scan,16,16,256,16); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(acommand_state::ac_get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(acommand_state::bg_scan),state),16,16,256,16);
state->m_ac_vregs = auto_alloc_array(machine, UINT16, 0x80/2); state->m_ac_vregs = auto_alloc_array(machine, UINT16, 0x80/2);

View File

@ -72,15 +72,15 @@ public:
DECLARE_READ8_MEMBER(mux_r); DECLARE_READ8_MEMBER(mux_r);
DECLARE_WRITE8_MEMBER(mux_w); DECLARE_WRITE8_MEMBER(mux_w);
DECLARE_WRITE8_MEMBER(yumefuda_output_w); DECLARE_WRITE8_MEMBER(yumefuda_output_w);
TILE_GET_INFO_MEMBER(y_get_bg_tile_info);
}; };
static TILE_GET_INFO( y_get_bg_tile_info ) TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info)
{ {
albazg_state *state = machine.driver_data<albazg_state>(); int code = m_videoram[tile_index];
int code = state->m_videoram[tile_index]; int color = m_colorram[tile_index];
int color = state->m_colorram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code + ((color & 0xf8) << 3), code + ((color & 0xf8) << 3),
color & 0x7, color & 0x7,
@ -91,7 +91,7 @@ static TILE_GET_INFO( y_get_bg_tile_info )
static VIDEO_START( yumefuda ) static VIDEO_START( yumefuda )
{ {
albazg_state *state = machine.driver_data<albazg_state>(); albazg_state *state = machine.driver_data<albazg_state>();
state->m_bg_tilemap = tilemap_create(machine, y_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(albazg_state::y_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static SCREEN_UPDATE_IND16( yumefuda ) static SCREEN_UPDATE_IND16( yumefuda )

View File

@ -441,6 +441,7 @@ public:
UINT8 m_crtc_vreg[0x100],m_crtc_index; UINT8 m_crtc_vreg[0x100],m_crtc_index;
DECLARE_WRITE8_MEMBER(debug_w); DECLARE_WRITE8_MEMBER(debug_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
#define mc6845_h_char_total (state->m_crtc_vreg[0]) #define mc6845_h_char_total (state->m_crtc_vreg[0])
@ -480,26 +481,25 @@ WRITE8_MEMBER( avt_state::avt_colorram_w )
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(avt_state::get_bg_tile_info)
{ {
avt_state *state = machine.driver_data<avt_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
xxxx ---- color code. xxxx ---- color code.
---- xxxx seems unused. ---- xxxx seems unused.
*/ */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = state->m_videoram[tile_index] | ((attr & 1) << 8); int code = m_videoram[tile_index] | ((attr & 1) << 8);
int color = (attr & 0xf0)>>4; int color = (attr & 0xf0)>>4;
SET_TILE_INFO( 0, code, color, 0); SET_TILE_INFO_MEMBER( 0, code, color, 0);
} }
static VIDEO_START( avt ) static VIDEO_START( avt )
{ {
avt_state *state = machine.driver_data<avt_state>(); avt_state *state = machine.driver_data<avt_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 28, 32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(avt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 28, 32);
} }

View File

@ -46,49 +46,50 @@ public:
DECLARE_WRITE16_MEMBER(bestleag_bgram_w); DECLARE_WRITE16_MEMBER(bestleag_bgram_w);
DECLARE_WRITE16_MEMBER(bestleag_fgram_w); DECLARE_WRITE16_MEMBER(bestleag_fgram_w);
DECLARE_WRITE16_MEMBER(oki_bank_w); DECLARE_WRITE16_MEMBER(oki_bank_w);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILEMAP_MAPPER_MEMBER(bsb_bg_scan);
}; };
/* Video Handling */ /* Video Handling */
static TILE_GET_INFO( get_tx_tile_info ) TILE_GET_INFO_MEMBER(bestleag_state::get_tx_tile_info)
{ {
bestleag_state *state = machine.driver_data<bestleag_state>(); int code = m_txram[tile_index];
int code = state->m_txram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code & 0x0fff)|0x8000, (code & 0x0fff)|0x8000,
(code & 0xf000) >> 12, (code & 0xf000) >> 12,
0); 0);
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(bestleag_state::get_bg_tile_info)
{ {
bestleag_state *state = machine.driver_data<bestleag_state>(); int code = m_bgram[tile_index];
int code = state->m_bgram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
(code & 0x0fff), (code & 0x0fff),
(code & 0xf000) >> 12, (code & 0xf000) >> 12,
0); 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(bestleag_state::get_fg_tile_info)
{ {
bestleag_state *state = machine.driver_data<bestleag_state>(); int code = m_fgram[tile_index];
int code = state->m_fgram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
(code & 0x0fff)|0x1000, (code & 0x0fff)|0x1000,
((code & 0xf000) >> 12)|0x10, ((code & 0xf000) >> 12)|0x10,
0); 0);
} }
static TILEMAP_MAPPER( bsb_bg_scan ) TILEMAP_MAPPER_MEMBER(bestleag_state::bsb_bg_scan)
{ {
int offset; int offset;
@ -102,9 +103,9 @@ static TILEMAP_MAPPER( bsb_bg_scan )
static VIDEO_START(bestleag) static VIDEO_START(bestleag)
{ {
bestleag_state *state = machine.driver_data<bestleag_state>(); bestleag_state *state = machine.driver_data<bestleag_state>();
state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,256, 32); state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,256, 32);
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,bsb_bg_scan,16,16,128, 64); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),state),16,16,128, 64);
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,bsb_bg_scan,16,16,128, 64); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bestleag_state::get_fg_tile_info),state),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),state),16,16,128, 64);
state->m_tx_tilemap->set_transparent_pen(15); state->m_tx_tilemap->set_transparent_pen(15);
state->m_fg_tilemap->set_transparent_pen(15); state->m_fg_tilemap->set_transparent_pen(15);

View File

@ -122,26 +122,33 @@ public:
UINT16* m_spriteram[8]; UINT16* m_spriteram[8];
tilemap_t *m_bg_tilemap[8]; tilemap_t *m_bg_tilemap[8];
TILE_GET_INFO_MEMBER(get_bg0_tile_info);
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
TILE_GET_INFO_MEMBER(get_bg3_tile_info);
TILE_GET_INFO_MEMBER(get_bg4_tile_info);
TILE_GET_INFO_MEMBER(get_bg5_tile_info);
TILE_GET_INFO_MEMBER(get_bg6_tile_info);
TILE_GET_INFO_MEMBER(get_bg7_tile_info);
}; };
#define GET_INFO( ram ) \ #define GET_INFO( ram ) \
blackt96_state *state = machine.driver_data<blackt96_state>(); \
int tileno = (ram[tile_index*2+1] & 0x1fff); \ int tileno = (ram[tile_index*2+1] & 0x1fff); \
int rgn = (ram[tile_index*2+1] & 0x2000) >> 13; \ int rgn = (ram[tile_index*2+1] & 0x2000) >> 13; \
int flipyx = (ram[tile_index*2+1] & 0xc000)>>14; \ int flipyx = (ram[tile_index*2+1] & 0xc000)>>14; \
int col = (ram[tile_index*2] & 0x00ff); \ int col = (ram[tile_index*2] & 0x00ff); \
if (rgn==1) col >>=4; \ if (rgn==1) col >>=4; \
SET_TILE_INFO(1-rgn, tileno, col, TILE_FLIPYX(flipyx)); \ SET_TILE_INFO_MEMBER(1-rgn, tileno, col, TILE_FLIPYX(flipyx)); \
static TILE_GET_INFO( get_bg0_tile_info ) { GET_INFO(state->m_spriteram0); } TILE_GET_INFO_MEMBER(blackt96_state::get_bg0_tile_info){ GET_INFO(m_spriteram0); }
static TILE_GET_INFO( get_bg1_tile_info ) { GET_INFO(state->m_spriteram1); } TILE_GET_INFO_MEMBER(blackt96_state::get_bg1_tile_info){ GET_INFO(m_spriteram1); }
static TILE_GET_INFO( get_bg2_tile_info ) { GET_INFO(state->m_spriteram2); } TILE_GET_INFO_MEMBER(blackt96_state::get_bg2_tile_info){ GET_INFO(m_spriteram2); }
static TILE_GET_INFO( get_bg3_tile_info ) { GET_INFO(state->m_spriteram3); } TILE_GET_INFO_MEMBER(blackt96_state::get_bg3_tile_info){ GET_INFO(m_spriteram3); }
static TILE_GET_INFO( get_bg4_tile_info ) { GET_INFO(state->m_spriteram4); } TILE_GET_INFO_MEMBER(blackt96_state::get_bg4_tile_info){ GET_INFO(m_spriteram4); }
static TILE_GET_INFO( get_bg5_tile_info ) { GET_INFO(state->m_spriteram5); } TILE_GET_INFO_MEMBER(blackt96_state::get_bg5_tile_info){ GET_INFO(m_spriteram5); }
static TILE_GET_INFO( get_bg6_tile_info ) { GET_INFO(state->m_spriteram6); } TILE_GET_INFO_MEMBER(blackt96_state::get_bg6_tile_info){ GET_INFO(m_spriteram6); }
static TILE_GET_INFO( get_bg7_tile_info ) { GET_INFO(state->m_spriteram7); } TILE_GET_INFO_MEMBER(blackt96_state::get_bg7_tile_info){ GET_INFO(m_spriteram7); }
WRITE16_MEMBER(blackt96_state::bg_videoram0_w) { COMBINE_DATA(&m_spriteram0[offset]); m_bg_tilemap[0]->mark_tile_dirty(offset/2); } WRITE16_MEMBER(blackt96_state::bg_videoram0_w) { COMBINE_DATA(&m_spriteram0[offset]); m_bg_tilemap[0]->mark_tile_dirty(offset/2); }
WRITE16_MEMBER(blackt96_state::bg_videoram1_w) { COMBINE_DATA(&m_spriteram1[offset]); m_bg_tilemap[1]->mark_tile_dirty(offset/2); } WRITE16_MEMBER(blackt96_state::bg_videoram1_w) { COMBINE_DATA(&m_spriteram1[offset]); m_bg_tilemap[1]->mark_tile_dirty(offset/2); }
@ -156,14 +163,14 @@ static VIDEO_START( blackt96 )
{ {
blackt96_state *state = machine.driver_data<blackt96_state>(); blackt96_state *state = machine.driver_data<blackt96_state>();
state->m_bg_tilemap[0] = tilemap_create(machine, get_bg0_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg0_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_bg_tilemap[1] = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_bg_tilemap[2] = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_bg_tilemap[3] = tilemap_create(machine, get_bg3_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_bg_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg3_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_bg_tilemap[4] = tilemap_create(machine, get_bg4_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_bg_tilemap[4] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg4_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_bg_tilemap[5] = tilemap_create(machine, get_bg5_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_bg_tilemap[5] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg5_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_bg_tilemap[6] = tilemap_create(machine, get_bg6_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_bg_tilemap[6] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg6_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_bg_tilemap[7] = tilemap_create(machine, get_bg7_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); state->m_bg_tilemap[7] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blackt96_state::get_bg7_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_spriteram[0] = state->m_spriteram0; state->m_spriteram[0] = state->m_spriteram0;
state->m_spriteram[1] = state->m_spriteram1; state->m_spriteram[1] = state->m_spriteram1;

View File

@ -310,6 +310,7 @@ public:
DECLARE_WRITE8_MEMBER(mux_w); DECLARE_WRITE8_MEMBER(mux_w);
DECLARE_WRITE8_MEMBER(lamps_a_w); DECLARE_WRITE8_MEMBER(lamps_a_w);
DECLARE_WRITE8_MEMBER(sound_w); DECLARE_WRITE8_MEMBER(sound_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -332,9 +333,8 @@ WRITE8_MEMBER(blitz_state::megadpkr_colorram_w)
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(blitz_state::get_bg_tile_info)
{ {
blitz_state *state = machine.driver_data<blitz_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
--xx xx-- tiles color. --xx xx-- tiles color.
@ -343,19 +343,19 @@ static TILE_GET_INFO( get_bg_tile_info )
xx-- ---- unused. xx-- ---- unused.
*/ */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = ((attr & 1) << 8) | state->m_videoram[tile_index]; int code = ((attr & 1) << 8) | m_videoram[tile_index];
int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */
int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */ int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */
SET_TILE_INFO(bank, code, color, 0); SET_TILE_INFO_MEMBER(bank, code, color, 0);
} }
static VIDEO_START( megadpkr ) static VIDEO_START( megadpkr )
{ {
blitz_state *state = machine.driver_data<blitz_state>(); blitz_state *state = machine.driver_data<blitz_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(blitz_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static SCREEN_UPDATE_IND16( megadpkr ) static SCREEN_UPDATE_IND16( megadpkr )

View File

@ -147,30 +147,34 @@ public:
DECLARE_READ32_MEMBER(bnstars3_r); DECLARE_READ32_MEMBER(bnstars3_r);
DECLARE_WRITE32_MEMBER(bnstars1_mahjong_select_w); DECLARE_WRITE32_MEMBER(bnstars1_mahjong_select_w);
DECLARE_DRIVER_INIT(bnstars); DECLARE_DRIVER_INIT(bnstars);
TILE_GET_INFO_MEMBER(get_ms32_tx0_tile_info);
TILE_GET_INFO_MEMBER(get_ms32_tx1_tile_info);
TILE_GET_INFO_MEMBER(get_ms32_bg0_tile_info);
TILE_GET_INFO_MEMBER(get_ms32_bg1_tile_info);
TILE_GET_INFO_MEMBER(get_ms32_roz0_tile_info);
TILE_GET_INFO_MEMBER(get_ms32_roz1_tile_info);
}; };
static TILE_GET_INFO( get_ms32_tx0_tile_info ) TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_tx0_tile_info)
{ {
bnstars_state *state = machine.driver_data<bnstars_state>();
int tileno, colour; int tileno, colour;
tileno = state->m_ms32_tx0_ram[tile_index *2+0] & 0x0000ffff; tileno = m_ms32_tx0_ram[tile_index *2+0] & 0x0000ffff;
colour = state->m_ms32_tx0_ram[tile_index *2+1] & 0x0000000f; colour = m_ms32_tx0_ram[tile_index *2+1] & 0x0000000f;
SET_TILE_INFO(3,tileno,colour,0); SET_TILE_INFO_MEMBER(3,tileno,colour,0);
} }
static TILE_GET_INFO( get_ms32_tx1_tile_info ) TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_tx1_tile_info)
{ {
bnstars_state *state = machine.driver_data<bnstars_state>();
int tileno, colour; int tileno, colour;
tileno = state->m_ms32_tx1_ram[tile_index *2+0] & 0x0000ffff; tileno = m_ms32_tx1_ram[tile_index *2+0] & 0x0000ffff;
colour = state->m_ms32_tx1_ram[tile_index *2+1] & 0x0000000f; colour = m_ms32_tx1_ram[tile_index *2+1] & 0x0000000f;
SET_TILE_INFO(7,tileno,colour,0); SET_TILE_INFO_MEMBER(7,tileno,colour,0);
} }
WRITE32_MEMBER(bnstars_state::ms32_tx0_ram_w) WRITE32_MEMBER(bnstars_state::ms32_tx0_ram_w)
@ -187,26 +191,24 @@ WRITE32_MEMBER(bnstars_state::ms32_tx1_ram_w)
/* BG Layers */ /* BG Layers */
static TILE_GET_INFO( get_ms32_bg0_tile_info ) TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_bg0_tile_info)
{ {
bnstars_state *state = machine.driver_data<bnstars_state>();
int tileno,colour; int tileno,colour;
tileno = state->m_ms32_bg0_ram[tile_index *2+0] & 0x0000ffff; tileno = m_ms32_bg0_ram[tile_index *2+0] & 0x0000ffff;
colour = state->m_ms32_bg0_ram[tile_index *2+1] & 0x0000000f; colour = m_ms32_bg0_ram[tile_index *2+1] & 0x0000000f;
SET_TILE_INFO(2,tileno,colour,0); SET_TILE_INFO_MEMBER(2,tileno,colour,0);
} }
static TILE_GET_INFO( get_ms32_bg1_tile_info ) TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_bg1_tile_info)
{ {
bnstars_state *state = machine.driver_data<bnstars_state>();
int tileno,colour; int tileno,colour;
tileno = state->m_ms32_bg1_ram[tile_index *2+0] & 0x0000ffff; tileno = m_ms32_bg1_ram[tile_index *2+0] & 0x0000ffff;
colour = state->m_ms32_bg1_ram[tile_index *2+1] & 0x0000000f; colour = m_ms32_bg1_ram[tile_index *2+1] & 0x0000000f;
SET_TILE_INFO(6,tileno,colour,0); SET_TILE_INFO_MEMBER(6,tileno,colour,0);
} }
WRITE32_MEMBER(bnstars_state::ms32_bg0_ram_w) WRITE32_MEMBER(bnstars_state::ms32_bg0_ram_w)
@ -309,26 +311,24 @@ static void draw_roz(running_machine &machine, bitmap_ind16 &bitmap, const recta
} }
static TILE_GET_INFO( get_ms32_roz0_tile_info ) TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_roz0_tile_info)
{ {
bnstars_state *state = machine.driver_data<bnstars_state>();
int tileno,colour; int tileno,colour;
tileno = state->m_ms32_roz0_ram[tile_index *2+0] & 0x0000ffff; tileno = m_ms32_roz0_ram[tile_index *2+0] & 0x0000ffff;
colour = state->m_ms32_roz0_ram[tile_index *2+1] & 0x0000000f; colour = m_ms32_roz0_ram[tile_index *2+1] & 0x0000000f;
SET_TILE_INFO(1,tileno,colour,0); SET_TILE_INFO_MEMBER(1,tileno,colour,0);
} }
static TILE_GET_INFO( get_ms32_roz1_tile_info ) TILE_GET_INFO_MEMBER(bnstars_state::get_ms32_roz1_tile_info)
{ {
bnstars_state *state = machine.driver_data<bnstars_state>();
int tileno,colour; int tileno,colour;
tileno = state->m_ms32_roz1_ram[tile_index *2+0] & 0x0000ffff; tileno = m_ms32_roz1_ram[tile_index *2+0] & 0x0000ffff;
colour = state->m_ms32_roz1_ram[tile_index *2+1] & 0x0000000f; colour = m_ms32_roz1_ram[tile_index *2+1] & 0x0000000f;
SET_TILE_INFO(5,tileno,colour,0); SET_TILE_INFO_MEMBER(5,tileno,colour,0);
} }
WRITE32_MEMBER(bnstars_state::ms32_roz0_ram_w) WRITE32_MEMBER(bnstars_state::ms32_roz0_ram_w)
@ -507,18 +507,18 @@ WRITE32_MEMBER(bnstars_state::ms32_spramx_w)
static VIDEO_START(bnstars) static VIDEO_START(bnstars)
{ {
bnstars_state *state = machine.driver_data<bnstars_state>(); bnstars_state *state = machine.driver_data<bnstars_state>();
state->m_ms32_tx_tilemap[0] = tilemap_create(machine, get_ms32_tx0_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,64); state->m_ms32_tx_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,64);
state->m_ms32_tx_tilemap[1] = tilemap_create(machine, get_ms32_tx1_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,64); state->m_ms32_tx_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,64);
state->m_ms32_tx_tilemap[0]->set_transparent_pen(0); state->m_ms32_tx_tilemap[0]->set_transparent_pen(0);
state->m_ms32_tx_tilemap[1]->set_transparent_pen(0); state->m_ms32_tx_tilemap[1]->set_transparent_pen(0);
state->m_ms32_bg_tilemap[0] = tilemap_create(machine, get_ms32_bg0_tile_info,TILEMAP_SCAN_ROWS,16,16,64,64); state->m_ms32_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg0_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,64);
state->m_ms32_bg_tilemap[1] = tilemap_create(machine, get_ms32_bg1_tile_info,TILEMAP_SCAN_ROWS,16,16,64,64); state->m_ms32_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg1_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,64);
state->m_ms32_bg_tilemap[0]->set_transparent_pen(0); state->m_ms32_bg_tilemap[0]->set_transparent_pen(0);
state->m_ms32_bg_tilemap[1]->set_transparent_pen(0); state->m_ms32_bg_tilemap[1]->set_transparent_pen(0);
state->m_ms32_roz_tilemap[0] = tilemap_create(machine, get_ms32_roz0_tile_info,TILEMAP_SCAN_ROWS,16,16,128,128); state->m_ms32_roz_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz0_tile_info),state),TILEMAP_SCAN_ROWS,16,16,128,128);
state->m_ms32_roz_tilemap[1] = tilemap_create(machine, get_ms32_roz1_tile_info,TILEMAP_SCAN_ROWS,16,16,128,128); state->m_ms32_roz_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz1_tile_info),state),TILEMAP_SCAN_ROWS,16,16,128,128);
state->m_ms32_roz_tilemap[0]->set_transparent_pen(0); state->m_ms32_roz_tilemap[0]->set_transparent_pen(0);
state->m_ms32_roz_tilemap[1]->set_transparent_pen(0); state->m_ms32_roz_tilemap[1]->set_transparent_pen(0);

View File

@ -51,6 +51,8 @@ public:
DECLARE_WRITE8_MEMBER(cabaret_nmi_and_coins_w); DECLARE_WRITE8_MEMBER(cabaret_nmi_and_coins_w);
void show_out(); void show_out();
DECLARE_DRIVER_INIT(cabaret); DECLARE_DRIVER_INIT(cabaret);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -74,19 +76,17 @@ WRITE8_MEMBER(cabaret_state::bg_tile_w)
m_bg_tilemap->mark_tile_dirty(offset); m_bg_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(cabaret_state::get_bg_tile_info)
{ {
cabaret_state *state = machine.driver_data<cabaret_state>(); int code = m_bg_tile_ram[tile_index];
int code = state->m_bg_tile_ram[tile_index]; SET_TILE_INFO_MEMBER(1, code & 0xff, 0, 0);
SET_TILE_INFO(1, code & 0xff, 0, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(cabaret_state::get_fg_tile_info)
{ {
cabaret_state *state = machine.driver_data<cabaret_state>(); int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8);
int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8);
int tile = code & 0x1fff; int tile = code & 0x1fff;
SET_TILE_INFO(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); SET_TILE_INFO_MEMBER(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0);
} }
WRITE8_MEMBER(cabaret_state::fg_tile_w) WRITE8_MEMBER(cabaret_state::fg_tile_w)
@ -104,8 +104,8 @@ WRITE8_MEMBER(cabaret_state::fg_color_w)
static VIDEO_START(cabaret) static VIDEO_START(cabaret)
{ {
cabaret_state *state = machine.driver_data<cabaret_state>(); cabaret_state *state = machine.driver_data<cabaret_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabaret_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabaret_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
state->m_bg_tilemap->set_scroll_cols(64); state->m_bg_tilemap->set_scroll_cols(64);
} }

View File

@ -107,6 +107,8 @@ public:
DECLARE_WRITE8_MEMBER(bogus_w); DECLARE_WRITE8_MEMBER(bogus_w);
DECLARE_DRIVER_INIT(calorie); DECLARE_DRIVER_INIT(calorie);
DECLARE_DRIVER_INIT(calorieb); DECLARE_DRIVER_INIT(calorieb);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -116,25 +118,23 @@ public:
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(calorie_state::get_bg_tile_info)
{ {
calorie_state *state = machine.driver_data<calorie_state>(); UINT8 *src = memregion("user1")->base();
UINT8 *src = state->memregion("user1")->base(); int bg_base = (m_bg_bank & 0x0f) * 0x200;
int bg_base = (state->m_bg_bank & 0x0f) * 0x200;
int code = src[bg_base + tile_index] | (((src[bg_base + tile_index + 0x100]) & 0x10) << 4); int code = src[bg_base + tile_index] | (((src[bg_base + tile_index + 0x100]) & 0x10) << 4);
int color = src[bg_base + tile_index + 0x100] & 0x0f; int color = src[bg_base + tile_index + 0x100] & 0x0f;
int flag = src[bg_base + tile_index + 0x100] & 0x40 ? TILE_FLIPX : 0; int flag = src[bg_base + tile_index + 0x100] & 0x40 ? TILE_FLIPX : 0;
SET_TILE_INFO(1, code, color, flag); SET_TILE_INFO_MEMBER(1, code, color, flag);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(calorie_state::get_fg_tile_info)
{ {
calorie_state *state = machine.driver_data<calorie_state>(); int code = ((m_fg_ram[tile_index + 0x400] & 0x30) << 4) | m_fg_ram[tile_index];
int code = ((state->m_fg_ram[tile_index + 0x400] & 0x30) << 4) | state->m_fg_ram[tile_index]; int color = m_fg_ram[tile_index + 0x400] & 0x0f;
int color = state->m_fg_ram[tile_index + 0x400] & 0x0f;
SET_TILE_INFO(0, code, color, TILE_FLIPYX((state->m_fg_ram[tile_index + 0x400] & 0xc0) >> 6)); SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((m_fg_ram[tile_index + 0x400] & 0xc0) >> 6));
} }
@ -142,8 +142,8 @@ static VIDEO_START( calorie )
{ {
calorie_state *state = machine.driver_data<calorie_state>(); calorie_state *state = machine.driver_data<calorie_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(calorie_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
state->m_fg_tilemap = 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(calorie_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_transparent_pen(0);
} }

View File

@ -65,17 +65,17 @@ public:
DECLARE_READ8_MEMBER(vvillage_rng_r); DECLARE_READ8_MEMBER(vvillage_rng_r);
DECLARE_WRITE8_MEMBER(vvillage_output_w); DECLARE_WRITE8_MEMBER(vvillage_output_w);
DECLARE_WRITE8_MEMBER(vvillage_lamps_w); DECLARE_WRITE8_MEMBER(vvillage_lamps_w);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
}; };
static TILE_GET_INFO( get_sc0_tile_info ) TILE_GET_INFO_MEMBER(caswin_state::get_sc0_tile_info)
{ {
caswin_state *state = machine.driver_data<caswin_state>(); int tile = (m_sc0_vram[tile_index] | ((m_sc0_attr[tile_index] & 0x70)<<4)) & 0x7ff;
int tile = (state->m_sc0_vram[tile_index] | ((state->m_sc0_attr[tile_index] & 0x70)<<4)) & 0x7ff; int colour = m_sc0_attr[tile_index] & 0xf;
int colour = state->m_sc0_attr[tile_index] & 0xf;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
tile, tile,
colour, colour,
@ -85,7 +85,7 @@ static TILE_GET_INFO( get_sc0_tile_info )
static VIDEO_START(vvillage) static VIDEO_START(vvillage)
{ {
caswin_state *state = machine.driver_data<caswin_state>(); caswin_state *state = machine.driver_data<caswin_state>();
state->m_sc0_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(caswin_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32);
} }
static SCREEN_UPDATE_IND16(vvillage) static SCREEN_UPDATE_IND16(vvillage)

View File

@ -66,6 +66,9 @@ public:
DECLARE_WRITE16_MEMBER(cb2001_vidctrl_w); DECLARE_WRITE16_MEMBER(cb2001_vidctrl_w);
DECLARE_WRITE16_MEMBER(cb2001_vidctrl2_w); DECLARE_WRITE16_MEMBER(cb2001_vidctrl2_w);
DECLARE_WRITE16_MEMBER(cb2001_bg_w); DECLARE_WRITE16_MEMBER(cb2001_bg_w);
TILE_GET_INFO_MEMBER(get_cb2001_reel1_tile_info);
TILE_GET_INFO_MEMBER(get_cb2001_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_cb2001_reel3_tile_info);
}; };
@ -456,10 +459,9 @@ WRITE16_MEMBER(cb2001_state::cb2001_vidctrl2_w)
} }
static TILE_GET_INFO( get_cb2001_reel1_tile_info ) TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel1_tile_info)
{ {
cb2001_state *state = machine.driver_data<cb2001_state>(); int code = m_vram_bg[(0x0000/2) + tile_index/2];
int code = state->m_vram_bg[(0x0000/2) + tile_index/2];
if (tile_index&1) if (tile_index&1)
code >>=8; code >>=8;
@ -468,17 +470,16 @@ static TILE_GET_INFO( get_cb2001_reel1_tile_info )
int colour = 0;//= (cb2001_out_c&0x7) + 8; int colour = 0;//= (cb2001_out_c&0x7) + 8;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code+0x800, code+0x800,
colour, colour,
0); 0);
} }
static TILE_GET_INFO( get_cb2001_reel2_tile_info ) TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel2_tile_info)
{ {
cb2001_state *state = machine.driver_data<cb2001_state>(); int code = m_vram_bg[(0x0200/2) + tile_index/2];
int code = state->m_vram_bg[(0x0200/2) + tile_index/2];
if (tile_index&1) if (tile_index&1)
code >>=8; code >>=8;
@ -487,7 +488,7 @@ static TILE_GET_INFO( get_cb2001_reel2_tile_info )
int colour = 0;//(cb2001_out_c&0x7) + 8; int colour = 0;//(cb2001_out_c&0x7) + 8;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code+0x800, code+0x800,
colour, colour,
@ -495,10 +496,9 @@ static TILE_GET_INFO( get_cb2001_reel2_tile_info )
} }
static TILE_GET_INFO( get_cb2001_reel3_tile_info ) TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel3_tile_info)
{ {
cb2001_state *state = machine.driver_data<cb2001_state>(); int code = m_vram_bg[(0x0400/2) + tile_index/2];
int code = state->m_vram_bg[(0x0400/2) + tile_index/2];
int colour = 0;//(cb2001_out_c&0x7) + 8; int colour = 0;//(cb2001_out_c&0x7) + 8;
if (tile_index&1) if (tile_index&1)
@ -506,7 +506,7 @@ static TILE_GET_INFO( get_cb2001_reel3_tile_info )
code &=0xff; code &=0xff;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code+0x800, code+0x800,
colour, colour,
@ -517,9 +517,9 @@ static TILE_GET_INFO( get_cb2001_reel3_tile_info )
static VIDEO_START(cb2001) static VIDEO_START(cb2001)
{ {
cb2001_state *state = machine.driver_data<cb2001_state>(); cb2001_state *state = machine.driver_data<cb2001_state>();
state->m_reel1_tilemap = tilemap_create(machine,get_cb2001_reel1_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_reel2_tilemap = tilemap_create(machine,get_cb2001_reel2_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_reel3_tilemap = tilemap_create(machine,get_cb2001_reel3_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_reel1_tilemap->set_scroll_cols(64); state->m_reel1_tilemap->set_scroll_cols(64);
state->m_reel2_tilemap->set_scroll_cols(64); state->m_reel2_tilemap->set_scroll_cols(64);

View File

@ -27,15 +27,15 @@ public:
DECLARE_WRITE8_MEMBER(cball_vram_w); DECLARE_WRITE8_MEMBER(cball_vram_w);
DECLARE_READ8_MEMBER(cball_wram_r); DECLARE_READ8_MEMBER(cball_wram_r);
DECLARE_WRITE8_MEMBER(cball_wram_w); DECLARE_WRITE8_MEMBER(cball_wram_w);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(cball_state::get_tile_info)
{ {
cball_state *state = machine.driver_data<cball_state>(); UINT8 code = m_video_ram[tile_index];
UINT8 code = state->m_video_ram[tile_index];
SET_TILE_INFO(0, code, code >> 7, 0); SET_TILE_INFO_MEMBER(0, code, code >> 7, 0);
} }
@ -49,7 +49,7 @@ WRITE8_MEMBER(cball_state::cball_vram_w)
static VIDEO_START( cball ) static VIDEO_START( cball )
{ {
cball_state *state = machine.driver_data<cball_state>(); cball_state *state = machine.driver_data<cball_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(cball_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }

View File

@ -86,6 +86,8 @@ public:
DECLARE_WRITE8_MEMBER(chanbara_ay_out_0_w); DECLARE_WRITE8_MEMBER(chanbara_ay_out_0_w);
DECLARE_WRITE8_MEMBER(chanbara_ay_out_1_w); DECLARE_WRITE8_MEMBER(chanbara_ay_out_1_w);
DECLARE_DRIVER_INIT(chanbara); DECLARE_DRIVER_INIT(chanbara);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
}; };
@ -133,29 +135,27 @@ WRITE8_MEMBER(chanbara_state::chanbara_colorram2_w)
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(chanbara_state::get_bg_tile_info)
{ {
chanbara_state *state = machine.driver_data<chanbara_state>(); int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 1) << 8);
int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 1) << 8); int color = (m_colorram[tile_index] >> 1) & 0x1f;
int color = (state->m_colorram[tile_index] >> 1) & 0x1f;
SET_TILE_INFO(0, code, color, 0); SET_TILE_INFO_MEMBER(0, code, color, 0);
} }
static TILE_GET_INFO( get_bg2_tile_info ) TILE_GET_INFO_MEMBER(chanbara_state::get_bg2_tile_info)
{ {
chanbara_state *state = machine.driver_data<chanbara_state>(); int code = m_videoram2[tile_index];
int code = state->m_videoram2[tile_index]; int color = (m_colorram2[tile_index] >> 1) & 0x1f;
int color = (state->m_colorram2[tile_index] >> 1) & 0x1f;
SET_TILE_INFO(2, code, color, 0); SET_TILE_INFO_MEMBER(2, code, color, 0);
} }
static VIDEO_START(chanbara ) static VIDEO_START(chanbara )
{ {
chanbara_state *state = machine.driver_data<chanbara_state>(); chanbara_state *state = machine.driver_data<chanbara_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(chanbara_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,8, 8, 32, 32);
state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS,16, 16, 16, 32); state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chanbara_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS,16, 16, 16, 32);
state->m_bg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transparent_pen(0);
} }

View File

@ -57,27 +57,27 @@ public:
required_shared_ptr<UINT8> m_bgram; required_shared_ptr<UINT8> m_bgram;
UINT8 mux_data; UINT8 mux_data;
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(chance32_state::get_fg_tile_info)
{ {
chance32_state *state = machine.driver_data<chance32_state>(); int code = (m_fgram[tile_index * 2 + 1] << 8) | m_fgram[tile_index * 2];
int code = (state->m_fgram[tile_index * 2 + 1] << 8) | state->m_fgram[tile_index * 2];
int flip = (~code >> 12)&1; int flip = (~code >> 12)&1;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code & 0x0fff, code & 0x0fff,
code >> 13, code >> 13,
TILE_FLIPYX(flip<<1)|flip); TILE_FLIPYX(flip<<1)|flip);
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(chance32_state::get_bg_tile_info)
{ {
chance32_state *state = machine.driver_data<chance32_state>(); int code = (m_bgram[tile_index * 2 +1] << 8) | m_bgram[tile_index * 2];
int code = (state->m_bgram[tile_index * 2 +1] << 8) | state->m_bgram[tile_index * 2];
int flip = (~code >> 12)&1; int flip = (~code >> 12)&1;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code & 0x0fff, code & 0x0fff,
code >> 13, code >> 13,
@ -89,10 +89,10 @@ VIDEO_START( chance32 )
{ {
chance32_state *state = machine.driver_data<chance32_state>(); chance32_state *state = machine.driver_data<chance32_state>();
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 35, 29); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chance32_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 35, 29); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chance32_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
state->m_fg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY); state->m_fg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
state->m_bg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY); state->m_bg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);

View File

@ -81,6 +81,8 @@ public:
DECLARE_WRITE8_MEMBER(nmimask_w); DECLARE_WRITE8_MEMBER(nmimask_w);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
DECLARE_DRIVER_INIT(zerotrgt); DECLARE_DRIVER_INIT(zerotrgt);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -112,30 +114,28 @@ static PALETTE_INIT( zerotrgt )
} }
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(cntsteer_state::get_bg_tile_info)
{ {
cntsteer_state *state = machine.driver_data<cntsteer_state>(); int code = m_videoram2[tile_index];
int code = state->m_videoram2[tile_index];
SET_TILE_INFO(2, code + state->m_bg_bank, state->m_bg_color_bank, 0); SET_TILE_INFO_MEMBER(2, code + m_bg_bank, m_bg_color_bank, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(cntsteer_state::get_fg_tile_info)
{ {
cntsteer_state *state = machine.driver_data<cntsteer_state>(); int code = m_videoram[tile_index];
int code = state->m_videoram[tile_index]; int attr = m_colorram[tile_index];
int attr = state->m_colorram[tile_index];
code |= (attr & 0x01) << 8; code |= (attr & 0x01) << 8;
SET_TILE_INFO(0, code, 0x30 + ((attr & 0x78) >> 3), 0); SET_TILE_INFO_MEMBER(0, code, 0x30 + ((attr & 0x78) >> 3), 0);
} }
static VIDEO_START( cntsteer ) static VIDEO_START( cntsteer )
{ {
cntsteer_state *state = machine.driver_data<cntsteer_state>(); cntsteer_state *state = machine.driver_data<cntsteer_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 64); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 64);
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
@ -145,8 +145,8 @@ static VIDEO_START( cntsteer )
static VIDEO_START( zerotrgt ) static VIDEO_START( zerotrgt )
{ {
cntsteer_state *state = machine.driver_data<cntsteer_state>(); cntsteer_state *state = machine.driver_data<cntsteer_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);

View File

@ -53,6 +53,7 @@ public:
DECLARE_WRITE8_MEMBER(question_w); DECLARE_WRITE8_MEMBER(question_w);
DECLARE_READ8_MEMBER(ff_r); DECLARE_READ8_MEMBER(ff_r);
DECLARE_DRIVER_INIT(coinmstr); DECLARE_DRIVER_INIT(coinmstr);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -899,25 +900,24 @@ static GFXDECODE_START( coinmstr )
GFXDECODE_END GFXDECODE_END
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(coinmstr_state::get_bg_tile_info)
{ {
coinmstr_state *state = machine.driver_data<coinmstr_state>(); UINT8 *videoram = m_videoram;
UINT8 *videoram = state->m_videoram;
int tile = videoram[tile_index + 0x0240]; int tile = videoram[tile_index + 0x0240];
int color = tile_index; int color = tile_index;
tile |= (state->m_attr_ram1[tile_index + 0x0240] & 0x80) << 1; tile |= (m_attr_ram1[tile_index + 0x0240] & 0x80) << 1;
tile |= (state->m_attr_ram2[tile_index + 0x0240] & 0x80) << 2; tile |= (m_attr_ram2[tile_index + 0x0240] & 0x80) << 2;
tile |= (state->m_attr_ram3[tile_index + 0x0240] & 0x03) << (6+4); tile |= (m_attr_ram3[tile_index + 0x0240] & 0x03) << (6+4);
SET_TILE_INFO(0, tile, color, 0); SET_TILE_INFO_MEMBER(0, tile, color, 0);
} }
static VIDEO_START( coinmstr ) static VIDEO_START( coinmstr )
{ {
coinmstr_state *state = machine.driver_data<coinmstr_state>(); coinmstr_state *state = machine.driver_data<coinmstr_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 46, 32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(coinmstr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 46, 32);
} }
static SCREEN_UPDATE_IND16( coinmstr ) static SCREEN_UPDATE_IND16( coinmstr )

View File

@ -115,19 +115,19 @@ public:
DECLARE_WRITE8_MEMBER(seibu_sound_comms_w); DECLARE_WRITE8_MEMBER(seibu_sound_comms_w);
DECLARE_DRIVER_INIT(cshootere); DECLARE_DRIVER_INIT(cshootere);
DECLARE_DRIVER_INIT(cshooter); DECLARE_DRIVER_INIT(cshooter);
TILE_GET_INFO_MEMBER(get_cstx_tile_info);
}; };
static TILE_GET_INFO( get_cstx_tile_info ) TILE_GET_INFO_MEMBER(cshooter_state::get_cstx_tile_info)
{ {
cshooter_state *state = machine.driver_data<cshooter_state>(); int code = (m_txram[tile_index*2]);
int code = (state->m_txram[tile_index*2]); int attr = (m_txram[tile_index*2+1]);
int attr = (state->m_txram[tile_index*2+1]);
int rg; int rg;
rg=0; rg=0;
if (attr & 0x20) rg = 1; if (attr & 0x20) rg = 1;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
rg, rg,
(code & 0x1ff), (code & 0x1ff),
@ -144,7 +144,7 @@ WRITE8_MEMBER(cshooter_state::cshooter_txram_w)
static VIDEO_START(cshooter) static VIDEO_START(cshooter)
{ {
cshooter_state *state = machine.driver_data<cshooter_state>(); cshooter_state *state = machine.driver_data<cshooter_state>();
state->m_txtilemap = tilemap_create(machine, get_cstx_tile_info,TILEMAP_SCAN_ROWS, 8,8,32, 32); state->m_txtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cshooter_state::get_cstx_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32, 32);
state->m_txtilemap->set_transparent_pen(3); state->m_txtilemap->set_transparent_pen(3);
} }

View File

@ -50,39 +50,39 @@ public:
DECLARE_WRITE8_MEMBER(bg0_videoram_w); DECLARE_WRITE8_MEMBER(bg0_videoram_w);
DECLARE_WRITE8_MEMBER(misc_w); DECLARE_WRITE8_MEMBER(misc_w);
DECLARE_WRITE8_MEMBER(bg_bank_w); DECLARE_WRITE8_MEMBER(bg_bank_w);
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
TILE_GET_INFO_MEMBER(get_bg0_tile_info);
}; };
static TILE_GET_INFO( get_bg1_tile_info ) TILE_GET_INFO_MEMBER(cultures_state::get_bg1_tile_info)
{ {
cultures_state *state = machine.driver_data<cultures_state>(); UINT8 *region = memregion("gfx3")->base() + 0x200000 + 0x80000 * m_bg1_bank;
UINT8 *region = state->memregion("gfx3")->base() + 0x200000 + 0x80000 * state->m_bg1_bank;
int code = region[tile_index * 2] + (region[tile_index * 2 + 1] << 8); int code = region[tile_index * 2] + (region[tile_index * 2 + 1] << 8);
SET_TILE_INFO(2, code, code >> 12, 0); SET_TILE_INFO_MEMBER(2, code, code >> 12, 0);
} }
static TILE_GET_INFO( get_bg2_tile_info ) TILE_GET_INFO_MEMBER(cultures_state::get_bg2_tile_info)
{ {
cultures_state *state = machine.driver_data<cultures_state>(); UINT8 *region = memregion("gfx2")->base() + 0x200000 + 0x80000 * m_bg2_bank;
UINT8 *region = state->memregion("gfx2")->base() + 0x200000 + 0x80000 * state->m_bg2_bank;
int code = region[tile_index * 2] + (region[tile_index * 2 + 1] << 8); int code = region[tile_index * 2] + (region[tile_index * 2 + 1] << 8);
SET_TILE_INFO(1, code, code >> 12, 0); SET_TILE_INFO_MEMBER(1, code, code >> 12, 0);
} }
static TILE_GET_INFO( get_bg0_tile_info ) TILE_GET_INFO_MEMBER(cultures_state::get_bg0_tile_info)
{ {
cultures_state *state = machine.driver_data<cultures_state>(); int code = m_bg0_videoram[tile_index * 2] + (m_bg0_videoram[tile_index * 2 + 1] << 8);
int code = state->m_bg0_videoram[tile_index * 2] + (state->m_bg0_videoram[tile_index * 2 + 1] << 8); SET_TILE_INFO_MEMBER(0, code, code >> 12, 0);
SET_TILE_INFO(0, code, code >> 12, 0);
} }
static VIDEO_START( cultures ) static VIDEO_START( cultures )
{ {
cultures_state *state = machine.driver_data<cultures_state>(); cultures_state *state = machine.driver_data<cultures_state>();
state->m_bg0_tilemap = tilemap_create(machine, get_bg0_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 64, 128); state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 128);
state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 512, 512); state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 512, 512); state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cultures_state::get_bg2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
state->m_bg1_tilemap->set_transparent_pen(0); state->m_bg1_tilemap->set_transparent_pen(0);
state->m_bg0_tilemap->set_transparent_pen(0); state->m_bg0_tilemap->set_transparent_pen(0);

View File

@ -215,6 +215,9 @@ public:
DECLARE_WRITE8_MEMBER(cybertnk_irq_ack_w); DECLARE_WRITE8_MEMBER(cybertnk_irq_ack_w);
DECLARE_WRITE8_MEMBER(cybertnk_cnt_w); DECLARE_WRITE8_MEMBER(cybertnk_cnt_w);
DECLARE_DRIVER_INIT(cybertnk); DECLARE_DRIVER_INIT(cybertnk);
TILE_GET_INFO_MEMBER(get_tilemap0_tile_info);
TILE_GET_INFO_MEMBER(get_tilemap1_tile_info);
TILE_GET_INFO_MEMBER(get_tilemap2_tile_info);
}; };
/* tile format /* tile format
@ -228,42 +231,39 @@ public:
*/ */
static TILE_GET_INFO( get_tilemap0_tile_info ) TILE_GET_INFO_MEMBER(cybertnk_state::get_tilemap0_tile_info)
{ {
cybertnk_state *state = machine.driver_data<cybertnk_state>(); int code = m_tilemap0_vram[tile_index];
int code = state->m_tilemap0_vram[tile_index];
int pal = (code & 0xe000) >> 13; int pal = (code & 0xe000) >> 13;
pal |=(code & 0x1c00) >> 7; pal |=(code & 0x1c00) >> 7;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code & 0x1fff, code & 0x1fff,
pal, pal,
0); 0);
} }
static TILE_GET_INFO( get_tilemap1_tile_info ) TILE_GET_INFO_MEMBER(cybertnk_state::get_tilemap1_tile_info)
{ {
cybertnk_state *state = machine.driver_data<cybertnk_state>(); int code = m_tilemap1_vram[tile_index];
int code = state->m_tilemap1_vram[tile_index];
int pal = (code & 0xe000) >> 13; int pal = (code & 0xe000) >> 13;
pal |=(code & 0x1c00) >> 7; pal |=(code & 0x1c00) >> 7;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code & 0x1fff, code & 0x1fff,
pal, pal,
0); 0);
} }
static TILE_GET_INFO( get_tilemap2_tile_info ) TILE_GET_INFO_MEMBER(cybertnk_state::get_tilemap2_tile_info)
{ {
cybertnk_state *state = machine.driver_data<cybertnk_state>(); int code = m_tilemap2_vram[tile_index];
int code = state->m_tilemap2_vram[tile_index];
int pal = (code & 0xe000) >> 13; int pal = (code & 0xe000) >> 13;
pal |=(code & 0x1c00) >> 7; pal |=(code & 0x1c00) >> 7;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
2, 2,
code & 0x1fff, code & 0x1fff,
pal, pal,
@ -273,13 +273,13 @@ static TILE_GET_INFO( get_tilemap2_tile_info )
static VIDEO_START( cybertnk ) static VIDEO_START( cybertnk )
{ {
cybertnk_state *state = machine.driver_data<cybertnk_state>(); cybertnk_state *state = machine.driver_data<cybertnk_state>();
state->m_tilemap0_tilemap = tilemap_create(machine, get_tilemap0_tile_info,TILEMAP_SCAN_ROWS,8,8,128,32); state->m_tilemap0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32);
state->m_tilemap0_tilemap->set_transparent_pen(0); state->m_tilemap0_tilemap->set_transparent_pen(0);
state->m_tilemap1_tilemap = tilemap_create(machine, get_tilemap1_tile_info,TILEMAP_SCAN_ROWS,8,8,128,32); state->m_tilemap1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32);
state->m_tilemap1_tilemap->set_transparent_pen(0); state->m_tilemap1_tilemap->set_transparent_pen(0);
state->m_tilemap2_tilemap = tilemap_create(machine, get_tilemap2_tile_info,TILEMAP_SCAN_ROWS,8,8,128,32); state->m_tilemap2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cybertnk_state::get_tilemap2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,32);
state->m_tilemap2_tilemap->set_transparent_pen(0); state->m_tilemap2_tilemap->set_transparent_pen(0);
} }

View File

@ -42,17 +42,17 @@ public:
DECLARE_WRITE8_MEMBER(sc0_cram); DECLARE_WRITE8_MEMBER(sc0_cram);
DECLARE_WRITE8_MEMBER(d9final_bank_w); DECLARE_WRITE8_MEMBER(d9final_bank_w);
DECLARE_READ8_MEMBER(prot_latch_r); DECLARE_READ8_MEMBER(prot_latch_r);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
}; };
static TILE_GET_INFO( get_sc0_tile_info ) TILE_GET_INFO_MEMBER(d9final_state::get_sc0_tile_info)
{ {
d9final_state *state = machine.driver_data<d9final_state>(); int tile = ((m_hi_vram[tile_index] & 0x3f)<<8) | m_lo_vram[tile_index];
int tile = ((state->m_hi_vram[tile_index] & 0x3f)<<8) | state->m_lo_vram[tile_index]; int color = m_cram[tile_index] & 0x3f;
int color = state->m_cram[tile_index] & 0x3f;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
tile, tile,
color, color,
@ -62,7 +62,7 @@ static TILE_GET_INFO( get_sc0_tile_info )
static VIDEO_START(d9final) static VIDEO_START(d9final)
{ {
d9final_state *state = machine.driver_data<d9final_state>(); d9final_state *state = machine.driver_data<d9final_state>();
state->m_sc0_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(d9final_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
} }
static SCREEN_UPDATE_IND16(d9final) static SCREEN_UPDATE_IND16(d9final)

View File

@ -83,25 +83,25 @@ public:
DECLARE_WRITE8_MEMBER(snd_irq_w); DECLARE_WRITE8_MEMBER(snd_irq_w);
DECLARE_WRITE8_MEMBER(music_irq_w); DECLARE_WRITE8_MEMBER(music_irq_w);
DECLARE_CUSTOM_INPUT_MEMBER(snd_ack_r); DECLARE_CUSTOM_INPUT_MEMBER(snd_ack_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(dacholer_state::get_bg_tile_info)
{ {
dacholer_state *state = machine.driver_data<dacholer_state>(); SET_TILE_INFO_MEMBER(1, m_bgvideoram[tile_index] + m_bg_bank * 0x100, 0, 0);
SET_TILE_INFO(1, state->m_bgvideoram[tile_index] + state->m_bg_bank * 0x100, 0, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(dacholer_state::get_fg_tile_info)
{ {
dacholer_state *state = machine.driver_data<dacholer_state>(); SET_TILE_INFO_MEMBER(0, m_fgvideoram[tile_index], 0, 0);
SET_TILE_INFO(0, state->m_fgvideoram[tile_index], 0, 0);
} }
static VIDEO_START( dacholer ) static VIDEO_START( dacholer )
{ {
dacholer_state *state = machine.driver_data<dacholer_state>(); dacholer_state *state = machine.driver_data<dacholer_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(dacholer_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, 8, 8, 32, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dacholer_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
} }

View File

@ -100,6 +100,7 @@ public:
DECLARE_WRITE8_MEMBER(i8257_LMSR_w); DECLARE_WRITE8_MEMBER(i8257_LMSR_w);
DECLARE_CUSTOM_INPUT_MEMBER(prot_r); DECLARE_CUSTOM_INPUT_MEMBER(prot_r);
DECLARE_DRIVER_INIT(ddayjlc); DECLARE_DRIVER_INIT(ddayjlc);
TILE_GET_INFO_MEMBER(get_tile_info_bg);
}; };
@ -369,20 +370,19 @@ static GFXDECODE_START( ddayjlc )
GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0x100, 16 ) GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0x100, 16 )
GFXDECODE_END GFXDECODE_END
static TILE_GET_INFO( get_tile_info_bg ) TILE_GET_INFO_MEMBER(ddayjlc_state::get_tile_info_bg)
{ {
ddayjlc_state *state = machine.driver_data<ddayjlc_state>(); int code = m_bgram[tile_index] + ((m_bgram[tile_index + 0x400] & 0x08) << 5);
int code = state->m_bgram[tile_index] + ((state->m_bgram[tile_index + 0x400] & 0x08) << 5); int color = (m_bgram[tile_index + 0x400] & 0x7);
int color = (state->m_bgram[tile_index + 0x400] & 0x7); color |= (m_bgram[tile_index + 0x400] & 0x40) >> 3;
color |= (state->m_bgram[tile_index + 0x400] & 0x40) >> 3;
SET_TILE_INFO(2, code, color, 0); SET_TILE_INFO_MEMBER(2, code, color, 0);
} }
static VIDEO_START( ddayjlc ) static VIDEO_START( ddayjlc )
{ {
ddayjlc_state *state = machine.driver_data<ddayjlc_state>(); ddayjlc_state *state = machine.driver_data<ddayjlc_state>();
state->m_bg_tilemap = tilemap_create(machine, get_tile_info_bg, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static SCREEN_UPDATE_IND16( ddayjlc ) static SCREEN_UPDATE_IND16( ddayjlc )

View File

@ -152,6 +152,7 @@ public:
DECLARE_WRITE16_MEMBER(ddealer_mcu_shared_w); DECLARE_WRITE16_MEMBER(ddealer_mcu_shared_w);
DECLARE_READ16_MEMBER(ddealer_mcu_r); DECLARE_READ16_MEMBER(ddealer_mcu_r);
DECLARE_DRIVER_INIT(ddealer); DECLARE_DRIVER_INIT(ddealer);
TILE_GET_INFO_MEMBER(get_back_tile_info);
}; };
@ -161,11 +162,10 @@ WRITE16_MEMBER(ddealer_state::ddealer_flipscreen_w)
m_flipscreen = data & 0x01; m_flipscreen = data & 0x01;
} }
static TILE_GET_INFO( get_back_tile_info ) TILE_GET_INFO_MEMBER(ddealer_state::get_back_tile_info)
{ {
ddealer_state *state = machine.driver_data<ddealer_state>(); int code = m_back_vram[tile_index];
int code = state->m_back_vram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
0, 0,
code & 0xfff, code & 0xfff,
code >> 12, code >> 12,
@ -176,7 +176,7 @@ static VIDEO_START( ddealer )
{ {
ddealer_state *state = machine.driver_data<ddealer_state>(); ddealer_state *state = machine.driver_data<ddealer_state>();
state->m_flipscreen = 0; state->m_flipscreen = 0;
state->m_back_tilemap = tilemap_create(machine, get_back_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddealer_state::get_back_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
} }
static void ddealer_draw_video_layer( running_machine &machine, UINT16* vreg_base, UINT16* top, UINT16* bottom, bitmap_ind16 &bitmap, const rectangle &cliprect, int flipy) static void ddealer_draw_video_layer( running_machine &machine, UINT16* vreg_base, UINT16* top, UINT16* bottom, bitmap_ind16 &bitmap, const rectangle &cliprect, int flipy)

View File

@ -77,6 +77,7 @@ public:
DECLARE_WRITE8_MEMBER(dderby_sound_w); DECLARE_WRITE8_MEMBER(dderby_sound_w);
DECLARE_READ8_MEMBER(input_r); DECLARE_READ8_MEMBER(input_r);
DECLARE_WRITE8_MEMBER(output_w); DECLARE_WRITE8_MEMBER(output_w);
TILE_GET_INFO_MEMBER(get_dmndrby_tile_info);
}; };
@ -317,17 +318,16 @@ static GFXDECODE_START( dmndrby )
GFXDECODE_ENTRY( "gfx3", 0, tiles16x16_layout, 16*16, 32 ) GFXDECODE_ENTRY( "gfx3", 0, tiles16x16_layout, 16*16, 32 )
GFXDECODE_END GFXDECODE_END
static TILE_GET_INFO( get_dmndrby_tile_info ) TILE_GET_INFO_MEMBER(dmndrby_state::get_dmndrby_tile_info)
{ {
dmndrby_state *state = machine.driver_data<dmndrby_state>(); int code = m_racetrack_tilemap_rom[tile_index];
int code = state->m_racetrack_tilemap_rom[tile_index]; int attr = m_racetrack_tilemap_rom[tile_index+0x2000];
int attr = state->m_racetrack_tilemap_rom[tile_index+0x2000];
int col = attr&0x1f; int col = attr&0x1f;
int flipx = (attr&0x40)>>6; int flipx = (attr&0x40)>>6;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
2, 2,
code, code,
col, col,
@ -339,7 +339,7 @@ static VIDEO_START(dderby)
{ {
dmndrby_state *state = machine.driver_data<dmndrby_state>(); dmndrby_state *state = machine.driver_data<dmndrby_state>();
state->m_racetrack_tilemap_rom = state->memregion("user1")->base(); state->m_racetrack_tilemap_rom = state->memregion("user1")->base();
state->m_racetrack_tilemap = tilemap_create(machine,get_dmndrby_tile_info,TILEMAP_SCAN_ROWS,16,16, 16, 512); state->m_racetrack_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dmndrby_state::get_dmndrby_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 16, 512);
state->m_racetrack_tilemap->mark_all_dirty(); state->m_racetrack_tilemap->mark_all_dirty();
} }

View File

@ -158,6 +158,8 @@ public:
DECLARE_WRITE32_MEMBER(dreamwld_6295_0_bank_w); DECLARE_WRITE32_MEMBER(dreamwld_6295_0_bank_w);
DECLARE_WRITE32_MEMBER(dreamwld_6295_1_bank_w); DECLARE_WRITE32_MEMBER(dreamwld_6295_1_bank_w);
DECLARE_WRITE32_MEMBER(dreamwld_palette_w); DECLARE_WRITE32_MEMBER(dreamwld_palette_w);
TILE_GET_INFO_MEMBER(get_dreamwld_bg_tile_info);
TILE_GET_INFO_MEMBER(get_dreamwld_bg2_tile_info);
}; };
@ -234,14 +236,13 @@ WRITE32_MEMBER(dreamwld_state::dreamwld_bg_videoram_w)
m_bg_tilemap->mark_tile_dirty(offset * 2 + 1); m_bg_tilemap->mark_tile_dirty(offset * 2 + 1);
} }
static TILE_GET_INFO( get_dreamwld_bg_tile_info ) TILE_GET_INFO_MEMBER(dreamwld_state::get_dreamwld_bg_tile_info)
{ {
dreamwld_state *state = machine.driver_data<dreamwld_state>();
int tileno, colour; int tileno, colour;
tileno = (tile_index & 1) ? (state->m_bg_videoram[tile_index >> 1] & 0xffff) : ((state->m_bg_videoram[tile_index >> 1] >> 16) & 0xffff); tileno = (tile_index & 1) ? (m_bg_videoram[tile_index >> 1] & 0xffff) : ((m_bg_videoram[tile_index >> 1] >> 16) & 0xffff);
colour = tileno >> 13; colour = tileno >> 13;
tileno &= 0x1fff; tileno &= 0x1fff;
SET_TILE_INFO(1, tileno + state->m_tilebank[0] * 0x2000, 0x80 + colour, 0); SET_TILE_INFO_MEMBER(1, tileno + m_tilebank[0] * 0x2000, 0x80 + colour, 0);
} }
@ -252,22 +253,21 @@ WRITE32_MEMBER(dreamwld_state::dreamwld_bg2_videoram_w)
m_bg2_tilemap->mark_tile_dirty(offset * 2 + 1); m_bg2_tilemap->mark_tile_dirty(offset * 2 + 1);
} }
static TILE_GET_INFO( get_dreamwld_bg2_tile_info ) TILE_GET_INFO_MEMBER(dreamwld_state::get_dreamwld_bg2_tile_info)
{ {
dreamwld_state *state = machine.driver_data<dreamwld_state>();
UINT16 tileno, colour; UINT16 tileno, colour;
tileno = (tile_index & 1) ? (state->m_bg2_videoram[tile_index >> 1] & 0xffff) : ((state->m_bg2_videoram[tile_index >> 1] >> 16) & 0xffff); tileno = (tile_index & 1) ? (m_bg2_videoram[tile_index >> 1] & 0xffff) : ((m_bg2_videoram[tile_index >> 1] >> 16) & 0xffff);
colour = tileno >> 13; colour = tileno >> 13;
tileno &= 0x1fff; tileno &= 0x1fff;
SET_TILE_INFO(1, tileno + state->m_tilebank[1] * 0x2000, 0xc0 + colour, 0); SET_TILE_INFO_MEMBER(1, tileno + m_tilebank[1] * 0x2000, 0xc0 + colour, 0);
} }
static VIDEO_START( dreamwld ) static VIDEO_START( dreamwld )
{ {
dreamwld_state *state = machine.driver_data<dreamwld_state>(); dreamwld_state *state = machine.driver_data<dreamwld_state>();
state->m_bg_tilemap = tilemap_create(machine, get_dreamwld_bg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 64,32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dreamwld_state::get_dreamwld_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 64,32);
state->m_bg2_tilemap = tilemap_create(machine, get_dreamwld_bg2_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 64,32); state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dreamwld_state::get_dreamwld_bg2_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 64,32);
state->m_bg2_tilemap->set_transparent_pen(0); state->m_bg2_tilemap->set_transparent_pen(0);
state->m_bg_tilemap->set_scroll_rows(256); // line scrolling state->m_bg_tilemap->set_scroll_rows(256); // line scrolling

View File

@ -35,25 +35,25 @@ public:
DECLARE_WRITE16_MEMBER(drtomy_vram_fg_w); DECLARE_WRITE16_MEMBER(drtomy_vram_fg_w);
DECLARE_WRITE16_MEMBER(drtomy_vram_bg_w); DECLARE_WRITE16_MEMBER(drtomy_vram_bg_w);
DECLARE_WRITE16_MEMBER(drtomy_okibank_w); DECLARE_WRITE16_MEMBER(drtomy_okibank_w);
TILE_GET_INFO_MEMBER(get_tile_info_fg);
TILE_GET_INFO_MEMBER(get_tile_info_bg);
}; };
static TILE_GET_INFO( get_tile_info_fg ) TILE_GET_INFO_MEMBER(drtomy_state::get_tile_info_fg)
{ {
drtomy_state *state = machine.driver_data<drtomy_state>(); int code = m_videoram_fg[tile_index] & 0xfff;
int code = state->m_videoram_fg[tile_index] & 0xfff; int color = (m_videoram_fg[tile_index] & 0xf000) >> 12;
int color = (state->m_videoram_fg[tile_index] & 0xf000) >> 12; SET_TILE_INFO_MEMBER(2, code, color, 0);
SET_TILE_INFO(2, code, color, 0);
} }
static TILE_GET_INFO( get_tile_info_bg ) TILE_GET_INFO_MEMBER(drtomy_state::get_tile_info_bg)
{ {
drtomy_state *state = machine.driver_data<drtomy_state>(); int code = m_videoram_bg[tile_index] & 0xfff;
int code = state->m_videoram_bg[tile_index] & 0xfff; int color = (m_videoram_bg[tile_index] & 0xf000) >> 12;
int color = (state->m_videoram_bg[tile_index] & 0xf000) >> 12; SET_TILE_INFO_MEMBER(1, code, color, 0);
SET_TILE_INFO(1, code, color, 0);
} }
@ -123,8 +123,8 @@ static VIDEO_START( drtomy )
{ {
drtomy_state *state = machine.driver_data<drtomy_state>(); drtomy_state *state = machine.driver_data<drtomy_state>();
state->m_tilemap_bg = tilemap_create(machine, get_tile_info_bg, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_bg),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
state->m_tilemap_fg = tilemap_create(machine, get_tile_info_fg, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_fg),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
state->m_tilemap_fg->set_transparent_pen(0); state->m_tilemap_fg->set_transparent_pen(0);
} }

View File

@ -66,6 +66,7 @@ public:
DECLARE_READ8_MEMBER(bus_r); DECLARE_READ8_MEMBER(bus_r);
DECLARE_READ8_MEMBER(drw80pkr_io_r); DECLARE_READ8_MEMBER(drw80pkr_io_r);
DECLARE_DRIVER_INIT(drw80pkr); DECLARE_DRIVER_INIT(drw80pkr);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -323,19 +324,18 @@ READ8_MEMBER(drw80pkr_state::drw80pkr_io_r)
* Video/Character functions * * Video/Character functions *
****************************/ ****************************/
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(drw80pkr_state::get_bg_tile_info)
{ {
drw80pkr_state *state = machine.driver_data<drw80pkr_state>(); int color = m_color_ram[tile_index];
int color = state->m_color_ram[tile_index]; int code = m_video_ram[tile_index];
int code = state->m_video_ram[tile_index];
SET_TILE_INFO(0, code, color, 0); SET_TILE_INFO_MEMBER(0, code, color, 0);
} }
static VIDEO_START( drw80pkr ) static VIDEO_START( drw80pkr )
{ {
drw80pkr_state *state = machine.driver_data<drw80pkr_state>(); drw80pkr_state *state = machine.driver_data<drw80pkr_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 24, 27); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 24, 27);
} }
static SCREEN_UPDATE_IND16( drw80pkr ) static SCREEN_UPDATE_IND16( drw80pkr )

View File

@ -117,6 +117,8 @@ public:
DECLARE_WRITE8_MEMBER(dunhuang_rombank_w); DECLARE_WRITE8_MEMBER(dunhuang_rombank_w);
DECLARE_WRITE8_MEMBER(dunhuang_82_w); DECLARE_WRITE8_MEMBER(dunhuang_82_w);
DECLARE_READ8_MEMBER(dunhuang_dsw_r); DECLARE_READ8_MEMBER(dunhuang_dsw_r);
TILE_GET_INFO_MEMBER(get_tile_info);
TILE_GET_INFO_MEMBER(get_tile_info2);
}; };
@ -125,26 +127,24 @@ public:
***************************************************************************/ ***************************************************************************/
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(dunhuang_state::get_tile_info)
{ {
dunhuang_state *state = machine.driver_data<dunhuang_state>(); UINT16 code = m_videoram[tile_index];
UINT16 code = state->m_videoram[tile_index]; UINT8 color = m_colorram[tile_index] & 0x0f;
UINT8 color = state->m_colorram[tile_index] & 0x0f; SET_TILE_INFO_MEMBER(0, code, color, 0);
SET_TILE_INFO(0, code, color, 0);
} }
static TILE_GET_INFO( get_tile_info2 ) TILE_GET_INFO_MEMBER(dunhuang_state::get_tile_info2)
{ {
dunhuang_state *state = machine.driver_data<dunhuang_state>(); UINT16 code = m_videoram2[tile_index];
UINT16 code = state->m_videoram2[tile_index]; UINT8 color = m_colorram2[tile_index] & 0x0f;
UINT8 color = state->m_colorram2[tile_index] & 0x0f; SET_TILE_INFO_MEMBER(1, code, color, 0);
SET_TILE_INFO(1, code, color, 0);
} }
static VIDEO_START(dunhuang) static VIDEO_START(dunhuang)
{ {
dunhuang_state *state = machine.driver_data<dunhuang_state>(); dunhuang_state *state = machine.driver_data<dunhuang_state>();
state->m_tmap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20); state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
state->m_tmap2 = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8); state->m_tmap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8);
state->m_tmap->set_transparent_pen(0); state->m_tmap->set_transparent_pen(0);
state->m_tmap2->set_transparent_pen(0); state->m_tmap2->set_transparent_pen(0);

View File

@ -60,6 +60,7 @@ public:
DECLARE_WRITE8_MEMBER(sound_data_w); DECLARE_WRITE8_MEMBER(sound_data_w);
DECLARE_WRITE8_MEMBER(sound_control_w); DECLARE_WRITE8_MEMBER(sound_control_w);
DECLARE_DRIVER_INIT(dynadice); DECLARE_DRIVER_INIT(dynadice);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
@ -192,11 +193,10 @@ static GFXDECODE_START( dynadice )
GFXDECODE_ENTRY( "gfx2", 0, charlayout2, 0, 1 ) /* 3bpp */ GFXDECODE_ENTRY( "gfx2", 0, charlayout2, 0, 1 ) /* 3bpp */
GFXDECODE_END GFXDECODE_END
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(dynadice_state::get_tile_info)
{ {
dynadice_state *state = machine.driver_data<dynadice_state>(); int code = m_videoram[tile_index];
int code = state->m_videoram[tile_index]; SET_TILE_INFO_MEMBER(1, code, 0, 0);
SET_TILE_INFO(1, code, 0, 0);
} }
static VIDEO_START( dynadice ) static VIDEO_START( dynadice )
@ -204,8 +204,8 @@ static VIDEO_START( dynadice )
dynadice_state *state = machine.driver_data<dynadice_state>(); dynadice_state *state = machine.driver_data<dynadice_state>();
/* pacman - style videoram layout */ /* pacman - style videoram layout */
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(dynadice_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
state->m_top_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 2, 32); state->m_top_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 2, 32);
state->m_bg_tilemap->set_scrollx(0, -16); state->m_bg_tilemap->set_scrollx(0, -16);
} }

View File

@ -75,6 +75,7 @@ public:
DECLARE_WRITE8_MEMBER(egghunt_soundlatch_w); DECLARE_WRITE8_MEMBER(egghunt_soundlatch_w);
DECLARE_READ8_MEMBER(egghunt_okibanking_r); DECLARE_READ8_MEMBER(egghunt_okibanking_r);
DECLARE_WRITE8_MEMBER(egghunt_okibanking_w); DECLARE_WRITE8_MEMBER(egghunt_okibanking_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -117,23 +118,22 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,const r
} }
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(egghunt_state::get_bg_tile_info)
{ {
egghunt_state *state = machine.driver_data<egghunt_state>(); int code = ((m_bgram[tile_index * 2 + 1] << 8) | m_bgram[tile_index * 2]) & 0x3fff;
int code = ((state->m_bgram[tile_index * 2 + 1] << 8) | state->m_bgram[tile_index * 2]) & 0x3fff; int colour = m_atram[tile_index] & 0x3f;
int colour = state->m_atram[tile_index] & 0x3f;
if(code & 0x2000) if(code & 0x2000)
{ {
if((state->m_gfx_banking & 3) == 2) if((m_gfx_banking & 3) == 2)
code += 0x2000; code += 0x2000;
else if((state->m_gfx_banking & 3) == 3) else if((m_gfx_banking & 3) == 3)
code += 0x4000; code += 0x4000;
// else if((state->m_gfx_banking & 3) == 1) // else if((m_gfx_banking & 3) == 1)
// code += 0; // code += 0;
} }
SET_TILE_INFO(0, code, colour, 0); SET_TILE_INFO_MEMBER(0, code, colour, 0);
} }
READ8_MEMBER(egghunt_state::egghunt_bgram_r) READ8_MEMBER(egghunt_state::egghunt_bgram_r)
@ -172,7 +172,7 @@ static VIDEO_START(egghunt)
{ {
egghunt_state *state = machine.driver_data<egghunt_state>(); egghunt_state *state = machine.driver_data<egghunt_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(egghunt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
state->save_item(NAME(state->m_bgram)); state->save_item(NAME(state->m_bgram));
state->save_item(NAME(state->m_spram)); state->save_item(NAME(state->m_spram));

View File

@ -56,6 +56,8 @@ public:
DECLARE_WRITE8_MEMBER(b000_w); DECLARE_WRITE8_MEMBER(b000_w);
DECLARE_READ8_MEMBER(b000_r); DECLARE_READ8_MEMBER(b000_r);
DECLARE_WRITE8_MEMBER(b800_w); DECLARE_WRITE8_MEMBER(b800_w);
TILE_GET_INFO_MEMBER(get_tile_info_bg);
TILE_GET_INFO_MEMBER(get_tile_info_fg);
}; };
@ -201,16 +203,14 @@ INLINE void get_tile_info(running_machine &machine, tile_data &tileinfo, int til
SET_TILE_INFO(gfx_code,code,color,0); SET_TILE_INFO(gfx_code,code,color,0);
} }
static TILE_GET_INFO( get_tile_info_bg ) TILE_GET_INFO_MEMBER(ettrivia_state::get_tile_info_bg)
{ {
ettrivia_state *state = machine.driver_data<ettrivia_state>(); get_tile_info(machine(), tileinfo, tile_index, m_bg_videoram, 0);
get_tile_info(machine, tileinfo, tile_index, state->m_bg_videoram, 0);
} }
static TILE_GET_INFO( get_tile_info_fg ) TILE_GET_INFO_MEMBER(ettrivia_state::get_tile_info_fg)
{ {
ettrivia_state *state = machine.driver_data<ettrivia_state>(); get_tile_info(machine(), tileinfo, tile_index, m_fg_videoram, 1);
get_tile_info(machine, tileinfo, tile_index, state->m_fg_videoram, 1);
} }
static PALETTE_INIT( ettrivia ) static PALETTE_INIT( ettrivia )
@ -253,8 +253,8 @@ static PALETTE_INIT( ettrivia )
static VIDEO_START( ettrivia ) static VIDEO_START( ettrivia )
{ {
ettrivia_state *state = machine.driver_data<ettrivia_state>(); ettrivia_state *state = machine.driver_data<ettrivia_state>();
state->m_bg_tilemap = tilemap_create( machine, get_tile_info_bg,TILEMAP_SCAN_ROWS,8,8,64,32 ); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,8,8,64,32 );
state->m_fg_tilemap = tilemap_create( machine, get_tile_info_fg,TILEMAP_SCAN_ROWS,8,8,64,32 ); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8,8,64,32 );
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
} }

View File

@ -95,6 +95,7 @@ public:
DECLARE_READ8_MEMBER(riot_porta_r); DECLARE_READ8_MEMBER(riot_porta_r);
DECLARE_WRITE8_MEMBER(riot_porta_w); DECLARE_WRITE8_MEMBER(riot_porta_w);
DECLARE_WRITE_LINE_MEMBER(riot_irq); DECLARE_WRITE_LINE_MEMBER(riot_irq);
TILE_GET_INFO_MEMBER(bgtile_get_info);
}; };
@ -190,10 +191,9 @@ WRITE8_MEMBER(firefox_state::firefox_disc_data_w)
* *
*************************************/ *************************************/
static TILE_GET_INFO( bgtile_get_info ) TILE_GET_INFO_MEMBER(firefox_state::bgtile_get_info)
{ {
firefox_state *state = machine.driver_data<firefox_state>(); SET_TILE_INFO_MEMBER(0, m_tileram[tile_index], 0, 0);
SET_TILE_INFO(0, state->m_tileram[tile_index], 0, 0);
} }
@ -207,7 +207,7 @@ WRITE8_MEMBER(firefox_state::tileram_w)
static VIDEO_START( firefox ) static VIDEO_START( firefox )
{ {
firefox_state *state = machine.driver_data<firefox_state>(); firefox_state *state = machine.driver_data<firefox_state>();
state->m_bgtiles = tilemap_create(machine, bgtile_get_info, TILEMAP_SCAN_ROWS, 8,8, 64,64); state->m_bgtiles = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firefox_state::bgtile_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64);
state->m_bgtiles->set_transparent_pen(0); state->m_bgtiles->set_transparent_pen(0);
state->m_bgtiles->set_scrolldy(machine.primary_screen->visible_area().min_y, 0); state->m_bgtiles->set_scrolldy(machine.primary_screen->visible_area().min_y, 0);
} }

View File

@ -54,6 +54,8 @@ public:
DECLARE_WRITE8_MEMBER(flyball_pitcher_vert_w); DECLARE_WRITE8_MEMBER(flyball_pitcher_vert_w);
DECLARE_WRITE8_MEMBER(flyball_pitcher_horz_w); DECLARE_WRITE8_MEMBER(flyball_pitcher_horz_w);
DECLARE_WRITE8_MEMBER(flyball_misc_w); DECLARE_WRITE8_MEMBER(flyball_misc_w);
TILEMAP_MAPPER_MEMBER(flyball_get_memory_offset);
TILE_GET_INFO_MEMBER(flyball_get_tile_info);
}; };
@ -63,7 +65,7 @@ public:
* *
*************************************/ *************************************/
static TILEMAP_MAPPER( flyball_get_memory_offset ) TILEMAP_MAPPER_MEMBER(flyball_state::flyball_get_memory_offset)
{ {
if (col == 0) if (col == 0)
col = num_cols; col = num_cols;
@ -72,10 +74,9 @@ static TILEMAP_MAPPER( flyball_get_memory_offset )
} }
static TILE_GET_INFO( flyball_get_tile_info ) TILE_GET_INFO_MEMBER(flyball_state::flyball_get_tile_info)
{ {
flyball_state *state = machine.driver_data<flyball_state>(); UINT8 data = m_playfield_ram[tile_index];
UINT8 data = state->m_playfield_ram[tile_index];
int flags = ((data & 0x40) ? TILE_FLIPX : 0) | ((data & 0x80) ? TILE_FLIPY : 0); int flags = ((data & 0x40) ? TILE_FLIPX : 0) | ((data & 0x80) ? TILE_FLIPY : 0);
int code = data & 63; int code = data & 63;
@ -84,14 +85,14 @@ static TILE_GET_INFO( flyball_get_tile_info )
code += 64; code += 64;
} }
SET_TILE_INFO(0, code, 0, flags); SET_TILE_INFO_MEMBER(0, code, 0, flags);
} }
static VIDEO_START( flyball ) static VIDEO_START( flyball )
{ {
flyball_state *state = machine.driver_data<flyball_state>(); flyball_state *state = machine.driver_data<flyball_state>();
state->m_tmap = tilemap_create(machine, flyball_get_tile_info, flyball_get_memory_offset, 8, 16, 32, 16); state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flyball_state::flyball_get_tile_info),state), tilemap_mapper_delegate(FUNC(flyball_state::flyball_get_memory_offset),state), 8, 16, 32, 16);
} }

View File

@ -86,6 +86,11 @@ public:
DECLARE_WRITE16_MEMBER(galaxi_500004_w); DECLARE_WRITE16_MEMBER(galaxi_500004_w);
DECLARE_CUSTOM_INPUT_MEMBER(ticket_r); DECLARE_CUSTOM_INPUT_MEMBER(ticket_r);
DECLARE_CUSTOM_INPUT_MEMBER(hopper_r); DECLARE_CUSTOM_INPUT_MEMBER(hopper_r);
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
TILE_GET_INFO_MEMBER(get_bg3_tile_info);
TILE_GET_INFO_MEMBER(get_bg4_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -93,39 +98,34 @@ public:
Video Hardware Video Hardware
***************************************************************************/ ***************************************************************************/
static TILE_GET_INFO( get_bg1_tile_info ) TILE_GET_INFO_MEMBER(galaxi_state::get_bg1_tile_info)
{ {
galaxi_state *state = machine.driver_data<galaxi_state>(); UINT16 code = m_bg1_ram[tile_index];
UINT16 code = state->m_bg1_ram[tile_index]; SET_TILE_INFO_MEMBER(0, code, 0x10 + (code >> 12), 0);
SET_TILE_INFO(0, code, 0x10 + (code >> 12), 0);
} }
static TILE_GET_INFO( get_bg2_tile_info ) TILE_GET_INFO_MEMBER(galaxi_state::get_bg2_tile_info)
{ {
galaxi_state *state = machine.driver_data<galaxi_state>(); UINT16 code = m_bg2_ram[tile_index];
UINT16 code = state->m_bg2_ram[tile_index]; SET_TILE_INFO_MEMBER(0, code, 0x10 + (code >> 12), 0);
SET_TILE_INFO(0, code, 0x10 + (code >> 12), 0);
} }
static TILE_GET_INFO( get_bg3_tile_info ) TILE_GET_INFO_MEMBER(galaxi_state::get_bg3_tile_info)
{ {
galaxi_state *state = machine.driver_data<galaxi_state>(); UINT16 code = m_bg3_ram[tile_index];
UINT16 code = state->m_bg3_ram[tile_index]; SET_TILE_INFO_MEMBER(0, code, (code >> 12), 0);
SET_TILE_INFO(0, code, (code >> 12), 0);
} }
static TILE_GET_INFO( get_bg4_tile_info ) TILE_GET_INFO_MEMBER(galaxi_state::get_bg4_tile_info)
{ {
galaxi_state *state = machine.driver_data<galaxi_state>(); UINT16 code = m_bg4_ram[tile_index];
UINT16 code = state->m_bg4_ram[tile_index]; SET_TILE_INFO_MEMBER(0, code, (code >> 12), 0);
SET_TILE_INFO(0, code, (code >> 12), 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(galaxi_state::get_fg_tile_info)
{ {
galaxi_state *state = machine.driver_data<galaxi_state>(); UINT16 code = m_fg_ram[tile_index];
UINT16 code = state->m_fg_ram[tile_index]; SET_TILE_INFO_MEMBER(1, code, 0x20 + (code >> 12), 0);
SET_TILE_INFO(1, code, 0x20 + (code >> 12), 0);
} }
WRITE16_MEMBER(galaxi_state::galaxi_bg1_w) WRITE16_MEMBER(galaxi_state::galaxi_bg1_w)
@ -162,12 +162,12 @@ static VIDEO_START(galaxi)
{ {
galaxi_state *state = machine.driver_data<galaxi_state>(); galaxi_state *state = machine.driver_data<galaxi_state>();
state->m_bg1_tmap = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); state->m_bg1_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
state->m_bg2_tmap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); state->m_bg2_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
state->m_bg3_tmap = tilemap_create(machine, get_bg3_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); state->m_bg3_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
state->m_bg4_tmap = tilemap_create(machine, get_bg4_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10); state->m_bg4_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_bg4_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
state->m_fg_tmap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20); state->m_fg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxi_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
state->m_bg1_tmap->set_transparent_pen(0); state->m_bg1_tmap->set_transparent_pen(0);
state->m_bg2_tmap->set_transparent_pen(0); state->m_bg2_tmap->set_transparent_pen(0);

View File

@ -997,6 +997,8 @@ public:
DECLARE_DRIVER_INIT(vkdlswwc); DECLARE_DRIVER_INIT(vkdlswwc);
DECLARE_DRIVER_INIT(vkdlswwr); DECLARE_DRIVER_INIT(vkdlswwr);
DECLARE_DRIVER_INIT(vkdlswwv); DECLARE_DRIVER_INIT(vkdlswwv);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(wcrdxtnd_get_bg_tile_info);
}; };
@ -1017,9 +1019,8 @@ WRITE8_MEMBER(goldnpkr_state::goldnpkr_colorram_w)
m_bg_tilemap->mark_tile_dirty(offset); m_bg_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(goldnpkr_state::get_bg_tile_info)
{ {
goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
--xx xx-- tiles color. --xx xx-- tiles color.
@ -1028,17 +1029,16 @@ static TILE_GET_INFO( get_bg_tile_info )
xx-- ---- unused. xx-- ---- unused.
*/ */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = ((attr & 1) << 8) | state->m_videoram[tile_index]; int code = ((attr & 1) << 8) | m_videoram[tile_index];
int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */
int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */ int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */
SET_TILE_INFO(bank, code, color, 0); SET_TILE_INFO_MEMBER(bank, code, color, 0);
} }
static TILE_GET_INFO( wcrdxtnd_get_bg_tile_info ) TILE_GET_INFO_MEMBER(goldnpkr_state::wcrdxtnd_get_bg_tile_info)
{ {
goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
/* 16 graphics banks system for VK extended (up & down) PCB's /* 16 graphics banks system for VK extended (up & down) PCB's
- bits - - bits -
@ -1047,24 +1047,24 @@ static TILE_GET_INFO( wcrdxtnd_get_bg_tile_info )
xx-- --xx tiles bank. xx-- --xx tiles bank.
*/ */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = ((attr & 1) << 8) | state->m_videoram[tile_index]; int code = ((attr & 1) << 8) | m_videoram[tile_index];
int bank = (attr & 0x03) + ((attr & 0xc0) >> 4); /* bits 0, 1, 6 & 7 switch the gfx banks */ int bank = (attr & 0x03) + ((attr & 0xc0) >> 4); /* bits 0, 1, 6 & 7 switch the gfx banks */
int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */ int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */
SET_TILE_INFO(bank, code, color, 0); SET_TILE_INFO_MEMBER(bank, code, color, 0);
} }
static VIDEO_START( goldnpkr ) static VIDEO_START( goldnpkr )
{ {
goldnpkr_state *state = machine.driver_data<goldnpkr_state>(); goldnpkr_state *state = machine.driver_data<goldnpkr_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(goldnpkr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static VIDEO_START( wcrdxtnd ) static VIDEO_START( wcrdxtnd )
{ {
goldnpkr_state *state = machine.driver_data<goldnpkr_state>(); goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
state->m_bg_tilemap = tilemap_create(machine, wcrdxtnd_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static SCREEN_UPDATE_IND16( goldnpkr ) static SCREEN_UPDATE_IND16( goldnpkr )

View File

@ -54,6 +54,8 @@ public:
tilemap_t *m_fg_tilemap; tilemap_t *m_fg_tilemap;
DECLARE_WRITE16_MEMBER(fg_tilemapram_w); DECLARE_WRITE16_MEMBER(fg_tilemapram_w);
DECLARE_WRITE16_MEMBER(bg_tilemapram_w); DECLARE_WRITE16_MEMBER(bg_tilemapram_w);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -63,12 +65,11 @@ WRITE16_MEMBER(good_state::fg_tilemapram_w)
m_fg_tilemap->mark_tile_dirty(offset / 2); m_fg_tilemap->mark_tile_dirty(offset / 2);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(good_state::get_fg_tile_info)
{ {
good_state *state = machine.driver_data<good_state>(); int tileno = m_fg_tilemapram[tile_index * 2];
int tileno = state->m_fg_tilemapram[tile_index * 2]; int attr = m_fg_tilemapram[tile_index * 2 + 1] & 0xf;
int attr = state->m_fg_tilemapram[tile_index * 2 + 1] & 0xf; SET_TILE_INFO_MEMBER(0, tileno, attr, 0);
SET_TILE_INFO(0, tileno, attr, 0);
} }
WRITE16_MEMBER(good_state::bg_tilemapram_w) WRITE16_MEMBER(good_state::bg_tilemapram_w)
@ -77,12 +78,11 @@ WRITE16_MEMBER(good_state::bg_tilemapram_w)
m_bg_tilemap->mark_tile_dirty(offset / 2); m_bg_tilemap->mark_tile_dirty(offset / 2);
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(good_state::get_bg_tile_info)
{ {
good_state *state = machine.driver_data<good_state>(); int tileno = m_bg_tilemapram[tile_index * 2];
int tileno = state->m_bg_tilemapram[tile_index * 2]; int attr = m_bg_tilemapram[tile_index * 2 + 1] & 0xf;
int attr = state->m_bg_tilemapram[tile_index * 2 + 1] & 0xf; SET_TILE_INFO_MEMBER(1, tileno, attr, 0);
SET_TILE_INFO(1, tileno, attr, 0);
} }
@ -90,8 +90,8 @@ static TILE_GET_INFO( get_bg_tile_info )
static VIDEO_START( good ) static VIDEO_START( good )
{ {
good_state *state = machine.driver_data<good_state>(); good_state *state = machine.driver_data<good_state>();
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(good_state::get_bg_tile_info),state), 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_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(good_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
state->m_fg_tilemap->set_transparent_pen(0xf); state->m_fg_tilemap->set_transparent_pen(0xf);
} }

View File

@ -177,6 +177,9 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(gstream_mirror_service_r); DECLARE_CUSTOM_INPUT_MEMBER(gstream_mirror_service_r);
DECLARE_CUSTOM_INPUT_MEMBER(gstream_mirror_r); DECLARE_CUSTOM_INPUT_MEMBER(gstream_mirror_r);
DECLARE_DRIVER_INIT(gstream); DECLARE_DRIVER_INIT(gstream);
TILE_GET_INFO_MEMBER(get_gs1_tile_info);
TILE_GET_INFO_MEMBER(get_gs2_tile_info);
TILE_GET_INFO_MEMBER(get_gs3_tile_info);
}; };
@ -441,38 +444,35 @@ GFXDECODE_END
static TILE_GET_INFO( get_gs1_tile_info ) TILE_GET_INFO_MEMBER(gstream_state::get_gs1_tile_info)
{ {
gstream_state *state = machine.driver_data<gstream_state>(); int tileno = (m_vram[tile_index + 0x000 / 4] & 0x0fff0000) >> 16;
int tileno = (state->m_vram[tile_index + 0x000 / 4] & 0x0fff0000) >> 16; int palette = (m_vram[tile_index + 0x000 / 4] & 0xc0000000) >> 30;
int palette = (state->m_vram[tile_index + 0x000 / 4] & 0xc0000000) >> 30; SET_TILE_INFO_MEMBER(0, tileno, palette + 0x10, 0);
SET_TILE_INFO(0, tileno, palette + 0x10, 0);
} }
static TILE_GET_INFO( get_gs2_tile_info ) TILE_GET_INFO_MEMBER(gstream_state::get_gs2_tile_info)
{ {
gstream_state *state = machine.driver_data<gstream_state>(); int tileno = (m_vram[tile_index + 0x400 / 4] & 0x0fff0000) >> 16;
int tileno = (state->m_vram[tile_index + 0x400 / 4] & 0x0fff0000) >> 16; int palette = (m_vram[tile_index + 0x400 / 4] & 0xc0000000) >> 30;
int palette = (state->m_vram[tile_index + 0x400 / 4] & 0xc0000000) >> 30; SET_TILE_INFO_MEMBER(0, tileno + 0x1000, palette + 0x14, 0);
SET_TILE_INFO(0, tileno + 0x1000, palette + 0x14, 0);
} }
static TILE_GET_INFO( get_gs3_tile_info ) TILE_GET_INFO_MEMBER(gstream_state::get_gs3_tile_info)
{ {
gstream_state *state = machine.driver_data<gstream_state>(); int tileno = (m_vram[tile_index + 0x800 / 4] & 0x0fff0000) >> 16;
int tileno = (state->m_vram[tile_index + 0x800 / 4] & 0x0fff0000) >> 16; int palette = (m_vram[tile_index + 0x800 / 4] & 0xc0000000) >> 30;
int palette = (state->m_vram[tile_index + 0x800 / 4] & 0xc0000000) >> 30; SET_TILE_INFO_MEMBER(0, tileno + 0x2000, palette + 0x18, 0);
SET_TILE_INFO(0, tileno + 0x2000, palette + 0x18, 0);
} }
static VIDEO_START(gstream) static VIDEO_START(gstream)
{ {
gstream_state *state = machine.driver_data<gstream_state>(); gstream_state *state = machine.driver_data<gstream_state>();
state->m_tilemap1 = tilemap_create(machine, get_gs1_tile_info, TILEMAP_SCAN_ROWS, 32, 32, 16, 16); state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs1_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
state->m_tilemap2 = tilemap_create(machine, get_gs2_tile_info, TILEMAP_SCAN_ROWS, 32, 32, 16, 16); state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs2_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
state->m_tilemap3 = tilemap_create(machine, get_gs3_tile_info, TILEMAP_SCAN_ROWS, 32, 32, 16, 16); state->m_tilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstream_state::get_gs3_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 16, 16);
state->m_tilemap1->set_transparent_pen(0); state->m_tilemap1->set_transparent_pen(0);
state->m_tilemap2->set_transparent_pen(0); state->m_tilemap2->set_transparent_pen(0);

View File

@ -122,6 +122,7 @@ public:
DECLARE_WRITE8_MEMBER(mermaid_p2_w); DECLARE_WRITE8_MEMBER(mermaid_p2_w);
DECLARE_READ8_MEMBER(mermaid_p3_r); DECLARE_READ8_MEMBER(mermaid_p3_r);
DECLARE_WRITE8_MEMBER(mermaid_p3_w); DECLARE_WRITE8_MEMBER(mermaid_p3_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -160,21 +161,20 @@ static MACHINE_RESET( hvyunit )
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(hvyunit_state::get_bg_tile_info)
{ {
hvyunit_state *state = machine.driver_data<hvyunit_state>();
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = state->m_videoram[tile_index] + ((attr & 0x0f) << 8); int code = m_videoram[tile_index] + ((attr & 0x0f) << 8);
int color = (attr >> 4); int color = (attr >> 4);
SET_TILE_INFO(1, code, color, 0); SET_TILE_INFO_MEMBER(1, code, color, 0);
} }
static VIDEO_START( hvyunit ) static VIDEO_START( hvyunit )
{ {
hvyunit_state *state = machine.driver_data<hvyunit_state>(); hvyunit_state *state = machine.driver_data<hvyunit_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
} }
static SCREEN_UPDATE_IND16( hvyunit ) static SCREEN_UPDATE_IND16( hvyunit )

View File

@ -77,6 +77,15 @@ public:
void show_out(); void show_out();
DECLARE_CUSTOM_INPUT_MEMBER(hopper_r); DECLARE_CUSTOM_INPUT_MEMBER(hopper_r);
DECLARE_DRIVER_INIT(jingbell); DECLARE_DRIVER_INIT(jingbell);
TILE_GET_INFO_MEMBER(get_jingbell_reel1_tile_info);
TILE_GET_INFO_MEMBER(get_gp98_reel1_tile_info);
TILE_GET_INFO_MEMBER(get_jingbell_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_gp98_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_jingbell_reel3_tile_info);
TILE_GET_INFO_MEMBER(get_gp98_reel3_tile_info);
TILE_GET_INFO_MEMBER(get_jingbell_reel4_tile_info);
TILE_GET_INFO_MEMBER(get_gp98_reel4_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -92,12 +101,11 @@ WRITE8_MEMBER(igs009_state::gp98_reel1_ram_w)
m_gp98_reel1_tilemap->mark_tile_dirty(offset); m_gp98_reel1_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_jingbell_reel1_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_jingbell_reel1_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_gp98_reel1_ram[tile_index];
int code = state->m_gp98_reel1_ram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code)+(((tile_index+1)&0x3)*0x100), (code)+(((tile_index+1)&0x3)*0x100),
(code & 0x80) ? 0xc : 0, (code & 0x80) ? 0xc : 0,
@ -105,12 +113,11 @@ static TILE_GET_INFO( get_jingbell_reel1_tile_info )
} }
static TILE_GET_INFO( get_gp98_reel1_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_gp98_reel1_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_gp98_reel1_ram[tile_index];
int code = state->m_gp98_reel1_ram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code*4)+(tile_index&0x3), (code*4)+(tile_index&0x3),
0, 0,
@ -124,24 +131,22 @@ WRITE8_MEMBER(igs009_state::gp98_reel2_ram_w)
m_gp98_reel2_tilemap->mark_tile_dirty(offset); m_gp98_reel2_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_jingbell_reel2_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_jingbell_reel2_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_gp98_reel2_ram[tile_index];
int code = state->m_gp98_reel2_ram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code)+(((tile_index+1)&0x3)*0x100), (code)+(((tile_index+1)&0x3)*0x100),
(code & 0x80) ? 0xc : 0, (code & 0x80) ? 0xc : 0,
0); 0);
} }
static TILE_GET_INFO( get_gp98_reel2_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_gp98_reel2_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_gp98_reel2_ram[tile_index];
int code = state->m_gp98_reel2_ram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code*4)+(tile_index&0x3), (code*4)+(tile_index&0x3),
0, 0,
@ -156,24 +161,22 @@ WRITE8_MEMBER(igs009_state::gp98_reel3_ram_w)
m_gp98_reel3_tilemap->mark_tile_dirty(offset); m_gp98_reel3_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_jingbell_reel3_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_jingbell_reel3_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_gp98_reel3_ram[tile_index];
int code = state->m_gp98_reel3_ram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code)+(((tile_index+1)&0x3)*0x100), (code)+(((tile_index+1)&0x3)*0x100),
(code & 0x80) ? 0xc : 0, (code & 0x80) ? 0xc : 0,
0); 0);
} }
static TILE_GET_INFO( get_gp98_reel3_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_gp98_reel3_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_gp98_reel3_ram[tile_index];
int code = state->m_gp98_reel3_ram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code*4)+(tile_index&0x3), (code*4)+(tile_index&0x3),
0, 0,
@ -188,24 +191,22 @@ WRITE8_MEMBER(igs009_state::gp98_reel4_ram_w)
m_gp98_reel4_tilemap->mark_tile_dirty(offset); m_gp98_reel4_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_jingbell_reel4_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_jingbell_reel4_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_gp98_reel4_ram[tile_index];
int code = state->m_gp98_reel4_ram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code)+(((tile_index+1)&0x3)*0x100), (code)+(((tile_index+1)&0x3)*0x100),
(code & 0x80) ? 0xc : 0, (code & 0x80) ? 0xc : 0,
0); 0);
} }
static TILE_GET_INFO( get_gp98_reel4_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_gp98_reel4_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_gp98_reel4_ram[tile_index];
int code = state->m_gp98_reel4_ram[tile_index];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code*4)+(tile_index&0x3), (code*4)+(tile_index&0x3),
0, 0,
@ -225,11 +226,10 @@ WRITE8_MEMBER(igs009_state::bg_scroll_w)
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(igs009_state::get_fg_tile_info)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8);
int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8); SET_TILE_INFO_MEMBER(1, code, (4*(code >> 14)+3), 0);
SET_TILE_INFO(1, code, (4*(code >> 14)+3), 0);
} }
WRITE8_MEMBER(igs009_state::fg_tile_w) WRITE8_MEMBER(igs009_state::fg_tile_w)
@ -247,13 +247,13 @@ WRITE8_MEMBER(igs009_state::fg_color_w)
static VIDEO_START(jingbell) static VIDEO_START(jingbell)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); igs009_state *state = machine.driver_data<igs009_state>();
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
state->m_gp98_reel1_tilemap = tilemap_create(machine,get_jingbell_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
state->m_gp98_reel2_tilemap = tilemap_create(machine,get_jingbell_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
state->m_gp98_reel3_tilemap = tilemap_create(machine,get_jingbell_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
state->m_gp98_reel4_tilemap = tilemap_create(machine,get_jingbell_reel4_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
state->m_gp98_reel1_tilemap->set_scroll_cols(128); state->m_gp98_reel1_tilemap->set_scroll_cols(128);
state->m_gp98_reel2_tilemap->set_scroll_cols(128); state->m_gp98_reel2_tilemap->set_scroll_cols(128);
@ -265,13 +265,13 @@ static VIDEO_START(jingbell)
static VIDEO_START(gp98) static VIDEO_START(gp98)
{ {
igs009_state *state = machine.driver_data<igs009_state>(); igs009_state *state = machine.driver_data<igs009_state>();
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
state->m_gp98_reel1_tilemap = tilemap_create(machine,get_gp98_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
state->m_gp98_reel2_tilemap = tilemap_create(machine,get_gp98_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
state->m_gp98_reel3_tilemap = tilemap_create(machine,get_gp98_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
state->m_gp98_reel4_tilemap = tilemap_create(machine,get_gp98_reel4_tile_info,TILEMAP_SCAN_ROWS,8,32, 128, 8); state->m_gp98_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 128, 8);
state->m_gp98_reel1_tilemap->set_scroll_cols(128); state->m_gp98_reel1_tilemap->set_scroll_cols(128);
state->m_gp98_reel2_tilemap->set_scroll_cols(128); state->m_gp98_reel2_tilemap->set_scroll_cols(128);

View File

@ -148,6 +148,8 @@ public:
DECLARE_DRIVER_INIT(tarzana); DECLARE_DRIVER_INIT(tarzana);
DECLARE_DRIVER_INIT(lhzb2a); DECLARE_DRIVER_INIT(lhzb2a);
DECLARE_DRIVER_INIT(mgdha); DECLARE_DRIVER_INIT(mgdha);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -178,19 +180,17 @@ static VIDEO_RESET( igs017 )
#define COLOR(_X) (((_X)>>2)&7) #define COLOR(_X) (((_X)>>2)&7)
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(igs017_state::get_fg_tile_info)
{ {
igs017_state *state = machine.driver_data<igs017_state>(); int code = m_fg_videoram[tile_index*4+0] + (m_fg_videoram[tile_index*4+1] << 8);
int code = state->m_fg_videoram[tile_index*4+0] + (state->m_fg_videoram[tile_index*4+1] << 8); int attr = m_fg_videoram[tile_index*4+2] + (m_fg_videoram[tile_index*4+3] << 8);
int attr = state->m_fg_videoram[tile_index*4+2] + (state->m_fg_videoram[tile_index*4+3] << 8); SET_TILE_INFO_MEMBER(0, code, COLOR(attr), TILE_FLIPXY( attr >> 5 ));
SET_TILE_INFO(0, code, COLOR(attr), TILE_FLIPXY( attr >> 5 ));
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(igs017_state::get_bg_tile_info)
{ {
igs017_state *state = machine.driver_data<igs017_state>(); int code = m_bg_videoram[tile_index*4+0] + (m_bg_videoram[tile_index*4+1] << 8);
int code = state->m_bg_videoram[tile_index*4+0] + (state->m_bg_videoram[tile_index*4+1] << 8); int attr = m_bg_videoram[tile_index*4+2] + (m_bg_videoram[tile_index*4+3] << 8);
int attr = state->m_bg_videoram[tile_index*4+2] + (state->m_bg_videoram[tile_index*4+3] << 8); SET_TILE_INFO_MEMBER(0, code, COLOR(attr)+8, TILE_FLIPXY( attr >> 5 ));
SET_TILE_INFO(0, code, COLOR(attr)+8, TILE_FLIPXY( attr >> 5 ));
} }
WRITE8_MEMBER(igs017_state::fg_w) WRITE8_MEMBER(igs017_state::fg_w)
@ -264,8 +264,8 @@ static void expand_sprites(running_machine &machine)
static VIDEO_START( igs017 ) static VIDEO_START( igs017 )
{ {
igs017_state *state = machine.driver_data<igs017_state>(); igs017_state *state = machine.driver_data<igs017_state>();
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs017_state::get_fg_tile_info),state),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_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs017_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
state->m_fg_tilemap->set_transparent_pen(0xf); state->m_fg_tilemap->set_transparent_pen(0xf);
state->m_bg_tilemap->set_transparent_pen(0xf); state->m_bg_tilemap->set_transparent_pen(0xf);

View File

@ -55,6 +55,8 @@ public:
DECLARE_DRIVER_INIT(hauntedh); DECLARE_DRIVER_INIT(hauntedh);
DECLARE_DRIVER_INIT(bigd2); DECLARE_DRIVER_INIT(bigd2);
DECLARE_DRIVER_INIT(klxyj); DECLARE_DRIVER_INIT(klxyj);
TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info);
}; };
@ -125,15 +127,14 @@ WRITE32_MEMBER(igs_m027_state::igs_tx_videoram_w)
//logerror( "TX VIDEO RAM OFFSET %x ,data %x!\n",offset ,m_igs_tx_videoram[offset]); //logerror( "TX VIDEO RAM OFFSET %x ,data %x!\n",offset ,m_igs_tx_videoram[offset]);
} }
static TILE_GET_INFO( get_tx_tilemap_tile_info ) TILE_GET_INFO_MEMBER(igs_m027_state::get_tx_tilemap_tile_info)
{ {
igs_m027_state *state = machine.driver_data<igs_m027_state>();
//ppppppppNNNNNNNN //ppppppppNNNNNNNN
int tileno,colour; int tileno,colour;
tileno = state->m_igs_tx_videoram[tile_index] & 0xffff; tileno = m_igs_tx_videoram[tile_index] & 0xffff;
colour = (state->m_igs_tx_videoram[tile_index]>>0x10) & 0xffff; colour = (m_igs_tx_videoram[tile_index]>>0x10) & 0xffff;
SET_TILE_INFO(0,tileno,colour,0); SET_TILE_INFO_MEMBER(0,tileno,colour,0);
} }
/* BG Layer */ /* BG Layer */
@ -145,15 +146,14 @@ WRITE32_MEMBER(igs_m027_state::igs_bg_videoram_w)
logerror("BG VIDEO RAM OFFSET %x ,data %x!\n",offset ,m_igs_bg_videoram[offset]); logerror("BG VIDEO RAM OFFSET %x ,data %x!\n",offset ,m_igs_bg_videoram[offset]);
} }
static TILE_GET_INFO( get_bg_tilemap_tile_info ) TILE_GET_INFO_MEMBER(igs_m027_state::get_bg_tilemap_tile_info)
{ {
igs_m027_state *state = machine.driver_data<igs_m027_state>();
//ppppppppNNNNNNNN //ppppppppNNNNNNNN
int tileno,colour; int tileno,colour;
tileno = state->m_igs_bg_videoram[tile_index] & 0xffff; tileno = m_igs_bg_videoram[tile_index] & 0xffff;
colour = (state->m_igs_bg_videoram[tile_index]>>0x10) & 0xffff; colour = (m_igs_bg_videoram[tile_index]>>0x10) & 0xffff;
SET_TILE_INFO(0,tileno,colour,0); SET_TILE_INFO_MEMBER(0,tileno,colour,0);
} }
@ -173,10 +173,10 @@ WRITE32_MEMBER(igs_m027_state::igs_palette32_w)
static VIDEO_START(igs_majhong) static VIDEO_START(igs_majhong)
{ {
igs_m027_state *state = machine.driver_data<igs_m027_state>(); igs_m027_state *state = machine.driver_data<igs_m027_state>();
state->m_igs_tx_tilemap= tilemap_create(machine, get_tx_tilemap_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_igs_tx_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_tx_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32);
state->m_igs_tx_tilemap->set_transparent_pen(15); state->m_igs_tx_tilemap->set_transparent_pen(15);
state->m_igs_bg_tilemap= tilemap_create(machine, get_bg_tilemap_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); state->m_igs_bg_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32);
//state->m_igs_bg_tilemap= tilemap_create(machine, get_bg_tilemap_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); //state->m_igs_bg_tilemap= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32);
//state->m_igs_bg_tilemap->set_transparent_pen(15); //state->m_igs_bg_tilemap->set_transparent_pen(15);
logerror("Video START OK!\n"); logerror("Video START OK!\n");
} }

View File

@ -114,6 +114,8 @@ public:
DECLARE_DRIVER_INIT(cpoker); DECLARE_DRIVER_INIT(cpoker);
DECLARE_DRIVER_INIT(igs_ncs2); DECLARE_DRIVER_INIT(igs_ncs2);
DECLARE_DRIVER_INIT(cpokerpk); DECLARE_DRIVER_INIT(cpokerpk);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -154,19 +156,17 @@ WRITE8_MEMBER(igspoker_state::igs_irqack_w)
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(igspoker_state::get_bg_tile_info)
{ {
igspoker_state *state = machine.driver_data<igspoker_state>(); int code = m_bg_tile_ram[tile_index];
int code = state->m_bg_tile_ram[tile_index]; SET_TILE_INFO_MEMBER(1 + (tile_index & 3), code, 0, 0);
SET_TILE_INFO(1 + (tile_index & 3), code, 0, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(igspoker_state::get_fg_tile_info)
{ {
igspoker_state *state = machine.driver_data<igspoker_state>(); int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8);
int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8);
int tile = code & 0x1fff; int tile = code & 0x1fff;
SET_TILE_INFO(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); SET_TILE_INFO_MEMBER(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0);
} }
WRITE8_MEMBER(igspoker_state::bg_tile_w) WRITE8_MEMBER(igspoker_state::bg_tile_w)
@ -190,8 +190,8 @@ WRITE8_MEMBER(igspoker_state::fg_color_w)
static VIDEO_START(igs_video) static VIDEO_START(igs_video)
{ {
igspoker_state *state = machine.driver_data<igspoker_state>(); igspoker_state *state = machine.driver_data<igspoker_state>();
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
} }
@ -212,7 +212,7 @@ static SCREEN_UPDATE_IND16(igs_video)
static VIDEO_START(cpokerpk) static VIDEO_START(cpokerpk)
{ {
igspoker_state *state = machine.driver_data<igspoker_state>(); igspoker_state *state = machine.driver_data<igspoker_state>();
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
} }
static SCREEN_UPDATE_IND16(cpokerpk) static SCREEN_UPDATE_IND16(cpokerpk)

View File

@ -104,17 +104,20 @@ public:
void show_out(); void show_out();
DECLARE_CUSTOM_INPUT_MEMBER(hopper_r); DECLARE_CUSTOM_INPUT_MEMBER(hopper_r);
DECLARE_DRIVER_INIT(jackie); DECLARE_DRIVER_INIT(jackie);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_jackie_reel1_tile_info);
TILE_GET_INFO_MEMBER(get_jackie_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_jackie_reel3_tile_info);
}; };
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(jackie_state::get_fg_tile_info)
{ {
jackie_state *state = machine.driver_data<jackie_state>(); int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8);
int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8);
int tile = code & 0x1fff; int tile = code & 0x1fff;
SET_TILE_INFO(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); SET_TILE_INFO_MEMBER(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0);
} }
WRITE8_MEMBER(jackie_state::fg_tile_w) WRITE8_MEMBER(jackie_state::fg_tile_w)
@ -144,11 +147,10 @@ WRITE8_MEMBER(jackie_state::jackie_reel1_ram_w)
m_reel1_tilemap->mark_tile_dirty(offset); m_reel1_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_jackie_reel1_tile_info ) TILE_GET_INFO_MEMBER(jackie_state::get_jackie_reel1_tile_info)
{ {
jackie_state *state = machine.driver_data<jackie_state>(); int code = m_reel1_ram[tile_index];
int code = state->m_reel1_ram[tile_index]; SET_TILE_INFO_MEMBER(1, code, 0, 0);
SET_TILE_INFO(1, code, 0, 0);
} }
@ -159,11 +161,10 @@ WRITE8_MEMBER(jackie_state::jackie_reel2_ram_w)
m_reel2_tilemap->mark_tile_dirty(offset); m_reel2_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_jackie_reel2_tile_info ) TILE_GET_INFO_MEMBER(jackie_state::get_jackie_reel2_tile_info)
{ {
jackie_state *state = machine.driver_data<jackie_state>(); int code = m_reel2_ram[tile_index];
int code = state->m_reel2_ram[tile_index]; SET_TILE_INFO_MEMBER(1, code, 0, 0);
SET_TILE_INFO(1, code, 0, 0);
} }
@ -173,25 +174,24 @@ WRITE8_MEMBER(jackie_state::jackie_reel3_ram_w)
m_reel3_tilemap->mark_tile_dirty(offset); m_reel3_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_jackie_reel3_tile_info ) TILE_GET_INFO_MEMBER(jackie_state::get_jackie_reel3_tile_info)
{ {
jackie_state *state = machine.driver_data<jackie_state>(); int code = m_reel3_ram[tile_index];
int code = state->m_reel3_ram[tile_index]; SET_TILE_INFO_MEMBER(1, code, 0, 0);
SET_TILE_INFO(1, code, 0, 0);
} }
static VIDEO_START(jackie) static VIDEO_START(jackie)
{ {
jackie_state *state = machine.driver_data<jackie_state>(); jackie_state *state = machine.driver_data<jackie_state>();
state->m_reel1_tilemap = tilemap_create(machine,get_jackie_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8);
state->m_reel2_tilemap = tilemap_create(machine,get_jackie_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8);
state->m_reel3_tilemap = tilemap_create(machine,get_jackie_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_jackie_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8);
state->m_reel1_tilemap->set_scroll_cols(64); state->m_reel1_tilemap->set_scroll_cols(64);
state->m_reel2_tilemap->set_scroll_cols(64); state->m_reel2_tilemap->set_scroll_cols(64);
state->m_reel3_tilemap->set_scroll_cols(64); state->m_reel3_tilemap->set_scroll_cols(64);
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackie_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
} }

View File

@ -191,6 +191,16 @@ public:
DECLARE_DRIVER_INIT(kakumei2); DECLARE_DRIVER_INIT(kakumei2);
DECLARE_DRIVER_INIT(daireika); DECLARE_DRIVER_INIT(daireika);
DECLARE_DRIVER_INIT(mjzoomin); DECLARE_DRIVER_INIT(mjzoomin);
TILEMAP_MAPPER_MEMBER(range0_16x16);
TILEMAP_MAPPER_MEMBER(range1_16x16);
TILEMAP_MAPPER_MEMBER(range2_16x16);
TILEMAP_MAPPER_MEMBER(range3_16x16);
TILEMAP_MAPPER_MEMBER(range2_8x8);
TILEMAP_MAPPER_MEMBER(range3_8x8);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
TILE_GET_INFO_MEMBER(get_sc1_tile_info);
TILE_GET_INFO_MEMBER(get_sc2_tile_info);
TILE_GET_INFO_MEMBER(get_sc3_tile_info);
}; };
@ -201,28 +211,28 @@ Video Hardware start
******************************************************************************************/ ******************************************************************************************/
/*4096x512 tilemap*/ /*4096x512 tilemap*/
static TILEMAP_MAPPER( range0_16x16 ) TILEMAP_MAPPER_MEMBER(jalmah_state::range0_16x16)
{ {
/* logical (col,row) -> memory offset */ /* logical (col,row) -> memory offset */
return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8); return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8);
} }
/*2048x1024 tilemap*/ /*2048x1024 tilemap*/
static TILEMAP_MAPPER( range1_16x16 ) TILEMAP_MAPPER_MEMBER(jalmah_state::range1_16x16)
{ {
/* logical (col,row) -> memory offset */ /* logical (col,row) -> memory offset */
return (row & 0x0f) + ((col & 0x7f) << 4) + ((row & 0xf0) << 7); return (row & 0x0f) + ((col & 0x7f) << 4) + ((row & 0xf0) << 7);
} }
/*1024x2048 tilemap*/ /*1024x2048 tilemap*/
static TILEMAP_MAPPER( range2_16x16 ) TILEMAP_MAPPER_MEMBER(jalmah_state::range2_16x16)
{ {
/* logical (col,row) -> memory offset */ /* logical (col,row) -> memory offset */
return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x1f0) << 6); return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x1f0) << 6);
} }
/*512x4096 tilemap*/ /*512x4096 tilemap*/
static TILEMAP_MAPPER( range3_16x16 ) TILEMAP_MAPPER_MEMBER(jalmah_state::range3_16x16)
{ {
/* logical (col,row) -> memory offset */ /* logical (col,row) -> memory offset */
return (row & 0x0f) + ((col & 0x1f) << 4) + ((row & 0x3f0) << 5); return (row & 0x0f) + ((col & 0x1f) << 4) + ((row & 0x3f0) << 5);
@ -230,56 +240,52 @@ static TILEMAP_MAPPER( range3_16x16 )
/*1024x512 tilemap*/ /*1024x512 tilemap*/
static TILEMAP_MAPPER( range2_8x8 ) TILEMAP_MAPPER_MEMBER(jalmah_state::range2_8x8)
{ {
/* logical (col,row) -> memory offset */ /* logical (col,row) -> memory offset */
return (row & 0x1f) + ((col & 0x7f) * 0x20) + ((row & 0x20) * 0x80); return (row & 0x1f) + ((col & 0x7f) * 0x20) + ((row & 0x20) * 0x80);
} }
/*512x1024 tilemap*/ /*512x1024 tilemap*/
static TILEMAP_MAPPER( range3_8x8 ) TILEMAP_MAPPER_MEMBER(jalmah_state::range3_8x8)
{ {
return (row & 0x1f) + ((col & 0x3f) * 0x20) + ((row & 0x60) * 0x40); return (row & 0x1f) + ((col & 0x3f) * 0x20) + ((row & 0x60) * 0x40);
} }
static TILE_GET_INFO( get_sc0_tile_info ) TILE_GET_INFO_MEMBER(jalmah_state::get_sc0_tile_info)
{ {
jalmah_state *state = machine.driver_data<jalmah_state>(); int code = m_sc0_vram[tile_index];
int code = state->m_sc0_vram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
3, 3,
(code & 0xfff) + ((state->m_sc0bank & 3) << 12), (code & 0xfff) + ((m_sc0bank & 3) << 12),
code >> 12, code >> 12,
0); 0);
} }
static TILE_GET_INFO( get_sc1_tile_info ) TILE_GET_INFO_MEMBER(jalmah_state::get_sc1_tile_info)
{ {
jalmah_state *state = machine.driver_data<jalmah_state>(); int code = m_sc1_vram[tile_index];
int code = state->m_sc1_vram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
2, 2,
code & 0xfff, code & 0xfff,
code >> 12, code >> 12,
0); 0);
} }
static TILE_GET_INFO( get_sc2_tile_info ) TILE_GET_INFO_MEMBER(jalmah_state::get_sc2_tile_info)
{ {
jalmah_state *state = machine.driver_data<jalmah_state>(); int code = m_sc2_vram[tile_index];
int code = state->m_sc2_vram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
1, 1,
code & 0xfff, code & 0xfff,
code >> 12, code >> 12,
0); 0);
} }
static TILE_GET_INFO( get_sc3_tile_info ) TILE_GET_INFO_MEMBER(jalmah_state::get_sc3_tile_info)
{ {
jalmah_state *state = machine.driver_data<jalmah_state>(); int code = m_sc3_vram[tile_index];
int code = state->m_sc3_vram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
0, 0,
code & 0xfff, code & 0xfff,
code >> 12, code >> 12,
@ -289,25 +295,25 @@ static TILE_GET_INFO( get_sc3_tile_info )
static VIDEO_START( jalmah ) static VIDEO_START( jalmah )
{ {
jalmah_state *state = machine.driver_data<jalmah_state>(); jalmah_state *state = machine.driver_data<jalmah_state>();
state->m_sc0_tilemap_0 = tilemap_create(machine, get_sc0_tile_info,range0_16x16,16,16,256,32); state->m_sc0_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
state->m_sc0_tilemap_1 = tilemap_create(machine, get_sc0_tile_info,range1_16x16,16,16,128,64); state->m_sc0_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
state->m_sc0_tilemap_2 = tilemap_create(machine, get_sc0_tile_info,range2_16x16,16,16,64,128); state->m_sc0_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
state->m_sc0_tilemap_3 = tilemap_create(machine, get_sc0_tile_info,range3_16x16,16,16,32,256); state->m_sc0_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
state->m_sc1_tilemap_0 = tilemap_create(machine, get_sc1_tile_info,range0_16x16,16,16,256,32); state->m_sc1_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
state->m_sc1_tilemap_1 = tilemap_create(machine, get_sc1_tile_info,range1_16x16,16,16,128,64); state->m_sc1_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
state->m_sc1_tilemap_2 = tilemap_create(machine, get_sc1_tile_info,range2_16x16,16,16,64,128); state->m_sc1_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
state->m_sc1_tilemap_3 = tilemap_create(machine, get_sc1_tile_info,range3_16x16,16,16,32,256); state->m_sc1_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
state->m_sc2_tilemap_0 = tilemap_create(machine, get_sc2_tile_info,range0_16x16,16,16,256,32); state->m_sc2_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
state->m_sc2_tilemap_1 = tilemap_create(machine, get_sc2_tile_info,range1_16x16,16,16,128,64); state->m_sc2_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
state->m_sc2_tilemap_2 = tilemap_create(machine, get_sc2_tile_info,range2_16x16,16,16,64,128); state->m_sc2_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
state->m_sc2_tilemap_3 = tilemap_create(machine, get_sc2_tile_info,range3_16x16,16,16,32,256); state->m_sc2_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
state->m_sc3_tilemap_0 = tilemap_create(machine, get_sc3_tile_info,TILEMAP_SCAN_COLS,8,8,256,32); state->m_sc3_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),TILEMAP_SCAN_COLS,8,8,256,32);
//state->m_sc3_tilemap_1 = tilemap_create(machine, get_sc3_tile_info,TILEMAP_SCAN_COLS,8,8,256,32); //state->m_sc3_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),TILEMAP_SCAN_COLS,8,8,256,32);
state->m_sc3_tilemap_2 = tilemap_create(machine, get_sc3_tile_info,range2_8x8,8,8,128,64); state->m_sc3_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),state),8,8,128,64);
state->m_sc3_tilemap_3 = tilemap_create(machine, get_sc3_tile_info,range3_8x8,8,8,64,128); state->m_sc3_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_8x8),state),8,8,64,128);
state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2); state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2);
state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2); state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2);
@ -336,8 +342,8 @@ static VIDEO_START( jalmah )
static VIDEO_START( urashima ) static VIDEO_START( urashima )
{ {
jalmah_state *state = machine.driver_data<jalmah_state>(); jalmah_state *state = machine.driver_data<jalmah_state>();
state->m_sc0_tilemap_0 = tilemap_create(machine, get_sc0_tile_info,range0_16x16,16,16,256,32); state->m_sc0_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
state->m_sc3_tilemap_0 = tilemap_create(machine, get_sc3_tile_info,range2_8x8,8,8,128,64); state->m_sc3_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),state),8,8,128,64);
state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2); state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2);
state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2); state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2);

View File

@ -138,6 +138,8 @@ public:
DECLARE_WRITE32_MEMBER(darkhors_unk1_w); DECLARE_WRITE32_MEMBER(darkhors_unk1_w);
DECLARE_WRITE32_MEMBER(darkhors_eeprom_w); DECLARE_WRITE32_MEMBER(darkhors_eeprom_w);
DECLARE_DRIVER_INIT(darkhors); DECLARE_DRIVER_INIT(darkhors);
TILE_GET_INFO_MEMBER(get_tile_info_0);
TILE_GET_INFO_MEMBER(get_tile_info_1);
}; };
@ -155,20 +157,18 @@ static VIDEO_START( darkhors );
static SCREEN_UPDATE_IND16( darkhors ); static SCREEN_UPDATE_IND16( darkhors );
static TILE_GET_INFO( get_tile_info_0 ) TILE_GET_INFO_MEMBER(darkhors_state::get_tile_info_0)
{ {
darkhors_state *state = machine.driver_data<darkhors_state>(); UINT16 tile = m_tmapram[tile_index] >> 16;
UINT16 tile = state->m_tmapram[tile_index] >> 16; UINT16 color = m_tmapram[tile_index] & 0xffff;
UINT16 color = state->m_tmapram[tile_index] & 0xffff; SET_TILE_INFO_MEMBER(0, tile/2, (color & 0x200) ? (color & 0x1ff) : ((color & 0x0ff) * 4) , 0);
SET_TILE_INFO(0, tile/2, (color & 0x200) ? (color & 0x1ff) : ((color & 0x0ff) * 4) , 0);
} }
static TILE_GET_INFO( get_tile_info_1 ) TILE_GET_INFO_MEMBER(darkhors_state::get_tile_info_1)
{ {
darkhors_state *state = machine.driver_data<darkhors_state>(); UINT16 tile = m_tmapram2[tile_index] >> 16;
UINT16 tile = state->m_tmapram2[tile_index] >> 16; UINT16 color = m_tmapram2[tile_index] & 0xffff;
UINT16 color = state->m_tmapram2[tile_index] & 0xffff; SET_TILE_INFO_MEMBER(0, tile/2, (color & 0x200) ? (color & 0x1ff) : ((color & 0x0ff) * 4) , 0);
SET_TILE_INFO(0, tile/2, (color & 0x200) ? (color & 0x1ff) : ((color & 0x0ff) * 4) , 0);
} }
WRITE32_MEMBER(darkhors_state::darkhors_tmapram_w) WRITE32_MEMBER(darkhors_state::darkhors_tmapram_w)
@ -220,12 +220,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
static VIDEO_START( darkhors ) static VIDEO_START( darkhors )
{ {
darkhors_state *state = machine.driver_data<darkhors_state>(); darkhors_state *state = machine.driver_data<darkhors_state>();
state->m_tmap = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
16,16, 0x40,0x40 ); state->m_tmap2= &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
state->m_tmap2 = tilemap_create( machine, get_tile_info_1, TILEMAP_SCAN_ROWS,
16,16, 0x40,0x40 );
state->m_tmap->set_transparent_pen(0); state->m_tmap->set_transparent_pen(0);
state->m_tmap2->set_transparent_pen(0); state->m_tmap2->set_transparent_pen(0);

View File

@ -114,6 +114,7 @@ public:
DECLARE_WRITE8_MEMBER(testa_w); DECLARE_WRITE8_MEMBER(testa_w);
DECLARE_WRITE8_MEMBER(testb_w); DECLARE_WRITE8_MEMBER(testb_w);
DECLARE_DRIVER_INIT(jokrwild); DECLARE_DRIVER_INIT(jokrwild);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -136,26 +137,25 @@ WRITE8_MEMBER(jokrwild_state::jokrwild_colorram_w)
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(jokrwild_state::get_bg_tile_info)
{ {
jokrwild_state *state = machine.driver_data<jokrwild_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
xx-- ---- bank select. xx-- ---- bank select.
---- xxxx color code. ---- xxxx color code.
*/ */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = state->m_videoram[tile_index] | ((attr & 0xc0) << 2); int code = m_videoram[tile_index] | ((attr & 0xc0) << 2);
int color = (attr & 0x0f); int color = (attr & 0x0f);
SET_TILE_INFO( 0, code , color , 0); SET_TILE_INFO_MEMBER( 0, code , color , 0);
} }
static VIDEO_START( jokrwild ) static VIDEO_START( jokrwild )
{ {
jokrwild_state *state = machine.driver_data<jokrwild_state>(); jokrwild_state *state = machine.driver_data<jokrwild_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 24, 26); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jokrwild_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 24, 26);
} }

View File

@ -134,6 +134,7 @@ public:
DECLARE_WRITE8_MEMBER(jollyjgr_attrram_w); DECLARE_WRITE8_MEMBER(jollyjgr_attrram_w);
DECLARE_WRITE8_MEMBER(jollyjgr_misc_w); DECLARE_WRITE8_MEMBER(jollyjgr_misc_w);
DECLARE_WRITE8_MEMBER(jollyjgr_coin_lookout_w); DECLARE_WRITE8_MEMBER(jollyjgr_coin_lookout_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -435,18 +436,17 @@ static PALETTE_INIT( jollyjgr )
} }
/* Tilemap is the same as in Galaxian */ /* Tilemap is the same as in Galaxian */
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(jollyjgr_state::get_bg_tile_info)
{ {
jollyjgr_state *state = machine.driver_data<jollyjgr_state>(); int color = m_colorram[((tile_index & 0x1f) << 1) | 1] & 7;
int color = state->m_colorram[((tile_index & 0x1f) << 1) | 1] & 7; int region = (m_tilemap_bank & 0x20) ? 2 : 0;
int region = (state->m_tilemap_bank & 0x20) ? 2 : 0; SET_TILE_INFO_MEMBER(region, m_videoram[tile_index], color, 0);
SET_TILE_INFO(region, state->m_videoram[tile_index], color, 0);
} }
static VIDEO_START( jollyjgr ) static VIDEO_START( jollyjgr )
{ {
jollyjgr_state *state = machine.driver_data<jollyjgr_state>(); jollyjgr_state *state = machine.driver_data<jollyjgr_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(jollyjgr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
state->m_bg_tilemap->set_transparent_pen(0); state->m_bg_tilemap->set_transparent_pen(0);
state->m_bg_tilemap->set_scroll_cols(32); state->m_bg_tilemap->set_scroll_cols(32);

View File

@ -101,6 +101,7 @@ public:
tilemap_t *m_bg_tilemap; tilemap_t *m_bg_tilemap;
DECLARE_WRITE8_MEMBER(jubileep_videoram_w); DECLARE_WRITE8_MEMBER(jubileep_videoram_w);
DECLARE_READ8_MEMBER(unk_r); DECLARE_READ8_MEMBER(unk_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -116,12 +117,11 @@ WRITE8_MEMBER(jubilee_state::jubileep_videoram_w)
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(jubilee_state::get_bg_tile_info)
{ {
jubilee_state *state = machine.driver_data<jubilee_state>(); int code = m_videoram[tile_index];
int code = state->m_videoram[tile_index];
SET_TILE_INFO( 0, code, 0, 0); SET_TILE_INFO_MEMBER( 0, code, 0, 0);
} }
@ -129,7 +129,7 @@ static TILE_GET_INFO( get_bg_tile_info )
static VIDEO_START( jubileep ) static VIDEO_START( jubileep )
{ {
jubilee_state *state = machine.driver_data<jubilee_state>(); jubilee_state *state = machine.driver_data<jubilee_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(jubilee_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }

View File

@ -105,6 +105,8 @@ public:
DECLARE_READ8_MEMBER(key_matrix_r); DECLARE_READ8_MEMBER(key_matrix_r);
DECLARE_READ8_MEMBER(sound_cmd_r); DECLARE_READ8_MEMBER(sound_cmd_r);
DECLARE_WRITE8_MEMBER(outportb_w); DECLARE_WRITE8_MEMBER(outportb_w);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
TILE_GET_INFO_MEMBER(get_sc1_tile_info);
}; };
@ -129,47 +131,45 @@ xxxx ---- basic color?
---- ---x tile bank ---- ---x tile bank
*/ */
static TILE_GET_INFO( get_sc0_tile_info ) TILE_GET_INFO_MEMBER(kingdrby_state::get_sc0_tile_info)
{ {
kingdrby_state *state = machine.driver_data<kingdrby_state>(); int tile = m_vram[tile_index] | m_attr[tile_index]<<8;
int tile = state->m_vram[tile_index] | state->m_attr[tile_index]<<8; int color = (m_attr[tile_index] & 0x06)>>1;
int color = (state->m_attr[tile_index] & 0x06)>>1;
tile&=0x1ff; tile&=0x1ff;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
tile, tile,
color|0x40, color|0x40,
0); 0);
} }
static TILE_GET_INFO( get_sc1_tile_info ) TILE_GET_INFO_MEMBER(kingdrby_state::get_sc1_tile_info)
{ {
kingdrby_state *state = machine.driver_data<kingdrby_state>(); int tile = m_vram[tile_index] | m_attr[tile_index]<<8;
int tile = state->m_vram[tile_index] | state->m_attr[tile_index]<<8; int color = (m_attr[tile_index] & 0x06)>>1;
int color = (state->m_attr[tile_index] & 0x06)>>1;
tile&=0x1ff; tile&=0x1ff;
//original 0xc //original 0xc
//0x13 //0x13
// //
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
tile, tile,
color|0x40, color|0x40,
0); 0);
tileinfo.category = (state->m_attr[tile_index] & 0x08)>>3; tileinfo.category = (m_attr[tile_index] & 0x08)>>3;
} }
static VIDEO_START(kingdrby) static VIDEO_START(kingdrby)
{ {
kingdrby_state *state = machine.driver_data<kingdrby_state>(); kingdrby_state *state = machine.driver_data<kingdrby_state>();
state->m_sc0_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,32,24); state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,24);
state->m_sc1_tilemap = tilemap_create(machine, get_sc1_tile_info,TILEMAP_SCAN_ROWS,8,8,32,24); state->m_sc1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,24);
state->m_sc0w_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); state->m_sc0w_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32);
state->m_sc1_tilemap->set_transparent_pen(0); state->m_sc1_tilemap->set_transparent_pen(0);
} }

View File

@ -62,25 +62,25 @@ public:
DECLARE_WRITE16_MEMBER(bmc_1_videoram_w); DECLARE_WRITE16_MEMBER(bmc_1_videoram_w);
DECLARE_WRITE16_MEMBER(bmc_2_videoram_w); DECLARE_WRITE16_MEMBER(bmc_2_videoram_w);
DECLARE_DRIVER_INIT(koftball); DECLARE_DRIVER_INIT(koftball);
TILE_GET_INFO_MEMBER(get_t1_tile_info);
TILE_GET_INFO_MEMBER(get_t2_tile_info);
}; };
static TILE_GET_INFO( get_t1_tile_info ) TILE_GET_INFO_MEMBER(koftball_state::get_t1_tile_info)
{ {
koftball_state *state = machine.driver_data<koftball_state>(); int data = m_bmc_1_videoram[tile_index];
int data = state->m_bmc_1_videoram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
0, 0,
data, data,
0, 0,
0); 0);
} }
static TILE_GET_INFO( get_t2_tile_info ) TILE_GET_INFO_MEMBER(koftball_state::get_t2_tile_info)
{ {
koftball_state *state = machine.driver_data<koftball_state>(); int data = m_bmc_2_videoram[tile_index];
int data = state->m_bmc_2_videoram[tile_index]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
0, 0,
data, data,
0, 0,
@ -90,8 +90,8 @@ static TILE_GET_INFO( get_t2_tile_info )
static VIDEO_START( koftball ) static VIDEO_START( koftball )
{ {
koftball_state *state = machine.driver_data<koftball_state>(); koftball_state *state = machine.driver_data<koftball_state>();
state->m_tilemap_1 = tilemap_create(machine, get_t1_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koftball_state::get_t1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
state->m_tilemap_2 = tilemap_create(machine, get_t2_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koftball_state::get_t2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32);
state->m_tilemap_1->set_transparent_pen(0); state->m_tilemap_1->set_transparent_pen(0);
} }

View File

@ -68,6 +68,7 @@ public:
DECLARE_WRITE8_MEMBER(io_w); DECLARE_WRITE8_MEMBER(io_w);
DECLARE_READ8_MEMBER(input_r); DECLARE_READ8_MEMBER(input_r);
DECLARE_WRITE8_MEMBER(unknown_w); DECLARE_WRITE8_MEMBER(unknown_w);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
@ -77,14 +78,13 @@ public:
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(koikoi_state::get_tile_info)
{ {
koikoi_state *state = machine.driver_data<koikoi_state>(); int code = m_videoram[tile_index] | ((m_videoram[tile_index + 0x400] & 0x40) << 2);
int code = state->m_videoram[tile_index] | ((state->m_videoram[tile_index + 0x400] & 0x40) << 2); int color = (m_videoram[tile_index + 0x400] & 0x1f);
int color = (state->m_videoram[tile_index + 0x400] & 0x1f); int flip = (m_videoram[tile_index + 0x400] & 0x80) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0;
int flip = (state->m_videoram[tile_index + 0x400] & 0x80) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0;
SET_TILE_INFO( 0, code, color, flip); SET_TILE_INFO_MEMBER( 0, code, color, flip);
} }
static PALETTE_INIT( koikoi ) static PALETTE_INIT( koikoi )
@ -136,7 +136,7 @@ static PALETTE_INIT( koikoi )
static VIDEO_START(koikoi) static VIDEO_START(koikoi)
{ {
koikoi_state *state = machine.driver_data<koikoi_state>(); koikoi_state *state = machine.driver_data<koikoi_state>();
state->m_tmap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static SCREEN_UPDATE_IND16(koikoi) static SCREEN_UPDATE_IND16(koikoi)

View File

@ -83,6 +83,9 @@ public:
DECLARE_DRIVER_INIT(dynabomb); DECLARE_DRIVER_INIT(dynabomb);
DECLARE_DRIVER_INIT(legendoh); DECLARE_DRIVER_INIT(legendoh);
DECLARE_DRIVER_INIT(spotty); DECLARE_DRIVER_INIT(spotty);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_md_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -295,28 +298,25 @@ ADDRESS_MAP_END
VIDEO HARDWARE EMULATION VIDEO HARDWARE EMULATION
*****************************************************************************************************/ *****************************************************************************************************/
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(limenko_state::get_bg_tile_info)
{ {
limenko_state *state = machine.driver_data<limenko_state>(); int tile = m_bg_videoram[tile_index] & 0x7ffff;
int tile = state->m_bg_videoram[tile_index] & 0x7ffff; int color = (m_bg_videoram[tile_index]>>28) & 0xf;
int color = (state->m_bg_videoram[tile_index]>>28) & 0xf; SET_TILE_INFO_MEMBER(0,tile,color,0);
SET_TILE_INFO(0,tile,color,0);
} }
static TILE_GET_INFO( get_md_tile_info ) TILE_GET_INFO_MEMBER(limenko_state::get_md_tile_info)
{ {
limenko_state *state = machine.driver_data<limenko_state>(); int tile = m_md_videoram[tile_index] & 0x7ffff;
int tile = state->m_md_videoram[tile_index] & 0x7ffff; int color = (m_md_videoram[tile_index]>>28) & 0xf;
int color = (state->m_md_videoram[tile_index]>>28) & 0xf; SET_TILE_INFO_MEMBER(0,tile,color,0);
SET_TILE_INFO(0,tile,color,0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(limenko_state::get_fg_tile_info)
{ {
limenko_state *state = machine.driver_data<limenko_state>(); int tile = m_fg_videoram[tile_index] & 0x7ffff;
int tile = state->m_fg_videoram[tile_index] & 0x7ffff; int color = (m_fg_videoram[tile_index]>>28) & 0xf;
int color = (state->m_fg_videoram[tile_index]>>28) & 0xf; SET_TILE_INFO_MEMBER(0,tile,color,0);
SET_TILE_INFO(0,tile,color,0);
} }
static void draw_single_sprite(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx, static void draw_single_sprite(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx,
@ -503,9 +503,9 @@ static void copy_sprites(running_machine &machine, bitmap_ind16 &bitmap, bitmap_
static VIDEO_START( limenko ) static VIDEO_START( limenko )
{ {
limenko_state *state = machine.driver_data<limenko_state>(); limenko_state *state = machine.driver_data<limenko_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64);
state->m_md_tilemap = tilemap_create(machine, get_md_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(limenko_state::get_md_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64);
state->m_fg_tilemap = 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(limenko_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64);
state->m_md_tilemap->set_transparent_pen(0); state->m_md_tilemap->set_transparent_pen(0);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);

View File

@ -138,6 +138,7 @@ public:
DECLARE_WRITE8_MEMBER(ay_enable_w); DECLARE_WRITE8_MEMBER(ay_enable_w);
DECLARE_WRITE8_MEMBER(speech_enable_w); DECLARE_WRITE8_MEMBER(speech_enable_w);
DECLARE_DRIVER_INIT(looping); DECLARE_DRIVER_INIT(looping);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
@ -195,12 +196,11 @@ static PALETTE_INIT( looping )
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(looping_state::get_tile_info)
{ {
looping_state *state = machine.driver_data<looping_state>(); int tile_number = m_videoram[tile_index];
int tile_number = state->m_videoram[tile_index]; int color = m_colorram[(tile_index & 0x1f) * 2 + 1] & 0x07;
int color = state->m_colorram[(tile_index & 0x1f) * 2 + 1] & 0x07; SET_TILE_INFO_MEMBER(0, tile_number, color, 0);
SET_TILE_INFO(0, tile_number, color, 0);
} }
@ -208,7 +208,7 @@ static VIDEO_START( looping )
{ {
looping_state *state = machine.driver_data<looping_state>(); looping_state *state = machine.driver_data<looping_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(looping_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32);
state->m_bg_tilemap->set_scroll_cols(0x20); state->m_bg_tilemap->set_scroll_cols(0x20);
} }

View File

@ -32,28 +32,28 @@ public:
DECLARE_WRITE8_MEMBER(ltcasino_tile_num_w); DECLARE_WRITE8_MEMBER(ltcasino_tile_num_w);
DECLARE_WRITE8_MEMBER(ltcasino_tile_atr_w); DECLARE_WRITE8_MEMBER(ltcasino_tile_atr_w);
DECLARE_DRIVER_INIT(mv4in1); DECLARE_DRIVER_INIT(mv4in1);
TILE_GET_INFO_MEMBER(get_ltcasino_tile_info);
}; };
/* Video */ /* Video */
static TILE_GET_INFO( get_ltcasino_tile_info ) TILE_GET_INFO_MEMBER(ltcasino_state::get_ltcasino_tile_info)
{ {
ltcasino_state *state = machine.driver_data<ltcasino_state>();
int tileno, colour; int tileno, colour;
tileno = state->m_tile_num_ram[tile_index]; tileno = m_tile_num_ram[tile_index];
colour = state->m_tile_atr_ram[tile_index]; colour = m_tile_atr_ram[tile_index];
tileno += (colour & 0x80) << 1; tileno += (colour & 0x80) << 1;
SET_TILE_INFO(0,tileno,0,0); SET_TILE_INFO_MEMBER(0,tileno,0,0);
} }
static VIDEO_START(ltcasino) static VIDEO_START(ltcasino)
{ {
ltcasino_state *state = machine.driver_data<ltcasino_state>(); ltcasino_state *state = machine.driver_data<ltcasino_state>();
state->m_tilemap = tilemap_create(machine, get_ltcasino_tile_info,TILEMAP_SCAN_ROWS,8, 8,64,32); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ltcasino_state::get_ltcasino_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,64,32);
} }

View File

@ -145,6 +145,10 @@ public:
DECLARE_WRITE8_MEMBER(counters_w); DECLARE_WRITE8_MEMBER(counters_w);
DECLARE_READ8_MEMBER(test_r); DECLARE_READ8_MEMBER(test_r);
DECLARE_DRIVER_INIT(luckgrln); DECLARE_DRIVER_INIT(luckgrln);
TILE_GET_INFO_MEMBER(get_luckgrln_reel1_tile_info);
TILE_GET_INFO_MEMBER(get_luckgrln_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_luckgrln_reel3_tile_info);
TILE_GET_INFO_MEMBER(get_luckgrln_reel4_tile_info);
}; };
@ -162,17 +166,16 @@ WRITE8_MEMBER(luckgrln_state::luckgrln_reel1_attr_w)
static TILE_GET_INFO( get_luckgrln_reel1_tile_info ) TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel1_tile_info)
{ {
luckgrln_state *state = machine.driver_data<luckgrln_state>(); int code = m_reel1_ram[tile_index];
int code = state->m_reel1_ram[tile_index]; int attr = m_reel1_attr[tile_index];
int attr = state->m_reel1_attr[tile_index];
int col = (attr & 0x1f); int col = (attr & 0x1f);
code |= (attr & 0xe0)<<3; code |= (attr & 0xe0)<<3;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
col, col,
@ -193,17 +196,16 @@ WRITE8_MEMBER(luckgrln_state::luckgrln_reel2_attr_w)
} }
static TILE_GET_INFO( get_luckgrln_reel2_tile_info ) TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel2_tile_info)
{ {
luckgrln_state *state = machine.driver_data<luckgrln_state>(); int code = m_reel2_ram[tile_index];
int code = state->m_reel2_ram[tile_index]; int attr = m_reel2_attr[tile_index];
int attr = state->m_reel2_attr[tile_index];
int col = (attr & 0x1f); int col = (attr & 0x1f);
code |= (attr & 0xe0)<<3; code |= (attr & 0xe0)<<3;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
col, col,
@ -223,16 +225,15 @@ WRITE8_MEMBER(luckgrln_state::luckgrln_reel3_attr_w)
} }
static TILE_GET_INFO( get_luckgrln_reel3_tile_info ) TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel3_tile_info)
{ {
luckgrln_state *state = machine.driver_data<luckgrln_state>(); int code = m_reel3_ram[tile_index];
int code = state->m_reel3_ram[tile_index]; int attr = m_reel3_attr[tile_index];
int attr = state->m_reel3_attr[tile_index];
int col = (attr & 0x1f); int col = (attr & 0x1f);
code |= (attr & 0xe0)<<3; code |= (attr & 0xe0)<<3;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
col, col,
@ -252,16 +253,15 @@ WRITE8_MEMBER(luckgrln_state::luckgrln_reel4_attr_w)
} }
static TILE_GET_INFO( get_luckgrln_reel4_tile_info ) TILE_GET_INFO_MEMBER(luckgrln_state::get_luckgrln_reel4_tile_info)
{ {
luckgrln_state *state = machine.driver_data<luckgrln_state>(); int code = m_reel4_ram[tile_index];
int code = state->m_reel4_ram[tile_index]; int attr = m_reel4_attr[tile_index];
int attr = state->m_reel4_attr[tile_index];
int col = (attr & 0x1f); int col = (attr & 0x1f);
code |= (attr & 0xe0)<<3; code |= (attr & 0xe0)<<3;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
col, col,
@ -271,10 +271,10 @@ static TILE_GET_INFO( get_luckgrln_reel4_tile_info )
static VIDEO_START(luckgrln) static VIDEO_START(luckgrln)
{ {
luckgrln_state *state = machine.driver_data<luckgrln_state>(); luckgrln_state *state = machine.driver_data<luckgrln_state>();
state->m_reel1_tilemap = tilemap_create(machine,get_luckgrln_reel1_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_reel2_tilemap = tilemap_create(machine,get_luckgrln_reel2_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel2_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_reel3_tilemap = tilemap_create(machine,get_luckgrln_reel3_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_reel4_tilemap = tilemap_create(machine,get_luckgrln_reel4_tile_info,TILEMAP_SCAN_ROWS, 8, 32, 64, 8); state->m_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(luckgrln_state::get_luckgrln_reel4_tile_info),state),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
state->m_reel1_tilemap->set_scroll_cols(64); state->m_reel1_tilemap->set_scroll_cols(64);
state->m_reel2_tilemap->set_scroll_cols(64); state->m_reel2_tilemap->set_scroll_cols(64);

View File

@ -80,6 +80,7 @@ public:
DECLARE_WRITE8_MEMBER(hopper_w); DECLARE_WRITE8_MEMBER(hopper_w);
DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted);
DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted);
TILE_GET_INFO_MEMBER(m14_get_tile_info);
}; };
@ -107,16 +108,15 @@ static PALETTE_INIT( m14 )
} }
} }
static TILE_GET_INFO( m14_get_tile_info ) TILE_GET_INFO_MEMBER(m14_state::m14_get_tile_info)
{ {
m14_state *state = machine.driver_data<m14_state>();
int code = state->m_video_ram[tile_index]; int code = m_video_ram[tile_index];
int color = state->m_color_ram[tile_index] & 0x0f; int color = m_color_ram[tile_index] & 0x0f;
/* colorram & 0xf0 used but unknown purpose*/ /* colorram & 0xf0 used but unknown purpose*/
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code, code,
color, color,
@ -127,7 +127,7 @@ static VIDEO_START( m14 )
{ {
m14_state *state = machine.driver_data<m14_state>(); m14_state *state = machine.driver_data<m14_state>();
state->m_m14_tilemap = tilemap_create(machine, m14_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_m14_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static SCREEN_UPDATE_IND16( m14 ) static SCREEN_UPDATE_IND16( m14 )

View File

@ -177,6 +177,8 @@ public:
DECLARE_WRITE8_MEMBER(nmi_mask_w); DECLARE_WRITE8_MEMBER(nmi_mask_w);
DECLARE_DRIVER_INIT(wilytowr); DECLARE_DRIVER_INIT(wilytowr);
DECLARE_DRIVER_INIT(fghtbskt); DECLARE_DRIVER_INIT(fghtbskt);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -284,32 +286,30 @@ WRITE8_MEMBER(m63_state::fghtbskt_flipscreen_w)
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(m63_state::get_bg_tile_info)
{ {
m63_state *state = machine.driver_data<m63_state>();
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = state->m_videoram[tile_index] | ((attr & 0x30) << 4); int code = m_videoram[tile_index] | ((attr & 0x30) << 4);
int color = (attr & 0x0f) + (state->m_pal_bank << 4); int color = (attr & 0x0f) + (m_pal_bank << 4);
SET_TILE_INFO(1, code, color, 0); SET_TILE_INFO_MEMBER(1, code, color, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(m63_state::get_fg_tile_info)
{ {
m63_state *state = machine.driver_data<m63_state>();
int code = state->m_videoram2[tile_index]; int code = m_videoram2[tile_index];
SET_TILE_INFO(0, code, 0, state->m_fg_flag); SET_TILE_INFO_MEMBER(0, code, 0, m_fg_flag);
} }
static VIDEO_START( m63 ) static VIDEO_START( m63 )
{ {
m63_state *state = machine.driver_data<m63_state>(); m63_state *state = machine.driver_data<m63_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(m63_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, 8, 8, 32, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m63_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
state->m_bg_tilemap->set_scroll_cols(32); state->m_bg_tilemap->set_scroll_cols(32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);

View File

@ -117,6 +117,9 @@ public:
DECLARE_DRIVER_INIT(magic102); DECLARE_DRIVER_INIT(magic102);
DECLARE_DRIVER_INIT(magic10); DECLARE_DRIVER_INIT(magic10);
DECLARE_DRIVER_INIT(hotslot); DECLARE_DRIVER_INIT(hotslot);
TILE_GET_INFO_MEMBER(get_layer0_tile_info);
TILE_GET_INFO_MEMBER(get_layer1_tile_info);
TILE_GET_INFO_MEMBER(get_layer2_tile_info);
}; };
@ -149,38 +152,35 @@ WRITE16_MEMBER(magic10_state::paletteram_w)
} }
static TILE_GET_INFO( get_layer0_tile_info ) TILE_GET_INFO_MEMBER(magic10_state::get_layer0_tile_info)
{ {
magic10_state *state = machine.driver_data<magic10_state>(); SET_TILE_INFO_MEMBER
SET_TILE_INFO
( (
1, 1,
state->m_layer0_videoram[tile_index * 2], m_layer0_videoram[tile_index * 2],
state->m_layer0_videoram[tile_index * 2 + 1] & 0x0f, m_layer0_videoram[tile_index * 2 + 1] & 0x0f,
TILE_FLIPYX((state->m_layer0_videoram[tile_index * 2 + 1] & 0xc0) >> 6) TILE_FLIPYX((m_layer0_videoram[tile_index * 2 + 1] & 0xc0) >> 6)
); );
} }
static TILE_GET_INFO( get_layer1_tile_info ) TILE_GET_INFO_MEMBER(magic10_state::get_layer1_tile_info)
{ {
magic10_state *state = machine.driver_data<magic10_state>(); SET_TILE_INFO_MEMBER
SET_TILE_INFO
( (
1, 1,
state->m_layer1_videoram[tile_index * 2], m_layer1_videoram[tile_index * 2],
state->m_layer1_videoram[tile_index * 2 + 1] & 0x0f, m_layer1_videoram[tile_index * 2 + 1] & 0x0f,
TILE_FLIPYX((state->m_layer1_videoram[tile_index * 2 + 1] & 0xc0) >> 6) TILE_FLIPYX((m_layer1_videoram[tile_index * 2 + 1] & 0xc0) >> 6)
); );
} }
static TILE_GET_INFO( get_layer2_tile_info ) TILE_GET_INFO_MEMBER(magic10_state::get_layer2_tile_info)
{ {
magic10_state *state = machine.driver_data<magic10_state>(); SET_TILE_INFO_MEMBER
SET_TILE_INFO
( (
0, 0,
state->m_layer2_videoram[tile_index * 2], m_layer2_videoram[tile_index * 2],
state->m_layer2_videoram[tile_index * 2 + 1] & 0x0f, m_layer2_videoram[tile_index * 2 + 1] & 0x0f,
0 0
); );
} }
@ -189,9 +189,9 @@ static TILE_GET_INFO( get_layer2_tile_info )
static VIDEO_START( magic10 ) static VIDEO_START( magic10 )
{ {
magic10_state *state = machine.driver_data<magic10_state>(); magic10_state *state = machine.driver_data<magic10_state>();
state->m_layer0_tilemap = tilemap_create(machine, get_layer0_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_layer0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer0_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
state->m_layer1_tilemap = tilemap_create(machine, get_layer1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); state->m_layer1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
state->m_layer2_tilemap = tilemap_create(machine, get_layer2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_layer2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magic10_state::get_layer2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
state->m_layer1_tilemap->set_transparent_pen(0); state->m_layer1_tilemap->set_transparent_pen(0);
state->m_layer2_tilemap->set_transparent_pen(0); state->m_layer2_tilemap->set_transparent_pen(0);

View File

@ -433,6 +433,8 @@ public:
DECLARE_WRITE8_MEMBER(magicfly_colorram_w); DECLARE_WRITE8_MEMBER(magicfly_colorram_w);
DECLARE_READ8_MEMBER(mux_port_r); DECLARE_READ8_MEMBER(mux_port_r);
DECLARE_WRITE8_MEMBER(mux_port_w); DECLARE_WRITE8_MEMBER(mux_port_w);
TILE_GET_INFO_MEMBER(get_magicfly_tile_info);
TILE_GET_INFO_MEMBER(get_7mezzo_tile_info);
}; };
@ -453,9 +455,8 @@ WRITE8_MEMBER(magicfly_state::magicfly_colorram_w)
m_bg_tilemap->mark_tile_dirty(offset); m_bg_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_magicfly_tile_info ) TILE_GET_INFO_MEMBER(magicfly_state::get_magicfly_tile_info)
{ {
magicfly_state *state = machine.driver_data<magicfly_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
---- -xxx Tiles color. ---- -xxx Tiles color.
@ -465,29 +466,28 @@ static TILE_GET_INFO( get_magicfly_tile_info )
x--- ---- Mirrored from bit 3. The code check this one to boot the game. x--- ---- Mirrored from bit 3. The code check this one to boot the game.
*/ */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = state->m_videoram[tile_index]; int code = m_videoram[tile_index];
int bank = (attr & 0x10) >> 4; /* bit 4 switch the gfx banks */ int bank = (attr & 0x10) >> 4; /* bit 4 switch the gfx banks */
int color = attr & 0x07; /* bits 0-2 for color */ int color = attr & 0x07; /* bits 0-2 for color */
/* Seems that bit 7 is mirrored from bit 3 to have a normal boot */ /* Seems that bit 7 is mirrored from bit 3 to have a normal boot */
/* Boot only check the first color RAM offset */ /* Boot only check the first color RAM offset */
state->m_colorram[0] = state->m_colorram[0] | ((state->m_colorram[0] & 0x08) << 4); /* only for 1st offset */ m_colorram[0] = m_colorram[0] | ((m_colorram[0] & 0x08) << 4); /* only for 1st offset */
//state->m_colorram[tile_index] = attr | ((attr & 0x08) << 4); /* for the whole color RAM */ //m_colorram[tile_index] = attr | ((attr & 0x08) << 4); /* for the whole color RAM */
SET_TILE_INFO(bank, code, color, 0); SET_TILE_INFO_MEMBER(bank, code, color, 0);
} }
static VIDEO_START(magicfly) static VIDEO_START(magicfly)
{ {
magicfly_state *state = machine.driver_data<magicfly_state>(); magicfly_state *state = machine.driver_data<magicfly_state>();
state->m_bg_tilemap = tilemap_create(machine, get_magicfly_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 29); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_magicfly_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
} }
static TILE_GET_INFO( get_7mezzo_tile_info ) TILE_GET_INFO_MEMBER(magicfly_state::get_7mezzo_tile_info)
{ {
magicfly_state *state = machine.driver_data<magicfly_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
---- -xxx Tiles color. ---- -xxx Tiles color.
@ -497,24 +497,24 @@ static TILE_GET_INFO( get_7mezzo_tile_info )
x--- ---- Mirrored from bit 2. The code check this one to boot the game. x--- ---- Mirrored from bit 2. The code check this one to boot the game.
*/ */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = state->m_videoram[tile_index]; int code = m_videoram[tile_index];
int bank = (attr & 0x10) >> 4; /* bit 4 switch the gfx banks */ int bank = (attr & 0x10) >> 4; /* bit 4 switch the gfx banks */
int color = attr & 0x07; /* bits 0-2 for color */ int color = attr & 0x07; /* bits 0-2 for color */
/* Seems that bit 7 is mirrored from bit 2 to have a normal boot */ /* Seems that bit 7 is mirrored from bit 2 to have a normal boot */
/* Boot only check the first color RAM offset */ /* Boot only check the first color RAM offset */
state->m_colorram[0] = state->m_colorram[0] | ((state->m_colorram[0] & 0x04) << 5); /* only for 1st offset */ m_colorram[0] = m_colorram[0] | ((m_colorram[0] & 0x04) << 5); /* only for 1st offset */
//state->m_colorram[tile_index] = attr | ((attr & 0x04) << 5); /* for the whole color RAM */ //m_colorram[tile_index] = attr | ((attr & 0x04) << 5); /* for the whole color RAM */
SET_TILE_INFO(bank, code, color, 0); SET_TILE_INFO_MEMBER(bank, code, color, 0);
} }
static VIDEO_START( 7mezzo ) static VIDEO_START( 7mezzo )
{ {
magicfly_state *state = machine.driver_data<magicfly_state>(); magicfly_state *state = machine.driver_data<magicfly_state>();
state->m_bg_tilemap = tilemap_create(machine, get_7mezzo_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 29); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
} }
static SCREEN_UPDATE_IND16( magicfly ) static SCREEN_UPDATE_IND16( magicfly )

View File

@ -488,6 +488,8 @@ public:
DECLARE_WRITE8_MEMBER(lamps_b_w); DECLARE_WRITE8_MEMBER(lamps_b_w);
DECLARE_WRITE8_MEMBER(pulses_w); DECLARE_WRITE8_MEMBER(pulses_w);
DECLARE_DRIVER_INIT(majorpkr); DECLARE_DRIVER_INIT(majorpkr);
TILE_GET_INFO_MEMBER(bg_get_tile_info);
TILE_GET_INFO_MEMBER(fg_get_tile_info);
}; };
@ -495,26 +497,24 @@ public:
* Video Hardware * * Video Hardware *
*************************/ *************************/
static TILE_GET_INFO( bg_get_tile_info ) TILE_GET_INFO_MEMBER(majorpkr_state::bg_get_tile_info)
{ {
majorpkr_state *state = machine.driver_data<majorpkr_state>();
int code = state->m_videoram[0x800 + 2 * tile_index] + (state->m_videoram[0x800 + 2 * tile_index + 1] << 8); int code = m_videoram[0x800 + 2 * tile_index] + (m_videoram[0x800 + 2 * tile_index + 1] << 8);
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code & 0x1fff), (code & 0x1fff),
code >> 13, code >> 13,
0); 0);
} }
static TILE_GET_INFO( fg_get_tile_info ) TILE_GET_INFO_MEMBER(majorpkr_state::fg_get_tile_info)
{ {
majorpkr_state *state = machine.driver_data<majorpkr_state>();
int code = state->m_videoram[2 * tile_index] + (state->m_videoram[2 * tile_index + 1] << 8); int code = m_videoram[2 * tile_index] + (m_videoram[2 * tile_index + 1] << 8);
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
(code & 0x07ff), (code & 0x07ff),
code >> 13, code >> 13,
@ -526,8 +526,8 @@ static VIDEO_START(majorpkr)
{ {
majorpkr_state *state = machine.driver_data<majorpkr_state>(); majorpkr_state *state = machine.driver_data<majorpkr_state>();
state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 36, 28); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(majorpkr_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 36, 28); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(majorpkr_state::fg_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
state->m_generic_paletteram_8.allocate(4 * 0x800); state->m_generic_paletteram_8.allocate(4 * 0x800);

View File

@ -147,6 +147,7 @@ public:
DECLARE_WRITE8_MEMBER(marinedt_sound_w); DECLARE_WRITE8_MEMBER(marinedt_sound_w);
DECLARE_WRITE8_MEMBER(marinedt_pd_w); DECLARE_WRITE8_MEMBER(marinedt_pd_w);
DECLARE_WRITE8_MEMBER(marinedt_pf_w); DECLARE_WRITE8_MEMBER(marinedt_pf_w);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
@ -477,20 +478,19 @@ bit0 = 0;
} }
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(marinedt_state::get_tile_info)
{ {
marinedt_state *state = machine.driver_data<marinedt_state>(); int code = m_tx_tileram[tile_index];
int code = state->m_tx_tileram[tile_index];
int color = 0; int color = 0;
int flags = TILE_FLIPX; int flags = TILE_FLIPX;
SET_TILE_INFO(0, code, color, flags); SET_TILE_INFO_MEMBER(0, code, color, flags);
} }
static VIDEO_START( marinedt ) static VIDEO_START( marinedt )
{ {
marinedt_state *state = machine.driver_data<marinedt_state>(); marinedt_state *state = machine.driver_data<marinedt_state>();
state->m_tx_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(marinedt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
state->m_tx_tilemap->set_transparent_pen(0); state->m_tx_tilemap->set_transparent_pen(0);
state->m_tx_tilemap->set_scrolldx(0, 4*8); state->m_tx_tilemap->set_scrolldx(0, 4*8);

View File

@ -41,6 +41,7 @@ public:
DECLARE_WRITE8_MEMBER(input_sel_w); DECLARE_WRITE8_MEMBER(input_sel_w);
DECLARE_READ8_MEMBER(key_matrix_1p_r); DECLARE_READ8_MEMBER(key_matrix_1p_r);
DECLARE_READ8_MEMBER(key_matrix_2p_r); DECLARE_READ8_MEMBER(key_matrix_2p_r);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
@ -50,19 +51,18 @@ public:
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(mayumi_state::get_tile_info)
{ {
mayumi_state *state = machine.driver_data<mayumi_state>(); int code = m_videoram[tile_index] + (m_videoram[tile_index + 0x800] & 0x1f) * 0x100;
int code = state->m_videoram[tile_index] + (state->m_videoram[tile_index + 0x800] & 0x1f) * 0x100; int col = (m_videoram[tile_index + 0x1000] >> 3) & 0x1f;
int col = (state->m_videoram[tile_index + 0x1000] >> 3) & 0x1f;
SET_TILE_INFO(0, code, col, 0); SET_TILE_INFO_MEMBER(0, code, col, 0);
} }
static VIDEO_START( mayumi ) static VIDEO_START( mayumi )
{ {
mayumi_state *state = machine.driver_data<mayumi_state>(); mayumi_state *state = machine.driver_data<mayumi_state>();
state->m_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mayumi_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
} }
WRITE8_MEMBER(mayumi_state::mayumi_videoram_w) WRITE8_MEMBER(mayumi_state::mayumi_videoram_w)

View File

@ -33,15 +33,15 @@ public:
DECLARE_READ8_MEMBER(mgolf_dial_r); DECLARE_READ8_MEMBER(mgolf_dial_r);
DECLARE_READ8_MEMBER(mgolf_misc_r); DECLARE_READ8_MEMBER(mgolf_misc_r);
DECLARE_WRITE8_MEMBER(mgolf_wram_w); DECLARE_WRITE8_MEMBER(mgolf_wram_w);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(mgolf_state::get_tile_info)
{ {
mgolf_state *state = machine.driver_data<mgolf_state>(); UINT8 code = m_video_ram[tile_index];
UINT8 code = state->m_video_ram[tile_index];
SET_TILE_INFO(0, code, code >> 7, 0); SET_TILE_INFO_MEMBER(0, code, code >> 7, 0);
} }
@ -55,7 +55,7 @@ WRITE8_MEMBER(mgolf_state::mgolf_vram_w)
static VIDEO_START( mgolf ) static VIDEO_START( mgolf )
{ {
mgolf_state *state = machine.driver_data<mgolf_state>(); mgolf_state *state = machine.driver_data<mgolf_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(mgolf_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }

View File

@ -76,6 +76,7 @@ public:
DECLARE_WRITE16_MEMBER(hammer_led_w); DECLARE_WRITE16_MEMBER(hammer_led_w);
DECLARE_WRITE16_MEMBER(midas_eeprom_w); DECLARE_WRITE16_MEMBER(midas_eeprom_w);
DECLARE_DRIVER_INIT(livequiz); DECLARE_DRIVER_INIT(livequiz);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
@ -83,11 +84,10 @@ static VIDEO_START( midas );
static SCREEN_UPDATE_IND16( midas ); static SCREEN_UPDATE_IND16( midas );
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(midas_state::get_tile_info)
{ {
midas_state *state = machine.driver_data<midas_state>(); UINT16 code = m_gfxram[ tile_index + 0x7000 ];
UINT16 code = state->m_gfxram[ tile_index + 0x7000 ]; SET_TILE_INFO_MEMBER(1, code & 0xfff, (code >> 12) & 0xf, TILE_FLIPXY( 0 ));
SET_TILE_INFO(1, code & 0xfff, (code >> 12) & 0xf, TILE_FLIPXY( 0 ));
} }
static VIDEO_START( midas ) static VIDEO_START( midas )
@ -95,8 +95,7 @@ static VIDEO_START( midas )
midas_state *state = machine.driver_data<midas_state>(); midas_state *state = machine.driver_data<midas_state>();
state->m_gfxram = auto_alloc_array(machine, UINT16, 0x20000/2); state->m_gfxram = auto_alloc_array(machine, UINT16, 0x20000/2);
state->m_tmap = tilemap_create( machine, get_tile_info, TILEMAP_SCAN_COLS, state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(midas_state::get_tile_info),state), TILEMAP_SCAN_COLS,8,8,0x80,0x20);
8,8, 0x80,0x20 );
state->m_tmap->set_transparent_pen(0); state->m_tmap->set_transparent_pen(0);
} }

View File

@ -117,59 +117,59 @@ public:
DECLARE_WRITE16_MEMBER(sc2_vram_w); DECLARE_WRITE16_MEMBER(sc2_vram_w);
DECLARE_WRITE16_MEMBER(sc3_vram_w); DECLARE_WRITE16_MEMBER(sc3_vram_w);
DECLARE_WRITE16_MEMBER(output_w); DECLARE_WRITE16_MEMBER(output_w);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
TILE_GET_INFO_MEMBER(get_sc1_tile_info);
TILE_GET_INFO_MEMBER(get_sc2_tile_info);
TILE_GET_INFO_MEMBER(get_sc3_tile_info);
}; };
static TILE_GET_INFO( get_sc0_tile_info ) TILE_GET_INFO_MEMBER(mil4000_state::get_sc0_tile_info)
{ {
mil4000_state *state = machine.driver_data<mil4000_state>(); UINT32 data = (m_sc0_vram[tile_index*2]<<16) | m_sc0_vram[tile_index*2+1];
UINT32 data = (state->m_sc0_vram[tile_index*2]<<16) | state->m_sc0_vram[tile_index*2+1];
int tile = data >> 14; int tile = data >> 14;
int color = (state->m_sc0_vram[tile_index*2+1] & 0x1f)+0; int color = (m_sc0_vram[tile_index*2+1] & 0x1f)+0;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
tile, tile,
color, color,
0); 0);
} }
static TILE_GET_INFO( get_sc1_tile_info ) TILE_GET_INFO_MEMBER(mil4000_state::get_sc1_tile_info)
{ {
mil4000_state *state = machine.driver_data<mil4000_state>(); UINT32 data = (m_sc1_vram[tile_index*2]<<16) | m_sc1_vram[tile_index*2+1];
UINT32 data = (state->m_sc1_vram[tile_index*2]<<16) | state->m_sc1_vram[tile_index*2+1];
int tile = data >> 14; int tile = data >> 14;
int color = (state->m_sc1_vram[tile_index*2+1] & 0x1f)+0x10; int color = (m_sc1_vram[tile_index*2+1] & 0x1f)+0x10;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
tile, tile,
color, color,
0); 0);
} }
static TILE_GET_INFO( get_sc2_tile_info ) TILE_GET_INFO_MEMBER(mil4000_state::get_sc2_tile_info)
{ {
mil4000_state *state = machine.driver_data<mil4000_state>(); UINT32 data = (m_sc2_vram[tile_index*2]<<16) | m_sc2_vram[tile_index*2+1];
UINT32 data = (state->m_sc2_vram[tile_index*2]<<16) | state->m_sc2_vram[tile_index*2+1];
int tile = data >> 14; int tile = data >> 14;
int color = (state->m_sc2_vram[tile_index*2+1] & 0x1f)+0x20; int color = (m_sc2_vram[tile_index*2+1] & 0x1f)+0x20;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
tile, tile,
color, color,
0); 0);
} }
static TILE_GET_INFO( get_sc3_tile_info ) TILE_GET_INFO_MEMBER(mil4000_state::get_sc3_tile_info)
{ {
mil4000_state *state = machine.driver_data<mil4000_state>(); UINT32 data = (m_sc3_vram[tile_index*2]<<16) | m_sc3_vram[tile_index*2+1];
UINT32 data = (state->m_sc3_vram[tile_index*2]<<16) | state->m_sc3_vram[tile_index*2+1];
int tile = data >> 14; int tile = data >> 14;
int color = (state->m_sc3_vram[tile_index*2+1] & 0x1f)+0x30; int color = (m_sc3_vram[tile_index*2+1] & 0x1f)+0x30;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
tile, tile,
color, color,
@ -179,10 +179,10 @@ static TILE_GET_INFO( get_sc3_tile_info )
static VIDEO_START(mil4000) static VIDEO_START(mil4000)
{ {
mil4000_state *state = machine.driver_data<mil4000_state>(); mil4000_state *state = machine.driver_data<mil4000_state>();
state->m_sc0_tilemap = tilemap_create(machine, get_sc0_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc0_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64);
state->m_sc1_tilemap = tilemap_create(machine, get_sc1_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); state->m_sc1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64);
state->m_sc2_tilemap = tilemap_create(machine, get_sc2_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); state->m_sc2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64);
state->m_sc3_tilemap = tilemap_create(machine, get_sc3_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); state->m_sc3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mil4000_state::get_sc3_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64);
state->m_sc1_tilemap->set_transparent_pen(0); state->m_sc1_tilemap->set_transparent_pen(0);
state->m_sc2_tilemap->set_transparent_pen(0); state->m_sc2_tilemap->set_transparent_pen(0);

View File

@ -165,6 +165,7 @@ public:
tilemap_t *m_bg_tilemap; tilemap_t *m_bg_tilemap;
DECLARE_WRITE8_MEMBER(miniboy7_videoram_w); DECLARE_WRITE8_MEMBER(miniboy7_videoram_w);
DECLARE_WRITE8_MEMBER(miniboy7_colorram_w); DECLARE_WRITE8_MEMBER(miniboy7_colorram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -184,30 +185,29 @@ WRITE8_MEMBER(miniboy7_state::miniboy7_colorram_w)
m_bg_tilemap->mark_tile_dirty(offset); m_bg_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(miniboy7_state::get_bg_tile_info)
{ {
miniboy7_state *state = machine.driver_data<miniboy7_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
--xx xx-- tiles color?. --xx xx-- tiles color?.
---- --x- tiles bank. ---- --x- tiles bank.
xx-- ---x seems unused. */ xx-- ---x seems unused. */
int attr = state->m_colorram[tile_index]; int attr = m_colorram[tile_index];
int code = state->m_videoram[tile_index]; int code = m_videoram[tile_index];
int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */
int color = (attr & 0x3c); /* bits 2-3-4-5 for color? */ int color = (attr & 0x3c); /* bits 2-3-4-5 for color? */
if (bank == 1) /* temporary hack to point to the 3rd gfx bank */ if (bank == 1) /* temporary hack to point to the 3rd gfx bank */
bank = 2; bank = 2;
SET_TILE_INFO(bank, code, color, 0); SET_TILE_INFO_MEMBER(bank, code, color, 0);
} }
static VIDEO_START( miniboy7 ) static VIDEO_START( miniboy7 )
{ {
miniboy7_state *state = machine.driver_data<miniboy7_state>(); miniboy7_state *state = machine.driver_data<miniboy7_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 37, 37); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(miniboy7_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 37, 37);
} }
static SCREEN_UPDATE_IND16( miniboy7 ) static SCREEN_UPDATE_IND16( miniboy7 )

View File

@ -27,6 +27,7 @@ public:
DECLARE_WRITE8_MEMBER(mogura_tileram_w); DECLARE_WRITE8_MEMBER(mogura_tileram_w);
DECLARE_WRITE8_MEMBER(mogura_dac_w); DECLARE_WRITE8_MEMBER(mogura_dac_w);
DECLARE_WRITE8_MEMBER(mogura_gfxram_w); DECLARE_WRITE8_MEMBER(mogura_gfxram_w);
TILE_GET_INFO_MEMBER(get_mogura_tile_info);
}; };
@ -63,13 +64,12 @@ static PALETTE_INIT( mogura )
} }
static TILE_GET_INFO( get_mogura_tile_info ) TILE_GET_INFO_MEMBER(mogura_state::get_mogura_tile_info)
{ {
mogura_state *state = machine.driver_data<mogura_state>(); int code = m_tileram[tile_index];
int code = state->m_tileram[tile_index]; int attr = m_tileram[tile_index + 0x800];
int attr = state->m_tileram[tile_index + 0x800];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code, code,
(attr >> 1) & 7, (attr >> 1) & 7,
@ -81,7 +81,7 @@ static VIDEO_START( mogura )
{ {
mogura_state *state = machine.driver_data<mogura_state>(); mogura_state *state = machine.driver_data<mogura_state>();
machine.gfx[0]->set_source(state->m_gfxram); machine.gfx[0]->set_source(state->m_gfxram);
state->m_tilemap = tilemap_create(machine, get_mogura_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
} }
static SCREEN_UPDATE_IND16( mogura ) static SCREEN_UPDATE_IND16( mogura )

View File

@ -69,6 +69,7 @@ public:
DECLARE_WRITE8_MEMBER(mole_tilebank_w); DECLARE_WRITE8_MEMBER(mole_tilebank_w);
DECLARE_WRITE8_MEMBER(mole_flipscreen_w); DECLARE_WRITE8_MEMBER(mole_flipscreen_w);
DECLARE_READ8_MEMBER(mole_protection_r); DECLARE_READ8_MEMBER(mole_protection_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -86,19 +87,18 @@ static PALETTE_INIT( mole )
palette_set_color_rgb(machine, i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)); palette_set_color_rgb(machine, i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info)
{ {
mole_state *state = machine.driver_data<mole_state>(); UINT16 code = m_tileram[tile_index];
UINT16 code = state->m_tileram[tile_index];
SET_TILE_INFO((code & 0x200) ? 1 : 0, code & 0x1ff, 0, 0); SET_TILE_INFO_MEMBER((code & 0x200) ? 1 : 0, code & 0x1ff, 0, 0);
} }
static VIDEO_START( mole ) static VIDEO_START( mole )
{ {
mole_state *state = machine.driver_data<mole_state>(); mole_state *state = machine.driver_data<mole_state>();
memset(state->m_tileram, 0, sizeof(state->m_tileram)); memset(state->m_tileram, 0, sizeof(state->m_tileram));
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 40, 25); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mole_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
state->save_item(NAME(state->m_tileram)); state->save_item(NAME(state->m_tileram));
} }

View File

@ -233,29 +233,29 @@ public:
DECLARE_DRIVER_INIT(gnomeent); DECLARE_DRIVER_INIT(gnomeent);
DECLARE_DRIVER_INIT(lhauntent); DECLARE_DRIVER_INIT(lhauntent);
DECLARE_DRIVER_INIT(fcockt2ent); DECLARE_DRIVER_INIT(fcockt2ent);
TILE_GET_INFO_MEMBER(get_multfish_tile_info);
TILE_GET_INFO_MEMBER(get_multfish_reel_tile_info);
}; };
static TILE_GET_INFO( get_multfish_tile_info ) TILE_GET_INFO_MEMBER(multfish_state::get_multfish_tile_info)
{ {
multfish_state *state = machine.driver_data<multfish_state>(); int code = m_vid[tile_index*2+0x0000] | (m_vid[tile_index*2+0x0001] << 8);
int code = state->m_vid[tile_index*2+0x0000] | (state->m_vid[tile_index*2+0x0001] << 8); int attr = m_vid[tile_index*2+0x1000] | (m_vid[tile_index*2+0x1001] << 8);
int attr = state->m_vid[tile_index*2+0x1000] | (state->m_vid[tile_index*2+0x1001] << 8);
tileinfo.category = (attr&0x100)>>8; tileinfo.category = (attr&0x100)>>8;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code&0x1fff, code&0x1fff,
attr&0x7, attr&0x7,
0); 0);
} }
static TILE_GET_INFO( get_multfish_reel_tile_info ) TILE_GET_INFO_MEMBER(multfish_state::get_multfish_reel_tile_info)
{ {
multfish_state *state = machine.driver_data<multfish_state>(); int code = m_vid[tile_index*2+0x2000] | (m_vid[tile_index*2+0x2001] << 8);
int code = state->m_vid[tile_index*2+0x2000] | (state->m_vid[tile_index*2+0x2001] << 8);
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
(code&0x1fff)+0x2000, (code&0x1fff)+0x2000,
(code>>14)+0x8, (code>>14)+0x8,
@ -269,10 +269,10 @@ static VIDEO_START(multfish)
memset(state->m_vid,0x00,sizeof(state->m_vid)); memset(state->m_vid,0x00,sizeof(state->m_vid));
state->save_item(NAME(state->m_vid)); state->save_item(NAME(state->m_vid));
state->m_tilemap = tilemap_create(machine,get_multfish_tile_info,TILEMAP_SCAN_ROWS,16,16, 64, 32); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(multfish_state::get_multfish_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 64, 32);
state->m_tilemap->set_transparent_pen(255); state->m_tilemap->set_transparent_pen(255);
state->m_reel_tilemap = tilemap_create(machine,get_multfish_reel_tile_info,TILEMAP_SCAN_ROWS,16,16, 64, 64); state->m_reel_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(multfish_state::get_multfish_reel_tile_info),state),TILEMAP_SCAN_ROWS,16,16, 64, 64);
state->m_reel_tilemap->set_transparent_pen(255); state->m_reel_tilemap->set_transparent_pen(255);
state->m_reel_tilemap->set_scroll_cols(64); state->m_reel_tilemap->set_scroll_cols(64);
} }

View File

@ -92,6 +92,10 @@ public:
DECLARE_WRITE16_MEMBER(sprites_commands_w); DECLARE_WRITE16_MEMBER(sprites_commands_w);
DECLARE_WRITE16_MEMBER(mwarr_brightness_w); DECLARE_WRITE16_MEMBER(mwarr_brightness_w);
DECLARE_WRITE16_MEMBER(oki1_bank_w); DECLARE_WRITE16_MEMBER(oki1_bank_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_mlow_tile_info);
TILE_GET_INFO_MEMBER(get_mhigh_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
}; };
@ -351,50 +355,46 @@ GFXDECODE_END
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(mwarr_state::get_bg_tile_info)
{ {
mwarr_state *state = machine.driver_data<mwarr_state>(); int tileno = m_bg_videoram[tile_index] & 0x1fff;
int tileno = state->m_bg_videoram[tile_index] & 0x1fff; int colour = (m_bg_videoram[tile_index] & 0xe000) >> 13;
int colour = (state->m_bg_videoram[tile_index] & 0xe000) >> 13;
SET_TILE_INFO(4, tileno, colour, 0); SET_TILE_INFO_MEMBER(4, tileno, colour, 0);
} }
static TILE_GET_INFO( get_mlow_tile_info ) TILE_GET_INFO_MEMBER(mwarr_state::get_mlow_tile_info)
{ {
mwarr_state *state = machine.driver_data<mwarr_state>(); int tileno = m_mlow_videoram[tile_index] & 0x1fff;
int tileno = state->m_mlow_videoram[tile_index] & 0x1fff; int colour = (m_mlow_videoram[tile_index] & 0xe000) >> 13;
int colour = (state->m_mlow_videoram[tile_index] & 0xe000) >> 13;
SET_TILE_INFO(3, tileno, colour, 0); SET_TILE_INFO_MEMBER(3, tileno, colour, 0);
} }
static TILE_GET_INFO( get_mhigh_tile_info ) TILE_GET_INFO_MEMBER(mwarr_state::get_mhigh_tile_info)
{ {
mwarr_state *state = machine.driver_data<mwarr_state>(); int tileno = m_mhigh_videoram[tile_index] & 0x1fff;
int tileno = state->m_mhigh_videoram[tile_index] & 0x1fff; int colour = (m_mhigh_videoram[tile_index] & 0xe000) >> 13;
int colour = (state->m_mhigh_videoram[tile_index] & 0xe000) >> 13;
SET_TILE_INFO(2, tileno, colour, 0); SET_TILE_INFO_MEMBER(2, tileno, colour, 0);
} }
static TILE_GET_INFO( get_tx_tile_info ) TILE_GET_INFO_MEMBER(mwarr_state::get_tx_tile_info)
{ {
mwarr_state *state = machine.driver_data<mwarr_state>(); int tileno = m_tx_videoram[tile_index] & 0x1fff;
int tileno = state->m_tx_videoram[tile_index] & 0x1fff; int colour = (m_tx_videoram[tile_index] & 0xe000) >> 13;
int colour = (state->m_tx_videoram[tile_index] & 0xe000) >> 13;
SET_TILE_INFO(1, tileno, colour, 0); SET_TILE_INFO_MEMBER(1, tileno, colour, 0);
} }
static VIDEO_START( mwarr ) static VIDEO_START( mwarr )
{ {
mwarr_state *state = machine.driver_data<mwarr_state>(); mwarr_state *state = machine.driver_data<mwarr_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 16); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
state->m_mlow_tilemap = tilemap_create(machine, get_mlow_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 16); state->m_mlow_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_mlow_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
state->m_mhigh_tilemap = tilemap_create(machine, get_mhigh_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 16); state->m_mhigh_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_mhigh_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mwarr_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
state->m_mlow_tilemap->set_transparent_pen(0); state->m_mlow_tilemap->set_transparent_pen(0);
state->m_mhigh_tilemap->set_transparent_pen(0); state->m_mhigh_tilemap->set_transparent_pen(0);

View File

@ -1430,6 +1430,7 @@ public:
DECLARE_READ8_MEMBER(s23_gun_r); DECLARE_READ8_MEMBER(s23_gun_r);
DECLARE_READ8_MEMBER(iob_r); DECLARE_READ8_MEMBER(iob_r);
DECLARE_DRIVER_INIT(ss23); DECLARE_DRIVER_INIT(ss23);
TILE_GET_INFO_MEMBER(TextTilemapGetInfo);
}; };
@ -1440,17 +1441,16 @@ static UINT16 nthword( const UINT32 *pSource, int offs )
return (pSource[0]<<((offs&1)*16))>>16; return (pSource[0]<<((offs&1)*16))>>16;
} }
static TILE_GET_INFO( TextTilemapGetInfo ) TILE_GET_INFO_MEMBER(namcos23_state::TextTilemapGetInfo)
{ {
namcos23_state *state = machine.driver_data<namcos23_state>(); UINT16 data = nthword( m_textram,tile_index );
UINT16 data = nthword( state->m_textram,tile_index );
/** /**
* x---.----.----.---- blend * x---.----.----.---- blend
* xxxx.----.----.---- palette select * xxxx.----.----.---- palette select
* ----.xx--.----.---- flip * ----.xx--.----.---- flip
* ----.--xx.xxxx.xxxx code * ----.--xx.xxxx.xxxx code
*/ */
SET_TILE_INFO( 0, data&0x03ff, data>>12, TILE_FLIPYX((data&0x0c00)>>10) ); SET_TILE_INFO_MEMBER( 0, data&0x03ff, data>>12, TILE_FLIPYX((data&0x0c00)>>10) );
} /* TextTilemapGetInfo */ } /* TextTilemapGetInfo */
WRITE32_MEMBER(namcos23_state::namcos23_textram_w) WRITE32_MEMBER(namcos23_state::namcos23_textram_w)
@ -2399,7 +2399,7 @@ static VIDEO_START( ss23 )
{ {
namcos23_state *state = machine.driver_data<namcos23_state>(); namcos23_state *state = machine.driver_data<namcos23_state>();
machine.gfx[0]->set_source(reinterpret_cast<UINT8 *>(state->m_charram.target())); machine.gfx[0]->set_source(reinterpret_cast<UINT8 *>(state->m_charram.target()));
state->m_bgtilemap = tilemap_create(machine, TextTilemapGetInfo, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos23_state::TextTilemapGetInfo),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
state->m_bgtilemap->set_transparent_pen(0xf); state->m_bgtilemap->set_transparent_pen(0xf);
// Gorgon's tilemap offset is 0, S23/SS23's is 860 // Gorgon's tilemap offset is 0, S23/SS23's is 860

View File

@ -270,6 +270,8 @@ public:
DECLARE_DRIVER_INIT(prot_val_10); DECLARE_DRIVER_INIT(prot_val_10);
DECLARE_DRIVER_INIT(prot_val_20); DECLARE_DRIVER_INIT(prot_val_20);
DECLARE_DRIVER_INIT(prot_val_40); DECLARE_DRIVER_INIT(prot_val_40);
TILE_GET_INFO_MEMBER(fg_get_tile_info);
TILE_GET_INFO_MEMBER(bg_get_tile_info);
}; };
@ -836,22 +838,15 @@ static INPUT_PORTS_START( wondstck )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
INPUT_PORTS_END INPUT_PORTS_END
TILE_GET_INFO_MEMBER(nmg5_state::fg_get_tile_info){ SET_TILE_INFO_MEMBER(0, m_fg_videoram[tile_index] | (m_gfx_bank << 16), 0, 0);}
INLINE void get_tile_info( running_machine &machine, tile_data &tileinfo, int tile_index, UINT16 *vram, int color ) TILE_GET_INFO_MEMBER(nmg5_state::bg_get_tile_info){ SET_TILE_INFO_MEMBER(0, m_bg_videoram[tile_index] | (m_gfx_bank << 16), 1, 0);}
{
nmg5_state *state = machine.driver_data<nmg5_state>();
SET_TILE_INFO(0, vram[tile_index] | (state->m_gfx_bank << 16), color, 0);
}
static TILE_GET_INFO( fg_get_tile_info ) { nmg5_state *state = machine.driver_data<nmg5_state>(); get_tile_info(machine, tileinfo, tile_index, state->m_fg_videoram, 0); }
static TILE_GET_INFO( bg_get_tile_info ) { nmg5_state *state = machine.driver_data<nmg5_state>(); get_tile_info(machine, tileinfo, tile_index, state->m_bg_videoram, 1); }
static VIDEO_START( nmg5 ) static VIDEO_START( nmg5 )
{ {
nmg5_state *state = machine.driver_data<nmg5_state>(); nmg5_state *state = machine.driver_data<nmg5_state>();
state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmg5_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmg5_state::fg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
} }

View File

@ -79,6 +79,7 @@ public:
DECLARE_WRITE8_MEMBER(nsmpoker_colorram_w); DECLARE_WRITE8_MEMBER(nsmpoker_colorram_w);
DECLARE_WRITE8_MEMBER(debug_w); DECLARE_WRITE8_MEMBER(debug_w);
DECLARE_READ8_MEMBER(debug_r); DECLARE_READ8_MEMBER(debug_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -101,28 +102,27 @@ WRITE8_MEMBER(nsmpoker_state::nsmpoker_colorram_w)
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(nsmpoker_state::get_bg_tile_info)
{ {
nsmpoker_state *state = machine.driver_data<nsmpoker_state>();
/* - bits - /* - bits -
7654 3210 7654 3210
---- ---- bank select. ---- ---- bank select.
---- ---- color code. ---- ---- color code.
---- ---- seems unused. ---- ---- seems unused.
*/ */
// int attr = state->m_colorram[tile_index]; // int attr = m_colorram[tile_index];
int code = state->m_videoram[tile_index]; int code = m_videoram[tile_index];
// int bank = (attr & 0x08) >> 3; // int bank = (attr & 0x08) >> 3;
// int color = (attr & 0x03); // int color = (attr & 0x03);
SET_TILE_INFO( 0 /* bank */, code, 0 /* color */, 0); SET_TILE_INFO_MEMBER( 0 /* bank */, code, 0 /* color */, 0);
} }
static VIDEO_START( nsmpoker ) static VIDEO_START( nsmpoker )
{ {
nsmpoker_state *state = machine.driver_data<nsmpoker_state>(); nsmpoker_state *state = machine.driver_data<nsmpoker_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(nsmpoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }

View File

@ -81,6 +81,7 @@ public:
DECLARE_WRITE8_MEMBER(olibochu_colorram_w); DECLARE_WRITE8_MEMBER(olibochu_colorram_w);
DECLARE_WRITE8_MEMBER(olibochu_flipscreen_w); DECLARE_WRITE8_MEMBER(olibochu_flipscreen_w);
DECLARE_WRITE8_MEMBER(sound_command_w); DECLARE_WRITE8_MEMBER(sound_command_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -146,21 +147,20 @@ WRITE8_MEMBER(olibochu_state::olibochu_flipscreen_w)
/* other bits are used, but unknown */ /* other bits are used, but unknown */
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(olibochu_state::get_bg_tile_info)
{ {
olibochu_state *state = machine.driver_data<olibochu_state>(); int attr = m_colorram[tile_index];
int attr = state->m_colorram[tile_index]; int code = m_videoram[tile_index] + ((attr & 0x20) << 3);
int code = state->m_videoram[tile_index] + ((attr & 0x20) << 3);
int color = (attr & 0x1f) + 0x20; int color = (attr & 0x1f) + 0x20;
int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0);
SET_TILE_INFO(0, code, color, flags); SET_TILE_INFO_MEMBER(0, code, color, flags);
} }
static VIDEO_START( olibochu ) static VIDEO_START( olibochu )
{ {
olibochu_state *state = machine.driver_data<olibochu_state>(); olibochu_state *state = machine.driver_data<olibochu_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(olibochu_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )

View File

@ -72,6 +72,7 @@ public:
DECLARE_WRITE8_MEMBER(onetwo_soundlatch_w); DECLARE_WRITE8_MEMBER(onetwo_soundlatch_w);
DECLARE_WRITE8_MEMBER(palette1_w); DECLARE_WRITE8_MEMBER(palette1_w);
DECLARE_WRITE8_MEMBER(palette2_w); DECLARE_WRITE8_MEMBER(palette2_w);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -82,21 +83,20 @@ public:
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(onetwo_state::get_fg_tile_info)
{ {
onetwo_state *state = machine.driver_data<onetwo_state>(); int code = (m_fgram[tile_index * 2 + 1] << 8) | m_fgram[tile_index * 2];
int code = (state->m_fgram[tile_index * 2 + 1] << 8) | state->m_fgram[tile_index * 2]; int color = (m_fgram[tile_index * 2 + 1] & 0x80) >> 7;
int color = (state->m_fgram[tile_index * 2 + 1] & 0x80) >> 7;
code &= 0x7fff; code &= 0x7fff;
SET_TILE_INFO(0, code, color, 0); SET_TILE_INFO_MEMBER(0, code, color, 0);
} }
static VIDEO_START( onetwo ) static VIDEO_START( onetwo )
{ {
onetwo_state *state = machine.driver_data<onetwo_state>(); onetwo_state *state = machine.driver_data<onetwo_state>();
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
} }
static SCREEN_UPDATE_IND16( onetwo ) static SCREEN_UPDATE_IND16( onetwo )

View File

@ -93,6 +93,9 @@ public:
DECLARE_WRITE8_MEMBER(t5182shared_w); DECLARE_WRITE8_MEMBER(t5182shared_w);
DECLARE_DRIVER_INIT(panicr); DECLARE_DRIVER_INIT(panicr);
TILE_GET_INFO_MEMBER(get_bgtile_info);
TILE_GET_INFO_MEMBER(get_infotile_info);
TILE_GET_INFO_MEMBER(get_txttile_info);
}; };
@ -164,44 +167,43 @@ static PALETTE_INIT( panicr )
} }
static TILE_GET_INFO( get_bgtile_info ) TILE_GET_INFO_MEMBER(panicr_state::get_bgtile_info)
{ {
int code,attr; int code,attr;
code=machine.root_device().memregion("user1")->base()[tile_index]; code=machine().root_device().memregion("user1")->base()[tile_index];
attr=machine.root_device().memregion("user2")->base()[tile_index]; attr=machine().root_device().memregion("user2")->base()[tile_index];
code+=((attr&7)<<8); code+=((attr&7)<<8);
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
(attr & 0xf0) >> 4, (attr & 0xf0) >> 4,
0); 0);
} }
static TILE_GET_INFO( get_infotile_info ) TILE_GET_INFO_MEMBER(panicr_state::get_infotile_info)
{ {
int code,attr; int code,attr;
code=machine.root_device().memregion("user1")->base()[tile_index]; code=machine().root_device().memregion("user1")->base()[tile_index];
attr=machine.root_device().memregion("user2")->base()[tile_index]; attr=machine().root_device().memregion("user2")->base()[tile_index];
code+=((attr&7)<<8); code+=((attr&7)<<8);
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
2, 2,
code, code,
(attr & 0xf0) >> 4, (attr & 0xf0) >> 4,
0); 0);
} }
static TILE_GET_INFO( get_txttile_info ) TILE_GET_INFO_MEMBER(panicr_state::get_txttile_info)
{ {
panicr_state *state = machine.driver_data<panicr_state>(); int code=m_textram[tile_index*4];
int code=state->m_textram[tile_index*4]; int attr=m_textram[tile_index*4+2];
int attr=state->m_textram[tile_index*4+2];
int color = attr & 0x07; int color = attr & 0x07;
tileinfo.group = color; tileinfo.group = color;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code + ((attr & 8) << 5), code + ((attr & 8) << 5),
color, color,
@ -213,10 +215,10 @@ static VIDEO_START( panicr )
{ {
panicr_state *state = machine.driver_data<panicr_state>(); panicr_state *state = machine.driver_data<panicr_state>();
state->m_bgtilemap = tilemap_create( machine, get_bgtile_info,TILEMAP_SCAN_ROWS,16,16,1024,16 ); state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_bgtile_info),state),TILEMAP_SCAN_ROWS,16,16,1024,16 );
state->m_infotilemap = tilemap_create( machine, get_infotile_info,TILEMAP_SCAN_ROWS,16,16,1024,16 ); // 3 more bitplanes, contains collision and priority data state->m_infotilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info),state),TILEMAP_SCAN_ROWS,16,16,1024,16 ); // 3 more bitplanes, contains collision and priority data
state->m_txttilemap = tilemap_create( machine, get_txttile_info,TILEMAP_SCAN_ROWS,8,8,32,32 ); state->m_txttilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_txttile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 );
colortable_configure_tilemap_groups(machine.colortable, state->m_txttilemap, machine.gfx[0], 0); colortable_configure_tilemap_groups(machine.colortable, state->m_txttilemap, machine.gfx[0], 0);
} }

View File

@ -262,6 +262,7 @@ public:
DECLARE_DRIVER_INIT(peplus); DECLARE_DRIVER_INIT(peplus);
DECLARE_DRIVER_INIT(peplussb); DECLARE_DRIVER_INIT(peplussb);
DECLARE_DRIVER_INIT(peplussbw); DECLARE_DRIVER_INIT(peplussbw);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
static const UINT8 id_022[8] = { 0x00, 0x01, 0x04, 0x09, 0x13, 0x16, 0x18, 0x00 }; static const UINT8 id_022[8] = { 0x00, 0x01, 0x04, 0x09, 0x13, 0x16, 0x18, 0x00 };
@ -935,31 +936,30 @@ READ8_MEMBER(peplus_state::peplus_input_bank_a_r)
* Video/Character functions * * Video/Character functions *
****************************/ ****************************/
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(peplus_state::get_bg_tile_info)
{ {
peplus_state *state = machine.driver_data<peplus_state>(); UINT8 *videoram = m_videoram;
UINT8 *videoram = state->m_videoram; int pr = m_palette_ram[tile_index];
int pr = state->m_palette_ram[tile_index]; int pr2 = m_palette_ram2[tile_index];
int pr2 = state->m_palette_ram2[tile_index];
int vr = videoram[tile_index]; int vr = videoram[tile_index];
int code = ((pr & 0x0f)*256) | vr; int code = ((pr & 0x0f)*256) | vr;
int color = (pr>>4) & 0x0f; int color = (pr>>4) & 0x0f;
// Access 2nd Half of CGs and CAP // Access 2nd Half of CGs and CAP
if (state->m_jumper_e16_e17 && (pr2 & 0x10) == 0x10) if (m_jumper_e16_e17 && (pr2 & 0x10) == 0x10)
{ {
code += 0x1000; code += 0x1000;
color += 0x10; color += 0x10;
} }
SET_TILE_INFO(0, code, color, 0); SET_TILE_INFO_MEMBER(0, code, color, 0);
} }
static VIDEO_START( peplus ) static VIDEO_START( peplus )
{ {
peplus_state *state = machine.driver_data<peplus_state>(); peplus_state *state = machine.driver_data<peplus_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 40, 25); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(peplus_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
state->m_palette_ram = auto_alloc_array(machine, UINT8, 0x3000); state->m_palette_ram = auto_alloc_array(machine, UINT8, 0x3000);
memset(state->m_palette_ram, 0, 0x3000); memset(state->m_palette_ram, 0, 0x3000);
state->m_palette_ram2 = auto_alloc_array(machine, UINT8, 0x3000); state->m_palette_ram2 = auto_alloc_array(machine, UINT8, 0x3000);

View File

@ -97,26 +97,26 @@ public:
DECLARE_WRITE8_MEMBER(vidctrl_w); DECLARE_WRITE8_MEMBER(vidctrl_w);
DECLARE_READ8_MEMBER(protection_r); DECLARE_READ8_MEMBER(protection_r);
DECLARE_WRITE8_MEMBER(protection_w); DECLARE_WRITE8_MEMBER(protection_w);
TILE_GET_INFO_MEMBER(get_tile_info);
TILE_GET_INFO_MEMBER(get_tile_info2);
}; };
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(pipeline_state::get_tile_info)
{ {
pipeline_state *state = machine.driver_data<pipeline_state>(); int code = m_vram2[tile_index]+m_vram2[tile_index+0x800]*256;
int code = state->m_vram2[tile_index]+state->m_vram2[tile_index+0x800]*256; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
0, 0,
code, code,
0, 0,
0); 0);
} }
static TILE_GET_INFO( get_tile_info2 ) TILE_GET_INFO_MEMBER(pipeline_state::get_tile_info2)
{ {
pipeline_state *state = machine.driver_data<pipeline_state>(); int code =m_vram1[tile_index]+((m_vram1[tile_index+0x800]>>4))*256;
int code =state->m_vram1[tile_index]+((state->m_vram1[tile_index+0x800]>>4))*256; int color=((m_vram1[tile_index+0x800])&0xf);
int color=((state->m_vram1[tile_index+0x800])&0xf); SET_TILE_INFO_MEMBER
SET_TILE_INFO
( (
1, 1,
code, code,
@ -129,8 +129,8 @@ static VIDEO_START ( pipeline )
{ {
pipeline_state *state = machine.driver_data<pipeline_state>(); pipeline_state *state = machine.driver_data<pipeline_state>();
state->m_palram=auto_alloc_array(machine, UINT8, 0x1000); state->m_palram=auto_alloc_array(machine, UINT8, 0x1000);
state->m_tilemap1 = tilemap_create( machine, get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32 ); state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32 );
state->m_tilemap2 = tilemap_create( machine, get_tile_info2,TILEMAP_SCAN_ROWS,8,8,64,32 ); state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,64,32 );
state->m_tilemap2->set_transparent_pen(0); state->m_tilemap2->set_transparent_pen(0);
} }

View File

@ -38,6 +38,9 @@ public:
DECLARE_WRITE16_MEMBER(pkscramble_mdtilemap_w); DECLARE_WRITE16_MEMBER(pkscramble_mdtilemap_w);
DECLARE_WRITE16_MEMBER(pkscramble_bgtilemap_w); DECLARE_WRITE16_MEMBER(pkscramble_bgtilemap_w);
DECLARE_WRITE16_MEMBER(pkscramble_output_w); DECLARE_WRITE16_MEMBER(pkscramble_output_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_md_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -184,31 +187,28 @@ static INPUT_PORTS_START( pkscramble )
INPUT_PORTS_END INPUT_PORTS_END
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(pkscram_state::get_bg_tile_info)
{ {
pkscram_state *state = machine.driver_data<pkscram_state>(); int tile = m_pkscramble_bgtilemap_ram[tile_index*2];
int tile = state->m_pkscramble_bgtilemap_ram[tile_index*2]; int color = m_pkscramble_bgtilemap_ram[tile_index*2 + 1] & 0x7f;
int color = state->m_pkscramble_bgtilemap_ram[tile_index*2 + 1] & 0x7f;
SET_TILE_INFO(0,tile,color,0); SET_TILE_INFO_MEMBER(0,tile,color,0);
} }
static TILE_GET_INFO( get_md_tile_info ) TILE_GET_INFO_MEMBER(pkscram_state::get_md_tile_info)
{ {
pkscram_state *state = machine.driver_data<pkscram_state>(); int tile = m_pkscramble_mdtilemap_ram[tile_index*2];
int tile = state->m_pkscramble_mdtilemap_ram[tile_index*2]; int color = m_pkscramble_mdtilemap_ram[tile_index*2 + 1] & 0x7f;
int color = state->m_pkscramble_mdtilemap_ram[tile_index*2 + 1] & 0x7f;
SET_TILE_INFO(0,tile,color,0); SET_TILE_INFO_MEMBER(0,tile,color,0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(pkscram_state::get_fg_tile_info)
{ {
pkscram_state *state = machine.driver_data<pkscram_state>(); int tile = m_pkscramble_fgtilemap_ram[tile_index*2];
int tile = state->m_pkscramble_fgtilemap_ram[tile_index*2]; int color = m_pkscramble_fgtilemap_ram[tile_index*2 + 1] & 0x7f;
int color = state->m_pkscramble_fgtilemap_ram[tile_index*2 + 1] & 0x7f;
SET_TILE_INFO(0,tile,color,0); SET_TILE_INFO_MEMBER(0,tile,color,0);
} }
static TIMER_DEVICE_CALLBACK( scanline_callback ) static TIMER_DEVICE_CALLBACK( scanline_callback )
@ -233,9 +233,9 @@ static TIMER_DEVICE_CALLBACK( scanline_callback )
static VIDEO_START( pkscramble ) static VIDEO_START( pkscramble )
{ {
pkscram_state *state = machine.driver_data<pkscram_state>(); pkscram_state *state = machine.driver_data<pkscram_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(pkscram_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32);
state->m_md_tilemap = tilemap_create(machine, get_md_tile_info, TILEMAP_SCAN_ROWS, 8, 8,32,32); state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pkscram_state::get_md_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32);
state->m_fg_tilemap = 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(pkscram_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32);
state->m_md_tilemap->set_transparent_pen(15); state->m_md_tilemap->set_transparent_pen(15);
state->m_fg_tilemap->set_transparent_pen(15); state->m_fg_tilemap->set_transparent_pen(15);

View File

@ -152,6 +152,8 @@ public:
DECLARE_WRITE8_MEMBER(ppmast93_bgram_w); DECLARE_WRITE8_MEMBER(ppmast93_bgram_w);
DECLARE_WRITE8_MEMBER(ppmast93_port4_w); DECLARE_WRITE8_MEMBER(ppmast93_port4_w);
DECLARE_WRITE8_MEMBER(ppmast_sound_w); DECLARE_WRITE8_MEMBER(ppmast_sound_w);
TILE_GET_INFO_MEMBER(get_ppmast93_bg_tile_info);
TILE_GET_INFO_MEMBER(get_ppmast93_fg_tile_info);
}; };
@ -322,22 +324,20 @@ static GFXDECODE_START( ppmast93 )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 ) GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 )
GFXDECODE_END GFXDECODE_END
static TILE_GET_INFO( get_ppmast93_bg_tile_info ) TILE_GET_INFO_MEMBER(ppmast93_state::get_ppmast93_bg_tile_info)
{ {
ppmast93_state *state = machine.driver_data<ppmast93_state>(); int code = (m_bgram[tile_index*2+1] << 8) | m_bgram[tile_index*2];
int code = (state->m_bgram[tile_index*2+1] << 8) | state->m_bgram[tile_index*2]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
0, 0,
code & 0x0fff, code & 0x0fff,
(code & 0xf000) >> 12, (code & 0xf000) >> 12,
0); 0);
} }
static TILE_GET_INFO( get_ppmast93_fg_tile_info ) TILE_GET_INFO_MEMBER(ppmast93_state::get_ppmast93_fg_tile_info)
{ {
ppmast93_state *state = machine.driver_data<ppmast93_state>(); int code = (m_fgram[tile_index*2+1] << 8) | m_fgram[tile_index*2];
int code = (state->m_fgram[tile_index*2+1] << 8) | state->m_fgram[tile_index*2]; SET_TILE_INFO_MEMBER(
SET_TILE_INFO(
0, 0,
(code & 0x0fff)+0x1000, (code & 0x0fff)+0x1000,
(code & 0xf000) >> 12, (code & 0xf000) >> 12,
@ -347,8 +347,8 @@ static TILE_GET_INFO( get_ppmast93_fg_tile_info )
static VIDEO_START( ppmast93 ) static VIDEO_START( ppmast93 )
{ {
ppmast93_state *state = machine.driver_data<ppmast93_state>(); ppmast93_state *state = machine.driver_data<ppmast93_state>();
state->m_bg_tilemap = tilemap_create(machine, get_ppmast93_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,32, 32); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32, 32);
state->m_fg_tilemap = tilemap_create(machine, get_ppmast93_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32, 32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
} }

View File

@ -113,6 +113,8 @@ public:
DECLARE_READ8_MEMBER(pturn_protection_r); DECLARE_READ8_MEMBER(pturn_protection_r);
DECLARE_READ8_MEMBER(pturn_protection2_r); DECLARE_READ8_MEMBER(pturn_protection2_r);
DECLARE_DRIVER_INIT(pturn); DECLARE_DRIVER_INIT(pturn);
TILE_GET_INFO_MEMBER(get_pturn_tile_info);
TILE_GET_INFO_MEMBER(get_pturn_bg_tile_info);
}; };
@ -126,39 +128,37 @@ static const UINT8 tile_lookup[0x10]=
0xa0, 0xb0, 0xe0, 0xf0 0xa0, 0xb0, 0xe0, 0xf0
}; };
static TILE_GET_INFO( get_pturn_tile_info ) TILE_GET_INFO_MEMBER(pturn_state::get_pturn_tile_info)
{ {
pturn_state *state = machine.driver_data<pturn_state>(); UINT8 *videoram = m_videoram;
UINT8 *videoram = state->m_videoram;
int tileno; int tileno;
tileno = videoram[tile_index]; tileno = videoram[tile_index];
tileno=tile_lookup[tileno>>4]|(tileno&0xf)|(state->m_fgbank<<8); tileno=tile_lookup[tileno>>4]|(tileno&0xf)|(m_fgbank<<8);
SET_TILE_INFO(0,tileno,state->m_fgpalette,0); SET_TILE_INFO_MEMBER(0,tileno,m_fgpalette,0);
} }
static TILE_GET_INFO( get_pturn_bg_tile_info ) TILE_GET_INFO_MEMBER(pturn_state::get_pturn_bg_tile_info)
{ {
pturn_state *state = machine.driver_data<pturn_state>();
int tileno,palno; int tileno,palno;
tileno = state->memregion("user1")->base()[tile_index]; tileno = memregion("user1")->base()[tile_index];
palno=state->m_bgpalette; palno=m_bgpalette;
if(palno==1) if(palno==1)
{ {
palno=25; palno=25;
} }
SET_TILE_INFO(1,tileno+state->m_bgbank*256,palno,0); SET_TILE_INFO_MEMBER(1,tileno+m_bgbank*256,palno,0);
} }
static VIDEO_START(pturn) static VIDEO_START(pturn)
{ {
pturn_state *state = machine.driver_data<pturn_state>(); pturn_state *state = machine.driver_data<pturn_state>();
state->m_fgmap = tilemap_create(machine, get_pturn_tile_info,TILEMAP_SCAN_ROWS,8, 8,32,32); state->m_fgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pturn_state::get_pturn_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,32,32);
state->m_fgmap->set_transparent_pen(0); state->m_fgmap->set_transparent_pen(0);
state->m_bgmap = tilemap_create(machine, get_pturn_bg_tile_info,TILEMAP_SCAN_ROWS,8, 8,32,32*8); state->m_bgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pturn_state::get_pturn_bg_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,32,32*8);
state->m_bgmap->set_transparent_pen(0); state->m_bgmap->set_transparent_pen(0);
} }

View File

@ -53,26 +53,26 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(ticket_status_r); DECLARE_CUSTOM_INPUT_MEMBER(ticket_status_r);
DECLARE_WRITE16_MEMBER(eeprom_w); DECLARE_WRITE16_MEMBER(eeprom_w);
DECLARE_WRITE16_MEMBER(oki_bank_w); DECLARE_WRITE16_MEMBER(oki_bank_w);
TILE_GET_INFO_MEMBER(get_mid_tile_info);
TILE_GET_INFO_MEMBER(get_txt_tile_info);
}; };
static TILE_GET_INFO( get_mid_tile_info ) TILE_GET_INFO_MEMBER(pzletime_state::get_mid_tile_info)
{ {
pzletime_state *state = machine.driver_data<pzletime_state>(); int tileno = m_mid_videoram[tile_index] & 0x0fff;
int tileno = state->m_mid_videoram[tile_index] & 0x0fff; int colour = m_mid_videoram[tile_index] & 0xf000;
int colour = state->m_mid_videoram[tile_index] & 0xf000;
colour = colour >> 12; colour = colour >> 12;
SET_TILE_INFO(2, tileno, colour, 0); SET_TILE_INFO_MEMBER(2, tileno, colour, 0);
} }
static TILE_GET_INFO( get_txt_tile_info ) TILE_GET_INFO_MEMBER(pzletime_state::get_txt_tile_info)
{ {
pzletime_state *state = machine.driver_data<pzletime_state>(); int tileno = m_txt_videoram[tile_index] & 0x0fff;
int tileno = state->m_txt_videoram[tile_index] & 0x0fff; int colour = m_txt_videoram[tile_index] & 0xf000;
int colour = state->m_txt_videoram[tile_index] & 0xf000;
colour = colour >> 12; colour = colour >> 12;
SET_TILE_INFO(0, tileno, colour, 0); SET_TILE_INFO_MEMBER(0, tileno, colour, 0);
tileinfo.category = BIT(colour, 3); tileinfo.category = BIT(colour, 3);
} }
@ -81,8 +81,8 @@ static VIDEO_START( pzletime )
{ {
pzletime_state *state = machine.driver_data<pzletime_state>(); pzletime_state *state = machine.driver_data<pzletime_state>();
state->m_mid_tilemap = tilemap_create(machine, get_mid_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 16); state->m_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pzletime_state::get_mid_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
state->m_txt_tilemap = 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(pzletime_state::get_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
state->m_mid_tilemap->set_transparent_pen(0); state->m_mid_tilemap->set_transparent_pen(0);
state->m_txt_tilemap->set_transparent_pen(0); state->m_txt_tilemap->set_transparent_pen(0);

View File

@ -108,6 +108,8 @@ public:
DECLARE_WRITE8_MEMBER(quizpun2_rombank_w); DECLARE_WRITE8_MEMBER(quizpun2_rombank_w);
DECLARE_WRITE8_MEMBER(quizpun2_irq_ack); DECLARE_WRITE8_MEMBER(quizpun2_irq_ack);
DECLARE_WRITE8_MEMBER(quizpun2_soundlatch_w); DECLARE_WRITE8_MEMBER(quizpun2_soundlatch_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -117,19 +119,17 @@ public:
Video Hardware Video Hardware
***************************************************************************/ ***************************************************************************/
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(quizpun2_state::get_bg_tile_info)
{ {
quizpun2_state *state = machine.driver_data<quizpun2_state>(); UINT16 code = m_bg_ram[ tile_index * 2 ] + m_bg_ram[ tile_index * 2 + 1 ] * 256;
UINT16 code = state->m_bg_ram[ tile_index * 2 ] + state->m_bg_ram[ tile_index * 2 + 1 ] * 256; SET_TILE_INFO_MEMBER(0, code, 0, 0);
SET_TILE_INFO(0, code, 0, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(quizpun2_state::get_fg_tile_info)
{ {
quizpun2_state *state = machine.driver_data<quizpun2_state>(); UINT16 code = m_fg_ram[ tile_index * 4 ] + m_fg_ram[ tile_index * 4 + 1 ] * 256;
UINT16 code = state->m_fg_ram[ tile_index * 4 ] + state->m_fg_ram[ tile_index * 4 + 1 ] * 256; UINT8 color = m_fg_ram[ tile_index * 4 + 2 ];
UINT8 color = state->m_fg_ram[ tile_index * 4 + 2 ]; SET_TILE_INFO_MEMBER(1, code, color & 0x0f, 0);
SET_TILE_INFO(1, code, color & 0x0f, 0);
} }
WRITE8_MEMBER(quizpun2_state::bg_ram_w) WRITE8_MEMBER(quizpun2_state::bg_ram_w)
@ -147,8 +147,8 @@ WRITE8_MEMBER(quizpun2_state::fg_ram_w)
static VIDEO_START(quizpun2) static VIDEO_START(quizpun2)
{ {
quizpun2_state *state = machine.driver_data<quizpun2_state>(); quizpun2_state *state = machine.driver_data<quizpun2_state>();
state->m_bg_tmap = tilemap_create( machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8,16, 0x20,0x20 ); state->m_bg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpun2_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,8,16,0x20,0x20);
state->m_fg_tmap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8,16, 0x20,0x20 ); state->m_fg_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpun2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,16,0x20,0x20);
state->m_bg_tmap->set_transparent_pen(0); state->m_bg_tmap->set_transparent_pen(0);
state->m_fg_tmap->set_transparent_pen(0); state->m_fg_tmap->set_transparent_pen(0);

View File

@ -59,6 +59,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(quizshow_tape_headpos_r); DECLARE_CUSTOM_INPUT_MEMBER(quizshow_tape_headpos_r);
DECLARE_INPUT_CHANGED_MEMBER(quizshow_category_select); DECLARE_INPUT_CHANGED_MEMBER(quizshow_category_select);
DECLARE_DRIVER_INIT(quizshow); DECLARE_DRIVER_INIT(quizshow);
TILE_GET_INFO_MEMBER(get_tile_info);
}; };
@ -87,21 +88,20 @@ PALETTE_INIT( quizshow )
colortable_entry_set_value(machine.colortable, i, lut_pal[i]); colortable_entry_set_value(machine.colortable, i, lut_pal[i]);
} }
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(quizshow_state::get_tile_info)
{ {
quizshow_state *state = machine.driver_data<quizshow_state>(); UINT8 code = m_main_ram[tile_index];
UINT8 code = state->m_main_ram[tile_index];
// d6: blink, d7: invert // d6: blink, d7: invert
UINT8 color = (code & (state->m_blink_state | 0x80)) >> 6; UINT8 color = (code & (m_blink_state | 0x80)) >> 6;
SET_TILE_INFO(0, code & 0x3f, color, 0); SET_TILE_INFO_MEMBER(0, code & 0x3f, color, 0);
} }
VIDEO_START( quizshow ) VIDEO_START( quizshow )
{ {
quizshow_state *state = machine.driver_data<quizshow_state>(); quizshow_state *state = machine.driver_data<quizshow_state>();
state->m_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 16, 32, 16); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
} }
SCREEN_UPDATE_IND16( quizshow ) SCREEN_UPDATE_IND16( quizshow )

View File

@ -51,6 +51,10 @@ public:
DECLARE_DRIVER_INIT(rdx_v33); DECLARE_DRIVER_INIT(rdx_v33);
DECLARE_DRIVER_INIT(nzerotea); DECLARE_DRIVER_INIT(nzerotea);
DECLARE_DRIVER_INIT(zerotm2k); DECLARE_DRIVER_INIT(zerotm2k);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_md_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
}; };
@ -58,44 +62,44 @@ static UINT16 *seibu_crtc_regs;
static UINT16 *bg_vram,*md_vram,*fg_vram,*tx_vram; static UINT16 *bg_vram,*md_vram,*fg_vram,*tx_vram;
static tilemap_t *bg_tilemap,*md_tilemap,*fg_tilemap,*tx_tilemap; static tilemap_t *bg_tilemap,*md_tilemap,*fg_tilemap,*tx_tilemap;
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(r2dx_v33_state::get_bg_tile_info)
{ {
int tile = bg_vram[tile_index]; int tile = bg_vram[tile_index];
int color = (tile>>12)&0xf; int color = (tile>>12)&0xf;
tile &= 0xfff; tile &= 0xfff;
SET_TILE_INFO(1,tile + 0x0000,color,0); SET_TILE_INFO_MEMBER(1,tile + 0x0000,color,0);
} }
static TILE_GET_INFO( get_md_tile_info ) TILE_GET_INFO_MEMBER(r2dx_v33_state::get_md_tile_info)
{ {
int tile = md_vram[tile_index]; int tile = md_vram[tile_index];
int color = (tile>>12)&0xf; int color = (tile>>12)&0xf;
tile &= 0xfff; tile &= 0xfff;
SET_TILE_INFO(2,tile + 0x2000,color,0); SET_TILE_INFO_MEMBER(2,tile + 0x2000,color,0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(r2dx_v33_state::get_fg_tile_info)
{ {
int tile = fg_vram[tile_index]; int tile = fg_vram[tile_index];
int color = (tile>>12)&0xf; int color = (tile>>12)&0xf;
tile &= 0xfff; tile &= 0xfff;
SET_TILE_INFO(3,tile + 0x1000,color,0); SET_TILE_INFO_MEMBER(3,tile + 0x1000,color,0);
} }
static TILE_GET_INFO( get_tx_tile_info ) TILE_GET_INFO_MEMBER(r2dx_v33_state::get_tx_tile_info)
{ {
int tile = tx_vram[tile_index]; int tile = tx_vram[tile_index];
int color = (tile>>12)&0xf; int color = (tile>>12)&0xf;
tile &= 0xfff; tile &= 0xfff;
SET_TILE_INFO(4,tile,color,0); SET_TILE_INFO_MEMBER(4,tile,color,0);
} }
/* copied from Legionnaire */ /* copied from Legionnaire */
@ -187,10 +191,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
static VIDEO_START( rdx_v33 ) static VIDEO_START( rdx_v33 )
{ {
bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); r2dx_v33_state *state = machine.driver_data<r2dx_v33_state>();
md_tilemap = tilemap_create(machine, get_md_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32);
fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_md_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32);
tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS,8, 8, 64,32); fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32);
tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS,8, 8, 64,32);
bg_tilemap->set_transparent_pen(15); bg_tilemap->set_transparent_pen(15);
md_tilemap->set_transparent_pen(15); md_tilemap->set_transparent_pen(15);

View File

@ -132,6 +132,10 @@ public:
DECLARE_WRITE32_MEMBER(rabbit_blitter_w); DECLARE_WRITE32_MEMBER(rabbit_blitter_w);
DECLARE_WRITE32_MEMBER(rabbit_eeprom_write); DECLARE_WRITE32_MEMBER(rabbit_eeprom_write);
DECLARE_DRIVER_INIT(rabbit); DECLARE_DRIVER_INIT(rabbit);
TILE_GET_INFO_MEMBER(get_rabbit_tilemap0_tile_info);
TILE_GET_INFO_MEMBER(get_rabbit_tilemap1_tile_info);
TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info);
TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info);
}; };
@ -197,24 +201,24 @@ INLINE void get_rabbit_tilemap_info(running_machine &machine, tile_data &tileinf
} }
} }
static TILE_GET_INFO( get_rabbit_tilemap0_tile_info ) TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap0_tile_info)
{ {
get_rabbit_tilemap_info(machine,tileinfo,tile_index,0,1); get_rabbit_tilemap_info(machine(),tileinfo,tile_index,0,1);
} }
static TILE_GET_INFO( get_rabbit_tilemap1_tile_info ) TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap1_tile_info)
{ {
get_rabbit_tilemap_info(machine,tileinfo,tile_index,1,1); get_rabbit_tilemap_info(machine(),tileinfo,tile_index,1,1);
} }
static TILE_GET_INFO( get_rabbit_tilemap2_tile_info ) TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap2_tile_info)
{ {
get_rabbit_tilemap_info(machine,tileinfo,tile_index,2,1); get_rabbit_tilemap_info(machine(),tileinfo,tile_index,2,1);
} }
static TILE_GET_INFO( get_rabbit_tilemap3_tile_info ) TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap3_tile_info)
{ {
get_rabbit_tilemap_info(machine,tileinfo,tile_index,3,0); get_rabbit_tilemap_info(machine(),tileinfo,tile_index,3,0);
} }
WRITE32_MEMBER(rabbit_state::rabbit_tilemap0_w) WRITE32_MEMBER(rabbit_state::rabbit_tilemap0_w)
@ -392,10 +396,10 @@ static VIDEO_START(rabbit)
state->m_tilemap_ram[2] = auto_alloc_array_clear(machine, UINT32, 0x20000/4); state->m_tilemap_ram[2] = auto_alloc_array_clear(machine, UINT32, 0x20000/4);
state->m_tilemap_ram[3] = auto_alloc_array_clear(machine, UINT32, 0x20000/4); state->m_tilemap_ram[3] = auto_alloc_array_clear(machine, UINT32, 0x20000/4);
state->m_tilemap[0] = tilemap_create(machine, get_rabbit_tilemap0_tile_info,TILEMAP_SCAN_ROWS,16, 16, 128,32); state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap0_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32);
state->m_tilemap[1] = tilemap_create(machine, get_rabbit_tilemap1_tile_info,TILEMAP_SCAN_ROWS,16, 16, 128,32); state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap1_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32);
state->m_tilemap[2] = tilemap_create(machine, get_rabbit_tilemap2_tile_info,TILEMAP_SCAN_ROWS,16, 16, 128,32); state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap2_tile_info),state),TILEMAP_SCAN_ROWS,16, 16, 128,32);
state->m_tilemap[3] = tilemap_create(machine, get_rabbit_tilemap3_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 128,32); state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap3_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 128,32);
/* the tilemaps mix 4bpp and 8bbp tiles, we split these into 2 groups, and set a different transpen for each group */ /* the tilemaps mix 4bpp and 8bbp tiles, we split these into 2 groups, and set a different transpen for each group */
state->m_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT); state->m_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);

View File

@ -56,6 +56,7 @@ public:
DECLARE_WRITE8_MEMBER(themj_rombank_w); DECLARE_WRITE8_MEMBER(themj_rombank_w);
DECLARE_WRITE8_MEMBER(adpcm_w); DECLARE_WRITE8_MEMBER(adpcm_w);
DECLARE_DRIVER_INIT(rmhaihai); DECLARE_DRIVER_INIT(rmhaihai);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -72,20 +73,19 @@ WRITE8_MEMBER(rmhaihai_state::rmhaihai_colorram_w)
m_bg_tilemap->mark_tile_dirty(offset); m_bg_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(rmhaihai_state::get_bg_tile_info)
{ {
rmhaihai_state *state = machine.driver_data<rmhaihai_state>(); int attr = m_colorram[tile_index];
int attr = state->m_colorram[tile_index]; int code = m_videoram[tile_index] + (m_gfxbank << 12) + ((attr & 0x07) << 8) + ((attr & 0x80) << 4);
int code = state->m_videoram[tile_index] + (state->m_gfxbank << 12) + ((attr & 0x07) << 8) + ((attr & 0x80) << 4); int color = (m_gfxbank << 5) + (attr >> 3);
int color = (state->m_gfxbank << 5) + (attr >> 3);
SET_TILE_INFO(0, code, color, 0); SET_TILE_INFO_MEMBER(0, code, color, 0);
} }
static VIDEO_START( rmhaihai ) static VIDEO_START( rmhaihai )
{ {
rmhaihai_state *state = machine.driver_data<rmhaihai_state>(); rmhaihai_state *state = machine.driver_data<rmhaihai_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(rmhaihai_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS,
8, 8, 64, 32); 8, 8, 64, 32);
} }

View File

@ -73,6 +73,8 @@ public:
DECLARE_READ8_MEMBER(ram_r); DECLARE_READ8_MEMBER(ram_r);
DECLARE_WRITE8_MEMBER(ram_bank_w); DECLARE_WRITE8_MEMBER(ram_bank_w);
DECLARE_WRITE8_MEMBER(safarir_audio_w); DECLARE_WRITE8_MEMBER(safarir_audio_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
@ -146,12 +148,11 @@ static PALETTE_INIT( safarir )
} }
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(safarir_state::get_bg_tile_info)
{ {
int color; int color;
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
safarir_state *state = machine.driver_data<safarir_state>(); UINT8 code = ram_r(*space,tile_index | 0x400);
UINT8 code = state->ram_r(*space,tile_index | 0x400);
if (code & 0x80) if (code & 0x80)
color = 6; /* yellow */ color = 6; /* yellow */
@ -165,16 +166,15 @@ static TILE_GET_INFO( get_bg_tile_info )
color |= (tile_index & 0xc0) ? 1 : 0; color |= (tile_index & 0xc0) ? 1 : 0;
} }
SET_TILE_INFO(0, code & 0x7f, color, 0); SET_TILE_INFO_MEMBER(0, code & 0x7f, color, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(safarir_state::get_fg_tile_info)
{ {
int color, flags; int color, flags;
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM);
safarir_state *state = machine.driver_data<safarir_state>(); UINT8 code = ram_r(*space,tile_index);
UINT8 code = state->ram_r(*space,tile_index);
if (code & 0x80) if (code & 0x80)
color = 7; /* white */ color = 7; /* white */
@ -183,7 +183,7 @@ static TILE_GET_INFO( get_fg_tile_info )
flags = ((tile_index & 0x1f) >= 0x03) ? 0 : TILE_FORCE_LAYER0; flags = ((tile_index & 0x1f) >= 0x03) ? 0 : TILE_FORCE_LAYER0;
SET_TILE_INFO(1, code & 0x7f, color, flags); SET_TILE_INFO_MEMBER(1, code & 0x7f, color, flags);
} }
@ -191,8 +191,8 @@ static VIDEO_START( safarir )
{ {
safarir_state *state = machine.driver_data<safarir_state>(); safarir_state *state = machine.driver_data<safarir_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(safarir_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, 8, 8, 32, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(safarir_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
} }

View File

@ -70,15 +70,15 @@ public:
DECLARE_WRITE8_MEMBER(system_w); DECLARE_WRITE8_MEMBER(system_w);
DECLARE_WRITE8_MEMBER(graph_control_w); DECLARE_WRITE8_MEMBER(graph_control_w);
DECLARE_READ8_MEMBER(controls_r); DECLARE_READ8_MEMBER(controls_r);
TILE_GET_INFO_MEMBER(get_sb_tile_info);
}; };
static TILE_GET_INFO( get_sb_tile_info ) TILE_GET_INFO_MEMBER(sbowling_state::get_sb_tile_info)
{ {
sbowling_state *state = machine.driver_data<sbowling_state>(); UINT8 *rom = memregion("user1")->base();
UINT8 *rom = state->memregion("user1")->base(); int tileno = rom[tile_index + m_bgmap * 1024];
int tileno = rom[tile_index + state->m_bgmap * 1024];
SET_TILE_INFO(0, tileno, 0, 0); SET_TILE_INFO_MEMBER(0, tileno, 0, 0);
} }
static void plot_pixel_sbw(bitmap_ind16 *tmpbitmap, int x, int y, int col, int flip) static void plot_pixel_sbw(bitmap_ind16 *tmpbitmap, int x, int y, int col, int flip)
@ -129,7 +129,7 @@ static VIDEO_START(sbowling)
sbowling_state *state = machine.driver_data<sbowling_state>(); sbowling_state *state = machine.driver_data<sbowling_state>();
state->m_tmpbitmap = auto_bitmap_ind16_alloc(machine,32*8,32*8); state->m_tmpbitmap = auto_bitmap_ind16_alloc(machine,32*8,32*8);
state->m_sb_tilemap = tilemap_create(machine, get_sb_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_sb_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sbowling_state::get_sb_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
WRITE8_MEMBER(sbowling_state::pix_shift_w) WRITE8_MEMBER(sbowling_state::pix_shift_w)

View File

@ -62,6 +62,7 @@ public:
DECLARE_READ8_MEMBER(sync_r); DECLARE_READ8_MEMBER(sync_r);
DECLARE_READ8_MEMBER(sync2_r); DECLARE_READ8_MEMBER(sync2_r);
DECLARE_WRITE8_MEMBER(sbrkout_videoram_w); DECLARE_WRITE8_MEMBER(sbrkout_videoram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
}; };
@ -296,19 +297,18 @@ READ8_MEMBER(sbrkout_state::sync2_r)
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(sbrkout_state::get_bg_tile_info)
{ {
sbrkout_state *state = machine.driver_data<sbrkout_state>(); UINT8 *videoram = m_videoram;
UINT8 *videoram = state->m_videoram;
int code = (videoram[tile_index] & 0x80) ? videoram[tile_index] : 0; int code = (videoram[tile_index] & 0x80) ? videoram[tile_index] : 0;
SET_TILE_INFO(0, code, 0, 0); SET_TILE_INFO_MEMBER(0, code, 0, 0);
} }
static VIDEO_START( sbrkout ) static VIDEO_START( sbrkout )
{ {
sbrkout_state *state = machine.driver_data<sbrkout_state>(); sbrkout_state *state = machine.driver_data<sbrkout_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(sbrkout_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }

View File

@ -446,6 +446,11 @@ public:
UINT8 xor5, UINT8 b50, UINT8 b51, UINT8 b52, UINT8 b53, UINT8 b54, UINT8 b55, UINT8 b56,UINT8 b57, UINT8 xor5, UINT8 b50, UINT8 b51, UINT8 b52, UINT8 b53, UINT8 b54, UINT8 b55, UINT8 b56,UINT8 b57,
UINT8 xor6, UINT8 b60, UINT8 b61, UINT8 b62, UINT8 b63, UINT8 b64, UINT8 b65, UINT8 b66,UINT8 b67, UINT8 xor6, UINT8 b60, UINT8 b61, UINT8 b62, UINT8 b63, UINT8 b64, UINT8 b65, UINT8 b66,UINT8 b67,
UINT8 xor7, UINT8 b70, UINT8 b71, UINT8 b72, UINT8 b73, UINT8 b74, UINT8 b75, UINT8 b76,UINT8 b77 ); UINT8 xor7, UINT8 b70, UINT8 b71, UINT8 b72, UINT8 b73, UINT8 b74, UINT8 b75, UINT8 b76,UINT8 b77 );
TILE_GET_INFO_MEMBER(get_sfbonus_tile_info);
TILE_GET_INFO_MEMBER(get_sfbonus_reel_tile_info);
TILE_GET_INFO_MEMBER(get_sfbonus_reel2_tile_info);
TILE_GET_INFO_MEMBER(get_sfbonus_reel3_tile_info);
TILE_GET_INFO_MEMBER(get_sfbonus_reel4_tile_info);
}; };
@ -765,78 +770,73 @@ INPUT_PORTS_END
static TILE_GET_INFO( get_sfbonus_tile_info ) TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_tile_info)
{ {
sfbonus_state *state = machine.driver_data<sfbonus_state>(); int code = m_tilemap_ram[(tile_index*2)+0] | (m_tilemap_ram[(tile_index*2)+1]<<8);
int code = state->m_tilemap_ram[(tile_index*2)+0] | (state->m_tilemap_ram[(tile_index*2)+1]<<8); int flipx = (m_tilemap_ram[(tile_index*2)+1] & 0x80)>>7;
int flipx = (state->m_tilemap_ram[(tile_index*2)+1] & 0x80)>>7; int flipy = (m_tilemap_ram[(tile_index*2)+1] & 0x40)>>5;
int flipy = (state->m_tilemap_ram[(tile_index*2)+1] & 0x40)>>5;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code, code,
0, 0,
TILE_FLIPYX(flipx | flipy)); TILE_FLIPYX(flipx | flipy));
} }
static TILE_GET_INFO( get_sfbonus_reel_tile_info ) TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel_tile_info)
{ {
sfbonus_state *state = machine.driver_data<sfbonus_state>(); int code = m_reel_ram[(tile_index*2)+0] | (m_reel_ram[(tile_index*2)+1]<<8);
int code = state->m_reel_ram[(tile_index*2)+0] | (state->m_reel_ram[(tile_index*2)+1]<<8); int flipx = (m_reel_ram[(tile_index*2)+1] & 0x80)>>7;
int flipx = (state->m_reel_ram[(tile_index*2)+1] & 0x80)>>7; int flipy = 0;//(m_reel_ram[(tile_index*2)+1] & 0x40)>>5;
int flipy = 0;//(state->m_reel_ram[(tile_index*2)+1] & 0x40)>>5;
int priority = (state->m_reel_ram[(tile_index*2)+1] & 0x40)>>6; int priority = (m_reel_ram[(tile_index*2)+1] & 0x40)>>6;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
priority, // colour aboused as priority priority, // colour aboused as priority
TILE_FLIPYX(flipx | flipy)); TILE_FLIPYX(flipx | flipy));
} }
static TILE_GET_INFO( get_sfbonus_reel2_tile_info ) TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel2_tile_info)
{ {
sfbonus_state *state = machine.driver_data<sfbonus_state>(); int code = m_reel2_ram[(tile_index*2)+0] | (m_reel2_ram[(tile_index*2)+1]<<8);
int code = state->m_reel2_ram[(tile_index*2)+0] | (state->m_reel2_ram[(tile_index*2)+1]<<8); int flipx = (m_reel2_ram[(tile_index*2)+1] & 0x80)>>7;
int flipx = (state->m_reel2_ram[(tile_index*2)+1] & 0x80)>>7; int flipy = 0;//(m_reel2_ram[(tile_index*2)+1] & 0x40)>>5;
int flipy = 0;//(state->m_reel2_ram[(tile_index*2)+1] & 0x40)>>5;
int priority = (state->m_reel2_ram[(tile_index*2)+1] & 0x40)>>6; int priority = (m_reel2_ram[(tile_index*2)+1] & 0x40)>>6;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
priority, // colour abused as priority priority, // colour abused as priority
TILE_FLIPYX(flipx | flipy)); TILE_FLIPYX(flipx | flipy));
} }
static TILE_GET_INFO( get_sfbonus_reel3_tile_info ) TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel3_tile_info)
{ {
sfbonus_state *state = machine.driver_data<sfbonus_state>(); int code = m_reel3_ram[(tile_index*2)+0] | (m_reel3_ram[(tile_index*2)+1]<<8);
int code = state->m_reel3_ram[(tile_index*2)+0] | (state->m_reel3_ram[(tile_index*2)+1]<<8); int flipx = (m_reel3_ram[(tile_index*2)+1] & 0x80)>>7;
int flipx = (state->m_reel3_ram[(tile_index*2)+1] & 0x80)>>7; int flipy = 0;//(m_reel3_ram[(tile_index*2)+1] & 0x40)>>5;
int flipy = 0;//(state->m_reel3_ram[(tile_index*2)+1] & 0x40)>>5;
int priority = (state->m_reel3_ram[(tile_index*2)+1] & 0x40)>>6; int priority = (m_reel3_ram[(tile_index*2)+1] & 0x40)>>6;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
priority, // colour abused as priority priority, // colour abused as priority
TILE_FLIPYX(flipx | flipy)); TILE_FLIPYX(flipx | flipy));
} }
static TILE_GET_INFO( get_sfbonus_reel4_tile_info ) TILE_GET_INFO_MEMBER(sfbonus_state::get_sfbonus_reel4_tile_info)
{ {
sfbonus_state *state = machine.driver_data<sfbonus_state>(); int code = m_reel4_ram[(tile_index*2)+0] | (m_reel4_ram[(tile_index*2)+1]<<8);
int code = state->m_reel4_ram[(tile_index*2)+0] | (state->m_reel4_ram[(tile_index*2)+1]<<8); int flipx = (m_reel4_ram[(tile_index*2)+1] & 0x80)>>7;
int flipx = (state->m_reel4_ram[(tile_index*2)+1] & 0x80)>>7; int flipy = 0;//(m_reel4_ram[(tile_index*2)+1] & 0x40)>>5;
int flipy = 0;//(state->m_reel4_ram[(tile_index*2)+1] & 0x40)>>5;
int priority = (state->m_reel4_ram[(tile_index*2)+1] & 0x40)>>6; int priority = (m_reel4_ram[(tile_index*2)+1] & 0x40)>>6;
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
1, 1,
code, code,
priority, // colour abused as priority priority, // colour abused as priority
@ -900,11 +900,11 @@ static VIDEO_START(sfbonus)
sfbonus_state *state = machine.driver_data<sfbonus_state>(); sfbonus_state *state = machine.driver_data<sfbonus_state>();
state->m_temp_reel_bitmap = auto_bitmap_ind16_alloc(machine,1024,512); state->m_temp_reel_bitmap = auto_bitmap_ind16_alloc(machine,1024,512);
state->m_tilemap = tilemap_create(machine,get_sfbonus_tile_info,TILEMAP_SCAN_ROWS,8,8, 128, 64); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 128, 64);
state->m_reel_tilemap = tilemap_create(machine,get_sfbonus_reel_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 16); state->m_reel_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16);
state->m_reel2_tilemap = tilemap_create(machine,get_sfbonus_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 16); state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16);
state->m_reel3_tilemap = tilemap_create(machine,get_sfbonus_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 16); state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16);
state->m_reel4_tilemap = tilemap_create(machine,get_sfbonus_reel4_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 16); state->m_reel4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel4_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 16);
state->m_tilemap->set_transparent_pen(0); state->m_tilemap->set_transparent_pen(0);
state->m_reel_tilemap->set_transparent_pen(255); state->m_reel_tilemap->set_transparent_pen(255);

View File

@ -105,32 +105,33 @@ public:
DECLARE_DRIVER_INIT(silvmil); DECLARE_DRIVER_INIT(silvmil);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILEMAP_MAPPER_MEMBER(deco16_scan_rows);
}; };
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(silvmil_state::get_bg_tile_info)
{ {
silvmil_state *state = machine.driver_data<silvmil_state>(); int data = m_bg_videoram[tile_index];
int data = state->m_bg_videoram[tile_index];
int tile = data & 0x3ff; int tile = data & 0x3ff;
int color = (data >> 12) & 0x0f; int color = (data >> 12) & 0x0f;
int bank = state->m_silvmil_tilebank[(data&0xc00)>>10]*0x400; int bank = m_silvmil_tilebank[(data&0xc00)>>10]*0x400;
SET_TILE_INFO(1, tile + bank, color + 0x20, 0); SET_TILE_INFO_MEMBER(1, tile + bank, color + 0x20, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(silvmil_state::get_fg_tile_info)
{ {
silvmil_state *state = machine.driver_data<silvmil_state>(); int data = m_fg_videoram[tile_index];
int data = state->m_fg_videoram[tile_index];
int tile = data & 0x3ff; int tile = data & 0x3ff;
int color = (data >> 12) & 0x0f; int color = (data >> 12) & 0x0f;
int bank = state->m_silvmil_tilebank[(data&0xc00)>>10]*0x400; int bank = m_silvmil_tilebank[(data&0xc00)>>10]*0x400;
SET_TILE_INFO(1, tile + bank, color + 0x10, 0); SET_TILE_INFO_MEMBER(1, tile + bank, color + 0x10, 0);
} }
static TILEMAP_MAPPER( deco16_scan_rows ) TILEMAP_MAPPER_MEMBER(silvmil_state::deco16_scan_rows)
{ {
/* logical (col,row) -> memory offset */ /* logical (col,row) -> memory offset */
return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6); return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6);
@ -139,8 +140,8 @@ static TILEMAP_MAPPER( deco16_scan_rows )
VIDEO_START( silvmil ) VIDEO_START( silvmil )
{ {
silvmil_state *state = machine.driver_data<silvmil_state>(); silvmil_state *state = machine.driver_data<silvmil_state>();
state->m_bg_layer = tilemap_create(machine, get_bg_tile_info, deco16_scan_rows, 16, 16, 64, 32); state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silvmil_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(silvmil_state::deco16_scan_rows),state), 16, 16, 64, 32);
state->m_fg_layer = tilemap_create(machine, get_fg_tile_info, deco16_scan_rows, 16, 16, 64, 32); state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silvmil_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(silvmil_state::deco16_scan_rows),state), 16, 16, 64, 32);
state->m_fg_layer->set_transparent_pen(0); state->m_fg_layer->set_transparent_pen(0);
} }

View File

@ -50,6 +50,7 @@ public:
DECLARE_WRITE8_MEMBER(skyarmy_videoram_w); DECLARE_WRITE8_MEMBER(skyarmy_videoram_w);
DECLARE_WRITE8_MEMBER(skyarmy_colorram_w); DECLARE_WRITE8_MEMBER(skyarmy_colorram_w);
DECLARE_WRITE8_MEMBER(nmi_enable_w); DECLARE_WRITE8_MEMBER(nmi_enable_w);
TILE_GET_INFO_MEMBER(get_skyarmy_tile_info);
}; };
WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w) WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w)
@ -62,13 +63,12 @@ WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_y_w)
flip_screen_y_set(data & 0x01); flip_screen_y_set(data & 0x01);
} }
static TILE_GET_INFO( get_skyarmy_tile_info ) TILE_GET_INFO_MEMBER(skyarmy_state::get_skyarmy_tile_info)
{ {
skyarmy_state *state = machine.driver_data<skyarmy_state>(); int code = m_videoram[tile_index];
int code = state->m_videoram[tile_index]; int attr = BITSWAP8(m_colorram[tile_index], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
int attr = BITSWAP8(state->m_colorram[tile_index], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
SET_TILE_INFO( 0, code, attr, 0); SET_TILE_INFO_MEMBER( 0, code, attr, 0);
} }
WRITE8_MEMBER(skyarmy_state::skyarmy_videoram_w) WRITE8_MEMBER(skyarmy_state::skyarmy_videoram_w)
@ -118,7 +118,7 @@ static VIDEO_START( skyarmy )
{ {
skyarmy_state *state = machine.driver_data<skyarmy_state>(); skyarmy_state *state = machine.driver_data<skyarmy_state>();
state->m_tilemap = tilemap_create(machine, get_skyarmy_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skyarmy_state::get_skyarmy_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
state->m_tilemap->set_scroll_cols(32); state->m_tilemap->set_scroll_cols(32);
} }

View File

@ -102,6 +102,11 @@ public:
DECLARE_READ8_MEMBER(ret_00); DECLARE_READ8_MEMBER(ret_00);
DECLARE_WRITE8_MEMBER(skylncr_nmi_enable_w); DECLARE_WRITE8_MEMBER(skylncr_nmi_enable_w);
DECLARE_DRIVER_INIT(skylncr); DECLARE_DRIVER_INIT(skylncr);
TILE_GET_INFO_MEMBER(get_tile_info);
TILE_GET_INFO_MEMBER(get_reel_1_tile_info);
TILE_GET_INFO_MEMBER(get_reel_2_tile_info);
TILE_GET_INFO_MEMBER(get_reel_3_tile_info);
TILE_GET_INFO_MEMBER(get_reel_4_tile_info);
}; };
@ -122,39 +127,34 @@ WRITE8_MEMBER(skylncr_state::skylncr_colorram_w)
} }
static TILE_GET_INFO( get_tile_info ) TILE_GET_INFO_MEMBER(skylncr_state::get_tile_info)
{ {
skylncr_state *state = machine.driver_data<skylncr_state>(); UINT16 code = m_videoram[ tile_index ] + (m_colorram[ tile_index ] << 8);
UINT16 code = state->m_videoram[ tile_index ] + (state->m_colorram[ tile_index ] << 8); SET_TILE_INFO_MEMBER(0, code, 0, TILE_FLIPYX( 0 ));
SET_TILE_INFO(0, code, 0, TILE_FLIPYX( 0 ));
} }
static TILE_GET_INFO( get_reel_1_tile_info ) TILE_GET_INFO_MEMBER(skylncr_state::get_reel_1_tile_info)
{ {
skylncr_state *state = machine.driver_data<skylncr_state>(); UINT16 code = m_reeltiles_1_ram[ tile_index ] + (m_reeltileshigh_1_ram[ tile_index ] << 8);
UINT16 code = state->m_reeltiles_1_ram[ tile_index ] + (state->m_reeltileshigh_1_ram[ tile_index ] << 8); SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX( 0 ));
SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 ));
} }
static TILE_GET_INFO( get_reel_2_tile_info ) TILE_GET_INFO_MEMBER(skylncr_state::get_reel_2_tile_info)
{ {
skylncr_state *state = machine.driver_data<skylncr_state>(); UINT16 code = m_reeltiles_2_ram[ tile_index ] + (m_reeltileshigh_2_ram[ tile_index ] << 8);
UINT16 code = state->m_reeltiles_2_ram[ tile_index ] + (state->m_reeltileshigh_2_ram[ tile_index ] << 8); SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX( 0 ));
SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 ));
} }
static TILE_GET_INFO( get_reel_3_tile_info ) TILE_GET_INFO_MEMBER(skylncr_state::get_reel_3_tile_info)
{ {
skylncr_state *state = machine.driver_data<skylncr_state>(); UINT16 code = m_reeltiles_3_ram[ tile_index ] + (m_reeltileshigh_3_ram[ tile_index ] << 8);
UINT16 code = state->m_reeltiles_3_ram[ tile_index ] + (state->m_reeltileshigh_3_ram[ tile_index ] << 8); SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX( 0 ));
SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 ));
} }
static TILE_GET_INFO( get_reel_4_tile_info ) TILE_GET_INFO_MEMBER(skylncr_state::get_reel_4_tile_info)
{ {
skylncr_state *state = machine.driver_data<skylncr_state>(); UINT16 code = m_reeltiles_4_ram[ tile_index ] + (m_reeltileshigh_4_ram[ tile_index ] << 8);
UINT16 code = state->m_reeltiles_4_ram[ tile_index ] + (state->m_reeltileshigh_4_ram[ tile_index ] << 8); SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX( 0 ));
SET_TILE_INFO(1, code, 0, TILE_FLIPYX( 0 ));
} }
@ -162,12 +162,12 @@ static VIDEO_START( skylncr )
{ {
skylncr_state *state = machine.driver_data<skylncr_state>(); skylncr_state *state = machine.driver_data<skylncr_state>();
state->m_tmap = tilemap_create( machine, get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 ); state->m_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 );
state->m_reel_1_tilemap = tilemap_create(machine, get_reel_1_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); state->m_reel_1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
state->m_reel_2_tilemap = tilemap_create(machine, get_reel_2_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); state->m_reel_2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
state->m_reel_3_tilemap = tilemap_create(machine, get_reel_3_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); state->m_reel_3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
state->m_reel_4_tilemap = tilemap_create(machine, get_reel_4_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 64, 8 ); state->m_reel_4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_4_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
state->m_reel_2_tilemap->set_scroll_cols(0x40); state->m_reel_2_tilemap->set_scroll_cols(0x40);
state->m_reel_3_tilemap->set_scroll_cols(0x40); state->m_reel_3_tilemap->set_scroll_cols(0x40);

View File

@ -54,6 +54,8 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(hopper_r); DECLARE_CUSTOM_INPUT_MEMBER(hopper_r);
DECLARE_DRIVER_INIT(spk116it); DECLARE_DRIVER_INIT(spk116it);
DECLARE_DRIVER_INIT(3super8); DECLARE_DRIVER_INIT(3super8);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
}; };
WRITE8_MEMBER(spoker_state::bg_tile_w) WRITE8_MEMBER(spoker_state::bg_tile_w)
@ -63,18 +65,16 @@ WRITE8_MEMBER(spoker_state::bg_tile_w)
m_bg_tilemap->mark_tile_dirty(offset); m_bg_tilemap->mark_tile_dirty(offset);
} }
static TILE_GET_INFO( get_bg_tile_info ) TILE_GET_INFO_MEMBER(spoker_state::get_bg_tile_info)
{ {
spoker_state *state = machine.driver_data<spoker_state>(); int code = m_bg_tile_ram[tile_index];
int code = state->m_bg_tile_ram[tile_index]; SET_TILE_INFO_MEMBER(1 + (tile_index & 3), code & 0xff, 0, 0);
SET_TILE_INFO(1 + (tile_index & 3), code & 0xff, 0, 0);
} }
static TILE_GET_INFO( get_fg_tile_info ) TILE_GET_INFO_MEMBER(spoker_state::get_fg_tile_info)
{ {
spoker_state *state = machine.driver_data<spoker_state>(); int code = m_fg_tile_ram[tile_index] | (m_fg_color_ram[tile_index] << 8);
int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8); SET_TILE_INFO_MEMBER(0, code, (4*(code >> 14)+3), 0);
SET_TILE_INFO(0, code, (4*(code >> 14)+3), 0);
} }
WRITE8_MEMBER(spoker_state::fg_tile_w) WRITE8_MEMBER(spoker_state::fg_tile_w)
@ -95,8 +95,8 @@ static VIDEO_START(spoker)
{ {
spoker_state *state = machine.driver_data<spoker_state>(); spoker_state *state = machine.driver_data<spoker_state>();
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 32, 128, 8); state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spoker_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 32, 128, 8);
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 32); state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spoker_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
state->m_fg_tilemap->set_transparent_pen(0); state->m_fg_tilemap->set_transparent_pen(0);
} }

View File

@ -115,15 +115,15 @@ public:
DECLARE_WRITE8_MEMBER(eeprom_clockline_w); DECLARE_WRITE8_MEMBER(eeprom_clockline_w);
DECLARE_WRITE8_MEMBER(eeprom_dataline_w); DECLARE_WRITE8_MEMBER(eeprom_dataline_w);
DECLARE_DRIVER_INIT(spool99); DECLARE_DRIVER_INIT(spool99);
TILE_GET_INFO_MEMBER(get_spool99_tile_info);
}; };
static TILE_GET_INFO( get_spool99_tile_info ) TILE_GET_INFO_MEMBER(spool99_state::get_spool99_tile_info)
{ {
spool99_state *state = machine.driver_data<spool99_state>(); int code = ((m_vram[tile_index*2+1]<<8) | (m_vram[tile_index*2+0]));
int code = ((state->m_vram[tile_index*2+1]<<8) | (state->m_vram[tile_index*2+0])); int color = m_cram[tile_index*2+0];
int color = state->m_cram[tile_index*2+0];
SET_TILE_INFO( SET_TILE_INFO_MEMBER(
0, 0,
code & 0x3fff, code & 0x3fff,
color & 0x1f, color & 0x1f,
@ -134,7 +134,7 @@ static VIDEO_START(spool99)
{ {
spool99_state *state = machine.driver_data<spool99_state>(); spool99_state *state = machine.driver_data<spool99_state>();
state->m_sc0_tilemap = tilemap_create(machine, get_spool99_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); state->m_sc0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spool99_state::get_spool99_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
} }
static SCREEN_UPDATE_IND16(spool99) static SCREEN_UPDATE_IND16(spool99)

View File

@ -171,6 +171,7 @@ public:
DECLARE_WRITE8_MEMBER(supershot_vidram_w); DECLARE_WRITE8_MEMBER(supershot_vidram_w);
DECLARE_WRITE8_MEMBER(supershot_output0_w); DECLARE_WRITE8_MEMBER(supershot_output0_w);
DECLARE_WRITE8_MEMBER(supershot_output1_w); DECLARE_WRITE8_MEMBER(supershot_output1_w);
TILE_GET_INFO_MEMBER(get_supershot_text_tile_info);
}; };
/************************************* /*************************************
@ -179,18 +180,17 @@ public:
* *
*************************************/ *************************************/
static TILE_GET_INFO( get_supershot_text_tile_info ) TILE_GET_INFO_MEMBER(supershot_state::get_supershot_text_tile_info)
{ {
supershot_state *state = machine.driver_data<supershot_state>();
UINT8 code = state->m_videoram[tile_index]; UINT8 code = m_videoram[tile_index];
SET_TILE_INFO(0, code, 0, 0); SET_TILE_INFO_MEMBER(0, code, 0, 0);
} }
static VIDEO_START( supershot ) static VIDEO_START( supershot )
{ {
supershot_state *state = machine.driver_data<supershot_state>(); supershot_state *state = machine.driver_data<supershot_state>();
state->m_tilemap = tilemap_create(machine, get_supershot_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
} }
static SCREEN_UPDATE_IND16( supershot ) static SCREEN_UPDATE_IND16( supershot )

View File

@ -104,6 +104,8 @@ public:
DECLARE_DRIVER_INIT(addr_lmhe); DECLARE_DRIVER_INIT(addr_lmhe);
DECLARE_DRIVER_INIT(addr_xhl); DECLARE_DRIVER_INIT(addr_xhl);
DECLARE_DRIVER_INIT(laserdisc); DECLARE_DRIVER_INIT(laserdisc);
TILE_GET_INFO_MEMBER(horizontal_tile_info);
TILE_GET_INFO_MEMBER(vertical_tile_info);
}; };
@ -116,24 +118,22 @@ public:
* *
*************************************/ *************************************/
static TILE_GET_INFO( horizontal_tile_info ) TILE_GET_INFO_MEMBER(statriv2_state::horizontal_tile_info)
{ {
statriv2_state *state = machine.driver_data<statriv2_state>(); UINT8 *videoram = m_videoram;
UINT8 *videoram = state->m_videoram;
int code = videoram[0x400+tile_index]; int code = videoram[0x400+tile_index];
int attr = videoram[tile_index] & 0x3f; int attr = videoram[tile_index] & 0x3f;
SET_TILE_INFO(0, code, attr, 0); SET_TILE_INFO_MEMBER(0, code, attr, 0);
} }
static TILE_GET_INFO( vertical_tile_info ) TILE_GET_INFO_MEMBER(statriv2_state::vertical_tile_info)
{ {
statriv2_state *state = machine.driver_data<statriv2_state>(); UINT8 *videoram = m_videoram;
UINT8 *videoram = state->m_videoram;
int code = videoram[0x400+tile_index]; int code = videoram[0x400+tile_index];
int attr = videoram[tile_index] & 0x3f; int attr = videoram[tile_index] & 0x3f;
SET_TILE_INFO(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), attr, 0); SET_TILE_INFO_MEMBER(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), attr, 0);
} }
@ -158,13 +158,13 @@ static PALETTE_INIT( statriv2 )
static VIDEO_START( horizontal ) static VIDEO_START( horizontal )
{ {
statriv2_state *state = machine.driver_data<statriv2_state>(); statriv2_state *state = machine.driver_data<statriv2_state>();
state->m_tilemap = tilemap_create(machine, horizontal_tile_info ,TILEMAP_SCAN_ROWS, 8,15, 64,16); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(statriv2_state::horizontal_tile_info),state) ,TILEMAP_SCAN_ROWS, 8,15, 64,16);
} }
static VIDEO_START( vertical ) static VIDEO_START( vertical )
{ {
statriv2_state *state = machine.driver_data<statriv2_state>(); statriv2_state *state = machine.driver_data<statriv2_state>();
state->m_tilemap = tilemap_create(machine, vertical_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(statriv2_state::vertical_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32);
} }

Some files were not shown because too many files have changed in this diff Show More