diff options
Diffstat (limited to 'src/mame/drivers')
957 files changed, 4422 insertions, 4388 deletions
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c index 4aaa35aab84..7b0d663716c 100644 --- a/src/mame/drivers/1942.c +++ b/src/mame/drivers/1942.c @@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( 1942, _1942_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(1942) + MCFG_SCREEN_UPDATE_DRIVER(_1942_state, screen_update_1942) /* sound hardware */ diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c index 48e7a38c0ca..f4a1f0f70ec 100644 --- a/src/mame/drivers/1943.c +++ b/src/mame/drivers/1943.c @@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( 1943, _1943_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(1943) + MCFG_SCREEN_UPDATE_DRIVER(_1943_state, screen_update_1943) MCFG_GFXDECODE(1943) MCFG_PALETTE_LENGTH(32*4+16*16+16*16+16*16) diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c index 7f5f0562737..6bfb4734df5 100644 --- a/src/mame/drivers/1945kiii.c +++ b/src/mame/drivers/1945kiii.c @@ -77,6 +77,7 @@ public: TILE_GET_INFO_MEMBER(get_k3_bg_tile_info); virtual void machine_start(); virtual void video_start(); + UINT32 screen_update_k3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -123,10 +124,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16(k3) +UINT32 k3_state::screen_update_k3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - k3_state *state = screen.machine().driver_data<k3_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); return 0; } @@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( k3, k3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(k3) + MCFG_SCREEN_UPDATE_DRIVER(k3_state, screen_update_k3) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c index dd3d35f38ee..f1a50371e72 100644 --- a/src/mame/drivers/2mindril.c +++ b/src/mame/drivers/2mindril.c @@ -63,7 +63,6 @@ public: DECLARE_DRIVER_INIT(drill); DECLARE_MACHINE_START(drill); DECLARE_MACHINE_RESET(drill); - }; @@ -458,8 +457,8 @@ static MACHINE_CONFIG_START( drill, _2mindril_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* inaccurate, same as Taito F3? (needs screen raw params anyway) */ MCFG_SCREEN_SIZE(40*8+48*2, 32*8) MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+224-1) - MCFG_SCREEN_UPDATE_STATIC(f3) - MCFG_SCREEN_VBLANK_STATIC(f3) + MCFG_SCREEN_UPDATE_DRIVER(_2mindril_state, screen_update_f3) + MCFG_SCREEN_VBLANK_DRIVER(_2mindril_state, screen_eof_f3) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c index 8f07a266ef3..83badf7bae5 100644 --- a/src/mame/drivers/39in1.c +++ b/src/mame/drivers/39in1.c @@ -74,6 +74,7 @@ public: DECLARE_READ32_MEMBER(prot_cheater_r); DECLARE_DRIVER_INIT(39in1); virtual void machine_start(); + UINT32 screen_update_39in1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -1517,18 +1518,17 @@ static INPUT_PORTS_START( 39in1 ) PORT_SERVICE_NO_TOGGLE( 0x80000000, IP_ACTIVE_LOW ) INPUT_PORTS_END -static SCREEN_UPDATE_RGB32( 39in1 ) +UINT32 _39in1_state::screen_update_39in1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - _39in1_state *state = screen.machine().driver_data<_39in1_state>(); int x = 0; int y = 0; - for(y = 0; y <= (state->m_lcd_regs.lccr2 & PXA255_LCCR2_LPP); y++) + for(y = 0; y <= (m_lcd_regs.lccr2 & PXA255_LCCR2_LPP); y++) { UINT32 *d = &bitmap.pix32(y); - for(x = 0; x <= (state->m_lcd_regs.lccr1 & PXA255_LCCR1_PPL); x++) + for(x = 0; x <= (m_lcd_regs.lccr1 & PXA255_LCCR1_PPL); x++) { - d[x] = state->m_pxa255_lcd_palette[state->m_pxa255_lcd_framebuffer[y*((state->m_lcd_regs.lccr1 & PXA255_LCCR1_PPL) + 1) + x]]; + d[x] = m_pxa255_lcd_palette[m_pxa255_lcd_framebuffer[y*((m_lcd_regs.lccr1 & PXA255_LCCR1_PPL) + 1) + x]]; } } return 0; @@ -1600,7 +1600,7 @@ static MACHINE_CONFIG_START( 39in1, _39in1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(1024, 1024) MCFG_SCREEN_VISIBLE_AREA(0, 295, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(39in1) + MCFG_SCREEN_UPDATE_DRIVER(_39in1_state, screen_update_39in1) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/3do.c b/src/mame/drivers/3do.c index b3e9653b783..73555d1311c 100644 --- a/src/mame/drivers/3do.c +++ b/src/mame/drivers/3do.c @@ -165,7 +165,7 @@ static MACHINE_CONFIG_START( 3do, _3do_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 ) - MCFG_SCREEN_UPDATE_STATIC( _3do ) + MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do) MCFG_CDROM_ADD( "cdrom", _3do_cdrom) MACHINE_CONFIG_END @@ -179,7 +179,7 @@ static MACHINE_CONFIG_START( 3do_pal, _3do_state ) MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_STATIC( _3do ) + MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do) MCFG_SCREEN_SIZE( 640, 625 ) MCFG_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 ) MCFG_SCREEN_REFRESH_RATE( 50 ) diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c index 4fd0156e6ca..6f7d5026d53 100644 --- a/src/mame/drivers/40love.c +++ b/src/mame/drivers/40love.c @@ -1080,7 +1080,7 @@ static MACHINE_CONFIG_START( 40love, fortyl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(128,128+255, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(fortyl) + MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl) MCFG_GFXDECODE(40love) MCFG_PALETTE_LENGTH(1024) @@ -1135,7 +1135,7 @@ static MACHINE_CONFIG_START( undoukai, fortyl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(128,128+255, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(fortyl) + MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl) MCFG_GFXDECODE(40love) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c index 5266657d61f..f37c19c75ed 100644 --- a/src/mame/drivers/4enraya.c +++ b/src/mame/drivers/4enraya.c @@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(4enraya) + MCFG_SCREEN_UPDATE_DRIVER(_4enraya_state, screen_update_4enraya) MCFG_GFXDECODE(4enraya) diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c index d2656839b80..79b4205400e 100644 --- a/src/mame/drivers/4roses.c +++ b/src/mame/drivers/4roses.c @@ -396,7 +396,7 @@ static MACHINE_CONFIG_START( 4roses, _4roses_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8) /* guess. taken from funworld games */ MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1) /* guess. taken from funworld games */ - MCFG_SCREEN_UPDATE_STATIC(funworld) + MCFG_SCREEN_UPDATE_DRIVER(_4roses_state, screen_update_funworld) MCFG_GFXDECODE(4roses) diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c index 9620e9510c7..17c4e32e0a9 100644 --- a/src/mame/drivers/5clown.c +++ b/src/mame/drivers/5clown.c @@ -486,6 +486,7 @@ public: TILE_GET_INFO_MEMBER(get_fclown_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -537,10 +538,9 @@ void _5clown_state::video_start() } -static SCREEN_UPDATE_IND16( fclown ) +UINT32 _5clown_state::screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - _5clown_state *state = screen.machine().driver_data<_5clown_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -1081,7 +1081,7 @@ static MACHINE_CONFIG_START( fclown, _5clown_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(fclown) + MCFG_SCREEN_UPDATE_DRIVER(_5clown_state, screen_update_fclown) MCFG_GFXDECODE(fclown) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 1b2804669d2..41f805af587 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -396,7 +396,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( invadpt2, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(invadpt2) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -572,7 +572,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( cosmo, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(cosmo) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_cosmo) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -802,7 +802,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lrescue, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(invadpt2) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -954,7 +954,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( rollingc, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(rollingc) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_rollingc) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -1072,7 +1072,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(schaser) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schaser) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1141,7 +1141,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( schasercv, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(schasercv) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schasercv) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -1222,7 +1222,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( sflush, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(sflush) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_sflush) MACHINE_CONFIG_END @@ -1329,7 +1329,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(indianbt) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -1349,7 +1349,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3a, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(lupin3) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_lupin3) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -1469,7 +1469,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( polaris, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(polaris) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_polaris) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1592,7 +1592,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( ballbomb, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(ballbomb) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_ballbomb) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -1763,7 +1763,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(indianbt) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -1837,7 +1837,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( steelwkr, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(invadpt2) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -1972,7 +1972,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( shuttlei, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MCFG_SCREEN_UPDATE_STATIC(shuttlei) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_shuttlei) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -2153,7 +2153,7 @@ MACHINE_CONFIG_DERIVED_CLASS( vortex, mw8080bw_root, _8080bw_state ) /* video hardware */ // TODO: replace with modified invaders color renderer code allowing midscanline color writes MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(invaders) + MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invaders) /* add shifter */ MCFG_MB14241_ADD("mb14241") diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c index a054de42e2d..4f6f87bcdbb 100644 --- a/src/mame/drivers/88games.c +++ b/src/mame/drivers/88games.c @@ -386,7 +386,7 @@ static MACHINE_CONFIG_START( 88games, _88games_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(88games) + MCFG_SCREEN_UPDATE_DRIVER(_88games_state, screen_update_88games) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c index 7bdef149339..3c0bf68debc 100644 --- a/src/mame/drivers/ace.c +++ b/src/mame/drivers/ace.c @@ -68,6 +68,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -91,9 +92,8 @@ void aceal_state::video_start() machine().gfx[4]->set_source(m_scoreram); } -static SCREEN_UPDATE_IND16( ace ) +UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - aceal_state *state = screen.machine().driver_data<aceal_state>(); int offs; /* first of all, fill the screen with the background color */ @@ -103,19 +103,19 @@ static SCREEN_UPDATE_IND16( ace ) 0, 0, 0, 0, - state->m_objpos[0], state->m_objpos[1]); + m_objpos[0], m_objpos[1]); drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[2], 0, 0, 0, 0, - state->m_objpos[2], state->m_objpos[3]); + m_objpos[2], m_objpos[3]); drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[3], 0, 0, 0, 0, - state->m_objpos[4], state->m_objpos[5]); + m_objpos[4], m_objpos[5]); for (offs = 0; offs < 8; offs++) { @@ -359,7 +359,7 @@ static MACHINE_CONFIG_START( ace, aceal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(ace) + MCFG_SCREEN_UPDATE_DRIVER(aceal_state, screen_update_ace) MCFG_GFXDECODE(ace) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c index 8100daef70b..e65674e952b 100644 --- a/src/mame/drivers/acefruit.c +++ b/src/mame/drivers/acefruit.c @@ -39,6 +39,7 @@ public: DECLARE_DRIVER_INIT(sidewndr); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -89,9 +90,8 @@ static INTERRUPT_GEN( acefruit_vblank ) state->m_refresh_timer->adjust( attotime::zero ); } -static SCREEN_UPDATE_IND16( acefruit ) +UINT32 acefruit_state::screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - acefruit_state *state = screen.machine().driver_data<acefruit_state>(); int startrow = cliprect.min_y / 8; int endrow = cliprect.max_y / 8; int row; @@ -106,8 +106,8 @@ static SCREEN_UPDATE_IND16( acefruit ) for( col = 0; col < 32; col++ ) { int tile_index = ( col * 32 ) + row; - int code = state->m_videoram[ tile_index ]; - int color = state->m_colorram[ tile_index ]; + int code = m_videoram[ tile_index ]; + int color = m_colorram[ tile_index ]; if( color < 0x4 ) { @@ -123,7 +123,7 @@ static SCREEN_UPDATE_IND16( acefruit ) for( x = 0; x < 16; x++ ) { - int sprite = ( state->m_spriteram[ ( spriteindex / 64 ) % 6 ] & 0xf ) ^ 0xf; + int sprite = ( m_spriteram[ ( spriteindex / 64 ) % 6 ] & 0xf ) ^ 0xf; const UINT8 *gfxdata = gfx->get_data(sprite); for( y = 0; y < 8; y++ ) @@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( acefruit, acefruit_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255) - MCFG_SCREEN_UPDATE_STATIC(acefruit) + MCFG_SCREEN_UPDATE_DRIVER(acefruit_state, screen_update_acefruit) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c index 610644229c3..6ceaee97c7b 100644 --- a/src/mame/drivers/acommand.c +++ b/src/mame/drivers/acommand.c @@ -92,6 +92,7 @@ public: TILE_GET_INFO_MEMBER(ac_get_bg_tile_info); TILE_GET_INFO_MEMBER(ac_get_tx_tile_info); virtual void video_start(); + UINT32 screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -249,21 +250,20 @@ static void draw_led(bitmap_ind16 &bitmap, int x, int y,UINT8 value) } -static SCREEN_UPDATE_IND16( acommand ) +UINT32 acommand_state::screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - acommand_state *state = screen.machine().driver_data<acommand_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(bitmap, cliprect, 0,0); draw_sprites(screen.machine(),bitmap,cliprect,0,0); - state->m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(bitmap, cliprect, 0,0); /*Order might be wrong,but these for sure are the led numbers tested*/ - draw_led(bitmap, 0, 20, (state->m_led0 & 0x0f00) >> 8); - draw_led(bitmap, 6, 20, (state->m_led0 & 0x00f0) >> 4); - draw_led(bitmap, 12, 20, (state->m_led0 & 0x000f)); + draw_led(bitmap, 0, 20, (m_led0 & 0x0f00) >> 8); + draw_led(bitmap, 6, 20, (m_led0 & 0x00f0) >> 4); + draw_led(bitmap, 12, 20, (m_led0 & 0x000f)); - draw_led(bitmap, 256-18,20,(state->m_led0 & 0xf000) >> 12); - draw_led(bitmap, 256-12,20,(state->m_led1 & 0xf0) >> 4); - draw_led(bitmap, 256-6,20, (state->m_led1 & 0xf)); + draw_led(bitmap, 256-18,20,(m_led0 & 0xf000) >> 12); + draw_led(bitmap, 256-12,20,(m_led1 & 0xf0) >> 4); + draw_led(bitmap, 256-6,20, (m_led1 & 0xf)); return 0; } @@ -609,7 +609,7 @@ static MACHINE_CONFIG_START( acommand, acommand_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(acommand) + MCFG_SCREEN_UPDATE_DRIVER(acommand_state, screen_update_acommand) MCFG_GFXDECODE(acommand) MCFG_PALETTE_LENGTH(0x4000) diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c index 8abb946a694..ff35a1b2935 100644 --- a/src/mame/drivers/actfancr.c +++ b/src/mame/drivers/actfancr.c @@ -337,7 +337,7 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(actfancr) + MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr) MCFG_GFXDECODE(actfan) MCFG_PALETTE_LENGTH(768) @@ -387,7 +387,7 @@ static MACHINE_CONFIG_START( triothep, actfancr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(actfancr) + MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr) MCFG_GFXDECODE(triothep) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c index 5fa12f6cbf9..806149d9d4f 100644 --- a/src/mame/drivers/adp.c +++ b/src/mame/drivers/adp.c @@ -183,6 +183,7 @@ public: DECLARE_MACHINE_START(skattv); DECLARE_MACHINE_RESET(skattv); DECLARE_PALETTE_INIT(adp); + UINT32 screen_update_adp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -203,24 +204,22 @@ UINT32 adp_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, con #if 0 -static SCREEN_UPDATE_IND16( adp ) +UINT32 adp_state::screen_update_adp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - adp_state *state = screen.machine().driver_data<adp_state>(); - state->m_h63484->update_screen(bitmap, cliprect); + m_h63484->update_screen(bitmap, cliprect); #if 0 - adp_state *state = screen.machine().driver_data<adp_state>(); int x, y, b, src; - b = ((hd63484_regs_r(state->m_hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(state->m_hd63484, 0xce/2, 0xffff); + b = ((hd63484_regs_r(m_hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(m_hd63484, 0xce/2, 0xffff); for (y = 0;y < 280;y++) { - for (x = 0 ; x < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4) + for (x = 0 ; x < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4) { b &= (HD63484_RAM_SIZE - 1); - src = hd63484_ram_r(state->m_hd63484, b, 0xffff); + src = hd63484_ram_r(m_hd63484, b, 0xffff); bitmap.pix16(y, x ) = ((src & 0x000f) >> 0) << 0; bitmap.pix16(y, x + 1) = ((src & 0x00f0) >> 4) << 0; bitmap.pix16(y, x + 2) = ((src & 0x0f00) >> 8) << 0; @@ -229,24 +228,24 @@ static SCREEN_UPDATE_IND16( adp ) } } if (!screen.machine().input().code_pressed(KEYCODE_O)) // debug: toggle window - if ((hd63484_regs_r(state->m_hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300) + if ((hd63484_regs_r(m_hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300) { - int sy = (hd63484_regs_r(state->m_hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(state->m_hd63484, 0x88/2, 0xffff) >> 8); - int h = hd63484_regs_r(state->m_hd63484, 0x96/2, 0xffff) & 0x0fff; - int sx = ((hd63484_regs_r(state->m_hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(state->m_hd63484, 0x84/2, 0xffff) >> 8)) * 2 * 2; - int w = (hd63484_regs_r(state->m_hd63484, 0x92/2, 0xffff) & 0xff) * 2; + int sy = (hd63484_regs_r(m_hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(m_hd63484, 0x88/2, 0xffff) >> 8); + int h = hd63484_regs_r(m_hd63484, 0x96/2, 0xffff) & 0x0fff; + int sx = ((hd63484_regs_r(m_hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(m_hd63484, 0x84/2, 0xffff) >> 8)) * 2 * 2; + int w = (hd63484_regs_r(m_hd63484, 0x92/2, 0xffff) & 0xff) * 2; if (sx < 0) sx = 0; // not sure about this (shangha2 title screen) - b = (((hd63484_regs_r(state->m_hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(state->m_hd63484, 0xde/2, 0xffff)); + b = (((hd63484_regs_r(m_hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(m_hd63484, 0xde/2, 0xffff)); for (y = sy ; y <= sy + h && y < 280 ; y++) { - for (x = 0 ; x < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4) + for (x = 0 ; x < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4) { b &= (HD63484_RAM_SIZE - 1); - src = hd63484_ram_r(state->m_hd63484, b, 0xffff); + src = hd63484_ram_r(m_hd63484, b, 0xffff); - if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4) + if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4) { bitmap.pix16(y, x + sx ) = ((src & 0x000f) >> 0) << 0; bitmap.pix16(y, x + sx + 1) = ((src & 0x00f0) >> 4) << 0; diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c index 03453cfd449..c7922e411e8 100644 --- a/src/mame/drivers/aeroboto.c +++ b/src/mame/drivers/aeroboto.c @@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( formatz, aeroboto_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(aeroboto) + MCFG_SCREEN_UPDATE_DRIVER(aeroboto_state, screen_update_aeroboto) MCFG_GFXDECODE(aeroboto) diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c index 7bb74c18671..23cf346dbba 100644 --- a/src/mame/drivers/aerofgt.c +++ b/src/mame/drivers/aerofgt.c @@ -1343,7 +1343,7 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pspikes) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes) MCFG_GFXDECODE(pspikes) MCFG_PALETTE_LENGTH(2048) @@ -1379,7 +1379,7 @@ static MACHINE_CONFIG_START( spikes91, aerofgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8+4, 224+4-1) - MCFG_SCREEN_UPDATE_STATIC(spikes91) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spikes91) MCFG_GFXDECODE(spikes91) MCFG_PALETTE_LENGTH(2048) @@ -1411,7 +1411,7 @@ static MACHINE_CONFIG_START( pspikesb, aerofgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pspikesb) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikesb) MCFG_GFXDECODE(pspikesb) MCFG_PALETTE_LENGTH(2048) @@ -1441,7 +1441,7 @@ static MACHINE_CONFIG_START( pspikesc, aerofgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pspikes) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes) MCFG_GFXDECODE(pspikes) MCFG_PALETTE_LENGTH(2048) @@ -1476,7 +1476,7 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(karatblz) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_karatblz) MCFG_GFXDECODE(turbofrc) MCFG_PALETTE_LENGTH(1024) @@ -1515,7 +1515,7 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(spinlbrk) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spinlbrk) MCFG_GFXDECODE(turbofrc) MCFG_PALETTE_LENGTH(1024) @@ -1554,7 +1554,7 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(turbofrc) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc) MCFG_GFXDECODE(turbofrc) MCFG_PALETTE_LENGTH(1024) @@ -1594,7 +1594,7 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state ) /* wrong but improves sprite-background synchronization */ MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(turbofrc) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc) MCFG_GFXDECODE(aerofgtb) MCFG_PALETTE_LENGTH(1024) @@ -1634,7 +1634,7 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state ) /* wrong but improves sprite-background synchronization */ MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(aerofgt) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerofgt) MCFG_GFXDECODE(aerofgt) MCFG_PALETTE_LENGTH(1024) @@ -1672,7 +1672,7 @@ static MACHINE_CONFIG_START( aerfboot, aerofgt_state ) /* wrong but improves sprite-background synchronization */ MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(aerfboot) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboot) MCFG_GFXDECODE(aerfboot) MCFG_PALETTE_LENGTH(1024) @@ -1703,7 +1703,7 @@ static MACHINE_CONFIG_START( aerfboo2, aerofgt_state ) /* wrong but improves sprite-background synchronization */ MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(aerfboo2) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboo2) MCFG_GFXDECODE(aerfboo2) MCFG_PALETTE_LENGTH(1024) @@ -1736,7 +1736,7 @@ static MACHINE_CONFIG_START( wbbc97, aerofgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8+14, 44*8-1+4, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(wbbc97) + MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_wbbc97) MCFG_GFXDECODE(wbbc97) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c index 6932b2a06ab..0d14e3b4965 100644 --- a/src/mame/drivers/airbustr.c +++ b/src/mame/drivers/airbustr.c @@ -647,8 +647,8 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(airbustr) - MCFG_SCREEN_VBLANK_STATIC(airbustr) + MCFG_SCREEN_UPDATE_DRIVER(airbustr_state, screen_update_airbustr) + MCFG_SCREEN_VBLANK_DRIVER(airbustr_state, screen_eof_airbustr) MCFG_GFXDECODE(airbustr) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c index 54360ba3260..2f7e61d8ebc 100644 --- a/src/mame/drivers/ajax.c +++ b/src/mame/drivers/ajax.c @@ -229,7 +229,7 @@ static MACHINE_CONFIG_START( ajax, ajax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(ajax) + MCFG_SCREEN_UPDATE_DRIVER(ajax_state, screen_update_ajax) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/albazc.c b/src/mame/drivers/albazc.c index e79e9c8da27..7eae69ccf9e 100644 --- a/src/mame/drivers/albazc.c +++ b/src/mame/drivers/albazc.c @@ -34,6 +34,7 @@ public: DECLARE_WRITE8_MEMBER(albazc_vregs_w); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -87,7 +88,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16(hanaroku) +UINT32 albazc_state::screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0x1f0, cliprect); // ??? draw_sprites(screen.machine(), bitmap, cliprect); @@ -278,7 +279,7 @@ static MACHINE_CONFIG_START( hanaroku, albazc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(hanaroku) + MCFG_SCREEN_UPDATE_DRIVER(albazc_state, screen_update_hanaroku) MCFG_GFXDECODE(hanaroku) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c index 8680b0a3f7f..ac7c64a0631 100644 --- a/src/mame/drivers/albazg.c +++ b/src/mame/drivers/albazg.c @@ -76,6 +76,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_yumefuda(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info) @@ -96,10 +97,9 @@ void albazg_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(albazg_state::y_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( yumefuda ) +UINT32 albazg_state::screen_update_yumefuda(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - albazg_state *state = screen.machine().driver_data<albazg_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -395,7 +395,7 @@ static MACHINE_CONFIG_START( yumefuda, albazg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC( yumefuda ) + MCFG_SCREEN_UPDATE_DRIVER(albazg_state, screen_update_yumefuda) MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */ diff --git a/src/mame/drivers/aleck64.c b/src/mame/drivers/aleck64.c index 14f78825e2e..f3bb67e5d38 100644 --- a/src/mame/drivers/aleck64.c +++ b/src/mame/drivers/aleck64.c @@ -817,7 +817,7 @@ static MACHINE_CONFIG_START( aleck64, n64_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(640, 525) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(n64) + MCFG_SCREEN_UPDATE_DRIVER(n64_state, screen_update_n64) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c index 97472725efc..e06c45c0c38 100644 --- a/src/mame/drivers/alg.c +++ b/src/mame/drivers/alg.c @@ -447,7 +447,7 @@ static MACHINE_CONFIG_START( alg_r1, alg_state ) MCFG_NVRAM_ADD_0FILL("nvram") MCFG_LASERDISC_LDP1450_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(512*2, 262, amiga) + MCFG_LASERDISC_OVERLAY_DRIVER(512*2, 262, amiga_state, screen_update_amiga) MCFG_LASERDISC_OVERLAY_CLIP((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) /* video hardware */ diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c index 2474b5e2c22..50a11a7f01d 100644 --- a/src/mame/drivers/aliens.c +++ b/src/mame/drivers/aliens.c @@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( aliens, aliens_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(aliens) + MCFG_SCREEN_UPDATE_DRIVER(aliens_state, screen_update_aliens) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c index b44ce979eb5..5068f4b9e6d 100644 --- a/src/mame/drivers/alpha68k.c +++ b/src/mame/drivers/alpha68k.c @@ -1978,7 +1978,7 @@ static MACHINE_CONFIG_START( sstingry, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(sstingry) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_sstingry) MCFG_GFXDECODE(sstingry) MCFG_PALETTE_LENGTH(256 + 1) @@ -2023,7 +2023,7 @@ static MACHINE_CONFIG_START( kyros, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(kyros) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros) MCFG_GFXDECODE(kyros) MCFG_PALETTE_LENGTH(256 + 1) @@ -2068,7 +2068,7 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(kyros) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros) MCFG_GFXDECODE(jongbou) MCFG_PALETTE_LENGTH(256 + 1) @@ -2102,7 +2102,7 @@ static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(alpha68k_I) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_I) MCFG_GFXDECODE(paddle) @@ -2146,7 +2146,7 @@ static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(alpha68k_II) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II) MCFG_GFXDECODE(alpha68k_II) MCFG_PALETTE_LENGTH(2048) @@ -2195,7 +2195,7 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(alpha68k_II) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II) MCFG_GFXDECODE(alpha68k_II) MCFG_PALETTE_LENGTH(2048) @@ -2238,7 +2238,7 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(alpha68k_V) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V) MCFG_GFXDECODE(alpha68k_V) MCFG_PALETTE_LENGTH(4096) @@ -2280,7 +2280,7 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(alpha68k_V_sb) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V_sb) MCFG_GFXDECODE(alpha68k_V) MCFG_PALETTE_LENGTH(4096) @@ -2321,7 +2321,7 @@ static MACHINE_CONFIG_START( tnextspc, alpha68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(alpha68k_I) + MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_I) MCFG_GFXDECODE(tnextspc) diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c index f20f73dfc8e..fed5a063276 100644 --- a/src/mame/drivers/amaticmg.c +++ b/src/mame/drivers/amaticmg.c @@ -452,6 +452,8 @@ public: virtual void video_start(); virtual void palette_init(); DECLARE_PALETTE_INIT(amaticmg2); + UINT32 screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -463,9 +465,8 @@ void amaticmg_state::video_start() { } -static SCREEN_UPDATE_IND16( amaticmg ) +UINT32 amaticmg_state::screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - amaticmg_state *state = screen.machine().driver_data<amaticmg_state>(); gfx_element *gfx = screen.machine().gfx[0]; int y,x; int count = 0; @@ -474,12 +475,12 @@ static SCREEN_UPDATE_IND16( amaticmg ) { for (x=0;x<96;x++) { - UINT16 tile = state->m_vram[count]; + UINT16 tile = m_vram[count]; UINT8 color; - tile += ((state->m_attr[count]&0x0f)<<8); + tile += ((m_attr[count]&0x0f)<<8); /* TODO: this looks so out of place ... */ - color = (state->m_attr[count]&0xf0)>>3; + color = (m_attr[count]&0xf0)>>3; drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*4,y*8); count++; @@ -489,9 +490,8 @@ static SCREEN_UPDATE_IND16( amaticmg ) return 0; } -static SCREEN_UPDATE_IND16( amaticmg2 ) +UINT32 amaticmg_state::screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - amaticmg_state *state = screen.machine().driver_data<amaticmg_state>(); gfx_element *gfx = screen.machine().gfx[0]; int y,x; int count = 16; @@ -500,10 +500,10 @@ static SCREEN_UPDATE_IND16( amaticmg2 ) { for (x=0;x<96;x++) { - UINT16 tile = state->m_vram[count]; + UINT16 tile = m_vram[count]; UINT8 color; - tile += ((state->m_attr[count]&0xff)<<8); + tile += ((m_attr[count]&0xff)<<8); color = 0; drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*4,y*8); @@ -881,7 +881,7 @@ static MACHINE_CONFIG_START( amaticmg, amaticmg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(amaticmg) + MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg) MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) @@ -919,7 +919,7 @@ static MACHINE_CONFIG_DERIVED( amaticmg2, amaticmg ) MCFG_CPU_VBLANK_INT("screen", amaticmg2_irq) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(amaticmg2) + MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2) MCFG_GFXDECODE(amaticmg2) MCFG_PALETTE_INIT_OVERRIDE(amaticmg_state,amaticmg2) diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c index ff17cb4fc6e..c8f655547ac 100644 --- a/src/mame/drivers/ambush.c +++ b/src/mame/drivers/ambush.c @@ -240,7 +240,7 @@ static MACHINE_CONFIG_START( ambush, ambush_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-3) /* The -3 makes the cocktail mode perfect */ - MCFG_SCREEN_UPDATE_STATIC(ambush) + MCFG_SCREEN_UPDATE_DRIVER(ambush_state, screen_update_ambush) MCFG_GFXDECODE(ambush) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c index 3722ebcd6d0..a999d65a87a 100644 --- a/src/mame/drivers/ampoker2.c +++ b/src/mame/drivers/ampoker2.c @@ -1182,7 +1182,7 @@ static MACHINE_CONFIG_START( ampoker2, ampoker2_state ) */ MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(20*8, 56*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(ampoker2) + MCFG_SCREEN_UPDATE_DRIVER(ampoker2_state, screen_update_ampoker2) MCFG_GFXDECODE(ampoker2) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c index be07180e7b4..0301cd17ae5 100644 --- a/src/mame/drivers/amspdwy.c +++ b/src/mame/drivers/amspdwy.c @@ -288,7 +288,7 @@ static MACHINE_CONFIG_START( amspdwy, amspdwy_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(amspdwy) + MCFG_SCREEN_UPDATE_DRIVER(amspdwy_state, screen_update_amspdwy) MCFG_GFXDECODE(amspdwy) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c index 68b0f6ec85d..736f2e78b2d 100644 --- a/src/mame/drivers/angelkds.c +++ b/src/mame/drivers/angelkds.c @@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( angelkds, angelkds_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(angelkds) + MCFG_SCREEN_UPDATE_DRIVER(angelkds_state, screen_update_angelkds) MCFG_GFXDECODE(angelkds) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c index 5aeb41b0982..77f3c3c05cc 100644 --- a/src/mame/drivers/appoooh.c +++ b/src/mame/drivers/appoooh.c @@ -475,7 +475,7 @@ static MACHINE_CONFIG_DERIVED( appoooh, appoooh_common ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(appoooh) + MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_appoooh) MCFG_GFXDECODE(appoooh) MCFG_PALETTE_LENGTH(32*8+32*8) @@ -493,7 +493,7 @@ static MACHINE_CONFIG_DERIVED( robowres, appoooh_common ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(robowres) + MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_robowres) MCFG_GFXDECODE(robowres) MCFG_PALETTE_LENGTH(32*8+32*8) diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c index 7b222739b16..0bec20ed5be 100644 --- a/src/mame/drivers/aquarium.c +++ b/src/mame/drivers/aquarium.c @@ -331,7 +331,7 @@ static MACHINE_CONFIG_START( aquarium, aquarium_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 42*8-1, 2*8, 34*8-1) - MCFG_SCREEN_UPDATE_STATIC(aquarium) + MCFG_SCREEN_UPDATE_DRIVER(aquarium_state, screen_update_aquarium) MCFG_GFXDECODE(aquarium) MCFG_PALETTE_LENGTH(0x1000/2) diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c index 5ceab530ee3..9ad4875559a 100644 --- a/src/mame/drivers/arabian.c +++ b/src/mame/drivers/arabian.c @@ -374,7 +374,7 @@ static MACHINE_CONFIG_START( arabian, arabian_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 11, 244) - MCFG_SCREEN_UPDATE_STATIC(arabian) + MCFG_SCREEN_UPDATE_DRIVER(arabian_state, screen_update_arabian) MCFG_PALETTE_LENGTH(256*32) diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c index ac026539275..633042de663 100644 --- a/src/mame/drivers/arcadecl.c +++ b/src/mame/drivers/arcadecl.c @@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( arcadecl, arcadecl_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(arcadecl) + MCFG_SCREEN_UPDATE_DRIVER(arcadecl_state, screen_update_arcadecl) MCFG_VIDEO_START_OVERRIDE(arcadecl_state,arcadecl) diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c index 46060a6b935..4912e4ab055 100644 --- a/src/mame/drivers/arcadia.c +++ b/src/mame/drivers/arcadia.c @@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512*2, 262) MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) - MCFG_SCREEN_UPDATE_STATIC(amiga) + MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) MCFG_PALETTE_LENGTH(4096) MCFG_PALETTE_INIT_OVERRIDE(arcadia_amiga_state,amiga) diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c index 98bc279163f..0d9d2b4e8fb 100644 --- a/src/mame/drivers/argus.c +++ b/src/mame/drivers/argus.c @@ -559,7 +559,7 @@ static MACHINE_CONFIG_START( argus, argus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(argus) + MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_argus) MCFG_GFXDECODE(argus) MCFG_PALETTE_LENGTH(896) @@ -603,7 +603,7 @@ static MACHINE_CONFIG_START( valtric, argus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(valtric) + MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_valtric) MCFG_GFXDECODE(valtric) MCFG_PALETTE_LENGTH(768) @@ -647,7 +647,7 @@ static MACHINE_CONFIG_START( butasan, argus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is taken from psychic5 driver */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(butasan) + MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_butasan) MCFG_GFXDECODE(butasan) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c index 60721f6d406..d31bbdd52ec 100644 --- a/src/mame/drivers/aristmk4.c +++ b/src/mame/drivers/aristmk4.c @@ -321,6 +321,7 @@ public: virtual void video_start(); virtual void palette_init(); DECLARE_PALETTE_INIT(lions); + UINT32 screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /* Partial Cashcade protocol */ @@ -370,9 +371,8 @@ INLINE void uBackgroundColour(running_machine &machine) } } -static SCREEN_UPDATE_IND16(aristmk4) +UINT32 aristmk4_state::screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - aristmk4_state *state = screen.machine().driver_data<aristmk4_state>(); gfx_element *gfx = screen.machine().gfx[0]; int x,y; int count = 0; @@ -386,14 +386,14 @@ static SCREEN_UPDATE_IND16(aristmk4) { for (x=38;x--;) { - color = ((state->m_mkiv_vram[count]) & 0xe0) >> 5; - tile = (state->m_mkiv_vram[count+1]|state->m_mkiv_vram[count]<<8) & 0x3ff; - bgtile = (state->m_mkiv_vram[count+1]|state->m_mkiv_vram[count]<<8) & 0xff; // first 256 tiles + color = ((m_mkiv_vram[count]) & 0xe0) >> 5; + tile = (m_mkiv_vram[count+1]|m_mkiv_vram[count]<<8) & 0x3ff; + bgtile = (m_mkiv_vram[count+1]|m_mkiv_vram[count]<<8) & 0xff; // first 256 tiles uBackgroundColour(screen.machine()); // read sw7 gfx->decode(bgtile); // force the machine to update only the first 256 tiles. // as we only update the background, not the entire display. - flipx = ((state->m_mkiv_vram[count]) & 0x04); - flipy = ((state->m_mkiv_vram[count]) & 0x08); + flipx = ((m_mkiv_vram[count]) & 0x04); + flipy = ((m_mkiv_vram[count]) & 0x08); drawgfx_opaque(bitmap,cliprect,gfx,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3); count+=2; } @@ -1699,7 +1699,7 @@ static MACHINE_CONFIG_START( aristmk4, aristmk4_state ) MCFG_GFXDECODE(aristmk4) MCFG_PALETTE_LENGTH(512) - MCFG_SCREEN_UPDATE_STATIC(aristmk4) + MCFG_SCREEN_UPDATE_DRIVER(aristmk4_state, screen_update_aristmk4) MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf ) MCFG_VIA6522_ADD("via6522_0", 0, via_interface) /* 1 MHz.(only 1 or 2 MHz.are valid) */ diff --git a/src/mame/drivers/aristmk6.c b/src/mame/drivers/aristmk6.c index adeccbdf856..196d25b8163 100644 --- a/src/mame/drivers/aristmk6.c +++ b/src/mame/drivers/aristmk6.c @@ -18,6 +18,7 @@ public: UINT8 m_type; DECLARE_READ64_MEMBER(test_r); virtual void video_start(); + UINT32 screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -25,51 +26,50 @@ void aristmk6_state::video_start() { } -SCREEN_UPDATE_RGB32(aristmk6) +UINT32 aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - aristmk6_state *state = screen.machine().driver_data<aristmk6_state>(); int x,y,count; - const UINT8 *blit_ram = state->memregion("maincpu")->base(); + const UINT8 *blit_ram = memregion("maincpu")->base(); if(screen.machine().input().code_pressed(KEYCODE_Z)) - state->m_test_x++; + m_test_x++; if(screen.machine().input().code_pressed(KEYCODE_X)) - state->m_test_x--; + m_test_x--; if(screen.machine().input().code_pressed(KEYCODE_A)) - state->m_test_y++; + m_test_y++; if(screen.machine().input().code_pressed(KEYCODE_S)) - state->m_test_y--; + m_test_y--; if(screen.machine().input().code_pressed(KEYCODE_Q)) - state->m_start_offs+=0x2000; + m_start_offs+=0x2000; if(screen.machine().input().code_pressed(KEYCODE_W)) - state->m_start_offs-=0x2000; + m_start_offs-=0x2000; if(screen.machine().input().code_pressed(KEYCODE_E)) - state->m_start_offs++; + m_start_offs++; if(screen.machine().input().code_pressed(KEYCODE_R)) - state->m_start_offs--; + m_start_offs--; if(screen.machine().input().code_pressed_once(KEYCODE_L)) - state->m_type^=1; + m_type^=1; - popmessage("%d %d %04x %d",state->m_test_x,state->m_test_y,state->m_start_offs,state->m_type); + popmessage("%d %d %04x %d",m_test_x,m_test_y,m_start_offs,m_type); bitmap.fill(get_black_pen(screen.machine()), cliprect); - count = (state->m_start_offs); + count = (m_start_offs); - for(y=0;y<state->m_test_y;y++) + for(y=0;y<m_test_y;y++) { - for(x=0;x<state->m_test_x;x++) + for(x=0;x<m_test_x;x++) { - if(state->m_type) + if(m_type) { UINT16 vram; int r,g,b; @@ -143,7 +143,7 @@ static MACHINE_CONFIG_START( aristmk6, aristmk6_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_STATIC(aristmk6) + MCFG_SCREEN_UPDATE_DRIVER(aristmk6_state, screen_update_aristmk6) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c index 773f5a06a52..488a277edf1 100644 --- a/src/mame/drivers/arkanoid.c +++ b/src/mame/drivers/arkanoid.c @@ -1036,7 +1036,7 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(arkanoid) + MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_arkanoid) MCFG_GFXDECODE(arkanoid) MCFG_PALETTE_LENGTH(512) @@ -1069,7 +1069,7 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(hexa) + MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa) MCFG_GFXDECODE(hexa) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c index 6d69a25fb7f..adc126d88e5 100644 --- a/src/mame/drivers/armedf.c +++ b/src/mame/drivers/armedf.c @@ -1197,7 +1197,7 @@ static MACHINE_CONFIG_START( terraf, armedf_state ) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) - MCFG_SCREEN_UPDATE_STATIC(armedf) + MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(armedf) @@ -1246,7 +1246,7 @@ static MACHINE_CONFIG_START( terrafb, armedf_state ) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) - MCFG_SCREEN_UPDATE_STATIC(armedf) + MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(armedf) @@ -1290,7 +1290,7 @@ static MACHINE_CONFIG_START( kozure, armedf_state ) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) // 320 x 240, trusted MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) - MCFG_SCREEN_UPDATE_STATIC(armedf) + MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(armedf) @@ -1334,7 +1334,7 @@ static MACHINE_CONFIG_START( armedf, armedf_state ) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf) - MCFG_SCREEN_UPDATE_STATIC(armedf) + MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(armedf) @@ -1378,7 +1378,7 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) - MCFG_SCREEN_UPDATE_STATIC(armedf) + MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(armedf) @@ -1422,7 +1422,7 @@ static MACHINE_CONFIG_START( legion, armedf_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) - MCFG_SCREEN_UPDATE_STATIC(armedf) + MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(armedf) @@ -1466,7 +1466,7 @@ static MACHINE_CONFIG_START( legiono, armedf_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) - MCFG_SCREEN_UPDATE_STATIC(armedf) + MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(armedf) @@ -1523,7 +1523,7 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state ) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf) - MCFG_SCREEN_UPDATE_STATIC(armedf) + MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(armedf) diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c index 6bed7ee151e..15467971f7b 100644 --- a/src/mame/drivers/ashnojoe.c +++ b/src/mame/drivers/ashnojoe.c @@ -364,7 +364,7 @@ static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(14*8, 50*8-1, 3*8, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(ashnojoe) + MCFG_SCREEN_UPDATE_DRIVER(ashnojoe_state, screen_update_ashnojoe) MCFG_GFXDECODE(ashnojoe) MCFG_PALETTE_LENGTH(0x1000/2) diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c index 2ef76f54fdb..c329451a059 100644 --- a/src/mame/drivers/asterix.c +++ b/src/mame/drivers/asterix.c @@ -307,7 +307,7 @@ static MACHINE_CONFIG_START( asterix, asterix_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(asterix) + MCFG_SCREEN_UPDATE_DRIVER(asterix_state, screen_update_asterix) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c index c01646523f0..f74835e4a43 100644 --- a/src/mame/drivers/astinvad.c +++ b/src/mame/drivers/astinvad.c @@ -81,6 +81,8 @@ public: DECLARE_MACHINE_START(spaceint); DECLARE_MACHINE_RESET(spaceint); DECLARE_VIDEO_START(spaceint); + UINT32 screen_update_astinvad(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + UINT32 screen_update_spaceint(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -167,36 +169,34 @@ static void plot_byte( running_machine &machine, bitmap_rgb32 &bitmap, UINT8 y, } -static SCREEN_UPDATE_RGB32( astinvad ) +UINT32 astinvad_state::screen_update_astinvad(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - astinvad_state *state = screen.machine().driver_data<astinvad_state>(); - const UINT8 *color_prom = state->memregion("proms")->base(); - UINT8 yoffs = state->m_flip_yoffs & state->m_screen_flip; + const UINT8 *color_prom = memregion("proms")->base(); + UINT8 yoffs = m_flip_yoffs & m_screen_flip; int x, y; /* render the visible pixels */ for (y = cliprect.min_y; y <= cliprect.max_y; y++) for (x = cliprect.min_x & ~7; x <= cliprect.max_x; x += 8) { - UINT8 color = color_prom[((y & 0xf8) << 2) | (x >> 3)] >> (state->m_screen_flip ? 0 : 4); - UINT8 data = state->m_videoram[(((y ^ state->m_screen_flip) + yoffs) << 5) | ((x ^ state->m_screen_flip) >> 3)]; - plot_byte(screen.machine(), bitmap, y, x, data, state->m_screen_red ? 1 : color); + UINT8 color = color_prom[((y & 0xf8) << 2) | (x >> 3)] >> (m_screen_flip ? 0 : 4); + UINT8 data = m_videoram[(((y ^ m_screen_flip) + yoffs) << 5) | ((x ^ m_screen_flip) >> 3)]; + plot_byte(screen.machine(), bitmap, y, x, data, m_screen_red ? 1 : color); } return 0; } -static SCREEN_UPDATE_RGB32( spaceint ) +UINT32 astinvad_state::screen_update_spaceint(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - astinvad_state *state = screen.machine().driver_data<astinvad_state>(); - const UINT8 *color_prom = state->memregion("proms")->base(); + const UINT8 *color_prom = memregion("proms")->base(); int offs; - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { - UINT8 data = state->m_videoram[offs]; - UINT8 color = state->m_colorram[offs]; + UINT8 data = m_videoram[offs]; + UINT8 color = m_colorram[offs]; UINT8 y = ~offs; UINT8 x = offs >> 8 << 3; @@ -601,7 +601,7 @@ static MACHINE_CONFIG_START( kamikaze, astinvad_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 256, 32, 256) - MCFG_SCREEN_UPDATE_STATIC(astinvad) + MCFG_SCREEN_UPDATE_DRIVER(astinvad_state, screen_update_astinvad) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -637,7 +637,7 @@ static MACHINE_CONFIG_START( spaceint, astinvad_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_STATIC(spaceint) + MCFG_SCREEN_UPDATE_DRIVER(astinvad_state, screen_update_spaceint) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c index 074995f8b10..9e404c1fae2 100644 --- a/src/mame/drivers/astrocde.c +++ b/src/mame/drivers/astrocde.c @@ -1298,7 +1298,7 @@ static MACHINE_CONFIG_START( astrocade_base, astrocde_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240) MCFG_SCREEN_DEFAULT_POSITION(1.1, 0.0, 1.18, -0.018) /* clip out borders */ - MCFG_SCREEN_UPDATE_STATIC(astrocde) + MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_astrocde) MACHINE_CONFIG_END @@ -1315,7 +1315,7 @@ static MACHINE_CONFIG_DERIVED( astrocade_16color_base, astrocade_base ) MCFG_VIDEO_START_OVERRIDE(astrocde_state,profpac) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(profpac) + MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_profpac) MACHINE_CONFIG_END diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c index d4c724cf22e..84198b42790 100644 --- a/src/mame/drivers/astrocorp.c +++ b/src/mame/drivers/astrocorp.c @@ -64,6 +64,7 @@ public: DECLARE_DRIVER_INIT(showhanc); DECLARE_DRIVER_INIT(showhand); DECLARE_VIDEO_START(astrocorp); + UINT32 screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /*************************************************************************** @@ -150,12 +151,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16(astrocorp) +UINT32 astrocorp_state::screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - astrocorp_state *state = screen.machine().driver_data<astrocorp_state>(); - if (state->m_screen_enable & 1) - copybitmap(bitmap, state->m_bitmap, 0,0,0,0, cliprect); + if (m_screen_enable & 1) + copybitmap(bitmap, m_bitmap, 0,0,0,0, cliprect); else bitmap.fill(get_black_pen(screen.machine()), cliprect); @@ -487,7 +487,7 @@ static MACHINE_CONFIG_START( showhand, astrocorp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(astrocorp) + MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp) MCFG_GFXDECODE(astrocorp) MCFG_PALETTE_LENGTH(0x100) @@ -538,7 +538,7 @@ static MACHINE_CONFIG_START( skilldrp, astrocorp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(0x200, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x200-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_STATIC(astrocorp) + MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp) MCFG_GFXDECODE(astrocorp) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c index 7039cec625a..07d09b1e736 100644 --- a/src/mame/drivers/astrof.c +++ b/src/mame/drivers/astrof.c @@ -413,7 +413,7 @@ static void video_update_common( running_machine &machine, bitmap_rgb32 &bitmap, } -static SCREEN_UPDATE_RGB32( astrof ) +UINT32 astrof_state::screen_update_astrof(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { pen_t pens[ASTROF_NUM_PENS]; @@ -425,7 +425,7 @@ static SCREEN_UPDATE_RGB32( astrof ) } -static SCREEN_UPDATE_RGB32( tomahawk ) +UINT32 astrof_state::screen_update_tomahawk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { pen_t pens[TOMAHAWK_NUM_PENS]; @@ -962,7 +962,7 @@ static MACHINE_CONFIG_DERIVED( astrof, base ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(astrof) + MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_astrof) /* audio hardware */ MCFG_FRAGMENT_ADD(astrof_audio) @@ -988,7 +988,7 @@ static MACHINE_CONFIG_DERIVED( spfghmk2, base ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(astrof) + MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_astrof) /* audio hardware */ MCFG_FRAGMENT_ADD(spfghmk2_audio) @@ -1005,7 +1005,7 @@ static MACHINE_CONFIG_DERIVED( tomahawk, base ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(tomahawk) + MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_tomahawk) /* audio hardware */ MCFG_FRAGMENT_ADD(tomahawk_audio) diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c index e4aca9360e0..ae6f37a6c38 100644 --- a/src/mame/drivers/asuka.c +++ b/src/mame/drivers/asuka.c @@ -870,13 +870,12 @@ void asuka_state::machine_reset() memset(m_cval, 0, 26); } -static SCREEN_VBLANK( asuka ) +void asuka_state::screen_eof_asuka(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - asuka_state *state = screen.machine().driver_data<asuka_state>(); - pc090oj_eof_callback(state->m_pc090oj); + pc090oj_eof_callback(m_pc090oj); } } @@ -911,8 +910,8 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(bonzeadv) - MCFG_SCREEN_VBLANK_STATIC(asuka) + MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv) + MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) @@ -954,8 +953,8 @@ static MACHINE_CONFIG_START( asuka, asuka_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(asuka) - MCFG_SCREEN_VBLANK_STATIC(asuka) + MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka) + MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) @@ -1004,8 +1003,8 @@ static MACHINE_CONFIG_START( cadash, asuka_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(bonzeadv) - MCFG_SCREEN_VBLANK_STATIC(asuka) + MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv) + MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) @@ -1046,8 +1045,8 @@ static MACHINE_CONFIG_START( mofflott, asuka_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(asuka) - MCFG_SCREEN_VBLANK_STATIC(asuka) + MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka) + MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ @@ -1092,8 +1091,8 @@ static MACHINE_CONFIG_START( galmedes, asuka_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(asuka) - MCFG_SCREEN_VBLANK_STATIC(asuka) + MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka) + MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ @@ -1134,8 +1133,8 @@ static MACHINE_CONFIG_START( eto, asuka_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(asuka) - MCFG_SCREEN_VBLANK_STATIC(asuka) + MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka) + MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/atarifb.c b/src/mame/drivers/atarifb.c index b59119ce99b..335c2460b34 100644 --- a/src/mame/drivers/atarifb.c +++ b/src/mame/drivers/atarifb.c @@ -564,7 +564,7 @@ static MACHINE_CONFIG_START( atarifb, atarifb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2037) /* 16.3ms * 1/8 = 2037.5. Is it 1/8th or 3/32nds? (1528?) */) MCFG_SCREEN_SIZE(38*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 38*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(atarifb) + MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_atarifb) MCFG_GFXDECODE(atarifb) MCFG_PALETTE_LENGTH(12) @@ -595,7 +595,7 @@ static MACHINE_CONFIG_DERIVED( abaseb, atarifb ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(abaseb) + MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_abaseb) /* sound hardware */ MCFG_SOUND_REPLACE("discrete", DISCRETE, 0) @@ -613,7 +613,7 @@ static MACHINE_CONFIG_DERIVED( soccer, atarifb ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0*8, 38*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(soccer) + MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_soccer) MCFG_GFXDECODE(soccer) MACHINE_CONFIG_END diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c index 09618e0f558..1c2281f0212 100644 --- a/src/mame/drivers/atarig1.c +++ b/src/mame/drivers/atarig1.c @@ -463,8 +463,8 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state ) MCFG_SCREEN_ADD("screen", RASTER) /* note: these parameters are from published specs, not derived */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(atarig1) - MCFG_SCREEN_VBLANK_STATIC(atarig1) + MCFG_SCREEN_UPDATE_DRIVER(atarig1_state, screen_update_atarig1) + MCFG_SCREEN_VBLANK_DRIVER(atarig1_state, screen_eof_atarig1) MCFG_VIDEO_START_OVERRIDE(atarig1_state,atarig1) diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c index fc2d3b16c80..12d9f12eb5a 100644 --- a/src/mame/drivers/atarig42.c +++ b/src/mame/drivers/atarig42.c @@ -569,8 +569,8 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(atarig42) - MCFG_SCREEN_VBLANK_STATIC(atarig42) + MCFG_SCREEN_UPDATE_DRIVER(atarig42_state, screen_update_atarig42) + MCFG_SCREEN_VBLANK_DRIVER(atarig42_state, screen_eof_atarig42) MCFG_VIDEO_START_OVERRIDE(atarig42_state,atarig42) diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c index f2b70528324..e4869b338e8 100644 --- a/src/mame/drivers/atarigt.c +++ b/src/mame/drivers/atarigt.c @@ -826,8 +826,8 @@ static MACHINE_CONFIG_START( atarigt, atarigt_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a pair of GALs to determine H and V parameters */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(atarigt) - MCFG_SCREEN_VBLANK_STATIC(atarigt) + MCFG_SCREEN_UPDATE_DRIVER(atarigt_state, screen_update_atarigt) + MCFG_SCREEN_VBLANK_DRIVER(atarigt_state, screen_eof_atarigt) MCFG_VIDEO_START_OVERRIDE(atarigt_state,atarigt) diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c index 326dea91a2c..8f93e26edbd 100644 --- a/src/mame/drivers/atarigx2.c +++ b/src/mame/drivers/atarigx2.c @@ -1446,8 +1446,8 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a pair of GALs to determine H and V parameters */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(atarigx2) - MCFG_SCREEN_VBLANK_STATIC(atarigx2) + MCFG_SCREEN_UPDATE_DRIVER(atarigx2_state, screen_update_atarigx2) + MCFG_SCREEN_VBLANK_DRIVER(atarigx2_state, screen_eof_atarigx2) MCFG_VIDEO_START_OVERRIDE(atarigx2_state,atarigx2) diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c index d3f9ad222d4..ada267edfc7 100644 --- a/src/mame/drivers/atarisy1.c +++ b/src/mame/drivers/atarisy1.c @@ -785,7 +785,7 @@ static MACHINE_CONFIG_START( atarisy1, atarisy1_state ) /* note: these parameters are from published specs, not derived */ /* video timing comes from an 82S163 (H) and an 82S129 (V) */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(atarisy1) + MCFG_SCREEN_UPDATE_DRIVER(atarisy1_state, screen_update_atarisy1) MCFG_VIDEO_START_OVERRIDE(atarisy1_state,atarisy1) diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c index d7e33dadbdb..dd03234c812 100644 --- a/src/mame/drivers/atarisy2.c +++ b/src/mame/drivers/atarisy2.c @@ -1279,7 +1279,7 @@ static MACHINE_CONFIG_START( atarisy2, atarisy2_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 640, 0, 512, 416, 0, 384) - MCFG_SCREEN_UPDATE_STATIC(atarisy2) + MCFG_SCREEN_UPDATE_DRIVER(atarisy2_state, screen_update_atarisy2) MCFG_VIDEO_START_OVERRIDE(atarisy2_state,atarisy2) diff --git a/src/mame/drivers/atarisy4.c b/src/mame/drivers/atarisy4.c index 353939fecd4..af85a7cb49e 100644 --- a/src/mame/drivers/atarisy4.c +++ b/src/mame/drivers/atarisy4.c @@ -58,6 +58,7 @@ public: virtual void video_start(); virtual void video_reset(); DECLARE_MACHINE_RESET(airrace); + UINT32 screen_update_atarisy4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -155,9 +156,8 @@ void atarisy4_state::video_reset() gpu.vblank_wait = 0; } -static SCREEN_UPDATE_RGB32( atarisy4 ) +UINT32 atarisy4_state::screen_update_atarisy4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - atarisy4_state *state = screen.machine().driver_data<atarisy4_state>(); int y; UINT32 offset = 0; @@ -174,7 +174,7 @@ static SCREEN_UPDATE_RGB32( atarisy4 ) for (y = cliprect.min_y; y <= cliprect.max_y; ++y) { - UINT16 *src = &state->m_screen_ram[(offset + (4096 * y)) / 2]; + UINT16 *src = &m_screen_ram[(offset + (4096 * y)) / 2]; UINT32 *dest = &bitmap.pix32(y, cliprect.min_x); int x; @@ -740,7 +740,7 @@ static MACHINE_CONFIG_START( atarisy4, atarisy4_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(32000000/2, 660, 0, 512, 404, 0, 384) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_UPDATE_STATIC(atarisy4) + MCFG_SCREEN_UPDATE_DRIVER(atarisy4_state, screen_update_atarisy4) MCFG_PALETTE_LENGTH(256) MACHINE_CONFIG_END diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c index 23309f483e7..6ec79b58832 100644 --- a/src/mame/drivers/atetris.c +++ b/src/mame/drivers/atetris.c @@ -354,7 +354,7 @@ static MACHINE_CONFIG_START( atetris, atetris_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(atetris) + MCFG_SCREEN_UPDATE_DRIVER(atetris_state, screen_update_atetris) /* sound hardware */ @@ -386,7 +386,7 @@ static MACHINE_CONFIG_START( atetrisb2, atetris_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(atetris) + MCFG_SCREEN_UPDATE_DRIVER(atetris_state, screen_update_atetris) /* sound hardware */ diff --git a/src/mame/drivers/atlantis.c b/src/mame/drivers/atlantis.c index 9f2ee47543a..5ae2fa314eb 100644 --- a/src/mame/drivers/atlantis.c +++ b/src/mame/drivers/atlantis.c @@ -48,6 +48,7 @@ public: DECLARE_DRIVER_INIT(mwskins); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_mwskins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -85,7 +86,7 @@ void atlantis_state::machine_reset() * *************************************/ -static SCREEN_UPDATE_IND16( mwskins ) +UINT32 atlantis_state::screen_update_mwskins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { return 0; } @@ -166,7 +167,7 @@ static MACHINE_CONFIG_START( mwskins, atlantis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(mwskins) + MCFG_SCREEN_UPDATE_DRIVER(atlantis_state, screen_update_mwskins) MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR) MCFG_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c index 144907e50b7..76dc617eaf4 100644 --- a/src/mame/drivers/atvtrack.c +++ b/src/mame/drivers/atvtrack.c @@ -85,6 +85,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; static void logbinary(UINT32 data,int high=31,int low=0) @@ -318,7 +319,7 @@ void atvtrack_state::video_start() { } -SCREEN_UPDATE_RGB32(atvtrack) +UINT32 atvtrack_state::screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } @@ -401,7 +402,7 @@ static MACHINE_CONFIG_START( atvtrack, atvtrack_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_STATIC(atvtrack) + MCFG_SCREEN_UPDATE_DRIVER(atvtrack_state, screen_update_atvtrack) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/avalnche.c b/src/mame/drivers/avalnche.c index 635b8b7c1af..8a0eecc22c4 100644 --- a/src/mame/drivers/avalnche.c +++ b/src/mame/drivers/avalnche.c @@ -44,24 +44,23 @@ * *************************************/ -static SCREEN_UPDATE_RGB32( avalnche ) +UINT32 avalnche_state::screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - avalnche_state *state = screen.machine().driver_data<avalnche_state>(); offs_t offs; - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; UINT8 x = offs << 3; int y = offs >> 5; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; for (i = 0; i < 8; i++) { pen_t pen; - if (state->m_avalance_video_inverted) + if (m_avalance_video_inverted) pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK; else pen = (data & 0x80) ? RGB_BLACK : RGB_WHITE; @@ -258,7 +257,7 @@ static MACHINE_CONFIG_START( avalnche, avalnche_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(avalnche) + MCFG_SCREEN_UPDATE_DRIVER(avalnche_state, screen_update_avalnche) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c index 477a6c82b65..08fe2374178 100644 --- a/src/mame/drivers/avt.c +++ b/src/mame/drivers/avt.c @@ -444,15 +444,16 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; #define mc6845_h_char_total (state->m_crtc_vreg[0]) -#define mc6845_h_display (state->m_crtc_vreg[1]) +#define mc6845_h_display (m_crtc_vreg[1]) #define mc6845_h_sync_pos (state->m_crtc_vreg[2]) #define mc6845_sync_width (state->m_crtc_vreg[3]) #define mc6845_v_char_total (state->m_crtc_vreg[4]) #define mc6845_v_total_adj (state->m_crtc_vreg[5]) -#define mc6845_v_display (state->m_crtc_vreg[6]) +#define mc6845_v_display (m_crtc_vreg[6]) #define mc6845_v_sync_pos (state->m_crtc_vreg[7]) #define mc6845_mode_ctrl (state->m_crtc_vreg[8]) #define mc6845_tile_height (state->m_crtc_vreg[9]+1) @@ -504,9 +505,8 @@ void avt_state::video_start() } -static SCREEN_UPDATE_IND16( avt ) +UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - avt_state *state = screen.machine().driver_data<avt_state>(); int x,y; int count; gfx_element *gfx = screen.machine().gfx[0]; @@ -517,15 +517,15 @@ static SCREEN_UPDATE_IND16( avt ) { for(x=0;x<mc6845_h_display;x++) { - UINT16 tile = state->m_videoram[count] | ((state->m_colorram[count] & 1) << 8); - UINT8 color = (state->m_colorram[count] & 0xf0) >> 4; + UINT16 tile = m_videoram[count] | ((m_colorram[count] & 1) << 8); + UINT8 color = (m_colorram[count] & 0xf0) >> 4; drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*8,(y*8)); count++; } } - //state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + //m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -902,7 +902,7 @@ static MACHINE_CONFIG_START( avt, avt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) /* 240x224 (through CRTC) */ - MCFG_SCREEN_UPDATE_STATIC(avt) + MCFG_SCREEN_UPDATE_DRIVER(avt_state, screen_update_avt) MCFG_GFXDECODE(avt) diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c index 1b841dd01d4..341497d942c 100644 --- a/src/mame/drivers/backfire.c +++ b/src/mame/drivers/backfire.c @@ -79,6 +79,8 @@ public: DECLARE_DRIVER_INIT(backfire); virtual void machine_start(); virtual void video_start(); + UINT32 screen_update_backfire_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; //UINT32 *backfire_180010, *backfire_188010; @@ -108,68 +110,66 @@ void backfire_state::video_start() -static SCREEN_UPDATE_IND16( backfire_left ) +UINT32 backfire_state::screen_update_backfire_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - backfire_state *state = screen.machine().driver_data<backfire_state>(); //FIXME: flip_screen_x should not be written! - state->flip_screen_set_no_update(1); + flip_screen_set_no_update(1); /* screen 1 uses pf1 as the forground and pf3 as the background */ /* screen 2 uses pf2 as the foreground and pf4 as the background */ - deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); - deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll); + deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll); + deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll); screen.machine().priority_bitmap.fill(0); bitmap.fill(0x100, cliprect); - if (state->m_left_priority[0] == 0) + if (m_left_priority[0] == 0) { - deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1); - deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram_1, 0x800); + deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1); + deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800); } - else if (state->m_left_priority[0] == 2) + else if (m_left_priority[0] == 2) { - deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2); - deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram_1, 0x800); + deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2); + deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800); } else - popmessage( "unknown left priority %08x", state->m_left_priority[0]); + popmessage( "unknown left priority %08x", m_left_priority[0]); return 0; } -static SCREEN_UPDATE_IND16( backfire_right ) +UINT32 backfire_state::screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - backfire_state *state = screen.machine().driver_data<backfire_state>(); //FIXME: flip_screen_x should not be written! - state->flip_screen_set_no_update(1); + flip_screen_set_no_update(1); /* screen 1 uses pf1 as the forground and pf3 as the background */ /* screen 2 uses pf2 as the foreground and pf4 as the background */ - deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); - deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll); + deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll); + deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll); screen.machine().priority_bitmap.fill(0); bitmap.fill(0x500, cliprect); - if (state->m_right_priority[0] == 0) + if (m_right_priority[0] == 0) { - deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1); - deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2); - screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram_2, 0x800); + deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1); + deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2); + screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram_2, 0x800); } - else if (state->m_right_priority[0] == 2) + else if (m_right_priority[0] == 2) { - deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2); - deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4); - screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram_2, 0x800); + deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2); + deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4); + screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram_2, 0x800); } else - popmessage( "unknown right priority %08x", state->m_right_priority[0]); + popmessage( "unknown right priority %08x", m_right_priority[0]); return 0; } @@ -515,14 +515,14 @@ static MACHINE_CONFIG_START( backfire, backfire_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(backfire_left) + MCFG_SCREEN_UPDATE_DRIVER(backfire_state, screen_update_backfire_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(backfire_right) + MCFG_SCREEN_UPDATE_DRIVER(backfire_state, screen_update_backfire_right) MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf) diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c index 5b77846ca52..27391d806e3 100644 --- a/src/mame/drivers/badlands.c +++ b/src/mame/drivers/badlands.c @@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( badlands, badlands_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(badlands) + MCFG_SCREEN_UPDATE_DRIVER(badlands_state, screen_update_badlands) MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands) @@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( badlandsb, badlands_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(badlands) + MCFG_SCREEN_UPDATE_DRIVER(badlands_state, screen_update_badlands) MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands) diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c index d48ae7d3de9..ebdba31fb80 100644 --- a/src/mame/drivers/bagman.c +++ b/src/mame/drivers/bagman.c @@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( bagman, bagman_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(bagman) + MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman) MCFG_GFXDECODE(bagman) MCFG_PALETTE_LENGTH(64) @@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( pickin, bagman_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(bagman) + MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman) MCFG_GFXDECODE(pickin) MCFG_PALETTE_LENGTH(64) @@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( botanic, bagman_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(bagman) + MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman) MCFG_GFXDECODE(bagman) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c index 39e53042375..31387d9675d 100644 --- a/src/mame/drivers/balsente.c +++ b/src/mame/drivers/balsente.c @@ -1222,7 +1222,7 @@ static MACHINE_CONFIG_START( balsente, balsente_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(BALSENTE_PIXEL_CLOCK, BALSENTE_HTOTAL, BALSENTE_HBEND, BALSENTE_HBSTART, BALSENTE_VTOTAL, BALSENTE_VBEND, BALSENTE_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(balsente) + MCFG_SCREEN_UPDATE_DRIVER(balsente_state, screen_update_balsente) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/bankp.c b/src/mame/drivers/bankp.c index 47bde28cf22..d426a6cc7e5 100644 --- a/src/mame/drivers/bankp.c +++ b/src/mame/drivers/bankp.c @@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( bankp, bankp_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(bankp) + MCFG_SCREEN_UPDATE_DRIVER(bankp_state, screen_update_bankp) MCFG_GFXDECODE(bankp) MCFG_PALETTE_LENGTH(32*4+16*8) diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c index c0fcae8e5ba..1538d242146 100644 --- a/src/mame/drivers/baraduke.c +++ b/src/mame/drivers/baraduke.c @@ -394,8 +394,8 @@ static MACHINE_CONFIG_START( baraduke, baraduke_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(baraduke) - MCFG_SCREEN_VBLANK_STATIC(baraduke) + MCFG_SCREEN_UPDATE_DRIVER(baraduke_state, screen_update_baraduke) + MCFG_SCREEN_VBLANK_DRIVER(baraduke_state, screen_eof_baraduke) MCFG_GFXDECODE(baraduke) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c index a5c53f052cd..ec1da1ba80d 100644 --- a/src/mame/drivers/batman.c +++ b/src/mame/drivers/batman.c @@ -248,7 +248,7 @@ static MACHINE_CONFIG_START( batman, batman_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a VAD chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(batman) + MCFG_SCREEN_UPDATE_DRIVER(batman_state, screen_update_batman) MCFG_VIDEO_START_OVERRIDE(batman_state,batman) diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c index b801bc1c609..e06e0e30147 100644 --- a/src/mame/drivers/battlane.c +++ b/src/mame/drivers/battlane.c @@ -303,7 +303,7 @@ static MACHINE_CONFIG_START( battlane, battlane_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32 * 8, 32 * 8) MCFG_SCREEN_VISIBLE_AREA(1 * 8, 31 * 8 - 1, 0 * 8, 32 * 8 - 1) - MCFG_SCREEN_UPDATE_STATIC(battlane) + MCFG_SCREEN_UPDATE_DRIVER(battlane_state, screen_update_battlane) MCFG_GFXDECODE(battlane) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c index e3de7eedbcf..7e5fee8ab1f 100644 --- a/src/mame/drivers/battlera.c +++ b/src/mame/drivers/battlera.c @@ -245,7 +245,7 @@ static MACHINE_CONFIG_START( battlera, battlera_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(battlera) + MCFG_SCREEN_UPDATE_DRIVER(battlera_state, screen_update_battlera) MCFG_GFXDECODE(battlera) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c index 4ff9b742cad..fa884738b5c 100644 --- a/src/mame/drivers/battlex.c +++ b/src/mame/drivers/battlex.c @@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( battlex, battlex_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(battlex) + MCFG_SCREEN_UPDATE_DRIVER(battlex_state, screen_update_battlex) MCFG_GFXDECODE(battlex) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c index a1dd2153f81..febce81c0a1 100644 --- a/src/mame/drivers/battlnts.c +++ b/src/mame/drivers/battlnts.c @@ -260,7 +260,7 @@ static MACHINE_CONFIG_START( battlnts, battlnts_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(battlnts) + MCFG_SCREEN_UPDATE_DRIVER(battlnts_state, screen_update_battlnts) MCFG_GFXDECODE(battlnts) MCFG_PALETTE_LENGTH(128) diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c index dfe6f82070b..9e76a831418 100644 --- a/src/mame/drivers/bbusters.c +++ b/src/mame/drivers/bbusters.c @@ -659,11 +659,10 @@ static const ym2610_interface ym2610_config = /******************************************************************************/ -static SCREEN_VBLANK( bbuster ) +void bbusters_state::screen_eof_bbuster(screen_device &screen, bool state) { - bbusters_state *state = screen.machine().driver_data<bbusters_state>(); - state->m_spriteram->vblank_copy_rising(screen, vblank_on); - state->m_spriteram2->vblank_copy_rising(screen, vblank_on); + m_spriteram->vblank_copy_rising(screen, state); + m_spriteram2->vblank_copy_rising(screen, state); } static MACHINE_CONFIG_START( bbusters, bbusters_state ) @@ -684,8 +683,8 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bbuster) - MCFG_SCREEN_VBLANK_STATIC(bbuster) + MCFG_SCREEN_UPDATE_DRIVER(bbusters_state, screen_update_bbuster) + MCFG_SCREEN_VBLANK_DRIVER(bbusters_state, screen_eof_bbuster) MCFG_GFXDECODE(bbusters) MCFG_PALETTE_LENGTH(2048) @@ -722,7 +721,7 @@ static MACHINE_CONFIG_START( mechatt, bbusters_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mechatt) + MCFG_SCREEN_UPDATE_DRIVER(bbusters_state, screen_update_mechatt) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(mechatt) diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c index 7bc565902af..41ff62ae6e3 100644 --- a/src/mame/drivers/beaminv.c +++ b/src/mame/drivers/beaminv.c @@ -79,6 +79,7 @@ public: DECLARE_READ8_MEMBER(controller_r); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_beaminv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -168,18 +169,17 @@ void beaminv_state::machine_reset() * *************************************/ -static SCREEN_UPDATE_RGB32( beaminv ) +UINT32 beaminv_state::screen_update_beaminv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - beaminv_state *state = screen.machine().driver_data<beaminv_state>(); offs_t offs; - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; UINT8 y = offs; UINT8 x = offs >> 8 << 3; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; for (i = 0; i < 8; i++) { @@ -342,7 +342,7 @@ static MACHINE_CONFIG_START( beaminv, beaminv_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 247, 16, 231) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_STATIC(beaminv) + MCFG_SCREEN_UPDATE_DRIVER(beaminv_state, screen_update_beaminv) MACHINE_CONFIG_END diff --git a/src/mame/drivers/beezer.c b/src/mame/drivers/beezer.c index 1fcb02f381f..2d226162015 100644 --- a/src/mame/drivers/beezer.c +++ b/src/mame/drivers/beezer.c @@ -99,7 +99,7 @@ static MACHINE_CONFIG_START( beezer, beezer_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(384, 256) MCFG_SCREEN_VISIBLE_AREA(16, 304-1, 0, 240-1) // 288 x 240, correct? - MCFG_SCREEN_UPDATE_STATIC(beezer) + MCFG_SCREEN_UPDATE_DRIVER(beezer_state, screen_update_beezer) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c index 1886939820e..60a7df61104 100644 --- a/src/mame/drivers/berzerk.c +++ b/src/mame/drivers/berzerk.c @@ -58,6 +58,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_berzerk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -455,20 +456,19 @@ static void get_pens(running_machine &machine, pen_t *pens) } -static SCREEN_UPDATE_RGB32( berzerk ) +UINT32 berzerk_state::screen_update_berzerk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - berzerk_state *state = screen.machine().driver_data<berzerk_state>(); pen_t pens[NUM_PENS]; offs_t offs; get_pens(screen.machine(), pens); - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; - UINT8 data = state->m_videoram[offs]; - UINT8 color = state->m_colorram[((offs >> 2) & 0x07e0) | (offs & 0x001f)]; + UINT8 data = m_videoram[offs]; + UINT8 color = m_colorram[((offs >> 2) & 0x07e0) | (offs & 0x001f)]; UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -1092,7 +1092,7 @@ static MACHINE_CONFIG_START( berzerk, berzerk_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(berzerk) + MCFG_SCREEN_UPDATE_DRIVER(berzerk_state, screen_update_berzerk) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c index a9756a05c5d..5ee5209fb3f 100644 --- a/src/mame/drivers/bestleag.c +++ b/src/mame/drivers/bestleag.c @@ -51,6 +51,8 @@ public: TILE_GET_INFO_MEMBER(get_fg_tile_info); TILEMAP_MAPPER_MEMBER(bsb_bg_scan); virtual void video_start(); + UINT32 screen_update_bestleag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -172,37 +174,35 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } } -static SCREEN_UPDATE_IND16(bestleag) +UINT32 bestleag_state::screen_update_bestleag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bestleag_state *state = screen.machine().driver_data<bestleag_state>(); - state->m_bg_tilemap->set_scrollx(0,(state->m_vregs[0x00/2] & 0xfff) + (state->m_vregs[0x08/2] & 0x7) - 3); - state->m_bg_tilemap->set_scrolly(0,state->m_vregs[0x02/2]); - state->m_tx_tilemap->set_scrollx(0,state->m_vregs[0x04/2]); - state->m_tx_tilemap->set_scrolly(0,state->m_vregs[0x06/2]); - state->m_fg_tilemap->set_scrollx(0,state->m_vregs[0x08/2] & 0xfff8); - state->m_fg_tilemap->set_scrolly(0,state->m_vregs[0x0a/2]); - - state->m_bg_tilemap->draw(bitmap, cliprect, 0,0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->set_scrollx(0,(m_vregs[0x00/2] & 0xfff) + (m_vregs[0x08/2] & 0x7) - 3); + m_bg_tilemap->set_scrolly(0,m_vregs[0x02/2]); + m_tx_tilemap->set_scrollx(0,m_vregs[0x04/2]); + m_tx_tilemap->set_scrolly(0,m_vregs[0x06/2]); + m_fg_tilemap->set_scrollx(0,m_vregs[0x08/2] & 0xfff8); + m_fg_tilemap->set_scrolly(0,m_vregs[0x0a/2]); + + m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(bitmap, cliprect, 0,0); draw_sprites(screen.machine(),bitmap,cliprect); - state->m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(bitmap, cliprect, 0,0); return 0; } -static SCREEN_UPDATE_IND16(bestleaw) +UINT32 bestleag_state::screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bestleag_state *state = screen.machine().driver_data<bestleag_state>(); - state->m_bg_tilemap->set_scrollx(0,state->m_vregs[0x08/2]); - state->m_bg_tilemap->set_scrolly(0,state->m_vregs[0x0a/2]); - state->m_tx_tilemap->set_scrollx(0,state->m_vregs[0x00/2]); - state->m_tx_tilemap->set_scrolly(0,state->m_vregs[0x02/2]); - state->m_fg_tilemap->set_scrollx(0,state->m_vregs[0x04/2]); - state->m_fg_tilemap->set_scrolly(0,state->m_vregs[0x06/2]); - - state->m_bg_tilemap->draw(bitmap, cliprect, 0,0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->set_scrollx(0,m_vregs[0x08/2]); + m_bg_tilemap->set_scrolly(0,m_vregs[0x0a/2]); + m_tx_tilemap->set_scrollx(0,m_vregs[0x00/2]); + m_tx_tilemap->set_scrolly(0,m_vregs[0x02/2]); + m_fg_tilemap->set_scrollx(0,m_vregs[0x04/2]); + m_fg_tilemap->set_scrolly(0,m_vregs[0x06/2]); + + m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(bitmap, cliprect, 0,0); draw_sprites(screen.machine(),bitmap,cliprect); - state->m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( bestleag, bestleag_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bestleag) + MCFG_SCREEN_UPDATE_DRIVER(bestleag_state, screen_update_bestleag) MCFG_GFXDECODE(bestleag) MCFG_PALETTE_LENGTH(0x800) @@ -387,7 +387,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( bestleaw, bestleag ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(bestleaw) + MCFG_SCREEN_UPDATE_DRIVER(bestleag_state, screen_update_bestleaw) MACHINE_CONFIG_END diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c index 032a3f545bc..887d3510992 100644 --- a/src/mame/drivers/bfcobra.c +++ b/src/mame/drivers/bfcobra.c @@ -299,6 +299,7 @@ public: DECLARE_DRIVER_INIT(bfcobra); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_bfcobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -366,9 +367,8 @@ void bfcobra_state::video_start() } } -static SCREEN_UPDATE_RGB32( bfcobra ) +UINT32 bfcobra_state::screen_update_bfcobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bfcobra_state *state = screen.machine().driver_data<bfcobra_state>(); int x, y; UINT8 *src; UINT32 *dest; @@ -378,39 +378,39 @@ static SCREEN_UPDATE_RGB32( bfcobra ) /* Select screen has to be programmed into two registers */ /* No idea what happens if the registers are different */ - if (state->m_flip_8 & 0x40 && state->m_flip_22 & 0x40) + if (m_flip_8 & 0x40 && m_flip_22 & 0x40) offset = 0x10000; else offset = 0; - if(state->m_videomode & 0x20) + if(m_videomode & 0x20) { - hirescol = state->m_col3bit; - lorescol = state->m_col7bit; + hirescol = m_col3bit; + lorescol = m_col7bit; } - else if(state->m_videomode & 0x40) + else if(m_videomode & 0x40) { - hirescol = state->m_col4bit; - lorescol = state->m_col6bit; + hirescol = m_col4bit; + lorescol = m_col6bit; } else { - hirescol = state->m_col4bit; - lorescol = state->m_col8bit; + hirescol = m_col4bit; + lorescol = m_col8bit; } for (y = cliprect.min_y; y <= cliprect.max_y; ++y) { - UINT16 y_offset = (y + state->m_v_scroll) * 256; - src = &state->m_video_ram[offset + y_offset]; + UINT16 y_offset = (y + m_v_scroll) * 256; + src = &m_video_ram[offset + y_offset]; dest = &bitmap.pix32(y); for (x = cliprect.min_x; x <= cliprect.max_x / 2; ++x) { - UINT8 x_offset = x + state->m_h_scroll; + UINT8 x_offset = x + m_h_scroll; UINT8 pen = *(src + x_offset); - if ( ( state->m_videomode & 0x81 ) == 1 || (state->m_videomode & 0x80 && pen & 0x80) ) + if ( ( m_videomode & 0x81 ) == 1 || (m_videomode & 0x80 && pen & 0x80) ) { *dest++ = screen.machine().pens[hirescol[pen & 0x0f]]; *dest++ = screen.machine().pens[hirescol[(pen >> 4) & 0x0f]]; @@ -1794,7 +1794,7 @@ static MACHINE_CONFIG_START( bfcobra, bfcobra_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512 - 1, 0, 256 - 1) - MCFG_SCREEN_UPDATE_STATIC(bfcobra) + MCFG_SCREEN_UPDATE_DRIVER(bfcobra_state, screen_update_bfcobra) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c index dee01456218..3c297d1cb82 100644 --- a/src/mame/drivers/bigevglf.c +++ b/src/mame/drivers/bigevglf.c @@ -519,7 +519,7 @@ static MACHINE_CONFIG_START( bigevglf, bigevglf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bigevglf) + MCFG_SCREEN_UPDATE_DRIVER(bigevglf_state, screen_update_bigevglf) MCFG_GFXDECODE(bigevglf) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/bigstrkb.c b/src/mame/drivers/bigstrkb.c index b3d496b7098..6a222ca54e4 100644 --- a/src/mame/drivers/bigstrkb.c +++ b/src/mame/drivers/bigstrkb.c @@ -207,7 +207,7 @@ static MACHINE_CONFIG_START( bigstrkb, bigstrkb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bigstrkb) + MCFG_SCREEN_UPDATE_DRIVER(bigstrkb_state, screen_update_bigstrkb) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/bingoc.c b/src/mame/drivers/bingoc.c index 8715e85627b..507af29d7a4 100644 --- a/src/mame/drivers/bingoc.c +++ b/src/mame/drivers/bingoc.c @@ -46,6 +46,7 @@ public: DECLARE_WRITE16_MEMBER(main_sound_latch_w); DECLARE_WRITE8_MEMBER(bingoc_play_w); virtual void video_start(); + UINT32 screen_update_bingoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -56,7 +57,7 @@ void bingoc_state::video_start() } -static SCREEN_UPDATE_IND16(bingoc) +UINT32 bingoc_state::screen_update_bingoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { return 0; } @@ -160,7 +161,7 @@ static MACHINE_CONFIG_START( bingoc, bingoc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(bingoc) + MCFG_SCREEN_UPDATE_DRIVER(bingoc_state, screen_update_bingoc) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/bingor.c b/src/mame/drivers/bingor.c index f74486fe2f4..50d11ad684e 100644 --- a/src/mame/drivers/bingor.c +++ b/src/mame/drivers/bingor.c @@ -454,6 +454,7 @@ public: DECLARE_READ16_MEMBER(test_r); DECLARE_READ8_MEMBER(test8_r); virtual void video_start(); + UINT32 screen_update_bingor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -461,9 +462,8 @@ void bingor_state::video_start() { } -static SCREEN_UPDATE_RGB32(bingor) +UINT32 bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bingor_state *state = screen.machine().driver_data<bingor_state>(); int x,y,count; bitmap.fill(get_black_pen(screen.machine()), cliprect); @@ -476,22 +476,22 @@ static SCREEN_UPDATE_RGB32(bingor) { UINT32 color; - color = (state->m_blit_ram[count] & 0xf000)>>12; + color = (m_blit_ram[count] & 0xf000)>>12; if(cliprect.contains(x+3, y)) bitmap.pix32(y, x+3) = screen.machine().pens[color]; - color = (state->m_blit_ram[count] & 0x0f00)>>8; + color = (m_blit_ram[count] & 0x0f00)>>8; if(cliprect.contains(x+2, y)) bitmap.pix32(y, x+2) = screen.machine().pens[color]; - color = (state->m_blit_ram[count] & 0x00f0)>>4; + color = (m_blit_ram[count] & 0x00f0)>>4; if(cliprect.contains(x+1, y)) bitmap.pix32(y, x+1) = screen.machine().pens[color]; - color = (state->m_blit_ram[count] & 0x000f)>>0; + color = (m_blit_ram[count] & 0x000f)>>0; if(cliprect.contains(x+0, y)) bitmap.pix32(y, x+0) = screen.machine().pens[color]; @@ -635,7 +635,7 @@ static MACHINE_CONFIG_START( bingor, bingor_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 300) MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) - MCFG_SCREEN_UPDATE_STATIC(bingor) + MCFG_SCREEN_UPDATE_DRIVER(bingor_state, screen_update_bingor) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c index 04e4785a47a..8985f7bad24 100644 --- a/src/mame/drivers/bionicc.c +++ b/src/mame/drivers/bionicc.c @@ -371,7 +371,7 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bionicc) + MCFG_SCREEN_UPDATE_DRIVER(bionicc_state, screen_update_bionicc) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(bionicc) diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c index 61f3e0dbaeb..a09fad44e49 100644 --- a/src/mame/drivers/bishi.c +++ b/src/mame/drivers/bishi.c @@ -422,7 +422,7 @@ static MACHINE_CONFIG_START( bishi, bishi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(29, 29+288-1, 16, 16+224-1) - MCFG_SCREEN_UPDATE_STATIC(bishi) + MCFG_SCREEN_UPDATE_DRIVER(bishi_state, screen_update_bishi) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c index f136636ba05..3a7fc0da52a 100644 --- a/src/mame/drivers/bking.c +++ b/src/mame/drivers/bking.c @@ -485,8 +485,8 @@ static MACHINE_CONFIG_START( bking, bking_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bking) - MCFG_SCREEN_VBLANK_STATIC(bking) + MCFG_SCREEN_UPDATE_DRIVER(bking_state, screen_update_bking) + MCFG_SCREEN_VBLANK_DRIVER(bking_state, screen_eof_bking) MCFG_GFXDECODE(bking) MCFG_PALETTE_LENGTH(4*8+4*4+4*2+4*2) diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c index 352d4215baa..fcdea2270f5 100644 --- a/src/mame/drivers/blackt96.c +++ b/src/mame/drivers/blackt96.c @@ -131,6 +131,7 @@ public: TILE_GET_INFO_MEMBER(get_bg6_tile_info); TILE_GET_INFO_MEMBER(get_bg7_tile_info); virtual void video_start(); + UINT32 screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; #define GET_INFO( ram ) \ @@ -227,9 +228,8 @@ static void draw_strip(running_machine &machine, bitmap_ind16 &bitmap, const rec } -static SCREEN_UPDATE_IND16( blackt96 ) +UINT32 blackt96_state::screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - blackt96_state *state = screen.machine().driver_data<blackt96_state>(); int count; int x,y; gfx_element *gfx = screen.machine().gfx[2]; @@ -263,7 +263,7 @@ static SCREEN_UPDATE_IND16( blackt96 ) { for (y=0;y<32;y++) { - UINT16 tile = (state->m_tilemapram[count*2]&0x7ff)+0x800; // +0xc00 for korean text + UINT16 tile = (m_tilemapram[count*2]&0x7ff)+0x800; // +0xc00 for korean text drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,-16+y*8,0); count++; } @@ -621,7 +621,7 @@ static MACHINE_CONFIG_START( blackt96, blackt96_state ) MCFG_SCREEN_SIZE(256, 256) // MCFG_SCREEN_VISIBLE_AREA(0*8, 16*32-1, 0*8, 16*32-1) MCFG_SCREEN_VISIBLE_AREA(0*8, 256-1, 0*8, 208-1) - MCFG_SCREEN_UPDATE_STATIC(blackt96) + MCFG_SCREEN_UPDATE_DRIVER(blackt96_state, screen_update_blackt96) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c index 2e612ac28e5..dcca2ed97d5 100644 --- a/src/mame/drivers/bladestl.c +++ b/src/mame/drivers/bladestl.c @@ -347,7 +347,7 @@ static MACHINE_CONFIG_START( bladestl, bladestl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bladestl) + MCFG_SCREEN_UPDATE_DRIVER(bladestl_state, screen_update_bladestl) MCFG_GFXDECODE(bladestl) MCFG_PALETTE_LENGTH(32 + 16*16) diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c index 53fd019dfb2..a192c1a304e 100644 --- a/src/mame/drivers/blitz.c +++ b/src/mame/drivers/blitz.c @@ -313,6 +313,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -359,10 +360,9 @@ void blitz_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blitz_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( megadpkr ) +UINT32 blitz_state::screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - blitz_state *state = screen.machine().driver_data<blitz_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -810,7 +810,7 @@ static MACHINE_CONFIG_START( megadpkr, blitz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((32)*8, (32)*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(megadpkr) + MCFG_SCREEN_UPDATE_DRIVER(blitz_state, screen_update_megadpkr) MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf) diff --git a/src/mame/drivers/blitz68k.c b/src/mame/drivers/blitz68k.c index 6e701be6207..e9d07d6c874 100644 --- a/src/mame/drivers/blitz68k.c +++ b/src/mame/drivers/blitz68k.c @@ -173,6 +173,8 @@ public: DECLARE_DRIVER_INIT(dualgame); DECLARE_VIDEO_START(blitz68k); DECLARE_VIDEO_START(blitz68k_addr_factor1); + UINT32 screen_update_blitz68k(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + UINT32 screen_update_blitz68k_noblit(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; /************************************************************************************************************* @@ -206,12 +208,11 @@ VIDEO_START_MEMBER(blitz68k_state,blitz68k_addr_factor1) blit.addr_factor = 1; } -static SCREEN_UPDATE_RGB32(blitz68k) +UINT32 blitz68k_state::screen_update_blitz68k(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - blitz68k_state *state = screen.machine().driver_data<blitz68k_state>(); int x,y; - UINT8 *src = state->m_blit_buffer; + UINT8 *src = m_blit_buffer; for(y = 0; y < 256; y++) { @@ -227,12 +228,11 @@ static SCREEN_UPDATE_RGB32(blitz68k) // Blitter-less board (SPI-68K) -static SCREEN_UPDATE_RGB32(blitz68k_noblit) +UINT32 blitz68k_state::screen_update_blitz68k_noblit(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - blitz68k_state *state = screen.machine().driver_data<blitz68k_state>(); int x,y; - UINT16 *src = state->m_frame_buffer; + UINT16 *src = m_frame_buffer; for(y = 0; y < 256; y++) { @@ -1722,7 +1722,7 @@ static MACHINE_CONFIG_START( ilpag, blitz68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(blitz68k) + MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k) MCFG_NVRAM_ADD_0FILL("nvram") @@ -1797,7 +1797,7 @@ static MACHINE_CONFIG_START( cjffruit, blitz68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-8-1) - MCFG_SCREEN_UPDATE_STATIC(blitz68k) + MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k) MCFG_MC6845_ADD("crtc", R6545_1, XTAL_22_1184MHz/8, mc6845_intf_irq1) @@ -1829,7 +1829,7 @@ static MACHINE_CONFIG_START( bankrob, blitz68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4) - MCFG_SCREEN_UPDATE_STATIC(blitz68k) + MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k) MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3) @@ -1859,7 +1859,7 @@ static MACHINE_CONFIG_START( bankroba, blitz68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+7, 256-1) - MCFG_SCREEN_UPDATE_STATIC(blitz68k) + MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k) MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq5) @@ -1888,7 +1888,7 @@ static MACHINE_CONFIG_START( deucesw2, blitz68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(blitz68k) + MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k) MCFG_MC6845_ADD("crtc", R6545_1, XTAL_22_1184MHz/8, mc6845_intf_irq3) @@ -1919,7 +1919,7 @@ static MACHINE_CONFIG_START( dualgame, blitz68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4) - MCFG_SCREEN_UPDATE_STATIC(blitz68k) + MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k) MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3) @@ -1948,7 +1948,7 @@ static MACHINE_CONFIG_START( hermit, blitz68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4) - MCFG_SCREEN_UPDATE_STATIC(blitz68k) + MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k) MCFG_MC6845_ADD("crtc", H46505, XTAL_22_1184MHz/8, mc6845_intf_irq1) @@ -1982,7 +1982,7 @@ static MACHINE_CONFIG_START( maxidbl, blitz68k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(blitz68k_noblit) + MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k_noblit) MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3) diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c index 4ea40332110..29b464b094e 100644 --- a/src/mame/drivers/blktiger.c +++ b/src/mame/drivers/blktiger.c @@ -334,7 +334,7 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(blktiger) + MCFG_SCREEN_UPDATE_DRIVER(blktiger_state, screen_update_blktiger) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(blktiger) diff --git a/src/mame/drivers/blmbycar.c b/src/mame/drivers/blmbycar.c index 840572d22d7..a023fa62425 100644 --- a/src/mame/drivers/blmbycar.c +++ b/src/mame/drivers/blmbycar.c @@ -366,7 +366,7 @@ static MACHINE_CONFIG_START( blmbycar, blmbycar_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x180, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0x100-1) - MCFG_SCREEN_UPDATE_STATIC(blmbycar) + MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar) MCFG_GFXDECODE(blmbycar) MCFG_PALETTE_LENGTH(0x300) @@ -409,7 +409,7 @@ static MACHINE_CONFIG_START( watrball, blmbycar_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(0x180, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 16, 0x100-1) - MCFG_SCREEN_UPDATE_STATIC(blmbycar) + MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar) MCFG_GFXDECODE(blmbycar) MCFG_PALETTE_LENGTH(0x300) diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c index a19d7cc77e6..3b57e2d82f7 100644 --- a/src/mame/drivers/blockade.c +++ b/src/mame/drivers/blockade.c @@ -481,7 +481,7 @@ static MACHINE_CONFIG_START( blockade, blockade_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(blockade) + MCFG_SCREEN_UPDATE_DRIVER(blockade_state, screen_update_blockade) MCFG_GFXDECODE(blockade) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c index cc541ee13ac..0c4d22d38a9 100644 --- a/src/mame/drivers/blockhl.c +++ b/src/mame/drivers/blockhl.c @@ -229,7 +229,7 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(blockhl) + MCFG_SCREEN_UPDATE_DRIVER(blockhl_state, screen_update_blockhl) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c index 00633d433b3..e42aca18a58 100644 --- a/src/mame/drivers/blockout.c +++ b/src/mame/drivers/blockout.c @@ -322,7 +322,7 @@ static MACHINE_CONFIG_START( blockout, blockout_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247) - MCFG_SCREEN_UPDATE_STATIC(blockout) + MCFG_SCREEN_UPDATE_DRIVER(blockout_state, screen_update_blockout) MCFG_PALETTE_LENGTH(513) diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c index d5d462376f7..28c19c9eaaa 100644 --- a/src/mame/drivers/bloodbro.c +++ b/src/mame/drivers/bloodbro.c @@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( bloodbro, bloodbro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bloodbro) + MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_bloodbro) MCFG_GFXDECODE(bloodbro) MCFG_PALETTE_LENGTH(2048) @@ -469,7 +469,7 @@ static MACHINE_CONFIG_DERIVED( weststry, bloodbro ) MCFG_PALETTE_LENGTH(1024) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(weststry) + MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_weststry) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( skysmash, bloodbro ) @@ -478,7 +478,7 @@ static MACHINE_CONFIG_DERIVED( skysmash, bloodbro ) MCFG_CPU_VBLANK_INT("screen", irq2_line_hold) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(skysmash) + MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_skysmash) MACHINE_CONFIG_END /* ROMs */ diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c index 4cc18aa8220..2aa2ffb843a 100644 --- a/src/mame/drivers/blstroid.c +++ b/src/mame/drivers/blstroid.c @@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( blstroid, blstroid_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 320*2, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(blstroid) + MCFG_SCREEN_UPDATE_DRIVER(blstroid_state, screen_update_blstroid) MCFG_VIDEO_START_OVERRIDE(blstroid_state,blstroid) diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c index be92f5ebdb4..a7c6f52d3ed 100644 --- a/src/mame/drivers/blueprnt.c +++ b/src/mame/drivers/blueprnt.c @@ -310,7 +310,7 @@ static MACHINE_CONFIG_START( blueprnt, blueprnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(blueprnt) + MCFG_SCREEN_UPDATE_DRIVER(blueprnt_state, screen_update_blueprnt) MCFG_GFXDECODE(blueprnt) MCFG_PALETTE_LENGTH(128*4+8) diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c index 804ebdc30d1..ca0078dfa0e 100644 --- a/src/mame/drivers/bmcbowl.c +++ b/src/mame/drivers/bmcbowl.c @@ -137,6 +137,7 @@ public: DECLARE_DRIVER_INIT(bmcbowl); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_bmcbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -148,9 +149,8 @@ void bmcbowl_state::video_start() { } -static SCREEN_UPDATE_IND16( bmcbowl ) +UINT32 bmcbowl_state::screen_update_bmcbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bmcbowl_state *state = screen.machine().driver_data<bmcbowl_state>(); /* 280x230,4 bitmap layers, 8bpp, missing scroll and priorities (maybe fixed ones) @@ -164,28 +164,28 @@ static SCREEN_UPDATE_IND16( bmcbowl ) { for (x=0;x<280;x+=2) { - pixdat = state->m_vid2[0x8000+z]; + pixdat = m_vid2[0x8000+z]; if(pixdat&0xff) bitmap.pix16(y, x+1) = (pixdat&0xff); if(pixdat>>8) bitmap.pix16(y, x) = (pixdat>>8); - pixdat = state->m_vid2[z]; + pixdat = m_vid2[z]; if(pixdat&0xff) bitmap.pix16(y, x+1) = (pixdat&0xff); if(pixdat>>8) bitmap.pix16(y, x) = (pixdat>>8); - pixdat = state->m_vid1[0x8000+z]; + pixdat = m_vid1[0x8000+z]; if(pixdat&0xff) bitmap.pix16(y, x+1) = (pixdat&0xff); if(pixdat>>8) bitmap.pix16(y, x) = (pixdat>>8); - pixdat = state->m_vid1[z]; + pixdat = m_vid1[z]; if(pixdat&0xff) bitmap.pix16(y, x+1) = (pixdat&0xff); @@ -510,7 +510,7 @@ static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(35*8, 30*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 0*8, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(bmcbowl) + MCFG_SCREEN_UPDATE_DRIVER(bmcbowl_state, screen_update_bmcbowl) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/bmcpokr.c b/src/mame/drivers/bmcpokr.c index b9dc2ccca9a..488b0e9d998 100644 --- a/src/mame/drivers/bmcpokr.c +++ b/src/mame/drivers/bmcpokr.c @@ -60,6 +60,7 @@ public: required_device<cpu_device> m_maincpu; required_shared_ptr<UINT16> m_videoram; virtual void video_start(); + UINT32 screen_update_bmcpokr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -198,9 +199,8 @@ static GFXDECODE_START( bmcpokr ) GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 ) GFXDECODE_END -SCREEN_UPDATE_IND16( bmcpokr ) +UINT32 bmcpokr_state::screen_update_bmcpokr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bmcpokr_state *state = screen.machine().driver_data<bmcpokr_state>(); gfx_element *gfx = screen.machine().gfx[0]; int count = 0; @@ -208,7 +208,7 @@ SCREEN_UPDATE_IND16( bmcpokr ) { for (int x=0;x<64;x++) { - UINT16 data = state->m_videoram[count]; + UINT16 data = m_videoram[count]; count++; drawgfx_opaque(bitmap,cliprect,gfx,data,0,0,0,x*8,y*8); @@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( bmcpokr, bmcpokr_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_STATIC(bmcpokr) + MCFG_SCREEN_UPDATE_DRIVER(bmcpokr_state, screen_update_bmcpokr) MCFG_GFXDECODE(bmcpokr) diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c index e5203e771ac..ea660a852f4 100644 --- a/src/mame/drivers/bnstars.c +++ b/src/mame/drivers/bnstars.c @@ -155,6 +155,8 @@ public: TILE_GET_INFO_MEMBER(get_ms32_roz1_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -530,51 +532,49 @@ void bnstars_state::video_start() -static SCREEN_UPDATE_IND16(bnstars_left) +UINT32 bnstars_state::screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bnstars_state *state = screen.machine().driver_data<bnstars_state>(); screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(0, cliprect); /* bg color */ - state->m_ms32_bg_tilemap[0]->set_scrollx(0, state->m_ms32_bg0_scroll[0x00/4] + state->m_ms32_bg0_scroll[0x08/4] + 0x10 ); - state->m_ms32_bg_tilemap[0]->set_scrolly(0, state->m_ms32_bg0_scroll[0x0c/4] + state->m_ms32_bg0_scroll[0x14/4] ); - state->m_ms32_bg_tilemap[0]->draw(bitmap, cliprect, 0,1); + m_ms32_bg_tilemap[0]->set_scrollx(0, m_ms32_bg0_scroll[0x00/4] + m_ms32_bg0_scroll[0x08/4] + 0x10 ); + m_ms32_bg_tilemap[0]->set_scrolly(0, m_ms32_bg0_scroll[0x0c/4] + m_ms32_bg0_scroll[0x14/4] ); + m_ms32_bg_tilemap[0]->draw(bitmap, cliprect, 0,1); draw_roz(screen.machine(),bitmap,cliprect,2,0); - state->m_ms32_tx_tilemap[0]->set_scrollx(0, state->m_ms32_tx0_scroll[0x00/4] + state->m_ms32_tx0_scroll[0x08/4] + 0x18); - state->m_ms32_tx_tilemap[0]->set_scrolly(0, state->m_ms32_tx0_scroll[0x0c/4] + state->m_ms32_tx0_scroll[0x14/4]); - state->m_ms32_tx_tilemap[0]->draw(bitmap, cliprect, 0,4); + m_ms32_tx_tilemap[0]->set_scrollx(0, m_ms32_tx0_scroll[0x00/4] + m_ms32_tx0_scroll[0x08/4] + 0x18); + m_ms32_tx_tilemap[0]->set_scrolly(0, m_ms32_tx0_scroll[0x0c/4] + m_ms32_tx0_scroll[0x14/4]); + m_ms32_tx_tilemap[0]->draw(bitmap, cliprect, 0,4); - draw_sprites(screen.machine(),bitmap,cliprect, state->m_ms32_spram, 0x20000, 0); + draw_sprites(screen.machine(),bitmap,cliprect, m_ms32_spram, 0x20000, 0); return 0; } -static SCREEN_UPDATE_IND16(bnstars_right) +UINT32 bnstars_state::screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bnstars_state *state = screen.machine().driver_data<bnstars_state>(); screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(0x8000+0, cliprect); /* bg color */ - state->m_ms32_bg_tilemap[1]->set_scrollx(0, state->m_ms32_bg1_scroll[0x00/4] + state->m_ms32_bg1_scroll[0x08/4] + 0x10 ); - state->m_ms32_bg_tilemap[1]->set_scrolly(0, state->m_ms32_bg1_scroll[0x0c/4] + state->m_ms32_bg1_scroll[0x14/4] ); - state->m_ms32_bg_tilemap[1]->draw(bitmap, cliprect, 0,1); + m_ms32_bg_tilemap[1]->set_scrollx(0, m_ms32_bg1_scroll[0x00/4] + m_ms32_bg1_scroll[0x08/4] + 0x10 ); + m_ms32_bg_tilemap[1]->set_scrolly(0, m_ms32_bg1_scroll[0x0c/4] + m_ms32_bg1_scroll[0x14/4] ); + m_ms32_bg_tilemap[1]->draw(bitmap, cliprect, 0,1); draw_roz(screen.machine(),bitmap,cliprect,2,1); - state->m_ms32_tx_tilemap[1]->set_scrollx(0, state->m_ms32_tx1_scroll[0x00/4] + state->m_ms32_tx1_scroll[0x08/4] + 0x18); - state->m_ms32_tx_tilemap[1]->set_scrolly(0, state->m_ms32_tx1_scroll[0x0c/4] + state->m_ms32_tx1_scroll[0x14/4]); - state->m_ms32_tx_tilemap[1]->draw(bitmap, cliprect, 0,4); + m_ms32_tx_tilemap[1]->set_scrollx(0, m_ms32_tx1_scroll[0x00/4] + m_ms32_tx1_scroll[0x08/4] + 0x18); + m_ms32_tx_tilemap[1]->set_scrolly(0, m_ms32_tx1_scroll[0x0c/4] + m_ms32_tx1_scroll[0x14/4]); + m_ms32_tx_tilemap[1]->draw(bitmap, cliprect, 0,4); - draw_sprites(screen.machine(),bitmap,cliprect, state->m_ms32_spram+(0x20000/4), 0x20000, 4); + draw_sprites(screen.machine(),bitmap,cliprect, m_ms32_spram+(0x20000/4), 0x20000, 4); return 0; } @@ -1396,14 +1396,14 @@ static MACHINE_CONFIG_START( bnstars, bnstars_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(bnstars_left) + MCFG_SCREEN_UPDATE_DRIVER(bnstars_state, screen_update_bnstars_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(bnstars_right) + MCFG_SCREEN_UPDATE_DRIVER(bnstars_state, screen_update_bnstars_right) /* sound hardware */ diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c index 310154fc9b9..cf6845fee83 100644 --- a/src/mame/drivers/bogeyman.c +++ b/src/mame/drivers/bogeyman.c @@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(bogeyman) + MCFG_SCREEN_UPDATE_DRIVER(bogeyman_state, screen_update_bogeyman) MCFG_GFXDECODE(bogeyman) MCFG_PALETTE_LENGTH(16+256) diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c index 7d712f285a6..825326241a1 100644 --- a/src/mame/drivers/bombjack.c +++ b/src/mame/drivers/bombjack.c @@ -374,7 +374,7 @@ static MACHINE_CONFIG_START( bombjack, bombjack_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bombjack) + MCFG_SCREEN_UPDATE_DRIVER(bombjack_state, screen_update_bombjack) MCFG_GFXDECODE(bombjack) MCFG_PALETTE_LENGTH(128) diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c index b44b95605e5..4252b88568e 100644 --- a/src/mame/drivers/boogwing.c +++ b/src/mame/drivers/boogwing.c @@ -354,7 +354,7 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(boogwing) + MCFG_SCREEN_UPDATE_DRIVER(boogwing_state, screen_update_boogwing) MCFG_PALETTE_LENGTH(2048) MCFG_GFXDECODE(boogwing) diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c index cd00541a535..84940e06bcd 100644 --- a/src/mame/drivers/bottom9.c +++ b/src/mame/drivers/bottom9.c @@ -368,7 +368,7 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(bottom9) + MCFG_SCREEN_UPDATE_DRIVER(bottom9_state, screen_update_bottom9) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c index 39d033416b7..4e4ac6a3b8a 100644 --- a/src/mame/drivers/boxer.c +++ b/src/mame/drivers/boxer.c @@ -49,6 +49,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void palette_init(); + UINT32 screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /************************************* @@ -170,9 +171,8 @@ static void draw_boxer( running_machine &machine, bitmap_ind16 &bitmap, const re } -static SCREEN_UPDATE_IND16( boxer ) +UINT32 boxer_state::screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - boxer_state *state = screen.machine().driver_data<boxer_state>(); int i, j; bitmap.fill(1, cliprect); @@ -181,7 +181,7 @@ static SCREEN_UPDATE_IND16( boxer ) { for (j = 0; j < 32; j++) { - UINT8 code = state->m_tile_ram[32 * i + j]; + UINT8 code = m_tile_ram[32 * i + j]; drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[2], @@ -455,7 +455,7 @@ static MACHINE_CONFIG_START( boxer, boxer_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 262) MCFG_SCREEN_VISIBLE_AREA(8, 247, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(boxer) + MCFG_SCREEN_UPDATE_DRIVER(boxer_state, screen_update_boxer) MCFG_GFXDECODE(boxer) MCFG_PALETTE_LENGTH(4) diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c index 7bebce964b9..ba04cf61e2f 100644 --- a/src/mame/drivers/brkthru.c +++ b/src/mame/drivers/brkthru.c @@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( brkthru, brkthru_state ) /* not sure; assuming to be the same as darwin */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 8, 248, 272, 8, 248) - MCFG_SCREEN_UPDATE_STATIC(brkthru) + MCFG_SCREEN_UPDATE_DRIVER(brkthru_state, screen_update_brkthru) /* sound hardware */ @@ -454,7 +454,7 @@ static MACHINE_CONFIG_START( darwin, brkthru_state ) = 15.625kHz / (240 + 32) = 57.444855Hz tuned by Shingo SUZUKI(VSyncMAME Project) 2000/10/19 */ - MCFG_SCREEN_UPDATE_STATIC(brkthru) + MCFG_SCREEN_UPDATE_DRIVER(brkthru_state, screen_update_brkthru) /* sound hardware */ diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c index 5aa482356e3..b40fecf1ea6 100644 --- a/src/mame/drivers/bsktball.c +++ b/src/mame/drivers/bsktball.c @@ -258,7 +258,7 @@ static MACHINE_CONFIG_START( bsktball, bsktball_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(bsktball) + MCFG_SCREEN_UPDATE_DRIVER(bsktball_state, screen_update_bsktball) MCFG_GFXDECODE(bsktball) MCFG_PALETTE_LENGTH(2*4 + 4*4*4*4) diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c index 38f04ae4500..38d01f02fc3 100644 --- a/src/mame/drivers/btime.c +++ b/src/mame/drivers/btime.c @@ -1468,7 +1468,7 @@ static MACHINE_CONFIG_START( btime, btime_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 8, 248, 272, 8, 248) - MCFG_SCREEN_UPDATE_STATIC(btime) + MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_btime) MCFG_MACHINE_START_OVERRIDE(btime_state,btime) MCFG_MACHINE_RESET_OVERRIDE(btime_state,btime) @@ -1514,7 +1514,7 @@ static MACHINE_CONFIG_DERIVED( cookrace, btime ) MCFG_PALETTE_LENGTH(16) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(cookrace) + MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_cookrace) MACHINE_CONFIG_END @@ -1532,7 +1532,7 @@ static MACHINE_CONFIG_DERIVED( lnc, btime ) MCFG_PALETTE_INIT_OVERRIDE(btime_state,lnc) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(lnc) + MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_lnc) MACHINE_CONFIG_END @@ -1542,7 +1542,7 @@ static MACHINE_CONFIG_DERIVED( wtennis, lnc ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(eggs) + MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_eggs) MACHINE_CONFIG_END @@ -1569,7 +1569,7 @@ static MACHINE_CONFIG_DERIVED( sdtennis, btime ) MCFG_VIDEO_START_OVERRIDE(btime_state,bnj) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(bnj) + MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_bnj) MACHINE_CONFIG_END @@ -1597,7 +1597,7 @@ static MACHINE_CONFIG_DERIVED( zoar, btime ) MCFG_PALETTE_LENGTH(64) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(zoar) + MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_zoar) MCFG_SOUND_REPLACE("ay1", AY8910, HCLK1) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.23) @@ -1623,7 +1623,7 @@ static MACHINE_CONFIG_DERIVED( disco, btime ) MCFG_PALETTE_LENGTH(32) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(disco) + MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_disco) MACHINE_CONFIG_END diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c index 5642dd0addf..a8f057b0e57 100644 --- a/src/mame/drivers/bublbobl.c +++ b/src/mame/drivers/bublbobl.c @@ -781,7 +781,7 @@ static MACHINE_CONFIG_START( tokio, bublbobl_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MAIN_XTAL/4, 384, 0, 256, 264, 16, 240) - MCFG_SCREEN_UPDATE_STATIC(bublbobl) + MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl) MCFG_GFXDECODE(bublbobl) MCFG_PALETTE_LENGTH(256) @@ -862,7 +862,7 @@ static MACHINE_CONFIG_START( bublbobl, bublbobl_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MAIN_XTAL/4, 384, 0, 256, 264, 16, 240) - MCFG_SCREEN_UPDATE_STATIC(bublbobl) + MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl) MCFG_GFXDECODE(bublbobl) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c index 86543a230dd..3c26841180a 100644 --- a/src/mame/drivers/buggychl.c +++ b/src/mame/drivers/buggychl.c @@ -412,7 +412,7 @@ static MACHINE_CONFIG_START( buggychl, buggychl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(buggychl) + MCFG_SCREEN_UPDATE_DRIVER(buggychl_state, screen_update_buggychl) MCFG_GFXDECODE(buggychl) MCFG_PALETTE_LENGTH(128+128) diff --git a/src/mame/drivers/buster.c b/src/mame/drivers/buster.c index c4e1d726470..9869e21e62d 100644 --- a/src/mame/drivers/buster.c +++ b/src/mame/drivers/buster.c @@ -23,6 +23,7 @@ public: DECLARE_READ8_MEMBER(test_r); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -30,9 +31,8 @@ void buster_state::video_start() { } -static SCREEN_UPDATE_IND16(buster) +UINT32 buster_state::screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - buster_state *state = screen.machine().driver_data<buster_state>(); gfx_element *gfx = screen.machine().gfx[0]; int count = 0x0000; @@ -43,7 +43,7 @@ static SCREEN_UPDATE_IND16(buster) { for (x=0;x<32;x++) { - int tile = (state->m_vram[count+1])|(state->m_vram[count]<<8); + int tile = (m_vram[count+1])|(m_vram[count]<<8); //int colour = tile>>12; drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*4); @@ -341,7 +341,7 @@ static MACHINE_CONFIG_START( buster, buster_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(buster) + MCFG_SCREEN_UPDATE_DRIVER(buster_state, screen_update_buster) MCFG_MC6845_ADD("crtc", MC6845, XTAL_3_579545MHz/4, mc6845_intf) //unknown clock / type MCFG_GFXDECODE(buster) diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c index 2e4c2ee086c..d83c61eca49 100644 --- a/src/mame/drivers/bwing.c +++ b/src/mame/drivers/bwing.c @@ -387,7 +387,7 @@ static MACHINE_CONFIG_START( bwing, bwing_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) // must be long enough for polling MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(bwing) + MCFG_SCREEN_UPDATE_DRIVER(bwing_state, screen_update_bwing) MCFG_GFXDECODE(bwing) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c index 08373963777..e22b9b80c16 100644 --- a/src/mame/drivers/cabal.c +++ b/src/mame/drivers/cabal.c @@ -505,7 +505,7 @@ static MACHINE_CONFIG_START( cabal, cabal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cabal) + MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal) MCFG_GFXDECODE(cabal) MCFG_PALETTE_LENGTH(1024) @@ -560,7 +560,7 @@ static MACHINE_CONFIG_START( cabalbl, cabal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cabal) + MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal) MCFG_GFXDECODE(cabal) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c index fd04fcdfa08..d42bbc719b3 100644 --- a/src/mame/drivers/cabaret.c +++ b/src/mame/drivers/cabaret.c @@ -55,6 +55,7 @@ public: TILE_GET_INFO_MEMBER(get_fg_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -112,14 +113,13 @@ void cabaret_state::video_start() } -static SCREEN_UPDATE_IND16(cabaret) +UINT32 cabaret_state::screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cabaret_state *state = screen.machine().driver_data<cabaret_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( cabaret, cabaret_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(cabaret) + MCFG_SCREEN_UPDATE_DRIVER(cabaret_state, screen_update_cabaret) MCFG_GFXDECODE(cabaret) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c index 30ff79fb27c..9dbd4b57dec 100644 --- a/src/mame/drivers/calomega.c +++ b/src/mame/drivers/calomega.c @@ -2749,7 +2749,7 @@ static MACHINE_CONFIG_START( sys903, calomega_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 31*8-1) /* Taken from MC6845 init, registers 01 & 06 */ - MCFG_SCREEN_UPDATE_STATIC(calomega) + MCFG_SCREEN_UPDATE_DRIVER(calomega_state, screen_update_calomega) MCFG_GFXDECODE(calomega) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c index 3ca95f3695c..f7f0c91dcf3 100644 --- a/src/mame/drivers/calorie.c +++ b/src/mame/drivers/calorie.c @@ -112,6 +112,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_calorie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -150,19 +151,18 @@ void calorie_state::video_start() m_fg_tilemap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16( calorie ) +UINT32 calorie_state::screen_update_calorie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - calorie_state *state = screen.machine().driver_data<calorie_state>(); int x; - if (state->m_bg_bank & 0x10) + if (m_bg_bank & 0x10) { - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); } else { - state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); } @@ -170,16 +170,16 @@ static SCREEN_UPDATE_IND16( calorie ) { int xpos, ypos, tileno, color, flipx, flipy; - tileno = state->m_sprites[x + 0]; - color = state->m_sprites[x + 1] & 0x0f; - flipx = state->m_sprites[x + 1] & 0x40; + tileno = m_sprites[x + 0]; + color = m_sprites[x + 1] & 0x0f; + flipx = m_sprites[x + 1] & 0x40; flipy = 0; - ypos = 0xff - state->m_sprites[x + 2]; - xpos = state->m_sprites[x + 3]; + ypos = 0xff - m_sprites[x + 2]; + xpos = m_sprites[x + 3]; - if (state->flip_screen()) + if (flip_screen()) { - if (state->m_sprites[x + 1] & 0x10) + if (m_sprites[x + 1] & 0x10) ypos = 0xff - ypos + 32; else ypos = 0xff - ypos + 16; @@ -189,7 +189,7 @@ static SCREEN_UPDATE_IND16( calorie ) flipy = !flipy; } - if (state->m_sprites[x + 1] & 0x10) + if (m_sprites[x + 1] & 0x10) { /* 32x32 sprites */ drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], tileno | 0x40, color, flipx, flipy, xpos, ypos - 31, 0); @@ -456,7 +456,7 @@ static MACHINE_CONFIG_START( calorie, calorie_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(calorie) + MCFG_SCREEN_UPDATE_DRIVER(calorie_state, screen_update_calorie) MCFG_GFXDECODE(calorie) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c index 09aae521a08..a026acac13f 100644 --- a/src/mame/drivers/canyon.c +++ b/src/mame/drivers/canyon.c @@ -248,7 +248,7 @@ static MACHINE_CONFIG_START( canyon, canyon_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750)) MCFG_SCREEN_SIZE(256, 240) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(canyon) + MCFG_SCREEN_UPDATE_DRIVER(canyon_state, screen_update_canyon) MCFG_GFXDECODE(canyon) MCFG_PALETTE_LENGTH(4) diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c index f8cc53d2da5..5e800efb2fc 100644 --- a/src/mame/drivers/capbowl.c +++ b/src/mame/drivers/capbowl.c @@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( capbowl, capbowl_state ) MCFG_SCREEN_SIZE(360, 256) MCFG_SCREEN_VISIBLE_AREA(0, 359, 0, 244) MCFG_SCREEN_REFRESH_RATE(57) - MCFG_SCREEN_UPDATE_STATIC(capbowl) + MCFG_SCREEN_UPDATE_DRIVER(capbowl_state, screen_update_capbowl) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cardline.c b/src/mame/drivers/cardline.c index 4cdb0bc2043..9175c94b99b 100644 --- a/src/mame/drivers/cardline.c +++ b/src/mame/drivers/cardline.c @@ -41,20 +41,20 @@ public: DECLARE_READ8_MEMBER(unk_r); DECLARE_WRITE8_MEMBER(lamps_w); virtual void palette_init(); + UINT32 screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; #define DRAW_TILE(machine, offset, transparency) drawgfx_transpen(bitmap, cliprect, (machine).gfx[0],\ - (state->m_videoram[index+offset] | (state->m_colorram[index+offset]<<8))&0x3fff,\ - (state->m_colorram[index+offset]&0x80)>>7,\ + (m_videoram[index+offset] | (m_colorram[index+offset]<<8))&0x3fff,\ + (m_colorram[index+offset]&0x80)>>7,\ 0,0,\ x<<3, y<<3,\ transparency?transparency:(UINT32)-1); -static SCREEN_UPDATE_IND16( cardline ) +UINT32 cardline_state::screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cardline_state *state = screen.machine().driver_data<cardline_state>(); int x,y; bitmap.fill(0, cliprect); for(y=0;y<32;y++) @@ -62,13 +62,13 @@ static SCREEN_UPDATE_IND16( cardline ) for(x=0;x<64;x++) { int index=y*64+x; - if(state->m_video&1) + if(m_video&1) { DRAW_TILE(screen.machine(),0,0); DRAW_TILE(screen.machine(),0x800,1); } - if(state->m_video&2) + if(m_video&2) { DRAW_TILE(screen.machine(),0x1000,0); DRAW_TILE(screen.machine(),0x1800,1); @@ -226,7 +226,7 @@ static MACHINE_CONFIG_START( cardline, cardline_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 35*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(cardline) + MCFG_SCREEN_UPDATE_DRIVER(cardline_state, screen_update_cardline) MCFG_GFXDECODE(cardline) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c index fed4d4e807a..385127fa447 100644 --- a/src/mame/drivers/carjmbre.c +++ b/src/mame/drivers/carjmbre.c @@ -217,7 +217,7 @@ static MACHINE_CONFIG_START( carjmbre, carjmbre_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(carjmbre) + MCFG_SCREEN_UPDATE_DRIVER(carjmbre_state, screen_update_carjmbre) MCFG_GFXDECODE(carjmbre) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/carpolo.c b/src/mame/drivers/carpolo.c index 708a434970e..ffe1421eba7 100644 --- a/src/mame/drivers/carpolo.c +++ b/src/mame/drivers/carpolo.c @@ -273,8 +273,8 @@ static MACHINE_CONFIG_START( carpolo, carpolo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 255) - MCFG_SCREEN_UPDATE_STATIC(carpolo) - MCFG_SCREEN_VBLANK_STATIC(carpolo) + MCFG_SCREEN_UPDATE_DRIVER(carpolo_state, screen_update_carpolo) + MCFG_SCREEN_VBLANK_DRIVER(carpolo_state, screen_eof_carpolo) MCFG_GFXDECODE(carpolo) MCFG_PALETTE_LENGTH(12*2+2*16+4*2) diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c index 7d61aac220a..9529d2ab3f6 100644 --- a/src/mame/drivers/carrera.c +++ b/src/mame/drivers/carrera.c @@ -62,6 +62,7 @@ public: required_shared_ptr<UINT8> m_tileram; DECLARE_READ8_MEMBER(unknown_r); virtual void palette_init(); + UINT32 screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -247,9 +248,8 @@ static GFXDECODE_START( carrera ) GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 ) GFXDECODE_END -static SCREEN_UPDATE_IND16(carrera) +UINT32 carrera_state::screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - carrera_state *state = screen.machine().driver_data<carrera_state>(); int x,y; int count = 0; @@ -258,7 +258,7 @@ static SCREEN_UPDATE_IND16(carrera) { for (x=0;x<64;x++) { - int tile = state->m_tileram[count&0x7ff] | state->m_tileram[(count&0x7ff)+0x800]<<8; + int tile = m_tileram[count&0x7ff] | m_tileram[(count&0x7ff)+0x800]<<8; drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,0,0,0,x*8,y*8); count++; @@ -338,7 +338,7 @@ static MACHINE_CONFIG_START( carrera, carrera_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(carrera) + MCFG_SCREEN_UPDATE_DRIVER(carrera_state, screen_update_carrera) MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK / 16, mc6845_intf) diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c index eaa9e087458..dd28e3ff9ca 100644 --- a/src/mame/drivers/caswin.c +++ b/src/mame/drivers/caswin.c @@ -68,6 +68,7 @@ public: TILE_GET_INFO_MEMBER(get_sc0_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -89,10 +90,9 @@ void caswin_state::video_start() m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(caswin_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32); } -static SCREEN_UPDATE_IND16(vvillage) +UINT32 caswin_state::screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - caswin_state *state = screen.machine().driver_data<caswin_state>(); - state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( vvillage, caswin_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(vvillage) + MCFG_SCREEN_UPDATE_DRIVER(caswin_state, screen_update_vvillage) MCFG_NVRAM_ADD_0FILL("nvram") diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index 653dba9acbf..d6594783e29 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -1868,7 +1868,7 @@ static MACHINE_CONFIG_START( dfeveron, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(dfeveron) MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ @@ -1910,7 +1910,7 @@ static MACHINE_CONFIG_START( ddonpach, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(ddonpach) MCFG_PALETTE_LENGTH(0x8000 + 0x40*16) // $400 extra entries for layers 1&2 @@ -1956,7 +1956,7 @@ static MACHINE_CONFIG_START( donpachi, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(donpachi) MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ @@ -2002,7 +2002,7 @@ static MACHINE_CONFIG_START( esprade, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(esprade) MCFG_PALETTE_LENGTH(0x8000) @@ -2042,7 +2042,7 @@ static MACHINE_CONFIG_START( gaia, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(esprade) MCFG_PALETTE_LENGTH(0x8000) @@ -2083,7 +2083,7 @@ static MACHINE_CONFIG_START( guwange, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(esprade) MCFG_PALETTE_LENGTH(0x8000) @@ -2127,7 +2127,7 @@ static MACHINE_CONFIG_START( hotdogst, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(384, 240) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(hotdogst) MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ @@ -2179,7 +2179,7 @@ static MACHINE_CONFIG_START( korokoro, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1-2, 0, 240-1-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(korokoro) MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ @@ -2233,7 +2233,7 @@ static MACHINE_CONFIG_START( mazinger, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(384, 240) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(mazinger) MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ @@ -2291,7 +2291,7 @@ static MACHINE_CONFIG_START( metmqstr, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 240) MCFG_SCREEN_VISIBLE_AREA(0x7d, 0x7d + 0x180-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(donpachi) MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ @@ -2346,7 +2346,7 @@ static MACHINE_CONFIG_START( pacslot, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 240) MCFG_SCREEN_VISIBLE_AREA(0x80, 0x80 + 0x140-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(tjumpman) MCFG_PALETTE_LENGTH(0x8000) @@ -2402,7 +2402,7 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 240) MCFG_SCREEN_VISIBLE_AREA(0x70, 0x70 + 0x140-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(pwrinst2) MCFG_PALETTE_LENGTH(0x8000+0x2800) @@ -2465,7 +2465,7 @@ static MACHINE_CONFIG_START( sailormn, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320+1, 240) MCFG_SCREEN_VISIBLE_AREA(0+1, 320+1-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(sailormn) MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ @@ -2519,7 +2519,7 @@ static MACHINE_CONFIG_START( tjumpman, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 240) MCFG_SCREEN_VISIBLE_AREA(0x80, 0x80 + 0x140-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(tjumpman) MCFG_PALETTE_LENGTH(0x8000) @@ -2560,7 +2560,7 @@ static MACHINE_CONFIG_START( uopoko, cave_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(cave) + MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE(uopoko) MCFG_PALETTE_LENGTH(0x8000) diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c index c1595d7d35c..ed01f887aa3 100644 --- a/src/mame/drivers/cb2001.c +++ b/src/mame/drivers/cb2001.c @@ -71,6 +71,7 @@ public: TILE_GET_INFO_MEMBER(get_cb2001_reel3_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -331,18 +332,17 @@ e3 -> c6 */ -static SCREEN_UPDATE_RGB32(cb2001) +UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - cb2001_state *state = screen.machine().driver_data<cb2001_state>(); int count,x,y; bitmap.fill(get_black_pen(screen.machine()), cliprect); count = 0x0000; // render bg as 8x8 tilemaps - if (state->m_other1 & 0x02) + if (m_other1 & 0x02) { - if (!(state->m_other1 & 0x04)) + if (!(m_other1 & 0x04)) { for (y=0;y<32;y++) { @@ -351,9 +351,9 @@ static SCREEN_UPDATE_RGB32(cb2001) int tile; int colour; - tile = (state->m_vram_bg[count] & 0x0fff); - colour = (state->m_vram_bg[count] & 0xf000)>>12; - tile += state->m_videobank*0x2000; + tile = (m_vram_bg[count] & 0x0fff); + colour = (m_vram_bg[count] & 0xf000)>>12; + tile += m_videobank*0x2000; drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,colour,0,0,x*8,y*8); @@ -370,26 +370,26 @@ static SCREEN_UPDATE_RGB32(cb2001) { UINT16 scroll; - scroll = state->m_vram_bg[0xa00/2 + i/2]; + scroll = m_vram_bg[0xa00/2 + i/2]; if (i&1) scroll >>=8; scroll &=0xff; - state->m_reel2_tilemap->set_scrolly(i, scroll); + m_reel2_tilemap->set_scrolly(i, scroll); - scroll = state->m_vram_bg[0x800/2 + i/2]; + scroll = m_vram_bg[0x800/2 + i/2]; if (i&1) scroll >>=8; scroll &=0xff; - state->m_reel1_tilemap->set_scrolly(i, scroll); + m_reel1_tilemap->set_scrolly(i, scroll); - scroll = state->m_vram_bg[0xc00/2 + i/2]; + scroll = m_vram_bg[0xc00/2 + i/2]; if (i&1) scroll >>=8; scroll &=0xff; - state->m_reel3_tilemap->set_scrolly(i, scroll); + m_reel3_tilemap->set_scrolly(i, scroll); } @@ -398,9 +398,9 @@ static SCREEN_UPDATE_RGB32(cb2001) const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1); const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1); - state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(bitmap, visible3, 0, 0); } } @@ -413,11 +413,11 @@ static SCREEN_UPDATE_RGB32(cb2001) int tile; int colour; - tile = (state->m_vram_fg[count] & 0x0fff); - colour = (state->m_vram_fg[count] & 0xf000)>>12; - tile += state->m_videobank*0x2000; + tile = (m_vram_fg[count] & 0x0fff); + colour = (m_vram_fg[count] & 0xf000)>>12; + tile += m_videobank*0x2000; - if (state->m_other2 & 0x4) + if (m_other2 & 0x4) { tile += 0x1000; } @@ -427,7 +427,7 @@ static SCREEN_UPDATE_RGB32(cb2001) } } - popmessage("%02x %02x %02x %02x\n",state->m_videobank,state->m_videomode, state->m_other1, state->m_other2); + popmessage("%02x %02x %02x %02x\n",m_videobank,m_videomode, m_other1, m_other2); return 0; } @@ -849,7 +849,7 @@ static MACHINE_CONFIG_START( cb2001, cb2001_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(cb2001) + MCFG_SCREEN_UPDATE_DRIVER(cb2001_state, screen_update_cb2001) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c index 078c8568403..ea32dfc1a7c 100644 --- a/src/mame/drivers/cball.c +++ b/src/mame/drivers/cball.c @@ -32,6 +32,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -56,20 +57,19 @@ void cball_state::video_start() } -static SCREEN_UPDATE_IND16( cball ) +UINT32 cball_state::screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cball_state *state = screen.machine().driver_data<cball_state>(); /* draw playfield */ - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); /* draw sprite */ drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], - state->m_video_ram[0x399] >> 4, + m_video_ram[0x399] >> 4, 0, 0, 0, - 240 - state->m_video_ram[0x390], - 240 - state->m_video_ram[0x398], 0); + 240 - m_video_ram[0x390], + 240 - m_video_ram[0x398], 0); return 0; } @@ -236,7 +236,7 @@ static MACHINE_CONFIG_START( cball, cball_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 262) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223) - MCFG_SCREEN_UPDATE_STATIC(cball) + MCFG_SCREEN_UPDATE_DRIVER(cball_state, screen_update_cball) MCFG_GFXDECODE(cball) MCFG_PALETTE_LENGTH(6) diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c index af31eeb72fd..bd05b4a4f2d 100644 --- a/src/mame/drivers/cbasebal.c +++ b/src/mame/drivers/cbasebal.c @@ -290,7 +290,7 @@ static MACHINE_CONFIG_START( cbasebal, cbasebal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(cbasebal) + MCFG_SCREEN_UPDATE_DRIVER(cbasebal_state, screen_update_cbasebal) MCFG_GFXDECODE(cbasebal) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c index 2dec4f4f761..668a2c47985 100644 --- a/src/mame/drivers/cbuster.c +++ b/src/mame/drivers/cbuster.c @@ -338,7 +338,7 @@ static MACHINE_CONFIG_START( twocrude, cbuster_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(twocrude) + MCFG_SCREEN_UPDATE_DRIVER(cbuster_state, screen_update_twocrude) MCFG_GFXDECODE(cbuster) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c index 7b8c684f52d..1ad668beb00 100644 --- a/src/mame/drivers/ccastles.c +++ b/src/mame/drivers/ccastles.c @@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( ccastles, ccastles_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, HTOTAL - 1, VTOTAL, 0, VTOTAL - 1) /* will be adjusted later */ - MCFG_SCREEN_UPDATE_STATIC(ccastles) + MCFG_SCREEN_UPDATE_DRIVER(ccastles_state, screen_update_ccastles) /* sound hardware */ diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c index 3bb6d8eb133..76fecf8774e 100644 --- a/src/mame/drivers/cchance.c +++ b/src/mame/drivers/cchance.c @@ -236,8 +236,8 @@ static MACHINE_CONFIG_START( cchance, cchance_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnzs) - MCFG_SCREEN_VBLANK_STATIC(tnzs) + MCFG_SCREEN_UPDATE_DRIVER(cchance_state, screen_update_tnzs) + MCFG_SCREEN_VBLANK_DRIVER(cchance_state, screen_eof_tnzs) MCFG_PALETTE_LENGTH(512) MCFG_PALETTE_INIT_OVERRIDE(cchance_state,arknoid2) diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c index e240c6d3c21..9e089fc2c6e 100644 --- a/src/mame/drivers/cclimber.c +++ b/src/mame/drivers/cclimber.c @@ -997,7 +997,7 @@ static MACHINE_CONFIG_START( root, cclimber_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cclimber) + MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_cclimber) MCFG_GFXDECODE(cclimber) MCFG_PALETTE_LENGTH(16*4+8*4) @@ -1047,7 +1047,7 @@ static MACHINE_CONFIG_DERIVED( yamato, root ) MCFG_PALETTE_LENGTH(16*4+8*4+256) MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,yamato) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(yamato) + MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_yamato) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1073,7 +1073,7 @@ static MACHINE_CONFIG_DERIVED( toprollr, cclimber ) MCFG_VIDEO_START_OVERRIDE(cclimber_state,toprollr) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(toprollr) + MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_toprollr) MACHINE_CONFIG_END @@ -1095,7 +1095,7 @@ static MACHINE_CONFIG_START( swimmer, cclimber_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(swimmer) + MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_swimmer) MCFG_GFXDECODE(swimmer) MCFG_PALETTE_LENGTH(32*8+4*8+1) diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c index 11b63a22a9a..d126a1b546b 100644 --- a/src/mame/drivers/cd32.c +++ b/src/mame/drivers/cd32.c @@ -782,7 +782,7 @@ static MACHINE_CONFIG_START( cd32base, cd32_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512*2, 312) MCFG_SCREEN_VISIBLE_AREA((129-8-8)*2, (449+8-1+8)*2, 44-8, 300+8-1) - MCFG_SCREEN_UPDATE_STATIC(amiga_aga) + MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga) MCFG_VIDEO_START_OVERRIDE(cd32_state,amiga_aga) diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c index 075b346b109..8d8afcd0f2b 100644 --- a/src/mame/drivers/cdi.c +++ b/src/mame/drivers/cdi.c @@ -331,14 +331,14 @@ static MACHINE_CONFIG_START( cdi, cdi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(384, 302) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) //dynamic resolution,TODO - MCFG_SCREEN_UPDATE_STATIC(cdimono1) + MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1) MCFG_SCREEN_ADD("lcd", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(192, 22) MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1) - MCFG_SCREEN_UPDATE_STATIC(cdimono1_lcd) + MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c index 59cda529e77..53434ae257e 100644 --- a/src/mame/drivers/centiped.c +++ b/src/mame/drivers/centiped.c @@ -1766,7 +1766,7 @@ static MACHINE_CONFIG_START( centiped_base, centiped_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(centiped) + MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_centiped) MCFG_GFXDECODE(centiped) MCFG_PALETTE_LENGTH(4+4*4*4*4) @@ -1846,7 +1846,7 @@ static MACHINE_CONFIG_DERIVED( milliped, centiped ) MCFG_VIDEO_START_OVERRIDE(centiped_state,milliped) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(milliped) + MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_milliped) /* sound hardware */ MCFG_POKEY_REPLACE("pokey", 12096000/8) @@ -1883,7 +1883,7 @@ static MACHINE_CONFIG_DERIVED( warlords, centiped ) MCFG_PALETTE_INIT_OVERRIDE(centiped_state,warlords) MCFG_VIDEO_START_OVERRIDE(centiped_state,warlords) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(warlords) + MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_warlords) /* sound hardware */ MCFG_POKEY_REPLACE("pokey", 12096000/8) @@ -1898,7 +1898,7 @@ static MACHINE_CONFIG_DERIVED( mazeinv, milliped ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(mazeinv_map) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(centiped) + MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_centiped) MACHINE_CONFIG_END @@ -1916,7 +1916,7 @@ static MACHINE_CONFIG_START( bullsdrt, centiped_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bullsdrt) + MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_bullsdrt) MCFG_GFXDECODE(centiped) MCFG_PALETTE_LENGTH(4+4*4*4*4) diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c index 36e20d33eb8..e789d71184b 100644 --- a/src/mame/drivers/chaknpop.c +++ b/src/mame/drivers/chaknpop.c @@ -384,7 +384,7 @@ static MACHINE_CONFIG_START( chaknpop, chaknpop_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(chaknpop) + MCFG_SCREEN_UPDATE_DRIVER(chaknpop_state, screen_update_chaknpop) MCFG_GFXDECODE(chaknpop) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c index 25ea74e3063..5119f5989a4 100644 --- a/src/mame/drivers/cham24.c +++ b/src/mame/drivers/cham24.c @@ -88,6 +88,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -302,7 +303,7 @@ void cham24_state::video_start() { } -static SCREEN_UPDATE_IND16( cham24 ) +UINT32 cham24_state::screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* render the ppu */ ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu"); @@ -354,7 +355,7 @@ static MACHINE_CONFIG_START( cham24, cham24_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cham24) + MCFG_SCREEN_UPDATE_DRIVER(cham24_state, screen_update_cham24) MCFG_GFXDECODE(cham24) MCFG_PALETTE_LENGTH(8*4*16) diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c index 6b0b624692c..823606773d7 100644 --- a/src/mame/drivers/champbas.c +++ b/src/mame/drivers/champbas.c @@ -95,15 +95,14 @@ TODO: * *************************************/ -static SCREEN_VBLANK( champbas ) +void champbas_state::screen_eof_champbas(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - champbas_state *state = screen.machine().driver_data<champbas_state>(); - state->m_watchdog_count++; + m_watchdog_count++; - if (state->m_watchdog_count == 0x10) + if (m_watchdog_count == 0x10) screen.machine().schedule_soft_reset(); } } @@ -633,8 +632,8 @@ static MACHINE_CONFIG_START( talbot, champbas_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(champbas) - MCFG_SCREEN_VBLANK_STATIC(champbas) + MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_champbas) + MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas) MCFG_GFXDECODE(talbot) MCFG_PALETTE_LENGTH(0x200) @@ -668,8 +667,8 @@ static MACHINE_CONFIG_START( champbas, champbas_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(champbas) - MCFG_SCREEN_VBLANK_STATIC(champbas) + MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_champbas) + MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas) MCFG_GFXDECODE(champbas) MCFG_PALETTE_LENGTH(0x200) @@ -725,8 +724,8 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state ) MCFG_SCREEN_REFRESH_RATE(60.54) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(exctsccr) - MCFG_SCREEN_VBLANK_STATIC(champbas) + MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_exctsccr) + MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas) MCFG_GFXDECODE(exctsccr) MCFG_PALETTE_LENGTH(0x200) @@ -776,8 +775,8 @@ static MACHINE_CONFIG_START( exctsccrb, champbas_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(exctsccr) - MCFG_SCREEN_VBLANK_STATIC(champbas) + MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_exctsccr) + MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas) MCFG_GFXDECODE(exctsccr) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c index 4b2770655a8..70caa7166ad 100644 --- a/src/mame/drivers/champbwl.c +++ b/src/mame/drivers/champbwl.c @@ -171,6 +171,10 @@ public: DECLARE_MACHINE_START(champbwl); DECLARE_MACHINE_RESET(champbwl); DECLARE_MACHINE_START(doraemon); + UINT32 screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_doraemon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_champbwl(screen_device &screen, bool state); + void screen_eof_doraemon(screen_device &screen, bool state); }; @@ -452,7 +456,7 @@ MACHINE_RESET_MEMBER(champbwl_state,champbwl) } -SCREEN_UPDATE_IND16( champbwl ) +UINT32 champbwl_state::screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0x1f0, cliprect); @@ -463,10 +467,10 @@ SCREEN_UPDATE_IND16( champbwl ) return 0; } -SCREEN_VBLANK( champbwl ) +void champbwl_state::screen_eof_champbwl(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); } @@ -491,8 +495,8 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(champbwl) - MCFG_SCREEN_VBLANK_STATIC(champbwl) + MCFG_SCREEN_UPDATE_DRIVER(champbwl_state, screen_update_champbwl) + MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_champbwl) MCFG_GFXDECODE(champbwl) MCFG_PALETTE_LENGTH(512) @@ -511,7 +515,7 @@ MACHINE_CONFIG_END -static SCREEN_UPDATE_IND16( doraemon ) +UINT32 champbwl_state::screen_update_doraemon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0x1f0, cliprect); @@ -522,10 +526,10 @@ static SCREEN_UPDATE_IND16( doraemon ) return 0; } -static SCREEN_VBLANK( doraemon ) +void champbwl_state::screen_eof_doraemon(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) screen.machine().device<seta001_device>("spritegen")->setac_eof(); } @@ -554,8 +558,8 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(doraemon) - MCFG_SCREEN_VBLANK_STATIC(doraemon) + MCFG_SCREEN_UPDATE_DRIVER(champbwl_state, screen_update_doraemon) + MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_doraemon) MCFG_GFXDECODE(champbwl) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c index 0c262bd8cae..dca41c4ee16 100644 --- a/src/mame/drivers/chanbara.c +++ b/src/mame/drivers/chanbara.c @@ -92,6 +92,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -206,14 +207,13 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16( chanbara ) +UINT32 chanbara_state::screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - chanbara_state *state = screen.machine().driver_data<chanbara_state>(); - state->m_bg2_tilemap->set_scrolly(0, state->m_scroll | (state->m_scrollhi << 8)); - state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->set_scrolly(0, m_scroll | (m_scrollhi << 8)); + m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -415,7 +415,7 @@ static MACHINE_CONFIG_START( chanbara, chanbara_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(chanbara) + MCFG_SCREEN_UPDATE_DRIVER(chanbara_state, screen_update_chanbara) MCFG_GFXDECODE(chanbara) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/chance32.c b/src/mame/drivers/chance32.c index ac9a33a42a1..3d3ff5f86ff 100644 --- a/src/mame/drivers/chance32.c +++ b/src/mame/drivers/chance32.c @@ -62,6 +62,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_chance32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -101,18 +102,17 @@ void chance32_state::video_start() } -SCREEN_UPDATE_IND16( chance32 ) +UINT32 chance32_state::screen_update_chance32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - chance32_state *state = screen.machine().driver_data<chance32_state>(); /* TODO: wtf? */ - state->m_bg_tilemap->set_scrollx(0, 352); - state->m_bg_tilemap->set_scrolly(0, 160); - state->m_fg_tilemap->set_scrollx(0, 352); - state->m_fg_tilemap->set_scrolly(0, 160); + m_bg_tilemap->set_scrollx(0, 352); + m_bg_tilemap->set_scrolly(0, 160); + m_fg_tilemap->set_scrollx(0, 352); + m_fg_tilemap->set_scrolly(0, 160); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -481,7 +481,7 @@ static MACHINE_CONFIG_START( chance32, chance32_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*16, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 35*16-1, 0, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(chance32) + MCFG_SCREEN_UPDATE_DRIVER(chance32_state, screen_update_chance32) MCFG_MC6845_ADD("crtc", H46505, 12000000/16, mc6845_intf) /* 52.786 Hz (similar to Major Poker) */ diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c index f16e0959163..8b1272a14e9 100644 --- a/src/mame/drivers/changela.c +++ b/src/mame/drivers/changela.c @@ -515,7 +515,7 @@ static MACHINE_CONFIG_START( changela, changela_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess */ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(changela) + MCFG_SCREEN_UPDATE_DRIVER(changela_state, screen_update_changela) MCFG_PALETTE_LENGTH(0x40) diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c index 01b990ff977..978869a62a0 100644 --- a/src/mame/drivers/cheekyms.c +++ b/src/mame/drivers/cheekyms.c @@ -139,7 +139,7 @@ static MACHINE_CONFIG_START( cheekyms, cheekyms_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(cheekyms) + MCFG_SCREEN_UPDATE_DRIVER(cheekyms_state, screen_update_cheekyms) MCFG_GFXDECODE(cheekyms) MCFG_PALETTE_LENGTH(0xc0) diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c index 97827b39278..f1debbd27dd 100644 --- a/src/mame/drivers/chinagat.c +++ b/src/mame/drivers/chinagat.c @@ -587,7 +587,7 @@ static MACHINE_CONFIG_START( chinagat, ddragon_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ - MCFG_SCREEN_UPDATE_STATIC(ddragon) + MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon) MCFG_GFXDECODE(chinagat) MCFG_PALETTE_LENGTH(384) @@ -631,7 +631,7 @@ static MACHINE_CONFIG_START( saiyugoub1, ddragon_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ - MCFG_SCREEN_UPDATE_STATIC(ddragon) + MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon) MCFG_GFXDECODE(chinagat) MCFG_PALETTE_LENGTH(384) @@ -672,7 +672,7 @@ static MACHINE_CONFIG_START( saiyugoub2, ddragon_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ - MCFG_SCREEN_UPDATE_STATIC(ddragon) + MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon) MCFG_GFXDECODE(chinagat) MCFG_PALETTE_LENGTH(384) diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c index e09e745303e..d6c2f341609 100644 --- a/src/mame/drivers/chinsan.c +++ b/src/mame/drivers/chinsan.c @@ -75,6 +75,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -97,9 +98,8 @@ void chinsan_state::video_start() { } -static SCREEN_UPDATE_IND16( chinsan ) +UINT32 chinsan_state::screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - chinsan_state *state = screen.machine().driver_data<chinsan_state>(); int y, x, count; count = 0; for (y = 0; y < 32; y++) @@ -107,8 +107,8 @@ static SCREEN_UPDATE_IND16( chinsan ) for (x = 0; x < 64; x++) { int tileno, colour; - tileno = state->m_video[count] | (state->m_video[count + 0x800] << 8); - colour = state->m_video[count + 0x1000] >> 3; + tileno = m_video[count] | (m_video[count + 0x800] << 8); + colour = m_video[count + 0x1000] >> 3; drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tileno,colour,0,0,x*8,y*8); count++; } @@ -614,7 +614,7 @@ static MACHINE_CONFIG_START( chinsan, chinsan_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_VISIBLE_AREA(24, 512-24-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(chinsan) + MCFG_SCREEN_UPDATE_DRIVER(chinsan_state, screen_update_chinsan) MCFG_GFXDECODE(chinsan) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c index 3e3fc35ae93..c55a9b0ad94 100644 --- a/src/mame/drivers/chqflag.c +++ b/src/mame/drivers/chqflag.c @@ -373,7 +373,7 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(chqflag) + MCFG_SCREEN_UPDATE_DRIVER(chqflag_state, screen_update_chqflag) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c index c4664942d88..171c4dae2d1 100644 --- a/src/mame/drivers/cinemat.c +++ b/src/mame/drivers/cinemat.c @@ -999,7 +999,7 @@ static MACHINE_CONFIG_START( cinemat_nojmi_4k, cinemat_state ) MCFG_SCREEN_REFRESH_RATE(MASTER_CLOCK/4/16/16/16/16/2) MCFG_SCREEN_SIZE(1024, 768) MCFG_SCREEN_VISIBLE_AREA(0, 1023, 0, 767) - MCFG_SCREEN_UPDATE_STATIC(cinemat) + MCFG_SCREEN_UPDATE_DRIVER(cinemat_state, screen_update_cinemat) MACHINE_CONFIG_END @@ -1045,7 +1045,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( spacewar, cinemat_nojmi_4k ) MCFG_FRAGMENT_ADD(spacewar_sound) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(spacewar) + MCFG_SCREEN_UPDATE_DRIVER(cinemat_state, screen_update_spacewar) MACHINE_CONFIG_END diff --git a/src/mame/drivers/circus.c b/src/mame/drivers/circus.c index ba618ffd36f..59d4421813a 100644 --- a/src/mame/drivers/circus.c +++ b/src/mame/drivers/circus.c @@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( circus, circus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(circus) + MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_circus) MCFG_GFXDECODE(circus) MCFG_PALETTE_LENGTH(2) @@ -329,7 +329,7 @@ static MACHINE_CONFIG_START( robotbwl, circus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(robotbwl) + MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_robotbwl) MCFG_GFXDECODE(robotbwl) MCFG_PALETTE_LENGTH(2) @@ -369,7 +369,7 @@ static MACHINE_CONFIG_START( crash, circus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) MCFG_SCREEN_SIZE(40*8, 40*8) //TODO MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(crash) + MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_crash) MCFG_GFXDECODE(circus) MCFG_PALETTE_LENGTH(2) @@ -401,7 +401,7 @@ static MACHINE_CONFIG_START( ripcord, circus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(ripcord) + MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_ripcord) MCFG_GFXDECODE(circus) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c index 7d2b8481a79..fb3bcc6b2a6 100644 --- a/src/mame/drivers/circusc.c +++ b/src/mame/drivers/circusc.c @@ -371,7 +371,7 @@ static MACHINE_CONFIG_START( circusc, circusc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(circusc) + MCFG_SCREEN_UPDATE_DRIVER(circusc_state, screen_update_circusc) MCFG_GFXDECODE(circusc) MCFG_PALETTE_LENGTH(16*16+16*16) diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c index 7ccd9d669d0..a292d13667c 100644 --- a/src/mame/drivers/cischeat.c +++ b/src/mame/drivers/cischeat.c @@ -1584,7 +1584,7 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(bigrun) + MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_bigrun) MCFG_GFXDECODE(bigrun) MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 64*16) /* scroll 0,1,2; road 0,1; sprites */ @@ -1626,7 +1626,7 @@ static MACHINE_CONFIG_DERIVED( cischeat, bigrun ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-8-1) - MCFG_SCREEN_UPDATE_STATIC(cischeat) + MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_cischeat) MCFG_GFXDECODE(cischeat) MCFG_PALETTE_LENGTH(32*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */ @@ -1659,7 +1659,7 @@ static MACHINE_CONFIG_DERIVED( f1gpstar, bigrun ) MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(f1gpstar) + MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_f1gpstar) MACHINE_CONFIG_END @@ -1717,7 +1717,7 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500 * 3) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0 +16, 256-1 -16) - MCFG_SCREEN_UPDATE_STATIC(scudhamm) + MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_scudhamm) MCFG_GFXDECODE(scudhamm) MCFG_PALETTE_LENGTH(16*16+16*16+128*16) diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c index 348a7afb1ae..3a60804238d 100644 --- a/src/mame/drivers/citycon.c +++ b/src/mame/drivers/citycon.c @@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( citycon, citycon_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(citycon) + MCFG_SCREEN_UPDATE_DRIVER(citycon_state, screen_update_citycon) MCFG_GFXDECODE(citycon) MCFG_PALETTE_LENGTH(640+1024) /* 640 real palette + 1024 virtual palette */ diff --git a/src/mame/drivers/clayshoo.c b/src/mame/drivers/clayshoo.c index 3bf9e0b6a6d..f8b4145b2a3 100644 --- a/src/mame/drivers/clayshoo.c +++ b/src/mame/drivers/clayshoo.c @@ -40,6 +40,7 @@ public: DECLARE_READ8_MEMBER(input_port_r); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_clayshoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -185,17 +186,16 @@ void clayshoo_state::machine_start() * *************************************/ -static SCREEN_UPDATE_RGB32( clayshoo ) +UINT32 clayshoo_state::screen_update_clayshoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - clayshoo_state *state = screen.machine().driver_data<clayshoo_state>(); offs_t offs; - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; UINT8 x = offs << 3; UINT8 y = ~(offs >> 5); - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; for (i = 0; i < 8; i++) { @@ -340,7 +340,7 @@ static MACHINE_CONFIG_START( clayshoo, clayshoo_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 64, 255) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_STATIC(clayshoo) + MCFG_SCREEN_UPDATE_DRIVER(clayshoo_state, screen_update_clayshoo) MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c index 1c19066ae3e..e10fde1444f 100644 --- a/src/mame/drivers/cloak.c +++ b/src/mame/drivers/cloak.c @@ -349,7 +349,7 @@ static MACHINE_CONFIG_START( cloak, cloak_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(cloak) + MCFG_SCREEN_UPDATE_DRIVER(cloak_state, screen_update_cloak) MCFG_GFXDECODE(cloak) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c index 0166aa9aee9..49d42bc88da 100644 --- a/src/mame/drivers/cloud9.c +++ b/src/mame/drivers/cloud9.c @@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( cloud9, cloud9_state ) MCFG_SCREEN_SIZE(HTOTAL, VTOTAL) MCFG_SCREEN_VBLANK_TIME(0) /* VBLANK is handled manually */ MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 231) - MCFG_SCREEN_UPDATE_STATIC(cloud9) + MCFG_SCREEN_UPDATE_DRIVER(cloud9_state, screen_update_cloud9) /* sound hardware */ diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c index 8c920d2760d..27c05b6ed1d 100644 --- a/src/mame/drivers/clshroad.c +++ b/src/mame/drivers/clshroad.c @@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( firebatl, clshroad_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x120, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1) - MCFG_SCREEN_UPDATE_STATIC(clshroad) + MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad) MCFG_GFXDECODE(firebatl) MCFG_PALETTE_LENGTH(512+64*4) @@ -277,7 +277,7 @@ static MACHINE_CONFIG_START( clshroad, clshroad_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x120, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1) - MCFG_SCREEN_UPDATE_STATIC(clshroad) + MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad) MCFG_GFXDECODE(clshroad) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/cmmb.c b/src/mame/drivers/cmmb.c index bb0f20ee12d..5b7fa965897 100644 --- a/src/mame/drivers/cmmb.c +++ b/src/mame/drivers/cmmb.c @@ -66,6 +66,7 @@ public: DECLARE_READ8_MEMBER(kludge_r); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -74,10 +75,9 @@ void cmmb_state::video_start() } -static SCREEN_UPDATE_IND16( cmmb ) +UINT32 cmmb_state::screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cmmb_state *state = screen.machine().driver_data<cmmb_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; gfx_element *gfx = screen.machine().gfx[0]; int count = 0x00000; @@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( cmmb, cmmb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // unknown MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(cmmb) + MCFG_SCREEN_UPDATE_DRIVER(cmmb_state, screen_update_cmmb) MCFG_GFXDECODE(cmmb) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c index 08093d90912..0190aa2a8a8 100644 --- a/src/mame/drivers/cninja.c +++ b/src/mame/drivers/cninja.c @@ -919,7 +919,7 @@ static MACHINE_CONFIG_START( cninja, cninja_state ) MCFG_SCREEN_REFRESH_RATE(58) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(cninja) + MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja) MCFG_GFXDECODE(cninja) MCFG_PALETTE_LENGTH(2048) @@ -971,7 +971,7 @@ static MACHINE_CONFIG_START( stoneage, cninja_state ) MCFG_SCREEN_REFRESH_RATE(58) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(cninja) + MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja) MCFG_GFXDECODE(cninja) MCFG_PALETTE_LENGTH(2048) @@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state ) MCFG_SCREEN_REFRESH_RATE(58) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(cninjabl) + MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl) MCFG_GFXDECODE(cninjabl) MCFG_PALETTE_LENGTH(2048) @@ -1066,7 +1066,7 @@ static MACHINE_CONFIG_START( edrandy, cninja_state ) MCFG_SCREEN_REFRESH_RATE(58) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(edrandy) + MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_edrandy) MCFG_GFXDECODE(cninja) MCFG_PALETTE_LENGTH(2048) @@ -1118,7 +1118,7 @@ static MACHINE_CONFIG_START( robocop2, cninja_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(robocop2) + MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_robocop2) MCFG_GFXDECODE(robocop2) MCFG_PALETTE_LENGTH(2048) @@ -1171,7 +1171,7 @@ static MACHINE_CONFIG_START( mutantf, cninja_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(mutantf) + MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_mutantf) MCFG_VIDEO_START_OVERRIDE(cninja_state,mutantf) diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c index a192b424b3e..aab0610ed8a 100644 --- a/src/mame/drivers/cntsteer.c +++ b/src/mame/drivers/cntsteer.c @@ -90,6 +90,8 @@ public: DECLARE_MACHINE_RESET(zerotrgt); DECLARE_VIDEO_START(zerotrgt); DECLARE_PALETTE_INIT(zerotrgt); + UINT32 screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -278,19 +280,18 @@ static void cntsteer_draw_sprites( running_machine &machine, bitmap_ind16 &bitma } } -static SCREEN_UPDATE_IND16( zerotrgt ) +UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cntsteer_state *state = screen.machine().driver_data<cntsteer_state>(); - if (state->m_disable_roz) - bitmap.fill(screen.machine().pens[8 * state->m_bg_color_bank], cliprect); + if (m_disable_roz) + bitmap.fill(screen.machine().pens[8 * m_bg_color_bank], cliprect); else { int p1, p2, p3, p4; int rot_val, x, y; - rot_val = state->m_rotation_sign ? (-state->m_rotation_x) : (state->m_rotation_x); + rot_val = m_rotation_sign ? (-m_rotation_x) : (m_rotation_x); -// popmessage("%d %02x %02x", rot_val, state->m_rotation_sign, state->m_rotation_x); +// popmessage("%d %02x %02x", rot_val, m_rotation_sign, m_rotation_x); if (rot_val > 90) { rot_val = 90; } if (rot_val < -90) { rot_val = -90; } @@ -312,10 +313,10 @@ static SCREEN_UPDATE_IND16( zerotrgt ) p3 = 65536 * 1 * sin(2 * M_PI * (rot_val) / 1024); p4 = -65536 * 1 * cos(2 * M_PI * (rot_val) / 1024); - x = -256 - (state->m_scrollx | state->m_scrollx_hi); - y = 256 + (state->m_scrolly | state->m_scrolly_hi); + x = -256 - (m_scrollx | m_scrollx_hi); + y = 256 + (m_scrolly | m_scrolly_hi); - state->m_bg_tilemap->draw_roz(bitmap, cliprect, + m_bg_tilemap->draw_roz(bitmap, cliprect, (x << 16), (y << 16), p1, p2, p3, p4, @@ -324,25 +325,24 @@ static SCREEN_UPDATE_IND16( zerotrgt ) } zerotrgt_draw_sprites(screen.machine(), bitmap, cliprect); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } -static SCREEN_UPDATE_IND16( cntsteer ) +UINT32 cntsteer_state::screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cntsteer_state *state = screen.machine().driver_data<cntsteer_state>(); - if (state->m_disable_roz) - bitmap.fill(screen.machine().pens[8 * state->m_bg_color_bank], cliprect); + if (m_disable_roz) + bitmap.fill(screen.machine().pens[8 * m_bg_color_bank], cliprect); else { int p1, p2, p3, p4; int rot_val, x, y; - rot_val = (state->m_rotation_x) | ((state->m_rotation_sign & 3) << 8); - rot_val = (state->m_rotation_sign & 4) ? (rot_val) : (-rot_val); -// popmessage("%d %02x %02x", rot_val, state->m_rotation_sign, state->m_rotation_x); + rot_val = (m_rotation_x) | ((m_rotation_sign & 3) << 8); + rot_val = (m_rotation_sign & 4) ? (rot_val) : (-rot_val); +// popmessage("%d %02x %02x", rot_val, m_rotation_sign, m_rotation_x); /* (u, v) = (a + cx + dy, b - dx + cy) when (x, y)=screen and (u, v) = tilemap @@ -361,10 +361,10 @@ static SCREEN_UPDATE_IND16( cntsteer ) p3 = 65536 * 1 * sin(2 * M_PI * (rot_val) / 1024); p4 = -65536 * 1 * cos(2 * M_PI * (rot_val) / 1024); - x = 256 + (state->m_scrollx | state->m_scrollx_hi); - y = 256 - (state->m_scrolly | state->m_scrolly_hi); + x = 256 + (m_scrollx | m_scrollx_hi); + y = 256 - (m_scrolly | m_scrolly_hi); - state->m_bg_tilemap->draw_roz(bitmap, cliprect, + m_bg_tilemap->draw_roz(bitmap, cliprect, (x << 16), (y << 16), p1, p2, p3, p4, @@ -373,7 +373,7 @@ static SCREEN_UPDATE_IND16( cntsteer ) } cntsteer_draw_sprites(screen.machine(), bitmap, cliprect); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -902,7 +902,7 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(cntsteer) + MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_cntsteer) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) @@ -951,7 +951,7 @@ static MACHINE_CONFIG_START( zerotrgt, cntsteer_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(zerotrgt) + MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_zerotrgt) MCFG_GFXDECODE(zerotrgt) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c index 35a5d884020..e5a21e411f1 100644 --- a/src/mame/drivers/cobra.c +++ b/src/mame/drivers/cobra.c @@ -720,6 +720,7 @@ public: DECLARE_DRIVER_INIT(cobra); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_cobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; void cobra_renderer::render_color_scan(INT32 scanline, const extent_t &extent, const cobra_polydata &extradata, int threadid) @@ -994,11 +995,10 @@ void cobra_state::video_start() m_renderer->gfx_init(machine()); } -SCREEN_UPDATE_RGB32( cobra ) +UINT32 cobra_state::screen_update_cobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - cobra_state *cobra = screen.machine().driver_data<cobra_state>(); - if (cobra->m_has_psac) + if (m_has_psac) { device_t *k001604 = screen.machine().device("k001604"); @@ -1006,7 +1006,7 @@ SCREEN_UPDATE_RGB32( cobra ) k001604_draw_front_layer(k001604, bitmap, cliprect); } - cobra->m_renderer->display(&bitmap, cliprect); + m_renderer->display(&bitmap, cliprect); return 0; } @@ -3260,7 +3260,7 @@ static MACHINE_CONFIG_START( cobra, cobra_state ) MCFG_SCREEN_SIZE(512, 400) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399) MCFG_PALETTE_LENGTH(65536) - MCFG_SCREEN_UPDATE_STATIC(cobra) + MCFG_SCREEN_UPDATE_DRIVER(cobra_state, screen_update_cobra) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c index e07d5a7b4df..037676af032 100644 --- a/src/mame/drivers/coinmstr.c +++ b/src/mame/drivers/coinmstr.c @@ -55,6 +55,7 @@ public: DECLARE_DRIVER_INIT(coinmstr); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); + UINT32 screen_update_coinmstr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -920,10 +921,9 @@ void coinmstr_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(coinmstr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 46, 32); } -static SCREEN_UPDATE_IND16( coinmstr ) +UINT32 coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - coinmstr_state *state = screen.machine().driver_data<coinmstr_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -1022,7 +1022,7 @@ static MACHINE_CONFIG_START( coinmstr, coinmstr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 46*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(coinmstr) + MCFG_SCREEN_UPDATE_DRIVER(coinmstr_state, screen_update_coinmstr) MCFG_GFXDECODE(coinmstr) MCFG_PALETTE_LENGTH(46*32*4) diff --git a/src/mame/drivers/coinmvga.c b/src/mame/drivers/coinmvga.c index 8185c9f09fb..9b7894aedcc 100644 --- a/src/mame/drivers/coinmvga.c +++ b/src/mame/drivers/coinmvga.c @@ -236,6 +236,7 @@ public: DECLARE_DRIVER_INIT(cmrltv75); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -249,9 +250,8 @@ void coinmvga_state::video_start() } -static SCREEN_UPDATE_IND16( coinmvga ) +UINT32 coinmvga_state::screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - coinmvga_state *state = screen.machine().driver_data<coinmvga_state>(); gfx_element *gfx = screen.machine().gfx[0]; int count = 0x04000/2; @@ -262,7 +262,7 @@ static SCREEN_UPDATE_IND16( coinmvga ) { for (x=0;x<128;x++) { - int tile = state->m_vram[count]; + int tile = m_vram[count]; //int colour = tile>>12; drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); @@ -683,7 +683,7 @@ static MACHINE_CONFIG_START( coinmvga, coinmvga_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(640,480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_STATIC(coinmvga) + MCFG_SCREEN_UPDATE_DRIVER(coinmvga_state, screen_update_coinmvga) MCFG_GFXDECODE(coinmvga) diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c index 8b1012fd21f..f29aff33055 100644 --- a/src/mame/drivers/combatsc.c +++ b/src/mame/drivers/combatsc.c @@ -750,7 +750,7 @@ static MACHINE_CONFIG_START( combatsc, combatsc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(combatsc) + MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatsc) MCFG_GFXDECODE(combatsc) MCFG_PALETTE_LENGTH(8*16*16) @@ -801,7 +801,7 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(combatscb) + MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatscb) MCFG_GFXDECODE(combatscb) MCFG_PALETTE_LENGTH(8*16*16) diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c index 1205396936d..d8af16cd562 100644 --- a/src/mame/drivers/commando.c +++ b/src/mame/drivers/commando.c @@ -260,7 +260,7 @@ static MACHINE_CONFIG_START( commando, commando_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(commando) + MCFG_SCREEN_UPDATE_DRIVER(commando_state, screen_update_commando) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(commando) diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c index 098892bbfc4..2ce772f68b1 100644 --- a/src/mame/drivers/compgolf.c +++ b/src/mame/drivers/compgolf.c @@ -257,7 +257,7 @@ static MACHINE_CONFIG_START( compgolf, compgolf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(1*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(compgolf) + MCFG_SCREEN_UPDATE_DRIVER(compgolf_state, screen_update_compgolf) MCFG_PALETTE_LENGTH(0x100) MCFG_GFXDECODE(compgolf) diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c index 7d9d77ad2a7..8d98e8ac490 100644 --- a/src/mame/drivers/contra.c +++ b/src/mame/drivers/contra.c @@ -206,7 +206,7 @@ static MACHINE_CONFIG_START( contra, contra_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(37*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(contra) + MCFG_SCREEN_UPDATE_DRIVER(contra_state, screen_update_contra) MCFG_GFXDECODE(contra) MCFG_PALETTE_LENGTH(2*8*16*16) diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c index 62c8900adfc..dd2e175c5a2 100644 --- a/src/mame/drivers/coolridr.c +++ b/src/mame/drivers/coolridr.c @@ -319,6 +319,7 @@ public: DECLARE_DRIVER_INIT(coolridr); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_coolridr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -331,9 +332,8 @@ void coolridr_state::video_start() m_test_offs = 0x2000; } -static SCREEN_UPDATE_RGB32(coolridr) +UINT32 coolridr_state::screen_update_coolridr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - coolridr_state *state = screen.machine().driver_data<coolridr_state>(); /* planes seems to basically be at 0x8000 and 0x28000... */ gfx_element *gfx = screen.machine().gfx[2]; UINT32 count; @@ -341,35 +341,35 @@ static SCREEN_UPDATE_RGB32(coolridr) if(screen.machine().input().code_pressed(KEYCODE_Z)) - state->m_test_offs+=4; + m_test_offs+=4; if(screen.machine().input().code_pressed(KEYCODE_X)) - state->m_test_offs-=4; + m_test_offs-=4; if(screen.machine().input().code_pressed(KEYCODE_C)) - state->m_test_offs+=0x40; + m_test_offs+=0x40; if(screen.machine().input().code_pressed(KEYCODE_V)) - state->m_test_offs-=0x40; + m_test_offs-=0x40; if(screen.machine().input().code_pressed(KEYCODE_B)) - state->m_test_offs+=0x400; + m_test_offs+=0x400; if(screen.machine().input().code_pressed(KEYCODE_N)) - state->m_test_offs-=0x400; + m_test_offs-=0x400; if(screen.machine().input().code_pressed_once(KEYCODE_A)) - state->m_color++; + m_color++; if(screen.machine().input().code_pressed_once(KEYCODE_S)) - state->m_color--; + m_color--; - if(state->m_test_offs > 0x100000*4) - state->m_test_offs = 0; + if(m_test_offs > 0x100000*4) + m_test_offs = 0; - count = state->m_test_offs/4; + count = m_test_offs/4; - popmessage("%08x %04x",state->m_test_offs,state->m_color); + popmessage("%08x %04x",m_test_offs,m_color); for (y=0;y<64;y++) { @@ -377,18 +377,18 @@ static SCREEN_UPDATE_RGB32(coolridr) { int tile; - tile = (state->m_h1_vram[count] & 0x0fff0000) >> 16; - drawgfx_opaque(bitmap,cliprect,gfx,tile,state->m_color,0,0,(x+0)*16,y*16); + tile = (m_h1_vram[count] & 0x0fff0000) >> 16; + drawgfx_opaque(bitmap,cliprect,gfx,tile,m_color,0,0,(x+0)*16,y*16); - tile = (state->m_h1_vram[count] & 0x00000fff) >> 0; - drawgfx_opaque(bitmap,cliprect,gfx,tile,state->m_color,0,0,(x+1)*16,y*16); + tile = (m_h1_vram[count] & 0x00000fff) >> 0; + drawgfx_opaque(bitmap,cliprect,gfx,tile,m_color,0,0,(x+1)*16,y*16); count++; } } - copybitmap_trans(bitmap, state->m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0); - state->m_temp_bitmap_sprites.fill(0, cliprect); + copybitmap_trans(bitmap, m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0); + m_temp_bitmap_sprites.fill(0, cliprect); return 0; @@ -1181,7 +1181,7 @@ static MACHINE_CONFIG_START( coolridr, coolridr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(128*8+22, 64*8+44) MCFG_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 64*8-1) //TODO: these are just two different screens - MCFG_SCREEN_UPDATE_STATIC(coolridr) + MCFG_SCREEN_UPDATE_DRIVER(coolridr_state, screen_update_coolridr) MCFG_PALETTE_LENGTH(0x10000) diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c index f070434e0d4..c2866446810 100644 --- a/src/mame/drivers/cop01.c +++ b/src/mame/drivers/cop01.c @@ -467,7 +467,7 @@ static MACHINE_CONFIG_START( cop01, cop01_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cop01) + MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01) MCFG_GFXDECODE(cop01) MCFG_PALETTE_LENGTH(16+8*16+16*16) @@ -505,7 +505,7 @@ static MACHINE_CONFIG_START( mightguy, cop01_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cop01) + MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01) MCFG_GFXDECODE(cop01) MCFG_PALETTE_LENGTH(16+8*16+16*16) diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c index e487ee47451..dfd66ffa2a1 100644 --- a/src/mame/drivers/copsnrob.c +++ b/src/mame/drivers/copsnrob.c @@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( copsnrob, copsnrob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1) - MCFG_SCREEN_UPDATE_STATIC(copsnrob) + MCFG_SCREEN_UPDATE_DRIVER(copsnrob_state, screen_update_copsnrob) MCFG_GFXDECODE(copsnrob) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c index a9244202bcb..4ba6d045b85 100644 --- a/src/mame/drivers/corona.c +++ b/src/mame/drivers/corona.c @@ -348,6 +348,8 @@ public: DECLARE_WRITE8_MEMBER(ay_port_b_out); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_winner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_luckyrlt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -459,26 +461,24 @@ void corona_state::video_start() m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE); } -static SCREEN_UPDATE_IND16(winner) +UINT32 corona_state::screen_update_winner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - corona_state *state = screen.machine().driver_data<corona_state>(); int x, y; for (y = 0; y < 256; y++) for (x = 0; x < 256; x++) - bitmap.pix16(y, x) = state->m_videobuf[y * 512 + x]; + bitmap.pix16(y, x) = m_videobuf[y * 512 + x]; return 0; } -static SCREEN_UPDATE_IND16(luckyrlt) +UINT32 corona_state::screen_update_luckyrlt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - corona_state *state = screen.machine().driver_data<corona_state>(); int x, y; for (y = 0; y < 256; y++) for (x = 0; x < 256; x++) - bitmap.pix16(255 - y, x) = state->m_videobuf[y * 512 + x]; + bitmap.pix16(255 - y, x) = m_videobuf[y * 512 + x]; return 0; } @@ -1374,7 +1374,7 @@ static MACHINE_CONFIG_START( winner81, corona_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(winner) + MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner) MCFG_PALETTE_LENGTH(0x100) @@ -1405,7 +1405,7 @@ static MACHINE_CONFIG_START( winner82, corona_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(winner) + MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner) MCFG_PALETTE_LENGTH(0x100) @@ -1436,7 +1436,7 @@ static MACHINE_CONFIG_START( re800, corona_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(winner) + MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner) MCFG_PALETTE_LENGTH(0x100) @@ -1466,7 +1466,7 @@ static MACHINE_CONFIG_START( rcirulet, corona_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(winner) + MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner) MCFG_PALETTE_LENGTH(0x100) @@ -1497,7 +1497,7 @@ static MACHINE_CONFIG_START( luckyrlt, corona_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(luckyrlt) + MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_luckyrlt) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c index 1a53b11d941..0bd0a1fb3e1 100644 --- a/src/mame/drivers/cosmic.c +++ b/src/mame/drivers/cosmic.c @@ -1025,7 +1025,7 @@ static MACHINE_CONFIG_DERIVED( panic, cosmic ) MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,panic) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(panic) + MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_panic) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1050,7 +1050,7 @@ static MACHINE_CONFIG_DERIVED( cosmica, cosmic ) MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmica) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(cosmica) + MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmica) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1083,7 +1083,7 @@ static MACHINE_CONFIG_START( cosmicg, cosmic_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(cosmicg) + MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmicg) MCFG_PALETTE_LENGTH(16) @@ -1112,7 +1112,7 @@ static MACHINE_CONFIG_DERIVED( magspot, cosmic ) MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,magspot) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(magspot) + MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_magspot) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1128,7 +1128,7 @@ static MACHINE_CONFIG_DERIVED( devzone, magspot ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(devzone) + MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_devzone) MACHINE_CONFIG_END @@ -1144,7 +1144,7 @@ static MACHINE_CONFIG_DERIVED( nomnlnd, cosmic ) MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,nomnlnd) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(nomnlnd) + MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_nomnlnd) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index a247ee8280c..cf612f93c48 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -3067,8 +3067,8 @@ static MACHINE_CONFIG_START( cps1_10MHz, cps_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(cps1) - MCFG_SCREEN_VBLANK_STATIC(cps1) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) @@ -3151,8 +3151,8 @@ static MACHINE_CONFIG_START( cpspicb, cps_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(cps1) - MCFG_SCREEN_VBLANK_STATIC(cps1) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) @@ -3225,8 +3225,8 @@ static MACHINE_CONFIG_START( sf2mdt, cps_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(cps1) - MCFG_SCREEN_VBLANK_STATIC(cps1) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) @@ -3309,8 +3309,8 @@ static MACHINE_CONFIG_START( knightsb, cps_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(cps1) - MCFG_SCREEN_VBLANK_STATIC(cps1) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index e1602dfccfe..13c9b5fe56d 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -1241,8 +1241,8 @@ static MACHINE_CONFIG_START( cps2, cps_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_8MHz, 518, 64, 448, 259, 16, 240) - MCFG_SCREEN_UPDATE_STATIC(cps1) - MCFG_SCREEN_VBLANK_STATIC(cps1) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) /* Measured clocks: V = 59.6376Hz diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c index 267a211aede..4ab17fffbd4 100644 --- a/src/mame/drivers/cps3.c +++ b/src/mame/drivers/cps3.c @@ -933,9 +933,8 @@ static void cps3_draw_tilemapsprite_line(running_machine &machine, int tmnum, in } } -static SCREEN_UPDATE_RGB32(cps3) +UINT32 cps3_state::screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - cps3_state *state = screen.machine().driver_data<cps3_state>(); int y,x, count; attoseconds_t period = screen.frame_period().attoseconds; rectangle visarea = screen.visible_area(); @@ -951,27 +950,27 @@ static SCREEN_UPDATE_RGB32(cps3) /* registers are normally 002a006f 01ef01c6 widescreen mode = 00230076 026501c6 only SFIII2 uses widescreen, I don't know exactly which register controls it */ - if (((state->m_fullscreenzoom[1]&0xffff0000)>>16)==0x0265) + if (((m_fullscreenzoom[1]&0xffff0000)>>16)==0x0265) { - if (state->m_screenwidth!=496) + if (m_screenwidth!=496) { - state->m_screenwidth = 496; + m_screenwidth = 496; visarea.set(0, 496-1, 0, 224-1); screen.configure(496, 224, visarea, period); } } else { - if (state->m_screenwidth!=384) + if (m_screenwidth!=384) { - state->m_screenwidth = 384; + m_screenwidth = 384; visarea.set(0, 384-1, 0, 224-1); screen.configure(384, 224, visarea, period); } } - fullscreenzoomx = state->m_fullscreenzoom[3] & 0x000000ff; - fullscreenzoomy = state->m_fullscreenzoom[3] & 0x000000ff; + fullscreenzoomx = m_fullscreenzoom[3] & 0x000000ff; + fullscreenzoomy = m_fullscreenzoom[3] & 0x000000ff; /* clamp at 0x80, I don't know if this is accurate */ if (fullscreenzoomx>0x80) fullscreenzoomx = 0x80; if (fullscreenzoomy>0x80) fullscreenzoomy = 0x80; @@ -979,12 +978,12 @@ static SCREEN_UPDATE_RGB32(cps3) fszx = (fullscreenzoomx<<16)/0x40; fszy = (fullscreenzoomy<<16)/0x40; - state->m_renderbuffer_clip.min_x = 0; - state->m_renderbuffer_clip.max_x = ((state->m_screenwidth*fszx)>>16)-1; - state->m_renderbuffer_clip.min_y = 0; - state->m_renderbuffer_clip.max_y = ((224*fszx)>>16)-1; + m_renderbuffer_clip.min_x = 0; + m_renderbuffer_clip.max_x = ((m_screenwidth*fszx)>>16)-1; + m_renderbuffer_clip.min_y = 0; + m_renderbuffer_clip.max_y = ((224*fszx)>>16)-1; - state->m_renderbuffer_bitmap.fill(0, state->m_renderbuffer_clip); + m_renderbuffer_bitmap.fill(0, m_renderbuffer_clip); /* Sprites */ { @@ -993,37 +992,37 @@ static SCREEN_UPDATE_RGB32(cps3) //printf("Spritelist start:\n"); for (i=0x00000/4;i<0x2000/4;i+=4) { - int xpos = (state->m_spriteram[i+1]&0x03ff0000)>>16; - int ypos = state->m_spriteram[i+1]&0x000003ff; + int xpos = (m_spriteram[i+1]&0x03ff0000)>>16; + int ypos = m_spriteram[i+1]&0x000003ff; int j; - int gscroll = (state->m_spriteram[i+0]&0x70000000)>>28; - int length = (state->m_spriteram[i+0]&0x01ff0000)>>16; // how many entries in the sprite table - UINT32 start = (state->m_spriteram[i+0]&0x00007ff0)>>4; - - int whichbpp = (state->m_spriteram[i+2]&0x40000000)>>30; // not 100% sure if this is right, jojo title / characters - int whichpal = (state->m_spriteram[i+2]&0x20000000)>>29; - int global_xflip = (state->m_spriteram[i+2]&0x10000000)>>28; - int global_yflip = (state->m_spriteram[i+2]&0x08000000)>>27; - int global_alpha = (state->m_spriteram[i+2]&0x04000000)>>26; // alpha / shadow? set on sfiii2 shadows, and big black image in jojo intro - int global_bpp = (state->m_spriteram[i+2]&0x02000000)>>25; - int global_pal = (state->m_spriteram[i+2]&0x01ff0000)>>16; - - int gscrollx = (state->m_unk_vidregs[gscroll]&0x03ff0000)>>16; - int gscrolly = (state->m_unk_vidregs[gscroll]&0x000003ff)>>0; + int gscroll = (m_spriteram[i+0]&0x70000000)>>28; + int length = (m_spriteram[i+0]&0x01ff0000)>>16; // how many entries in the sprite table + UINT32 start = (m_spriteram[i+0]&0x00007ff0)>>4; + + int whichbpp = (m_spriteram[i+2]&0x40000000)>>30; // not 100% sure if this is right, jojo title / characters + int whichpal = (m_spriteram[i+2]&0x20000000)>>29; + int global_xflip = (m_spriteram[i+2]&0x10000000)>>28; + int global_yflip = (m_spriteram[i+2]&0x08000000)>>27; + int global_alpha = (m_spriteram[i+2]&0x04000000)>>26; // alpha / shadow? set on sfiii2 shadows, and big black image in jojo intro + int global_bpp = (m_spriteram[i+2]&0x02000000)>>25; + int global_pal = (m_spriteram[i+2]&0x01ff0000)>>16; + + int gscrollx = (m_unk_vidregs[gscroll]&0x03ff0000)>>16; + int gscrolly = (m_unk_vidregs[gscroll]&0x000003ff)>>0; start = (start * 0x100) >> 2; - if ((state->m_spriteram[i+0]&0xf0000000) == 0x80000000) + if ((m_spriteram[i+0]&0xf0000000) == 0x80000000) break; for (j=0;j<(length)*4;j+=4) { - UINT32 value1 = (state->m_spriteram[start+j+0]); - UINT32 value2 = (state->m_spriteram[start+j+1]); - UINT32 value3 = (state->m_spriteram[start+j+2]); + UINT32 value1 = (m_spriteram[start+j+0]); + UINT32 value2 = (m_spriteram[start+j+1]); + UINT32 value3 = (m_spriteram[start+j+2]); - //UINT8* srcdata = (UINT8*)state->m_char_ram; + //UINT8* srcdata = (UINT8*)m_char_ram; //UINT32 sourceoffset = (value1 >>14)&0x7fffff; int count; @@ -1061,7 +1060,7 @@ static SCREEN_UPDATE_RGB32(cps3) //int endline; //int height = (value3 & 0x7f000000)>>24; int uu; -// UINT32* tmapregs[4] = { state->m_tilemap20_regs_base, state->m_tilemap30_regs_base, state->m_tilemap40_regs_base, state->m_tilemap50_regs_base }; +// UINT32* tmapregs[4] = { m_tilemap20_regs_base, m_tilemap30_regs_base, m_tilemap40_regs_base, m_tilemap50_regs_base }; // UINT32* regs; // regs = tmapregs[tilemapnum]; //endline = value2; @@ -1083,7 +1082,7 @@ static SCREEN_UPDATE_RGB32(cps3) { for (uu=0;uu<1023;uu++) { - cps3_draw_tilemapsprite_line(screen.machine(), tilemapnum, uu, state->m_renderbuffer_bitmap, state->m_renderbuffer_clip ); + cps3_draw_tilemapsprite_line(screen.machine(), tilemapnum, uu, m_renderbuffer_bitmap, m_renderbuffer_clip ); } } bg_drawn[tilemapnum] = 1; @@ -1141,7 +1140,7 @@ static SCREEN_UPDATE_RGB32(cps3) if (current_ypos&0x200) current_ypos-=0x400; - //if ( (whichbpp) && (machine.primary_screen->frame_number() & 1)) continue; + //if ( (whichbpp) && (machine().primary_screen->frame_number() & 1)) continue; /* use the palette value from the main list or the sublists? */ if (whichpal) @@ -1170,11 +1169,11 @@ static SCREEN_UPDATE_RGB32(cps3) if (global_alpha || alpha) { - cps3_drawgfxzoom(state->m_renderbuffer_bitmap,state->m_renderbuffer_clip,screen.machine().gfx[1],realtileno,actualpal,0^flipx,0^flipy,current_xpos,current_ypos,CPS3_TRANSPARENCY_PEN_INDEX_BLEND,0,xinc,yinc, NULL, 0); + cps3_drawgfxzoom(m_renderbuffer_bitmap,m_renderbuffer_clip,screen.machine().gfx[1],realtileno,actualpal,0^flipx,0^flipy,current_xpos,current_ypos,CPS3_TRANSPARENCY_PEN_INDEX_BLEND,0,xinc,yinc, NULL, 0); } else { - cps3_drawgfxzoom(state->m_renderbuffer_bitmap,state->m_renderbuffer_clip,screen.machine().gfx[1],realtileno,actualpal,0^flipx,0^flipy,current_xpos,current_ypos,CPS3_TRANSPARENCY_PEN_INDEX,0,xinc,yinc, NULL, 0); + cps3_drawgfxzoom(m_renderbuffer_bitmap,m_renderbuffer_clip,screen.machine().gfx[1],realtileno,actualpal,0^flipx,0^flipy,current_xpos,current_ypos,CPS3_TRANSPARENCY_PEN_INDEX,0,xinc,yinc, NULL, 0); } count++; } @@ -1201,12 +1200,12 @@ static SCREEN_UPDATE_RGB32(cps3) for (rendery=0;rendery<224;rendery++) { dstbitmap = &bitmap.pix32(rendery); - srcbitmap = &state->m_renderbuffer_bitmap.pix32(srcy>>16); + srcbitmap = &m_renderbuffer_bitmap.pix32(srcy>>16); srcx=0; - for (renderx=0;renderx<state->m_screenwidth;renderx++) + for (renderx=0;renderx<m_screenwidth;renderx++) { - dstbitmap[renderx] = state->m_mame_colours[srcbitmap[srcx>>16]&0x1ffff]; + dstbitmap[renderx] = m_mame_colours[srcbitmap[srcx>>16]&0x1ffff]; srcx += fszx; } @@ -1218,26 +1217,26 @@ static SCREEN_UPDATE_RGB32(cps3) /* Copy the first 0x800 colours to be used for fg layer rendering */ // for (offset=0;offset<0x200;offset++) // { -// int palreadbase = (state->m_ss_pal_base << 9); -// palette_set_color(machine,offset,state->m_mame_colours[palreadbase+offset]); +// int palreadbase = (m_ss_pal_base << 9); +// palette_set_color(machine(),offset,m_mame_colours[palreadbase+offset]); // } // fg layer { // bank select? (sfiii2 intro) - if (state->m_ss_bank_base & 0x01000000) count = 0x000; + if (m_ss_bank_base & 0x01000000) count = 0x000; else count = 0x800; for (y=0;y<32;y++) { for (x=0;x<64;x++) { - UINT32 data = state->m_ss_ram[count]; // +0x800 = 2nd bank, used on sfiii2 intro.. + UINT32 data = m_ss_ram[count]; // +0x800 = 2nd bank, used on sfiii2 intro.. UINT32 tile = (data >> 16) & 0x1ff; int pal = (data&0x003f) >> 1; int flipx = (data & 0x0080) >> 7; int flipy = (data & 0x0040) >> 6; - pal += state->m_ss_pal_base << 5; + pal += m_ss_pal_base << 5; tile+=0x200; cps3_drawgfxzoom(bitmap, cliprect, screen.machine().gfx[0],tile,pal,flipx,flipy,x*8,y*8,CPS3_TRANSPARENCY_PEN,0,0x10000,0x10000,NULL,0); @@ -2506,7 +2505,7 @@ static MACHINE_CONFIG_START( cps3, cps3_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_60MHz/8, 486, 0, 384, 259, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(cps3) + MCFG_SCREEN_UPDATE_DRIVER(cps3_state, screen_update_cps3) /* Measured clocks: V = 59.5992Hz diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c index cd7cea200dd..a9d51f3416d 100644 --- a/src/mame/drivers/crbaloon.c +++ b/src/mame/drivers/crbaloon.c @@ -384,7 +384,7 @@ static MACHINE_CONFIG_START( crbaloon, crbaloon_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(crbaloon) + MCFG_SCREEN_UPDATE_DRIVER(crbaloon_state, screen_update_crbaloon) /* audio hardware */ MCFG_FRAGMENT_ADD(crbaloon_audio) diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c index 3593b6ddb73..34bd6a5e069 100644 --- a/src/mame/drivers/crimfght.c +++ b/src/mame/drivers/crimfght.c @@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(crimfght) + MCFG_SCREEN_UPDATE_DRIVER(crimfght_state, screen_update_crimfght) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c index 9468e8d49e3..2bc030be116 100644 --- a/src/mame/drivers/crospang.c +++ b/src/mame/drivers/crospang.c @@ -362,7 +362,7 @@ static MACHINE_CONFIG_START( crospang, crospang_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(crospang) + MCFG_SCREEN_UPDATE_DRIVER(crospang_state, screen_update_crospang) MCFG_PALETTE_LENGTH(0x300) MCFG_GFXDECODE(crospang) diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c index 5719f009a89..fb7c55d2ff2 100644 --- a/src/mame/drivers/crshrace.c +++ b/src/mame/drivers/crshrace.c @@ -475,8 +475,8 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(crshrace) - MCFG_SCREEN_VBLANK_STATIC(crshrace) + MCFG_SCREEN_UPDATE_DRIVER(crshrace_state, screen_update_crshrace) + MCFG_SCREEN_VBLANK_DRIVER(crshrace_state, screen_eof_crshrace) MCFG_GFXDECODE(crshrace) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c index dee733d7012..f41c72ed2eb 100644 --- a/src/mame/drivers/crystal.c +++ b/src/mame/drivers/crystal.c @@ -190,6 +190,8 @@ public: DECLARE_DRIVER_INIT(evosocc); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_crystal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_crystal(screen_device &screen, bool state); }; static void IntReq( running_machine &machine, int num ) @@ -647,9 +649,8 @@ static void SetVidReg( address_space &space, UINT16 reg, UINT16 val ) } -static SCREEN_UPDATE_IND16( crystal ) +UINT32 crystal_state::screen_update_crystal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - crystal_state *state = screen.machine().driver_data<crystal_state>(); address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); int DoFlip; @@ -664,18 +665,18 @@ static SCREEN_UPDATE_IND16( crystal ) if (GetVidReg(space, 0x8e) & 1) { - Front = (UINT16*) (state->m_frameram + B1 / 4); - Back = (UINT16*) (state->m_frameram + B0 / 4); + Front = (UINT16*) (m_frameram + B1 / 4); + Back = (UINT16*) (m_frameram + B0 / 4); } else { - Front = (UINT16*) (state->m_frameram + B0 / 4); - Back = (UINT16*) (state->m_frameram + B1 / 4); + Front = (UINT16*) (m_frameram + B0 / 4); + Back = (UINT16*) (m_frameram + B1 / 4); } Visible = (UINT16*) Front; // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros! - DrawDest = reinterpret_cast<UINT16 *>(state->m_frameram.target()); + DrawDest = reinterpret_cast<UINT16 *>(m_frameram.target()); if (GetVidReg(space, 0x8c) & 0x80) @@ -693,7 +694,7 @@ static SCREEN_UPDATE_IND16( crystal ) while ((head & 0x7ff) != (tail & 0x7ff)) { // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros! - DoFlip = vrender0_ProcessPacket(state->m_vr0video, 0x03800000 + head * 64, DrawDest, reinterpret_cast<UINT8*>(state->m_textureram.target())); + DoFlip = vrender0_ProcessPacket(m_vr0video, 0x03800000 + head * 64, DrawDest, reinterpret_cast<UINT8*>(m_textureram.target())); head++; head &= 0x7ff; if (DoFlip) @@ -710,12 +711,11 @@ static SCREEN_UPDATE_IND16( crystal ) return 0; } -static SCREEN_VBLANK(crystal) +void crystal_state::screen_eof_crystal(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - crystal_state *state = screen.machine().driver_data<crystal_state>(); address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); UINT16 head, tail; int DoFlip = 0; @@ -735,8 +735,8 @@ static SCREEN_VBLANK(crystal) SetVidReg(space, 0x82, head); if (DoFlip) { - if (state->m_FlipCount) - state->m_FlipCount--; + if (m_FlipCount) + m_FlipCount--; } } @@ -851,8 +851,8 @@ static MACHINE_CONFIG_START( crystal, crystal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(crystal) - MCFG_SCREEN_VBLANK_STATIC(crystal) + MCFG_SCREEN_UPDATE_DRIVER(crystal_state, screen_update_crystal) + MCFG_SCREEN_VBLANK_DRIVER(crystal_state, screen_eof_crystal) MCFG_VIDEO_VRENDER0_ADD("vr0", vr0video_config) diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c index b9e3f2b08d0..65211ca2d5e 100644 --- a/src/mame/drivers/cshooter.c +++ b/src/mame/drivers/cshooter.c @@ -119,6 +119,7 @@ public: virtual void video_start(); DECLARE_MACHINE_RESET(cshooter); DECLARE_MACHINE_RESET(airraid); + UINT32 screen_update_cshooter(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -150,17 +151,16 @@ void cshooter_state::video_start() m_txtilemap->set_transparent_pen(3); } -static SCREEN_UPDATE_IND16(cshooter) +UINT32 cshooter_state::screen_update_cshooter(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cshooter_state *state = screen.machine().driver_data<cshooter_state>(); bitmap.fill(0/*get_black_pen(screen.screen.machine(, cliprect))*/); - state->m_txtilemap->mark_all_dirty(); + m_txtilemap->mark_all_dirty(); //sprites { - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int i; - for(i=0;i<state->m_spriteram.bytes();i+=4) + for(i=0;i<m_spriteram.bytes();i+=4) { if(spriteram[i+3]!=0) { @@ -193,8 +193,8 @@ static SCREEN_UPDATE_IND16(cshooter) } } - state->m_txtilemap->mark_all_dirty(); - state->m_txtilemap->draw(bitmap, cliprect, 0,0); + m_txtilemap->mark_all_dirty(); + m_txtilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -452,7 +452,7 @@ static MACHINE_CONFIG_START( cshooter, cshooter_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16) - MCFG_SCREEN_UPDATE_STATIC(cshooter) + MCFG_SCREEN_UPDATE_DRIVER(cshooter_state, screen_update_cshooter) MCFG_GFXDECODE(cshooter) MCFG_PALETTE_LENGTH(0x1000) @@ -478,7 +478,7 @@ static MACHINE_CONFIG_START( airraid, cshooter_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16) - MCFG_SCREEN_UPDATE_STATIC(cshooter) + MCFG_SCREEN_UPDATE_DRIVER(cshooter_state, screen_update_cshooter) MCFG_GFXDECODE(cshooter) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c index 80e4748a8aa..97f6b29b2e6 100644 --- a/src/mame/drivers/cubeqst.c +++ b/src/mame/drivers/cubeqst.c @@ -56,6 +56,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -110,9 +111,8 @@ WRITE16_MEMBER(cubeqst_state::palette_w) } /* TODO: This is a simplified version of what actually happens */ -static SCREEN_UPDATE_RGB32( cubeqst ) +UINT32 cubeqst_state::screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - cubeqst_state *state = screen.machine().driver_data<cubeqst_state>(); int y; /* @@ -121,7 +121,7 @@ static SCREEN_UPDATE_RGB32( cubeqst ) */ /* Bit 3 selects LD/#GRAPHICS */ - bitmap.fill(state->m_colormap[255], cliprect); + bitmap.fill(m_colormap[255], cliprect); /* TODO: Add 1 for linebuffering? */ for (y = cliprect.min_y; y <= cliprect.max_y; ++y) @@ -133,7 +133,7 @@ static SCREEN_UPDATE_RGB32( cubeqst ) UINT32 pen; /* Zap the depth buffer */ - memset(state->m_depth_buffer, 0xff, 512); + memset(m_depth_buffer, 0xff, 512); /* Process all the spans on this scanline */ if (y < 256) @@ -170,13 +170,13 @@ static SCREEN_UPDATE_RGB32( cubeqst ) } /* Draw the span, testing for depth */ - pen = state->m_colormap[state->m_generic_paletteram_16[color]]; + pen = m_colormap[m_generic_paletteram_16[color]]; for (x = h1; x <= h2; ++x) { - if (!(state->m_depth_buffer[x] < depth)) + if (!(m_depth_buffer[x] < depth)) { dest[x] = pen; - state->m_depth_buffer[x] = depth; + m_depth_buffer[x] = depth; } } } @@ -532,7 +532,7 @@ static MACHINE_CONFIG_START( cubeqst, cubeqst_state ) MCFG_NVRAM_ADD_0FILL("nvram") MCFG_LASERDISC_SIMUTREK_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(CUBEQST_HBLANK, CUBEQST_VCOUNT, cubeqst) + MCFG_LASERDISC_OVERLAY_DRIVER(CUBEQST_HBLANK, CUBEQST_VCOUNT, cubeqst_state, screen_update_cubeqst) MCFG_LASERDISC_OVERLAY_CLIP(0, 320-1, 0, 256-8) MCFG_LASERDISC_OVERLAY_POSITION(0.002f, -0.018f) MCFG_LASERDISC_OVERLAY_SCALE(1.0f, 1.030f) diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c index ebc7d41f708..9c915e73ec7 100644 --- a/src/mame/drivers/cultures.c +++ b/src/mame/drivers/cultures.c @@ -56,6 +56,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_cultures(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -98,32 +99,31 @@ void cultures_state::video_start() m_bg2_tilemap->set_scrolldy(255, 0); } -static SCREEN_UPDATE_IND16( cultures ) +UINT32 cultures_state::screen_update_cultures(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cultures_state *state = screen.machine().driver_data<cultures_state>(); int attr; // tilemaps attributes - attr = (state->m_bg0_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg0_regs_y[3] & 1 ? TILEMAP_FLIPY : 0); - state->m_bg0_tilemap->set_flip(attr); + attr = (m_bg0_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg0_regs_y[3] & 1 ? TILEMAP_FLIPY : 0); + m_bg0_tilemap->set_flip(attr); - attr = (state->m_bg1_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg1_regs_y[3] & 1 ? TILEMAP_FLIPY : 0); - state->m_bg1_tilemap->set_flip(attr); + attr = (m_bg1_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg1_regs_y[3] & 1 ? TILEMAP_FLIPY : 0); + m_bg1_tilemap->set_flip(attr); - attr = (state->m_bg2_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg2_regs_y[3] & 1 ? TILEMAP_FLIPY : 0); - state->m_bg2_tilemap->set_flip(attr); + attr = (m_bg2_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg2_regs_y[3] & 1 ? TILEMAP_FLIPY : 0); + m_bg2_tilemap->set_flip(attr); // tilemaps scrolls - state->m_bg0_tilemap->set_scrollx(0, (state->m_bg0_regs_x[2] << 8) + state->m_bg0_regs_x[0]); - state->m_bg1_tilemap->set_scrollx(0, (state->m_bg1_regs_x[2] << 8) + state->m_bg1_regs_x[0]); - state->m_bg2_tilemap->set_scrollx(0, (state->m_bg2_regs_x[2] << 8) + state->m_bg2_regs_x[0]); - state->m_bg0_tilemap->set_scrolly(0, (state->m_bg0_regs_y[2] << 8) + state->m_bg0_regs_y[0]); - state->m_bg1_tilemap->set_scrolly(0, (state->m_bg1_regs_y[2] << 8) + state->m_bg1_regs_y[0]); - state->m_bg2_tilemap->set_scrolly(0, (state->m_bg2_regs_y[2] << 8) + state->m_bg2_regs_y[0]); + m_bg0_tilemap->set_scrollx(0, (m_bg0_regs_x[2] << 8) + m_bg0_regs_x[0]); + m_bg1_tilemap->set_scrollx(0, (m_bg1_regs_x[2] << 8) + m_bg1_regs_x[0]); + m_bg2_tilemap->set_scrollx(0, (m_bg2_regs_x[2] << 8) + m_bg2_regs_x[0]); + m_bg0_tilemap->set_scrolly(0, (m_bg0_regs_y[2] << 8) + m_bg0_regs_y[0]); + m_bg1_tilemap->set_scrolly(0, (m_bg1_regs_y[2] << 8) + m_bg1_regs_y[0]); + m_bg2_tilemap->set_scrolly(0, (m_bg2_regs_y[2] << 8) + m_bg2_regs_y[0]); - state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg0_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( cultures, cultures_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cultures) + MCFG_SCREEN_UPDATE_DRIVER(cultures_state, screen_update_cultures) MCFG_GFXDECODE(culture) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c index d2d18e32577..508d188e9bf 100644 --- a/src/mame/drivers/cvs.c +++ b/src/mame/drivers/cvs.c @@ -1068,7 +1068,7 @@ static MACHINE_CONFIG_START( cvs, cvs_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 1*8, 32*8-1) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1000)) - MCFG_SCREEN_UPDATE_STATIC(cvs) + MCFG_SCREEN_UPDATE_DRIVER(cvs_state, screen_update_cvs) MCFG_S2636_ADD("s2636_0", s2636_0_config) MCFG_S2636_ADD("s2636_1", s2636_1_config) diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c index bf4a7686b6e..e547255de08 100644 --- a/src/mame/drivers/cyberbal.c +++ b/src/mame/drivers/cyberbal.c @@ -457,13 +457,13 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(cyberbal_left) + MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal_left) MCFG_SCREEN_ADD("rscreen", RASTER) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(cyberbal_right) + MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal_right) MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal) @@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(cyberbal2p) + MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal2p) MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal2p) diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c index 74c468fa5fd..4e3e801c4d7 100644 --- a/src/mame/drivers/cybertnk.c +++ b/src/mame/drivers/cybertnk.c @@ -219,6 +219,8 @@ public: TILE_GET_INFO_MEMBER(get_tilemap1_tile_info); TILE_GET_INFO_MEMBER(get_tilemap2_tile_info); virtual void video_start(); + UINT32 screen_update_cybertnk_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_cybertnk_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /* tile format @@ -498,8 +500,8 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r return 0; } -static SCREEN_UPDATE_IND16( cybertnk_left ) { return update_screen(screen, bitmap, cliprect, 0); } -static SCREEN_UPDATE_IND16( cybertnk_right ) { return update_screen(screen, bitmap, cliprect, -256); } +UINT32 cybertnk_state::screen_update_cybertnk_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); } +UINT32 cybertnk_state::screen_update_cybertnk_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, -256); } WRITE16_MEMBER(cybertnk_state::tilemap0_vram_w) @@ -851,14 +853,14 @@ static MACHINE_CONFIG_START( cybertnk, cybertnk_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(cybertnk_left) + MCFG_SCREEN_UPDATE_DRIVER(cybertnk_state, screen_update_cybertnk_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(cybertnk_right) + MCFG_SCREEN_UPDATE_DRIVER(cybertnk_state, screen_update_cybertnk_right) MCFG_GFXDECODE(cybertnk) MCFG_PALETTE_LENGTH(0x4000) diff --git a/src/mame/drivers/cyclemb.c b/src/mame/drivers/cyclemb.c index 1a94a9c4f86..3f3ae5fd36b 100644 --- a/src/mame/drivers/cyclemb.c +++ b/src/mame/drivers/cyclemb.c @@ -119,6 +119,8 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -357,14 +359,14 @@ static void skydest_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co } } -static SCREEN_UPDATE_IND16( cyclemb ) +UINT32 cyclemb_state::screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { cyclemb_draw_tilemap(screen,bitmap,cliprect); cyclemb_draw_sprites(screen,bitmap,cliprect); return 0; } -static SCREEN_UPDATE_IND16( skydest ) +UINT32 cyclemb_state::screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); @@ -917,7 +919,7 @@ static MACHINE_CONFIG_START( cyclemb, cyclemb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cyclemb) + MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_cyclemb) MCFG_GFXDECODE(cyclemb) MCFG_PALETTE_LENGTH(256) @@ -938,7 +940,7 @@ static MACHINE_CONFIG_DERIVED( skydest, cyclemb ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(skydest) + MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_skydest) // MCFG_PALETTE_INIT_OVERRIDE(cyclemb_state,skydest) MACHINE_CONFIG_END diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c index 2797bf54779..55ed1a0d1bc 100644 --- a/src/mame/drivers/d9final.c +++ b/src/mame/drivers/d9final.c @@ -45,6 +45,7 @@ public: TILE_GET_INFO_MEMBER(get_sc0_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_d9final(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -66,10 +67,9 @@ void d9final_state::video_start() m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(d9final_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); } -static SCREEN_UPDATE_IND16(d9final) +UINT32 d9final_state::screen_update_d9final(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - d9final_state *state = screen.machine().driver_data<d9final_state>(); - state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -293,7 +293,7 @@ static MACHINE_CONFIG_START( d9final, d9final_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(d9final) + MCFG_SCREEN_UPDATE_DRIVER(d9final_state, screen_update_d9final) MCFG_GFXDECODE(d9final) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c index 82f8956c302..a91816783ed 100644 --- a/src/mame/drivers/dacholer.c +++ b/src/mame/drivers/dacholer.c @@ -89,6 +89,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(dacholer_state::get_bg_tile_info) @@ -151,24 +152,23 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16(dacholer) +UINT32 dacholer_state::screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dacholer_state *state = screen.machine().driver_data<dacholer_state>(); - if (state->flip_screen()) + if (flip_screen()) { - state->m_bg_tilemap->set_scrollx(0, 256 - state->m_scroll_x); - state->m_bg_tilemap->set_scrolly(0, 256 - state->m_scroll_y); + m_bg_tilemap->set_scrollx(0, 256 - m_scroll_x); + m_bg_tilemap->set_scrolly(0, 256 - m_scroll_y); } else { - state->m_bg_tilemap->set_scrollx(0, state->m_scroll_x); - state->m_bg_tilemap->set_scrolly(0, state->m_scroll_y); + m_bg_tilemap->set_scrollx(0, m_scroll_x); + m_bg_tilemap->set_scrolly(0, m_scroll_y); } - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -666,7 +666,7 @@ static MACHINE_CONFIG_START( dacholer, dacholer_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16) - MCFG_SCREEN_UPDATE_STATIC(dacholer) + MCFG_SCREEN_UPDATE_DRIVER(dacholer_state, screen_update_dacholer) MCFG_PALETTE_LENGTH(32) MCFG_GFXDECODE(dacholer) diff --git a/src/mame/drivers/dai3wksi.c b/src/mame/drivers/dai3wksi.c index e2ef3810bf6..50b0fe4dd11 100644 --- a/src/mame/drivers/dai3wksi.c +++ b/src/mame/drivers/dai3wksi.c @@ -67,6 +67,7 @@ public: DECLARE_WRITE8_MEMBER(dai3wksi_audio_3_w); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_dai3wksi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -128,31 +129,30 @@ static void dai3wksi_get_pens(pen_t *pens) } -static SCREEN_UPDATE_RGB32( dai3wksi ) +UINT32 dai3wksi_state::screen_update_dai3wksi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - dai3wksi_state *state = screen.machine().driver_data<dai3wksi_state>(); offs_t offs; pen_t pens[8]; dai3wksi_get_pens(pens); - for (offs = 0; offs < state->m_dai3wksi_videoram.bytes(); offs++) + for (offs = 0; offs < m_dai3wksi_videoram.bytes(); offs++) { offs_t i; UINT8 x = offs << 2; UINT8 y = offs >> 6; - UINT8 data = state->m_dai3wksi_videoram[offs]; + UINT8 data = m_dai3wksi_videoram[offs]; UINT8 color; - int value = (x >> 2) + ((y >> 5) << 6) + 64 * 8 * (state->m_dai3wksi_redterop ? 1 : 0); + int value = (x >> 2) + ((y >> 5) << 6) + 64 * 8 * (m_dai3wksi_redterop ? 1 : 0); - if (state->m_dai3wksi_redscreen) + if (m_dai3wksi_redscreen) { color = 0x02; } else { - if (state->ioport("IN2")->read() & 0x03) + if (ioport("IN2")->read() & 0x03) color = vr_prom2[value]; else color = vr_prom1[value]; @@ -162,7 +162,7 @@ static SCREEN_UPDATE_RGB32( dai3wksi ) { pen_t pen = (data & (1 << i)) ? pens[color] : pens[0]; - if (state->m_dai3wksi_flipscreen) + if (m_dai3wksi_flipscreen) bitmap.pix32(255-y, 255-x) = pen; else bitmap.pix32(y, x) = pen; @@ -599,7 +599,7 @@ static MACHINE_CONFIG_START( dai3wksi, dai3wksi_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(4, 251, 8, 247) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_STATIC(dai3wksi) + MCFG_SCREEN_UPDATE_DRIVER(dai3wksi_state, screen_update_dai3wksi) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/dambustr.c b/src/mame/drivers/dambustr.c index 226599175d0..74c8f683742 100644 --- a/src/mame/drivers/dambustr.c +++ b/src/mame/drivers/dambustr.c @@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( dambustr, dambustr_state ) MCFG_SCREEN_REFRESH_RATE(16000.0/132/2) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(dambustr) + MCFG_SCREEN_UPDATE_DRIVER(dambustr_state, screen_update_dambustr) MCFG_GFXDECODE(dambustr) MCFG_PALETTE_LENGTH(32+2+64+8) /* 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background */ diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c index d5eb171821e..cdf09e14c53 100644 --- a/src/mame/drivers/darius.c +++ b/src/mame/drivers/darius.c @@ -944,21 +944,21 @@ static MACHINE_CONFIG_START( darius, darius_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(darius_left) + MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_left) MCFG_SCREEN_ADD("mscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(darius_middle) + MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_middle) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(darius_right) + MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_right) MCFG_PC080SN_ADD("pc080sn", darius_pc080sn_intf) diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c index f6f4cdd8320..36dcb921d64 100644 --- a/src/mame/drivers/darkmist.c +++ b/src/mame/drivers/darkmist.c @@ -242,7 +242,7 @@ static MACHINE_CONFIG_START( darkmist, darkmist_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(darkmist) + MCFG_SCREEN_UPDATE_DRIVER(darkmist_state, screen_update_darkmist) MCFG_GFXDECODE(darkmist) MCFG_PALETTE_LENGTH(0x100*4) diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c index a708c68ffed..1585ae34e6f 100644 --- a/src/mame/drivers/darkseal.c +++ b/src/mame/drivers/darkseal.c @@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(darkseal) + MCFG_SCREEN_UPDATE_DRIVER(darkseal_state, screen_update_darkseal) MCFG_GFXDECODE(darkseal) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c index f35218f70ba..1cf0477cc63 100644 --- a/src/mame/drivers/dassault.c +++ b/src/mame/drivers/dassault.c @@ -524,7 +524,7 @@ static MACHINE_CONFIG_START( dassault, dassault_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(dassault) + MCFG_SCREEN_UPDATE_DRIVER(dassault_state, screen_update_dassault) MCFG_GFXDECODE(dassault) diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c index 2217562beca..e507200b6a0 100644 --- a/src/mame/drivers/dblewing.c +++ b/src/mame/drivers/dblewing.c @@ -83,6 +83,7 @@ public: DECLARE_DRIVER_INIT(dblewing); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; UINT16 dblwings_pri_callback(UINT16 x) @@ -101,21 +102,20 @@ UINT16 dblwings_pri_callback(UINT16 x) -static SCREEN_UPDATE_IND16(dblewing) +UINT32 dblewing_state::screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dblewing_state *state = screen.machine().driver_data<dblewing_state>(); - address_space &space = state->generic_space(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); + address_space &space = generic_space(); + UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff); - state->flip_screen_set(BIT(flip, 7)); - deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); + flip_screen_set(BIT(flip, 7)); + deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll); bitmap.fill(0, cliprect); /* not Confirmed */ screen.machine().priority_bitmap.fill(0); - deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2); - deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400); + deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2); + deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; } @@ -656,7 +656,7 @@ static MACHINE_CONFIG_START( dblewing, dblewing_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(dblewing) + MCFG_SCREEN_UPDATE_DRIVER(dblewing_state, screen_update_dblewing) MCFG_PALETTE_LENGTH(4096) MCFG_GFXDECODE(dblewing) diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c index 399db0b6fa1..ddd17c846f1 100644 --- a/src/mame/drivers/dbz.c +++ b/src/mame/drivers/dbz.c @@ -398,7 +398,7 @@ static MACHINE_CONFIG_START( dbz, dbz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 40*8) MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(dbz) + MCFG_SCREEN_UPDATE_DRIVER(dbz_state, screen_update_dbz) MCFG_GFXDECODE(dbz) diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c index b64d531f0c7..108bf01894d 100644 --- a/src/mame/drivers/dcheese.c +++ b/src/mame/drivers/dcheese.c @@ -424,7 +424,7 @@ static MACHINE_CONFIG_START( dcheese, dcheese_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(360, 262) /* guess, need to see what the games write to the vid registers */ MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(dcheese) + MCFG_SCREEN_UPDATE_DRIVER(dcheese_state, screen_update_dcheese) MCFG_PALETTE_LENGTH(65534) diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c index 6ad41b36733..e884a3ea95f 100644 --- a/src/mame/drivers/dcon.c +++ b/src/mame/drivers/dcon.c @@ -263,7 +263,7 @@ static MACHINE_CONFIG_START( dcon, dcon_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(dcon) + MCFG_SCREEN_UPDATE_DRIVER(dcon_state, screen_update_dcon) MCFG_GFXDECODE(dcon) MCFG_PALETTE_LENGTH(2048) @@ -290,7 +290,7 @@ static MACHINE_CONFIG_START( sdgndmps, dcon_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(sdgndmps) + MCFG_SCREEN_UPDATE_DRIVER(dcon_state, screen_update_sdgndmps) MCFG_GFXDECODE(dcon) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/dday.c b/src/mame/drivers/dday.c index c0e5d3f471e..2ace7e0419a 100644 --- a/src/mame/drivers/dday.c +++ b/src/mame/drivers/dday.c @@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( dday, dday_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(dday) + MCFG_SCREEN_UPDATE_DRIVER(dday_state, screen_update_dday) MCFG_GFXDECODE(dday) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c index d792b12a757..5c48cda7b98 100644 --- a/src/mame/drivers/ddayjlc.c +++ b/src/mame/drivers/ddayjlc.c @@ -105,6 +105,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -388,18 +389,17 @@ void ddayjlc_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( ddayjlc ) +UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - ddayjlc_state *state = screen.machine().driver_data<ddayjlc_state>(); UINT32 i; - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); for (i = 0; i < 0x400; i += 4) { - UINT8 flags = state->m_spriteram[i + 2]; - UINT8 y = 256 - state->m_spriteram[i + 0] - 8; - UINT16 code = state->m_spriteram[i + 1]; - UINT8 x = state->m_spriteram[i + 3] - 16; + UINT8 flags = m_spriteram[i + 2]; + UINT8 y = 256 - m_spriteram[i + 0] - 8; + UINT16 code = m_spriteram[i + 1]; + UINT8 x = m_spriteram[i + 3] - 16; UINT8 xflip = flags & 0x80; UINT8 yflip = (code & 0x80); UINT8 color = flags & 0xf; @@ -415,11 +415,11 @@ static SCREEN_UPDATE_IND16( ddayjlc ) for (y = 0; y < 32; y++) for (x = 0; x < 32; x++) { - c = state->m_videoram[y * 32 + x]; + c = m_videoram[y * 32 + x]; if (x > 1 && x < 30) - drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], c + state->m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0); + drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0); else - drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], c + state->m_char_bank * 0x100, 2, 0, 0, x*8, y*8); + drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8); } } return 0; @@ -533,7 +533,7 @@ static MACHINE_CONFIG_START( ddayjlc, ddayjlc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(ddayjlc) + MCFG_SCREEN_UPDATE_DRIVER(ddayjlc_state, screen_update_ddayjlc) MCFG_GFXDECODE(ddayjlc) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c index ba8b85606b6..d19d69b21a3 100644 --- a/src/mame/drivers/ddealer.c +++ b/src/mame/drivers/ddealer.c @@ -156,6 +156,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_ddealer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -264,12 +265,11 @@ static void ddealer_draw_video_layer( running_machine &machine, UINT16* vreg_bas } -static SCREEN_UPDATE_IND16( ddealer ) +UINT32 ddealer_state::screen_update_ddealer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - ddealer_state *state = screen.machine().driver_data<ddealer_state>(); - state->m_back_tilemap->set_scrollx(0, state->m_flipscreen ? -192 : -64); - state->m_back_tilemap->set_flip(state->m_flipscreen ? TILEMAP_FLIPY | TILEMAP_FLIPX : 0); - state->m_back_tilemap->draw(bitmap, cliprect, 0, 0); + m_back_tilemap->set_scrollx(0, m_flipscreen ? -192 : -64); + m_back_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPY | TILEMAP_FLIPX : 0); + m_back_tilemap->draw(bitmap, cliprect, 0, 0); /* the fg tilemap handling is a little hacky right now, i'm not sure if it should be a single tilemap with @@ -277,28 +277,28 @@ static SCREEN_UPDATE_IND16( ddealer ) combined, the flipscreen case makes things more difficult to understand */ - if (!state->m_flipscreen) + if (!m_flipscreen) { - if (state->m_vregs[0xcc / 2] & 0x80) + if (m_vregs[0xcc / 2] & 0x80) { - ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0x1e0 / 2], state->m_left_fg_vram_top, state->m_left_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen); - ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0xcc / 2], state->m_right_fg_vram_top, state->m_right_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen); + ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen); + ddealer_draw_video_layer(screen.machine(), &m_vregs[0xcc / 2], m_right_fg_vram_top, m_right_fg_vram_bottom, bitmap, cliprect, m_flipscreen); } else { - ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0x1e0 / 2], state->m_left_fg_vram_top, state->m_left_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen); + ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen); } } else { - if (state->m_vregs[0xcc / 2] & 0x80) + if (m_vregs[0xcc / 2] & 0x80) { - ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0xcc / 2], state->m_left_fg_vram_top, state->m_left_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen); - ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0x1e0 / 2], state->m_right_fg_vram_top, state->m_right_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen); + ddealer_draw_video_layer(screen.machine(), &m_vregs[0xcc / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen); + ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_right_fg_vram_top, m_right_fg_vram_bottom, bitmap, cliprect, m_flipscreen); } else { - ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0x1e0 / 2], state->m_left_fg_vram_top, state->m_left_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen); + ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen); } } @@ -640,7 +640,7 @@ static MACHINE_CONFIG_START( ddealer, ddealer_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(ddealer) + MCFG_SCREEN_UPDATE_DRIVER(ddealer_state, screen_update_ddealer) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c index bc7d2bed0ec..650cbba36f0 100644 --- a/src/mame/drivers/ddenlovr.c +++ b/src/mame/drivers/ddenlovr.c @@ -1289,9 +1289,8 @@ static void copylayer(running_machine &machine, bitmap_ind16 &bitmap, const rect } } -SCREEN_UPDATE_IND16(ddenlovr) +UINT32 dynax_state::screen_update_ddenlovr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dynax_state *state = screen.machine().driver_data<dynax_state>(); static const int order[24][4] = { @@ -1303,22 +1302,22 @@ SCREEN_UPDATE_IND16(ddenlovr) int pri; - int enab = state->m_ddenlovr_layer_enable; - int enab2 = state->m_ddenlovr_layer_enable2; + int enab = m_ddenlovr_layer_enable; + int enab2 = m_ddenlovr_layer_enable2; #if 0 static int base = 0x0; const UINT8 *gfx = screen.machine().root_device().memregion("blitter")->base(); int next; - memset(state->m_ddenlovr_pixmap[0], 0, 512 * 512); - memset(state->m_ddenlovr_pixmap[1], 0, 512 * 512); - memset(state->m_ddenlovr_pixmap[2], 0, 512 * 512); - memset(state->m_ddenlovr_pixmap[3], 0, 512 * 512); - state->m_ddenlovr_dest_layer = 8; - state->m_ddenlovr_blit_pen = 0; - state->m_ddenlovr_blit_pen_mode = 0; - state->m_ddenlovr_blit_y = 5; - state->m_ddenlovr_clip_ctrl = 0x0f; + memset(m_ddenlovr_pixmap[0], 0, 512 * 512); + memset(m_ddenlovr_pixmap[1], 0, 512 * 512); + memset(m_ddenlovr_pixmap[2], 0, 512 * 512); + memset(m_ddenlovr_pixmap[3], 0, 512 * 512); + m_ddenlovr_dest_layer = 8; + m_ddenlovr_blit_pen = 0; + m_ddenlovr_blit_pen_mode = 0; + m_ddenlovr_blit_y = 5; + m_ddenlovr_clip_ctrl = 0x0f; next = blit_draw(screen.machine(), base, 0); popmessage("GFX %06x", base); if (screen.machine().input().code_pressed(KEYCODE_S)) base = next; @@ -1329,7 +1328,7 @@ SCREEN_UPDATE_IND16(ddenlovr) if (screen.machine().input().code_pressed_once(KEYCODE_F)) { base++; while ((gfx[base] & 0xf0) != 0x30) base++; } #endif - bitmap.fill(state->m_ddenlovr_bgcolor, cliprect); + bitmap.fill(m_ddenlovr_bgcolor, cliprect); #ifdef MAME_DEBUG if (screen.machine().input().code_pressed(KEYCODE_Z)) @@ -1345,7 +1344,7 @@ SCREEN_UPDATE_IND16(ddenlovr) mask2 = 0; - if (state->m_extra_layers) + if (m_extra_layers) { if (screen.machine().input().code_pressed(KEYCODE_A)) mask2 |= 1; if (screen.machine().input().code_pressed(KEYCODE_S)) mask2 |= 2; @@ -1355,13 +1354,13 @@ SCREEN_UPDATE_IND16(ddenlovr) if (mask || mask2) { - state->m_ddenlovr_layer_enable &= mask; - state->m_ddenlovr_layer_enable2 &= mask2; + m_ddenlovr_layer_enable &= mask; + m_ddenlovr_layer_enable2 &= mask2; } } #endif - pri = state->m_ddenlovr_priority; + pri = m_ddenlovr_priority; if (pri >= 24) { @@ -1374,9 +1373,9 @@ SCREEN_UPDATE_IND16(ddenlovr) copylayer(screen.machine(), bitmap, cliprect, order[pri][2]); copylayer(screen.machine(), bitmap, cliprect, order[pri][3]); - if (state->m_extra_layers) + if (m_extra_layers) { - pri = state->m_ddenlovr_priority2; + pri = m_ddenlovr_priority2; if (pri >= 24) { @@ -1390,8 +1389,8 @@ SCREEN_UPDATE_IND16(ddenlovr) copylayer(screen.machine(), bitmap, cliprect, order[pri][3] + 4); } - state->m_ddenlovr_layer_enable = enab; - state->m_ddenlovr_layer_enable2 = enab2; + m_ddenlovr_layer_enable = enab; + m_ddenlovr_layer_enable2 = enab2; return 0; } @@ -8513,7 +8512,7 @@ static MACHINE_CONFIG_START( ddenlovr, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x100) @@ -8637,7 +8636,7 @@ static MACHINE_CONFIG_START( quizchq, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256+22) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x100) @@ -8728,7 +8727,7 @@ static MACHINE_CONFIG_START( mmpanic, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256+22) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x100) @@ -8812,7 +8811,7 @@ static MACHINE_CONFIG_START( hanakanz, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256+22) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x200) @@ -9228,7 +9227,7 @@ static MACHINE_CONFIG_START( jongtei, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x200) @@ -9269,7 +9268,7 @@ static MACHINE_CONFIG_START( sryudens, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256+22) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x100) @@ -9314,7 +9313,7 @@ static MACHINE_CONFIG_START( janshinp, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256+22) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x100) @@ -9388,7 +9387,7 @@ static MACHINE_CONFIG_START( seljan2, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256+22) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x100) @@ -9435,7 +9434,7 @@ static MACHINE_CONFIG_START( daimyojn, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(336, 256+22) MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1, 256-15-1) - MCFG_SCREEN_UPDATE_STATIC(ddenlovr) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c index d4fb3043f1f..16bbeb7ad44 100644 --- a/src/mame/drivers/ddragon.c +++ b/src/mame/drivers/ddragon.c @@ -985,7 +985,7 @@ static MACHINE_CONFIG_START( ddragon, ddragon_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(ddragon) + MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon) MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon) @@ -1048,7 +1048,7 @@ static MACHINE_CONFIG_START( ddragon6809, ddragon_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(ddragon) + MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon) MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon) @@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_START( ddragon2, ddragon_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(ddragon) + MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon) MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon) diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c index 5571cf52db2..d95e036498c 100644 --- a/src/mame/drivers/ddragon3.c +++ b/src/mame/drivers/ddragon3.c @@ -602,7 +602,7 @@ static MACHINE_CONFIG_START( ddragon3, ddragon3_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 448, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ - MCFG_SCREEN_UPDATE_STATIC(ddragon3) + MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ddragon3) MCFG_GFXDECODE(ddragon3) MCFG_PALETTE_LENGTH(768) @@ -636,7 +636,7 @@ static MACHINE_CONFIG_DERIVED( ctribe, ddragon3 ) MCFG_CPU_PROGRAM_MAP(ctribe_sound_map) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(ctribe) + MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ctribe) MCFG_SOUND_MODIFY("ym2151") MCFG_SOUND_ROUTES_RESET() diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c index 85bca3ad893..ba59864cf75 100644 --- a/src/mame/drivers/ddribble.c +++ b/src/mame/drivers/ddribble.c @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( ddribble, ddribble_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) */ - MCFG_SCREEN_UPDATE_STATIC(ddribble) + MCFG_SCREEN_UPDATE_DRIVER(ddribble_state, screen_update_ddribble) MCFG_GFXDECODE(ddribble) MCFG_PALETTE_LENGTH(64 + 256) diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c index e473dcc7793..49cff3f5cb8 100644 --- a/src/mame/drivers/ddz.c +++ b/src/mame/drivers/ddz.c @@ -23,6 +23,8 @@ public: : driver_device(mconfig, type, tag) { } virtual void video_start(); + UINT32 screen_update_ddz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + void screen_eof_ddz(screen_device &screen, bool state); }; @@ -35,12 +37,12 @@ void ddz_state::video_start() } -static SCREEN_UPDATE_RGB32(ddz) +UINT32 ddz_state::screen_update_ddz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } -static SCREEN_VBLANK(ddz) +void ddz_state::screen_eof_ddz(screen_device &screen, bool state) { } @@ -75,8 +77,8 @@ static MACHINE_CONFIG_START( ddz, ddz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(ddz) - MCFG_SCREEN_VBLANK_STATIC(ddz) + MCFG_SCREEN_UPDATE_DRIVER(ddz_state, screen_update_ddz) + MCFG_SCREEN_VBLANK_DRIVER(ddz_state, screen_eof_ddz) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c index 49d89a689d9..451d1ef46c8 100644 --- a/src/mame/drivers/deadang.c +++ b/src/mame/drivers/deadang.c @@ -253,7 +253,7 @@ static MACHINE_CONFIG_START( deadang, deadang_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(deadang) + MCFG_SCREEN_UPDATE_DRIVER(deadang_state, screen_update_deadang) MCFG_GFXDECODE(deadang) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c index 5b7ef10c7b0..5a1ab49d6d3 100644 --- a/src/mame/drivers/dec0.c +++ b/src/mame/drivers/dec0.c @@ -1413,7 +1413,7 @@ static MACHINE_CONFIG_START( automat, dec0_automat_state ) // MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(automat) + MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_automat) MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) @@ -1466,7 +1466,7 @@ static MACHINE_CONFIG_START( secretab, dec0_automat_state ) // MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(secretab) + MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_secretab) MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) @@ -1525,7 +1525,7 @@ static MACHINE_CONFIG_DERIVED( hbarrel, dec0_base_sound ) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) //MCFG_SCREEN_SIZE(32*8, 32*8) //MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(hbarrel) + MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hbarrel) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( baddudes, dec0_base_sound ) @@ -1545,7 +1545,7 @@ static MACHINE_CONFIG_DERIVED( baddudes, dec0_base_sound ) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(baddudes) + MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_baddudes) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( birdtry, dec0_base_sound ) @@ -1565,7 +1565,7 @@ static MACHINE_CONFIG_DERIVED( birdtry, dec0_base_sound ) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(birdtry) + MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_birdtry) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound ) @@ -1590,7 +1590,7 @@ static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound ) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(robocop) + MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( robocopb, dec0_base_sound ) @@ -1610,7 +1610,7 @@ static MACHINE_CONFIG_DERIVED( robocopb, dec0_base_sound ) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(robocop) + MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound ) @@ -1635,7 +1635,7 @@ static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound ) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(hippodrm) + MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hippodrm) MACHINE_CONFIG_END MACHINE_RESET_MEMBER(dec0_state,slyspy) @@ -1661,7 +1661,7 @@ static MACHINE_CONFIG_DERIVED( slyspy, dec0_base_sound_alt ) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(slyspy) + MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_slyspy) MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) @@ -1688,7 +1688,7 @@ static MACHINE_CONFIG_DERIVED( midres, dec0_base_sound_alt ) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) // MCFG_SCREEN_SIZE(32*8, 32*8) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(midres) + MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_midres) MCFG_GFXDECODE(midres) MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c index 1e5a898dc0e..78da8e36dc5 100644 --- a/src/mame/drivers/dec8.c +++ b/src/mame/drivers/dec8.c @@ -66,14 +66,13 @@ WRITE8_MEMBER(dec8_state::dec8_mxc06_karn_buffer_spriteram_w) } /* Only used by ghostb, gondo, garyoret, other games can control buffering */ -static SCREEN_VBLANK( dec8 ) +void dec8_state::screen_eof_dec8(screen_device &screen, bool state) { - dec8_state *state = screen.machine().driver_data<dec8_state>(); // rising edge - if (vblank_on) + if (state) { address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - state->dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0); + dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0); } } @@ -2056,7 +2055,7 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(lastmisn) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn) MCFG_GFXDECODE(shackled) MCFG_PALETTE_LENGTH(1024) @@ -2103,7 +2102,7 @@ static MACHINE_CONFIG_START( shackled, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(shackled) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_shackled) MCFG_GFXDECODE(shackled) MCFG_PALETTE_LENGTH(1024) @@ -2150,8 +2149,8 @@ static MACHINE_CONFIG_START( gondo, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(gondo) - MCFG_SCREEN_VBLANK_STATIC(dec8) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_gondo) + MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8) MCFG_GFXDECODE(gondo) MCFG_PALETTE_LENGTH(1024) @@ -2198,8 +2197,8 @@ static MACHINE_CONFIG_START( garyoret, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(garyoret) - MCFG_SCREEN_VBLANK_STATIC(dec8) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_garyoret) + MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8) MCFG_GFXDECODE(gondo) MCFG_PALETTE_LENGTH(1024) @@ -2249,8 +2248,8 @@ static MACHINE_CONFIG_START( ghostb, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(ghostb) - MCFG_SCREEN_VBLANK_STATIC(dec8) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_ghostb) + MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8) MCFG_GFXDECODE(ghostb) MCFG_PALETTE_LENGTH(1024) @@ -2299,7 +2298,7 @@ static MACHINE_CONFIG_START( csilver, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(lastmisn) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn) MCFG_GFXDECODE(shackled) MCFG_PALETTE_LENGTH(1024) @@ -2354,7 +2353,7 @@ static MACHINE_CONFIG_START( oscar, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(oscar) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_oscar) MCFG_GFXDECODE(oscar) MCFG_PALETTE_LENGTH(512) @@ -2395,7 +2394,7 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(srdarwin) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_srdarwin) MCFG_GFXDECODE(srdarwin) MCFG_PALETTE_LENGTH(144) @@ -2445,7 +2444,7 @@ static MACHINE_CONFIG_START( cobracom, dec8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(cobracom) + MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_cobracom) MCFG_GFXDECODE(cobracom) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c index f3b26a479e4..ce487616e59 100644 --- a/src/mame/drivers/deco156.c +++ b/src/mame/drivers/deco156.c @@ -54,6 +54,7 @@ public: DECLARE_DRIVER_INIT(hvysmsh); DECLARE_DRIVER_INIT(wcvol95); virtual void video_start(); + UINT32 screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -68,20 +69,19 @@ void deco156_state::video_start() } -static SCREEN_UPDATE_RGB32( wcvol95 ) +UINT32 deco156_state::screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { //FIXME: flip_screen_x should not be written! - deco156_state *state = screen.machine().driver_data<deco156_state>(); - state->flip_screen_set_no_update(1); + flip_screen_set_no_update(1); screen.machine().priority_bitmap.fill(0); bitmap.fill(0); - deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); + deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll); - deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x800); - deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0); + deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x800); + deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0); return 0; } @@ -363,7 +363,7 @@ static MACHINE_CONFIG_START( hvysmsh, deco156_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(wcvol95) + MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95) MCFG_GFXDECODE(hvysmsh) MCFG_PALETTE_LENGTH(1024) @@ -400,7 +400,7 @@ static MACHINE_CONFIG_START( wcvol95, deco156_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(wcvol95) + MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95) MCFG_GFXDECODE(hvysmsh) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index 9d4d573a8bb..6c6c2377686 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -1748,8 +1748,8 @@ static MACHINE_CONFIG_START( captaven, deco32_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(42*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(captaven) - MCFG_SCREEN_VBLANK_STATIC(captaven) + MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_captaven) + MCFG_SCREEN_VBLANK_DRIVER(deco32_state, screen_eof_captaven) MCFG_GFXDECODE(captaven) MCFG_PALETTE_LENGTH(2048) @@ -1799,7 +1799,7 @@ static MACHINE_CONFIG_START( fghthist, deco32_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(42*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(fghthist) + MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist) MCFG_GFXDECODE(fghthist) MCFG_PALETTE_LENGTH(2048) @@ -1845,7 +1845,7 @@ static MACHINE_CONFIG_START( fghthsta, deco32_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(42*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(fghthist) + MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist) MCFG_GFXDECODE(fghthist) MCFG_PALETTE_LENGTH(2048) @@ -1958,8 +1958,8 @@ static MACHINE_CONFIG_START( dragngun, dragngun_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(42*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(dragngun) - MCFG_SCREEN_VBLANK_STATIC(dragngun) + MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update_dragngun) + MCFG_SCREEN_VBLANK_DRIVER(dragngun_state, screen_eof_dragngun) MCFG_BUFFERED_SPRITERAM32_ADD("spriteram") @@ -2034,8 +2034,8 @@ static MACHINE_CONFIG_START( lockload, dragngun_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(42*8, 32*8+22) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(dragngun) - MCFG_SCREEN_VBLANK_STATIC(dragngun) + MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update_dragngun) + MCFG_SCREEN_VBLANK_DRIVER(dragngun_state, screen_eof_dragngun) MCFG_BUFFERED_SPRITERAM32_ADD("spriteram") @@ -2119,7 +2119,7 @@ static MACHINE_CONFIG_START( tattass, deco32_state ) MCFG_SCREEN_SIZE(42*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(nslasher) + MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher) MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf) MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf) @@ -2158,7 +2158,7 @@ static MACHINE_CONFIG_START( nslasher, deco32_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(42*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(nslasher) + MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher) MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf) MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf) diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c index fcfef1f14a3..b10d5d1b68a 100644 --- a/src/mame/drivers/deco_ld.c +++ b/src/mame/drivers/deco_ld.c @@ -146,6 +146,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(begas_vblank_r); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); virtual void machine_start(); + UINT32 screen_update_rblaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, UINT8 *spriteram, UINT16 tile_bank ) @@ -193,23 +194,22 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r } } -static SCREEN_UPDATE_RGB32( rblaster ) +UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - deco_ld_state *state = screen.machine().driver_data<deco_ld_state>(); gfx_element *gfx = screen.machine().gfx[0]; int y,x; bitmap.fill(0, cliprect); - draw_sprites(screen.machine(), bitmap,cliprect,state->m_vram1,0x000); - draw_sprites(screen.machine(), bitmap,cliprect,state->m_vram0,0x100); + draw_sprites(screen.machine(), bitmap,cliprect,m_vram1,0x000); + draw_sprites(screen.machine(), bitmap,cliprect,m_vram0,0x100); for (y=0;y<32;y++) { for (x=0;x<32;x++) { - int attr = state->m_attr0[x+y*32]; - int tile = state->m_vram0[x+y*32] | ((attr & 3) << 8); + int attr = m_attr0[x+y*32]; + int tile = m_vram0[x+y*32] | ((attr & 3) << 8); int colour = (6 & 0x7); /* TODO */ drawgfx_transpen(bitmap,cliprect,gfx,tile|0x400,colour,0,0,x*8,y*8,0); @@ -220,8 +220,8 @@ static SCREEN_UPDATE_RGB32( rblaster ) { for (x=0;x<32;x++) { - int attr = state->m_attr1[x+y*32]; - int tile = state->m_vram1[x+y*32] | ((attr & 3) << 8); + int attr = m_attr1[x+y*32]; + int tile = m_vram1[x+y*32] | ((attr & 3) << 8); int colour = (6 & 0x7); /* TODO */ drawgfx_transpen(bitmap,cliprect,gfx,tile,colour,0,0,x*8,y*8,0); @@ -468,7 +468,7 @@ static MACHINE_CONFIG_START( rblaster, deco_ld_state ) // MCFG_QUANTUM_TIME(attotime::from_hz(6000)) MCFG_LASERDISC_LDV1000_ADD("laserdisc") //Sony LDP-1000A, is it truly compatible with the Pioneer? - MCFG_LASERDISC_OVERLAY_STATIC(256, 256, rblaster) + MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, deco_ld_state, screen_update_rblaster) MCFG_LASERDISC_OVERLAY_CLIP(0, 256-1, 8, 240-1) /* video hardware */ diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c index 011580091b1..73e699b3150 100644 --- a/src/mame/drivers/deco_mlc.c +++ b/src/mame/drivers/deco_mlc.c @@ -391,8 +391,8 @@ static MACHINE_CONFIG_START( avengrgs, deco_mlc_state ) MCFG_SCREEN_REFRESH_RATE(58) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(mlc) - MCFG_SCREEN_VBLANK_STATIC(mlc) + MCFG_SCREEN_UPDATE_DRIVER(deco_mlc_state, screen_update_mlc) + MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc) MCFG_GFXDECODE(deco_mlc) MCFG_PALETTE_LENGTH(2048) @@ -423,8 +423,8 @@ static MACHINE_CONFIG_START( mlc, deco_mlc_state ) MCFG_SCREEN_REFRESH_RATE(58) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(mlc) - MCFG_SCREEN_VBLANK_STATIC(mlc) + MCFG_SCREEN_UPDATE_DRIVER(deco_mlc_state, screen_update_mlc) + MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc) MCFG_GFXDECODE(deco_mlc) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c index f3f62a6d9ec..aa79aa04228 100644 --- a/src/mame/drivers/decocass.c +++ b/src/mame/drivers/decocass.c @@ -780,7 +780,7 @@ static MACHINE_CONFIG_START( decocass, decocass_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 0*8, 256, 272, 1*8, 248) - MCFG_SCREEN_UPDATE_STATIC(decocass) + MCFG_SCREEN_UPDATE_DRIVER(decocass_state, screen_update_decocass) MCFG_GFXDECODE(decocass) MCFG_PALETTE_LENGTH(32+2*8+2*4) diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c index fde6aaf42be..0f7b4839481 100644 --- a/src/mame/drivers/deniam.c +++ b/src/mame/drivers/deniam.c @@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( deniam16b, deniam_state ) MCFG_SCREEN_SIZE(512, 256) //MCFG_SCREEN_VISIBLE_AREA(24*8, 64*8-1, 0*8, 28*8-1) // looks better but doesn't match hardware MCFG_SCREEN_VISIBLE_AREA(24*8-4, 64*8-5, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(deniam) + MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam) MCFG_GFXDECODE(deniam) MCFG_PALETTE_LENGTH(2048) @@ -318,7 +318,7 @@ static MACHINE_CONFIG_START( deniam16c, deniam_state ) MCFG_SCREEN_SIZE(512, 256) //MCFG_SCREEN_VISIBLE_AREA(24*8, 64*8-1, 0*8, 28*8-1) // looks better but doesn't match hardware MCFG_SCREEN_VISIBLE_AREA(24*8-4, 64*8-5, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(deniam) + MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam) MCFG_GFXDECODE(deniam) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/deshoros.c b/src/mame/drivers/deshoros.c index 08d0b8e7772..a59a28765ec 100644 --- a/src/mame/drivers/deshoros.c +++ b/src/mame/drivers/deshoros.c @@ -59,6 +59,8 @@ protected: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); +public: + UINT32 screen_update_destiny(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -72,10 +74,9 @@ void destiny_state::video_start() m_led_array[20] = 0; } -static SCREEN_UPDATE_IND16( destiny ) +UINT32 destiny_state::screen_update_destiny(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - destiny_state *state = screen.machine().driver_data<destiny_state>(); - popmessage("%s",state->m_led_array); + popmessage("%s",m_led_array); return 0; } @@ -268,7 +269,7 @@ static MACHINE_CONFIG_START( destiny, destiny_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(48*8, 16*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*8-1) - MCFG_SCREEN_UPDATE_STATIC(destiny) + MCFG_SCREEN_UPDATE_DRIVER(destiny_state, screen_update_destiny) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c index c1145352c8f..2b2515f4aec 100644 --- a/src/mame/drivers/destroyr.c +++ b/src/mame/drivers/destroyr.c @@ -51,12 +51,12 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void palette_init(); + UINT32 screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; -static SCREEN_UPDATE_IND16( destroyr ) +UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - destroyr_state *state = screen.machine().driver_data<destroyr_state>(); int i, j; bitmap.fill(0, cliprect); @@ -64,8 +64,8 @@ static SCREEN_UPDATE_IND16( destroyr ) /* draw major objects */ for (i = 0; i < 16; i++) { - int attr = state->m_major_obj_ram[2 * i + 0] ^ 0xff; - int horz = state->m_major_obj_ram[2 * i + 1]; + int attr = m_major_obj_ram[2 * i + 0] ^ 0xff; + int horz = m_major_obj_ram[2 * i + 1]; int num = attr & 3; int scan = attr & 4; @@ -90,7 +90,7 @@ static SCREEN_UPDATE_IND16( destroyr ) { for (j = 0; j < 32; j++) { - int num = state->m_alpha_num_ram[32 * i + j]; + int num = m_alpha_num_ram[32 * i + j]; drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], num, 0, 0, 0, 8 * j, 8 * i, 0); } @@ -99,9 +99,9 @@ static SCREEN_UPDATE_IND16( destroyr ) /* draw minor objects */ for (i = 0; i < 2; i++) { - int num = i << 4 | (state->m_minor_obj_ram[i + 0] & 0xf); - int horz = 256 - state->m_minor_obj_ram[i + 2]; - int vert = 256 - state->m_minor_obj_ram[i + 4]; + int num = i << 4 | (m_minor_obj_ram[i + 0] & 0xf); + int horz = 256 - m_minor_obj_ram[i + 2]; + int vert = 256 - m_minor_obj_ram[i + 4]; drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], num, 0, 0, 0, horz, vert, 0); } @@ -109,14 +109,14 @@ static SCREEN_UPDATE_IND16( destroyr ) /* draw waves */ for (i = 0; i < 4; i++) { - drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], state->m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0); + drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0); } /* draw cursor */ for (i = 0; i < 256; i++) { if (i & 4) - bitmap.pix16(state->m_cursor ^ 0xff, i) = 7; + bitmap.pix16(m_cursor ^ 0xff, i) = 7; } return 0; } @@ -460,7 +460,7 @@ static MACHINE_CONFIG_START( destroyr, destroyr_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 262) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(destroyr) + MCFG_SCREEN_UPDATE_DRIVER(destroyr_state, screen_update_destroyr) MCFG_GFXDECODE(destroyr) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c index e818b66af2a..aa5f977b676 100644 --- a/src/mame/drivers/dgpix.c +++ b/src/mame/drivers/dgpix.c @@ -77,6 +77,7 @@ public: DECLARE_DRIVER_INIT(kdynastg); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_dgpix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -291,15 +292,14 @@ void dgpix_state::video_start() m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4); } -static SCREEN_UPDATE_IND16( dgpix ) +UINT32 dgpix_state::screen_update_dgpix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dgpix_state *state = screen.machine().driver_data<dgpix_state>(); int y; for (y = 0; y < 240; y++) { int x; - UINT32 *src = &state->m_vram[(state->m_vbuffer ? 0 : 0x10000) | (y << 8)]; + UINT32 *src = &m_vram[(m_vbuffer ? 0 : 0x10000) | (y << 8)]; UINT16 *dest = &bitmap.pix16(y); for (x = 0; x < 320; x += 2) @@ -342,7 +342,7 @@ static MACHINE_CONFIG_START( dgpix, dgpix_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(dgpix) + MCFG_SCREEN_UPDATE_DRIVER(dgpix_state, screen_update_dgpix) MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR) MCFG_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c index 5ad2461d581..ce0a4c83f2b 100644 --- a/src/mame/drivers/dietgo.c +++ b/src/mame/drivers/dietgo.c @@ -220,7 +220,7 @@ static MACHINE_CONFIG_START( dietgo, dietgo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(dietgo) + MCFG_SCREEN_UPDATE_DRIVER(dietgo_state, screen_update_dietgo) MCFG_PALETTE_LENGTH(1024) MCFG_GFXDECODE(dietgo) diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c index 247485ac1f5..420f6ebeef1 100644 --- a/src/mame/drivers/discoboy.c +++ b/src/mame/drivers/discoboy.c @@ -86,6 +86,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_discoboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -142,9 +143,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } -static SCREEN_UPDATE_IND16( discoboy ) +UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - discoboy_state *state = screen.machine().driver_data<discoboy_state>(); UINT16 x, y; int i; int count = 0; @@ -153,7 +153,7 @@ static SCREEN_UPDATE_IND16( discoboy ) { UINT16 pal; int r, g, b; - pal = state->m_ram_1[i] | (state->m_ram_1[i + 1] << 8); + pal = m_ram_1[i] | (m_ram_1[i + 1] << 8); b = ((pal >> 0) & 0xf) << 4; g = ((pal >> 4) & 0xf) << 4; @@ -166,7 +166,7 @@ static SCREEN_UPDATE_IND16( discoboy ) { UINT16 pal; int r,g,b; - pal = state->m_ram_2[i] | (state->m_ram_2[i + 1] << 8); + pal = m_ram_2[i] | (m_ram_2[i + 1] << 8); b = ((pal >> 0) & 0xf) << 4; g = ((pal >> 4) & 0xf) << 4; @@ -181,17 +181,17 @@ static SCREEN_UPDATE_IND16( discoboy ) { for (x = 0; x < 64; x++) { - UINT16 tileno = state->m_ram_3[count] | (state->m_ram_3[count + 1] << 8); + UINT16 tileno = m_ram_3[count] | (m_ram_3[count + 1] << 8); if (tileno > 0x2000) { - if ((state->m_gfxbank & 0x40) == 0x40) + if ((m_gfxbank & 0x40) == 0x40) tileno = 0x2000 + (tileno & 0x1fff) + 0x2000; else tileno = 0x2000 + (tileno & 0x1fff) + 0x0000; } - drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], tileno, state->m_ram_att[count / 2], 0, 0, x*8, y*8); + drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], tileno, m_ram_att[count / 2], 0, 0, x*8, y*8); count += 2; } } @@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( discoboy, discoboy_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(8*8, 512-1-8*8, 0+8, 256-1-8) - MCFG_SCREEN_UPDATE_STATIC(discoboy) + MCFG_SCREEN_UPDATE_DRIVER(discoboy_state, screen_update_discoboy) MCFG_GFXDECODE(discoboy) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c index 9f13f5b0365..12e69de0b61 100644 --- a/src/mame/drivers/diverboy.c +++ b/src/mame/drivers/diverboy.c @@ -70,6 +70,7 @@ public: DECLARE_WRITE8_MEMBER(okibank_w); virtual void machine_start(); virtual void video_start(); + UINT32 screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -113,7 +114,7 @@ static void draw_sprites( running_machine& machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16(diverboy) +UINT32 diverboy_state::screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { // bitmap.fill(get_black_pen(screen.machine()), cliprect); draw_sprites(screen.machine(), bitmap, cliprect); @@ -269,7 +270,7 @@ static MACHINE_CONFIG_START( diverboy, diverboy_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8+4, 40*8+1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(diverboy) + MCFG_SCREEN_UPDATE_DRIVER(diverboy_state, screen_update_diverboy) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c index d953ab47ff9..80bb595b6fd 100644 --- a/src/mame/drivers/djboy.c +++ b/src/mame/drivers/djboy.c @@ -595,8 +595,8 @@ static MACHINE_CONFIG_START( djboy, djboy_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(djboy) - MCFG_SCREEN_VBLANK_STATIC(djboy) + MCFG_SCREEN_UPDATE_DRIVER(djboy_state, screen_update_djboy) + MCFG_SCREEN_VBLANK_DRIVER(djboy_state, screen_eof_djboy) MCFG_GFXDECODE(djboy) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c index b210d55eab7..78f646b546a 100644 --- a/src/mame/drivers/djmain.c +++ b/src/mame/drivers/djmain.c @@ -1471,7 +1471,7 @@ static MACHINE_CONFIG_START( djmain, djmain_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(12, 512-12-1, 0, 384-1) - MCFG_SCREEN_UPDATE_STATIC(djmain) + MCFG_SCREEN_UPDATE_DRIVER(djmain_state, screen_update_djmain) MCFG_PALETTE_LENGTH(0x4440/4) MCFG_GFXDECODE(djmain) diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index d713f70ac70..b6042d6f12b 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -1661,7 +1661,7 @@ static MACHINE_CONFIG_START( dkong_base, dkong_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(dkong) + MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong) MCFG_GFXDECODE(dkong) MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH) @@ -1724,7 +1724,7 @@ static MACHINE_CONFIG_START( dkong3, dkong_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(dkong) + MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong) MCFG_GFXDECODE(dkong) MCFG_PALETTE_LENGTH(DK3_PALETTE_LENGTH) @@ -1752,7 +1752,7 @@ static MACHINE_CONFIG_DERIVED( pestplce, dkongjr ) MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH) MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b) /* wrong! */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(pestplce) + MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_pestplce) MACHINE_CONFIG_END @@ -1790,7 +1790,7 @@ static MACHINE_CONFIG_DERIVED( spclforc, s2650 ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(spclforc) + MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_spclforc) MACHINE_CONFIG_END diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c index 6a8543ca3b4..266fcceca50 100644 --- a/src/mame/drivers/dlair.c +++ b/src/mame/drivers/dlair.c @@ -113,6 +113,7 @@ public: DECLARE_MACHINE_START(dlair); DECLARE_MACHINE_RESET(dlair); DECLARE_PALETTE_INIT(dleuro); + UINT32 screen_update_dleuro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -226,10 +227,9 @@ PALETTE_INIT_MEMBER(dlair_state,dleuro) * *************************************/ -static SCREEN_UPDATE_IND16( dleuro ) +UINT32 dlair_state::screen_update_dleuro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dlair_state *state = screen.machine().driver_data<dlair_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int x, y; /* redraw the overlay */ @@ -772,7 +772,7 @@ static MACHINE_CONFIG_START( dleuro, dlair_state ) MCFG_MACHINE_RESET_OVERRIDE(dlair_state,dlair) MCFG_LASERDISC_22VP932_ADD("ld_22vp932") - MCFG_LASERDISC_OVERLAY_STATIC(256, 256, dleuro) + MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, dlair_state, screen_update_dleuro) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_PAL("screen", "ld_22vp932") diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c index e2a1b4a7c31..bfaac82f707 100644 --- a/src/mame/drivers/dmndrby.c +++ b/src/mame/drivers/dmndrby.c @@ -80,6 +80,7 @@ public: TILE_GET_INFO_MEMBER(get_dmndrby_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -345,9 +346,8 @@ void dmndrby_state::video_start() } -static SCREEN_UPDATE_IND16(dderby) +UINT32 dmndrby_state::screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dmndrby_state *state = screen.machine().driver_data<dmndrby_state>(); int x,y,count; int off,scrolly; gfx_element *gfx = screen.machine().gfx[0]; @@ -363,22 +363,22 @@ racetrack seems to be stored in 4th and 5th prom. can we draw it with the tilemap? maybe not, the layout is a litle strange */ -// base = state->m_scroll_ram[0]; +// base = m_scroll_ram[0]; - off=0x1900-(state->m_bg*0x100)+(state->m_scroll_ram[1])*0x100; - scrolly = 0xff-(state->m_scroll_ram[0]); - if(state->m_scroll_ram[1]==0xff) off=0x1800; + off=0x1900-(m_bg*0x100)+(m_scroll_ram[1])*0x100; + scrolly = 0xff-(m_scroll_ram[0]); + if(m_scroll_ram[1]==0xff) off=0x1800; for(x=0;x<16;x++) { for(y=0;y<16;y++) { - int chr = state->m_racetrack_tilemap_rom[off]; - int col = state->m_racetrack_tilemap_rom[off+0x2000]&0x1f; - int flipx = state->m_racetrack_tilemap_rom[off+0x2000]&0x40; + int chr = m_racetrack_tilemap_rom[off]; + int col = m_racetrack_tilemap_rom[off+0x2000]&0x1f; + int flipx = m_racetrack_tilemap_rom[off+0x2000]&0x40; drawgfx_opaque(bitmap,cliprect,track,chr,col,flipx,0,y*16+scrolly,x*16); // draw another bit of track // a rubbish way of doing it - chr = state->m_racetrack_tilemap_rom[off-0x100]; - col = state->m_racetrack_tilemap_rom[off+0x1f00]&0x1f; - flipx = state->m_racetrack_tilemap_rom[off+0x1f00]&0x40; + chr = m_racetrack_tilemap_rom[off-0x100]; + col = m_racetrack_tilemap_rom[off+0x1f00]&0x1f; + flipx = m_racetrack_tilemap_rom[off+0x1f00]&0x40; drawgfx_opaque(bitmap,cliprect,track,chr,col,flipx,0,y*16-256+scrolly,x*16); off++; } @@ -399,12 +399,12 @@ wouldnt like to say its the most effective way though... int a=0; int b=0; int base = count*4; - int sprx=state->m_sprite_ram[base+3]; - int spry=state->m_sprite_ram[base+2]; - //state->m_sprite_ram[base+1]; - int col = (state->m_sprite_ram[base+1]&0x1f); - int anim = (state->m_sprite_ram[base]&0x3)*0x40; // animation frame - probably wrong but seems right - int horse = (state->m_sprite_ram[base+1]&0x7)*8+7; // horse label from 1 - 6 + int sprx=m_sprite_ram[base+3]; + int spry=m_sprite_ram[base+2]; + //m_sprite_ram[base+1]; + int col = (m_sprite_ram[base+1]&0x1f); + int anim = (m_sprite_ram[base]&0x3)*0x40; // animation frame - probably wrong but seems right + int horse = (m_sprite_ram[base+1]&0x7)*8+7; // horse label from 1 - 6 for (a=0;a<8 ;a++) { @@ -427,10 +427,10 @@ wouldnt like to say its the most effective way though... for(x=0;x<32;x++) { int tileno,bank,color; - tileno=state->m_dderby_vidchars[count]; - bank=(state->m_dderby_vidattribs[count]&0x20)>>5; + tileno=m_dderby_vidchars[count]; + bank=(m_dderby_vidattribs[count]&0x20)>>5; tileno|=(bank<<8); - color=((state->m_dderby_vidattribs[count])&0x1f); + color=((m_dderby_vidattribs[count])&0x1f); drawgfx_transpen(bitmap,cliprect,gfx,tileno,color,0,0,x*8,y*8,(tileno == 0x38) ? 0 : -1); @@ -527,7 +527,7 @@ static MACHINE_CONFIG_START( dderby, dmndrby_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(dderby) + MCFG_SCREEN_UPDATE_DRIVER(dmndrby_state, screen_update_dderby) MCFG_GFXDECODE(dmndrby) MCFG_PALETTE_LENGTH(0x300) diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c index eda75ba4ad4..ff69b5d7460 100644 --- a/src/mame/drivers/docastle.c +++ b/src/mame/drivers/docastle.c @@ -620,7 +620,7 @@ static MACHINE_CONFIG_START( docastle, docastle_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(docastle) + MCFG_SCREEN_UPDATE_DRIVER(docastle_state, screen_update_docastle) MCFG_GFXDECODE(docastle) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c index 3a1ce7e4b1f..729168fd2f4 100644 --- a/src/mame/drivers/dogfgt.c +++ b/src/mame/drivers/dogfgt.c @@ -256,7 +256,7 @@ static MACHINE_CONFIG_START( dogfgt, dogfgt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(dogfgt) + MCFG_SCREEN_UPDATE_DRIVER(dogfgt_state, screen_update_dogfgt) MCFG_GFXDECODE(dogfgt) MCFG_PALETTE_LENGTH(16+64) diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c index f37940464cb..e3fd1bdde57 100644 --- a/src/mame/drivers/dominob.c +++ b/src/mame/drivers/dominob.c @@ -85,6 +85,7 @@ public: DECLARE_WRITE8_MEMBER(dominob_d008_w); DECLARE_READ8_MEMBER(dominob_unk_port02_r); virtual void video_start(); + UINT32 screen_update_dominob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; void dominob_state::video_start() @@ -122,9 +123,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } -static SCREEN_UPDATE_IND16( dominob ) +UINT32 dominob_state::screen_update_dominob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dominob_state *state = screen.machine().driver_data<dominob_state>(); int x,y; int index = 0; @@ -136,8 +136,8 @@ static SCREEN_UPDATE_IND16( dominob ) drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], - state->m_bgram[index] + 256 * (state->m_bgram[index + 1] & 0xf), - state->m_bgram[index + 1] >> 4, + m_bgram[index] + 256 * (m_bgram[index + 1] & 0xf), + m_bgram[index + 1] >> 4, 0, 0, x * 32, y * 32); index += 2; @@ -151,8 +151,8 @@ static SCREEN_UPDATE_IND16( dominob ) drawgfx_transpen( bitmap, cliprect, screen.machine().gfx[0], - state->m_videoram[(y * 32 + x) * 2 + 1] + (state->m_videoram[(y * 32 + x) * 2] & 7) * 256, - (state->m_videoram[(y * 32 + x) * 2] >> 3), + m_videoram[(y * 32 + x) * 2 + 1] + (m_videoram[(y * 32 + x) * 2] & 7) * 256, + (m_videoram[(y * 32 + x) * 2] >> 3), 0, 0, x * 8, y * 8,0); } @@ -307,7 +307,7 @@ static MACHINE_CONFIG_START( dominob, dominob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(dominob) + MCFG_SCREEN_UPDATE_DRIVER(dominob_state, screen_update_dominob) MCFG_GFXDECODE(dominob) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c index 7efa878a52c..3a1700401f1 100644 --- a/src/mame/drivers/dooyong.c +++ b/src/mame/drivers/dooyong.c @@ -882,7 +882,7 @@ static MACHINE_CONFIG_START( lastday, dooyong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(lastday) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_lastday) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(lastday) @@ -924,7 +924,7 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(gulfstrm) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_gulfstrm) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(lastday) @@ -957,7 +957,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(pollux) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_pollux) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(lastday) @@ -989,7 +989,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(bluehawk) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_bluehawk) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(bluehawk) @@ -1021,7 +1021,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(flytiger) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_flytiger) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(flytiger) @@ -1051,7 +1051,7 @@ static MACHINE_CONFIG_START( primella, dooyong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(primella) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_primella) MCFG_GFXDECODE(primella) MCFG_PALETTE_LENGTH(1024) @@ -1092,7 +1092,7 @@ static MACHINE_CONFIG_START( rshark, dooyong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(rshark) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_rshark) MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(rshark) @@ -1122,7 +1122,7 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(rshark) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_rshark) MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(rshark) @@ -1152,7 +1152,7 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(popbingo) + MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_popbingo) MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(popbingo) diff --git a/src/mame/drivers/dorachan.c b/src/mame/drivers/dorachan.c index 355e8c7f7df..cee73b77946 100644 --- a/src/mame/drivers/dorachan.c +++ b/src/mame/drivers/dorachan.c @@ -35,6 +35,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(dorachan_v128_r); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -81,18 +82,17 @@ static void get_pens(pen_t *pens) } -static SCREEN_UPDATE_RGB32( dorachan ) +UINT32 dorachan_state::screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - dorachan_state *state = screen.machine().driver_data<dorachan_state>(); pen_t pens[NUM_PENS]; offs_t offs; const UINT8 *color_map_base; get_pens(pens); - color_map_base = state->memregion("proms")->base(); + color_map_base = memregion("proms")->base(); - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; UINT8 fore_color; @@ -103,9 +103,9 @@ static SCREEN_UPDATE_RGB32( dorachan ) /* the need for +1 is extremely unusual, but definetely correct */ offs_t color_address = ((((offs << 2) & 0x03e0) | (offs >> 8)) + 1) & 0x03ff; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; - if (state->m_flip_screen) + if (m_flip_screen) fore_color = (color_map_base[color_address] >> 3) & 0x07; else fore_color = (color_map_base[color_address] >> 0) & 0x07; @@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( dorachan, dorachan_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_STATIC(dorachan) + MCFG_SCREEN_UPDATE_DRIVER(dorachan_state, screen_update_dorachan) MACHINE_CONFIG_END diff --git a/src/mame/drivers/dotrikun.c b/src/mame/drivers/dotrikun.c index ad0413fb758..7e4bd3ffdcf 100644 --- a/src/mame/drivers/dotrikun.c +++ b/src/mame/drivers/dotrikun.c @@ -39,6 +39,7 @@ public: DECLARE_WRITE8_MEMBER(dotrikun_color_w); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_dotrikun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -62,19 +63,18 @@ WRITE8_MEMBER(dotrikun_state::dotrikun_color_w) } -static SCREEN_UPDATE_RGB32( dotrikun ) +UINT32 dotrikun_state::screen_update_dotrikun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - dotrikun_state *state = screen.machine().driver_data<dotrikun_state>(); int x,y,i; - pen_t back_pen = MAKE_RGB(pal1bit(state->m_color >> 3), pal1bit(state->m_color >> 4), pal1bit(state->m_color >> 5)); - pen_t fore_pen = MAKE_RGB(pal1bit(state->m_color >> 0), pal1bit(state->m_color >> 1), pal1bit(state->m_color >> 2)); + pen_t back_pen = MAKE_RGB(pal1bit(m_color >> 3), pal1bit(m_color >> 4), pal1bit(m_color >> 5)); + pen_t fore_pen = MAKE_RGB(pal1bit(m_color >> 0), pal1bit(m_color >> 1), pal1bit(m_color >> 2)); for(y = (cliprect.min_y & ~1); y < cliprect.max_y; y+=2) { for (x = 0; x < 256; x+=16) { - UINT8 data = state->m_dotrikun_bitmap[((x/16)+((y/2)*16))]; + UINT8 data = m_dotrikun_bitmap[((x/16)+((y/2)*16))]; for (i = 0; i < 8; i++) { @@ -161,7 +161,7 @@ static MACHINE_CONFIG_START( dotrikun, dotrikun_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 256+32, 0, 256, 192+32, 0, 192) // FIXME: h/v params of this are completely inaccurate, shows it especially under the "CRT test" - MCFG_SCREEN_UPDATE_STATIC(dotrikun) + MCFG_SCREEN_UPDATE_DRIVER(dotrikun_state, screen_update_dotrikun) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c index 83f0e6565a9..1fe7413dc36 100644 --- a/src/mame/drivers/dragrace.c +++ b/src/mame/drivers/dragrace.c @@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( dragrace, dragrace_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 262) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(dragrace) + MCFG_SCREEN_UPDATE_DRIVER(dragrace_state, screen_update_dragrace) MCFG_GFXDECODE(dragrace) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c index a1fd4dd6b0a..0beaa64431f 100644 --- a/src/mame/drivers/dreamwld.c +++ b/src/mame/drivers/dreamwld.c @@ -163,6 +163,8 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_dreamwld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_dreamwld(screen_device &screen, bool state); }; @@ -284,35 +286,33 @@ void dreamwld_state::video_start() } -SCREEN_VBLANK( dreamwld ) +void dreamwld_state::screen_eof_dreamwld(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - dreamwld_state *state = screen.machine().driver_data<dreamwld_state>(); - memcpy(state->m_spritebuf2, state->m_spritebuf1, 0x2000); - memcpy(state->m_spritebuf1, state->m_spriteram, 0x2000); + memcpy(m_spritebuf2, m_spritebuf1, 0x2000); + memcpy(m_spritebuf1, m_spriteram, 0x2000); } } -static SCREEN_UPDATE_IND16( dreamwld ) +UINT32 dreamwld_state::screen_update_dreamwld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dreamwld_state *state = screen.machine().driver_data<dreamwld_state>(); // int tm0size, tm1size; tilemap_t *tmptilemap0, *tmptilemap1; - tmptilemap0 = state->m_bg_tilemap; - tmptilemap1 = state->m_bg2_tilemap; + tmptilemap0 = m_bg_tilemap; + tmptilemap1 = m_bg2_tilemap; - int layer0_scrolly = state->m_vregs[(0x400 / 4)] + 32; - int layer1_scrolly = state->m_vregs[(0x400 / 4) + 2] + 32; + int layer0_scrolly = m_vregs[(0x400 / 4)] + 32; + int layer1_scrolly = m_vregs[(0x400 / 4) + 2] + 32; - int layer0_scrollx = state->m_vregs[(0x400 / 4) + 1] + 3; - int layer1_scrollx = state->m_vregs[(0x400 / 4) + 3] + 5; - UINT32 layer0_ctrl = state->m_vregs[0x412 / 4]; - UINT32 layer1_ctrl = state->m_vregs[0x416 / 4]; + int layer0_scrollx = m_vregs[(0x400 / 4) + 1] + 3; + int layer1_scrollx = m_vregs[(0x400 / 4) + 3] + 5; + UINT32 layer0_ctrl = m_vregs[0x412 / 4]; + UINT32 layer1_ctrl = m_vregs[0x416 / 4]; tmptilemap0->set_scrolly(0, layer0_scrolly); tmptilemap1->set_scrolly(0, layer1_scrolly); @@ -342,7 +342,7 @@ static SCREEN_UPDATE_IND16( dreamwld ) int x0 = 0, x1 = 0; /* layer 0 */ - UINT16 *vregs = reinterpret_cast<UINT16 *>(state->m_vregs.target()); + UINT16 *vregs = reinterpret_cast<UINT16 *>(m_vregs.target()); if (layer0_ctrl & 0x0300) { if (layer0_ctrl & 0x0200) @@ -377,19 +377,19 @@ static SCREEN_UPDATE_IND16( dreamwld ) } - state->m_tilebank[0] = (state->m_vregs[(0x400 / 4) + 4] >> 6) & 1; - state->m_tilebank[1] = (state->m_vregs[(0x400 / 4) + 5] >> 6) & 1; + m_tilebank[0] = (m_vregs[(0x400 / 4) + 4] >> 6) & 1; + m_tilebank[1] = (m_vregs[(0x400 / 4) + 5] >> 6) & 1; - if (state->m_tilebank[0] != state->m_tilebankold[0]) + if (m_tilebank[0] != m_tilebankold[0]) { - state->m_tilebankold[0] = state->m_tilebank[0]; - state->m_bg_tilemap->mark_all_dirty(); + m_tilebankold[0] = m_tilebank[0]; + m_bg_tilemap->mark_all_dirty(); } - if (state->m_tilebank[1] != state->m_tilebankold[1]) + if (m_tilebank[1] != m_tilebankold[1]) { - state->m_tilebankold[1] = state->m_tilebank[1]; - state->m_bg2_tilemap->mark_all_dirty(); + m_tilebankold[1] = m_tilebank[1]; + m_bg2_tilemap->mark_all_dirty(); } tmptilemap0->draw(bitmap, cliprect, 0, 0); @@ -598,8 +598,8 @@ static MACHINE_CONFIG_START( baryon, dreamwld_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(512,256) MCFG_SCREEN_VISIBLE_AREA(0, 304-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(dreamwld) - MCFG_SCREEN_VBLANK_STATIC(dreamwld) + MCFG_SCREEN_UPDATE_DRIVER(dreamwld_state, screen_update_dreamwld) + MCFG_SCREEN_VBLANK_DRIVER(dreamwld_state, screen_eof_dreamwld) MCFG_PALETTE_LENGTH(0x1000) MCFG_GFXDECODE(dreamwld) diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c index e046f153a8a..a866ba0021c 100644 --- a/src/mame/drivers/drgnmst.c +++ b/src/mame/drivers/drgnmst.c @@ -411,7 +411,7 @@ static MACHINE_CONFIG_START( drgnmst, drgnmst_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(drgnmst) + MCFG_SCREEN_UPDATE_DRIVER(drgnmst_state, screen_update_drgnmst) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c index c3cea192ea0..85963f36b8c 100644 --- a/src/mame/drivers/dribling.c +++ b/src/mame/drivers/dribling.c @@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( dribling, dribling_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 40, 255) - MCFG_SCREEN_UPDATE_STATIC(dribling) + MCFG_SCREEN_UPDATE_DRIVER(dribling_state, screen_update_dribling) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c index 738806a9c06..fe53f04931b 100644 --- a/src/mame/drivers/drmicro.c +++ b/src/mame/drivers/drmicro.c @@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( drmicro, drmicro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(drmicro) + MCFG_SCREEN_UPDATE_DRIVER(drmicro_state, screen_update_drmicro) MCFG_GFXDECODE(drmicro) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c index 684ce096e67..daf58c8f81c 100644 --- a/src/mame/drivers/drtomy.c +++ b/src/mame/drivers/drtomy.c @@ -40,6 +40,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -131,12 +132,11 @@ void drtomy_state::video_start() m_tilemap_fg->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16( drtomy ) +UINT32 drtomy_state::screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - drtomy_state *state = screen.machine().driver_data<drtomy_state>(); - state->m_tilemap_bg->draw(bitmap, cliprect, 0, 0); - state->m_tilemap_fg->draw(bitmap, cliprect, 0, 0); + m_tilemap_bg->draw(bitmap, cliprect, 0, 0); + m_tilemap_fg->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); return 0; } @@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( drtomy, drtomy_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(drtomy) + MCFG_SCREEN_UPDATE_DRIVER(drtomy_state, screen_update_drtomy) MCFG_GFXDECODE(drtomy) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c index 45e83a7c725..20e0a85a665 100644 --- a/src/mame/drivers/drw80pkr.c +++ b/src/mame/drivers/drw80pkr.c @@ -70,6 +70,7 @@ public: virtual void machine_start(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -339,10 +340,9 @@ void drw80pkr_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 27); } -static SCREEN_UPDATE_IND16( drw80pkr ) +UINT32 drw80pkr_state::screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - drw80pkr_state *state = screen.machine().driver_data<drw80pkr_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -477,7 +477,7 @@ static MACHINE_CONFIG_START( drw80pkr, drw80pkr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((31+1)*8, (31+1)*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 27*8-1) - MCFG_SCREEN_UPDATE_STATIC(drw80pkr) + MCFG_SCREEN_UPDATE_DRIVER(drw80pkr_state, screen_update_drw80pkr) MCFG_GFXDECODE(drw80pkr) MCFG_PALETTE_LENGTH(16*16) diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c index 7ab60f6245c..3ee886db00c 100644 --- a/src/mame/drivers/dunhuang.c +++ b/src/mame/drivers/dunhuang.c @@ -122,6 +122,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_dunhuang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -158,9 +159,8 @@ void dunhuang_state::video_start() save_item(NAME(m_paldata)); } -static SCREEN_UPDATE_IND16( dunhuang ) +UINT32 dunhuang_state::screen_update_dunhuang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dunhuang_state *state = screen.machine().driver_data<dunhuang_state>(); int layers_ctrl = -1; #if DUNHUANG_DEBUG @@ -175,19 +175,19 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) bitmap.fill(get_black_pen(screen.machine()), cliprect); - switch (state->m_layers) + switch (m_layers) { case 0x04: // girl select: bg over fg - if (layers_ctrl & 2) state->m_tmap2->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, 0, 0); break; case 0x05: // dips: must hide fg - if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); break; case 0x07: // game,demo: fg over bg default: - if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - if (layers_ctrl & 2) state->m_tmap2->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, 0, 0); break; } @@ -830,7 +830,7 @@ static MACHINE_CONFIG_START( dunhuang, dunhuang_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0+8, 512-8-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(dunhuang) + MCFG_SCREEN_UPDATE_DRIVER(dunhuang_state, screen_update_dunhuang) MCFG_GFXDECODE(dunhuang) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c index f0a5903ed76..f34b13b04b6 100644 --- a/src/mame/drivers/dwarfd.c +++ b/src/mame/drivers/dwarfd.c @@ -349,6 +349,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -847,7 +848,7 @@ static void drawCrt( running_machine &machine, bitmap_rgb32 &bitmap,const rectan } -static SCREEN_UPDATE_RGB32( dwarfd ) +UINT32 dwarfd_state::screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(screen.machine()), cliprect); drawCrt(screen.machine(), bitmap, cliprect); @@ -1080,7 +1081,7 @@ static MACHINE_CONFIG_START( dwarfd, dwarfd_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(272*2, 200+4*8) MCFG_SCREEN_VISIBLE_AREA(0, 272*2-1, 0, 200-1) - MCFG_SCREEN_UPDATE_STATIC(dwarfd) + MCFG_SCREEN_UPDATE_DRIVER(dwarfd_state, screen_update_dwarfd) MCFG_GFXDECODE(dwarfd) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c index 0652e8a4b50..65e5901a88f 100644 --- a/src/mame/drivers/dynadice.c +++ b/src/mame/drivers/dynadice.c @@ -65,6 +65,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -212,13 +213,12 @@ void dynadice_state::video_start() m_bg_tilemap->set_scrollx(0, -16); } -static SCREEN_UPDATE_IND16( dynadice ) +UINT32 dynadice_state::screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - dynadice_state *state = screen.machine().driver_data<dynadice_state>(); rectangle myclip = cliprect; myclip.max_x = 15; - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_top_tilemap->draw(bitmap, myclip, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_top_tilemap->draw(bitmap, myclip, 0, 0); return 0; } @@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( dynadice, dynadice_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256+16, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 3*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(dynadice) + MCFG_SCREEN_UPDATE_DRIVER(dynadice_state, screen_update_dynadice) MCFG_GFXDECODE(dynadice) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c index 0d3d1994073..dda1ca86c4a 100644 --- a/src/mame/drivers/dynax.c +++ b/src/mame/drivers/dynax.c @@ -4301,7 +4301,7 @@ static MACHINE_CONFIG_START( hanamai, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16+8, 255-8) - MCFG_SCREEN_UPDATE_STATIC(hanamai) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hanamai) MCFG_PALETTE_LENGTH(512) @@ -4358,7 +4358,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256+22) MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(hnoridur) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur) MCFG_PALETTE_LENGTH(16*256) @@ -4403,7 +4403,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(hnoridur) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur) MCFG_PALETTE_LENGTH(16*256) @@ -4461,7 +4461,7 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(sprtmtch) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_sprtmtch) MCFG_PALETTE_LENGTH(512) @@ -4503,7 +4503,7 @@ static MACHINE_CONFIG_START( mjfriday, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(mjdialq2) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2) MCFG_PALETTE_LENGTH(512) @@ -4667,14 +4667,14 @@ static MACHINE_CONFIG_START( jantouki, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(jantouki_top) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_jantouki_top) MCFG_SCREEN_ADD("bottom", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(jantouki_bottom) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_jantouki_bottom) MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette MCFG_VIDEO_START_OVERRIDE(dynax_state,jantouki) @@ -4840,7 +4840,7 @@ static MACHINE_CONFIG_START( htengoku, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+8, 256-1-8) - MCFG_SCREEN_UPDATE_STATIC(htengoku) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_htengoku) MCFG_PALETTE_LENGTH(16*256) @@ -4923,7 +4923,7 @@ static MACHINE_CONFIG_START( tenkai, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256+22) MCFG_SCREEN_VISIBLE_AREA(4, 512-1, 4, 255-8-4) // hide first 4 horizontal pixels (see scroll of gal 4 in test mode) - MCFG_SCREEN_UPDATE_STATIC(hnoridur) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur) MCFG_PALETTE_LENGTH(16*256) @@ -4992,7 +4992,7 @@ static MACHINE_CONFIG_START( gekisha, dynax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(2, 256-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(mjdialq2) + MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2) MCFG_PALETTE_LENGTH(512) MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c index 60da0946272..f9e7f9c27a2 100644 --- a/src/mame/drivers/dynduke.c +++ b/src/mame/drivers/dynduke.c @@ -294,7 +294,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(dynduke) + MCFG_SCREEN_UPDATE_DRIVER(dynduke_state, screen_update_dynduke) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(dynduke) diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c index 200ecab5f04..14f9718fc1a 100644 --- a/src/mame/drivers/egghunt.c +++ b/src/mame/drivers/egghunt.c @@ -79,6 +79,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_egghunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -180,10 +181,9 @@ void egghunt_state::video_start() save_item(NAME(m_spram)); } -static SCREEN_UPDATE_IND16(egghunt) +UINT32 egghunt_state::screen_update_egghunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - egghunt_state *state = screen.machine().driver_data<egghunt_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); return 0; } @@ -424,7 +424,7 @@ static MACHINE_CONFIG_START( egghunt, egghunt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(egghunt) + MCFG_SCREEN_UPDATE_DRIVER(egghunt_state, screen_update_egghunt) MCFG_GFXDECODE(egghunt) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/embargo.c b/src/mame/drivers/embargo.c index c5796b8005e..1bf208e35a4 100644 --- a/src/mame/drivers/embargo.c +++ b/src/mame/drivers/embargo.c @@ -29,6 +29,7 @@ public: DECLARE_WRITE8_MEMBER(input_select_w); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_embargo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -38,18 +39,17 @@ public: * *************************************/ -static SCREEN_UPDATE_RGB32( embargo ) +UINT32 embargo_state::screen_update_embargo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - embargo_state *state = screen.machine().driver_data<embargo_state>(); offs_t offs; - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; UINT8 x = offs << 3; UINT8 y = offs >> 5; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; for (i = 0; i < 8; i++) { @@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( embargo, embargo_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_STATIC(embargo) + MCFG_SCREEN_UPDATE_DRIVER(embargo_state, screen_update_embargo) MACHINE_CONFIG_END diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c index 3ceddf51373..13572a19bbc 100644 --- a/src/mame/drivers/enigma2.c +++ b/src/mame/drivers/enigma2.c @@ -89,6 +89,8 @@ public: DECLARE_DRIVER_INIT(enigma2); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + UINT32 screen_update_enigma2a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -205,15 +207,14 @@ static void get_pens(pen_t *pens) } -static SCREEN_UPDATE_RGB32( enigma2 ) +UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - enigma2_state *state = screen.machine().driver_data<enigma2_state>(); pen_t pens[NUM_PENS]; const rectangle &visarea = screen.visible_area(); - UINT8 *prom = state->memregion("proms")->base(); - UINT8 *color_map_base = state->m_flip_screen ? &prom[0x0400] : &prom[0x0000]; - UINT8 *star_map_base = (state->m_blink_count & 0x08) ? &prom[0x0c00] : &prom[0x0800]; + UINT8 *prom = memregion("proms")->base(); + UINT8 *color_map_base = m_flip_screen ? &prom[0x0400] : &prom[0x0000]; + UINT8 *star_map_base = (m_blink_count & 0x08) ? &prom[0x0c00] : &prom[0x0800]; UINT8 x = 0; UINT16 bitmap_y = visarea.min_y; @@ -243,16 +244,16 @@ static SCREEN_UPDATE_RGB32( enigma2 ) /* when the screen is flipped, all the video address bits are inverted, and the adder at 16A is activated */ - if (state->m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff; + if (m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff; - video_data = state->m_videoram[videoram_address]; + video_data = m_videoram[videoram_address]; fore_color = color_map_base[color_map_address] & 0x07; star_color = star_map_base[star_map_address] & 0x07; } /* plot the current pixel */ - if (state->m_flip_screen) + if (m_flip_screen) { bit = video_data & 0x80; video_data = video_data << 1; @@ -287,15 +288,14 @@ static SCREEN_UPDATE_RGB32( enigma2 ) } } - state->m_blink_count++; + m_blink_count++; return 0; } -static SCREEN_UPDATE_RGB32( enigma2a ) +UINT32 enigma2_state::screen_update_enigma2a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - enigma2_state *state = screen.machine().driver_data<enigma2_state>(); UINT8 x = 0; const rectangle &visarea = screen.visible_area(); UINT16 bitmap_y = visarea.min_y; @@ -314,13 +314,13 @@ static SCREEN_UPDATE_RGB32( enigma2a ) /* when the screen is flipped, all the video address bits are inverted, and the adder at 16A is activated */ - if (state->m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff; + if (m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff; - video_data = state->m_videoram[videoram_address]; + video_data = m_videoram[videoram_address]; } /* plot the current pixel */ - if (state->m_flip_screen) + if (m_flip_screen) { bit = video_data & 0x80; video_data = video_data << 1; @@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( enigma2, enigma2_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(enigma2) + MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -643,7 +643,7 @@ static MACHINE_CONFIG_START( enigma2a, enigma2_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(enigma2a) + MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2a) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c index 2d4c4b34525..547d9b152af 100644 --- a/src/mame/drivers/eolith.c +++ b/src/mame/drivers/eolith.c @@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( eolith45, eolith_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(512, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(eolith) + MCFG_SCREEN_UPDATE_DRIVER(eolith_state, screen_update_eolith) MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) MCFG_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/eolith16.c b/src/mame/drivers/eolith16.c index 9d35dea24eb..2dd5fa938ff 100644 --- a/src/mame/drivers/eolith16.c +++ b/src/mame/drivers/eolith16.c @@ -33,6 +33,7 @@ public: DECLARE_DRIVER_INIT(eolith16); DECLARE_VIDEO_START(eolith16); DECLARE_PALETTE_INIT(eolith16); + UINT32 screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -126,9 +127,8 @@ VIDEO_START_MEMBER(eolith16_state,eolith16) m_vram = auto_alloc_array(machine(), UINT16, 0x10000); } -static SCREEN_UPDATE_IND16( eolith16 ) +UINT32 eolith16_state::screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - eolith16_state *state = screen.machine().driver_data<eolith16_state>(); int x,y,count; int color; @@ -137,10 +137,10 @@ static SCREEN_UPDATE_IND16( eolith16 ) { for (x=0;x < 320/2;x++) { - color = state->m_vram[count + (0x10000/2) * (state->m_vbuffer ^ 1)] & 0xff; + color = m_vram[count + (0x10000/2) * (m_vbuffer ^ 1)] & 0xff; bitmap.pix16(y, x*2 + 0) = color; - color = (state->m_vram[count + (0x10000/2) * (state->m_vbuffer ^ 1)] & 0xff00) >> 8; + color = (m_vram[count + (0x10000/2) * (m_vbuffer ^ 1)] & 0xff00) >> 8; bitmap.pix16(y, x*2 + 1) = color; count++; @@ -189,7 +189,7 @@ static MACHINE_CONFIG_START( eolith16, eolith16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(512, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199) - MCFG_SCREEN_UPDATE_STATIC(eolith16) + MCFG_SCREEN_UPDATE_DRIVER(eolith16_state, screen_update_eolith16) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c index e0aa19cd52e..428556737f8 100644 --- a/src/mame/drivers/epos.c +++ b/src/mame/drivers/epos.c @@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( epos, epos_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(272, 241) MCFG_SCREEN_VISIBLE_AREA(0, 271, 0, 235) - MCFG_SCREEN_UPDATE_STATIC(epos) + MCFG_SCREEN_UPDATE_DRIVER(epos_state, screen_update_epos) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( dealer, epos_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(272, 241) MCFG_SCREEN_VISIBLE_AREA(0, 271, 0, 235) - MCFG_SCREEN_UPDATE_STATIC(epos) + MCFG_SCREEN_UPDATE_DRIVER(epos_state, screen_update_epos) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c index c88baa6ec81..d9c146c8c24 100644 --- a/src/mame/drivers/eprom.c +++ b/src/mame/drivers/eprom.c @@ -426,7 +426,7 @@ static MACHINE_CONFIG_START( eprom, eprom_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a SYNGEN chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(eprom) + MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_eprom) MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom) @@ -457,7 +457,7 @@ static MACHINE_CONFIG_START( klaxp, eprom_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a SYNGEN chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(eprom) + MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_eprom) MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom) @@ -488,7 +488,7 @@ static MACHINE_CONFIG_START( guts, eprom_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a SYNGEN chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(guts) + MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_guts) MCFG_VIDEO_START_OVERRIDE(eprom_state,guts) diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c index eb7736e82bb..273fb29ea01 100644 --- a/src/mame/drivers/equites.c +++ b/src/mame/drivers/equites.c @@ -1263,7 +1263,7 @@ static MACHINE_CONFIG_START( equites, equites_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 3*8, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(equites) + MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_equites) MCFG_GFXDECODE(equites) MCFG_PALETTE_LENGTH(0x180) @@ -1300,7 +1300,7 @@ static MACHINE_CONFIG_START( splndrbt, equites_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(splndrbt) + MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_splndrbt) MCFG_GFXDECODE(splndrbt) MCFG_PALETTE_LENGTH(0x280) diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c index 99ed71bbff9..76075fc2221 100644 --- a/src/mame/drivers/esd16.c +++ b/src/mame/drivers/esd16.c @@ -630,7 +630,7 @@ static MACHINE_CONFIG_START( esd16, esd16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x140, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0+8, 0x100-8-1) - MCFG_SCREEN_UPDATE_STATIC(hedpanic) + MCFG_SCREEN_UPDATE_DRIVER(esd16_state, screen_update_hedpanic) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 0); diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c index a11ce729649..b8f7a5c4c7f 100644 --- a/src/mame/drivers/esh.c +++ b/src/mame/drivers/esh.c @@ -49,6 +49,7 @@ public: DECLARE_DRIVER_INIT(esh); virtual void machine_start(); virtual void palette_init(); + UINT32 screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -57,9 +58,8 @@ public: /* VIDEO GOODS */ -static SCREEN_UPDATE_RGB32( esh ) +UINT32 esh_state::screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - esh_state *state = screen.machine().driver_data<esh_state>(); int charx, chary; /* clear */ @@ -72,13 +72,13 @@ static SCREEN_UPDATE_RGB32( esh ) { int current_screen_character = (chary*32) + charx; - int palIndex = (state->m_tile_control_ram[current_screen_character] & 0x0f); - int tileOffs = (state->m_tile_control_ram[current_screen_character] & 0x10) >> 4; - //int blinkLine = (state->m_tile_control_ram[current_screen_character] & 0x40) >> 6; - //int blinkChar = (state->m_tile_control_ram[current_screen_character] & 0x80) >> 7; + int palIndex = (m_tile_control_ram[current_screen_character] & 0x0f); + int tileOffs = (m_tile_control_ram[current_screen_character] & 0x10) >> 4; + //int blinkLine = (m_tile_control_ram[current_screen_character] & 0x40) >> 6; + //int blinkChar = (m_tile_control_ram[current_screen_character] & 0x80) >> 7; drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], - state->m_tile_ram[current_screen_character] + (0x100 * tileOffs), + m_tile_ram[current_screen_character] + (0x100 * tileOffs), palIndex, 0, 0, charx*8, chary*8, 0); } @@ -308,7 +308,7 @@ static MACHINE_CONFIG_START( esh, esh_state ) MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(256, 256, esh) + MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, esh_state, screen_update_esh) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c index a909f64dbac..4b4d514b284 100644 --- a/src/mame/drivers/espial.c +++ b/src/mame/drivers/espial.c @@ -337,7 +337,7 @@ static MACHINE_CONFIG_START( espial, espial_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(espial) + MCFG_SCREEN_UPDATE_DRIVER(espial_state, screen_update_espial) MCFG_GFXDECODE(espial) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c index be1cb3f0ed2..cbc19d2c6a9 100644 --- a/src/mame/drivers/esripsys.c +++ b/src/mame/drivers/esripsys.c @@ -716,7 +716,7 @@ static MACHINE_CONFIG_START( esripsys, esripsys_state ) /* Video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(ESRIPSYS_PIXEL_CLOCK, ESRIPSYS_HTOTAL, ESRIPSYS_HBLANK_END, ESRIPSYS_HBLANK_START, ESRIPSYS_VTOTAL, ESRIPSYS_VBLANK_END, ESRIPSYS_VBLANK_START) - MCFG_SCREEN_UPDATE_STATIC(esripsys) + MCFG_SCREEN_UPDATE_DRIVER(esripsys_state, screen_update_esripsys) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c index 5040f670a84..8143a1b7f3c 100644 --- a/src/mame/drivers/ettrivia.c +++ b/src/mame/drivers/ettrivia.c @@ -60,6 +60,7 @@ public: TILE_GET_INFO_MEMBER(get_tile_info_fg); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -260,11 +261,10 @@ void ettrivia_state::video_start() m_fg_tilemap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16( ettrivia ) +UINT32 ettrivia_state::screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - ettrivia_state *state = screen.machine().driver_data<ettrivia_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0,0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -311,7 +311,7 @@ static MACHINE_CONFIG_START( ettrivia, ettrivia_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(ettrivia) + MCFG_SCREEN_UPDATE_DRIVER(ettrivia_state, screen_update_ettrivia) MCFG_GFXDECODE(ettrivia) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c index a2c82bf00f3..bd12cd744cc 100644 --- a/src/mame/drivers/exedexes.c +++ b/src/mame/drivers/exedexes.c @@ -243,7 +243,7 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(exedexes) + MCFG_SCREEN_UPDATE_DRIVER(exedexes_state, screen_update_exedexes) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(exedexes) diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c index 8c89178b8a2..4fc73995fdc 100644 --- a/src/mame/drivers/exerion.c +++ b/src/mame/drivers/exerion.c @@ -418,7 +418,7 @@ static MACHINE_CONFIG_START( exerion, exerion_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(EXERION_PIXEL_CLOCK, EXERION_HTOTAL, EXERION_HBEND, EXERION_HBSTART, EXERION_VTOTAL, EXERION_VBEND, EXERION_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(exerion) + MCFG_SCREEN_UPDATE_DRIVER(exerion_state, screen_update_exerion) MCFG_GFXDECODE(exerion) MCFG_PALETTE_LENGTH(256*3) diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c index 24df2a13f69..b0b9c514ce3 100644 --- a/src/mame/drivers/exidy.c +++ b/src/mame/drivers/exidy.c @@ -815,7 +815,7 @@ static MACHINE_CONFIG_START( base, exidy_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(EXIDY_PIXEL_CLOCK, EXIDY_HTOTAL, EXIDY_HBEND, EXIDY_HBSTART, EXIDY_VTOTAL, EXIDY_VBEND, EXIDY_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(exidy) + MCFG_SCREEN_UPDATE_DRIVER(exidy_state, screen_update_exidy) MACHINE_CONFIG_END diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c index 9a30a91cedd..be6b0dfcbda 100644 --- a/src/mame/drivers/expro02.c +++ b/src/mame/drivers/expro02.c @@ -182,6 +182,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -196,9 +197,8 @@ void expro02_state::palette_init() palette_set_color_rgb(machine(),2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0)); } -SCREEN_UPDATE_IND16( galsnew ) +UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - expro02_state *state = screen.machine().driver_data<expro02_state>(); // kaneko16_fill_bitmap(screen.machine(),bitmap,cliprect); int y,x; int count; @@ -211,7 +211,7 @@ SCREEN_UPDATE_IND16( galsnew ) for (x=0;x<256;x++) { - UINT16 dat = (state->m_galsnew_fg_pixram[count] & 0xfffe)>>1; + UINT16 dat = (m_galsnew_fg_pixram[count] & 0xfffe)>>1; dat+=2048; dest[x] = dat; count++; @@ -225,7 +225,7 @@ SCREEN_UPDATE_IND16( galsnew ) for (x=0;x<256;x++) { - UINT16 dat = (state->m_galsnew_bg_pixram[count]); + UINT16 dat = (m_galsnew_bg_pixram[count]); //dat &=0x3ff; if (dat) dest[x] = dat; @@ -240,14 +240,14 @@ SCREEN_UPDATE_IND16( galsnew ) screen.machine().priority_bitmap.fill(0, cliprect); - state->m_view2_0->kaneko16_prepare(bitmap, cliprect); + m_view2_0->kaneko16_prepare(bitmap, cliprect); for ( i = 0; i < 8; i++ ) { - state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i); + m_view2_0->render_tilemap_chip(bitmap,cliprect,i); } - state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, state->m_spriteram, state->m_spriteram.bytes()); + m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes()); return 0; } @@ -557,7 +557,7 @@ static MACHINE_CONFIG_START( galsnew, expro02_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-32-1) - MCFG_SCREEN_UPDATE_STATIC(galsnew) + MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_galsnew) MCFG_GFXDECODE(1x4bit_1x4bit) MCFG_PALETTE_LENGTH(2048 + 32768) diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c index 0953205323a..242a87544ea 100644 --- a/src/mame/drivers/exprraid.c +++ b/src/mame/drivers/exprraid.c @@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( exprraid, exprraid_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(exprraid) + MCFG_SCREEN_UPDATE_DRIVER(exprraid_state, screen_update_exprraid) MCFG_GFXDECODE(exprraid) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c index 7d81d5f976e..161624f96fe 100644 --- a/src/mame/drivers/exzisus.c +++ b/src/mame/drivers/exzisus.c @@ -295,7 +295,7 @@ static MACHINE_CONFIG_START( exzisus, exzisus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(exzisus) + MCFG_SCREEN_UPDATE_DRIVER(exzisus_state, screen_update_exzisus) MCFG_GFXDECODE(exzisus) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/f-32.c b/src/mame/drivers/f-32.c index 6332b831cff..f865958d397 100644 --- a/src/mame/drivers/f-32.c +++ b/src/mame/drivers/f-32.c @@ -29,12 +29,12 @@ public: required_device<e132xn_device> m_maincpu; required_shared_ptr<UINT32> m_videoram; DECLARE_READ32_MEMBER(f32_input_port_1_r); + UINT32 screen_update_mosaicf2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; -static SCREEN_UPDATE_IND16( mosaicf2 ) +UINT32 mosaicf2_state::screen_update_mosaicf2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mosaicf2_state *state = screen.machine().driver_data<mosaicf2_state>(); offs_t offs; for (offs = 0; offs < 0x10000; offs++) @@ -44,8 +44,8 @@ static SCREEN_UPDATE_IND16( mosaicf2 ) if ((x < 0xa0) && (y < 0xe0)) { - bitmap.pix16(y, (x * 2) + 0) = (state->m_videoram[offs] >> 16) & 0x7fff; - bitmap.pix16(y, (x * 2) + 1) = (state->m_videoram[offs] >> 0) & 0x7fff; + bitmap.pix16(y, (x * 2) + 0) = (m_videoram[offs] >> 16) & 0x7fff; + bitmap.pix16(y, (x * 2) + 1) = (m_videoram[offs] >> 0) & 0x7fff; } } @@ -147,7 +147,7 @@ static MACHINE_CONFIG_START( mosaicf2, mosaicf2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223) - MCFG_SCREEN_UPDATE_STATIC(mosaicf2) + MCFG_SCREEN_UPDATE_DRIVER(mosaicf2_state, screen_update_mosaicf2) MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) MCFG_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c index 18a27ec18b0..6a5e0a69bc8 100644 --- a/src/mame/drivers/f1gp.c +++ b/src/mame/drivers/f1gp.c @@ -471,7 +471,7 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(f1gp) + MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp) MCFG_GFXDECODE(f1gp) MCFG_PALETTE_LENGTH(2048) @@ -514,7 +514,7 @@ static MACHINE_CONFIG_START( f1gpb, f1gp_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(f1gpb) + MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gpb) MCFG_GFXDECODE(f1gp) MCFG_PALETTE_LENGTH(2048) @@ -540,7 +540,7 @@ static MACHINE_CONFIG_DERIVED( f1gp2, f1gp ) MCFG_GFXDECODE(f1gp2) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(f1gp2) + MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp2) MCFG_DEVICE_REMOVE("k053936") MCFG_K053936_ADD("k053936", f1gp2_k053936_intf) diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c index 22320ae46ef..9e6a01e17b6 100644 --- a/src/mame/drivers/famibox.c +++ b/src/mame/drivers/famibox.c @@ -109,6 +109,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /****************************************************** @@ -538,7 +539,7 @@ void famibox_state::video_start() { } -static SCREEN_UPDATE_IND16( famibox ) +UINT32 famibox_state::screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* render the ppu */ ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu"); @@ -589,7 +590,7 @@ static MACHINE_CONFIG_START( famibox, famibox_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(famibox) + MCFG_SCREEN_UPDATE_DRIVER(famibox_state, screen_update_famibox) MCFG_GFXDECODE(famibox) MCFG_PALETTE_LENGTH(8*4*16) diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c index 8b65d0f41d5..471a1edde6d 100644 --- a/src/mame/drivers/fantland.c +++ b/src/mame/drivers/fantland.c @@ -865,7 +865,7 @@ static MACHINE_CONFIG_START( fantland, fantland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(352,256) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(fantland) + MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland) MCFG_GFXDECODE(fantland) MCFG_PALETTE_LENGTH(256) @@ -915,7 +915,7 @@ static MACHINE_CONFIG_START( galaxygn, fantland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(352,256) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(fantland) + MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland) MCFG_GFXDECODE(fantland) MCFG_PALETTE_LENGTH(256) @@ -1019,7 +1019,7 @@ static MACHINE_CONFIG_START( borntofi, fantland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(352,256) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(fantland) + MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland) MCFG_GFXDECODE(fantland) MCFG_PALETTE_LENGTH(256) @@ -1059,7 +1059,7 @@ static MACHINE_CONFIG_START( wheelrun, fantland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256,224) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(fantland) + MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland) MCFG_GFXDECODE(fantland) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/fastfred.c b/src/mame/drivers/fastfred.c index 215d9eddd55..08d14725f9e 100644 --- a/src/mame/drivers/fastfred.c +++ b/src/mame/drivers/fastfred.c @@ -659,7 +659,7 @@ static MACHINE_CONFIG_START( fastfred, fastfred_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) //CLOCK/16/60 MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(fastfred) + MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_fastfred) MCFG_GFXDECODE(fastfred) MCFG_PALETTE_LENGTH(32*8) @@ -706,7 +706,7 @@ static MACHINE_CONFIG_DERIVED( imago, fastfred ) MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(imago) + MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_imago) MACHINE_CONFIG_END #undef CLOCK diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c index d3a46c5b006..c8745136123 100644 --- a/src/mame/drivers/fastlane.c +++ b/src/mame/drivers/fastlane.c @@ -228,7 +228,7 @@ static MACHINE_CONFIG_START( fastlane, fastlane_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(37*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(fastlane) + MCFG_SCREEN_UPDATE_DRIVER(fastlane_state, screen_update_fastlane) MCFG_GFXDECODE(fastlane) MCFG_PALETTE_LENGTH(1024*16) diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c index e7890604b7a..d7617679f84 100644 --- a/src/mame/drivers/fcombat.c +++ b/src/mame/drivers/fcombat.c @@ -298,7 +298,7 @@ static MACHINE_CONFIG_START( fcombat, fcombat_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(FCOMBAT_PIXEL_CLOCK, FCOMBAT_HTOTAL, FCOMBAT_HBEND, FCOMBAT_HBSTART, FCOMBAT_VTOTAL, FCOMBAT_VBEND, FCOMBAT_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(fcombat) + MCFG_SCREEN_UPDATE_DRIVER(fcombat_state, screen_update_fcombat) MCFG_GFXDECODE(fcombat) MCFG_PALETTE_LENGTH(256*3) diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c index 372a84265be..ab1861a2fa6 100644 --- a/src/mame/drivers/fcrash.c +++ b/src/mame/drivers/fcrash.c @@ -217,16 +217,15 @@ static void fcrash_build_palette( running_machine &machine ) } } -static SCREEN_UPDATE_IND16( fcrash ) +UINT32 cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cps_state *state = screen.machine().driver_data<cps_state>(); int layercontrol, l0, l1, l2, l3; - int videocontrol = state->m_cps_a_regs[0x22 / 2]; + int videocontrol = m_cps_a_regs[0x22 / 2]; - state->flip_screen_set(videocontrol & 0x8000); + flip_screen_set(videocontrol & 0x8000); - layercontrol = state->m_cps_b_regs[0x20 / 2]; + layercontrol = m_cps_b_regs[0x20 / 2]; /* Get video memory base registers */ cps1_get_video_base(screen.machine()); @@ -236,37 +235,37 @@ static SCREEN_UPDATE_IND16( fcrash ) fcrash_update_transmasks(screen.machine()); - state->m_bg_tilemap[0]->set_scrollx(0, state->m_scroll1x - 62); - state->m_bg_tilemap[0]->set_scrolly(0, state->m_scroll1y); + m_bg_tilemap[0]->set_scrollx(0, m_scroll1x - 62); + m_bg_tilemap[0]->set_scrolly(0, m_scroll1y); if (videocontrol & 0x01) /* linescroll enable */ { - int scrly = -state->m_scroll2y; + int scrly = -m_scroll2y; int i; int otheroffs; - state->m_bg_tilemap[1]->set_scroll_rows(1024); + m_bg_tilemap[1]->set_scroll_rows(1024); - otheroffs = state->m_cps_a_regs[CPS1_ROWSCROLL_OFFS]; + otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS]; for (i = 0; i < 256; i++) - state->m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, state->m_scroll2x + state->m_other[(i + otheroffs) & 0x3ff]); + m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]); } else { - state->m_bg_tilemap[1]->set_scroll_rows(1); - state->m_bg_tilemap[1]->set_scrollx(0, state->m_scroll2x - 60); + m_bg_tilemap[1]->set_scroll_rows(1); + m_bg_tilemap[1]->set_scrollx(0, m_scroll2x - 60); } - state->m_bg_tilemap[1]->set_scrolly(0, state->m_scroll2y); - state->m_bg_tilemap[2]->set_scrollx(0, state->m_scroll3x - 64); - state->m_bg_tilemap[2]->set_scrolly(0, state->m_scroll3y); + m_bg_tilemap[1]->set_scrolly(0, m_scroll2y); + m_bg_tilemap[2]->set_scrollx(0, m_scroll3x - 64); + m_bg_tilemap[2]->set_scrolly(0, m_scroll3y); /* turn all tilemaps on regardless of settings in get_video_base() */ /* write a custom get_video_base for this bootleg hardware? */ - state->m_bg_tilemap[0]->enable(1); - state->m_bg_tilemap[1]->enable(1); - state->m_bg_tilemap[2]->enable(1); + m_bg_tilemap[0]->enable(1); + m_bg_tilemap[1]->enable(1); + m_bg_tilemap[2]->enable(1); /* Blank screen */ bitmap.fill(0xbff, cliprect); @@ -298,15 +297,14 @@ static SCREEN_UPDATE_IND16( fcrash ) } // doesn't have the scroll offsets like fcrash -static SCREEN_UPDATE_IND16( kodb ) +UINT32 cps_state::screen_update_kodb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - cps_state *state = screen.machine().driver_data<cps_state>(); int layercontrol, l0, l1, l2, l3; - int videocontrol = state->m_cps_a_regs[0x22 / 2]; + int videocontrol = m_cps_a_regs[0x22 / 2]; - state->flip_screen_set(videocontrol & 0x8000); + flip_screen_set(videocontrol & 0x8000); - layercontrol = state->m_cps_b_regs[0x20 / 2]; + layercontrol = m_cps_b_regs[0x20 / 2]; /* Get video memory base registers */ cps1_get_video_base(screen.machine()); @@ -316,38 +314,38 @@ static SCREEN_UPDATE_IND16( kodb ) fcrash_update_transmasks(screen.machine()); - state->m_bg_tilemap[0]->set_scrollx(0, state->m_scroll1x); - state->m_bg_tilemap[0]->set_scrolly(0, state->m_scroll1y); + m_bg_tilemap[0]->set_scrollx(0, m_scroll1x); + m_bg_tilemap[0]->set_scrolly(0, m_scroll1y); if (videocontrol & 0x01) /* linescroll enable */ { - int scrly= -state->m_scroll2y; + int scrly= -m_scroll2y; int i; int otheroffs; - state->m_bg_tilemap[1]->set_scroll_rows(1024); + m_bg_tilemap[1]->set_scroll_rows(1024); - otheroffs = state->m_cps_a_regs[CPS1_ROWSCROLL_OFFS]; + otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS]; for (i = 0; i < 256; i++) - state->m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, state->m_scroll2x + state->m_other[(i + otheroffs) & 0x3ff]); + m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]); } else { - state->m_bg_tilemap[1]->set_scroll_rows(1); - state->m_bg_tilemap[1]->set_scrollx(0, state->m_scroll2x); + m_bg_tilemap[1]->set_scroll_rows(1); + m_bg_tilemap[1]->set_scrollx(0, m_scroll2x); } - state->m_bg_tilemap[1]->set_scrolly(0, state->m_scroll2y); - state->m_bg_tilemap[2]->set_scrollx(0, state->m_scroll3x); - state->m_bg_tilemap[2]->set_scrolly(0, state->m_scroll3y); + m_bg_tilemap[1]->set_scrolly(0, m_scroll2y); + m_bg_tilemap[2]->set_scrollx(0, m_scroll3x); + m_bg_tilemap[2]->set_scrolly(0, m_scroll3y); /* turn all tilemaps on regardless of settings in get_video_base() */ /* write a custom get_video_base for this bootleg hardware? */ - state->m_bg_tilemap[0]->enable(1); - state->m_bg_tilemap[1]->enable(1); - state->m_bg_tilemap[2]->enable(1); + m_bg_tilemap[0]->enable(1); + m_bg_tilemap[1]->enable(1); + m_bg_tilemap[2]->enable(1); /* Blank screen */ bitmap.fill(0xbff, cliprect); @@ -742,8 +740,8 @@ static MACHINE_CONFIG_START( fcrash, cps_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(fcrash) - MCFG_SCREEN_VBLANK_STATIC(cps1) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(4096) @@ -792,8 +790,8 @@ static MACHINE_CONFIG_START( kodb, cps_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(kodb) - MCFG_SCREEN_VBLANK_STATIC(cps1) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_kodb) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) @@ -948,8 +946,8 @@ static MACHINE_CONFIG_START( sgyxz, cps_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(kodb) - MCFG_SCREEN_VBLANK_STATIC(cps1) + MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_kodb) + MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) diff --git a/src/mame/drivers/feversoc.c b/src/mame/drivers/feversoc.c index e9b93ed2035..3d8d2768d6d 100644 --- a/src/mame/drivers/feversoc.c +++ b/src/mame/drivers/feversoc.c @@ -78,6 +78,7 @@ public: DECLARE_WRITE32_MEMBER(output_w); DECLARE_DRIVER_INIT(feversoc); virtual void video_start(); + UINT32 screen_update_feversoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -88,10 +89,9 @@ void feversoc_state::video_start() } -static SCREEN_UPDATE_IND16( feversoc ) +UINT32 feversoc_state::screen_update_feversoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - feversoc_state *state = screen.machine().driver_data<feversoc_state>(); - UINT32 *spriteram32 = state->m_spriteram; + UINT32 *spriteram32 = m_spriteram; int offs,spr_offs,colour,sx,sy,h,w,dx,dy; bitmap.fill(screen.machine().pens[0], cliprect); //black pen @@ -264,7 +264,7 @@ static MACHINE_CONFIG_START( feversoc, feversoc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) //dynamic resolution? - MCFG_SCREEN_UPDATE_STATIC(feversoc) + MCFG_SCREEN_UPDATE_DRIVER(feversoc_state, screen_update_feversoc) MCFG_GFXDECODE(feversoc) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c index 0b9373adfa4..0be93b869a7 100644 --- a/src/mame/drivers/fgoal.c +++ b/src/mame/drivers/fgoal.c @@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( fgoal, fgoal_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 263) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 255) - MCFG_SCREEN_UPDATE_STATIC(fgoal) + MCFG_SCREEN_UPDATE_DRIVER(fgoal_state, screen_update_fgoal) MCFG_GFXDECODE(fgoal) MCFG_PALETTE_LENGTH(128 + 16 + 1) diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c index 5de9bdb2ceb..edb1c4f7693 100644 --- a/src/mame/drivers/finalizr.c +++ b/src/mame/drivers/finalizr.c @@ -292,7 +292,7 @@ static MACHINE_CONFIG_START( finalizr, finalizr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 35*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(finalizr) + MCFG_SCREEN_UPDATE_DRIVER(finalizr_state, screen_update_finalizr) MCFG_GFXDECODE(finalizr) MCFG_PALETTE_LENGTH(2*16*16) diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c index ae6378af0a3..709c9dd77a6 100644 --- a/src/mame/drivers/firebeat.c +++ b/src/mame/drivers/firebeat.c @@ -183,6 +183,8 @@ public: DECLARE_MACHINE_START(firebeat); DECLARE_MACHINE_RESET(firebeat); DECLARE_VIDEO_START(firebeat); + UINT32 screen_update_firebeat_0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_firebeat_1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -598,8 +600,8 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r return 0; } -static SCREEN_UPDATE_IND16( firebeat_0 ) { return update_screen(screen, bitmap, cliprect, 0); } -static SCREEN_UPDATE_IND16( firebeat_1 ) { return update_screen(screen, bitmap, cliprect, 1); } +UINT32 firebeat_state::screen_update_firebeat_0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); } +UINT32 firebeat_state::screen_update_firebeat_1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); } static UINT32 GCU_r(running_machine &machine, int chip, UINT32 offset, UINT32 mem_mask) { @@ -1994,7 +1996,7 @@ static MACHINE_CONFIG_START( firebeat, firebeat_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(firebeat_0) + MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_0) MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat) @@ -2040,14 +2042,14 @@ static MACHINE_CONFIG_START( firebeat2, firebeat_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(firebeat_0) + MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_0) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(firebeat_1) + MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_1) MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat) diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c index 0f9a29efcdc..603d9632268 100644 --- a/src/mame/drivers/firefox.c +++ b/src/mame/drivers/firefox.c @@ -98,6 +98,7 @@ public: TILE_GET_INFO_MEMBER(bgtile_get_info); virtual void machine_start(); virtual void video_start(); + UINT32 screen_update_firefox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -214,9 +215,8 @@ void firefox_state::video_start() } -static SCREEN_UPDATE_RGB32( firefox ) +UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - firefox_state *state = screen.machine().driver_data<firefox_state>(); int sprite; int gfxtop = screen.visible_area().min_y; @@ -224,7 +224,7 @@ static SCREEN_UPDATE_RGB32( firefox ) for( sprite = 0; sprite < 32; sprite++ ) { - UINT8 *sprite_data = state->m_spriteram + ( 0x200 * state->m_sprite_bank ) + ( sprite * 16 ); + UINT8 *sprite_data = m_spriteram + ( 0x200 * m_sprite_bank ) + ( sprite * 16 ); int flags = sprite_data[ 0 ]; int y = sprite_data[ 1 ] + ( 256 * ( ( flags >> 0 ) & 1 ) ); int x = sprite_data[ 2 ] + ( 256 * ( ( flags >> 1 ) & 1 ) ); @@ -245,7 +245,7 @@ static SCREEN_UPDATE_RGB32( firefox ) } } - state->m_bgtiles->draw(bitmap, cliprect, 0, 0 ); + m_bgtiles->draw(bitmap, cliprect, 0, 0 ); return 0; } @@ -716,7 +716,7 @@ static MACHINE_CONFIG_START( firefox, firefox_state ) MCFG_LASERDISC_22VP931_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(64*8, 525, firefox) + MCFG_LASERDISC_OVERLAY_DRIVER(64*8, 525, firefox_state, screen_update_firefox) MCFG_LASERDISC_OVERLAY_CLIP(7*8, 53*8-1, 44, 480+44) MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c index 74fe287930a..30b54082786 100644 --- a/src/mame/drivers/firetrap.c +++ b/src/mame/drivers/firetrap.c @@ -657,7 +657,7 @@ static MACHINE_CONFIG_START( firetrap, firetrap_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(firetrap) + MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap) MCFG_GFXDECODE(firetrap) MCFG_PALETTE_LENGTH(256) @@ -697,7 +697,7 @@ static MACHINE_CONFIG_START( firetrapbl, firetrap_state ) MCFG_GFXDECODE(firetrap) MCFG_PALETTE_LENGTH(256) - MCFG_SCREEN_UPDATE_STATIC(firetrap) + MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c index 9c14c2e2fae..baa91dd8e4c 100644 --- a/src/mame/drivers/firetrk.c +++ b/src/mame/drivers/firetrk.c @@ -887,7 +887,7 @@ static MACHINE_CONFIG_START( firetrk, firetrk_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(320, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(firetrk) + MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_firetrk) MCFG_PALETTE_LENGTH(28) MCFG_GFXDECODE(firetrk) @@ -909,7 +909,7 @@ static MACHINE_CONFIG_DERIVED( superbug, firetrk ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(superbug) + MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_superbug) MCFG_VIDEO_START_OVERRIDE(firetrk_state,superbug) MCFG_GFXDECODE(superbug) @@ -930,7 +930,7 @@ static MACHINE_CONFIG_DERIVED( montecar, firetrk ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(montecar) + MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_montecar) MCFG_VIDEO_START_OVERRIDE(firetrk_state,montecar) MCFG_GFXDECODE(montecar) diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c index afa8f1a930a..233eaa4521b 100644 --- a/src/mame/drivers/fitfight.c +++ b/src/mame/drivers/fitfight.c @@ -751,7 +751,7 @@ static MACHINE_CONFIG_START( fitfight, fitfight_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(fitfight) + MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight) MCFG_PALETTE_LENGTH(0x800) @@ -776,7 +776,7 @@ static MACHINE_CONFIG_START( bbprot, fitfight_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(fitfight) + MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/flipjack.c b/src/mame/drivers/flipjack.c index 5f2cbd92664..8a6ce406bed 100644 --- a/src/mame/drivers/flipjack.c +++ b/src/mame/drivers/flipjack.c @@ -122,6 +122,7 @@ public: DECLARE_WRITE8_MEMBER(flipjack_portc_w); virtual void machine_start(); virtual void palette_init(); + UINT32 screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -147,17 +148,16 @@ void flipjack_state::palette_init() } -static SCREEN_UPDATE_RGB32( flipjack ) +UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - flipjack_state *state = screen.machine().driver_data<flipjack_state>(); int x,y,count; bitmap.fill(get_black_pen(screen.machine()), cliprect); // draw playfield - if (state->m_layer & 2) + if (m_layer & 2) { - const UINT8 *blit_data = state->memregion("gfx2")->base(); + const UINT8 *blit_data = memregion("gfx2")->base(); count = 0; @@ -194,15 +194,15 @@ static SCREEN_UPDATE_RGB32( flipjack ) for (x=0;x<32;x++) { gfx_element *gfx = screen.machine().gfx[0]; - int tile = state->m_bank << 8 | state->m_vram[x+y*0x100]; - int color = state->m_cram[x+y*0x100] & 0x3f; + int tile = m_bank << 8 | m_vram[x+y*0x100]; + int color = m_cram[x+y*0x100] & 0x3f; drawgfx_transpen(bitmap, cliprect, gfx, tile, color, 0, 0, x*8, y*8, 0); } } // draw framebuffer - if (state->m_layer & 4) + if (m_layer & 4) { count = 0; @@ -213,7 +213,7 @@ static SCREEN_UPDATE_RGB32( flipjack ) UINT32 pen,color; int xi; - pen = (state->m_fbram[count] & 0xff)>>0; + pen = (m_fbram[count] & 0xff)>>0; for(xi=0;xi<8;xi++) { @@ -491,7 +491,7 @@ static MACHINE_CONFIG_START( flipjack, flipjack_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 0x188, 0, 0x100, 0x100, 0, 0xc0) // from crtc - MCFG_SCREEN_UPDATE_STATIC(flipjack) + MCFG_SCREEN_UPDATE_DRIVER(flipjack_state, screen_update_flipjack) MCFG_MC6845_ADD("crtc", HD6845, VIDEO_CLOCK/8, mc6845_intf) diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c index 323b46472a5..7b4f052cd88 100644 --- a/src/mame/drivers/flkatck.c +++ b/src/mame/drivers/flkatck.c @@ -236,7 +236,7 @@ static MACHINE_CONFIG_START( flkatck, flkatck_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(37*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(flkatck) + MCFG_SCREEN_UPDATE_DRIVER(flkatck_state, screen_update_flkatck) MCFG_GFXDECODE(flkatck) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c index ef360f0b1a2..bc54b918a6f 100644 --- a/src/mame/drivers/flower.c +++ b/src/mame/drivers/flower.c @@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( flower, flower_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(34*8, 33*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(flower) + MCFG_SCREEN_UPDATE_DRIVER(flower_state, screen_update_flower) MCFG_GFXDECODE(flower) diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c index 4975c8d99a3..0e166f2a1f0 100644 --- a/src/mame/drivers/flstory.c +++ b/src/mame/drivers/flstory.c @@ -1102,7 +1102,7 @@ static MACHINE_CONFIG_START( flstory, flstory_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(flstory) + MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory) MCFG_GFXDECODE(flstory) MCFG_PALETTE_LENGTH(512) @@ -1159,7 +1159,7 @@ static MACHINE_CONFIG_START( onna34ro, flstory_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(flstory) + MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory) MCFG_GFXDECODE(flstory) MCFG_PALETTE_LENGTH(512) @@ -1216,7 +1216,7 @@ static MACHINE_CONFIG_START( victnine, flstory_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(victnine) + MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_victnine) MCFG_GFXDECODE(flstory) MCFG_PALETTE_LENGTH(512) @@ -1279,7 +1279,7 @@ static MACHINE_CONFIG_START( rumba, flstory_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(rumba) + MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_rumba) MCFG_GFXDECODE(flstory) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c index 75d9fb43925..fdf99db5666 100644 --- a/src/mame/drivers/flyball.c +++ b/src/mame/drivers/flyball.c @@ -60,6 +60,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -99,25 +100,24 @@ void flyball_state::video_start() } -static SCREEN_UPDATE_IND16( flyball ) +UINT32 flyball_state::screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - flyball_state *state = screen.machine().driver_data<flyball_state>(); - int pitcherx = state->m_pitcher_horz; - int pitchery = state->m_pitcher_vert - 31; + int pitcherx = m_pitcher_horz; + int pitchery = m_pitcher_vert - 31; - int ballx = state->m_ball_horz - 1; - int bally = state->m_ball_vert - 17; + int ballx = m_ball_horz - 1; + int bally = m_ball_vert - 17; int x; int y; - state->m_tmap->mark_all_dirty(); + m_tmap->mark_all_dirty(); /* draw playfield */ - state->m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(bitmap, cliprect, 0, 0); /* draw pitcher */ - drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], state->m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1); + drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1); /* draw ball */ @@ -423,7 +423,7 @@ static MACHINE_CONFIG_START( flyball, flyball_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 262) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(flyball) + MCFG_SCREEN_UPDATE_DRIVER(flyball_state, screen_update_flyball) MCFG_GFXDECODE(flyball) MCFG_PALETTE_LENGTH(4) diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c index 4afeb21835e..eb4fbc6fa6d 100644 --- a/src/mame/drivers/foodf.c +++ b/src/mame/drivers/foodf.c @@ -371,7 +371,7 @@ static MACHINE_CONFIG_START( foodf, foodf_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 256, 259, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(foodf) + MCFG_SCREEN_UPDATE_DRIVER(foodf_state, screen_update_foodf) MCFG_VIDEO_START_OVERRIDE(foodf_state,foodf) diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c index 259a63d05bf..5c7826f69e4 100644 --- a/src/mame/drivers/fortecar.c +++ b/src/mame/drivers/fortecar.c @@ -343,6 +343,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -350,9 +351,8 @@ void fortecar_state::video_start() { } -static SCREEN_UPDATE_IND16(fortecar) +UINT32 fortecar_state::screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - fortecar_state *state = screen.machine().driver_data<fortecar_state>(); int x,y,count; count = 0; @@ -362,9 +362,9 @@ static SCREEN_UPDATE_IND16(fortecar) { int tile,color,bpp; - tile = (state->m_vram[(count*4)+1] | (state->m_vram[(count*4)+2]<<8)) & 0xfff; - color = state->m_vram[(count*4)+3] & 0x1f; - bpp = (state->m_vram[(count*4)+3] & 0x20) >> 5; + tile = (m_vram[(count*4)+1] | (m_vram[(count*4)+2]<<8)) & 0xfff; + color = m_vram[(count*4)+3] & 0x1f; + bpp = (m_vram[(count*4)+3] & 0x20) >> 5; if(bpp) color&=0x3; @@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( fortecar, fortecar_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(640, 256) MCFG_SCREEN_VISIBLE_AREA(0, 600-1, 0, 240-1) /* driven by CRTC */ - MCFG_SCREEN_UPDATE_STATIC(fortecar) + MCFG_SCREEN_UPDATE_DRIVER(fortecar_state, screen_update_fortecar) MCFG_EEPROM_ADD("eeprom", forte_eeprom_intf) diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c index 592d8697410..d69780e18d9 100644 --- a/src/mame/drivers/freekick.c +++ b/src/mame/drivers/freekick.c @@ -642,7 +642,7 @@ static MACHINE_CONFIG_START( base, freekick_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pbillrd) + MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_pbillrd) MCFG_PALETTE_LENGTH(0x200) MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) @@ -687,7 +687,7 @@ static MACHINE_CONFIG_DERIVED( freekickb, base ) MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(freekick) + MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_freekick) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( gigas, base ) @@ -700,7 +700,7 @@ static MACHINE_CONFIG_DERIVED( gigas, base ) MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(gigas) + MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_gigas) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( oigas, gigas ) diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c index 6b26d9af908..40c9b0d98ba 100644 --- a/src/mame/drivers/fromanc2.c +++ b/src/mame/drivers/fromanc2.c @@ -570,14 +570,14 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromanc2_left) + MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromanc2_right) + MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right) MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc2) @@ -620,14 +620,14 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromanc2_left) + MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromanc2_right) + MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right) MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromancr) @@ -667,14 +667,14 @@ static MACHINE_CONFIG_START( fromanc4, fromanc2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(2048, 256) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromanc2_left) + MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromanc2_right) + MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right) MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc4) diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c index 442bda25619..41256814adf 100644 --- a/src/mame/drivers/fromance.c +++ b/src/mame/drivers/fromance.c @@ -1018,7 +1018,7 @@ static MACHINE_CONFIG_START( nekkyoku, fromance_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromance) + MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) MCFG_GFXDECODE(fromance) MCFG_PALETTE_LENGTH(1024) @@ -1056,7 +1056,7 @@ static MACHINE_CONFIG_START( idolmj, fromance_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromance) + MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) MCFG_GFXDECODE(fromance) MCFG_PALETTE_LENGTH(2048) @@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_START( fromance, fromance_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(fromance) + MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) MCFG_GFXDECODE(fromance) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c index 592a40f011f..0ff86a5c21c 100644 --- a/src/mame/drivers/funkball.c +++ b/src/mame/drivers/funkball.c @@ -164,6 +164,7 @@ public: DECLARE_WRITE_LINE_MEMBER(funkball_pic8259_1_set_int_line); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_funkball(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; void funkball_state::video_start() @@ -1134,7 +1135,7 @@ void funkball_state::machine_reset() m_voodoo_pci_regs.base_addr = 0xff000000; } -SCREEN_UPDATE_RGB32( funkball ) +UINT32 funkball_state::screen_update_funkball(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { voodoo_update(screen.machine().device("voodoo_0"), bitmap, cliprect); return 0; diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c index ddc30a1fcd8..cef93cbe6a2 100644 --- a/src/mame/drivers/funkybee.c +++ b/src/mame/drivers/funkybee.c @@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( funkybee, funkybee_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(12, 32*8-8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(funkybee) + MCFG_SCREEN_UPDATE_DRIVER(funkybee_state, screen_update_funkybee) MCFG_GFXDECODE(funkybee) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c index a022ab19d53..b48686451d1 100644 --- a/src/mame/drivers/funkyjet.c +++ b/src/mame/drivers/funkyjet.c @@ -324,7 +324,7 @@ static MACHINE_CONFIG_START( funkyjet, funkyjet_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(funkyjet) + MCFG_SCREEN_UPDATE_DRIVER(funkyjet_state, screen_update_funkyjet) MCFG_GFXDECODE(funkyjet) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c index 5175865d59c..3208b7740db 100644 --- a/src/mame/drivers/funworld.c +++ b/src/mame/drivers/funworld.c @@ -2366,7 +2366,7 @@ static MACHINE_CONFIG_START( fw1stpal, funworld_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */ MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1) /* Taken from MC6845 init, registers 01 & 06 */ - MCFG_SCREEN_UPDATE_STATIC(funworld) + MCFG_SCREEN_UPDATE_DRIVER(funworld_state, screen_update_funworld) MCFG_GFXDECODE(fw1stpal) diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c index 5823b292229..58acb3889cf 100644 --- a/src/mame/drivers/funybubl.c +++ b/src/mame/drivers/funybubl.c @@ -234,7 +234,7 @@ static MACHINE_CONFIG_START( funybubl, funybubl_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(12*8, 512-12*8-1, 16, 256-16-1) // MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(funybubl) + MCFG_SCREEN_UPDATE_DRIVER(funybubl_state, screen_update_funybubl) MCFG_GFXDECODE(funybubl) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c index dcf7fdc7e2d..e8c1ea4dd45 100644 --- a/src/mame/drivers/fuukifg2.c +++ b/src/mame/drivers/fuukifg2.c @@ -478,7 +478,7 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(fuuki16) + MCFG_SCREEN_UPDATE_DRIVER(fuuki16_state, screen_update_fuuki16) MCFG_GFXDECODE(fuuki16) MCFG_PALETTE_LENGTH(0x800*4) diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c index 539eabff04c..ac076081065 100644 --- a/src/mame/drivers/fuukifg3.c +++ b/src/mame/drivers/fuukifg3.c @@ -605,8 +605,8 @@ static MACHINE_CONFIG_START( fuuki32, fuuki32_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(fuuki32) - MCFG_SCREEN_VBLANK_STATIC(fuuki32) + MCFG_SCREEN_UPDATE_DRIVER(fuuki32_state, screen_update_fuuki32) + MCFG_SCREEN_VBLANK_DRIVER(fuuki32_state, screen_eof_fuuki32) MCFG_GFXDECODE(fuuki32) MCFG_PALETTE_LENGTH(0x4000/2) diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c index 93f4e4172a0..ea4aafeb7bf 100644 --- a/src/mame/drivers/gaelco.c +++ b/src/mame/drivers/gaelco.c @@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( bigkarnk, gaelco_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(bigkarnk) + MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_bigkarnk) MCFG_GFXDECODE(0x100000) MCFG_PALETTE_LENGTH(1024) @@ -551,7 +551,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(maniacsq) + MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) MCFG_GFXDECODE(0x100000) MCFG_PALETTE_LENGTH(1024) @@ -581,7 +581,7 @@ static MACHINE_CONFIG_START( squash, gaelco_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(maniacsq) + MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) MCFG_GFXDECODE(0x100000) MCFG_PALETTE_LENGTH(1024) @@ -611,7 +611,7 @@ static MACHINE_CONFIG_START( thoop, gaelco_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(maniacsq) + MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) MCFG_GFXDECODE(0x100000) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c index 80a2c7aaec0..7d2e5c4be17 100644 --- a/src/mame/drivers/gaelco2.c +++ b/src/mame/drivers/gaelco2.c @@ -167,7 +167,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(gaelco2) + MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(0x0080000) @@ -300,7 +300,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(gaelco2) + MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(0x0200000) @@ -541,7 +541,7 @@ static MACHINE_CONFIG_START( alighunt, gaelco2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(gaelco2) + MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(0x0400000) @@ -786,14 +786,14 @@ static MACHINE_CONFIG_START( touchgo, gaelco2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(gaelco2_left) + MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.1) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(gaelco2_right) + MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_right) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2_dual) @@ -977,7 +977,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(gaelco2) + MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(0x0400000) @@ -1221,14 +1221,14 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(384, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(gaelco2_left) + MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.1) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(384, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(gaelco2_right) + MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_right) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index e78d6e3c68c..c05073ff279 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -1019,7 +1019,7 @@ static MACHINE_CONFIG_START( gaelco3d, gaelco3d_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(576, 432) MCFG_SCREEN_VISIBLE_AREA(0, 575, 0, 431) - MCFG_SCREEN_UPDATE_STATIC(gaelco3d) + MCFG_SCREEN_UPDATE_DRIVER(gaelco3d_state, screen_update_gaelco3d) MCFG_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c index 051e4a55872..dc43a5d3f1d 100644 --- a/src/mame/drivers/gaiden.c +++ b/src/mame/drivers/gaiden.c @@ -779,7 +779,7 @@ static MACHINE_CONFIG_START( shadoww, gaiden_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(gaiden) + MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden) MCFG_GFXDECODE(gaiden) MCFG_PALETTE_LENGTH(4096) @@ -809,7 +809,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( raiga, shadoww ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(raiga) + MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_raiga) MCFG_VIDEO_START_OVERRIDE(gaiden_state,raiga) MCFG_GFXDECODE(raiga) @@ -835,7 +835,7 @@ static MACHINE_CONFIG_START( drgnbowl, gaiden_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(drgnbowl) + MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl) MCFG_GFXDECODE(drgnbowl) MCFG_PALETTE_LENGTH(4096) @@ -951,7 +951,7 @@ static MACHINE_CONFIG_START( mastninj, gaiden_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gaiden) + MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden) MCFG_GFXDECODE(mastninj) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/gal3.c b/src/mame/drivers/gal3.c index 06a3d947a89..550dc0c3152 100644 --- a/src/mame/drivers/gal3.c +++ b/src/mame/drivers/gal3.c @@ -159,6 +159,7 @@ public: DECLARE_READ32_MEMBER(rso_r); DECLARE_WRITE32_MEMBER(rso_w); DECLARE_VIDEO_START(gal3); + UINT32 screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -193,9 +194,8 @@ static void update_palette( running_machine &machine ) } } /* update_palette */ -static SCREEN_UPDATE_RGB32(gal3) +UINT32 gal3_state::screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - gal3_state *state = screen.machine().driver_data<gal3_state>(); int i; char mst[18], slv[18]; static int pivot = 15; @@ -208,19 +208,19 @@ static SCREEN_UPDATE_RGB32(gal3) for( pri=0; pri<pivot; pri++ ) { - state->c355_obj_draw(bitmap, cliprect, pri); + c355_obj_draw(bitmap, cliprect, pri); } /* CopyVisiblePolyFrameBuffer( bitmap, cliprect,0,0x7fbf ); for( pri=pivot; pri<15; pri++ ) { - state->c355_obj_draw(bitmap, cliprect, pri); + c355_obj_draw(bitmap, cliprect, pri); }*/ // CPU Diag LEDs mst[17]='\0', slv[17]='\0'; -/// printf("mst=0x%x\tslv=0x%x\n", state->m_led_mst, state->m_led_slv); +/// printf("mst=0x%x\tslv=0x%x\n", m_led_mst, m_led_slv); for(i=16;i<32;i++) { int t; @@ -230,12 +230,12 @@ static SCREEN_UPDATE_RGB32(gal3) t=i+1; mst[8]=' '; slv[8]=' '; - if(state->m_led_mst&(1<<i)) + if(m_led_mst&(1<<i)) mst[t-16]='*'; else mst[t-16]='O'; - if(state->m_led_slv&(1<<i)) + if(m_led_slv&(1<<i)) slv[t-16]='*'; else slv[t-16]='O'; @@ -658,14 +658,14 @@ static MACHINE_CONFIG_START( gal3, gal3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) - MCFG_SCREEN_UPDATE_STATIC(gal3) + MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_gal3) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) - MCFG_SCREEN_UPDATE_STATIC(gal3) + MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_gal3) MCFG_GFXDECODE(namcos21) MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c index fb749f8c19c..13c4d545aa3 100644 --- a/src/mame/drivers/galaga.c +++ b/src/mame/drivers/galaga.c @@ -1700,8 +1700,8 @@ static MACHINE_CONFIG_START( bosco, bosco_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 16, 224+16) - MCFG_SCREEN_UPDATE_STATIC(bosco) - MCFG_SCREEN_VBLANK_STATIC(bosco) + MCFG_SCREEN_UPDATE_DRIVER(bosco_state, screen_update_bosco) + MCFG_SCREEN_VBLANK_DRIVER(bosco_state, screen_eof_bosco) MCFG_GFXDECODE(bosco) MCFG_PALETTE_LENGTH(64*4+64*4+4+64) @@ -1756,8 +1756,8 @@ static MACHINE_CONFIG_START( galaga, galaga_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(galaga) - MCFG_SCREEN_VBLANK_STATIC(galaga) + MCFG_SCREEN_UPDATE_DRIVER(bosco_state, screen_update_galaga) + MCFG_SCREEN_VBLANK_DRIVER(bosco_state, screen_eof_galaga) MCFG_GFXDECODE(galaga) MCFG_PALETTE_LENGTH(64*4+64*4+64) @@ -1834,7 +1834,7 @@ static MACHINE_CONFIG_START( xevious, xevious_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(xevious) + MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious) MCFG_GFXDECODE(xevious) MCFG_PALETTE_LENGTH(128*4+64*8+64*2) @@ -1923,7 +1923,7 @@ static MACHINE_CONFIG_START( digdug, digdug_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(digdug) + MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug) MCFG_GFXDECODE(digdug) MCFG_PALETTE_LENGTH(16*2+64*4+64*4) diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c index c07f45a3d05..1a73a00ba52 100644 --- a/src/mame/drivers/galastrm.c +++ b/src/mame/drivers/galastrm.c @@ -320,7 +320,7 @@ static MACHINE_CONFIG_START( galastrm, galastrm_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 50*8) MCFG_SCREEN_VISIBLE_AREA(0+96, 40*8-1+96, 3*8+60, 32*8-1+60) - MCFG_SCREEN_UPDATE_STATIC(galastrm) + MCFG_SCREEN_UPDATE_DRIVER(galastrm_state, screen_update_galastrm) MCFG_GFXDECODE(galastrm) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c index 2bb6f855a6d..839e4fcba25 100644 --- a/src/mame/drivers/galaxi.c +++ b/src/mame/drivers/galaxi.c @@ -94,6 +94,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -181,9 +182,8 @@ void galaxi_state::video_start() m_bg3_tmap->set_scrolldx(-8, 0); } -static SCREEN_UPDATE_IND16(galaxi) +UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - galaxi_state *state = screen.machine().driver_data<galaxi_state>(); int layers_ctrl = -1; #ifdef MAME_DEBUG @@ -199,13 +199,13 @@ static SCREEN_UPDATE_IND16(galaxi) } #endif - if (layers_ctrl & 1) state->m_bg1_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_bg1_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); else bitmap.fill(get_black_pen(screen.machine()), cliprect); - if (layers_ctrl & 2) state->m_bg2_tmap->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 4) state->m_bg3_tmap->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 8) state->m_bg4_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_bg2_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 4) m_bg3_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 8) m_bg4_tmap->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 16) state->m_fg_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 16) m_fg_tmap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -416,7 +416,7 @@ static MACHINE_CONFIG_START( galaxi, galaxi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(16*5, 512-16*2-1, 16*1, 256-1) - MCFG_SCREEN_UPDATE_STATIC(galaxi) + MCFG_SCREEN_UPDATE_DRIVER(galaxi_state, screen_update_galaxi) MCFG_GFXDECODE(galaxi) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c index bf2b446251f..c7ac0ad5d20 100644 --- a/src/mame/drivers/galaxia.c +++ b/src/mame/drivers/galaxia.c @@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( galaxia, galaxia_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(galaxia) + MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_galaxia) MCFG_GFXDECODE(galaxia) MCFG_PALETTE_LENGTH(0x18+2) @@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( astrowar, galaxia_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(astrowar) + MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_astrowar) MCFG_GFXDECODE(astrowar) MCFG_PALETTE_LENGTH(0x18+2) diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index 39aa3c537f5..6ff3b7e1dea 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -2094,7 +2094,7 @@ static MACHINE_CONFIG_START( galaxian_base, galaxian_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(galaxian) + MCFG_SCREEN_UPDATE_DRIVER(galaxian_state, screen_update_galaxian) /* blinking frequency is determined by 555 counter with Ra=100k, Rb=10k, C=10uF */ diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c index ecb7aca6dcf..3e09b97c883 100644 --- a/src/mame/drivers/galaxold.c +++ b/src/mame/drivers/galaxold.c @@ -2187,7 +2187,7 @@ static MACHINE_CONFIG_START( galaxold_base, galaxold_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,galaxold) MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold) @@ -2340,7 +2340,7 @@ static MACHINE_CONFIG_START( drivfrcg, galaxold_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) MCFG_PALETTE_LENGTH(64) MCFG_GFXDECODE(gmgalax) @@ -2364,7 +2364,7 @@ static MACHINE_CONFIG_DERIVED( bongo, galaxold_base ) MCFG_VIDEO_START_OVERRIDE(galaxold_state,bongo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) MCFG_SOUND_ADD("aysnd", AY8910, PIXEL_CLOCK/4) MCFG_SOUND_CONFIG(bongo_ay8910_interface) @@ -2440,7 +2440,7 @@ static MACHINE_CONFIG_START( racknrol, galaxold_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) @@ -2498,7 +2498,7 @@ static MACHINE_CONFIG_START( hexpoola, galaxold_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) diff --git a/src/mame/drivers/galgame.c b/src/mame/drivers/galgame.c index 482d275a4bb..b96d28d7012 100644 --- a/src/mame/drivers/galgame.c +++ b/src/mame/drivers/galgame.c @@ -47,6 +47,7 @@ public: DECLARE_DRIVER_INIT(galaxygame); virtual void machine_reset(); virtual void palette_init(); + UINT32 screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /************************************* @@ -168,13 +169,12 @@ WRITE16_MEMBER(galaxygame_state::ke_w) * *************************************/ -static SCREEN_UPDATE_IND16( galaxygame ) +UINT32 galaxygame_state::screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - galaxygame_state *state = screen.machine().driver_data<galaxygame_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); - for (int i = 0; i < state->m_point_display_list_index; i++ ) + for (int i = 0; i < m_point_display_list_index; i++ ) { - bitmap.pix16(state->m_point_display_list[i].x >> 7, state->m_point_display_list[i].y >> 7) = 1; + bitmap.pix16(m_point_display_list[i].x >> 7, m_point_display_list[i].y >> 7) = 1; } return 0; } @@ -339,7 +339,7 @@ static MACHINE_CONFIG_START( galaxygame, galaxygame_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 511) - MCFG_SCREEN_UPDATE_STATIC(galaxygame) + MCFG_SCREEN_UPDATE_DRIVER(galaxygame_state, screen_update_galaxygame) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c index aa185cfe993..67905f3d460 100644 --- a/src/mame/drivers/galivan.c +++ b/src/mame/drivers/galivan.c @@ -452,7 +452,7 @@ static MACHINE_CONFIG_START( galivan, galivan_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(galivan) + MCFG_SCREEN_UPDATE_DRIVER(galivan_state, screen_update_galivan) MCFG_GFXDECODE(galivan) MCFG_PALETTE_LENGTH(8*16+16*16+256*16) @@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( ninjemak, galivan_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(ninjemak) + MCFG_SCREEN_UPDATE_DRIVER(galivan_state, screen_update_ninjemak) MCFG_GFXDECODE(ninjemak) MCFG_PALETTE_LENGTH(8*16+16*16+256*16) diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c index 57c1f99e7d5..1d182dfc28f 100644 --- a/src/mame/drivers/galpani2.c +++ b/src/mame/drivers/galpani2.c @@ -597,7 +597,7 @@ static MACHINE_CONFIG_START( galpani2, galpani2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1-16) - MCFG_SCREEN_UPDATE_STATIC(galpani2) + MCFG_SCREEN_UPDATE_DRIVER(galpani2_state, screen_update_galpani2) MCFG_GFXDECODE(galpani2) MCFG_PALETTE_LENGTH(0x4000 + 0x200 + 0x8000) // sprites, bg8, bg15 diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c index 7702ee97741..aeb2d7d4dae 100644 --- a/src/mame/drivers/galpani3.c +++ b/src/mame/drivers/galpani3.c @@ -112,6 +112,7 @@ public: { } virtual void video_start(); + UINT32 screen_update_galpani3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -188,9 +189,8 @@ static int gp3_is_alpha_pen(running_machine &machine, int pen) } -static SCREEN_UPDATE_RGB32(galpani3) +UINT32 galpani3_state::screen_update_galpani3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - galpani3_state *state = screen.machine().driver_data<galpani3_state>(); int x,y; UINT16* src1; UINT32* dst; @@ -199,7 +199,7 @@ static SCREEN_UPDATE_RGB32(galpani3) bitmap.fill(0x0000, cliprect); -// popmessage("%02x %02x", state->m_grap2_0->m_framebuffer_bright2, state->m_grap2_1->m_framebuffer_bright2); +// popmessage("%02x %02x", m_grap2_0->m_framebuffer_bright2, m_grap2_1->m_framebuffer_bright2); @@ -207,19 +207,19 @@ static SCREEN_UPDATE_RGB32(galpani3) int drawy, drawx; for (drawy=0;drawy<512;drawy++) { - UINT16* srcline1 = state->m_grap2_0->m_framebuffer + ((drawy+state->m_grap2_0->m_framebuffer_scrolly+11)&0x1ff) * 0x200; - UINT16* srcline2 = state->m_grap2_1->m_framebuffer + ((drawy+state->m_grap2_1->m_framebuffer_scrolly+11)&0x1ff) * 0x200; - UINT16* srcline3 = state->m_grap2_2->m_framebuffer + ((drawy+state->m_grap2_2->m_framebuffer_scrolly+11)&0x1ff) * 0x200; + UINT16* srcline1 = m_grap2_0->m_framebuffer + ((drawy+m_grap2_0->m_framebuffer_scrolly+11)&0x1ff) * 0x200; + UINT16* srcline2 = m_grap2_1->m_framebuffer + ((drawy+m_grap2_1->m_framebuffer_scrolly+11)&0x1ff) * 0x200; + UINT16* srcline3 = m_grap2_2->m_framebuffer + ((drawy+m_grap2_2->m_framebuffer_scrolly+11)&0x1ff) * 0x200; - UINT16* priline = state->m_priority_buffer + ((drawy+state->m_priority_buffer_scrolly+11)&0x1ff) * 0x200; + UINT16* priline = m_priority_buffer + ((drawy+m_priority_buffer_scrolly+11)&0x1ff) * 0x200; for (drawx=0;drawx<512;drawx++) { - int srcoffs1 = (drawx+state->m_grap2_0->m_framebuffer_scrollx+67)&0x1ff; - int srcoffs2 = (drawx+state->m_grap2_1->m_framebuffer_scrollx+67)&0x1ff; - int srcoffs3 = (drawx+state->m_grap2_2->m_framebuffer_scrollx+67)&0x1ff; + int srcoffs1 = (drawx+m_grap2_0->m_framebuffer_scrollx+67)&0x1ff; + int srcoffs2 = (drawx+m_grap2_1->m_framebuffer_scrollx+67)&0x1ff; + int srcoffs3 = (drawx+m_grap2_2->m_framebuffer_scrollx+67)&0x1ff; - int prioffs = (drawx+state->m_priority_buffer_scrollx+66)&0x1ff; + int prioffs = (drawx+m_priority_buffer_scrollx+66)&0x1ff; UINT8 dat1 = srcline1[srcoffs1]; UINT8 dat2 = srcline2[srcoffs2]; @@ -234,12 +234,12 @@ static SCREEN_UPDATE_RGB32(galpani3) // this is all wrong if (pridat==0x0f) // relates to the area you've drawn over { - if (dat1 && state->m_grap2_0->m_framebuffer_enable) + if (dat1 && m_grap2_0->m_framebuffer_enable) { dst[0] = paldata[dat1+0x4000]; } - if (dat2 && state->m_grap2_1->m_framebuffer_enable) + if (dat2 && m_grap2_1->m_framebuffer_enable) { dst[0] = paldata[dat2+0x4100]; } @@ -254,7 +254,7 @@ static SCREEN_UPDATE_RGB32(galpani3) /* this isn't right, but the registers have something to do with alpha / mixing, and bit 0x8000 of the palette is DEFINITELY alpha enable -- see fading in intro */ - if (dat1 && state->m_grap2_0->m_framebuffer_enable) + if (dat1 && m_grap2_0->m_framebuffer_enable) { UINT16 pen = dat1+0x4000; UINT32 pal = paldata[pen]; @@ -266,9 +266,9 @@ static SCREEN_UPDATE_RGB32(galpani3) g = (pal & 0x0000ff00)>>8; b = (pal & 0x000000ff)>>0; - r = (r * state->m_grap2_0->m_framebuffer_bright2) / 0xff; - g = (g * state->m_grap2_0->m_framebuffer_bright2) / 0xff; - b = (b * state->m_grap2_0->m_framebuffer_bright2) / 0xff; + r = (r * m_grap2_0->m_framebuffer_bright2) / 0xff; + g = (g * m_grap2_0->m_framebuffer_bright2) / 0xff; + b = (b * m_grap2_0->m_framebuffer_bright2) / 0xff; pal = (r & 0x000000ff)<<16; pal |=(g & 0x000000ff)<<8; @@ -282,7 +282,7 @@ static SCREEN_UPDATE_RGB32(galpani3) } } - if (dat2 && state->m_grap2_1->m_framebuffer_enable) + if (dat2 && m_grap2_1->m_framebuffer_enable) { UINT16 pen = dat2+0x4100; UINT32 pal = paldata[pen]; @@ -294,9 +294,9 @@ static SCREEN_UPDATE_RGB32(galpani3) g = (pal & 0x0000ff00)>>8; b = (pal & 0x000000ff)>>0; - r = (r * state->m_grap2_1->m_framebuffer_bright2) / 0xff; - g = (g * state->m_grap2_1->m_framebuffer_bright2) / 0xff; - b = (b * state->m_grap2_1->m_framebuffer_bright2) / 0xff; + r = (r * m_grap2_1->m_framebuffer_bright2) / 0xff; + g = (g * m_grap2_1->m_framebuffer_bright2) / 0xff; + b = (b * m_grap2_1->m_framebuffer_bright2) / 0xff; pal = (r & 0x000000ff)<<16; pal |=(g & 0x000000ff)<<8; @@ -310,7 +310,7 @@ static SCREEN_UPDATE_RGB32(galpani3) } } - if (dat3 && state->m_grap2_2->m_framebuffer_enable) + if (dat3 && m_grap2_2->m_framebuffer_enable) { dst[0] = paldata[dat3+0x4200]; } @@ -344,14 +344,14 @@ static SCREEN_UPDATE_RGB32(galpani3) } - state->m_sprite_bitmap_1.fill(0x0000, cliprect); + m_sprite_bitmap_1.fill(0x0000, cliprect); - state->m_spritegen->skns_draw_sprites(screen.machine(), state->m_sprite_bitmap_1, cliprect, &state->m_spriteram32[0], 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), state->m_spc_regs ); + m_spritegen->skns_draw_sprites(screen.machine(), m_sprite_bitmap_1, cliprect, &m_spriteram32[0], 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), m_spc_regs ); // ignoring priority bits for now.. for (y=0;y<240;y++) { - src1 = &state->m_sprite_bitmap_1.pix16(y); + src1 = &m_sprite_bitmap_1.pix16(y); dst = &bitmap.pix32(y); for (x=0;x<320;x++) @@ -518,7 +518,7 @@ static MACHINE_CONFIG_START( galpani3, galpani3_state ) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1) - MCFG_SCREEN_UPDATE_STATIC(galpani3) + MCFG_SCREEN_UPDATE_DRIVER(galpani3_state, screen_update_galpani3) MCFG_EEPROM_93C46_ADD("eeprom") diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c index 48905e69e4f..d1770986414 100644 --- a/src/mame/drivers/galpanic.c +++ b/src/mame/drivers/galpanic.c @@ -124,10 +124,10 @@ The current set of Super Model is an example of type C #include "includes/galpanic.h" #include "includes/galpnipt.h" -static SCREEN_VBLANK( galpanic ) +void galpanic_state::screen_eof_galpanic(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { device_t *pandora = screen.machine().device("pandora"); pandora_eof(pandora); @@ -567,8 +567,8 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(galpanic) - MCFG_SCREEN_VBLANK_STATIC( galpanic ) + MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_galpanic) + MCFG_SCREEN_VBLANK_DRIVER(galpanic_state, screen_eof_galpanic) MCFG_GFXDECODE(galpanic) MCFG_PALETTE_LENGTH(1024 + 32768) @@ -611,7 +611,7 @@ static MACHINE_CONFIG_DERIVED( comad, galpanic ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(comad) + MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad) MCFG_SCREEN_VBLANK_NONE() MACHINE_CONFIG_END @@ -625,7 +625,7 @@ static MACHINE_CONFIG_DERIVED( supmodel, comad ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(comad) + MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad) MCFG_SCREEN_VBLANK_NONE() /* sound hardware */ @@ -643,7 +643,7 @@ static MACHINE_CONFIG_DERIVED( fantsia2, comad ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(comad) + MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad) MCFG_SCREEN_VBLANK_NONE() MACHINE_CONFIG_END @@ -658,7 +658,7 @@ static MACHINE_CONFIG_DERIVED( galhustl, comad ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(comad) + MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad) MCFG_SCREEN_VBLANK_NONE() /* sound hardware */ @@ -677,7 +677,7 @@ static MACHINE_CONFIG_DERIVED( zipzap, comad ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(comad) + MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad) /* sound hardware */ MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c index 2ef75dc56ec..7289a278b23 100644 --- a/src/mame/drivers/galspnbl.c +++ b/src/mame/drivers/galspnbl.c @@ -242,7 +242,7 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(galspnbl) + MCFG_SCREEN_UPDATE_DRIVER(galspnbl_state, screen_update_galspnbl) MCFG_GFXDECODE(galspnbl) MCFG_PALETTE_LENGTH(1024 + 32768) diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c index 01d1c80019d..650ab9d7e0a 100644 --- a/src/mame/drivers/gamecstl.c +++ b/src/mame/drivers/gamecstl.c @@ -119,6 +119,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_gamecstl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -162,12 +163,11 @@ static void draw_char(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_eleme } } -static SCREEN_UPDATE_IND16(gamecstl) +UINT32 gamecstl_state::screen_update_gamecstl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - gamecstl_state *state = screen.machine().driver_data<gamecstl_state>(); int i, j; gfx_element *gfx = screen.machine().gfx[0]; - UINT32 *cga = state->m_cga_ram; + UINT32 *cga = m_cga_ram; int index = 0; bitmap.fill(0, cliprect); @@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( gamecstl, gamecstl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 199) - MCFG_SCREEN_UPDATE_STATIC(gamecstl) + MCFG_SCREEN_UPDATE_DRIVER(gamecstl_state, screen_update_gamecstl) MCFG_GFXDECODE(CGA) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c index 452e720b5eb..ee659ca7e8a 100644 --- a/src/mame/drivers/gaplus.c +++ b/src/mame/drivers/gaplus.c @@ -583,8 +583,8 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(gaplus) - MCFG_SCREEN_VBLANK_STATIC(gaplus) + MCFG_SCREEN_UPDATE_DRIVER(gaplus_state, screen_update_gaplus) + MCFG_SCREEN_VBLANK_DRIVER(gaplus_state, screen_eof_gaplus) MCFG_GFXDECODE(gaplus) MCFG_PALETTE_LENGTH(64*4+64*8) diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c index 9dbd59111b6..721da7c69b7 100644 --- a/src/mame/drivers/gatron.c +++ b/src/mame/drivers/gatron.c @@ -460,7 +460,7 @@ static MACHINE_CONFIG_START( gat, gatron_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(48*8, 16*16) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*16-1) - MCFG_SCREEN_UPDATE_STATIC(gat) + MCFG_SCREEN_UPDATE_DRIVER(gatron_state, screen_update_gat) MCFG_GFXDECODE(gat) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c index 6bfb7d601d8..d8eca53275a 100644 --- a/src/mame/drivers/gauntlet.c +++ b/src/mame/drivers/gauntlet.c @@ -532,7 +532,7 @@ static MACHINE_CONFIG_START( gauntlet, gauntlet_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a SYNGEN chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(gauntlet) + MCFG_SCREEN_UPDATE_DRIVER(gauntlet_state, screen_update_gauntlet) MCFG_VIDEO_START_OVERRIDE(gauntlet_state,gauntlet) diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c index f6ae1b37649..32fb2b515fd 100644 --- a/src/mame/drivers/gberet.c +++ b/src/mame/drivers/gberet.c @@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( gberet, gberet_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gberet) + MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberet) MCFG_GFXDECODE(gberet) MCFG_PALETTE_LENGTH(2*16*16) @@ -474,7 +474,7 @@ static MACHINE_CONFIG_START( gberetb, gberet_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gberetb) + MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberetb) MCFG_GFXDECODE(gberetb) MCFG_PALETTE_LENGTH(2*16*16) diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c index 6a53934fbfe..2e3f039a41c 100644 --- a/src/mame/drivers/gbusters.c +++ b/src/mame/drivers/gbusters.c @@ -317,7 +317,7 @@ static MACHINE_CONFIG_START( gbusters, gbusters_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(gbusters) + MCFG_SCREEN_UPDATE_DRIVER(gbusters_state, screen_update_gbusters) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c index a2202f1ff8d..4a569b4cdf5 100644 --- a/src/mame/drivers/gcpinbal.c +++ b/src/mame/drivers/gcpinbal.c @@ -447,7 +447,7 @@ static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gcpinbal) + MCFG_SCREEN_UPDATE_DRIVER(gcpinbal_state, screen_update_gcpinbal) MCFG_GFXDECODE(gcpinbal) diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c index ebf34277de9..f142369a499 100644 --- a/src/mame/drivers/gijoe.c +++ b/src/mame/drivers/gijoe.c @@ -312,7 +312,7 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) - MCFG_SCREEN_UPDATE_STATIC(gijoe) + MCFG_SCREEN_UPDATE_DRIVER(gijoe_state, screen_update_gijoe) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c index bb4aa11bae6..c83dd57e444 100644 --- a/src/mame/drivers/ginganin.c +++ b/src/mame/drivers/ginganin.c @@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( ginganin, ginganin_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0 + 16 , 255 - 16) - MCFG_SCREEN_UPDATE_STATIC(ginganin) + MCFG_SCREEN_UPDATE_DRIVER(ginganin_state, screen_update_ginganin) MCFG_GFXDECODE(ginganin) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c index 079b2eb697d..abf1671bd78 100644 --- a/src/mame/drivers/gladiatr.c +++ b/src/mame/drivers/gladiatr.c @@ -687,7 +687,7 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(ppking) + MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_ppking) MCFG_GFXDECODE(ppking) MCFG_PALETTE_LENGTH(1024) @@ -735,7 +735,7 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gladiatr) + MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_gladiatr) MCFG_GFXDECODE(gladiatr) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c index 6b90ff4905b..54a4168d9dd 100644 --- a/src/mame/drivers/glass.c +++ b/src/mame/drivers/glass.c @@ -205,7 +205,7 @@ static MACHINE_CONFIG_START( glass, glass_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 368-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(glass) + MCFG_SCREEN_UPDATE_DRIVER(glass_state, screen_update_glass) MCFG_GFXDECODE(glass) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c index d0735bad045..4e06e40b883 100644 --- a/src/mame/drivers/gng.c +++ b/src/mame/drivers/gng.c @@ -358,7 +358,7 @@ static MACHINE_CONFIG_START( gng, gng_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gng) + MCFG_SCREEN_UPDATE_DRIVER(gng_state, screen_update_gng) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(gng) diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c index 1f0b5d90a6c..890ae0747c4 100644 --- a/src/mame/drivers/go2000.c +++ b/src/mame/drivers/go2000.c @@ -53,6 +53,7 @@ public: DECLARE_WRITE8_MEMBER(go2000_pcm_1_bankswitch_w); virtual void machine_start(); virtual void video_start(); + UINT32 screen_update_go2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -174,9 +175,8 @@ void go2000_state::video_start() { } -static SCREEN_UPDATE_IND16(go2000) +UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - go2000_state *state = screen.machine().driver_data<go2000_state>(); int x,y; int count = 0; @@ -185,8 +185,8 @@ static SCREEN_UPDATE_IND16(go2000) { for (y = 0; y < 32; y++) { - int tile = state->m_videoram[count]; - int attr = state->m_videoram2[count]; + int tile = m_videoram[count]; + int attr = m_videoram2[count]; drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile, attr, 0, 0, x * 8, y * 8); count++; } @@ -197,8 +197,8 @@ static SCREEN_UPDATE_IND16(go2000) { for (y = 0; y < 32; y++) { - int tile = state->m_videoram[count]; - int attr = state->m_videoram2[count]; + int tile = m_videoram[count]; + int attr = m_videoram2[count]; drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], tile, attr, 0, 0, x * 8, y * 8, 0xf); count++; } @@ -219,9 +219,9 @@ static SCREEN_UPDATE_IND16(go2000) int dx, dy; int flipx, y0; - int y = state->m_videoram[offs + 0 + 0x00000 / 2]; - int x = state->m_videoram[offs + 1 + 0x00000 / 2]; - int dim = state->m_videoram2[offs + 0 + 0x00000 / 2]; + int y = m_videoram[offs + 0 + 0x00000 / 2]; + int x = m_videoram[offs + 1 + 0x00000 / 2]; + int dim = m_videoram2[offs + 0 + 0x00000 / 2]; int bank = (x >> 12) & 0xf; @@ -270,8 +270,8 @@ static SCREEN_UPDATE_IND16(go2000) for (dx = 0; dx < dimx * 8; dx += 8) { int addr = (srcpg * 0x20 * 0x20) + ((srcx + tile_x) & 0x1f) * 0x20 + ((srcy + tile_y) & 0x1f); - int tile = state->m_videoram[addr + 0x00000 / 2]; - int attr = state->m_videoram2[addr + 0x00000 / 2]; + int tile = m_videoram[addr + 0x00000 / 2]; + int attr = m_videoram2[addr + 0x00000 / 2]; int sx = x + dx; int sy = (y + dy) & 0xff; @@ -282,7 +282,7 @@ static SCREEN_UPDATE_IND16(go2000) if (flipx) tile_flipx = !tile_flipx; - if (state->flip_screen()) + if (flip_screen()) { sx = max_x - sx; sy = max_y - sy; @@ -340,7 +340,7 @@ static MACHINE_CONFIG_START( go2000, go2000_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(go2000) + MCFG_SCREEN_UPDATE_DRIVER(go2000_state, screen_update_go2000) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c index 00df6b85e32..d3b7afeaab6 100644 --- a/src/mame/drivers/goal92.c +++ b/src/mame/drivers/goal92.c @@ -328,8 +328,8 @@ static MACHINE_CONFIG_START( goal92, goal92_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) // black border at bottom is a game bug... - MCFG_SCREEN_UPDATE_STATIC(goal92) - MCFG_SCREEN_VBLANK_STATIC(goal92) + MCFG_SCREEN_UPDATE_DRIVER(goal92_state, screen_update_goal92) + MCFG_SCREEN_VBLANK_DRIVER(goal92_state, screen_eof_goal92) MCFG_GFXDECODE(goal92) MCFG_PALETTE_LENGTH(128*16) diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c index 1304f849920..5adb6525ff3 100644 --- a/src/mame/drivers/goindol.c +++ b/src/mame/drivers/goindol.c @@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( goindol, goindol_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goindol) + MCFG_SCREEN_UPDATE_DRIVER(goindol_state, screen_update_goindol) MCFG_GFXDECODE(goindol) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/goldngam.c b/src/mame/drivers/goldngam.c index 7d8c1c4c041..d8edff9974e 100644 --- a/src/mame/drivers/goldngam.c +++ b/src/mame/drivers/goldngam.c @@ -248,6 +248,7 @@ public: DECLARE_READ16_MEMBER(unk_r); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -260,14 +261,13 @@ void goldngam_state::video_start() } -static SCREEN_UPDATE_IND16( goldngam ) +UINT32 goldngam_state::screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - goldngam_state *state = screen.machine().driver_data<goldngam_state>(); int x, y; // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros! - UINT8 *tmp = reinterpret_cast<UINT8 *>(state->m_videoram.target()); + UINT8 *tmp = reinterpret_cast<UINT8 *>(m_videoram.target()); int index = 0; for(y = 0; y < 512; ++y) @@ -568,7 +568,7 @@ static MACHINE_CONFIG_START( swisspkr, goldngam_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(4*8, 43*8-1, 1*8, 37*8-1) // 312x288 - MCFG_SCREEN_UPDATE_STATIC(goldngam) + MCFG_SCREEN_UPDATE_DRIVER(goldngam_state, screen_update_goldngam) MCFG_GFXDECODE(goldngam) diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c index 660119a410c..3273f937740 100644 --- a/src/mame/drivers/goldnpkr.c +++ b/src/mame/drivers/goldnpkr.c @@ -1004,6 +1004,7 @@ public: DECLARE_PALETTE_INIT(witchcrd); DECLARE_VIDEO_START(wcrdxtnd); DECLARE_PALETTE_INIT(wcrdxtnd); + UINT32 screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -1070,10 +1071,9 @@ VIDEO_START_MEMBER(goldnpkr_state,wcrdxtnd) m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( goldnpkr ) +UINT32 goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - goldnpkr_state *state = screen.machine().driver_data<goldnpkr_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -3587,7 +3587,7 @@ static MACHINE_CONFIG_START( goldnpkr_base, goldnpkr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* From MC6845 init, registers 00 & 04 (programmed with value-1). */ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1) /* From MC6845 init, registers 01 & 06. */ - MCFG_SCREEN_UPDATE_STATIC(goldnpkr) + MCFG_SCREEN_UPDATE_DRIVER(goldnpkr_state, screen_update_goldnpkr) MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf) /* 68B45 or 6845s @ CPU clock */ diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c index 89e01b4cf49..4fbdb1b23c5 100644 --- a/src/mame/drivers/goldstar.c +++ b/src/mame/drivers/goldstar.c @@ -5865,7 +5865,7 @@ static MACHINE_CONFIG_START( goldstar, goldstar_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(goldstar) MCFG_PALETTE_LENGTH(256) @@ -5899,7 +5899,7 @@ static MACHINE_CONFIG_START( goldstbl, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(bl) MCFG_PALETTE_LENGTH(256) @@ -5932,7 +5932,7 @@ static MACHINE_CONFIG_START( moonlght, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(ml) MCFG_PALETTE_LENGTH(256) @@ -6031,7 +6031,7 @@ static MACHINE_CONFIG_START( chrygld, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(chry10) MCFG_PALETTE_LENGTH(256) @@ -6073,7 +6073,7 @@ static MACHINE_CONFIG_START( cb3c, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(cb3c) MCFG_PALETTE_LENGTH(256) @@ -6114,7 +6114,7 @@ static MACHINE_CONFIG_START( ncb3, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(ncb3) MCFG_PALETTE_LENGTH(256) @@ -6155,7 +6155,7 @@ static MACHINE_CONFIG_START( cm, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(cmbitmap) MCFG_PALETTE_LENGTH(256) @@ -6195,7 +6195,7 @@ static MACHINE_CONFIG_START( cmnobmp, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(cm) MCFG_PALETTE_LENGTH(256) @@ -6230,7 +6230,7 @@ static MACHINE_CONFIG_START( cmast91, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(cmast91) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_cmast91) MCFG_GFXDECODE(cmast91) MCFG_PALETTE_LENGTH(256) @@ -6274,7 +6274,7 @@ static MACHINE_CONFIG_START( lucky8, goldstar_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(ncb3) MCFG_PALETTE_LENGTH(256) @@ -6314,7 +6314,7 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) - MCFG_SCREEN_UPDATE_STATIC(bingowng) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng) MCFG_GFXDECODE(ncb3) MCFG_PALETTE_LENGTH(256) @@ -6354,7 +6354,7 @@ static MACHINE_CONFIG_START( bingownga, goldstar_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) - MCFG_SCREEN_UPDATE_STATIC(bingowng) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng) MCFG_GFXDECODE(bingownga) /* GFX Decode is the only difference with the parent machine */ MCFG_PALETTE_LENGTH(256) @@ -6410,7 +6410,7 @@ static MACHINE_CONFIG_START( magodds, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(magical) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_magical) MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,magodds) MCFG_GFXDECODE(magodds) @@ -6452,7 +6452,7 @@ static MACHINE_CONFIG_START( kkotnoli, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_GFXDECODE(ncb3) @@ -6488,7 +6488,7 @@ static MACHINE_CONFIG_START( ladylinr, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_GFXDECODE(ncb3) @@ -6529,7 +6529,7 @@ static MACHINE_CONFIG_START( wcat3, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_GFXDECODE(ncb3) @@ -6571,7 +6571,7 @@ static MACHINE_CONFIG_START( amcoe1, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(cm) MCFG_PALETTE_LENGTH(256) @@ -6610,7 +6610,7 @@ static MACHINE_CONFIG_START( amcoe1a, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(amcoe1a) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_amcoe1a) MCFG_GFXDECODE(cm) MCFG_PALETTE_LENGTH(256) @@ -6649,7 +6649,7 @@ static MACHINE_CONFIG_START( amcoe2, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(cm) MCFG_PALETTE_LENGTH(256) @@ -6683,7 +6683,7 @@ static MACHINE_CONFIG_START( nfm, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(nfm) MCFG_PALETTE_LENGTH(256) @@ -6714,7 +6714,7 @@ static MACHINE_CONFIG_START( unkch, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(unkch) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_unkch) MCFG_GFXDECODE(unkch) MCFG_PALETTE_LENGTH(512) @@ -6762,7 +6762,7 @@ static MACHINE_CONFIG_START( pkrmast, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(goldstar) + MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE(pkrmast) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/gomoku.c b/src/mame/drivers/gomoku.c index 06dd3fe148a..3e71131b95a 100644 --- a/src/mame/drivers/gomoku.c +++ b/src/mame/drivers/gomoku.c @@ -129,7 +129,7 @@ static MACHINE_CONFIG_START( gomoku, gomoku_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(gomoku) + MCFG_SCREEN_UPDATE_DRIVER(gomoku_state, screen_update_gomoku) MCFG_GFXDECODE(gomoku) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c index b82548d2b27..3f2280b1de2 100644 --- a/src/mame/drivers/good.c +++ b/src/mame/drivers/good.c @@ -57,6 +57,7 @@ public: TILE_GET_INFO_MEMBER(get_fg_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); + UINT32 screen_update_good(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -95,11 +96,10 @@ void good_state::video_start() m_fg_tilemap->set_transparent_pen(0xf); } -static SCREEN_UPDATE_IND16( good ) +UINT32 good_state::screen_update_good(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - good_state *state = screen.machine().driver_data<good_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -288,7 +288,7 @@ static MACHINE_CONFIG_START( good, good_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(1*16, 23*16-1, 0*16, 14*16-1) - MCFG_SCREEN_UPDATE_STATIC(good) + MCFG_SCREEN_UPDATE_DRIVER(good_state, screen_update_good) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c index 9cf864b9987..054893a57e2 100644 --- a/src/mame/drivers/gotcha.c +++ b/src/mame/drivers/gotcha.c @@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(gotcha) + MCFG_SCREEN_UPDATE_DRIVER(gotcha_state, screen_update_gotcha) MCFG_GFXDECODE(gotcha) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c index a5c9fbae0d2..942f5d81831 100644 --- a/src/mame/drivers/gottlieb.c +++ b/src/mame/drivers/gottlieb.c @@ -1719,7 +1719,7 @@ static MACHINE_CONFIG_START( gottlieb_core, gottlieb_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(SYSTEM_CLOCK/4, GOTTLIEB_VIDEO_HCOUNT, 0, GOTTLIEB_VIDEO_HBLANK, GOTTLIEB_VIDEO_VCOUNT, 0, GOTTLIEB_VIDEO_VBLANK) - MCFG_SCREEN_UPDATE_STATIC(gottlieb) + MCFG_SCREEN_UPDATE_DRIVER(gottlieb_state, screen_update_gottlieb) MCFG_GFXDECODE(gfxdecode) MCFG_PALETTE_LENGTH(16) @@ -1748,7 +1748,7 @@ static MACHINE_CONFIG_DERIVED( g2laser, gottlieb_core ) MCFG_LASERDISC_PR8210_ADD("laserdisc") MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(FUNC(laserdisc_audio_process), device)) - MCFG_LASERDISC_OVERLAY_STATIC(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb) + MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb) MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8) MCFG_SOUND_ROUTE(0, "mono", 1.0) /* right channel is processed as data */ @@ -1829,7 +1829,7 @@ static MACHINE_CONFIG_DERIVED( cobram3, gottlieb_core ) MCFG_LASERDISC_PR8210_ADD("laserdisc") MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(FUNC(laserdisc_audio_process), device)) - MCFG_LASERDISC_OVERLAY_STATIC(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb) + MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb) MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8) MCFG_SOUND_ROUTE(0, "mono", 1.0) /* right channel is processed as data */ diff --git a/src/mame/drivers/gotya.c b/src/mame/drivers/gotya.c index aeba686389f..fdcfaf2f869 100644 --- a/src/mame/drivers/gotya.c +++ b/src/mame/drivers/gotya.c @@ -204,7 +204,7 @@ static MACHINE_CONFIG_START( gotya, gotya_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 36*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gotya) + MCFG_SCREEN_UPDATE_DRIVER(gotya_state, screen_update_gotya) MCFG_GFXDECODE(gotya) MCFG_PALETTE_LENGTH(16*4) diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c index bff4fc68c52..1603b2eef0a 100644 --- a/src/mame/drivers/gpworld.c +++ b/src/mame/drivers/gpworld.c @@ -71,6 +71,7 @@ public: DECLARE_WRITE8_MEMBER(palette_write); DECLARE_DRIVER_INIT(gpworld); virtual void machine_start(); + UINT32 screen_update_gpworld(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -223,7 +224,7 @@ static void gpworld_draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, } -static SCREEN_UPDATE_RGB32( gpworld ) +UINT32 gpworld_state::screen_update_gpworld(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); @@ -470,7 +471,7 @@ static MACHINE_CONFIG_START( gpworld, gpworld_state ) MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(512, 256, gpworld) + MCFG_LASERDISC_OVERLAY_DRIVER(512, 256, gpworld_state, screen_update_gpworld) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c index 3e6180540cd..61d8e5a641d 100644 --- a/src/mame/drivers/gradius3.c +++ b/src/mame/drivers/gradius3.c @@ -339,7 +339,7 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(gradius3) + MCFG_SCREEN_UPDATE_DRIVER(gradius3_state, screen_update_gradius3) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c index f63cde578fa..f4b672db7ab 100644 --- a/src/mame/drivers/grchamp.c +++ b/src/mame/drivers/grchamp.c @@ -693,7 +693,7 @@ static MACHINE_CONFIG_START( grchamp, grchamp_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(grchamp) + MCFG_SCREEN_UPDATE_DRIVER(grchamp_state, screen_update_grchamp) /* sound hardware */ diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c index 92ed64372b2..ac9116ed1eb 100644 --- a/src/mame/drivers/gridlee.c +++ b/src/mame/drivers/gridlee.c @@ -432,7 +432,7 @@ static MACHINE_CONFIG_START( gridlee, gridlee_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(GRIDLEE_PIXEL_CLOCK, GRIDLEE_HTOTAL, GRIDLEE_HBEND, GRIDLEE_HBSTART, GRIDLEE_VTOTAL, GRIDLEE_VBEND, GRIDLEE_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(gridlee) + MCFG_SCREEN_UPDATE_DRIVER(gridlee_state, screen_update_gridlee) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c index 3c997649dfc..45046dd2bdf 100644 --- a/src/mame/drivers/groundfx.c +++ b/src/mame/drivers/groundfx.c @@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( groundfx, groundfx_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(groundfx) + MCFG_SCREEN_UPDATE_DRIVER(groundfx_state, screen_update_groundfx) MCFG_GFXDECODE(groundfx) MCFG_PALETTE_LENGTH(16384) diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c index 56c3fa60f2a..cb6bc28e2cb 100644 --- a/src/mame/drivers/gstream.c +++ b/src/mame/drivers/gstream.c @@ -183,6 +183,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_gstream(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -480,7 +481,7 @@ void gstream_state::video_start() m_tilemap2->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16(gstream) +UINT32 gstream_state::screen_update_gstream(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* The tilemaps and sprite are interleaved together. Even Words are tilemap tiles @@ -496,31 +497,30 @@ static SCREEN_UPDATE_IND16(gstream) are being set ?! */ - gstream_state *state = screen.machine().driver_data<gstream_state>(); int i; - //popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", state->m_tmap1_scrollx, state->m_tmap1_scrolly, state->m_tmap2_scrollx, state->m_tmap2_scrolly, state->m_tmap3_scrollx, state->m_tmap3_scrolly ); + //popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", m_tmap1_scrollx, m_tmap1_scrolly, m_tmap2_scrollx, m_tmap2_scrolly, m_tmap3_scrollx, m_tmap3_scrolly ); - state->m_tilemap3->set_scrollx(0, state->m_tmap3_scrollx >> 16); - state->m_tilemap3->set_scrolly(0, state->m_tmap3_scrolly >> 16); + m_tilemap3->set_scrollx(0, m_tmap3_scrollx >> 16); + m_tilemap3->set_scrolly(0, m_tmap3_scrolly >> 16); - state->m_tilemap1->set_scrollx(0, state->m_tmap1_scrollx >> 16); - state->m_tilemap1->set_scrolly(0, state->m_tmap1_scrolly >> 16); + m_tilemap1->set_scrollx(0, m_tmap1_scrollx >> 16); + m_tilemap1->set_scrolly(0, m_tmap1_scrolly >> 16); - state->m_tilemap2->set_scrollx(0, state->m_tmap2_scrollx >> 16); - state->m_tilemap2->set_scrolly(0, state->m_tmap2_scrolly >> 16); + m_tilemap2->set_scrollx(0, m_tmap2_scrollx >> 16); + m_tilemap2->set_scrolly(0, m_tmap2_scrolly >> 16); - state->m_tilemap3->draw(bitmap, cliprect, 0, 0); - state->m_tilemap2->draw(bitmap, cliprect, 0, 0); - state->m_tilemap1->draw(bitmap, cliprect, 0, 0); + m_tilemap3->draw(bitmap, cliprect, 0, 0); + m_tilemap2->draw(bitmap, cliprect, 0, 0); + m_tilemap1->draw(bitmap, cliprect, 0, 0); for (i = 0x0000 / 4; i < 0x4000 / 4; i += 4) { /* Upper bits are used by the tilemaps */ - int code = state->m_vram[i + 0] & 0xffff; - int x = state->m_vram[i + 1] & 0xffff; - int y = state->m_vram[i + 2] & 0xffff; - int col = state->m_vram[i + 3] & 0x1f; + int code = m_vram[i + 0] & 0xffff; + int x = m_vram[i + 1] & 0xffff; + int y = m_vram[i + 2] & 0xffff; + int col = m_vram[i + 3] & 0x1f; /* co-ordinates are signed */ if (x & 0x8000) x -= 0x10000; @@ -576,7 +576,7 @@ static MACHINE_CONFIG_START( gstream, gstream_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(gstream) + MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update_gstream) MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers MCFG_GFXDECODE(gstream) diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c index 27156a429fd..745111bd3ac 100644 --- a/src/mame/drivers/gstriker.c +++ b/src/mame/drivers/gstriker.c @@ -555,7 +555,7 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(gstriker) + MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker) MCFG_GFXDECODE(gstriker) MCFG_PALETTE_LENGTH(0x800) @@ -593,7 +593,7 @@ static MACHINE_CONFIG_START( vgoal, gstriker_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(gstriker) + MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker) MCFG_GFXDECODE(gstriker) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c index 6aa47103f60..4552dcaa7bf 100644 --- a/src/mame/drivers/gsword.c +++ b/src/mame/drivers/gsword.c @@ -686,7 +686,7 @@ static MACHINE_CONFIG_START( gsword, gsword_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gsword) + MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword) MCFG_GFXDECODE(gsword) MCFG_PALETTE_LENGTH(64*4+64*4) @@ -729,7 +729,7 @@ static MACHINE_CONFIG_START( josvolly, gsword_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gsword) + MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword) MCFG_GFXDECODE(gsword) MCFG_PALETTE_LENGTH(64*4+64*4) diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c index 8471ab4a51c..224f6b753ed 100644 --- a/src/mame/drivers/guab.c +++ b/src/mame/drivers/guab.c @@ -98,6 +98,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -258,7 +259,7 @@ void guab_state::video_start() } -static SCREEN_UPDATE_IND16( guab ) +UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int x, y; struct tms34061_display state; @@ -824,7 +825,7 @@ static MACHINE_CONFIG_START( guab, guab_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(guab) + MCFG_SCREEN_UPDATE_DRIVER(guab_state, screen_update_guab) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/gumbo.c b/src/mame/drivers/gumbo.c index c6fed404be9..8029f277444 100644 --- a/src/mame/drivers/gumbo.c +++ b/src/mame/drivers/gumbo.c @@ -240,7 +240,7 @@ static MACHINE_CONFIG_START( gumbo, gumbo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gumbo) + MCFG_SCREEN_UPDATE_DRIVER(gumbo_state, screen_update_gumbo) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c index b90ebcff0d8..d87e9ee07d5 100644 --- a/src/mame/drivers/gunbustr.c +++ b/src/mame/drivers/gunbustr.c @@ -315,7 +315,7 @@ static MACHINE_CONFIG_START( gunbustr, gunbustr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(gunbustr) + MCFG_SCREEN_UPDATE_DRIVER(gunbustr_state, screen_update_gunbustr) MCFG_GFXDECODE(gunbustr) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c index 760554e6be9..b5042efbf00 100644 --- a/src/mame/drivers/gundealr.c +++ b/src/mame/drivers/gundealr.c @@ -419,7 +419,7 @@ static MACHINE_CONFIG_START( gundealr, gundealr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gundealr) + MCFG_SCREEN_UPDATE_DRIVER(gundealr_state, screen_update_gundealr) MCFG_GFXDECODE(gundealr) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c index 51ba42a9e88..5b75f37fdf9 100644 --- a/src/mame/drivers/gunpey.c +++ b/src/mame/drivers/gunpey.c @@ -94,6 +94,7 @@ public: DECLARE_DRIVER_INIT(gunpey); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_gunpey(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -102,10 +103,9 @@ void gunpey_state::video_start() m_blit_buffer = auto_alloc_array(machine(), UINT16, 512*512); } -static SCREEN_UPDATE_RGB32( gunpey ) +UINT32 gunpey_state::screen_update_gunpey(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - gunpey_state *state = screen.machine().driver_data<gunpey_state>(); - UINT16 *blit_buffer = state->m_blit_buffer; + UINT16 *blit_buffer = m_blit_buffer; int x,y; int count; @@ -375,7 +375,7 @@ static MACHINE_CONFIG_START( gunpey, gunpey_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) - MCFG_SCREEN_UPDATE_STATIC(gunpey) + MCFG_SCREEN_UPDATE_DRIVER(gunpey_state, screen_update_gunpey) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/gunsmoke.c b/src/mame/drivers/gunsmoke.c index 241d3ac3854..9f5ebe4b74c 100644 --- a/src/mame/drivers/gunsmoke.c +++ b/src/mame/drivers/gunsmoke.c @@ -314,7 +314,7 @@ static MACHINE_CONFIG_START( gunsmoke, gunsmoke_state ) MCFG_GFXDECODE(gunsmoke) MCFG_PALETTE_LENGTH(32*4+16*16+16*16) - MCFG_SCREEN_UPDATE_STATIC(gunsmoke) + MCFG_SCREEN_UPDATE_DRIVER(gunsmoke_state, screen_update_gunsmoke) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c index 89bb0d6df9f..4ba46a28843 100644 --- a/src/mame/drivers/gyruss.c +++ b/src/mame/drivers/gyruss.c @@ -537,7 +537,7 @@ static MACHINE_CONFIG_START( gyruss, gyruss_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(gyruss) + MCFG_SCREEN_UPDATE_DRIVER(gyruss_state, screen_update_gyruss) MCFG_GFXDECODE(gyruss) MCFG_PALETTE_LENGTH(16*4+16*16) diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c index 41789bfefff..3f5ee2466c8 100644 --- a/src/mame/drivers/halleys.c +++ b/src/mame/drivers/halleys.c @@ -264,6 +264,8 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_halleys(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_benberob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -1479,45 +1481,43 @@ static void filter_bitmap(running_machine &machine, bitmap_ind16 &bitmap, int ma } -static SCREEN_UPDATE_IND16( halleys ) +UINT32 halleys_state::screen_update_halleys(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - halleys_state *state = screen.machine().driver_data<halleys_state>(); int i, j; - if (state->m_stars_enabled) + if (m_stars_enabled) { - copy_scroll_op(bitmap, state->m_render_layer[5], *state->m_scrollx0, *state->m_scrolly0); - copy_scroll_xp(bitmap, state->m_render_layer[4], *state->m_scrollx1, *state->m_scrolly1); + copy_scroll_op(bitmap, m_render_layer[5], *m_scrollx0, *m_scrolly0); + copy_scroll_xp(bitmap, m_render_layer[4], *m_scrollx1, *m_scrolly1); } else - bitmap.fill(state->m_bgcolor, cliprect); + bitmap.fill(m_bgcolor, cliprect); #ifdef MAME_DEBUG - if (screen.machine().root_device().ioport("DEBUG")->read()) copy_scroll_xp(bitmap, state->m_render_layer[3], *state->m_scrollx0, *state->m_scrolly0); // not used??? + if (screen.machine().root_device().ioport("DEBUG")->read()) copy_scroll_xp(bitmap, m_render_layer[3], *m_scrollx0, *m_scrolly0); // not used??? #endif - copy_scroll_xp(bitmap, state->m_render_layer[2], *state->m_scrollx1, *state->m_scrolly1); - copy_fixed_2b (bitmap, state->m_render_layer[1]); - copy_fixed_xp (bitmap, state->m_render_layer[0]); + copy_scroll_xp(bitmap, m_render_layer[2], *m_scrollx1, *m_scrolly1); + copy_fixed_2b (bitmap, m_render_layer[1]); + copy_fixed_xp (bitmap, m_render_layer[0]); // HALF-HACK: apply RGB filter when the following conditions are met - i = state->m_io_ram[0xa0]; - j = state->m_io_ram[0xa1]; - if (state->m_io_ram[0x2b] && (i>0xc6 && i<0xfe) && (j==0xc0 || j==0xed)) filter_bitmap(screen.machine(), bitmap, i); + i = m_io_ram[0xa0]; + j = m_io_ram[0xa1]; + if (m_io_ram[0x2b] && (i>0xc6 && i<0xfe) && (j==0xc0 || j==0xed)) filter_bitmap(screen.machine(), bitmap, i); return 0; } -static SCREEN_UPDATE_IND16( benberob ) +UINT32 halleys_state::screen_update_benberob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - halleys_state *state = screen.machine().driver_data<halleys_state>(); - if (state->m_io_ram[0xa0] & 0x80) - copy_scroll_op(bitmap, state->m_render_layer[2], *state->m_scrollx1, *state->m_scrolly1); + if (m_io_ram[0xa0] & 0x80) + copy_scroll_op(bitmap, m_render_layer[2], *m_scrollx1, *m_scrolly1); else - bitmap.fill(state->m_bgcolor, cliprect); + bitmap.fill(m_bgcolor, cliprect); - copy_fixed_xp (bitmap, state->m_render_layer[1]); - copy_fixed_xp (bitmap, state->m_render_layer[0]); + copy_fixed_xp (bitmap, m_render_layer[1]); + copy_fixed_xp (bitmap, m_render_layer[0]); return 0; } @@ -1973,7 +1973,7 @@ static MACHINE_CONFIG_START( halleys, halleys_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT) MCFG_SCREEN_VISIBLE_AREA(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY) - MCFG_SCREEN_UPDATE_STATIC(halleys) + MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_halleys) MCFG_PALETTE_LENGTH(PALETTE_SIZE) @@ -2003,7 +2003,7 @@ static MACHINE_CONFIG_DERIVED( benberob, halleys ) MCFG_TIMER_CALLBACK(benberob_scanline) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(benberob) + MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_benberob) MACHINE_CONFIG_END diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c index 75646bab95b..3fd20b34a8a 100644 --- a/src/mame/drivers/hanaawas.c +++ b/src/mame/drivers/hanaawas.c @@ -209,7 +209,7 @@ static MACHINE_CONFIG_START( hanaawas, hanaawas_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(hanaawas) + MCFG_SCREEN_UPDATE_DRIVER(hanaawas_state, screen_update_hanaawas) MCFG_GFXDECODE(hanaawas) MCFG_PALETTE_LENGTH(32*8) diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c index 6d5ae01a0ad..4bff70ca392 100644 --- a/src/mame/drivers/hcastle.c +++ b/src/mame/drivers/hcastle.c @@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( hcastle, hcastle_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second verified by comparison with real board */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(hcastle) + MCFG_SCREEN_UPDATE_DRIVER(hcastle_state, screen_update_hcastle) MCFG_GFXDECODE(hcastle) MCFG_PALETTE_LENGTH(2*8*16*16) diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c index 68a9ed92a10..0d267f614b4 100644 --- a/src/mame/drivers/hexion.c +++ b/src/mame/drivers/hexion.c @@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( hexion, hexion_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 36*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(hexion) + MCFG_SCREEN_UPDATE_DRIVER(hexion_state, screen_update_hexion) MCFG_GFXDECODE(hexion) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c index 5a6402102b0..ac45f1412eb 100644 --- a/src/mame/drivers/higemaru.c +++ b/src/mame/drivers/higemaru.c @@ -170,7 +170,7 @@ static MACHINE_CONFIG_START( higemaru, higemaru_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(higemaru) + MCFG_SCREEN_UPDATE_DRIVER(higemaru_state, screen_update_higemaru) MCFG_GFXDECODE(higemaru) MCFG_PALETTE_LENGTH(32*4+16*16) diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c index 5cd7d0cf8e7..b18c728ea8d 100644 --- a/src/mame/drivers/highvdeo.c +++ b/src/mame/drivers/highvdeo.c @@ -125,6 +125,8 @@ public: DECLARE_DRIVER_INIT(fashion); DECLARE_DRIVER_INIT(ciclone); DECLARE_VIDEO_START(tourvisn); + UINT32 screen_update_tourvisn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + UINT32 screen_update_brasil(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -135,9 +137,8 @@ VIDEO_START_MEMBER(highvdeo_state,tourvisn) } -static SCREEN_UPDATE_RGB32(tourvisn) +UINT32 highvdeo_state::screen_update_tourvisn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - highvdeo_state *state = screen.machine().driver_data<highvdeo_state>(); int x,y,count; count = (0/2); @@ -148,12 +149,12 @@ static SCREEN_UPDATE_RGB32(tourvisn) { UINT32 color; - color = ((state->m_blit_ram[count]) & 0x00ff)>>0; + color = ((m_blit_ram[count]) & 0x00ff)>>0; if(cliprect.contains((x*2)+0, y)) bitmap.pix32(y, (x*2)+0) = screen.machine().pens[color]; - color = ((state->m_blit_ram[count]) & 0xff00)>>8; + color = ((m_blit_ram[count]) & 0xff00)>>8; if(cliprect.contains((x*2)+1, y)) bitmap.pix32(y, (x*2)+1) = screen.machine().pens[color]; @@ -166,9 +167,8 @@ static SCREEN_UPDATE_RGB32(tourvisn) } /*Later HW, RGB565 instead of RAM-based pens (+ ramdac).*/ -static SCREEN_UPDATE_RGB32(brasil) +UINT32 highvdeo_state::screen_update_brasil(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - highvdeo_state *state = screen.machine().driver_data<highvdeo_state>(); int x,y,count; count = (0/2); @@ -182,7 +182,7 @@ static SCREEN_UPDATE_RGB32(brasil) UINT32 g; UINT32 r; - color = (state->m_blit_ram[count]) & 0xffff; + color = (m_blit_ram[count]) & 0xffff; b = (color & 0x001f) << 3; g = (color & 0x07e0) >> 3; @@ -938,7 +938,7 @@ static MACHINE_CONFIG_START( tv_vcf, highvdeo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 300) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_STATIC(tourvisn) + MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_tourvisn) MCFG_PALETTE_LENGTH(0x100) @@ -1004,7 +1004,7 @@ static MACHINE_CONFIG_START( brasil, highvdeo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 300) MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) - MCFG_SCREEN_UPDATE_STATIC(brasil) + MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c index ed7121ded5d..e39240d6afd 100644 --- a/src/mame/drivers/hikaru.c +++ b/src/mame/drivers/hikaru.c @@ -394,6 +394,7 @@ public: : driver_device(mconfig, type, tag) { } virtual void video_start(); + UINT32 screen_update_hikaru(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; void hikaru_state::video_start() @@ -401,7 +402,7 @@ void hikaru_state::video_start() } -static SCREEN_UPDATE_RGB32(hikaru) +UINT32 hikaru_state::screen_update_hikaru(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } @@ -500,7 +501,7 @@ static MACHINE_CONFIG_START( hikaru, hikaru_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_STATIC(hikaru) + MCFG_SCREEN_UPDATE_DRIVER(hikaru_state, screen_update_hikaru) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c index 1151536f79c..d162b50d451 100644 --- a/src/mame/drivers/himesiki.c +++ b/src/mame/drivers/himesiki.c @@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( himesiki, himesiki_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MCFG_SCREEN_UPDATE_STATIC(himesiki) + MCFG_SCREEN_UPDATE_DRIVER(himesiki_state, screen_update_himesiki) MCFG_GFXDECODE(himesiki) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c index 05afa1f7f1b..f9873c740d5 100644 --- a/src/mame/drivers/hitme.c +++ b/src/mame/drivers/hitme.c @@ -65,9 +65,8 @@ VIDEO_START_MEMBER(hitme_state,barricad) } -static SCREEN_UPDATE_IND16( hitme ) +UINT32 hitme_state::screen_update_hitme(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - hitme_state *state = screen.machine().driver_data<hitme_state>(); /* the card width resistor comes from an input port, scaled to the range 0-25 kOhms */ double width_resist = screen.machine().root_device().ioport("WIDTH")->read() * 25000 / 100; /* this triggers a oneshot for the following length of time */ @@ -80,7 +79,7 @@ static SCREEN_UPDATE_IND16( hitme ) offs_t offs = 0; /* start by drawing the tilemap */ - state->m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(bitmap, cliprect, 0, 0); /* now loop over and invert anything */ for (y = 0; y < 19; y++) @@ -89,7 +88,7 @@ static SCREEN_UPDATE_IND16( hitme ) for (inv = x = 0; x < 40; x++, offs++) { /* if the high bit is set, reset the oneshot */ - if (state->m_videoram[y * 40 + x] & 0x80) + if (m_videoram[y * 40 + x] & 0x80) inv = width_pixels; /* invert pixels until we run out */ @@ -113,10 +112,9 @@ static SCREEN_UPDATE_IND16( hitme ) } -static SCREEN_UPDATE_IND16( barricad ) +UINT32 hitme_state::screen_update_barricad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - hitme_state *state = screen.machine().driver_data<hitme_state>(); - state->m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -326,7 +324,7 @@ static MACHINE_CONFIG_START( hitme, hitme_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 19*10) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 19*10-1) - MCFG_SCREEN_UPDATE_STATIC(hitme) + MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_hitme) MCFG_GFXDECODE(hitme) MCFG_PALETTE_LENGTH(2) @@ -355,7 +353,7 @@ static MACHINE_CONFIG_DERIVED( barricad, hitme ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(32*8, 24*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MCFG_SCREEN_UPDATE_STATIC(barricad) + MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_barricad) MCFG_GFXDECODE(barricad) diff --git a/src/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c index 37f43670589..9aadb4c5555 100644 --- a/src/mame/drivers/hitpoker.c +++ b/src/mame/drivers/hitpoker.c @@ -81,6 +81,7 @@ public: DECLARE_READ8_MEMBER(test_r); DECLARE_DRIVER_INIT(hitpoker); virtual void video_start(); + UINT32 screen_update_hitpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -93,9 +94,8 @@ void hitpoker_state::video_start() m_colorram = auto_alloc_array(machine(), UINT8, 0x2000); } -static SCREEN_UPDATE_IND16(hitpoker) +UINT32 hitpoker_state::screen_update_hitpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - hitpoker_state *state = screen.machine().driver_data<hitpoker_state>(); int count = 0; int y,x; @@ -107,9 +107,9 @@ static SCREEN_UPDATE_IND16(hitpoker) { int tile,color,gfx_bpp; - tile = (((state->m_videoram[count]<<8)|(state->m_videoram[count+1])) & 0x3fff); - gfx_bpp = (state->m_colorram[count] & 0x80)>>7; //flag between 4 and 8 bpp - color = gfx_bpp ? ((state->m_colorram[count] & 0x70)>>4) : (state->m_colorram[count] & 0xf); + tile = (((m_videoram[count]<<8)|(m_videoram[count+1])) & 0x3fff); + gfx_bpp = (m_colorram[count] & 0x80)>>7; //flag between 4 and 8 bpp + color = gfx_bpp ? ((m_colorram[count] & 0x70)>>4) : (m_colorram[count] & 0xf); drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[gfx_bpp],tile,color,0,0,x*8,y*8); @@ -505,7 +505,7 @@ static MACHINE_CONFIG_START( hitpoker, hitpoker_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate MCFG_SCREEN_SIZE(648, 480) //setted by the CRTC MCFG_SCREEN_VISIBLE_AREA(0, 648-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(hitpoker) + MCFG_SCREEN_UPDATE_DRIVER(hitpoker_state, screen_update_hitpoker) MCFG_MC6845_ADD("crtc", H46505, CRTC_CLOCK/2, mc6845_intf) /* hand tuned to get ~60 fps */ diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c index b85d0a85bf0..0ec82a3e174 100644 --- a/src/mame/drivers/hnayayoi.c +++ b/src/mame/drivers/hnayayoi.c @@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(hnayayoi) + MCFG_SCREEN_UPDATE_DRIVER(hnayayoi_state, screen_update_hnayayoi) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c index 558b3297c30..35cb805c3a4 100644 --- a/src/mame/drivers/hng64.c +++ b/src/mame/drivers/hng64.c @@ -1849,11 +1849,11 @@ static MACHINE_CONFIG_START( hng64, hng64_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(hng64) + MCFG_SCREEN_UPDATE_DRIVER(hng64_state, screen_update_hng64) MCFG_PALETTE_LENGTH(0x1000) - MCFG_SCREEN_VBLANK_STATIC(hng64) + MCFG_SCREEN_VBLANK_DRIVER(hng64_state, screen_eof_hng64) MACHINE_CONFIG_END diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c index 417c9539dd7..e78d3d98dad 100644 --- a/src/mame/drivers/holeland.c +++ b/src/mame/drivers/holeland.c @@ -288,7 +288,7 @@ static MACHINE_CONFIG_START( holeland, holeland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1) - MCFG_SCREEN_UPDATE_STATIC(holeland) + MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_holeland) MCFG_GFXDECODE(holeland) MCFG_PALETTE_LENGTH(256) @@ -358,7 +358,7 @@ static MACHINE_CONFIG_START( crzrally, holeland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(crzrally) + MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_crzrally) MCFG_GFXDECODE(crzrally) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c index eeb0c492420..5e937c69dd3 100644 --- a/src/mame/drivers/homedata.c +++ b/src/mame/drivers/homedata.c @@ -1262,8 +1262,8 @@ static MACHINE_CONFIG_START( mrokumei, homedata_state ) MCFG_SCREEN_SIZE(64*8, 32*8) // visible area can be changed at runtime MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mrokumei) - MCFG_SCREEN_VBLANK_STATIC(homedata) + MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_mrokumei) + MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata) MCFG_GFXDECODE(mrokumei) MCFG_PALETTE_LENGTH(0x8000) @@ -1331,8 +1331,8 @@ static MACHINE_CONFIG_START( reikaids, homedata_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 256-1-16) - MCFG_SCREEN_UPDATE_STATIC(reikaids) - MCFG_SCREEN_VBLANK_STATIC(homedata) + MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_reikaids) + MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata) MCFG_GFXDECODE(reikaids) MCFG_PALETTE_LENGTH(0x8000) @@ -1382,8 +1382,8 @@ static MACHINE_CONFIG_START( pteacher, homedata_state ) MCFG_SCREEN_SIZE(64*8, 32*8) // visible area can be changed at runtime MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pteacher) - MCFG_SCREEN_VBLANK_STATIC(homedata) + MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_pteacher) + MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata) MCFG_GFXDECODE(pteacher) MCFG_PALETTE_LENGTH(0x8000) @@ -1546,7 +1546,7 @@ static MACHINE_CONFIG_START( mirderby, homedata_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mirderby) + MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_mirderby) MCFG_GFXDECODE(mirderby) MCFG_PALETTE_LENGTH(0x8000) diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c index 2d4b2494700..e6f079e50d6 100644 --- a/src/mame/drivers/homerun.c +++ b/src/mame/drivers/homerun.c @@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( dynashot, homerun_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(homerun) + MCFG_SCREEN_UPDATE_DRIVER(homerun_state, screen_update_homerun) MCFG_GFXDECODE(homerun) MCFG_PALETTE_LENGTH(16*4) diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index 2cde6e9a97e..e14628617f3 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -369,6 +369,8 @@ public: virtual void machine_start(); virtual void machine_reset(); DECLARE_MACHINE_RESET(hornet_2board); + UINT32 screen_update_hornet(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + UINT32 screen_update_hornet_2board(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -420,9 +422,8 @@ static void voodoo_vblank_1(device_t *device, int param) { } -static SCREEN_UPDATE_RGB32( hornet ) +UINT32 hornet_state::screen_update_hornet(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - hornet_state *state = screen.machine().driver_data<hornet_state>(); device_t *voodoo = screen.machine().device("voodoo0"); device_t *k037122 = screen.machine().device("k037122_1"); @@ -430,14 +431,13 @@ static SCREEN_UPDATE_RGB32( hornet ) k037122_tile_draw(k037122, bitmap, cliprect); - draw_7segment_led(bitmap, 3, 3, state->m_led_reg0); - draw_7segment_led(bitmap, 9, 3, state->m_led_reg1); + draw_7segment_led(bitmap, 3, 3, m_led_reg0); + draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } -static SCREEN_UPDATE_RGB32( hornet_2board ) +UINT32 hornet_state::screen_update_hornet_2board(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - hornet_state *state = screen.machine().driver_data<hornet_state>(); if (strcmp(screen.tag(), ":lscreen") == 0) { device_t *k037122 = screen.machine().device("k037122_1"); @@ -457,8 +457,8 @@ static SCREEN_UPDATE_RGB32( hornet_2board ) k037122_tile_draw(k037122, bitmap, cliprect); } - draw_7segment_led(bitmap, 3, 3, state->m_led_reg0); - draw_7segment_led(bitmap, 9, 3, state->m_led_reg1); + draw_7segment_led(bitmap, 3, 3, m_led_reg0); + draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } @@ -1016,7 +1016,7 @@ static MACHINE_CONFIG_START( hornet, hornet_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 48*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) - MCFG_SCREEN_UPDATE_STATIC(hornet) + MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet) MCFG_PALETTE_LENGTH(65536) @@ -1106,13 +1106,13 @@ static MACHINE_CONFIG_DERIVED( hornet_2board, hornet ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 384) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_STATIC(hornet_2board) + MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet_2board) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 384) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_STATIC(hornet_2board) + MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet_2board) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( terabrst, hornet_2board ) diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c index b3bf31f11b0..4fc858e183d 100644 --- a/src/mame/drivers/hotblock.c +++ b/src/mame/drivers/hotblock.c @@ -67,6 +67,7 @@ public: DECLARE_WRITE8_MEMBER(hotblock_port0_w); DECLARE_WRITE8_MEMBER(hotblock_video_write); virtual void video_start(); + UINT32 screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -142,9 +143,8 @@ void hotblock_state::video_start() save_item(NAME(m_pal)); } -static SCREEN_UPDATE_IND16(hotblock) +UINT32 hotblock_state::screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - hotblock_state *state = screen.machine().driver_data<hotblock_state>(); int y, x, count; int i; static const int xxx = 320, yyy = 204; @@ -153,7 +153,7 @@ static SCREEN_UPDATE_IND16(hotblock) for (i = 0; i < 256; i++) { - int dat = (state->m_pal[i * 2 + 1] << 8) | state->m_pal[i * 2]; + int dat = (m_pal[i * 2 + 1] << 8) | m_pal[i * 2]; palette_set_color_rgb(screen.machine(), i, pal5bit(dat >> 0), pal5bit(dat >> 5), pal5bit(dat >> 10)); } @@ -162,8 +162,8 @@ static SCREEN_UPDATE_IND16(hotblock) { for(x = 0; x < xxx; x++) { - if (state->m_port0 & 0x40) - bitmap.pix16(y, x) = state->m_vram[count]; + if (m_port0 & 0x40) + bitmap.pix16(y, x) = m_vram[count]; count++; } } @@ -225,7 +225,7 @@ static MACHINE_CONFIG_START( hotblock, hotblock_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(1024,1024) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_STATIC(hotblock) + MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update_hotblock) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/hotstuff.c b/src/mame/drivers/hotstuff.c index d98328384f5..6870de270d4 100644 --- a/src/mame/drivers/hotstuff.c +++ b/src/mame/drivers/hotstuff.c @@ -21,6 +21,7 @@ public: DECLARE_WRITE8_MEMBER(ioboard_data_w); DECLARE_WRITE8_MEMBER(ioboard_reg_w); virtual void video_start(); + UINT32 screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -30,9 +31,8 @@ void hotstuff_state::video_start() /* the first 0x20 bytes in every 0x200 (each line) of video ram are the colour data, providing a palette of 16 RGB444 colours for that line */ -SCREEN_UPDATE_RGB32( hotstuff ) +UINT32 hotstuff_state::screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - hotstuff_state *state = screen.machine().driver_data<hotstuff_state>(); int count, y,yyy,x,xxx; UINT16 row_palette_data[0x10]; rgb_t row_palette_data_as_rgb32_pen_data[0x10]; @@ -47,7 +47,7 @@ SCREEN_UPDATE_RGB32( hotstuff ) for (p=0;p<0x10;p++) { - row_palette_data[p] = state->m_bitmapram[count+p]; + row_palette_data[p] = m_bitmapram[count+p]; row_palette_data_as_rgb32_pen_data[p] = MAKE_RGB( (row_palette_data[p] & 0x0f00)>>4, (row_palette_data[p] & 0x00f0)>>0, (row_palette_data[p] & 0x000f)<<4 ); @@ -56,13 +56,13 @@ SCREEN_UPDATE_RGB32( hotstuff ) for(x = 0; x < xxx; x++) { { - bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0xf000)>>12]; + bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0xf000)>>12]; x++; - bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x0f00)>>8]; + bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x0f00)>>8]; x++; - bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x00f0)>>4]; + bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x00f0)>>4]; x++; - bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x000f)>>0]; + bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x000f)>>0]; } count++; @@ -133,7 +133,7 @@ static MACHINE_CONFIG_START( hotstuff, hotstuff_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(128*8, 64*8) MCFG_SCREEN_VISIBLE_AREA((0x10*4)+8, 101*8-1, 0*8, 33*8-1) - MCFG_SCREEN_UPDATE_STATIC(hotstuff) + MCFG_SCREEN_UPDATE_DRIVER(hotstuff_state, screen_update_hotstuff) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c index 3fc29a92769..b81e50c4345 100644 --- a/src/mame/drivers/hvyunit.c +++ b/src/mame/drivers/hvyunit.c @@ -126,6 +126,8 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_hvyunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_hvyunit(screen_device &screen, bool state); }; @@ -177,28 +179,26 @@ void hvyunit_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); } -static SCREEN_UPDATE_IND16( hvyunit ) +UINT32 hvyunit_state::screen_update_hvyunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { #define SX_POS 96 #define SY_POS 0 - hvyunit_state *state = screen.machine().driver_data<hvyunit_state>(); - state->m_bg_tilemap->set_scrollx(0, ((state->m_port0_data & 0x40) << 2) + state->m_scrollx + SX_POS); // TODO - state->m_bg_tilemap->set_scrolly(0, ((state->m_port0_data & 0x80) << 1) + state->m_scrolly + SY_POS); // TODO + m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO + m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO bitmap.fill(get_black_pen(screen.machine()), cliprect); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - pandora_update(state->m_pandora, bitmap, cliprect); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + pandora_update(m_pandora, bitmap, cliprect); return 0; } -static SCREEN_VBLANK( hvyunit ) +void hvyunit_state::screen_eof_hvyunit(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - hvyunit_state *state = screen.machine().driver_data<hvyunit_state>(); - pandora_eof(state->m_pandora); + pandora_eof(m_pandora); } } @@ -679,8 +679,8 @@ static MACHINE_CONFIG_START( hvyunit, hvyunit_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(hvyunit) - MCFG_SCREEN_VBLANK_STATIC(hvyunit) + MCFG_SCREEN_UPDATE_DRIVER(hvyunit_state, screen_update_hvyunit) + MCFG_SCREEN_VBLANK_DRIVER(hvyunit_state, screen_eof_hvyunit) MCFG_GFXDECODE(hvyunit) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c index 5cfb2cc3897..bc43bd8bb0b 100644 --- a/src/mame/drivers/hyhoo.c +++ b/src/mame/drivers/hyhoo.c @@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( hyhoo, hyhoo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(hyhoo) + MCFG_SCREEN_UPDATE_DRIVER(hyhoo_state, screen_update_hyhoo) /* sound hardware */ diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c index 85e14208586..4f9bf15602e 100644 --- a/src/mame/drivers/hyperspt.c +++ b/src/mame/drivers/hyperspt.c @@ -307,7 +307,7 @@ static MACHINE_CONFIG_START( hyperspt, hyperspt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(hyperspt) + MCFG_SCREEN_UPDATE_DRIVER(hyperspt_state, screen_update_hyperspt) MCFG_GFXDECODE(hyperspt) MCFG_PALETTE_LENGTH(16*16+16*16) diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c index 4647425ad8c..38a73db1980 100644 --- a/src/mame/drivers/hyprduel.c +++ b/src/mame/drivers/hyprduel.c @@ -687,7 +687,7 @@ static MACHINE_CONFIG_START( hyprduel, hyprduel_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE) - MCFG_SCREEN_UPDATE_STATIC(hyprduel) + MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel) MCFG_GFXDECODE(14220) MCFG_PALETTE_LENGTH(8192) @@ -728,7 +728,7 @@ static MACHINE_CONFIG_START( magerror, hyprduel_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE) - MCFG_SCREEN_UPDATE_STATIC(hyprduel) + MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel) MCFG_GFXDECODE(14220) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index 6180ad33491..5628d599733 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -89,6 +89,7 @@ public: virtual void machine_reset(); virtual void video_start(); DECLARE_VIDEO_START(gp98); + UINT32 screen_update_jingbell(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -281,10 +282,9 @@ VIDEO_START_MEMBER(igs009_state,gp98) } -static SCREEN_UPDATE_IND16(jingbell) +UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - igs009_state *state = screen.machine().driver_data<igs009_state>(); - int layers_ctrl = state->m_video_enable ? -1 : 0; + int layers_ctrl = m_video_enable ? -1 : 0; #ifdef MAME_DEBUG if (screen.machine().input().code_pressed(KEYCODE_Z)) @@ -306,10 +306,10 @@ static SCREEN_UPDATE_IND16(jingbell) for (i= 0;i < 0x80;i++) { - state->m_gp98_reel1_tilemap->set_scrolly(i, state->m_bg_scroll[i]*2); - state->m_gp98_reel2_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x80]*2); - state->m_gp98_reel3_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x100]*2); - state->m_gp98_reel4_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x180]*2); + m_gp98_reel1_tilemap->set_scrolly(i, m_bg_scroll[i]*2); + m_gp98_reel2_tilemap->set_scrolly(i, m_bg_scroll[i+0x80]*2); + m_gp98_reel3_tilemap->set_scrolly(i, m_bg_scroll[i+0x100]*2); + m_gp98_reel4_tilemap->set_scrolly(i, m_bg_scroll[i+0x180]*2); } @@ -318,7 +318,7 @@ static SCREEN_UPDATE_IND16(jingbell) for (zz=0;zz<0x80-8;zz++) // -8 because of visible area (2*8 = 16) { rectangle clip; - int rowenable = state->m_bg_scroll2[zz]; + int rowenable = m_bg_scroll2[zz]; /* draw top of screen */ clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+2); @@ -327,19 +327,19 @@ static SCREEN_UPDATE_IND16(jingbell) if (rowenable==0) { // 0 and 1 are the same? or is there a global switchoff? - state->m_gp98_reel1_tilemap->draw(bitmap, clip, 0,0); + m_gp98_reel1_tilemap->draw(bitmap, clip, 0,0); } else if (rowenable==1) { - state->m_gp98_reel2_tilemap->draw(bitmap, clip, 0,0); + m_gp98_reel2_tilemap->draw(bitmap, clip, 0,0); } else if (rowenable==2) { - state->m_gp98_reel3_tilemap->draw(bitmap, clip, 0,0); + m_gp98_reel3_tilemap->draw(bitmap, clip, 0,0); } else if (rowenable==3) { - state->m_gp98_reel4_tilemap->draw(bitmap, clip, 0,0); + m_gp98_reel4_tilemap->draw(bitmap, clip, 0,0); } @@ -350,7 +350,7 @@ static SCREEN_UPDATE_IND16(jingbell) else bitmap.fill(get_black_pen(screen.machine()), cliprect); - if (layers_ctrl & 2) state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -756,7 +756,7 @@ static MACHINE_CONFIG_START( jingbell, igs009_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(jingbell) + MCFG_SCREEN_UPDATE_DRIVER(igs009_state, screen_update_jingbell) MCFG_GFXDECODE(jingbell) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c index ae53cdb3aac..423e141d6a5 100644 --- a/src/mame/drivers/igs011.c +++ b/src/mame/drivers/igs011.c @@ -196,6 +196,8 @@ public: DECLARE_DRIVER_INIT(vbowlj); DECLARE_DRIVER_INIT(ryukobou); virtual void video_start(); + UINT32 screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_vbowl(screen_device &screen, bool state); }; @@ -243,9 +245,8 @@ void igs011_state::video_start() m_lhb2_pen_hi = 0; } -static SCREEN_UPDATE_IND16( igs011 ) +UINT32 igs011_state::screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - igs011_state *state = screen.machine().driver_data<igs011_state>(); #ifdef MAME_DEBUG int layer_enable = -1; #endif @@ -269,7 +270,7 @@ static SCREEN_UPDATE_IND16( igs011 ) } #endif - pri_ram = &state->m_priority_ram[(state->m_priority & 7) * 512/2]; + pri_ram = &m_priority_ram[(m_priority & 7) * 512/2]; for (y = cliprect.min_y; y <= cliprect.max_y; y++) { @@ -280,7 +281,7 @@ static SCREEN_UPDATE_IND16( igs011 ) for (l = 0; l < 8; l++) { - if ( (state->m_layer[l][scr_addr] != 0xff) + if ( (m_layer[l][scr_addr] != 0xff) #ifdef MAME_DEBUG && (layer_enable & (1 << l)) #endif @@ -296,7 +297,7 @@ static SCREEN_UPDATE_IND16( igs011 ) bitmap.pix16(y, x) = get_black_pen(screen.machine()); else #endif - bitmap.pix16(y, x) = state->m_layer[l][scr_addr] | (l << 8); + bitmap.pix16(y, x) = m_layer[l][scr_addr] | (l << 8); } } return 0; @@ -2488,14 +2489,13 @@ READ16_MEMBER(igs011_state::vbowl_unk_r) return 0xffff; } -static SCREEN_VBLANK( vbowl ) +void igs011_state::screen_eof_vbowl(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - igs011_state *state = screen.machine().driver_data<igs011_state>(); - state->m_vbowl_trackball[0] = state->m_vbowl_trackball[1]; - state->m_vbowl_trackball[1] = (state->ioport("AN1")->read() << 8) | state->ioport("AN0")->read(); + m_vbowl_trackball[0] = m_vbowl_trackball[1]; + m_vbowl_trackball[1] = (ioport("AN1")->read() << 8) | ioport("AN0")->read(); } } @@ -3809,7 +3809,7 @@ static MACHINE_CONFIG_START( igs011_base, igs011_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC( igs011 ) + MCFG_SCREEN_UPDATE_DRIVER(igs011_state, screen_update_igs011) MCFG_PALETTE_LENGTH(0x800) // MCFG_GFXDECODE(igs011) @@ -3944,7 +3944,7 @@ static MACHINE_CONFIG_DERIVED( vbowl, igs011_base ) // irq 4 points to an apparently unneeded routine MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_STATIC(vbowl) // trackball + MCFG_SCREEN_VBLANK_DRIVER(igs011_state, screen_eof_vbowl) // MCFG_GFXDECODE(igs011_hi) MCFG_DEVICE_REMOVE("oki") diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c index 87504342119..564cb448754 100644 --- a/src/mame/drivers/igs017.c +++ b/src/mame/drivers/igs017.c @@ -155,6 +155,7 @@ public: DECLARE_MACHINE_RESET(iqblocka); DECLARE_MACHINE_RESET(mgcs); DECLARE_MACHINE_RESET(lhzb2a); + UINT32 screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -409,9 +410,8 @@ static int debug_viewer(running_machine &machine, bitmap_ind16 &bitmap,const rec return 0; } -static SCREEN_UPDATE_IND16( igs017 ) +UINT32 igs017_state::screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - igs017_state *state = screen.machine().driver_data<igs017_state>(); int layers_ctrl = -1; #ifdef MAME_DEBUG @@ -430,14 +430,14 @@ static SCREEN_UPDATE_IND16( igs017 ) bitmap.fill(get_black_pen(screen.machine()), cliprect); - if (state->m_video_disable) + if (m_video_disable) return 0; - if (layers_ctrl & 1) state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); if (layers_ctrl & 4) draw_sprites(screen.machine(), bitmap, cliprect); - if (layers_ctrl & 2) state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -3269,7 +3269,7 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(igs017) + MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE(igs017) MCFG_PALETTE_LENGTH(0x100*2) @@ -3334,7 +3334,7 @@ static MACHINE_CONFIG_START( mgcs, igs017_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(igs017) + MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE(igs017_flipped) MCFG_PALETTE_LENGTH(0x100*2) @@ -3374,7 +3374,7 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(igs017) + MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE(igs017_swapped) MCFG_PALETTE_LENGTH(0x100*2) @@ -3411,7 +3411,7 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(igs017) + MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE(igs017_swapped) MCFG_PALETTE_LENGTH(0x100*2) @@ -3442,7 +3442,7 @@ static MACHINE_CONFIG_START( slqz2, igs017_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(igs017) + MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE(igs017) MCFG_PALETTE_LENGTH(0x100*2) @@ -3482,7 +3482,7 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(igs017) + MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE(igs017) MCFG_PALETTE_LENGTH(0x100*2) @@ -3534,7 +3534,7 @@ static MACHINE_CONFIG_START( mgdha, igs017_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(igs017) + MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE(igs017_swapped) MCFG_PALETTE_LENGTH(0x100*2) @@ -3565,7 +3565,7 @@ static MACHINE_CONFIG_START( tjsb, igs017_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(igs017) + MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE(igs017) MCFG_PALETTE_LENGTH(0x100*2) diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c index eb19b0251b4..fb9e4d29a5f 100644 --- a/src/mame/drivers/igs_m027.c +++ b/src/mame/drivers/igs_m027.c @@ -58,6 +58,7 @@ public: TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info); TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info); virtual void video_start(); + UINT32 screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -181,19 +182,18 @@ void igs_m027_state::video_start() logerror("Video START OK!\n"); } -static SCREEN_UPDATE_IND16(igs_majhong) +UINT32 igs_m027_state::screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - igs_m027_state *state = screen.machine().driver_data<igs_m027_state>(); //?????????? bitmap.fill(get_black_pen(screen.machine()), cliprect); //?????? - state->m_igs_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_igs_bg_tilemap->draw(bitmap, cliprect, 0,0); //CG?????? //?????? - state->m_igs_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_igs_tx_tilemap->draw(bitmap, cliprect, 0,0); //fprintf(stdout,"Video UPDATE OK!\n"); return 0; } @@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( igs_majhong, igs_m027_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC( igs_majhong ) + MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_igs_majhong) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c index 6d2e6317973..73e4b056388 100644 --- a/src/mame/drivers/igspoker.c +++ b/src/mame/drivers/igspoker.c @@ -119,6 +119,8 @@ public: virtual void machine_reset(); virtual void video_start(); DECLARE_VIDEO_START(cpokerpk); + UINT32 screen_update_igs_video(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -197,15 +199,14 @@ void igspoker_state::video_start() m_fg_tilemap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16(igs_video) +UINT32 igspoker_state::screen_update_igs_video(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - igspoker_state *state = screen.machine().driver_data<igspoker_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); // FIX: CSK227IT must have some way to disable background, or wrong gfx? - if (state->m_bg_enable) state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + if (m_bg_enable) m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -215,10 +216,9 @@ VIDEO_START_MEMBER(igspoker_state,cpokerpk) m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } -static SCREEN_UPDATE_IND16(cpokerpk) +UINT32 igspoker_state::screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - igspoker_state *state = screen.machine().driver_data<igspoker_state>(); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -1780,7 +1780,7 @@ static MACHINE_CONFIG_START( igspoker, igspoker_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) // TODO: wrong screen size! MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(igs_video) + MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_igs_video) MCFG_GFXDECODE(igspoker) MCFG_PALETTE_LENGTH(2048) @@ -1810,7 +1810,7 @@ static MACHINE_CONFIG_DERIVED( number10, igspoker ) MCFG_CPU_IO_MAP(number10_io_map) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(cpokerpk) + MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_cpokerpk) MCFG_VIDEO_START_OVERRIDE(igspoker_state,cpokerpk) MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH) diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c index 865839ddc93..f3628959fca 100644 --- a/src/mame/drivers/ikki.c +++ b/src/mame/drivers/ikki.c @@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( ikki, ikki_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8+3*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(ikki) + MCFG_SCREEN_UPDATE_DRIVER(ikki_state, screen_update_ikki) MCFG_GFXDECODE(ikki) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c index 8cd1d39eb0f..1053a3aba7b 100644 --- a/src/mame/drivers/imolagp.c +++ b/src/mame/drivers/imolagp.c @@ -128,6 +128,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -208,15 +209,14 @@ void imolagp_state::video_start() } -static SCREEN_UPDATE_IND16( imolagp ) +UINT32 imolagp_state::screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - imolagp_state *state = screen.machine().driver_data<imolagp_state>(); - int scroll2 = state->m_scroll ^ 0x03; + int scroll2 = m_scroll ^ 0x03; int pass; for (pass = 0; pass < 2; pass++) { int i; - const UINT8 *source = state->m_videoram[pass * 2]; + const UINT8 *source = m_videoram[pass * 2]; for (i = 0; i < 0x4000; i++) { @@ -574,7 +574,7 @@ static MACHINE_CONFIG_START( imolagp, imolagp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256,256) MCFG_SCREEN_VISIBLE_AREA(0+64-16,255,0+16,255) - MCFG_SCREEN_UPDATE_STATIC(imolagp) + MCFG_SCREEN_UPDATE_DRIVER(imolagp_state, screen_update_imolagp) MCFG_PALETTE_LENGTH(0x20) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/intrscti.c b/src/mame/drivers/intrscti.c index 00923241d92..dfc588cd0bd 100644 --- a/src/mame/drivers/intrscti.c +++ b/src/mame/drivers/intrscti.c @@ -26,15 +26,15 @@ public: // DECLARE_READ8_MEMBER(unk_r); DECLARE_DRIVER_INIT(intrscti); virtual void video_start(); + UINT32 screen_update_intrscti(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; void intrscti_state::video_start() { } -static SCREEN_UPDATE_IND16(intrscti) +UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - intrscti_state *state = screen.machine().driver_data<intrscti_state>(); int y,x; int count; @@ -46,7 +46,7 @@ static SCREEN_UPDATE_IND16(intrscti) for (x=0;x<32;x++) { int dat; - dat = state->m_vram[count]; + dat = m_vram[count]; drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],dat/*+0x100*/,0,0,0,x*8,y*8,0); count++; } @@ -58,7 +58,7 @@ static SCREEN_UPDATE_IND16(intrscti) for (x=0;x<32;x++) { int dat; - dat = state->m_vram[count]; + dat = m_vram[count]; drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],dat+0x100,0,0,0,x*8,y*8,0); count++; } @@ -171,7 +171,7 @@ static MACHINE_CONFIG_START( intrscti, intrscti_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(intrscti) + MCFG_SCREEN_UPDATE_DRIVER(intrscti_state, screen_update_intrscti) MCFG_GFXDECODE(intrscti) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c index ae33679ad05..dfac3b8a3ac 100644 --- a/src/mame/drivers/inufuku.c +++ b/src/mame/drivers/inufuku.c @@ -364,7 +364,7 @@ static MACHINE_CONFIG_START( inufuku, inufuku_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(2048, 256) MCFG_SCREEN_VISIBLE_AREA(0, 319-1, 1, 224-1) - MCFG_SCREEN_UPDATE_STATIC(inufuku) + MCFG_SCREEN_UPDATE_DRIVER(inufuku_state, screen_update_inufuku) MCFG_GFXDECODE(inufuku) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c index 2cfda9d809e..425ee470ea5 100644 --- a/src/mame/drivers/iqblock.c +++ b/src/mame/drivers/iqblock.c @@ -285,7 +285,7 @@ static MACHINE_CONFIG_START( iqblock, iqblock_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(iqblock) + MCFG_SCREEN_UPDATE_DRIVER(iqblock_state, screen_update_iqblock) MCFG_GFXDECODE(iqblock) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c index 278ef1fd71f..b0ce5c58038 100644 --- a/src/mame/drivers/irobot.c +++ b/src/mame/drivers/irobot.c @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( irobot, irobot_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(irobot) + MCFG_SCREEN_UPDATE_DRIVER(irobot_state, screen_update_irobot) MCFG_GFXDECODE(irobot) MCFG_PALETTE_LENGTH(64 + 32) /* 64 for polygons, 32 for text */ diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c index 25378618c17..f766c85f76e 100644 --- a/src/mame/drivers/ironhors.c +++ b/src/mame/drivers/ironhors.c @@ -393,7 +393,7 @@ static MACHINE_CONFIG_START( ironhors, ironhors_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(ironhors) + MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_ironhors) MCFG_GFXDECODE(ironhors) MCFG_PALETTE_LENGTH(16*8*16+16*8*16) @@ -468,7 +468,7 @@ static MACHINE_CONFIG_DERIVED( farwest, ironhors ) MCFG_GFXDECODE(farwest) MCFG_VIDEO_START_OVERRIDE(ironhors_state,farwest) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(farwest) + MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_farwest) MCFG_SOUND_MODIFY("ym2203") MCFG_SOUND_CONFIG(farwest_ym2203_config) diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c index 46e54890fdb..05f7e86ab06 100644 --- a/src/mame/drivers/istellar.c +++ b/src/mame/drivers/istellar.c @@ -53,6 +53,7 @@ public: DECLARE_DRIVER_INIT(istellar); virtual void machine_start(); virtual void palette_init(); + UINT32 screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -61,9 +62,8 @@ public: /* VIDEO GOODS */ -static SCREEN_UPDATE_RGB32( istellar ) +UINT32 istellar_state::screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - istellar_state *state = screen.machine().driver_data<istellar_state>(); int x, y; /* clear */ @@ -74,8 +74,8 @@ static SCREEN_UPDATE_RGB32( istellar ) { for (x = 0; x < 32; x++) { - int tile = state->m_tile_ram[x+y*32]; - int attr = state->m_tile_control_ram[x+y*32]; + int tile = m_tile_ram[x+y*32]; + int attr = m_tile_control_ram[x+y*32]; drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],tile,attr & 0x0f,0, 0, x*8, y*8, 0); } @@ -346,7 +346,7 @@ static MACHINE_CONFIG_START( istellar, istellar_state ) MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(256, 256, istellar) + MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, istellar_state, screen_update_istellar) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c index acac460ef62..ee35142bb6b 100644 --- a/src/mame/drivers/itech32.c +++ b/src/mame/drivers/itech32.c @@ -1686,7 +1686,7 @@ static MACHINE_CONFIG_START( timekill, itech32_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 508, 0, 384, 262, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(itech32) + MCFG_SCREEN_UPDATE_DRIVER(itech32_state, screen_update_itech32) /* sound hardware */ diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c index b378b31e429..793f5578830 100644 --- a/src/mame/drivers/itech8.c +++ b/src/mame/drivers/itech8.c @@ -1792,7 +1792,7 @@ static MACHINE_CONFIG_DERIVED( wfortune, itech8_core_hi ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2layer) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer) MACHINE_CONFIG_END @@ -1804,7 +1804,7 @@ static MACHINE_CONFIG_DERIVED( grmatch, itech8_core_hi ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_grmatch) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_grmatch) /* palette updater */ MCFG_TIMER_ADD_SCANLINE("palette", grmatch_palette_update, "screen", 0, 0) @@ -1819,7 +1819,7 @@ static MACHINE_CONFIG_DERIVED( stratab_hi, itech8_core_hi ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2layer) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer) MACHINE_CONFIG_END @@ -1831,7 +1831,7 @@ static MACHINE_CONFIG_DERIVED( stratab_lo, itech8_core_lo ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2layer) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer) MACHINE_CONFIG_END @@ -1847,7 +1847,7 @@ static MACHINE_CONFIG_DERIVED( slikshot_hi, itech8_core_hi ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(slikshot) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_slikshot) MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot) MACHINE_CONFIG_END @@ -1864,7 +1864,7 @@ static MACHINE_CONFIG_DERIVED( slikshot_lo, itech8_core_lo ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(slikshot) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_slikshot) MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot) MACHINE_CONFIG_END @@ -1877,7 +1877,7 @@ static MACHINE_CONFIG_DERIVED( slikshot_lo_noz80, itech8_core_lo ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2page) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page) MACHINE_CONFIG_END @@ -1897,7 +1897,7 @@ static MACHINE_CONFIG_DERIVED( hstennis_hi, itech8_core_hi ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large) MACHINE_CONFIG_END @@ -1909,7 +1909,7 @@ static MACHINE_CONFIG_DERIVED( hstennis_lo, itech8_core_lo ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large) MACHINE_CONFIG_END @@ -1925,7 +1925,7 @@ static MACHINE_CONFIG_DERIVED( rimrockn, itech8_core_hi ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(24, 375, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large) MACHINE_CONFIG_END @@ -1941,7 +1941,7 @@ static MACHINE_CONFIG_DERIVED( ninclown, itech8_core_hi ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(64, 423, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large) MACHINE_CONFIG_END @@ -1956,7 +1956,7 @@ static MACHINE_CONFIG_DERIVED( gtg2, itech8_core_lo ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(itech8_2layer) + MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer) MACHINE_CONFIG_END diff --git a/src/mame/drivers/itgambl2.c b/src/mame/drivers/itgambl2.c index 543484df33b..a3a053a5242 100644 --- a/src/mame/drivers/itgambl2.c +++ b/src/mame/drivers/itgambl2.c @@ -69,6 +69,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -84,45 +85,44 @@ void itgambl2_state::video_start() } /* (dirty) debug code for looking 8bpps blitter-based gfxs */ -static SCREEN_UPDATE_RGB32( itgambl2 ) +UINT32 itgambl2_state::screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - itgambl2_state *state = screen.machine().driver_data<itgambl2_state>(); int x,y,count; - const UINT8 *blit_ram = state->memregion("gfx1")->base(); + const UINT8 *blit_ram = memregion("gfx1")->base(); if(screen.machine().input().code_pressed(KEYCODE_Z)) - state->m_test_x++; + m_test_x++; if(screen.machine().input().code_pressed(KEYCODE_X)) - state->m_test_x--; + m_test_x--; if(screen.machine().input().code_pressed(KEYCODE_A)) - state->m_test_y++; + m_test_y++; if(screen.machine().input().code_pressed(KEYCODE_S)) - state->m_test_y--; + m_test_y--; if(screen.machine().input().code_pressed(KEYCODE_Q)) - state->m_start_offs+=0x200; + m_start_offs+=0x200; if(screen.machine().input().code_pressed(KEYCODE_W)) - state->m_start_offs-=0x200; + m_start_offs-=0x200; if(screen.machine().input().code_pressed(KEYCODE_E)) - state->m_start_offs++; + m_start_offs++; if(screen.machine().input().code_pressed(KEYCODE_R)) - state->m_start_offs--; + m_start_offs--; - popmessage("%d %d %04x",state->m_test_x,state->m_test_y,state->m_start_offs); + popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs); bitmap.fill(get_black_pen(screen.machine()), cliprect); - count = (state->m_start_offs); + count = (m_start_offs); - for(y=0;y<state->m_test_y;y++) + for(y=0;y<m_test_y;y++) { - for(x=0;x<state->m_test_x;x++) + for(x=0;x<m_test_x;x++) { UINT32 color; @@ -273,7 +273,7 @@ static MACHINE_CONFIG_START( itgambl2, itgambl2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC( itgambl2 ) + MCFG_SCREEN_UPDATE_DRIVER(itgambl2_state, screen_update_itgambl2) MCFG_GFXDECODE(itgambl2) diff --git a/src/mame/drivers/itgambl3.c b/src/mame/drivers/itgambl3.c index 9236a18b068..cfe00de541b 100644 --- a/src/mame/drivers/itgambl3.c +++ b/src/mame/drivers/itgambl3.c @@ -57,6 +57,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -72,45 +73,44 @@ void itgambl3_state::video_start() } /* (dirty) debug code for looking 8bpps blitter-based gfxs */ -static SCREEN_UPDATE_RGB32( itgambl3 ) +UINT32 itgambl3_state::screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - itgambl3_state *state = screen.machine().driver_data<itgambl3_state>(); int x,y,count; - const UINT8 *blit_ram = state->memregion("gfx1")->base(); + const UINT8 *blit_ram = memregion("gfx1")->base(); if(screen.machine().input().code_pressed(KEYCODE_Z)) - state->m_test_x++; + m_test_x++; if(screen.machine().input().code_pressed(KEYCODE_X)) - state->m_test_x--; + m_test_x--; if(screen.machine().input().code_pressed(KEYCODE_A)) - state->m_test_y++; + m_test_y++; if(screen.machine().input().code_pressed(KEYCODE_S)) - state->m_test_y--; + m_test_y--; if(screen.machine().input().code_pressed(KEYCODE_Q)) - state->m_start_offs+=0x200; + m_start_offs+=0x200; if(screen.machine().input().code_pressed(KEYCODE_W)) - state->m_start_offs-=0x200; + m_start_offs-=0x200; if(screen.machine().input().code_pressed(KEYCODE_E)) - state->m_start_offs++; + m_start_offs++; if(screen.machine().input().code_pressed(KEYCODE_R)) - state->m_start_offs--; + m_start_offs--; - popmessage("%d %d %04x",state->m_test_x,state->m_test_y,state->m_start_offs); + popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs); bitmap.fill(get_black_pen(screen.machine()), cliprect); - count = (state->m_start_offs); + count = (m_start_offs); - for(y=0;y<state->m_test_y;y++) + for(y=0;y<m_test_y;y++) { - for(x=0;x<state->m_test_x;x++) + for(x=0;x<m_test_x;x++) { UINT32 color; @@ -262,7 +262,7 @@ static MACHINE_CONFIG_START( itgambl3, itgambl3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC( itgambl3 ) + MCFG_SCREEN_UPDATE_DRIVER(itgambl3_state, screen_update_itgambl3) MCFG_GFXDECODE(itgambl3) diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c index 21fcba48d82..457bf186d18 100644 --- a/src/mame/drivers/jack.c +++ b/src/mame/drivers/jack.c @@ -826,7 +826,7 @@ static MACHINE_CONFIG_START( jack, jack_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(jack) + MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_jack) MCFG_GFXDECODE(jack) MCFG_PALETTE_LENGTH(32) @@ -867,7 +867,7 @@ static MACHINE_CONFIG_DERIVED( joinem, jack ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(joinem) + MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem) MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem) MCFG_VIDEO_START_OVERRIDE(jack_state,joinem) @@ -886,7 +886,7 @@ static MACHINE_CONFIG_DERIVED( loverboy, jack ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(joinem) + MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem) MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem) MCFG_VIDEO_START_OVERRIDE(jack_state,joinem) diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c index d176ff9891a..8c7d94b3eff 100644 --- a/src/mame/drivers/jackal.c +++ b/src/mame/drivers/jackal.c @@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( jackal, jackal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(jackal) + MCFG_SCREEN_UPDATE_DRIVER(jackal_state, screen_update_jackal) MCFG_GFXDECODE(jackal) MCFG_PALETTE_LENGTH(0x300) diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c index 53f61b67080..b8fb36ad8c5 100644 --- a/src/mame/drivers/jackie.c +++ b/src/mame/drivers/jackie.c @@ -110,6 +110,7 @@ public: TILE_GET_INFO_MEMBER(get_jackie_reel3_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_jackie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -197,9 +198,8 @@ void jackie_state::video_start() } -static SCREEN_UPDATE_IND16(jackie) +UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jackie_state *state = screen.machine().driver_data<jackie_state>(); int i,j; int startclipmin = 0; const rectangle &visarea = screen.visible_area(); @@ -208,30 +208,30 @@ static SCREEN_UPDATE_IND16(jackie) for (i=0;i < 0x40;i++) { - state->m_reel1_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x000]); - state->m_reel2_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x040]); - state->m_reel3_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x080]); + m_reel1_tilemap->set_scrolly(i, m_bg_scroll[i+0x000]); + m_reel2_tilemap->set_scrolly(i, m_bg_scroll[i+0x040]); + m_reel3_tilemap->set_scrolly(i, m_bg_scroll[i+0x080]); } for (j=0; j < 0x100-1; j++) { rectangle clip; - int rowenable = state->m_bg_scroll2[j]; + int rowenable = m_bg_scroll2[j]; /* draw top of screen */ clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+1); if (rowenable==0) { - state->m_reel1_tilemap->draw(bitmap, clip, 0,0); + m_reel1_tilemap->draw(bitmap, clip, 0,0); } else if (rowenable==1) { - state->m_reel2_tilemap->draw(bitmap, clip, 0,0); + m_reel2_tilemap->draw(bitmap, clip, 0,0); } else if (rowenable==2) { - state->m_reel3_tilemap->draw(bitmap, clip, 0,0); + m_reel3_tilemap->draw(bitmap, clip, 0,0); } else if (rowenable==3) { @@ -240,7 +240,7 @@ static SCREEN_UPDATE_IND16(jackie) startclipmin+=1; } - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -586,7 +586,7 @@ static MACHINE_CONFIG_START( jackie, jackie_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(jackie) + MCFG_SCREEN_UPDATE_DRIVER(jackie_state, screen_update_jackie) MCFG_GFXDECODE(jackie) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c index dbc21efdedc..1ff5fde79ce 100644 --- a/src/mame/drivers/jackpool.c +++ b/src/mame/drivers/jackpool.c @@ -37,6 +37,7 @@ public: DECLARE_WRITE16_MEMBER(jackpool_io_w); DECLARE_DRIVER_INIT(jackpool); virtual void video_start(); + UINT32 screen_update_jackpool(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -44,39 +45,38 @@ void jackpool_state::video_start() { } -static SCREEN_UPDATE_IND16(jackpool) +UINT32 jackpool_state::screen_update_jackpool(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jackpool_state *state = screen.machine().driver_data<jackpool_state>(); gfx_element *gfx = screen.machine().gfx[0]; int count;// = 0x00000/2; int y,x; { - count = state->m_map_vreg*(0x4000/2); + count = m_map_vreg*(0x4000/2); for (y=0;y<32;y++) { for (x=0;x<64;x++) { - int tile = (state->m_vram[count+(0x2000/2)] & 0x7fff); - int attr = (state->m_vram[count+(0x2000/2)+0x800] & 0x1f00)>>8; + int tile = (m_vram[count+(0x2000/2)] & 0x7fff); + int attr = (m_vram[count+(0x2000/2)+0x800] & 0x1f00)>>8; drawgfx_opaque(bitmap,cliprect,gfx,tile,attr,0,0,x*8,y*8); count++; } } - count = state->m_map_vreg*(0x4000/2); + count = m_map_vreg*(0x4000/2); for (y=0;y<32;y++) { for (x=0;x<64;x++) { - int tile = (state->m_vram[count] & 0x7fff); + int tile = (m_vram[count] & 0x7fff); if(tile != 0) { - int attr = (state->m_vram[count+0x800] & 0x1f00)>>8; - int t_pen = (state->m_vram[count+0x800] & 0x1000); + int attr = (m_vram[count+0x800] & 0x1f00)>>8; + int t_pen = (m_vram[count+0x800] & 0x1000); drawgfx_transpen(bitmap,cliprect,gfx,tile,attr,0,0,x*8,y*8,(t_pen) ? 0 : -1); } @@ -266,7 +266,7 @@ static MACHINE_CONFIG_START( jackpool, jackpool_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(jackpool) + MCFG_SCREEN_UPDATE_DRIVER(jackpool_state, screen_update_jackpool) MCFG_EEPROM_93C46_ADD("eeprom") diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c index 3f19cc32b17..d83ee8626e4 100644 --- a/src/mame/drivers/jailbrek.c +++ b/src/mame/drivers/jailbrek.c @@ -281,7 +281,7 @@ static MACHINE_CONFIG_START( jailbrek, jailbrek_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240) - MCFG_SCREEN_UPDATE_STATIC(jailbrek) + MCFG_SCREEN_UPDATE_DRIVER(jailbrek_state, screen_update_jailbrek) /* sound hardware */ diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c index 0eb92c796d2..254728bfd61 100644 --- a/src/mame/drivers/jalmah.c +++ b/src/mame/drivers/jalmah.c @@ -204,6 +204,8 @@ public: virtual void machine_reset(); virtual void video_start(); DECLARE_VIDEO_START(urashima); + UINT32 screen_update_jalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_urashima(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -436,80 +438,78 @@ static void draw_sc3_layer(running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16( jalmah ) +UINT32 jalmah_state::screen_update_jalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jalmah_state *state = screen.machine().driver_data<jalmah_state>(); - UINT16 *jm_scrollram = state->m_jm_scrollram; + UINT16 *jm_scrollram = m_jm_scrollram; UINT8 cur_prin; jalmah_priority_system(screen.machine()); - state->m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0] & 0xfff); - state->m_sc0_tilemap_1->set_scrollx(0, jm_scrollram[0] & 0x7ff); - state->m_sc0_tilemap_2->set_scrollx(0, jm_scrollram[0] & 0x3ff); - state->m_sc0_tilemap_3->set_scrollx(0, jm_scrollram[0] & 0x1ff); + m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0] & 0xfff); + m_sc0_tilemap_1->set_scrollx(0, jm_scrollram[0] & 0x7ff); + m_sc0_tilemap_2->set_scrollx(0, jm_scrollram[0] & 0x3ff); + m_sc0_tilemap_3->set_scrollx(0, jm_scrollram[0] & 0x1ff); - state->m_sc1_tilemap_0->set_scrollx(0, jm_scrollram[1] & 0xfff); - state->m_sc1_tilemap_1->set_scrollx(0, jm_scrollram[1] & 0x7ff); - state->m_sc1_tilemap_2->set_scrollx(0, jm_scrollram[1] & 0x3ff); - state->m_sc1_tilemap_3->set_scrollx(0, jm_scrollram[1] & 0x1ff); + m_sc1_tilemap_0->set_scrollx(0, jm_scrollram[1] & 0xfff); + m_sc1_tilemap_1->set_scrollx(0, jm_scrollram[1] & 0x7ff); + m_sc1_tilemap_2->set_scrollx(0, jm_scrollram[1] & 0x3ff); + m_sc1_tilemap_3->set_scrollx(0, jm_scrollram[1] & 0x1ff); - state->m_sc2_tilemap_0->set_scrollx(0, jm_scrollram[2] & 0xfff); - state->m_sc2_tilemap_1->set_scrollx(0, jm_scrollram[2] & 0x7ff); - state->m_sc2_tilemap_2->set_scrollx(0, jm_scrollram[2] & 0x3ff); - state->m_sc2_tilemap_3->set_scrollx(0, jm_scrollram[2] & 0x1ff); + m_sc2_tilemap_0->set_scrollx(0, jm_scrollram[2] & 0xfff); + m_sc2_tilemap_1->set_scrollx(0, jm_scrollram[2] & 0x7ff); + m_sc2_tilemap_2->set_scrollx(0, jm_scrollram[2] & 0x3ff); + m_sc2_tilemap_3->set_scrollx(0, jm_scrollram[2] & 0x1ff); - state->m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3] & 0x7ff); + m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3] & 0x7ff); // empty - state->m_sc3_tilemap_2->set_scrollx(0, jm_scrollram[3] & 0x3ff); - state->m_sc3_tilemap_3->set_scrollx(0, jm_scrollram[3] & 0x1ff); + m_sc3_tilemap_2->set_scrollx(0, jm_scrollram[3] & 0x3ff); + m_sc3_tilemap_3->set_scrollx(0, jm_scrollram[3] & 0x1ff); - state->m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4] & 0x1ff); - state->m_sc0_tilemap_1->set_scrolly(0, jm_scrollram[4] & 0x3ff); - state->m_sc0_tilemap_2->set_scrolly(0, jm_scrollram[4] & 0x7ff); - state->m_sc0_tilemap_3->set_scrolly(0, jm_scrollram[4] & 0xfff); + m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4] & 0x1ff); + m_sc0_tilemap_1->set_scrolly(0, jm_scrollram[4] & 0x3ff); + m_sc0_tilemap_2->set_scrolly(0, jm_scrollram[4] & 0x7ff); + m_sc0_tilemap_3->set_scrolly(0, jm_scrollram[4] & 0xfff); - state->m_sc1_tilemap_0->set_scrolly(0, jm_scrollram[5] & 0x1ff); - state->m_sc1_tilemap_1->set_scrolly(0, jm_scrollram[5] & 0x3ff); - state->m_sc1_tilemap_2->set_scrolly(0, jm_scrollram[5] & 0x7ff); - state->m_sc1_tilemap_3->set_scrolly(0, jm_scrollram[5] & 0xfff); + m_sc1_tilemap_0->set_scrolly(0, jm_scrollram[5] & 0x1ff); + m_sc1_tilemap_1->set_scrolly(0, jm_scrollram[5] & 0x3ff); + m_sc1_tilemap_2->set_scrolly(0, jm_scrollram[5] & 0x7ff); + m_sc1_tilemap_3->set_scrolly(0, jm_scrollram[5] & 0xfff); - state->m_sc2_tilemap_0->set_scrolly(0, jm_scrollram[6] & 0x1ff); - state->m_sc2_tilemap_1->set_scrolly(0, jm_scrollram[6] & 0x3ff); - state->m_sc2_tilemap_2->set_scrolly(0, jm_scrollram[6] & 0x7ff); - state->m_sc2_tilemap_3->set_scrolly(0, jm_scrollram[6] & 0xfff); + m_sc2_tilemap_0->set_scrolly(0, jm_scrollram[6] & 0x1ff); + m_sc2_tilemap_1->set_scrolly(0, jm_scrollram[6] & 0x3ff); + m_sc2_tilemap_2->set_scrolly(0, jm_scrollram[6] & 0x7ff); + m_sc2_tilemap_3->set_scrolly(0, jm_scrollram[6] & 0xfff); - state->m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7] & 0xff); + m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7] & 0xff); // empty - state->m_sc3_tilemap_2->set_scrolly(0, jm_scrollram[7] & 0x1ff); - state->m_sc3_tilemap_3->set_scrolly(0, jm_scrollram[7] & 0x3ff); + m_sc3_tilemap_2->set_scrolly(0, jm_scrollram[7] & 0x1ff); + m_sc3_tilemap_3->set_scrolly(0, jm_scrollram[7] & 0x3ff); bitmap.fill(screen.machine().pens[0xff], cliprect); //selectable by a ram address? for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1) { - if(cur_prin==state->m_sc0_prin) { draw_sc0_layer(screen.machine(),bitmap,cliprect); } - if(cur_prin==state->m_sc1_prin) { draw_sc1_layer(screen.machine(),bitmap,cliprect); } - if(cur_prin==state->m_sc2_prin) { draw_sc2_layer(screen.machine(),bitmap,cliprect); } - if(cur_prin==state->m_sc3_prin) { draw_sc3_layer(screen.machine(),bitmap,cliprect); } + if(cur_prin==m_sc0_prin) { draw_sc0_layer(screen.machine(),bitmap,cliprect); } + if(cur_prin==m_sc1_prin) { draw_sc1_layer(screen.machine(),bitmap,cliprect); } + if(cur_prin==m_sc2_prin) { draw_sc2_layer(screen.machine(),bitmap,cliprect); } + if(cur_prin==m_sc3_prin) { draw_sc3_layer(screen.machine(),bitmap,cliprect); } } return 0; } -static SCREEN_UPDATE_IND16( urashima ) +UINT32 jalmah_state::screen_update_urashima(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jalmah_state *state = screen.machine().driver_data<jalmah_state>(); - UINT16 *jm_scrollram = state->m_jm_scrollram; + UINT16 *jm_scrollram = m_jm_scrollram; /*this game doesn't use the RANGE register at all.*/ - state->m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0]); - state->m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3]); - state->m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4]); - state->m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]); + m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0]); + m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3]); + m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4]); + m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]); bitmap.fill(screen.machine().pens[0x1ff], cliprect);//selectable by a ram address? - if(state->m_jm_vregs[0] & 1) { state->m_sc0_tilemap_0->draw(bitmap, cliprect, 0,0); } - if(state->m_jm_vregs[3] & 1) { state->m_sc3_tilemap_0->draw(bitmap, cliprect, 0,0); } + if(m_jm_vregs[0] & 1) { m_sc0_tilemap_0->draw(bitmap, cliprect, 0,0); } + if(m_jm_vregs[3] & 1) { m_sc3_tilemap_0->draw(bitmap, cliprect, 0,0); } return 0; } @@ -1417,7 +1417,7 @@ static MACHINE_CONFIG_START( jalmah, jalmah_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(jalmah) + MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_jalmah) MCFG_PALETTE_LENGTH(0x400) @@ -1438,7 +1438,7 @@ static MACHINE_CONFIG_DERIVED( urashima, jalmah ) MCFG_VIDEO_START_OVERRIDE(jalmah_state,urashima) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(urashima) + MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_urashima) MACHINE_CONFIG_END /* diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c index b43f84508ce..8fc02ceb217 100644 --- a/src/mame/drivers/jangou.c +++ b/src/mame/drivers/jangou.c @@ -89,6 +89,7 @@ public: DECLARE_MACHINE_RESET(jngolady); DECLARE_MACHINE_START(common); DECLARE_MACHINE_RESET(common); + UINT32 screen_update_jangou(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -145,14 +146,13 @@ void jangou_state::video_start() save_item(NAME(m_blit_buffer)); } -static SCREEN_UPDATE_IND16( jangou ) +UINT32 jangou_state::screen_update_jangou(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jangou_state *state = screen.machine().driver_data<jangou_state>(); int x, y; for (y = cliprect.min_y; y <= cliprect.max_y; ++y) { - UINT8 *src = &state->m_blit_buffer[y * 512 / 2 + cliprect.min_x]; + UINT8 *src = &m_blit_buffer[y * 512 / 2 + cliprect.min_x]; UINT16 *dst = &bitmap.pix16(y, cliprect.min_x); for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) @@ -1005,7 +1005,7 @@ static MACHINE_CONFIG_START( jangou, jangou_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(jangou) + MCFG_SCREEN_UPDATE_DRIVER(jangou_state, screen_update_jangou) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/jantotsu.c b/src/mame/drivers/jantotsu.c index 242831d192b..3309e783a04 100644 --- a/src/mame/drivers/jantotsu.c +++ b/src/mame/drivers/jantotsu.c @@ -130,6 +130,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -145,14 +146,13 @@ void jantotsu_state::video_start() save_item(NAME(m_bitmap)); } -static SCREEN_UPDATE_RGB32(jantotsu) +UINT32 jantotsu_state::screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - jantotsu_state *state = screen.machine().driver_data<jantotsu_state>(); int x, y, i; int count = 0; UINT8 pen_i; - if(!state->m_display_on) + if(!m_display_on) return 0; for (y = 0; y < 256; y++) @@ -163,10 +163,10 @@ static SCREEN_UPDATE_RGB32(jantotsu) for (i = 0; i < 8; i++) { - color = state->m_col_bank; + color = m_col_bank; for(pen_i = 0;pen_i<4;pen_i++) - color |= (((state->m_bitmap[count + pen_i*0x2000]) >> (7 - i)) & 1) << pen_i; + color |= (((m_bitmap[count + pen_i*0x2000]) >> (7 - i)) & 1) << pen_i; if (cliprect.contains(x + i, y)) bitmap.pix32(y, x + i) = screen.machine().pens[color]; @@ -528,7 +528,7 @@ static MACHINE_CONFIG_START( jantotsu, jantotsu_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(jantotsu) + MCFG_SCREEN_UPDATE_DRIVER(jantotsu_state, screen_update_jantotsu) MCFG_PALETTE_LENGTH(0x20) diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c index 327405acd8d..2560e721ae7 100644 --- a/src/mame/drivers/jchan.c +++ b/src/mame/drivers/jchan.c @@ -224,6 +224,7 @@ public: DECLARE_DRIVER_INIT(jchan); virtual void video_start(); + UINT32 screen_update_jchan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -295,9 +296,8 @@ void jchan_state::video_start() -static SCREEN_UPDATE_IND16(jchan) +UINT32 jchan_state::screen_update_jchan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jchan_state *state = screen.machine().driver_data<jchan_state>(); int x,y; UINT16* src1; UINT16* src2; @@ -309,24 +309,24 @@ static SCREEN_UPDATE_IND16(jchan) screen.machine().priority_bitmap.fill(0, cliprect); - state->m_view2_0->kaneko16_prepare(bitmap, cliprect); + m_view2_0->kaneko16_prepare(bitmap, cliprect); for ( int i = 0; i < 8; i++ ) { - state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i); + m_view2_0->render_tilemap_chip(bitmap,cliprect,i); } - state->m_sprite_bitmap_1->fill(0x0000, cliprect); - state->m_sprite_bitmap_2->fill(0x0000, cliprect); + m_sprite_bitmap_1->fill(0x0000, cliprect); + m_sprite_bitmap_2->fill(0x0000, cliprect); - state->m_spritegen1->skns_draw_sprites(screen.machine(), *state->m_sprite_bitmap_1, cliprect, state->m_sprite_ram32_1, 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), state->m_sprite_regs32_1 ); - state->m_spritegen2->skns_draw_sprites(screen.machine(), *state->m_sprite_bitmap_2, cliprect, state->m_sprite_ram32_2, 0x4000, screen.machine().root_device().memregion("gfx2")->base(), state->memregion ("gfx2")->bytes(), state->m_sprite_regs32_2 ); + m_spritegen1->skns_draw_sprites(screen.machine(), *m_sprite_bitmap_1, cliprect, m_sprite_ram32_1, 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), m_sprite_regs32_1 ); + m_spritegen2->skns_draw_sprites(screen.machine(), *m_sprite_bitmap_2, cliprect, m_sprite_ram32_2, 0x4000, screen.machine().root_device().memregion("gfx2")->base(), memregion ("gfx2")->bytes(), m_sprite_regs32_2 ); // ignoring priority bits for now - might use alpha too, check 0x8000 of palette writes for (y=0;y<240;y++) { - src1 = &state->m_sprite_bitmap_1->pix16(y); - src2 = &state->m_sprite_bitmap_2->pix16(y); + src1 = &m_sprite_bitmap_1->pix16(y); + src2 = &m_sprite_bitmap_2->pix16(y); dst = &bitmap.pix16(y); for (x=0;x<320;x++) @@ -612,7 +612,7 @@ static MACHINE_CONFIG_START( jchan, jchan_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(jchan) + MCFG_SCREEN_UPDATE_DRIVER(jchan_state, screen_update_jchan) MCFG_PALETTE_LENGTH(0x10000) diff --git a/src/mame/drivers/jclub2.c b/src/mame/drivers/jclub2.c index 5029616c5f4..97e7134c85b 100644 --- a/src/mame/drivers/jclub2.c +++ b/src/mame/drivers/jclub2.c @@ -143,6 +143,9 @@ public: DECLARE_VIDEO_START(darkhors); DECLARE_VIDEO_START(jclub2); DECLARE_VIDEO_START(jclub2o); + UINT32 screen_update_darkhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_jclub2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_jclub2o(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -157,7 +160,7 @@ public: ***************************************************************************/ -static SCREEN_UPDATE_IND16( darkhors ); + TILE_GET_INFO_MEMBER(darkhors_state::get_tile_info_0) @@ -230,9 +233,8 @@ VIDEO_START_MEMBER(darkhors_state,darkhors) machine().gfx[0]->set_granularity(64); /* 256 colour sprites with palette selectable on 64 colour boundaries */ } -static SCREEN_UPDATE_IND16( darkhors ) +UINT32 darkhors_state::screen_update_darkhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - darkhors_state *state = screen.machine().driver_data<darkhors_state>(); int layers_ctrl = -1; #if DARKHORS_DEBUG @@ -248,25 +250,25 @@ static SCREEN_UPDATE_IND16( darkhors ) bitmap.fill(get_black_pen(screen.machine()), cliprect); - state->m_tmap->set_scrollx(0, (state->m_tmapscroll[0] >> 16) - 5); - state->m_tmap->set_scrolly(0, (state->m_tmapscroll[0] & 0xffff) - 0xff ); - if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_tmap->set_scrollx(0, (m_tmapscroll[0] >> 16) - 5); + m_tmap->set_scrolly(0, (m_tmapscroll[0] & 0xffff) - 0xff ); + if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - state->m_tmap2->set_scrollx(0, (state->m_tmapscroll2[0] >> 16) - 5); - state->m_tmap2->set_scrolly(0, (state->m_tmapscroll2[0] & 0xffff) - 0xff ); - if (layers_ctrl & 2) state->m_tmap2->draw(bitmap, cliprect, 0, 0); + m_tmap2->set_scrollx(0, (m_tmapscroll2[0] >> 16) - 5); + m_tmap2->set_scrolly(0, (m_tmapscroll2[0] & 0xffff) - 0xff ); + if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, 0, 0); if (layers_ctrl & 4) draw_sprites(screen.machine(),bitmap,cliprect); #if DARKHORS_DEBUG #if 0 popmessage("%04X-%04X %04X-%04X %04X-%04X %04X-%04X %04X-%04X %04X-%04X", - state->m_tmapscroll[0] >> 16, state->m_tmapscroll[0] & 0xffff, - state->m_tmapscroll[1] >> 16, state->m_tmapscroll[1] & 0xffff, - state->m_tmapscroll[2] >> 16, state->m_tmapscroll[2] & 0xffff, - state->m_tmapscroll[3] >> 16, state->m_tmapscroll[3] & 0xffff, - state->m_tmapscroll[4] >> 16, state->m_tmapscroll[4] & 0xffff, - state->m_tmapscroll[5] >> 16, state->m_tmapscroll[5] & 0xffff + m_tmapscroll[0] >> 16, m_tmapscroll[0] & 0xffff, + m_tmapscroll[1] >> 16, m_tmapscroll[1] & 0xffff, + m_tmapscroll[2] >> 16, m_tmapscroll[2] & 0xffff, + m_tmapscroll[3] >> 16, m_tmapscroll[3] & 0xffff, + m_tmapscroll[4] >> 16, m_tmapscroll[4] & 0xffff, + m_tmapscroll[5] >> 16, m_tmapscroll[5] & 0xffff ); #endif #endif @@ -698,7 +700,7 @@ static MACHINE_CONFIG_START( darkhors, darkhors_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x190, 0x100+16) MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1) - MCFG_SCREEN_UPDATE_STATIC(darkhors) + MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_darkhors) MCFG_GFXDECODE(darkhors) MCFG_PALETTE_LENGTH(0x10000) @@ -719,12 +721,11 @@ VIDEO_START_MEMBER(darkhors_state,jclub2) } -static SCREEN_UPDATE_IND16(jclub2) +UINT32 darkhors_state::screen_update_jclub2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - darkhors_state *state = screen.machine().driver_data<darkhors_state>(); // this isn't an st0020.. - state->m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect); + m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect); return 0; } @@ -742,7 +743,7 @@ static MACHINE_CONFIG_START( jclub2, darkhors_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x190, 0x100+16) MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1) - MCFG_SCREEN_UPDATE_STATIC(jclub2) + MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_jclub2) // NOT an ST0020 but instead ST0032, ram format isn't compatible at least MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0) @@ -785,10 +786,9 @@ VIDEO_START_MEMBER(darkhors_state,jclub2o) } -static SCREEN_UPDATE_IND16(jclub2o) +UINT32 darkhors_state::screen_update_jclub2o(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - darkhors_state *state = screen.machine().driver_data<darkhors_state>(); - state->m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect); + m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect); return 0; } @@ -810,7 +810,7 @@ static MACHINE_CONFIG_START( jclub2o, darkhors_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x190, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1) - MCFG_SCREEN_UPDATE_STATIC(jclub2o) + MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_jclub2o) MCFG_PALETTE_LENGTH(0x10000) MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0) diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c index 20d8329c0f8..75d80b157c1 100644 --- a/src/mame/drivers/jokrwild.c +++ b/src/mame/drivers/jokrwild.c @@ -117,6 +117,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -160,10 +161,9 @@ void jokrwild_state::video_start() } -static SCREEN_UPDATE_IND16( jokrwild ) +UINT32 jokrwild_state::screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jokrwild_state *state = screen.machine().driver_data<jokrwild_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -493,7 +493,7 @@ static MACHINE_CONFIG_START( jokrwild, jokrwild_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((32+1)*8, (32+1)*8) /* From MC6845, registers 00 & 04. (value-1) */ MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 26*8-1) /* From MC6845, registers 01 & 06 */ - MCFG_SCREEN_UPDATE_STATIC(jokrwild) + MCFG_SCREEN_UPDATE_DRIVER(jokrwild_state, screen_update_jokrwild) MCFG_GFXDECODE(jokrwild) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c index 1856db7ae6e..fdd105ed7dd 100644 --- a/src/mame/drivers/jollyjgr.c +++ b/src/mame/drivers/jollyjgr.c @@ -139,6 +139,8 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -492,26 +494,25 @@ static void draw_bitmap( running_machine &machine, bitmap_ind16 &bitmap ) } } -static SCREEN_UPDATE_IND16( jollyjgr ) +UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jollyjgr_state *state = screen.machine().driver_data<jollyjgr_state>(); - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int offs; bitmap.fill(32, cliprect); - if(state->m_pri) //used in Frog & Spiders level 3 + if(m_pri) //used in Frog & Spiders level 3 { - if(!(state->m_bitmap_disable)) + if(!(m_bitmap_disable)) draw_bitmap(screen.machine(), bitmap); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); } else { - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - if(!(state->m_bitmap_disable)) + if(!(m_bitmap_disable)) draw_bitmap(screen.machine(), bitmap); } @@ -525,13 +526,13 @@ static SCREEN_UPDATE_IND16( jollyjgr ) int code = spriteram[offs + 1] & 0x3f; int color = spriteram[offs + 2] & 7; - if (state->m_flip_x) + if (m_flip_x) { sx = 240 - sx; flipx = !flipx; } - if (state->m_flip_y) + if (m_flip_y) flipy = !flipy; else sy = 240 - sy; @@ -548,26 +549,25 @@ static SCREEN_UPDATE_IND16( jollyjgr ) return 0; } -static SCREEN_UPDATE_IND16( fspider ) +UINT32 jollyjgr_state::screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jollyjgr_state *state = screen.machine().driver_data<jollyjgr_state>(); // Draw bg and sprites - SCREEN_UPDATE16_CALL(jollyjgr); + SCREEN_UPDATE16_CALL_MEMBER(jollyjgr); /* Draw bullets 16 bytes, 2 bytes per bullet (y,x). 2 player bullets, 6 enemy bullets. Assume bullets to look the same as on Galaxian hw, that is, simply 4 pixels. Colours are unknown. */ for (int offs=0;offs<0x10;offs+=2) { - UINT8 sy=~state->m_bulletram[offs]; - UINT8 sx=~state->m_bulletram[offs|1]; + UINT8 sy=~m_bulletram[offs]; + UINT8 sx=~m_bulletram[offs|1]; UINT16 bc=(offs<4)? 32+7: // player, white 32+3; // enemy, yellow - if (state->m_flip_y) sy^=0xff; - if (state->m_flip_x) sx+=8; + if (m_flip_y) sy^=0xff; + if (m_flip_x) sx+=8; if (sy>=cliprect.min_y && sy<=cliprect.max_y) for (int x=sx-4;x<sx;x++) @@ -663,7 +663,7 @@ static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(jollyjgr) + MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_jollyjgr) MCFG_GFXDECODE(jollyjgr) MCFG_PALETTE_LENGTH(32+8) /* 32 for tilemap and sprites + 8 for the bitmap */ @@ -682,7 +682,7 @@ static MACHINE_CONFIG_DERIVED( fspider, jollyjgr ) MCFG_CPU_PROGRAM_MAP(fspider_map) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(fspider) + MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_fspider) MACHINE_CONFIG_END diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c index bc34064580d..4e4678b44ce 100644 --- a/src/mame/drivers/jongkyo.c +++ b/src/mame/drivers/jongkyo.c @@ -58,6 +58,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -72,9 +73,8 @@ void jongkyo_state::video_start() } -static SCREEN_UPDATE_IND16( jongkyo ) +UINT32 jongkyo_state::screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jongkyo_state *state = screen.machine().driver_data<jongkyo_state>(); int y; for (y = 0; y < 256; ++y) @@ -88,7 +88,7 @@ static SCREEN_UPDATE_IND16( jongkyo ) UINT8 data2; UINT8 data3; - // data3 = state->m_videoram2[x/4 + y*64]; // wrong + // data3 = m_videoram2[x/4 + y*64]; // wrong // good mahjong tiles data3 = 0x0f; // we're missing 2 bits.. there must be another piece of video ram somewhere or we can't use all the colours (6bpp).. banked somehow? @@ -97,8 +97,8 @@ static SCREEN_UPDATE_IND16( jongkyo ) - data1 = state->m_videoram[0x4000 + x / 4 + y * 64]; - data2 = state->m_videoram[x / 4 + y * 64]; + data1 = m_videoram[0x4000 + x / 4 + y * 64]; + data2 = m_videoram[x / 4 + y * 64]; for (b = 0; b < 4; ++b) { @@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( jongkyo, jongkyo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 256-8-1) - MCFG_SCREEN_UPDATE_STATIC(jongkyo) + MCFG_SCREEN_UPDATE_DRIVER(jongkyo_state, screen_update_jongkyo) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c index a1035e1f1b6..9c91bce3a11 100644 --- a/src/mame/drivers/jpmsys5.c +++ b/src/mame/drivers/jpmsys5.c @@ -103,6 +103,7 @@ public: DECLARE_VIDEO_START(jpmsys5v); DECLARE_MACHINE_START(jpmsys5); DECLARE_MACHINE_RESET(jpmsys5); + UINT32 screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -223,7 +224,7 @@ VIDEO_START_MEMBER(jpmsys5_state,jpmsys5v) tms34061_start(machine(), &tms34061intf); } -static SCREEN_UPDATE_RGB32( jpmsys5v ) +UINT32 jpmsys5_state::screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { int x, y; struct tms34061_display state; @@ -723,7 +724,7 @@ static MACHINE_CONFIG_START( jpmsys5v, jpmsys5_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz / 4, 676, 20*4, 147*4, 256, 0, 254) - MCFG_SCREEN_UPDATE_STATIC(jpmsys5v) + MCFG_SCREEN_UPDATE_DRIVER(jpmsys5_state, screen_update_jpmsys5v) MCFG_VIDEO_START_OVERRIDE(jpmsys5_state,jpmsys5v) diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c index d99673fb3b9..9392bca9f3d 100644 --- a/src/mame/drivers/jrpacman.c +++ b/src/mame/drivers/jrpacman.c @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( jrpacman, jrpacman_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(pacman) + MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman) MCFG_GFXDECODE(jrpacman) MCFG_PALETTE_LENGTH(128*4) diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c index b4937a846b4..bba2fd6cc89 100644 --- a/src/mame/drivers/jubilee.c +++ b/src/mame/drivers/jubilee.c @@ -104,6 +104,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -134,10 +135,9 @@ void jubilee_state::video_start() } -static SCREEN_UPDATE_IND16( jubileep ) +UINT32 jubilee_state::screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - jubilee_state *state = screen.machine().driver_data<jubilee_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -425,7 +425,7 @@ static MACHINE_CONFIG_START( jubileep, jubilee_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(jubileep) + MCFG_SCREEN_UPDATE_DRIVER(jubilee_state, screen_update_jubileep) MCFG_GFXDECODE(jubileep) diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c index c9186294c1d..e7f5911355d 100644 --- a/src/mame/drivers/junofrst.c +++ b/src/mame/drivers/junofrst.c @@ -451,7 +451,7 @@ static MACHINE_CONFIG_START( junofrst, junofrst_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */ - MCFG_SCREEN_UPDATE_STATIC(tutankhm) + MCFG_SCREEN_UPDATE_DRIVER(junofrst_state, screen_update_tutankhm) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index 926942eb965..8011d2a6777 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -1654,7 +1654,7 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(berlwall) + MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_berlwall) MCFG_GFXDECODE(1x4bit_1x4bit) MCFG_PALETTE_LENGTH(2048 + 32768) /* 32768 static colors for the bg */ @@ -1708,7 +1708,7 @@ static MACHINE_CONFIG_START( bakubrkr, kaneko16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(kaneko16) + MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_GFXDECODE(1x4bit_2x4bit) MCFG_PALETTE_LENGTH(2048) @@ -1777,7 +1777,7 @@ static MACHINE_CONFIG_START( blazeon, kaneko16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -8) - MCFG_SCREEN_UPDATE_STATIC(kaneko16) + MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_GFXDECODE(1x4bit_1x4bit) MCFG_PALETTE_LENGTH(2048) @@ -1837,7 +1837,7 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(kaneko16) + MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_GFXDECODE(1x8bit_2x4bit) MCFG_PALETTE_LENGTH(32768) @@ -1955,7 +1955,7 @@ static MACHINE_CONFIG_START( mgcrystl, kaneko16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(kaneko16) + MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_GFXDECODE(1x4bit_2x4bit) MCFG_PALETTE_LENGTH(2048) @@ -2079,7 +2079,7 @@ static MACHINE_CONFIG_START( shogwarr, kaneko16_shogwarr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(40, 296-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(kaneko16) + MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c index 6c769c715ab..3521ed42d1f 100644 --- a/src/mame/drivers/kangaroo.c +++ b/src/mame/drivers/kangaroo.c @@ -441,7 +441,7 @@ static MACHINE_CONFIG_START( nomcu, kangaroo_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248) - MCFG_SCREEN_UPDATE_STATIC(kangaroo) + MCFG_SCREEN_UPDATE_DRIVER(kangaroo_state, screen_update_kangaroo) /* sound hardware */ diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c index f8940b50377..d30a73c4476 100644 --- a/src/mame/drivers/karnov.c +++ b/src/mame/drivers/karnov.c @@ -820,7 +820,7 @@ static MACHINE_CONFIG_START( karnov, karnov_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(karnov) + MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov) MCFG_GFXDECODE(karnov) MCFG_PALETTE_LENGTH(1024) @@ -861,7 +861,7 @@ static MACHINE_CONFIG_START( wndrplnt, karnov_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(karnov) + MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov) MCFG_GFXDECODE(karnov) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c index 8016d090e52..61392ce8b66 100644 --- a/src/mame/drivers/kchamp.c +++ b/src/mame/drivers/kchamp.c @@ -430,7 +430,7 @@ static MACHINE_CONFIG_START( kchampvs, kchamp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(kchampvs) + MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchampvs) MCFG_GFXDECODE(kchamp) MCFG_PALETTE_LENGTH(256) @@ -477,7 +477,7 @@ static MACHINE_CONFIG_START( kchamp, kchamp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(kchamp) + MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchamp) MCFG_GFXDECODE(kchamp) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c index a6b47fdfdec..5fa5bd621b6 100644 --- a/src/mame/drivers/kickgoal.c +++ b/src/mame/drivers/kickgoal.c @@ -666,7 +666,7 @@ static MACHINE_CONFIG_START( kickgoal, kickgoal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(9*8, 55*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(kickgoal) + MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal) MCFG_GFXDECODE(kickgoal) MCFG_PALETTE_LENGTH(1024) @@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( actionhw, kickgoal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(10*8+2, 54*8-1+2, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(kickgoal) + MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal) MCFG_GFXDECODE(actionhw) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c index 90b88b2b288..fea27bdddd2 100644 --- a/src/mame/drivers/kingdrby.c +++ b/src/mame/drivers/kingdrby.c @@ -110,6 +110,7 @@ public: virtual void video_start(); DECLARE_PALETTE_INIT(kingdrby); DECLARE_PALETTE_INIT(kingdrbb); + UINT32 screen_update_kingdrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -227,25 +228,24 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } } -static SCREEN_UPDATE_IND16(kingdrby) +UINT32 kingdrby_state::screen_update_kingdrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - kingdrby_state *state = screen.machine().driver_data<kingdrby_state>(); const rectangle &visarea = screen.visible_area(); rectangle clip; - state->m_sc0_tilemap->set_scrollx(0, state->m_vram[0x342]); - state->m_sc0_tilemap->set_scrolly(0, state->m_vram[0x341]); - state->m_sc1_tilemap->set_scrollx(0, state->m_vram[0x342]); - state->m_sc1_tilemap->set_scrolly(0, state->m_vram[0x341]); - state->m_sc0w_tilemap->set_scrolly(0, 32); + m_sc0_tilemap->set_scrollx(0, m_vram[0x342]); + m_sc0_tilemap->set_scrolly(0, m_vram[0x341]); + m_sc1_tilemap->set_scrollx(0, m_vram[0x342]); + m_sc1_tilemap->set_scrolly(0, m_vram[0x341]); + m_sc0w_tilemap->set_scrolly(0, 32); /* maybe it needs two window tilemaps? (one at the top, the other at the bottom)*/ clip.set(visarea.min_x, 256, 192, visarea.max_y); /*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/ - state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(bitmap, cliprect, 0,0); draw_sprites(screen.machine(),bitmap,cliprect); - state->m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); - state->m_sc0w_tilemap->draw(bitmap, clip, 0,0); + m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); + m_sc0w_tilemap->draw(bitmap, clip, 0,0); return 0; } @@ -1044,7 +1044,7 @@ static MACHINE_CONFIG_START( kingdrby, kingdrby_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) /* controlled by CRTC */ - MCFG_SCREEN_UPDATE_STATIC(kingdrby) + MCFG_SCREEN_UPDATE_DRIVER(kingdrby_state, screen_update_kingdrby) MCFG_MC6845_ADD("crtc", MC6845, CLK_1/32, mc6845_intf) /* 53.333 Hz. guess */ diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c index f9d2b8c499a..f75951f2001 100644 --- a/src/mame/drivers/kingobox.c +++ b/src/mame/drivers/kingobox.c @@ -497,7 +497,7 @@ static MACHINE_CONFIG_START( kingofb, kingofb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(kingofb) + MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_kingofb) MCFG_GFXDECODE(kingobox) MCFG_PALETTE_LENGTH(256+8*2) @@ -547,7 +547,7 @@ static MACHINE_CONFIG_START( ringking, kingofb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(ringking) + MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_ringking) MCFG_GFXDECODE(rk) MCFG_PALETTE_LENGTH(256+8*2) diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c index 363e0af6ea2..ca40e2bc767 100644 --- a/src/mame/drivers/kinst.c +++ b/src/mame/drivers/kinst.c @@ -162,6 +162,7 @@ public: DECLARE_DRIVER_INIT(kinst2); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -242,15 +243,14 @@ void kinst_state::machine_reset() * *************************************/ -static SCREEN_UPDATE_IND16( kinst ) +UINT32 kinst_state::screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - kinst_state *state = screen.machine().driver_data<kinst_state>(); int y; /* loop over rows and copy to the destination */ for (y = cliprect.min_y; y <= cliprect.max_y; y++) { - UINT32 *src = &state->m_video_base[640/4 * y]; + UINT32 *src = &m_video_base[640/4 * y]; UINT16 *dest = &bitmap.pix16(y, cliprect.min_x); int x; @@ -688,7 +688,7 @@ static MACHINE_CONFIG_START( kinst, kinst_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(kinst) + MCFG_SCREEN_UPDATE_DRIVER(kinst_state, screen_update_kinst) MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR) MCFG_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c index c2761bcda8e..a4b15f8c01b 100644 --- a/src/mame/drivers/klax.c +++ b/src/mame/drivers/klax.c @@ -184,7 +184,7 @@ static MACHINE_CONFIG_START( klax, klax_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(klax) + MCFG_SCREEN_UPDATE_DRIVER(klax_state, screen_update_klax) MCFG_VIDEO_START_OVERRIDE(klax_state,klax) diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c index d00b7297739..75d3081668d 100644 --- a/src/mame/drivers/kncljoe.c +++ b/src/mame/drivers/kncljoe.c @@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( kncljoe, kncljoe_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1500)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(kncljoe) + MCFG_SCREEN_UPDATE_DRIVER(kncljoe_state, screen_update_kncljoe) MCFG_GFXDECODE(kncljoe) MCFG_PALETTE_LENGTH(16*8+16*8) diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c index 854c753defa..def63f857c0 100644 --- a/src/mame/drivers/koftball.c +++ b/src/mame/drivers/koftball.c @@ -65,6 +65,7 @@ public: TILE_GET_INFO_MEMBER(get_t1_tile_info); TILE_GET_INFO_MEMBER(get_t2_tile_info); virtual void video_start(); + UINT32 screen_update_koftball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -96,11 +97,10 @@ void koftball_state::video_start() m_tilemap_1->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16( koftball ) +UINT32 koftball_state::screen_update_koftball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - koftball_state *state = screen.machine().driver_data<koftball_state>(); - state->m_tilemap_2->draw(bitmap, cliprect, 0, 0); - state->m_tilemap_1->draw(bitmap, cliprect, 0, 0); + m_tilemap_2->draw(bitmap, cliprect, 0, 0); + m_tilemap_1->draw(bitmap, cliprect, 0, 0); return 0; } @@ -248,7 +248,7 @@ static MACHINE_CONFIG_START( koftball, koftball_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_STATIC(koftball) + MCFG_SCREEN_UPDATE_DRIVER(koftball_state, screen_update_koftball) MCFG_GFXDECODE(koftball) diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c index e372735ed5c..4ccb6495ae1 100644 --- a/src/mame/drivers/koikoi.c +++ b/src/mame/drivers/koikoi.c @@ -73,6 +73,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -142,10 +143,9 @@ void koikoi_state::video_start() m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16(koikoi) +UINT32 koikoi_state::screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - koikoi_state *state = screen.machine().driver_data<koikoi_state>(); - state->m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -374,7 +374,7 @@ static MACHINE_CONFIG_START( koikoi, koikoi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(koikoi) + MCFG_SCREEN_UPDATE_DRIVER(koikoi_state, screen_update_koikoi) MCFG_GFXDECODE(koikoi) MCFG_PALETTE_LENGTH(8*32) diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index 805b337d1f0..a5a3af18506 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -1789,7 +1789,7 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) - MCFG_SCREEN_UPDATE_STATIC(konamigx) + MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx) MCFG_PALETTE_LENGTH(8192) @@ -1869,13 +1869,13 @@ static MACHINE_CONFIG_DERIVED( gxtype3, konamigx ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(576, 264) MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16) - MCFG_SCREEN_UPDATE_STATIC(konamigx_left) + MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_left) MCFG_SCREEN_ADD("screen2", RASTER) MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223) MCFG_SCREEN_SIZE(576, 264) MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16) - MCFG_SCREEN_UPDATE_STATIC(konamigx_right) + MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right) MCFG_GFXDECODE(type34) MACHINE_CONFIG_END @@ -1894,13 +1894,13 @@ static MACHINE_CONFIG_DERIVED( gxtype4, konamigx ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(128*8, 264) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16) - MCFG_SCREEN_UPDATE_STATIC(konamigx_left) + MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_left) MCFG_SCREEN_ADD("screen2", RASTER) MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223) MCFG_SCREEN_SIZE(128*8, 264) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16) - MCFG_SCREEN_UPDATE_STATIC(konamigx_right) + MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right) MCFG_PALETTE_LENGTH(8192) MCFG_GFXDECODE(type4) diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c index 2ac302ff76b..1ffb7b14f33 100644 --- a/src/mame/drivers/konamim2.c +++ b/src/mame/drivers/konamim2.c @@ -249,6 +249,7 @@ public: DECLARE_READ64_MEMBER(cpu_r); DECLARE_DRIVER_INIT(m2); virtual void video_start(); + UINT32 screen_update_m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -256,20 +257,19 @@ void konamim2_state::video_start() { } -static SCREEN_UPDATE_IND16( m2 ) +UINT32 konamim2_state::screen_update_m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - konamim2_state *state = screen.machine().driver_data<konamim2_state>(); int i, j; UINT32 fb_start = 0xffffffff; - if (state->m_vdl0_address != 0) + if (m_vdl0_address != 0) { - fb_start = *(UINT32*)&state->m_main_ram[(state->m_vdl0_address - 0x40000000) / 8] - 0x40000000; + fb_start = *(UINT32*)&m_main_ram[(m_vdl0_address - 0x40000000) / 8] - 0x40000000; } if (fb_start <= 0x800000) { - UINT16 *frame = (UINT16*)&state->m_main_ram[fb_start/8]; + UINT16 *frame = (UINT16*)&m_main_ram[fb_start/8]; for (j=0; j < 384; j++) { UINT16 *fb = &frame[(j*512)]; @@ -1184,7 +1184,7 @@ static MACHINE_CONFIG_START( m2, konamim2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_STATIC(m2) + MCFG_SCREEN_UPDATE_DRIVER(konamim2_state, screen_update_m2) MCFG_PALETTE_LENGTH(32768) MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c index 80236f41a7e..77d0406858d 100644 --- a/src/mame/drivers/kopunch.c +++ b/src/mame/drivers/kopunch.c @@ -198,7 +198,7 @@ static MACHINE_CONFIG_START( kopunch, kopunch_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(kopunch) + MCFG_SCREEN_UPDATE_DRIVER(kopunch_state, screen_update_kopunch) MCFG_GFXDECODE(kopunch) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c index 9cbf278c570..d81dc1f4b25 100644 --- a/src/mame/drivers/ksayakyu.c +++ b/src/mame/drivers/ksayakyu.c @@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(ksayakyu) + MCFG_SCREEN_UPDATE_DRIVER(ksayakyu_state, screen_update_ksayakyu) MCFG_GFXDECODE(ksayakyu) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c index f48f01f1fb8..c8457607dac 100644 --- a/src/mame/drivers/kyugo.c +++ b/src/mame/drivers/kyugo.c @@ -554,7 +554,7 @@ static MACHINE_CONFIG_START( gyrodine, kyugo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(kyugo) + MCFG_SCREEN_UPDATE_DRIVER(kyugo_state, screen_update_kyugo) MCFG_GFXDECODE(kyugo) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c index a6d35b2b019..bc4e5c3f79b 100644 --- a/src/mame/drivers/labyrunr.c +++ b/src/mame/drivers/labyrunr.c @@ -207,7 +207,7 @@ static MACHINE_CONFIG_START( labyrunr, labyrunr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(37*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(labyrunr) + MCFG_SCREEN_UPDATE_DRIVER(labyrunr_state, screen_update_labyrunr) MCFG_GFXDECODE(labyrunr) MCFG_PALETTE_LENGTH(2*8*16*16) diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c index a74202be6ef..ee008730c58 100644 --- a/src/mame/drivers/ladybug.c +++ b/src/mame/drivers/ladybug.c @@ -788,7 +788,7 @@ static MACHINE_CONFIG_START( ladybug, ladybug_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(ladybug) + MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_ladybug) MCFG_GFXDECODE(ladybug) MCFG_PALETTE_LENGTH(4*8+4*16) @@ -830,8 +830,8 @@ static MACHINE_CONFIG_START( sraider, ladybug_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(sraider) - MCFG_SCREEN_VBLANK_STATIC(sraider) + MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_sraider) + MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_sraider) MCFG_GFXDECODE(sraider) MCFG_PALETTE_LENGTH(4*8+4*16+32+2) diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c index 6d461e670bb..ad8b1a209e8 100644 --- a/src/mame/drivers/ladyfrog.c +++ b/src/mame/drivers/ladyfrog.c @@ -321,7 +321,7 @@ static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 29*8-1) // black borders in ladyfrog gameplay are correct - MCFG_SCREEN_UPDATE_STATIC(ladyfrog) + MCFG_SCREEN_UPDATE_DRIVER(ladyfrog_state, screen_update_ladyfrog) MCFG_GFXDECODE(ladyfrog) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c index 8baf285bcb4..5b9fa6c248a 100644 --- a/src/mame/drivers/laserbas.c +++ b/src/mame/drivers/laserbas.c @@ -59,6 +59,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_laserbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -69,23 +70,22 @@ void laserbas_state::video_start() save_item(NAME(m_vram2)); } -static SCREEN_UPDATE_IND16(laserbas) +UINT32 laserbas_state::screen_update_laserbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - laserbas_state *state = screen.machine().driver_data<laserbas_state>(); int x, y; for (y = 0; y < 256; y++) for(x = 0; x < 128; x++) { - if (state->m_vram2[y * 128 + x] & 0xf) - bitmap.pix16(y, x * 2) = (state->m_vram2[y * 128 + x] & 0xf); + if (m_vram2[y * 128 + x] & 0xf) + bitmap.pix16(y, x * 2) = (m_vram2[y * 128 + x] & 0xf); else - bitmap.pix16(y, x * 2) = (state->m_vram1[y * 128 + x] & 0xf) + 16; + bitmap.pix16(y, x * 2) = (m_vram1[y * 128 + x] & 0xf) + 16; - if (state->m_vram2[y * 128 + x] >> 4) - bitmap.pix16(y, x * 2 + 1) = (state->m_vram2[y * 128 + x] >> 4); + if (m_vram2[y * 128 + x] >> 4) + bitmap.pix16(y, x * 2 + 1) = (m_vram2[y * 128 + x] >> 4); else - bitmap.pix16(y, x * 2 + 1) = (state->m_vram1[y * 128 + x] >> 4) + 16; + bitmap.pix16(y, x * 2 + 1) = (m_vram1[y * 128 + x] >> 4) + 16; } return 0; } @@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( laserbas, laserbas_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(laserbas) + MCFG_SCREEN_UPDATE_DRIVER(laserbas_state, screen_update_laserbas) MCFG_MC6845_ADD("crtc", H46505, 3000000/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c index 3fae707fc50..e06ef5b3b1b 100644 --- a/src/mame/drivers/laserbat.c +++ b/src/mame/drivers/laserbat.c @@ -494,17 +494,16 @@ void laserbat_state::video_start() save_item(NAME(m_colorram)); } -static SCREEN_UPDATE_IND16( laserbat ) +UINT32 laserbat_state::screen_update_laserbat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - laserbat_state *state = screen.machine().driver_data<laserbat_state>(); int y; - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); /* update the S2636 chips */ - bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect); - bitmap_ind16 &s2636_2_bitmap = s2636_update(state->m_s2636_2, cliprect); - bitmap_ind16 &s2636_3_bitmap = s2636_update(state->m_s2636_3, cliprect); + bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect); + bitmap_ind16 &s2636_2_bitmap = s2636_update(m_s2636_2, cliprect); + bitmap_ind16 &s2636_3_bitmap = s2636_update(m_s2636_3, cliprect); /* copy the S2636 images into the main bitmap */ for (y = cliprect.min_y; y <= cliprect.max_y; y++) @@ -528,12 +527,12 @@ static SCREEN_UPDATE_IND16( laserbat ) } } - if (state->m_sprite_enable) + if (m_sprite_enable) drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1], - state->m_sprite_code, - state->m_sprite_color, + m_sprite_code, + m_sprite_color, 0,0, - state->m_sprite_x - 6,state->m_sprite_y,0); + m_sprite_x - 6,m_sprite_y,0); return 0; } @@ -760,7 +759,7 @@ static MACHINE_CONFIG_START( laserbat, laserbat_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(1*8, 29*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(laserbat) + MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat) MCFG_GFXDECODE(laserbat) MCFG_PALETTE_LENGTH(1024) @@ -804,7 +803,7 @@ static MACHINE_CONFIG_START( catnmous, laserbat_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(laserbat) + MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat) MCFG_GFXDECODE(laserbat) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c index 802145af66e..34837f7ca58 100644 --- a/src/mame/drivers/lasso.c +++ b/src/mame/drivers/lasso.c @@ -525,7 +525,7 @@ static MACHINE_CONFIG_START( base, lasso_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(lasso) + MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_lasso) MCFG_GFXDECODE(lasso) MCFG_PALETTE_LENGTH(0x40) @@ -562,7 +562,7 @@ static MACHINE_CONFIG_DERIVED( chameleo, base ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(chameleo) + MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_chameleo) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( wwjgtin, base ) @@ -580,7 +580,7 @@ static MACHINE_CONFIG_DERIVED( wwjgtin, base ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) // Smaller visible area? - MCFG_SCREEN_UPDATE_STATIC(wwjgtin) + MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_wwjgtin) MCFG_GFXDECODE(wwjgtin) // Has 1 additional layer MCFG_PALETTE_LENGTH(0x40 + 16*16) @@ -609,7 +609,7 @@ static MACHINE_CONFIG_DERIVED( pinbo, base ) MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) MCFG_VIDEO_START_OVERRIDE(lasso_state,pinbo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(chameleo) + MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_chameleo) /* sound hardware */ MCFG_DEVICE_REMOVE("sn76489.1") diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c index bd5d35aa1d2..012e3a25cdf 100644 --- a/src/mame/drivers/lastduel.c +++ b/src/mame/drivers/lastduel.c @@ -516,7 +516,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(lastduel) + MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_lastduel) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -559,7 +559,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(madgear) + MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_madgear) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c index f8551b30612..37187ca34e2 100644 --- a/src/mame/drivers/lastfght.c +++ b/src/mame/drivers/lastfght.c @@ -124,6 +124,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_lastfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -143,9 +144,8 @@ void lastfght_state::video_start() } -static SCREEN_UPDATE_IND16( lastfght ) +UINT32 lastfght_state::screen_update_lastfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - lastfght_state *state = screen.machine().driver_data<lastfght_state>(); #ifdef MAME_DEBUG #if 1 @@ -154,14 +154,14 @@ static SCREEN_UPDATE_IND16( lastfght ) UINT8 *gfxdata = screen.machine().root_device().memregion("gfx1")->base(); UINT8 data; - if (screen.machine().input().code_pressed_once(KEYCODE_ENTER)) state->m_view_roms ^= 1; - if (state->m_view_roms) + if (screen.machine().input().code_pressed_once(KEYCODE_ENTER)) m_view_roms ^= 1; + if (m_view_roms) { - if (screen.machine().input().code_pressed_once(KEYCODE_PGDN)) state->m_base += 512 * 256; - if (screen.machine().input().code_pressed_once(KEYCODE_PGUP)) state->m_base -= 512 * 256; - state->m_base %= state->memregion("gfx1")->bytes(); + if (screen.machine().input().code_pressed_once(KEYCODE_PGDN)) m_base += 512 * 256; + if (screen.machine().input().code_pressed_once(KEYCODE_PGUP)) m_base -= 512 * 256; + m_base %= memregion("gfx1")->bytes(); - count = state->m_base; + count = m_base; bitmap.fill(get_black_pen(screen.machine()), cliprect ); for (y = 0 ; y < 256; y++) @@ -173,13 +173,13 @@ static SCREEN_UPDATE_IND16( lastfght ) count++; } } - popmessage("%x", state->m_base); + popmessage("%x", m_base); return 0; } #endif #endif - copybitmap(bitmap, state->m_bitmap[state->m_dest ^ 1], 0, 0, 0, 0, cliprect); + copybitmap(bitmap, m_bitmap[m_dest ^ 1], 0, 0, 0, 0, cliprect); return 0; } @@ -594,7 +594,7 @@ static MACHINE_CONFIG_START( lastfght, lastfght_state ) MCFG_SCREEN_SIZE( 512, 256 ) MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 ) MCFG_SCREEN_REFRESH_RATE( 60 ) - MCFG_SCREEN_UPDATE_STATIC( lastfght ) + MCFG_SCREEN_UPDATE_DRIVER(lastfght_state, screen_update_lastfght) MACHINE_CONFIG_END diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c index 7801f863e13..edd3f7a9a8e 100644 --- a/src/mame/drivers/lazercmd.c +++ b/src/mame/drivers/lazercmd.c @@ -645,7 +645,7 @@ static MACHINE_CONFIG_START( lazercmd, lazercmd_state ) MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR + 16) MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, 0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1) - MCFG_SCREEN_UPDATE_STATIC(lazercmd) + MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd) MCFG_GFXDECODE(lazercmd) MCFG_PALETTE_LENGTH(5) @@ -679,7 +679,7 @@ static MACHINE_CONFIG_START( medlanes, lazercmd_state ) MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR) MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, 0 * VERT_CHR, VERT_RES * VERT_CHR - 1) - MCFG_SCREEN_UPDATE_STATIC(lazercmd) + MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd) MCFG_GFXDECODE(lazercmd) MCFG_PALETTE_LENGTH(5) @@ -713,7 +713,7 @@ static MACHINE_CONFIG_START( bbonk, lazercmd_state ) MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR) MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, 0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1) - MCFG_SCREEN_UPDATE_STATIC(lazercmd) + MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd) MCFG_GFXDECODE(lazercmd) MCFG_PALETTE_LENGTH(5) diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c index c8e95a71ed6..ee6ac48a841 100644 --- a/src/mame/drivers/legionna.c +++ b/src/mame/drivers/legionna.c @@ -1064,7 +1064,7 @@ static MACHINE_CONFIG_START( legionna, legionna_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(36*8, 36*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(legionna) + MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna) MCFG_GFXDECODE(legionna) MCFG_PALETTE_LENGTH(128*16) @@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(36*8, 36*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(legionna) + MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna) MCFG_GFXDECODE(heatbrl) MCFG_PALETTE_LENGTH(128*16) @@ -1123,7 +1123,7 @@ static MACHINE_CONFIG_START( godzilla, legionna_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(42*8, 36*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(godzilla) + MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla) MCFG_GFXDECODE(heatbrl) MCFG_PALETTE_LENGTH(128*16) @@ -1152,7 +1152,7 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state ) MCFG_SCREEN_REFRESH_RATE(61) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(godzilla) + MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla) MCFG_GFXDECODE(heatbrl) MCFG_PALETTE_LENGTH(128*16) @@ -1181,7 +1181,7 @@ static MACHINE_CONFIG_START( grainbow, legionna_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(64*8, 36*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 42*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(grainbow) + MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow) MCFG_GFXDECODE(grainbow) MCFG_PALETTE_LENGTH(128*16) @@ -1211,7 +1211,7 @@ static MACHINE_CONFIG_START( cupsoc, legionna_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(42*8, 36*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(grainbow) + MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow) MCFG_GFXDECODE(cupsoc) MCFG_PALETTE_LENGTH(128*16) @@ -1249,7 +1249,7 @@ static MACHINE_CONFIG_START( cupsocbl, legionna_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(42*8, 36*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(grainbow) + MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow) MCFG_GFXDECODE(heatbrl_csb) MCFG_PALETTE_LENGTH(128*16) diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c index 7e232c81851..726cec65fa2 100644 --- a/src/mame/drivers/lemmings.c +++ b/src/mame/drivers/lemmings.c @@ -278,8 +278,8 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(lemmings) - MCFG_SCREEN_VBLANK_STATIC(lemmings) + MCFG_SCREEN_UPDATE_DRIVER(lemmings_state, screen_update_lemmings) + MCFG_SCREEN_VBLANK_DRIVER(lemmings_state, screen_eof_lemmings) MCFG_GFXDECODE(lemmings) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c index 17b2dc83ee2..97ae7c16c1b 100644 --- a/src/mame/drivers/lethal.c +++ b/src/mame/drivers/lethal.c @@ -663,7 +663,7 @@ static MACHINE_CONFIG_START( lethalen, lethal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(216, 504-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(lethalen) + MCFG_SCREEN_UPDATE_DRIVER(lethal_state, screen_update_lethalen) MCFG_PALETTE_LENGTH(7168+1) diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c index 0038743c816..3120cc39e8d 100644 --- a/src/mame/drivers/lgp.c +++ b/src/mame/drivers/lgp.c @@ -86,6 +86,7 @@ public: DECLARE_WRITE8_MEMBER(ldp_write); DECLARE_DRIVER_INIT(lgp); virtual void machine_start(); + UINT32 screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -95,9 +96,8 @@ public: /* VIDEO GOODS */ -static SCREEN_UPDATE_RGB32( lgp ) +UINT32 lgp_state::screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - lgp_state *state = screen.machine().driver_data<lgp_state>(); int charx, chary; /* make color 0 transparent */ @@ -116,7 +116,7 @@ static SCREEN_UPDATE_RGB32( lgp ) /* Somewhere there's a flag that offsets the tilemap by 0x100*x */ /* Palette is likely set somewhere as well (tile_control_ram?) */ drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], - state->m_tile_ram[current_screen_character], + m_tile_ram[current_screen_character], 0, 0, 0, charx*8, chary*8, 0); } @@ -369,7 +369,7 @@ static MACHINE_CONFIG_START( lgp, lgp_state ) MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(256, 256, lgp) + MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, lgp_state, screen_update_lgp) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c index a9de6e18a60..c06e73b6138 100644 --- a/src/mame/drivers/liberate.c +++ b/src/mame/drivers/liberate.c @@ -840,7 +840,7 @@ static MACHINE_CONFIG_START( liberate, liberate_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 529ms Vblank duration?? */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(liberate) + MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_liberate) MCFG_GFXDECODE(liberate) MCFG_PALETTE_LENGTH(33) @@ -870,7 +870,7 @@ static MACHINE_CONFIG_DERIVED( boomrang, liberate ) MCFG_VIDEO_START_OVERRIDE(liberate_state,boomrang) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(boomrang) + MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_boomrang) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( prosoccr, liberate ) @@ -889,7 +889,7 @@ static MACHINE_CONFIG_DERIVED( prosoccr, liberate ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(prosoccr) + MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosoccr) MCFG_GFXDECODE(prosoccr) @@ -919,7 +919,7 @@ static MACHINE_CONFIG_START( prosport, liberate_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529) /* 529ms Vblank duration?? */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(prosport) + MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosport) MCFG_GFXDECODE(prosport) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c index b34c6ae5368..fe0450ed95e 100644 --- a/src/mame/drivers/limenko.c +++ b/src/mame/drivers/limenko.c @@ -87,6 +87,7 @@ public: TILE_GET_INFO_MEMBER(get_md_tile_info); TILE_GET_INFO_MEMBER(get_fg_tile_info); virtual void video_start(); + UINT32 screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -514,31 +515,30 @@ void limenko_state::video_start() m_sprites_bitmap_pri.allocate(384,240); } -static SCREEN_UPDATE_IND16( limenko ) +UINT32 limenko_state::screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - limenko_state *state = screen.machine().driver_data<limenko_state>(); - // state->m_videoreg[4] ???? It always has this value: 0xffeffff8 (2 signed bytes? values: -17 and -8 ?) + // m_videoreg[4] ???? It always has this value: 0xffeffff8 (2 signed bytes? values: -17 and -8 ?) screen.machine().priority_bitmap.fill(0, cliprect); - state->m_bg_tilemap->enable(state->m_videoreg[0] & 4); - state->m_md_tilemap->enable(state->m_videoreg[0] & 2); - state->m_fg_tilemap->enable(state->m_videoreg[0] & 1); + m_bg_tilemap->enable(m_videoreg[0] & 4); + m_md_tilemap->enable(m_videoreg[0] & 2); + m_fg_tilemap->enable(m_videoreg[0] & 1); - state->m_bg_tilemap->set_scrolly(0, state->m_videoreg[3] & 0xffff); - state->m_md_tilemap->set_scrolly(0, state->m_videoreg[2] & 0xffff); - state->m_fg_tilemap->set_scrolly(0, state->m_videoreg[1] & 0xffff); + m_bg_tilemap->set_scrolly(0, m_videoreg[3] & 0xffff); + m_md_tilemap->set_scrolly(0, m_videoreg[2] & 0xffff); + m_fg_tilemap->set_scrolly(0, m_videoreg[1] & 0xffff); - state->m_bg_tilemap->set_scrollx(0, (state->m_videoreg[3] & 0xffff0000) >> 16); - state->m_md_tilemap->set_scrollx(0, (state->m_videoreg[2] & 0xffff0000) >> 16); - state->m_fg_tilemap->set_scrollx(0, (state->m_videoreg[1] & 0xffff0000) >> 16); + m_bg_tilemap->set_scrollx(0, (m_videoreg[3] & 0xffff0000) >> 16); + m_md_tilemap->set_scrollx(0, (m_videoreg[2] & 0xffff0000) >> 16); + m_fg_tilemap->set_scrollx(0, (m_videoreg[1] & 0xffff0000) >> 16); - state->m_bg_tilemap->draw(bitmap, cliprect, 0,0); - state->m_md_tilemap->draw(bitmap, cliprect, 0,0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0,1); + m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_md_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(bitmap, cliprect, 0,1); - if(state->m_videoreg[0] & 8) - copy_sprites(screen.machine(), bitmap, state->m_sprites_bitmap, screen.machine().priority_bitmap, cliprect); + if(m_videoreg[0] & 8) + copy_sprites(screen.machine(), bitmap, m_sprites_bitmap, screen.machine().priority_bitmap, cliprect); return 0; } @@ -762,7 +762,7 @@ static MACHINE_CONFIG_START( limenko, limenko_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(384, 240) MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(limenko) + MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko) MCFG_GFXDECODE(limenko) MCFG_PALETTE_LENGTH(0x1000) @@ -793,7 +793,7 @@ static MACHINE_CONFIG_START( spotty, limenko_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(384, 240) MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(limenko) + MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko) MCFG_GFXDECODE(limenko) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/littlerb.c b/src/mame/drivers/littlerb.c index e979073bed0..1affc514c4b 100644 --- a/src/mame/drivers/littlerb.c +++ b/src/mame/drivers/littlerb.c @@ -202,6 +202,7 @@ public: // edfc / fffc alternating (display double buffering?) } virtual void video_start(); + UINT32 screen_update_littlerb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -554,13 +555,12 @@ INPUT_PORTS_END /* sprite format / offset could be completely wrong, this is just based on our (currently incorrect) vram access */ -static SCREEN_UPDATE_IND16(littlerb) +UINT32 littlerb_state::screen_update_littlerb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - littlerb_state *state = screen.machine().driver_data<littlerb_state>(); bitmap.fill(0, cliprect); - copybitmap_trans(bitmap, *state->m_temp_bitmap_sprites_back, 0, 0, 0, 0, cliprect, 0); - copybitmap_trans(bitmap, *state->m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0); + copybitmap_trans(bitmap, *m_temp_bitmap_sprites_back, 0, 0, 0, 0, cliprect, 0); + copybitmap_trans(bitmap, *m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0); return 0; } @@ -834,7 +834,7 @@ static MACHINE_CONFIG_START( littlerb, littlerb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(512+22, 312) MCFG_SCREEN_VISIBLE_AREA(0*8, 336-1, 0*8, 288-1) - MCFG_SCREEN_UPDATE_STATIC(littlerb) + MCFG_SCREEN_UPDATE_DRIVER(littlerb_state, screen_update_littlerb) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c index 9881ce4e182..9a6c9a6f371 100644 --- a/src/mame/drivers/lkage.c +++ b/src/mame/drivers/lkage.c @@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( lkage, lkage_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(lkage) + MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage) MCFG_GFXDECODE(lkage) MCFG_PALETTE_LENGTH(1024) @@ -615,7 +615,7 @@ static MACHINE_CONFIG_START( lkageb, lkage_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(lkage) + MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage) MCFG_GFXDECODE(lkage) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c index e077e9de258..c0c633ac51a 100644 --- a/src/mame/drivers/lockon.c +++ b/src/mame/drivers/lockon.c @@ -527,8 +527,8 @@ static MACHINE_CONFIG_START( lockon, lockon_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(lockon) - MCFG_SCREEN_VBLANK_STATIC(lockon) + MCFG_SCREEN_UPDATE_DRIVER(lockon_state, screen_update_lockon) + MCFG_SCREEN_VBLANK_DRIVER(lockon_state, screen_eof_lockon) MCFG_GFXDECODE(lockon) MCFG_PALETTE_LENGTH(1024 + 2048) diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c index 2b8d8a7a0bc..3b243aa4779 100644 --- a/src/mame/drivers/looping.c +++ b/src/mame/drivers/looping.c @@ -142,6 +142,7 @@ public: virtual void machine_start(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -303,10 +304,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } -static SCREEN_UPDATE_IND16( looping ) +UINT32 looping_state::screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - looping_state *state = screen.machine().driver_data<looping_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); return 0; @@ -658,7 +658,7 @@ static MACHINE_CONFIG_START( looping, looping_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(looping) + MCFG_SCREEN_UPDATE_DRIVER(looping_state, screen_update_looping) MCFG_GFXDECODE(looping) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c index 3f7be61a8aa..0e6a11fb197 100644 --- a/src/mame/drivers/lordgun.c +++ b/src/mame/drivers/lordgun.c @@ -673,7 +673,7 @@ static MACHINE_CONFIG_START( lordgun, lordgun_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 0x100) MCFG_SCREEN_VISIBLE_AREA(0,0x1c0-1, 0,0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(lordgun) + MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun) MCFG_GFXDECODE(lordgun) MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level @@ -715,7 +715,7 @@ static MACHINE_CONFIG_START( aliencha, lordgun_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 0x100) MCFG_SCREEN_VISIBLE_AREA(0,0x1c0-1, 0,0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(lordgun) + MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun) MCFG_GFXDECODE(lordgun) MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c index 22c2fd533cf..2151bfd40a9 100644 --- a/src/mame/drivers/lsasquad.c +++ b/src/mame/drivers/lsasquad.c @@ -640,7 +640,7 @@ static MACHINE_CONFIG_START( lsasquad, lsasquad_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(lsasquad) + MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_lsasquad) MCFG_GFXDECODE(lsasquad) MCFG_PALETTE_LENGTH(512) @@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( daikaiju, lsasquad_state ) MCFG_PALETTE_LENGTH(512) MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) - MCFG_SCREEN_UPDATE_STATIC(daikaiju) + MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_daikaiju) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c index 4652fdce808..3414288b273 100644 --- a/src/mame/drivers/ltcasino.c +++ b/src/mame/drivers/ltcasino.c @@ -34,6 +34,7 @@ public: DECLARE_DRIVER_INIT(mv4in1); TILE_GET_INFO_MEMBER(get_ltcasino_tile_info); virtual void video_start(); + UINT32 screen_update_ltcasino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -635,10 +636,9 @@ static GFXDECODE_START( ltcasino ) GFXDECODE_END -static SCREEN_UPDATE_IND16(ltcasino) +UINT32 ltcasino_state::screen_update_ltcasino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - ltcasino_state *state = screen.machine().driver_data<ltcasino_state>(); - state->m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -655,7 +655,7 @@ static MACHINE_CONFIG_START( ltcasino, ltcasino_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(6*8, 58*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(ltcasino) + MCFG_SCREEN_UPDATE_DRIVER(ltcasino_state, screen_update_ltcasino) MCFG_GFXDECODE(ltcasino) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c index b2407a07c38..3069cb477be 100644 --- a/src/mame/drivers/luckgrln.c +++ b/src/mame/drivers/luckgrln.c @@ -150,6 +150,7 @@ public: TILE_GET_INFO_MEMBER(get_luckgrln_reel3_tile_info); TILE_GET_INFO_MEMBER(get_luckgrln_reel4_tile_info); virtual void video_start(); + UINT32 screen_update_luckgrln(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -287,9 +288,8 @@ void luckgrln_state::video_start() m_reel4_tilemap->set_transparent_pen(0 ); } -static SCREEN_UPDATE_IND16(luckgrln) +UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - luckgrln_state *state = screen.machine().driver_data<luckgrln_state>(); int y,x; int count = 0; const rectangle &visarea = screen.visible_area(); @@ -301,10 +301,10 @@ static SCREEN_UPDATE_IND16(luckgrln) for (i= 0;i < 64;i++) { - state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]); - state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]); - state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]); - state->m_reel4_tilemap->set_scrolly(i, state->m_reel4_scroll[i]); + m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]); + m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]); + m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]); + m_reel4_tilemap->set_scrolly(i, m_reel4_scroll[i]); } @@ -318,9 +318,9 @@ static SCREEN_UPDATE_IND16(luckgrln) for (x=0;x<64;x++) { - UINT16 tile = (state->m_luck_vram1[count] & 0xff); - UINT16 tile_high = (state->m_luck_vram2[count]); - UINT16 tileattr = (state->m_luck_vram3[count]); + UINT16 tile = (m_luck_vram1[count] & 0xff); + UINT16 tile_high = (m_luck_vram2[count]); + UINT16 tileattr = (m_luck_vram3[count]); UINT8 col = 0; UINT8 region = 0; UINT8 bgenable; @@ -332,8 +332,8 @@ static SCREEN_UPDATE_IND16(luckgrln) if (clip.max_x>visarea.max_x) clip.max_x = visarea.max_x; /* - state->m_luck_vram1 tttt tttt (t = low tile bits) - state->m_luck_vram2 tttt ppp? (t = high tile bits) (p = pal select)? + m_luck_vram1 tttt tttt (t = low tile bits) + m_luck_vram2 tttt ppp? (t = high tile bits) (p = pal select)? */ @@ -344,7 +344,7 @@ static SCREEN_UPDATE_IND16(luckgrln) // ?? low bit is used too col = tile_high&0xf; - // --ss fbt- state->m_luck_vram3 + // --ss fbt- m_luck_vram3 // - = unused? // s = reel layer select for this 8x8 region // f = fg enabled for this 8x8 region (or priority?) @@ -356,10 +356,10 @@ static SCREEN_UPDATE_IND16(luckgrln) #if 0 // treat bit as fg enable if (tileattr&0x04) { - if (bgenable==0) state->m_reel1_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==1) state->m_reel2_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==2) state->m_reel3_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==3) state->m_reel4_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==0) m_reel1_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==1) m_reel2_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==2) m_reel3_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==3) m_reel4_tilemap->draw(bitmap, clip, 0, 0); } if (tileattr&0x08) drawgfx_transpen(bitmap,clip,screen.machine().gfx[region],tile,col,0,0,x*8,y*8, 0); @@ -369,10 +369,10 @@ static SCREEN_UPDATE_IND16(luckgrln) if (tileattr&0x04) { - if (bgenable==0) state->m_reel1_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==1) state->m_reel2_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==2) state->m_reel3_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==3) state->m_reel4_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==0) m_reel1_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==1) m_reel2_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==2) m_reel3_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==3) m_reel4_tilemap->draw(bitmap, clip, 0, 0); } if ((tileattr&0x08)) drawgfx_transpen(bitmap,clip,screen.machine().gfx[region],tile,col,0,0,x*8,y*8, 0); @@ -1006,7 +1006,7 @@ static MACHINE_CONFIG_START( luckgrln, luckgrln_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(luckgrln) + MCFG_SCREEN_UPDATE_DRIVER(luckgrln_state, screen_update_luckgrln) MCFG_GFXDECODE(luckgrln) MCFG_PALETTE_LENGTH(0x8000) diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c index c46f28e294a..f14b6332dd8 100644 --- a/src/mame/drivers/lucky74.c +++ b/src/mame/drivers/lucky74.c @@ -1379,7 +1379,7 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(lucky74) + MCFG_SCREEN_UPDATE_DRIVER(lucky74_state, screen_update_lucky74) MCFG_GFXDECODE(lucky74) diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c index 31ca0a4b4a3..af73815d020 100644 --- a/src/mame/drivers/lvcards.c +++ b/src/mame/drivers/lvcards.c @@ -474,7 +474,7 @@ static MACHINE_CONFIG_START( lvcards, lvcards_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(lvcards) + MCFG_SCREEN_UPDATE_DRIVER(lvcards_state, screen_update_lvcards) MCFG_GFXDECODE(lvcards) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c index 5517e7d2233..183e42c20c1 100644 --- a/src/mame/drivers/lwings.c +++ b/src/mame/drivers/lwings.c @@ -798,7 +798,7 @@ static MACHINE_CONFIG_START( lwings, lwings_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(lwings) + MCFG_SCREEN_UPDATE_DRIVER(lwings_state, screen_update_lwings) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(lwings) @@ -841,7 +841,7 @@ static MACHINE_CONFIG_DERIVED( trojan, lwings ) MCFG_VIDEO_START_OVERRIDE(lwings_state,trojan) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(trojan) + MCFG_SCREEN_UPDATE_DRIVER(lwings_state, screen_update_trojan) /* sound hardware */ MCFG_SOUND_ADD("5205", MSM5205, XTAL_384kHz) /* verified on PCB */ diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c index 4370b0f4756..d37b4c7b2df 100644 --- a/src/mame/drivers/m10.c +++ b/src/mame/drivers/m10.c @@ -837,7 +837,7 @@ static MACHINE_CONFIG_START( m10, m10_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(IREMM10_PIXEL_CLOCK, IREMM10_HTOTAL, IREMM10_HBEND, IREMM10_HBSTART, IREMM10_VTOTAL, IREMM10_VBEND, IREMM10_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(m10) + MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m10) MCFG_GFXDECODE(m10) MCFG_PALETTE_LENGTH(2*8) @@ -882,7 +882,7 @@ static MACHINE_CONFIG_START( m15, m10_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(IREMM15_PIXEL_CLOCK, IREMM15_HTOTAL, IREMM15_HBEND, IREMM15_HBSTART, IREMM15_VTOTAL, IREMM15_VBEND, IREMM15_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(m15) + MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m15) MCFG_PALETTE_LENGTH(2*8) diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c index 9ae63afca6c..2a3cb728487 100644 --- a/src/mame/drivers/m107.c +++ b/src/mame/drivers/m107.c @@ -788,7 +788,7 @@ static MACHINE_CONFIG_START( firebarr, m107_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ - MCFG_SCREEN_UPDATE_STATIC(m107) + MCFG_SCREEN_UPDATE_DRIVER(m107_state, screen_update_m107) MCFG_GFXDECODE(firebarr) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/m14.c b/src/mame/drivers/m14.c index 25e0f08984e..c61a3084e33 100644 --- a/src/mame/drivers/m14.c +++ b/src/mame/drivers/m14.c @@ -85,6 +85,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -133,11 +134,10 @@ void m14_state::video_start() m_m14_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( m14 ) +UINT32 m14_state::screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m14_state *state = screen.machine().driver_data<m14_state>(); - state->m_m14_tilemap->draw(bitmap, cliprect, 0, 0); + m_m14_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -349,7 +349,7 @@ static MACHINE_CONFIG_START( m14, m14_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(m14) + MCFG_SCREEN_UPDATE_DRIVER(m14_state, screen_update_m14) MCFG_GFXDECODE(m14) MCFG_PALETTE_LENGTH(0x20) diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c index b253121e165..f992d4102ee 100644 --- a/src/mame/drivers/m52.c +++ b/src/mame/drivers/m52.c @@ -405,7 +405,7 @@ static MACHINE_CONFIG_START( m52, m52_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 136, 376, 282, 22, 274) - MCFG_SCREEN_UPDATE_STATIC(m52) + MCFG_SCREEN_UPDATE_DRIVER(m52_state, screen_update_m52) /* sound hardware */ diff --git a/src/mame/drivers/m57.c b/src/mame/drivers/m57.c index 76beed3fa96..ce0cbabf129 100644 --- a/src/mame/drivers/m57.c +++ b/src/mame/drivers/m57.c @@ -238,7 +238,7 @@ static MACHINE_CONFIG_START( m57, m57_state ) /* talks about 55Hz and 1790ms vblank duration. */ MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(m57) + MCFG_SCREEN_UPDATE_DRIVER(m57_state, screen_update_m57) MCFG_GFXDECODE(m57) MCFG_PALETTE_LENGTH(32*8+32*8) diff --git a/src/mame/drivers/m58.c b/src/mame/drivers/m58.c index b10fd50ff7f..09f2e0b3223 100644 --- a/src/mame/drivers/m58.c +++ b/src/mame/drivers/m58.c @@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( yard, m58_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266) - MCFG_SCREEN_UPDATE_STATIC(yard) + MCFG_SCREEN_UPDATE_DRIVER(m58_state, screen_update_yard) /* sound hardware */ diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c index f6bb9477031..a2e3839feb2 100644 --- a/src/mame/drivers/m62.c +++ b/src/mame/drivers/m62.c @@ -966,7 +966,7 @@ static MACHINE_CONFIG_START( ldrun, m62_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1790) /* frames per second and vblank duration from the Lode Runner manual */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA((64*8-384)/2, 64*8-(64*8-384)/2-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(ldrun) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun) MCFG_GFXDECODE(ldrun) MCFG_PALETTE_LENGTH(512) @@ -988,7 +988,7 @@ static MACHINE_CONFIG_DERIVED( kungfum, ldrun ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(kungfum) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_kungfum) MCFG_VIDEO_START_OVERRIDE(m62_state,kungfum) MACHINE_CONFIG_END @@ -1005,7 +1005,7 @@ static MACHINE_CONFIG_DERIVED( battroad, ldrun ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(battroad) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_battroad) MCFG_GFXDECODE(battroad) MCFG_PALETTE_LENGTH(544) @@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_DERIVED( ldrun2, ldrun ) MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(ldrun) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun) MACHINE_CONFIG_END @@ -1038,7 +1038,7 @@ static MACHINE_CONFIG_DERIVED( ldrun3, ldrun ) MCFG_GFXDECODE(ldrun3) MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(ldrun3) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun3) MACHINE_CONFIG_END @@ -1053,7 +1053,7 @@ static MACHINE_CONFIG_DERIVED( ldrun4, ldrun ) MCFG_GFXDECODE(ldrun3) MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun4) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(ldrun4) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun4) MACHINE_CONFIG_END @@ -1070,7 +1070,7 @@ static MACHINE_CONFIG_DERIVED( lotlot, ldrun ) MCFG_PALETTE_INIT_OVERRIDE(m62_state,lotlot) MCFG_VIDEO_START_OVERRIDE(m62_state,lotlot) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(lotlot) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_lotlot) MACHINE_CONFIG_END @@ -1086,7 +1086,7 @@ static MACHINE_CONFIG_DERIVED( kidniki, ldrun ) MCFG_VIDEO_START_OVERRIDE(m62_state,kidniki) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(kidniki) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_kidniki) MACHINE_CONFIG_END @@ -1101,7 +1101,7 @@ static MACHINE_CONFIG_DERIVED( spelunkr, ldrun ) MCFG_VIDEO_START_OVERRIDE(m62_state,spelunkr) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(spelunkr) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_spelunkr) MACHINE_CONFIG_END @@ -1118,7 +1118,7 @@ static MACHINE_CONFIG_DERIVED( spelunk2, ldrun ) MCFG_PALETTE_INIT_OVERRIDE(m62_state,spelunk2) MCFG_VIDEO_START_OVERRIDE(m62_state,spelunk2) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(spelunk2) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_spelunk2) MACHINE_CONFIG_END @@ -1133,7 +1133,7 @@ static MACHINE_CONFIG_DERIVED( youjyudn, ldrun ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(youjyudn) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_youjyudn) MCFG_GFXDECODE(youjyudn) MCFG_VIDEO_START_OVERRIDE(m62_state,youjyudn) @@ -1149,7 +1149,7 @@ static MACHINE_CONFIG_DERIVED( horizon, ldrun ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(horizon) + MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_horizon) MCFG_VIDEO_START_OVERRIDE(m62_state,horizon) MACHINE_CONFIG_END diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c index 35a814678ef..334daa37756 100644 --- a/src/mame/drivers/m63.c +++ b/src/mame/drivers/m63.c @@ -183,6 +183,7 @@ public: DECLARE_MACHINE_RESET(m63); DECLARE_VIDEO_START(m63); DECLARE_PALETTE_INIT(m63); + UINT32 screen_update_m63(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -359,18 +360,17 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16( m63 ) +UINT32 m63_state::screen_update_m63(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m63_state *state = screen.machine().driver_data<m63_state>(); int col; for (col = 0; col < 32; col++) - state->m_bg_tilemap->set_scrolly(col, state->m_scrollram[col * 8]); + m_bg_tilemap->set_scrolly(col, m_scrollram[col * 8]); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -784,7 +784,7 @@ static MACHINE_CONFIG_START( m63, m63_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(m63) + MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63) MCFG_GFXDECODE(m63) MCFG_PALETTE_LENGTH(256+4) @@ -828,7 +828,7 @@ static MACHINE_CONFIG_START( fghtbskt, m63_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(m63) + MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63) MCFG_GFXDECODE(fghtbskt) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c index b5883f1466f..66c50649fb1 100644 --- a/src/mame/drivers/m72.c +++ b/src/mame/drivers/m72.c @@ -1822,7 +1822,7 @@ static MACHINE_CONFIG_START( m72_base, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,m72) @@ -1877,7 +1877,7 @@ static MACHINE_CONFIG_START( rtype, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,m72) @@ -1914,7 +1914,7 @@ static MACHINE_CONFIG_START( xmultipl, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,xmultipl) @@ -1955,7 +1955,7 @@ static MACHINE_CONFIG_START( xmultiplm72, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,m72) @@ -1996,7 +1996,7 @@ static MACHINE_CONFIG_START( dbreed, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,hharry) @@ -2037,7 +2037,7 @@ static MACHINE_CONFIG_START( dbreedm72, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,m72) @@ -2078,7 +2078,7 @@ static MACHINE_CONFIG_START( rtype2, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,rtype2) @@ -2119,7 +2119,7 @@ static MACHINE_CONFIG_START( majtitle, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(majtitle) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_majtitle) MCFG_VIDEO_START_OVERRIDE(m72_state,majtitle) @@ -2160,7 +2160,7 @@ static MACHINE_CONFIG_START( hharry, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,hharry) @@ -2201,7 +2201,7 @@ static MACHINE_CONFIG_START( hharryu, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu) @@ -2242,7 +2242,7 @@ static MACHINE_CONFIG_START( dkgenm72, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,m72) @@ -2283,7 +2283,7 @@ static MACHINE_CONFIG_START( poundfor, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor) @@ -2324,7 +2324,7 @@ static MACHINE_CONFIG_START( cosmccop, m72_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(m72) + MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72) MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor) diff --git a/src/mame/drivers/m79amb.c b/src/mame/drivers/m79amb.c index ff6383e1c74..af9ed73df27 100644 --- a/src/mame/drivers/m79amb.c +++ b/src/mame/drivers/m79amb.c @@ -78,6 +78,7 @@ public: DECLARE_READ8_MEMBER(gray5bit_controller1_r); DECLARE_WRITE8_MEMBER(m79amb_8002_w); DECLARE_DRIVER_INIT(m79amb); + UINT32 screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -86,16 +87,15 @@ WRITE8_MEMBER(m79amb_state::ramtek_videoram_w) m_videoram[offset] = data & ~*m_mask; } -static SCREEN_UPDATE_RGB32( ramtek ) +UINT32 m79amb_state::screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - m79amb_state *state = screen.machine().driver_data<m79amb_state>(); offs_t offs; for (offs = 0; offs < 0x2000; offs++) { int i; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; int y = offs >> 5; int x = (offs & 0x1f) << 3; @@ -220,7 +220,7 @@ static MACHINE_CONFIG_START( m79amb, m79amb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(ramtek) + MCFG_SCREEN_UPDATE_DRIVER(m79amb_state, screen_update_ramtek) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c index 62cb9046c70..3219f6d7dfe 100644 --- a/src/mame/drivers/m90.c +++ b/src/mame/drivers/m90.c @@ -732,7 +732,7 @@ static MACHINE_CONFIG_START( m90, m90_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(6*8, 54*8-1, 17*8, 47*8-1) - MCFG_SCREEN_UPDATE_STATIC(m90) + MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_m90) MCFG_GFXDECODE(m90) MCFG_PALETTE_LENGTH(512) @@ -818,7 +818,7 @@ static MACHINE_CONFIG_DERIVED( bomblord, m90 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(10*8, 50*8-1, 17*8, 47*8-1) - MCFG_SCREEN_UPDATE_STATIC(bomblord) + MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_bomblord) MCFG_VIDEO_START_OVERRIDE(m90_state,bomblord) MACHINE_CONFIG_END @@ -837,7 +837,7 @@ static MACHINE_CONFIG_DERIVED( dynablsb, m90 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(dynablsb) + MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_dynablsb) MCFG_VIDEO_START_OVERRIDE(m90_state,dynablsb) diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c index 9a1b2133c24..2a3d1c7d26a 100644 --- a/src/mame/drivers/m92.c +++ b/src/mame/drivers/m92.c @@ -954,7 +954,7 @@ static MACHINE_CONFIG_START( m92, m92_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ - MCFG_SCREEN_UPDATE_STATIC(m92) + MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_m92) MCFG_GFXDECODE(m92) MCFG_PALETTE_LENGTH(2048) @@ -1040,7 +1040,7 @@ static MACHINE_CONFIG_START( ppan, m92_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ - MCFG_SCREEN_UPDATE_STATIC(ppan) + MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_ppan) MCFG_GFXDECODE(m92) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c index 0d2f21762b3..a7c164cd2e0 100644 --- a/src/mame/drivers/macrossp.c +++ b/src/mame/drivers/macrossp.c @@ -635,8 +635,8 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*16, 16*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 0*16, 15*16-1) - MCFG_SCREEN_UPDATE_STATIC(macrossp) - MCFG_SCREEN_VBLANK_STATIC(macrossp) + MCFG_SCREEN_UPDATE_DRIVER(macrossp_state, screen_update_macrossp) + MCFG_SCREEN_VBLANK_DRIVER(macrossp_state, screen_eof_macrossp) MCFG_GFXDECODE(macrossp) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c index f88c384c9a8..de89939ad60 100644 --- a/src/mame/drivers/macs.c +++ b/src/mame/drivers/macs.c @@ -491,7 +491,7 @@ static MACHINE_CONFIG_START( macs, macs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(128*8, 128*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 128*8-1) - MCFG_SCREEN_UPDATE_STATIC(st0016) + MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016) MCFG_GFXDECODE(macs) MCFG_PALETTE_LENGTH(16*16*4+1) diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c index 6e19f512cd9..8dd7d945551 100644 --- a/src/mame/drivers/madmotor.c +++ b/src/mame/drivers/madmotor.c @@ -264,7 +264,7 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration taken from Burger Time */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(madmotor) + MCFG_SCREEN_UPDATE_DRIVER(madmotor_state, screen_update_madmotor) MCFG_GFXDECODE(madmotor) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c index f011df571a5..6484fde69fa 100644 --- a/src/mame/drivers/magic10.c +++ b/src/mame/drivers/magic10.c @@ -121,6 +121,7 @@ public: TILE_GET_INFO_MEMBER(get_layer1_tile_info); TILE_GET_INFO_MEMBER(get_layer2_tile_info); virtual void video_start(); + UINT32 screen_update_magic10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -197,23 +198,22 @@ void magic10_state::video_start() m_layer2_tilemap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16( magic10 ) +UINT32 magic10_state::screen_update_magic10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - magic10_state *state = screen.machine().driver_data<magic10_state>(); /*TODO: understand where this comes from. */ - state->m_layer2_tilemap->set_scrollx(0, state->m_layer2_offset[0]); - state->m_layer2_tilemap->set_scrolly(0, state->m_layer2_offset[1]); + m_layer2_tilemap->set_scrollx(0, m_layer2_offset[0]); + m_layer2_tilemap->set_scrolly(0, m_layer2_offset[1]); /* 4 and 6 are y/x global register writes. 0 and 2 are y/x writes for the scrolling layer. */ - state->m_layer1_tilemap->set_scrolly(0, (state->m_vregs[0/2] - state->m_vregs[4/2])+0); - state->m_layer1_tilemap->set_scrollx(0, (state->m_vregs[2/2] - state->m_vregs[6/2])+4); + m_layer1_tilemap->set_scrolly(0, (m_vregs[0/2] - m_vregs[4/2])+0); + m_layer1_tilemap->set_scrollx(0, (m_vregs[2/2] - m_vregs[6/2])+4); - state->m_layer0_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_layer1_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_layer2_tilemap->draw(bitmap, cliprect, 0, 0); + m_layer0_tilemap->draw(bitmap, cliprect, 0, 0); + m_layer1_tilemap->draw(bitmap, cliprect, 0, 0); + m_layer2_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -739,7 +739,7 @@ static MACHINE_CONFIG_START( magic10, magic10_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(magic10) + MCFG_SCREEN_UPDATE_DRIVER(magic10_state, screen_update_magic10) MCFG_PALETTE_LENGTH(0x100) MCFG_GFXDECODE(magic10) diff --git a/src/mame/drivers/magicard.c b/src/mame/drivers/magicard.c index 7917b853dc6..ee9156854cf 100644 --- a/src/mame/drivers/magicard.c +++ b/src/mame/drivers/magicard.c @@ -217,6 +217,7 @@ public: DECLARE_DRIVER_INIT(magicard); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -412,7 +413,7 @@ void magicard_state::video_start() } -static SCREEN_UPDATE_RGB32(magicard) +UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { magicard_state *state = screen.machine().driver_data<magicard_state>(); int x,y; @@ -433,22 +434,22 @@ static SCREEN_UPDATE_RGB32(magicard) { UINT32 color; - color = ((state->m_magicram[count]) & 0x000f)>>0; + color = ((m_magicram[count]) & 0x000f)>>0; if(cliprect.contains((x*4)+3, y)) bitmap.pix32(y, (x*4)+3) = screen.machine().pens[color]; - color = ((state->m_magicram[count]) & 0x00f0)>>4; + color = ((m_magicram[count]) & 0x00f0)>>4; if(cliprect.contains((x*4)+2, y)) bitmap.pix32(y, (x*4)+2) = screen.machine().pens[color]; - color = ((state->m_magicram[count]) & 0x0f00)>>8; + color = ((m_magicram[count]) & 0x0f00)>>8; if(cliprect.contains((x*4)+1, y)) bitmap.pix32(y, (x*4)+1) = screen.machine().pens[color]; - color = ((state->m_magicram[count]) & 0xf000)>>12; + color = ((m_magicram[count]) & 0xf000)>>12; if(cliprect.contains((x*4)+0, y)) bitmap.pix32(y, (x*4)+0) = screen.machine().pens[color]; @@ -465,12 +466,12 @@ static SCREEN_UPDATE_RGB32(magicard) { UINT32 color; - color = ((state->m_magicram[count]) & 0x00ff)>>0; + color = ((m_magicram[count]) & 0x00ff)>>0; if(cliprect.contains((x*2)+1, y)) bitmap.pix32(y, (x*2)+1) = screen.machine().pens[color]; - color = ((state->m_magicram[count]) & 0xff00)>>8; + color = ((m_magicram[count]) & 0xff00)>>8; if(cliprect.contains((x*2)+0, y)) bitmap.pix32(y, (x*2)+0) = screen.machine().pens[color]; @@ -725,7 +726,7 @@ static MACHINE_CONFIG_START( magicard, magicard_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 300) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) //dynamic resolution,TODO - MCFG_SCREEN_UPDATE_STATIC(magicard) + MCFG_SCREEN_UPDATE_DRIVER(magicard_state, screen_update_magicard) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c index e00b34d9da3..214b2e05315 100644 --- a/src/mame/drivers/magicfly.c +++ b/src/mame/drivers/magicfly.c @@ -438,6 +438,7 @@ public: virtual void video_start(); virtual void palette_init(); DECLARE_VIDEO_START(7mezzo); + UINT32 screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -518,10 +519,9 @@ VIDEO_START_MEMBER(magicfly_state,7mezzo) m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29); } -static SCREEN_UPDATE_IND16( magicfly ) +UINT32 magicfly_state::screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - magicfly_state *state = screen.machine().driver_data<magicfly_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -814,7 +814,7 @@ static MACHINE_CONFIG_START( magicfly, magicfly_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1). */ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1) /* Taken from MC6845 init, registers 01 & 06. */ - MCFG_SCREEN_UPDATE_STATIC(magicfly) + MCFG_SCREEN_UPDATE_DRIVER(magicfly_state, screen_update_magicfly) MCFG_GFXDECODE(magicfly) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/magictg.c b/src/mame/drivers/magictg.c index 1896ae146a1..2705f7cc222 100644 --- a/src/mame/drivers/magictg.c +++ b/src/mame/drivers/magictg.c @@ -212,6 +212,8 @@ protected: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); +public: + UINT32 screen_update_magictg(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -259,10 +261,9 @@ void magictg_state::video_start() } -static SCREEN_UPDATE_RGB32( magictg ) +UINT32 magictg_state::screen_update_magictg(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - magictg_state* state = screen.machine().driver_data<magictg_state>(); - return voodoo_update(state->m_voodoo[0], bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED; + return voodoo_update(m_voodoo[0], bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED; } @@ -964,7 +965,7 @@ static MACHINE_CONFIG_START( magictg, magictg_state ) MCFG_SCREEN_SIZE(1024, 1024) MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 447) - MCFG_SCREEN_UPDATE_STATIC(magictg) + MCFG_SCREEN_UPDATE_DRIVER(magictg_state, screen_update_magictg) MACHINE_CONFIG_END diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c index 9c46677311b..09c270fc1ca 100644 --- a/src/mame/drivers/magmax.c +++ b/src/mame/drivers/magmax.c @@ -361,7 +361,7 @@ static MACHINE_CONFIG_START( magmax, magmax_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(magmax) + MCFG_SCREEN_UPDATE_DRIVER(magmax_state, screen_update_magmax) MCFG_GFXDECODE(magmax) MCFG_PALETTE_LENGTH(1*16 + 16*16 + 256) diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c index 5f880cd3378..6070568321e 100644 --- a/src/mame/drivers/mainevt.c +++ b/src/mame/drivers/mainevt.c @@ -469,7 +469,7 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(mainevt) + MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_mainevt) MCFG_PALETTE_LENGTH(256) @@ -527,7 +527,7 @@ static MACHINE_CONFIG_START( devstors, mainevt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(dv) + MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_dv) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c index cff349a7238..a1e32fe15bd 100644 --- a/src/mame/drivers/mainsnk.c +++ b/src/mame/drivers/mainsnk.c @@ -404,7 +404,7 @@ static MACHINE_CONFIG_START( mainsnk, mainsnk_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(mainsnk) + MCFG_SCREEN_UPDATE_DRIVER(mainsnk_state, screen_update_mainsnk) MCFG_GFXDECODE(mainsnk) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c index eff210fd8d0..96a52fe1929 100644 --- a/src/mame/drivers/majorpkr.c +++ b/src/mame/drivers/majorpkr.c @@ -493,6 +493,7 @@ public: TILE_GET_INFO_MEMBER(bg_get_tile_info); TILE_GET_INFO_MEMBER(fg_get_tile_info); virtual void video_start(); + UINT32 screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -536,9 +537,8 @@ void majorpkr_state::video_start() } -static SCREEN_UPDATE_IND16(majorpkr) +UINT32 majorpkr_state::screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - majorpkr_state *state = screen.machine().driver_data<majorpkr_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); @@ -550,13 +550,13 @@ static SCREEN_UPDATE_IND16(majorpkr) custom_clip = cliprect; custom_clip.max_x -= 16; - state->m_bg_tilemap->draw(bitmap, custom_clip, 0, 0); - state->m_fg_tilemap->draw(bitmap, custom_clip, 0, 0); + m_bg_tilemap->draw(bitmap, custom_clip, 0, 0); + m_fg_tilemap->draw(bitmap, custom_clip, 0, 0); - if (state->m_flip_state == 1) + if (m_flip_state == 1) { - state->m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY); - state->m_fg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY); + m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY); + m_fg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY); } return 0; @@ -1046,7 +1046,7 @@ static MACHINE_CONFIG_START( majorpkr, majorpkr_state ) MCFG_GFXDECODE(majorpkr) MCFG_PALETTE_LENGTH(0x100 * 16) - MCFG_SCREEN_UPDATE_STATIC(majorpkr) + MCFG_SCREEN_UPDATE_DRIVER(majorpkr_state, screen_update_majorpkr) MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* verified */ diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c index 9734a59c401..cc841bad053 100644 --- a/src/mame/drivers/malzak.c +++ b/src/mame/drivers/malzak.c @@ -366,7 +366,7 @@ static MACHINE_CONFIG_START( malzak, malzak_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(480, 512) /* vert size is a guess */ MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(malzak) + MCFG_SCREEN_UPDATE_DRIVER(malzak_state, screen_update_malzak) MCFG_GFXDECODE(malzak) MCFG_PALETTE_LENGTH(128) diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c index b673f9957e1..bac453d357c 100644 --- a/src/mame/drivers/mappy.c +++ b/src/mame/drivers/mappy.c @@ -1652,7 +1652,7 @@ static MACHINE_CONFIG_START( superpac, mappy_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(superpac) + MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_superpac) MCFG_PALETTE_INIT_OVERRIDE(mappy_state,superpac) MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac) @@ -1725,7 +1725,7 @@ static MACHINE_CONFIG_START( phozon, mappy_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(phozon) + MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_phozon) MCFG_PALETTE_INIT_OVERRIDE(mappy_state,phozon) MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon) @@ -1765,7 +1765,7 @@ static MACHINE_CONFIG_START( mappy, mappy_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(mappy) + MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_mappy) MCFG_PALETTE_INIT_OVERRIDE(mappy_state,mappy) MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy) diff --git a/src/mame/drivers/marineb.c b/src/mame/drivers/marineb.c index c58315ce21b..4dfe9f9b850 100644 --- a/src/mame/drivers/marineb.c +++ b/src/mame/drivers/marineb.c @@ -555,7 +555,7 @@ static MACHINE_CONFIG_START( marineb, marineb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(marineb) + MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_marineb) MCFG_GFXDECODE(marineb) MCFG_PALETTE_LENGTH(256) @@ -575,7 +575,7 @@ static MACHINE_CONFIG_DERIVED( changes, marineb ) /* video hardware */ MCFG_GFXDECODE(changes) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(changes) + MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_changes) MACHINE_CONFIG_END @@ -586,7 +586,7 @@ static MACHINE_CONFIG_DERIVED( springer, marineb ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(springer) + MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_springer) MACHINE_CONFIG_END @@ -597,7 +597,7 @@ static MACHINE_CONFIG_DERIVED( hoccer, marineb ) /* video hardware */ MCFG_GFXDECODE(hoccer) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(hoccer) + MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_hoccer) MACHINE_CONFIG_END @@ -611,7 +611,7 @@ static MACHINE_CONFIG_DERIVED( wanted, marineb ) /* video hardware */ MCFG_GFXDECODE(wanted) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(springer) + MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_springer) /* sound hardware */ MCFG_SOUND_REPLACE("ay1", AY8910, 1500000) @@ -629,7 +629,7 @@ static MACHINE_CONFIG_DERIVED( hopprobo, marineb ) /* video hardware */ MCFG_GFXDECODE(hopprobo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(hopprobo) + MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_hopprobo) MACHINE_CONFIG_END diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c index b36298e1072..a0ff829df74 100644 --- a/src/mame/drivers/marinedt.c +++ b/src/mame/drivers/marinedt.c @@ -152,6 +152,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -515,104 +516,103 @@ void marinedt_state::video_start() #define OBJ_COLOR(a) ((a) & 0x03) #define OBJ_X(x) (256 - 32 - (x)) #define OBJ_Y(y) (256 - 1 - (y)) -#define OBJ_FLIPX(a) ((state->m_pf & 0x02) == 0) +#define OBJ_FLIPX(a) ((m_pf & 0x02) == 0) #define OBJ_FLIPY(a) ((a) & 0x80) -static SCREEN_UPDATE_IND16( marinedt ) +UINT32 marinedt_state::screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - marinedt_state *state = screen.machine().driver_data<marinedt_state>(); int sx, sy; - state->m_tile->fill(0); - state->m_tx_tilemap->draw(*state->m_tile, cliprect, 0, 0); + m_tile->fill(0); + m_tx_tilemap->draw(*m_tile, cliprect, 0, 0); - state->m_obj1->fill(0); - drawgfx_transpen(*state->m_obj1, state->m_obj1->cliprect(), screen.machine().gfx[1], - OBJ_CODE(state->m_obj1_a), - OBJ_COLOR(state->m_obj1_a), - OBJ_FLIPX(state->m_obj1_a), OBJ_FLIPY(state->m_obj1_a), + m_obj1->fill(0); + drawgfx_transpen(*m_obj1, m_obj1->cliprect(), screen.machine().gfx[1], + OBJ_CODE(m_obj1_a), + OBJ_COLOR(m_obj1_a), + OBJ_FLIPX(m_obj1_a), OBJ_FLIPY(m_obj1_a), 0, 0, 0); - state->m_obj2->fill(0); - drawgfx_transpen(*state->m_obj2, state->m_obj2->cliprect(), screen.machine().gfx[2], - OBJ_CODE(state->m_obj2_a), - OBJ_COLOR(state->m_obj2_a), - OBJ_FLIPX(state->m_obj2_a), OBJ_FLIPY(state->m_obj2_a), + m_obj2->fill(0); + drawgfx_transpen(*m_obj2, m_obj2->cliprect(), screen.machine().gfx[2], + OBJ_CODE(m_obj2_a), + OBJ_COLOR(m_obj2_a), + OBJ_FLIPX(m_obj2_a), OBJ_FLIPY(m_obj2_a), 0, 0, 0); bitmap.fill(0); - if (state->m_pd & 0x02) - copybitmap_trans(bitmap, *state->m_obj2, 0, 0, OBJ_X(state->m_obj2_x), OBJ_Y(state->m_obj2_y), cliprect, 0); + if (m_pd & 0x02) + copybitmap_trans(bitmap, *m_obj2, 0, 0, OBJ_X(m_obj2_x), OBJ_Y(m_obj2_y), cliprect, 0); - if (state->m_pd & 0x01) - copybitmap_trans(bitmap, *state->m_obj1, 0, 0, OBJ_X(state->m_obj1_x), OBJ_Y(state->m_obj1_y), cliprect, 0); + if (m_pd & 0x01) + copybitmap_trans(bitmap, *m_obj1, 0, 0, OBJ_X(m_obj1_x), OBJ_Y(m_obj1_y), cliprect, 0); - copybitmap_trans(bitmap, *state->m_tile, 0, 0, 0, 0, cliprect, 0); + copybitmap_trans(bitmap, *m_tile, 0, 0, 0, 0, cliprect, 0); - state->m_coll = state->m_cx = state->m_cyr = state->m_cyq = 0; - if (state->m_pd & 0x01) + m_coll = m_cx = m_cyr = m_cyq = 0; + if (m_pd & 0x01) { for (sx = 0; sx < 32; sx++) for (sy = 0; sy < 32; sy++) { - int x = OBJ_X(state->m_obj1_x) + sx; - int y = OBJ_Y(state->m_obj1_y) + sy; + int x = OBJ_X(m_obj1_x) + sx; + int y = OBJ_Y(m_obj1_y) + sy; if (!cliprect.contains(x, y)) continue; - if (state->m_obj1->pix16(sy, sx) == 0) + if (m_obj1->pix16(sy, sx) == 0) continue; - if (state->m_tile->pix16(y, x) != 0) + if (m_tile->pix16(y, x) != 0) { - state->m_coll = 0x08; + m_coll = 0x08; - state->m_cx = (x % 128) / 8; - state->m_cx &= 0x0f; + m_cx = (x % 128) / 8; + m_cx &= 0x0f; - state->m_cyr = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0); - state->m_cyr &= 0x0f; + m_cyr = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0); + m_cyr &= 0x0f; - state->m_cyq = y / 64; - state->m_cyq &= 0x0f; + m_cyq = y / 64; + m_cyq &= 0x0f; break; } } } - state->m_collh = state->m_cxh = state->m_cyrh = state->m_cyqh = 0; - if ((state->m_pd & 0x03) == 0x03) + m_collh = m_cxh = m_cyrh = m_cyqh = 0; + if ((m_pd & 0x03) == 0x03) { for (sx = 0; sx < 32; sx++) for (sy = 0; sy < 32; sy++) { - int x = OBJ_X(state->m_obj1_x + sx); - int y = OBJ_Y(state->m_obj1_y + sy); + int x = OBJ_X(m_obj1_x + sx); + int y = OBJ_Y(m_obj1_y + sy); - int xx = OBJ_X(state->m_obj2_x) - x; - int yy = OBJ_Y(state->m_obj2_y) - y; + int xx = OBJ_X(m_obj2_x) - x; + int yy = OBJ_Y(m_obj2_y) - y; if (xx < 0 || xx >= 32 || yy < 0 || yy >= 32) continue; - if (state->m_obj1->pix16(sy, sx) == 0) + if (m_obj1->pix16(sy, sx) == 0) continue; - if (state->m_obj2->pix16(yy, xx) != 0) + if (m_obj2->pix16(yy, xx) != 0) { - state->m_collh = 0x80; + m_collh = 0x80; - state->m_cxh = (x % 128) / 8; - state->m_cxh &= 0x0f; + m_cxh = (x % 128) / 8; + m_cxh &= 0x0f; - state->m_cyrh = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0); - state->m_cyrh &= 0x0f; + m_cyrh = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0); + m_cyrh &= 0x0f; - state->m_cyqh= y / 64; - state->m_cyqh &= 0x0f; + m_cyqh= y / 64; + m_cyqh &= 0x0f; break; } @@ -682,7 +682,7 @@ static MACHINE_CONFIG_START( marinedt, marinedt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(4*8+32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(marinedt) + MCFG_SCREEN_UPDATE_DRIVER(marinedt_state, screen_update_marinedt) MCFG_GFXDECODE(marinedt) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c index 27eaf43af47..8d6adb98034 100644 --- a/src/mame/drivers/mario.c +++ b/src/mame/drivers/mario.c @@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( mario_base, mario_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(mario) + MCFG_SCREEN_UPDATE_DRIVER(mario_state, screen_update_mario) MCFG_GFXDECODE(mario) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/markham.c b/src/mame/drivers/markham.c index 2882272b6a7..a8ca4d45966 100644 --- a/src/mame/drivers/markham.c +++ b/src/mame/drivers/markham.c @@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( markham, markham_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(markham) + MCFG_SCREEN_UPDATE_DRIVER(markham_state, screen_update_markham) MCFG_GFXDECODE(markham) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c index 747b4c0dcd7..e278441864b 100644 --- a/src/mame/drivers/mastboy.c +++ b/src/mame/drivers/mastboy.c @@ -478,6 +478,7 @@ public: DECLARE_DRIVER_INIT(mastboy); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -488,15 +489,14 @@ void mastboy_state::video_start() machine().gfx[0]->set_source(m_vram); } -static SCREEN_UPDATE_IND16(mastboy) +UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mastboy_state *state = screen.machine().driver_data<mastboy_state>(); int y,x,i; int count = 0x000; for (i=0;i<0x200;i+=2) { - int coldat = state->m_colram[i+1] | (state->m_colram[i+0]<<8); + int coldat = m_colram[i+1] | (m_colram[i+0]<<8); palette_set_color_rgb(screen.machine(),i/2,pal4bit(coldat>>8),pal4bit(coldat>>12),pal4bit(coldat>>4)); } @@ -506,8 +506,8 @@ static SCREEN_UPDATE_IND16(mastboy) for (x=0;x<32;x++) { /* bytes 0 and 3 seem to be unused for rendering , they appear to contain data the game uses internally */ - int tileno = (state->m_tileram[count+1]|(state->m_tileram[count+2]<<8))&0xfff; - int attr = (state->m_tileram[count+2]&0xf0)>>4; + int tileno = (m_tileram[count+1]|(m_tileram[count+2]<<8))&0xfff; + int attr = (m_tileram[count+2]&0xf0)>>4; gfx_element *gfx; if (tileno&0x800) @@ -899,7 +899,7 @@ static MACHINE_CONFIG_START( mastboy, mastboy_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(mastboy) + MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update_mastboy) MCFG_GFXDECODE(mastboy) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c index 179929e32ad..c3a6a5dc6c2 100644 --- a/src/mame/drivers/matmania.c +++ b/src/mame/drivers/matmania.c @@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( matmania, matmania_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(matmania) + MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_matmania) MCFG_GFXDECODE(matmania) MCFG_PALETTE_LENGTH(64+16) @@ -414,7 +414,7 @@ static MACHINE_CONFIG_START( maniach, matmania_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(maniach) + MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_maniach) MCFG_GFXDECODE(maniach) MCFG_PALETTE_LENGTH(64+16) diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c index e1dbdeb2593..e7204647935 100644 --- a/src/mame/drivers/maygayv1.c +++ b/src/mame/drivers/maygayv1.c @@ -241,6 +241,8 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_maygayv1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_maygayv1(screen_device &screen, bool state); }; @@ -293,10 +295,9 @@ void maygayv1_state::video_start() } -static SCREEN_UPDATE_IND16( maygayv1 ) +UINT32 maygayv1_state::screen_update_maygayv1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - maygayv1_state *state = screen.machine().driver_data<maygayv1_state>(); - i82716_t &i82716 = state->m_i82716; + i82716_t &i82716 = m_i82716; UINT16 *atable = &i82716.dram[VREG(ATBA)]; UINT16 *otable = &i82716.dram[VREG(ODTBA) & 0xfc00]; // both must be bank 0 @@ -424,13 +425,12 @@ static SCREEN_UPDATE_IND16( maygayv1 ) return 0; } -static SCREEN_VBLANK( maygayv1 ) +void maygayv1_state::screen_eof_maygayv1(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - maygayv1_state *state = screen.machine().driver_data<maygayv1_state>(); - i82716_t &i82716 = state->m_i82716; + i82716_t &i82716 = m_i82716; // UCF if (VREG(VCR0) & VCR0_UCF) { @@ -1054,8 +1054,8 @@ static MACHINE_CONFIG_START( maygayv1, maygayv1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(640, 300) MCFG_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 300 - 1) - MCFG_SCREEN_UPDATE_STATIC(maygayv1) - MCFG_SCREEN_VBLANK_STATIC(maygayv1) + MCFG_SCREEN_UPDATE_DRIVER(maygayv1_state, screen_update_maygayv1) + MCFG_SCREEN_VBLANK_DRIVER(maygayv1_state, screen_eof_maygayv1) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c index ce8c936df02..62696e53196 100644 --- a/src/mame/drivers/mayumi.c +++ b/src/mame/drivers/mayumi.c @@ -45,6 +45,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_mayumi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -73,10 +74,9 @@ WRITE8_MEMBER(mayumi_state::mayumi_videoram_w) m_tilemap->mark_tile_dirty(offset & 0x7ff); } -static SCREEN_UPDATE_IND16( mayumi ) +UINT32 mayumi_state::screen_update_mayumi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mayumi_state *state = screen.machine().driver_data<mayumi_state>(); - state->m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -410,7 +410,7 @@ static MACHINE_CONFIG_START( mayumi, mayumi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 62*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mayumi) + MCFG_SCREEN_UPDATE_DRIVER(mayumi_state, screen_update_mayumi) MCFG_GFXDECODE(mayumi) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c index 236940e72c6..867c9ec4352 100644 --- a/src/mame/drivers/mazerbla.c +++ b/src/mame/drivers/mazerbla.c @@ -143,6 +143,8 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_mazerbla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_test_vcu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -203,40 +205,39 @@ void mazerbla_state::video_start() #ifdef UNUSED_DEFINITION -SCREEN_UPDATE_IND16( test_vcu ) +UINT32 mazerbla_state::screen_update_test_vcu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mazerbla_state *state = screen.machine().driver_data<mazerbla_state>(); - int *planes_enabled = state->m_planes_enabled; + int *planes_enabled = m_planes_enabled; char buf[128]; UINT32 color_base = 0; - if (state->m_game_id == MAZERBLA) + if (m_game_id == MAZERBLA) color_base = 0x80; /* 0x80 constant: matches Mazer Blazer movie */ - if (state->m_game_id == GREATGUN) + if (m_game_id == GREATGUN) color_base = 0x00; bitmap.fill(0); // logerror("-->frame\n"); if (planes_enabled[3]) - copybitmap(bitmap, state->m_tmpbitmaps[3], 0, 0, 0, 0, cliprect); + copybitmap(bitmap, m_tmpbitmaps[3], 0, 0, 0, 0, cliprect); if (planes_enabled[2]) - copybitmap_trans(bitmap, state->m_tmpbitmaps[2], 0, 0, 0, 0,cliprect, color_base); + copybitmap_trans(bitmap, m_tmpbitmaps[2], 0, 0, 0, 0,cliprect, color_base); - state->m_tmpbitmaps[2].fill(color_base); + m_tmpbitmaps[2].fill(color_base); if (planes_enabled[1]) - copybitmap_trans(bitmap, state->m_tmpbitmaps[1], 0, 0, 0, 0,cliprect, color_base); + copybitmap_trans(bitmap, m_tmpbitmaps[1], 0, 0, 0, 0,cliprect, color_base); - state->m_tmpbitmaps[1].fill(color_base); + m_tmpbitmaps[1].fill(color_base); if (planes_enabled[0]) - copybitmap_trans(bitmap, state->m_tmpbitmaps[0], 0, 0, 0, 0,cliprect, color_base); + copybitmap_trans(bitmap, m_tmpbitmaps[0], 0, 0, 0, 0,cliprect, color_base); - state->m_tmpbitmaps[0].fill(color_base); + m_tmpbitmaps[0].fill(color_base); if (screen.machine().input().code_pressed_once(KEYCODE_1)) /* plane 1 */ planes_enabled[0] ^= 1; @@ -251,27 +252,27 @@ SCREEN_UPDATE_IND16( test_vcu ) planes_enabled[3] ^= 1; if (screen.machine().input().code_pressed_once(KEYCODE_I)) /* show/hide debug info */ - state->m_dbg_info = !state->m_dbg_info; + m_dbg_info = !m_dbg_info; if (screen.machine().input().code_pressed_once(KEYCODE_G)) /* enable gfx area handling */ - state->m_dbg_gfx_e = !state->m_dbg_gfx_e; + m_dbg_gfx_e = !m_dbg_gfx_e; if (screen.machine().input().code_pressed_once(KEYCODE_C)) /* enable color area handling */ - state->m_dbg_clr_e = !state->m_dbg_clr_e; + m_dbg_clr_e = !m_dbg_clr_e; if (screen.machine().input().code_pressed_once(KEYCODE_V)) /* draw only when vbank==dbg_vbank */ - state->m_dbg_vbank ^= 1; + m_dbg_vbank ^= 1; if (screen.machine().input().code_pressed_once(KEYCODE_L)) /* showlookup ram */ - state->m_dbg_lookup = (state->m_dbg_lookup + 1) % 5; //0,1,2,3, 4-off + m_dbg_lookup = (m_dbg_lookup + 1) % 5; //0,1,2,3, 4-off - if (state->m_dbg_info) + if (m_dbg_info) { sprintf(buf,"I-info, G-gfx, C-color, V-vbank, 1-4 enable planes"); ui_draw_text(buf, 10, 0 * ui_get_line_height(screen.machine())); - sprintf(buf,"g:%1i c:%1i v:%1i vbk=%1i planes=%1i%1i%1i%1i ", state->m_dbg_gfx_e&1, state->m_dbg_clr_e&1, state->m_dbg_vbank, vbank&1, + sprintf(buf,"g:%1i c:%1i v:%1i vbk=%1i planes=%1i%1i%1i%1i ", m_dbg_gfx_e&1, m_dbg_clr_e&1, m_dbg_vbank, vbank&1, planes_enabled[0], planes_enabled[1], planes_enabled[2], @@ -279,9 +280,9 @@ SCREEN_UPDATE_IND16( test_vcu ) ui_draw_text(buf, 10, 1 * ui_get_line_height(screen.machine())); - if (state->m_dbg_lookup!=4) + if (m_dbg_lookup!=4) { - int lookup_offs = (state->m_dbg_lookup)*256; //=0,1,2,3*256 + int lookup_offs = (m_dbg_lookup)*256; //=0,1,2,3*256 int y, x; for (y = 0; y < 16; y++) @@ -302,23 +303,22 @@ SCREEN_UPDATE_IND16( test_vcu ) #endif -static SCREEN_UPDATE_IND16( mazerbla ) +UINT32 mazerbla_state::screen_update_mazerbla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mazerbla_state *state = screen.machine().driver_data<mazerbla_state>(); // UINT32 color_base = 0; - if (state->m_game_id == MAZERBLA) + if (m_game_id == MAZERBLA) // color_base = 0x80; /* 0x80 constant: matches Mazer Blazer movie */ -// if (state->m_game_id == GREATGUN) +// if (m_game_id == GREATGUN) // color_base = 0x00; // bitmap.fill(0); - copybitmap(bitmap, state->m_tmpbitmaps[3], 0, 0, 0, 0, cliprect); - copybitmap_trans(bitmap, state->m_tmpbitmaps[2], 0, 0, 0, 0, cliprect, 0); - copybitmap_trans(bitmap, state->m_tmpbitmaps[1], 0, 0, 0, 0, cliprect, 0); - copybitmap_trans(bitmap, state->m_tmpbitmaps[0], 0, 0, 0, 0, cliprect, 0); + copybitmap(bitmap, m_tmpbitmaps[3], 0, 0, 0, 0, cliprect); + copybitmap_trans(bitmap, m_tmpbitmaps[2], 0, 0, 0, 0, cliprect, 0); + copybitmap_trans(bitmap, m_tmpbitmaps[1], 0, 0, 0, 0, cliprect, 0); + copybitmap_trans(bitmap, m_tmpbitmaps[0], 0, 0, 0, 0, cliprect, 0); return 0; } @@ -1535,7 +1535,7 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(mazerbla) + MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla) MCFG_PALETTE_LENGTH(256) @@ -1571,7 +1571,7 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(mazerbla) + MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c index 379d1201947..4f8cf7cd206 100644 --- a/src/mame/drivers/mcatadv.c +++ b/src/mame/drivers/mcatadv.c @@ -457,8 +457,8 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(mcatadv) - MCFG_SCREEN_VBLANK_STATIC(mcatadv) // Buffer Spriteram + MCFG_SCREEN_UPDATE_DRIVER(mcatadv_state, screen_update_mcatadv) + MCFG_SCREEN_VBLANK_DRIVER(mcatadv_state, screen_eof_mcatadv) MCFG_GFXDECODE(mcatadv) MCFG_PALETTE_LENGTH(0x2000/2) diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c index 0e7de1d2b21..f46e38df014 100644 --- a/src/mame/drivers/mcr.c +++ b/src/mame/drivers/mcr.c @@ -1844,7 +1844,7 @@ static MACHINE_CONFIG_START( mcr_90009, mcr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 30*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1) - MCFG_SCREEN_UPDATE_STATIC(mcr) + MCFG_SCREEN_UPDATE_DRIVER(mcr_state, screen_update_mcr) MCFG_GFXDECODE(mcr) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c index 8b5684d6149..7d2cb49ac3a 100644 --- a/src/mame/drivers/mcr3.c +++ b/src/mame/drivers/mcr3.c @@ -1101,7 +1101,7 @@ static MACHINE_CONFIG_START( mcrmono, mcr3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 30*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1) - MCFG_SCREEN_UPDATE_STATIC(mcr3) + MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_mcr3) MCFG_GFXDECODE(mcr3) MCFG_PALETTE_LENGTH(64) @@ -1152,7 +1152,7 @@ static MACHINE_CONFIG_DERIVED( mcrscroll, mcrmono ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(30*16, 30*16) MCFG_SCREEN_VISIBLE_AREA(0, 30*16-1, 0, 30*16-1) - MCFG_SCREEN_UPDATE_STATIC(spyhunt) + MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_spyhunt) MCFG_GFXDECODE(spyhunt) MCFG_PALETTE_LENGTH(64+4) diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c index ddc341864d5..9621e88665d 100644 --- a/src/mame/drivers/mcr68.c +++ b/src/mame/drivers/mcr68.c @@ -981,7 +981,7 @@ static MACHINE_CONFIG_START( zwackery, mcr68_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 30*16) MCFG_SCREEN_VISIBLE_AREA(0, 32*16-1, 0, 30*16-1) - MCFG_SCREEN_UPDATE_STATIC(zwackery) + MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_zwackery) MCFG_GFXDECODE(zwackery) MCFG_PALETTE_LENGTH(4096) @@ -1012,7 +1012,7 @@ static MACHINE_CONFIG_START( mcr68, mcr68_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 30*16) MCFG_SCREEN_VISIBLE_AREA(0, 32*16-1, 0, 30*16-1) - MCFG_SCREEN_UPDATE_STATIC(mcr68) + MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_mcr68) MCFG_GFXDECODE(mcr68) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c index 4ef92188612..3b29a3e2cf8 100644 --- a/src/mame/drivers/meadows.c +++ b/src/mame/drivers/meadows.c @@ -658,7 +658,7 @@ static MACHINE_CONFIG_START( meadows, meadows_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 30*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(meadows) + MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows) MCFG_GFXDECODE(meadows) MCFG_PALETTE_LENGTH(2) @@ -688,7 +688,7 @@ static MACHINE_CONFIG_START( minferno, meadows_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 24*8-1) - MCFG_SCREEN_UPDATE_STATIC(meadows) + MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows) MCFG_GFXDECODE(minferno) MCFG_PALETTE_LENGTH(2) @@ -715,7 +715,7 @@ static MACHINE_CONFIG_START( bowl3d, meadows_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 30*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(meadows) + MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows) MCFG_GFXDECODE(meadows) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index b619428efd7..22dbca74b9b 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -185,6 +185,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_mediagx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; // Display controller registers @@ -379,14 +380,13 @@ static void draw_cga(running_machine &machine, bitmap_rgb32 &bitmap, const recta } } -static SCREEN_UPDATE_RGB32(mediagx) +UINT32 mediagx_state::screen_update_mediagx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - mediagx_state *state = screen.machine().driver_data<mediagx_state>(); bitmap.fill(0, cliprect); draw_framebuffer(screen.machine(), bitmap, cliprect); - if (state->m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // don't show MDA text screen on 16-bit mode. this is basically a hack + if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // don't show MDA text screen on 16-bit mode. this is basically a hack { draw_cga(screen.machine(), bitmap, cliprect); } @@ -1192,7 +1192,7 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(mediagx) + MCFG_SCREEN_UPDATE_DRIVER(mediagx_state, screen_update_mediagx) MCFG_GFXDECODE(CGA) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c index 5ff9610bb58..074b3b49333 100644 --- a/src/mame/drivers/megaplay.c +++ b/src/mame/drivers/megaplay.c @@ -617,7 +617,7 @@ VIDEO_START_MEMBER(mplay_state,megplay) // VIDEO_START_CALL_MEMBER(megaplay_normal); } -static SCREEN_UPDATE_RGB32(megplay) +UINT32 mplay_state::screen_update_megplay(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { //printf("megplay vu\n"); SCREEN_UPDATE32_CALL(megadriv); @@ -637,8 +637,9 @@ MACHINE_RESET_MEMBER(mplay_state,megaplay) MACHINE_RESET_CALL_LEGACY(megatech_bios); } -static SCREEN_VBLANK( megaplay ) +void mplay_state::screen_eof_megaplay(screen_device &screen, bool state) { + bool vblank_on = state; SCREEN_VBLANK_CALL(megadriv); SCREEN_VBLANK_CALL(megatech_bios); } @@ -664,8 +665,8 @@ static MACHINE_CONFIG_START( megaplay, mplay_state ) /* New update functions to handle the extra layer */ MCFG_VIDEO_START_OVERRIDE(mplay_state,megplay) MCFG_SCREEN_MODIFY("megadriv") - MCFG_SCREEN_UPDATE_STATIC(megplay) - MCFG_SCREEN_VBLANK_STATIC( megaplay ) + MCFG_SCREEN_UPDATE_DRIVER(mplay_state, screen_update_megplay) + MCFG_SCREEN_VBLANK_DRIVER(mplay_state, screen_eof_megaplay) MACHINE_CONFIG_END diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c index 17fc6916f2a..f464c75b718 100644 --- a/src/mame/drivers/megasys1.c +++ b/src/mame/drivers/megasys1.c @@ -1481,8 +1481,8 @@ static MACHINE_CONFIG_START( system_A, megasys1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(megasys1) - MCFG_SCREEN_VBLANK_STATIC(megasys1) + MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1) + MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1) MCFG_GFXDECODE(ABC) MCFG_PALETTE_LENGTH(1024) @@ -1541,8 +1541,8 @@ static MACHINE_CONFIG_START( system_Bbl, megasys1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(megasys1) - MCFG_SCREEN_VBLANK_STATIC(megasys1) + MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1) + MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1) MCFG_GFXDECODE(ABC) MCFG_PALETTE_LENGTH(1024) @@ -1613,8 +1613,8 @@ static MACHINE_CONFIG_START( system_D, megasys1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(megasys1) - MCFG_SCREEN_VBLANK_STATIC(megasys1) + MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1) + MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1) MCFG_GFXDECODE(ABC) MCFG_PALETTE_LENGTH(1024) @@ -1676,7 +1676,7 @@ static MACHINE_CONFIG_START( system_Z, megasys1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(megasys1) + MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1) MCFG_GFXDECODE(Z) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c index 0ade696422c..f44842a954b 100644 --- a/src/mame/drivers/megatech.c +++ b/src/mame/drivers/megatech.c @@ -446,22 +446,21 @@ VIDEO_START_MEMBER(mtech_state,mtnew) } //attotime::never -static SCREEN_UPDATE_RGB32(mtnew) +UINT32 mtech_state::screen_update_mtnew(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - mtech_state *state = screen.machine().driver_data<mtech_state>(); /* if we're running an sms game then use the SMS update.. maybe this should be moved to the megadrive emulation core as compatibility mode is a feature of the chip */ - if (!state->m_current_game_is_sms) + if (!m_current_game_is_sms) SCREEN_UPDATE32_CALL(megadriv); else SCREEN_UPDATE32_CALL(megatech_md_sms); return 0; } -static SCREEN_VBLANK(mtnew) +void mtech_state::screen_eof_mtnew(screen_device &screen, bool state) { - mtech_state *state = screen.machine().driver_data<mtech_state>(); - if (!state->m_current_game_is_sms) + bool vblank_on = state; + if (!m_current_game_is_sms) SCREEN_VBLANK_CALL(megadriv); else SCREEN_VBLANK_CALL(megatech_md_sms); @@ -476,10 +475,9 @@ MACHINE_RESET_MEMBER(mtech_state,mtnew) megatech_select_game(machine(), 0); } -static SCREEN_UPDATE_RGB32( megatech_menu ) +UINT32 mtech_state::screen_update_megatech_menu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - mtech_state *state = screen.machine().driver_data<mtech_state>(); - state->m_vdp1->screen_update(screen,bitmap,cliprect); + m_vdp1->screen_update(screen,bitmap,cliprect); return 0; } @@ -522,7 +520,7 @@ static MACHINE_CONFIG_START( megatech, mtech_state ) MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \ SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224) - MCFG_SCREEN_UPDATE_STATIC( megatech_menu ) /* Combines and copies a bitmap */ + MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_megatech_menu) MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) MCFG_PALETTE_INIT(sega315_5124) @@ -531,8 +529,8 @@ static MACHINE_CONFIG_START( megatech, mtech_state ) MCFG_SCREEN_MODIFY("megadriv") - MCFG_SCREEN_UPDATE_STATIC(mtnew) - MCFG_SCREEN_VBLANK_STATIC(mtnew) + MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_mtnew) + MCFG_SCREEN_VBLANK_DRIVER(mtech_state, screen_eof_mtnew) /* sound hardware */ MCFG_SOUND_ADD("sn2", SN76496, MASTER_CLOCK/15) diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c index 2496c77830b..9c8e83443d6 100644 --- a/src/mame/drivers/megazone.c +++ b/src/mame/drivers/megazone.c @@ -277,7 +277,7 @@ static MACHINE_CONFIG_START( megazone, megazone_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(megazone) + MCFG_SCREEN_UPDATE_DRIVER(megazone_state, screen_update_megazone) MCFG_GFXDECODE(megazone) MCFG_PALETTE_LENGTH(16*16+16*16) diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c index 833b460213e..18a5dfe9f3b 100644 --- a/src/mame/drivers/meijinsn.c +++ b/src/mame/drivers/meijinsn.c @@ -96,6 +96,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -290,9 +291,8 @@ void meijinsn_state::palette_init() } -static SCREEN_UPDATE_IND16(meijinsn) +UINT32 meijinsn_state::screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - meijinsn_state *state = screen.machine().driver_data<meijinsn_state>(); int offs; for (offs = 0; offs < 0x4000; offs++) @@ -302,8 +302,8 @@ static SCREEN_UPDATE_IND16(meijinsn) sx = offs >> 8; sy = offs & 0xff; - data1 = state->m_videoram[offs] >> 8; - data2 = state->m_videoram[offs] & 0xff; + data1 = m_videoram[offs] >> 8; + data2 = m_videoram[offs] & 0xff; for (x = 0; x < 4; x++) { @@ -371,7 +371,7 @@ static MACHINE_CONFIG_START( meijinsn, meijinsn_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(12, 243, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(meijinsn) + MCFG_SCREEN_UPDATE_DRIVER(meijinsn_state, screen_update_meijinsn) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c index ab9ec09dd64..6e6107954ce 100644 --- a/src/mame/drivers/meritm.c +++ b/src/mame/drivers/meritm.c @@ -239,6 +239,7 @@ public: DECLARE_MACHINE_START(meritm_crt250_crt252_crt258); DECLARE_MACHINE_START(meritm_crt260); DECLARE_MACHINE_START(merit_common); + UINT32 screen_update_meritm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -461,30 +462,29 @@ void meritm_state::video_start() state_save_register_global(machine(), m_interrupt_vdp1_state); } -static SCREEN_UPDATE_IND16( meritm ) +UINT32 meritm_state::screen_update_meritm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - meritm_state *state = screen.machine().driver_data<meritm_state>(); if(screen.machine().input().code_pressed_once(KEYCODE_Q)) { - state->m_layer0_enabled^=1; - popmessage("Layer 0 %sabled",state->m_layer0_enabled ? "en" : "dis"); + m_layer0_enabled^=1; + popmessage("Layer 0 %sabled",m_layer0_enabled ? "en" : "dis"); } if(screen.machine().input().code_pressed_once(KEYCODE_W)) { - state->m_layer1_enabled^=1; - popmessage("Layer 1 %sabled",state->m_layer1_enabled ? "en" : "dis"); + m_layer1_enabled^=1; + popmessage("Layer 1 %sabled",m_layer1_enabled ? "en" : "dis"); } bitmap.fill(get_black_pen(screen.machine()), cliprect); - if ( state->m_layer0_enabled ) + if ( m_layer0_enabled ) { - copybitmap(bitmap, state->m_v9938_0->get_bitmap(), 0, 0, 0, 0, cliprect); + copybitmap(bitmap, m_v9938_0->get_bitmap(), 0, 0, 0, 0, cliprect); } - if ( state->m_layer1_enabled ) + if ( m_layer1_enabled ) { - copybitmap_trans(bitmap, state->m_v9938_1->get_bitmap(), 0, 0, -6, -12, cliprect, state->m_v9938_1->get_transpen()); + copybitmap_trans(bitmap, m_v9938_1->get_bitmap(), 0, 0, -6, -12, cliprect, m_v9938_1->get_transpen()); } return 0; } @@ -1198,7 +1198,7 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state ) MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2) MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1) - MCFG_SCREEN_UPDATE_STATIC(meritm) + MCFG_SCREEN_UPDATE_DRIVER(meritm_state, screen_update_meritm) MCFG_PALETTE_LENGTH(512) MCFG_PALETTE_INIT( v9938 ) diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c index 298dea03759..8a51fd59b5e 100644 --- a/src/mame/drivers/mermaid.c +++ b/src/mame/drivers/mermaid.c @@ -461,8 +461,8 @@ static MACHINE_CONFIG_START( mermaid, mermaid_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mermaid) - MCFG_SCREEN_VBLANK_STATIC(mermaid) + MCFG_SCREEN_UPDATE_DRIVER(mermaid_state, screen_update_mermaid) + MCFG_SCREEN_VBLANK_DRIVER(mermaid_state, screen_eof_mermaid) MCFG_GFXDECODE(mermaid) MCFG_PALETTE_LENGTH(4*16+2*2) diff --git a/src/mame/drivers/metalmx.c b/src/mame/drivers/metalmx.c index bc924cdba4f..8244a25a169 100644 --- a/src/mame/drivers/metalmx.c +++ b/src/mame/drivers/metalmx.c @@ -278,13 +278,12 @@ void metalmx_state::video_start() } -static SCREEN_UPDATE_IND16( metalmx ) +UINT32 metalmx_state::screen_update_metalmx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* TODO: TMS34020 should take care of this */ - metalmx_state *state = screen.machine().driver_data<metalmx_state>(); // UINT32 *src_base = &gsp_vram[(vreg_base[0x40/4] & 0x40) ? 0x20000 : 0]; - UINT16 *src_base = state->m_gsp_vram; + UINT16 *src_base = m_gsp_vram; int y; for (y = 0; y < 384; ++y) @@ -756,7 +755,7 @@ static MACHINE_CONFIG_START( metalmx, metalmx_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 384) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_STATIC(metalmx) + MCFG_SCREEN_UPDATE_DRIVER(metalmx_state, screen_update_metalmx) MCFG_PALETTE_LENGTH(65536) MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB) diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c index e866e8e7455..31575970b17 100644 --- a/src/mame/drivers/metlclsh.c +++ b/src/mame/drivers/metlclsh.c @@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( metlclsh, metlclsh_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(metlclsh) + MCFG_SCREEN_UPDATE_DRIVER(metlclsh_state, screen_update_metlclsh) MCFG_GFXDECODE(metlclsh) MCFG_PALETTE_LENGTH(3 * 16) diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index 93f7e8db10a..40f39f0a542 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -3433,7 +3433,7 @@ static MACHINE_CONFIG_START( balcube, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4220) MCFG_PALETTE_LENGTH(8192) @@ -3467,7 +3467,7 @@ static MACHINE_CONFIG_START( daitoa, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4220) MCFG_PALETTE_LENGTH(8192) @@ -3501,7 +3501,7 @@ static MACHINE_CONFIG_START( msgogo, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4220) MCFG_PALETTE_LENGTH(8192) @@ -3535,7 +3535,7 @@ static MACHINE_CONFIG_START( bangball, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4220) MCFG_PALETTE_LENGTH(8192) @@ -3569,7 +3569,7 @@ static MACHINE_CONFIG_START( batlbubl, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4220) MCFG_PALETTE_LENGTH(8192) @@ -3607,7 +3607,7 @@ static MACHINE_CONFIG_START( daitorid, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4220) MCFG_PALETTE_LENGTH(8192) @@ -3650,7 +3650,7 @@ static MACHINE_CONFIG_START( dharma, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -3692,7 +3692,7 @@ static MACHINE_CONFIG_START( karatour, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -3734,7 +3734,7 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4220) MCFG_PALETTE_LENGTH(8192) @@ -3776,7 +3776,7 @@ static MACHINE_CONFIG_START( lastfort, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(360, 224) MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -3817,7 +3817,7 @@ static MACHINE_CONFIG_START( lastforg, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(360, 224) MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -3852,7 +3852,7 @@ static MACHINE_CONFIG_START( dokyusei, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4300) MCFG_PALETTE_LENGTH(8192) @@ -3888,7 +3888,7 @@ static MACHINE_CONFIG_START( dokyusp, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(384, 224) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4300) MCFG_PALETTE_LENGTH(8192) @@ -3925,7 +3925,7 @@ static MACHINE_CONFIG_START( gakusai, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4300) MCFG_PALETTE_LENGTH(8192) @@ -3962,7 +3962,7 @@ static MACHINE_CONFIG_START( gakusai2, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4300) MCFG_PALETTE_LENGTH(8192) @@ -4004,7 +4004,7 @@ static MACHINE_CONFIG_START( pangpoms, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(360, 224) MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -4046,7 +4046,7 @@ static MACHINE_CONFIG_START( poitto, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(360, 224) MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -4088,7 +4088,7 @@ static MACHINE_CONFIG_START( pururun, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -4131,7 +4131,7 @@ static MACHINE_CONFIG_START( skyalert, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(360, 224) MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -4173,7 +4173,7 @@ static MACHINE_CONFIG_START( toride2g, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4100) MCFG_PALETTE_LENGTH(8192) @@ -4209,7 +4209,7 @@ static MACHINE_CONFIG_START( mouja, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4300) MCFG_PALETTE_LENGTH(8192) @@ -4254,7 +4254,7 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(blzntrnd) MCFG_PALETTE_LENGTH(8192) @@ -4302,7 +4302,7 @@ static MACHINE_CONFIG_START( gstrik2, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(gstrik2) MCFG_PALETTE_LENGTH(8192) @@ -4340,7 +4340,7 @@ static MACHINE_CONFIG_START( puzzlet, metro_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 224) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(metro) + MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) MCFG_GFXDECODE(i4300) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c index 04a8cef4808..5e1b2710c62 100644 --- a/src/mame/drivers/mexico86.c +++ b/src/mame/drivers/mexico86.c @@ -496,7 +496,7 @@ static MACHINE_CONFIG_START( mexico86, mexico86_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mexico86) + MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_mexico86) MCFG_GFXDECODE(mexico86) MCFG_PALETTE_LENGTH(256) @@ -523,7 +523,7 @@ static MACHINE_CONFIG_DERIVED( knightb, mexico86 ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(kikikai) + MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_kikikai) MACHINE_CONFIG_END @@ -538,7 +538,7 @@ static MACHINE_CONFIG_DERIVED( kikikai, knightb ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(kikikai) + MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_kikikai) MACHINE_CONFIG_END diff --git a/src/mame/drivers/meyc8080.c b/src/mame/drivers/meyc8080.c index 57fe5c76477..d4ed7f979a1 100644 --- a/src/mame/drivers/meyc8080.c +++ b/src/mame/drivers/meyc8080.c @@ -84,6 +84,7 @@ public: DECLARE_WRITE8_MEMBER(meyc8080_dac_2_w); DECLARE_WRITE8_MEMBER(meyc8080_dac_3_w); DECLARE_WRITE8_MEMBER(meyc8080_dac_4_w); + UINT32 screen_update_meyc8080(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -93,21 +94,20 @@ public: * *************************************/ -static SCREEN_UPDATE_RGB32( meyc8080 ) +UINT32 meyc8080_state::screen_update_meyc8080(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - meyc8080_state *state = screen.machine().driver_data<meyc8080_state>(); offs_t offs; - for (offs = 0; offs < state->m_videoram_0.bytes(); offs++) + for (offs = 0; offs < m_videoram_0.bytes(); offs++) { int i; UINT8 y = offs >> 5; UINT8 x = offs << 3; - UINT8 data0 = state->m_videoram_0[offs]; - UINT8 data1 = state->m_videoram_1[offs]; - UINT8 data2 = state->m_videoram_2[offs]; + UINT8 data0 = m_videoram_0[offs]; + UINT8 data1 = m_videoram_1[offs]; + UINT8 data2 = m_videoram_2[offs]; /* weird equations, but it matches every flyer screenshot - perhaphs they used a look-up PROM? */ @@ -588,7 +588,7 @@ static MACHINE_CONFIG_START( meyc8080, meyc8080_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_STATIC(meyc8080) + MCFG_SCREEN_UPDATE_DRIVER(meyc8080_state, screen_update_meyc8080) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/meyc8088.c b/src/mame/drivers/meyc8088.c index 12cf8b32cbf..f88495892ec 100644 --- a/src/mame/drivers/meyc8088.c +++ b/src/mame/drivers/meyc8088.c @@ -63,6 +63,8 @@ public: DECLARE_WRITE_LINE_MEMBER(meyc8088_sound_out); virtual void palette_init(); + UINT32 screen_update_meyc8088(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_meyc8088(screen_device &screen, bool state); }; @@ -122,13 +124,12 @@ void meyc8088_state::palette_init() auto_free(machine(), rgb); } -static SCREEN_UPDATE_IND16( meyc8088 ) +UINT32 meyc8088_state::screen_update_meyc8088(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - meyc8088_state *state = screen.machine().driver_data<meyc8088_state>(); UINT8 v[5]; - v[4] = state->m_status << 2 & 0x10; // video5: color prom d4 + v[4] = m_status << 2 & 0x10; // video5: color prom d4 - if (~state->m_status & 2) + if (~m_status & 2) { // screen off bitmap.fill(v[4]); @@ -140,10 +141,10 @@ static SCREEN_UPDATE_IND16( meyc8088 ) UINT8 y = (offs-0x800) >> 6; UINT8 x = (offs-0x800) << 2; - v[0] = state->m_vram[offs|0x0000]; // video1: color prom d0 - v[1] = state->m_vram[offs|0x0001]; // video2: color prom d1 - v[2] = state->m_vram[offs|0x4000]; // video3: color prom d2 - v[3] = state->m_vram[offs|0x4001]; // video4: color prom d3 + v[0] = m_vram[offs|0x0000]; // video1: color prom d0 + v[1] = m_vram[offs|0x0001]; // video2: color prom d1 + v[2] = m_vram[offs|0x4000]; // video3: color prom d2 + v[3] = m_vram[offs|0x4001]; // video4: color prom d3 for (int i = 0; i < 8; i++) bitmap.pix16(y, x | i) = ((v[0] << i) >> 7 & 1) | ((v[1] << i) >> 6 & 2) | ((v[2] << i) >> 5 & 4) | ((v[3] << i) >> 4 & 8) | v[4]; @@ -152,12 +153,12 @@ static SCREEN_UPDATE_IND16( meyc8088 ) return 0; } -static SCREEN_VBLANK( meyc8088 ) +void meyc8088_state::screen_eof_meyc8088(screen_device &screen, bool state) { - meyc8088_state *state = screen.machine().driver_data<meyc8088_state>(); - + device_execute_interface *intf; + m_maincpu->interface(intf); // INTR on LC255 (pulses at start and end of vblank), INTA hardwired to $20 - generic_pulse_irq_line_and_vector(state->m_maincpu, 0, 0x20, 1); + generic_pulse_irq_line_and_vector(*intf, 0, 0x20, 1); } @@ -386,8 +387,8 @@ static MACHINE_CONFIG_START( meyc8088, meyc8088_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_15MHz/3, 320, 0, 256, 261, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(meyc8088) - MCFG_SCREEN_VBLANK_STATIC(meyc8088) + MCFG_SCREEN_UPDATE_DRIVER(meyc8088_state, screen_update_meyc8088) + MCFG_SCREEN_VBLANK_DRIVER(meyc8088_state, screen_eof_meyc8088) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c index 1a9796bc45c..75296b1f751 100644 --- a/src/mame/drivers/mgolf.c +++ b/src/mame/drivers/mgolf.c @@ -38,6 +38,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -62,30 +63,29 @@ void mgolf_state::video_start() } -static SCREEN_UPDATE_IND16( mgolf ) +UINT32 mgolf_state::screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mgolf_state *state = screen.machine().driver_data<mgolf_state>(); int i; /* draw playfield */ - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); /* draw sprites */ for (i = 0; i < 2; i++) { drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], - state->m_video_ram[0x399 + 4 * i], + m_video_ram[0x399 + 4 * i], i, 0, 0, - state->m_video_ram[0x390 + 2 * i] - 7, - state->m_video_ram[0x398 + 4 * i] - 16, 0); + m_video_ram[0x390 + 2 * i] - 7, + m_video_ram[0x398 + 4 * i] - 16, 0); drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], - state->m_video_ram[0x39b + 4 * i], + m_video_ram[0x39b + 4 * i], i, 0, 0, - state->m_video_ram[0x390 + 2 * i] - 15, - state->m_video_ram[0x39a + 4 * i] - 16, 0); + m_video_ram[0x390 + 2 * i] - 15, + m_video_ram[0x39a + 4 * i] - 16, 0); } return 0; } @@ -335,7 +335,7 @@ static MACHINE_CONFIG_START( mgolf, mgolf_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 262) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223) - MCFG_SCREEN_UPDATE_STATIC(mgolf) + MCFG_SCREEN_UPDATE_DRIVER(mgolf_state, screen_update_mgolf) MCFG_GFXDECODE(mgolf) MCFG_PALETTE_LENGTH(4) diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c index f92df0c2658..e3e9475ba3c 100644 --- a/src/mame/drivers/midas.c +++ b/src/mame/drivers/midas.c @@ -78,11 +78,12 @@ public: DECLARE_DRIVER_INIT(livequiz); TILE_GET_INFO_MEMBER(get_tile_info); virtual void video_start(); + UINT32 screen_update_midas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; -static SCREEN_UPDATE_IND16( midas ); + TILE_GET_INFO_MEMBER(midas_state::get_tile_info) @@ -184,16 +185,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } } -static SCREEN_UPDATE_IND16( midas ) +UINT32 midas_state::screen_update_midas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - midas_state *state = screen.machine().driver_data<midas_state>(); int layers_ctrl = -1; #ifdef MAME_DEBUG if ( screen.machine().input().code_pressed(KEYCODE_Z) ) { int msk = 0; - if (screen.machine().input().code_pressed(KEYCODE_Q)) msk |= 1 << 0; // for state->m_tmap + if (screen.machine().input().code_pressed(KEYCODE_Q)) msk |= 1 << 0; // for m_tmap if (screen.machine().input().code_pressed(KEYCODE_A)) msk |= 1 << 1; // for sprites if (msk != 0) layers_ctrl &= msk; } @@ -202,7 +202,7 @@ static SCREEN_UPDATE_IND16( midas ) bitmap.fill(4095, cliprect); if (layers_ctrl & 2) draw_sprites(screen.machine(), bitmap,cliprect); - if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -711,7 +711,7 @@ static MACHINE_CONFIG_START( livequiz, midas_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(midas) + MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas) MCFG_GFXDECODE(midas) MCFG_PALETTE_LENGTH(0x10000) @@ -744,7 +744,7 @@ static MACHINE_CONFIG_START( hammer, midas_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(midas) + MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas) MCFG_GFXDECODE(midas) MCFG_PALETTE_LENGTH(0x10000) diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c index b69a7ae2e42..115e85852eb 100644 --- a/src/mame/drivers/midvunit.c +++ b/src/mame/drivers/midvunit.c @@ -1026,7 +1026,7 @@ static MACHINE_CONFIG_START( midvcommon, midvunit_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MIDVUNIT_VIDEO_CLOCK/2, 666, 0, 512, 432, 0, 400) - MCFG_SCREEN_UPDATE_STATIC(midvunit) + MCFG_SCREEN_UPDATE_DRIVER(midvunit_state, screen_update_midvunit) MACHINE_CONFIG_END diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index 488aaf3a913..b18ff612cb5 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -1102,7 +1102,7 @@ static MACHINE_CONFIG_START( midzeus, midzeus_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/8, 529, 0, 400, 278, 0, 256) - MCFG_SCREEN_UPDATE_STATIC(midzeus) + MCFG_SCREEN_UPDATE_DRIVER(midzeus_state, screen_update_midzeus) MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus) @@ -1140,7 +1140,7 @@ static MACHINE_CONFIG_START( midzeus2, midzeus_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/4, 666, 0, 512, 438, 0, 400) - MCFG_SCREEN_UPDATE_STATIC(midzeus2) + MCFG_SCREEN_UPDATE_DRIVER(midzeus_state, screen_update_midzeus2) MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus2) diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c index c9edb96eace..2629b97cf33 100644 --- a/src/mame/drivers/mikie.c +++ b/src/mame/drivers/mikie.c @@ -289,7 +289,7 @@ static MACHINE_CONFIG_START( mikie, mikie_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mikie) + MCFG_SCREEN_UPDATE_DRIVER(mikie_state, screen_update_mikie) MCFG_GFXDECODE(mikie) MCFG_PALETTE_LENGTH(16*8*16+16*8*16) diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c index 2375b3c663c..437b78c3ed6 100644 --- a/src/mame/drivers/mil4000.c +++ b/src/mame/drivers/mil4000.c @@ -122,6 +122,7 @@ public: TILE_GET_INFO_MEMBER(get_sc2_tile_info); TILE_GET_INFO_MEMBER(get_sc3_tile_info); virtual void video_start(); + UINT32 screen_update_mil4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -189,13 +190,12 @@ void mil4000_state::video_start() m_sc3_tilemap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16(mil4000) +UINT32 mil4000_state::screen_update_mil4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mil4000_state *state = screen.machine().driver_data<mil4000_state>(); - state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0); - state->m_sc1_tilemap->draw(bitmap, cliprect, 0,0); - state->m_sc2_tilemap->draw(bitmap, cliprect, 0,0); - state->m_sc3_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc1_tilemap->draw(bitmap, cliprect, 0,0); + m_sc2_tilemap->draw(bitmap, cliprect, 0,0); + m_sc3_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -381,7 +381,7 @@ static MACHINE_CONFIG_START( mil4000, mil4000_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(mil4000) + MCFG_SCREEN_UPDATE_DRIVER(mil4000_state, screen_update_mil4000) MCFG_PALETTE_LENGTH(0x800) MCFG_PALETTE_INIT(all_black) diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c index 69baa64b9e8..f2a40d9963d 100644 --- a/src/mame/drivers/miniboy7.c +++ b/src/mame/drivers/miniboy7.c @@ -168,6 +168,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -211,10 +212,9 @@ void miniboy7_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(miniboy7_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 37, 37); } -static SCREEN_UPDATE_IND16( miniboy7 ) +UINT32 miniboy7_state::screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - miniboy7_state *state = screen.machine().driver_data<miniboy7_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -462,7 +462,7 @@ static MACHINE_CONFIG_START( miniboy7, miniboy7_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((47+1)*8, (39+1)*8) /* Taken from MC6845, registers 00 & 04. Normally programmed with (value-1) */ MCFG_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 37*8-1) /* Taken from MC6845, registers 01 & 06 */ - MCFG_SCREEN_UPDATE_STATIC(miniboy7) + MCFG_SCREEN_UPDATE_DRIVER(miniboy7_state, screen_update_miniboy7) MCFG_GFXDECODE(miniboy7) diff --git a/src/mame/drivers/minivadr.c b/src/mame/drivers/minivadr.c index 4d4fb105b4f..b0d86356f83 100644 --- a/src/mame/drivers/minivadr.c +++ b/src/mame/drivers/minivadr.c @@ -23,6 +23,7 @@ public: /* memory pointers */ required_shared_ptr<UINT8> m_videoram; + UINT32 screen_update_minivadr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; /************************************* @@ -31,18 +32,17 @@ public: * *************************************/ -static SCREEN_UPDATE_RGB32( minivadr ) +UINT32 minivadr_state::screen_update_minivadr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - minivadr_state *state = screen.machine().driver_data<minivadr_state>(); offs_t offs; - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; UINT8 x = offs << 3; int y = offs >> 5; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; for (i = 0; i < 8; i++) { @@ -91,7 +91,7 @@ static MACHINE_CONFIG_START( minivadr, minivadr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(minivadr) + MCFG_SCREEN_UPDATE_DRIVER(minivadr_state, screen_update_minivadr) /* the board has no sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c index 8d04b8fa6b3..d363c15bde7 100644 --- a/src/mame/drivers/mirage.c +++ b/src/mame/drivers/mirage.c @@ -77,6 +77,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; void miragemi_state::video_start() @@ -84,23 +85,22 @@ void miragemi_state::video_start() machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap(); } -static SCREEN_UPDATE_RGB32( mirage ) +UINT32 miragemi_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - miragemi_state *state = screen.machine().driver_data<miragemi_state>(); address_space &space = screen.machine().driver_data()->generic_space(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); + UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff); - state->flip_screen_set(BIT(flip, 7)); + flip_screen_set(BIT(flip, 7)); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400); - deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); + deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll); bitmap.fill(256, cliprect); /* not verified */ - deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0x1ff); - deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0); + deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0); screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0x1ff); return 0; @@ -331,7 +331,7 @@ static MACHINE_CONFIG_START( mirage, miragemi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(mirage) + MCFG_SCREEN_UPDATE_DRIVER(miragemi_state, screen_update_mirage) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c index 6c1609cf94d..db73e306f86 100644 --- a/src/mame/drivers/mirax.c +++ b/src/mame/drivers/mirax.c @@ -129,6 +129,7 @@ public: DECLARE_WRITE8_MEMBER(ay2_sel); DECLARE_DRIVER_INIT(mirax); virtual void palette_init(); + UINT32 screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -219,7 +220,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } } -static SCREEN_UPDATE_IND16(mirax) +UINT32 mirax_state::screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { draw_tilemap(screen.machine(),bitmap,cliprect,1); draw_sprites(screen.machine(),bitmap,cliprect); @@ -465,7 +466,7 @@ static MACHINE_CONFIG_START( mirax, mirax_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(mirax) + MCFG_SCREEN_UPDATE_DRIVER(mirax_state, screen_update_mirax) MCFG_PALETTE_LENGTH(0x40) MCFG_GFXDECODE(mirax) diff --git a/src/mame/drivers/missb2.c b/src/mame/drivers/missb2.c index be1fb526fc6..42da7a77c33 100644 --- a/src/mame/drivers/missb2.c +++ b/src/mame/drivers/missb2.c @@ -38,14 +38,14 @@ public: DECLARE_DRIVER_INIT(missb2); DECLARE_MACHINE_START(missb2); DECLARE_MACHINE_RESET(missb2); + UINT32 screen_update_missb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /* Video Hardware */ -static SCREEN_UPDATE_IND16( missb2 ) +UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - missb2_state *state = screen.machine().driver_data<missb2_state>(); int offs; int sx, sy, xc, yc; int gfx_num, gfx_attr, gfx_offs; @@ -59,12 +59,12 @@ static SCREEN_UPDATE_IND16( missb2 ) bitmap.fill(255, cliprect); - if (!state->m_video_enable) + if (!m_video_enable) return 0; /* background map register */ - //popmessage("%02x",(*state->m_bgvram) & 0x1f); - for (bg_offs = ((*state->m_bgvram) << 4); bg_offs < (((*state->m_bgvram) << 4) | 0xf); bg_offs++) + //popmessage("%02x",(*m_bgvram) & 0x1f); + for (bg_offs = ((*m_bgvram) << 4); bg_offs < (((*m_bgvram) << 4) | 0xf); bg_offs++) { drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[1], bg_offs, @@ -77,23 +77,23 @@ static SCREEN_UPDATE_IND16( missb2 ) sx = 0; prom = screen.machine().root_device().memregion("proms")->base(); - for (offs = 0; offs < state->m_objectram.bytes(); offs += 4) + for (offs = 0; offs < m_objectram.bytes(); offs += 4) { /* skip empty sprites */ /* this is dword aligned so the UINT32 * cast shouldn't give problems */ /* on any architecture */ - if (*(UINT32 *)(&state->m_objectram[offs]) == 0) + if (*(UINT32 *)(&m_objectram[offs]) == 0) continue; - gfx_num = state->m_objectram[offs + 1]; - gfx_attr = state->m_objectram[offs + 3]; + gfx_num = m_objectram[offs + 1]; + gfx_attr = m_objectram[offs + 3]; prom_line = prom + 0x80 + ((gfx_num & 0xe0) >> 1); gfx_offs = ((gfx_num & 0x1f) * 0x80); if ((gfx_num & 0xa0) == 0xa0) gfx_offs |= 0x1000; - sy = -state->m_objectram[offs + 0]; + sy = -m_objectram[offs + 0]; for (yc = 0; yc < 32; yc++) { @@ -101,7 +101,7 @@ static SCREEN_UPDATE_IND16( missb2 ) if (!(prom_line[yc / 2] & 0x04)) /* next column */ { - sx = state->m_objectram[offs + 2]; + sx = m_objectram[offs + 2]; if (gfx_attr & 0x40) sx -= 256; } @@ -111,14 +111,14 @@ static SCREEN_UPDATE_IND16( missb2 ) goffs = gfx_offs + xc * 0x40 + (yc & 7) * 0x02 + (prom_line[yc/2] & 0x03) * 0x10; - code = state->m_videoram[goffs] + 256 * (state->m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f); - //color = (state->m_videoram[goffs + 1] & 0x3c) >> 2; - flipx = state->m_videoram[goffs + 1] & 0x40; - flipy = state->m_videoram[goffs + 1] & 0x80; + code = m_videoram[goffs] + 256 * (m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f); + //color = (m_videoram[goffs + 1] & 0x3c) >> 2; + flipx = m_videoram[goffs + 1] & 0x40; + flipy = m_videoram[goffs + 1] & 0x80; x = sx + xc * 8; y = (sy + yc * 8) & 0xff; - if (state->flip_screen()) + if (flip_screen()) { x = 248 - x; y = 248 - y; @@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( missb2, missb2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(missb2) + MCFG_SCREEN_UPDATE_DRIVER(missb2_state, screen_update_missb2) MCFG_GFXDECODE(missb2) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c index d0181210700..628d703cfd5 100644 --- a/src/mame/drivers/missile.c +++ b/src/mame/drivers/missile.c @@ -381,6 +381,7 @@ public: DECLARE_DRIVER_INIT(suprmatk); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_missile(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -666,10 +667,9 @@ static UINT8 read_vram(address_space &space, offs_t address) * *************************************/ -static SCREEN_UPDATE_IND16( missile ) +UINT32 missile_state::screen_update_missile(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - missile_state *state = screen.machine().driver_data<missile_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int x, y; /* draw the bitmap to the screen, looping over Y */ @@ -677,7 +677,7 @@ static SCREEN_UPDATE_IND16( missile ) { UINT16 *dst = &bitmap.pix16(y); - int effy = state->m_flipscreen ? ((256+24 - y) & 0xff) : y; + int effy = m_flipscreen ? ((256+24 - y) & 0xff) : y; UINT8 *src = &videoram[effy * 64]; UINT8 *src3 = NULL; @@ -1044,7 +1044,7 @@ static MACHINE_CONFIG_START( missile, missile_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(missile) + MCFG_SCREEN_UPDATE_DRIVER(missile_state, screen_update_missile) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c index 77578fe22c9..06686a6dc48 100644 --- a/src/mame/drivers/mitchell.c +++ b/src/mame/drivers/mitchell.c @@ -1128,7 +1128,7 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(pang) + MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) MCFG_GFXDECODE(mgakuen) MCFG_PALETTE_LENGTH(1024) /* less colors than the others */ @@ -1171,7 +1171,7 @@ static MACHINE_CONFIG_START( pang, mitchell_state ) MCFG_PALETTE_LENGTH(2048) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) - MCFG_SCREEN_UPDATE_STATIC(pang) + MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1271,7 +1271,7 @@ static MACHINE_CONFIG_START( mstworld, mitchell_state ) MCFG_PALETTE_LENGTH(2048) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) - MCFG_SCREEN_UPDATE_STATIC(pang) + MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1303,7 +1303,7 @@ static MACHINE_CONFIG_START( marukin, mitchell_state ) MCFG_PALETTE_LENGTH(2048) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) - MCFG_SCREEN_UPDATE_STATIC(pang) + MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1355,7 +1355,7 @@ static MACHINE_CONFIG_START( pkladiesbl, mitchell_state ) MCFG_PALETTE_LENGTH(2048) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) - MCFG_SCREEN_UPDATE_STATIC(pang) + MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c index 4a43c4a50a2..7cc699b15cd 100644 --- a/src/mame/drivers/mjkjidai.c +++ b/src/mame/drivers/mjkjidai.c @@ -456,7 +456,7 @@ static MACHINE_CONFIG_START( mjkjidai, mjkjidai_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(3*8, 61*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mjkjidai) + MCFG_SCREEN_UPDATE_DRIVER(mjkjidai_state, screen_update_mjkjidai) MCFG_GFXDECODE(mjkjidai) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c index d5c4a25fe11..bb5cb4c445a 100644 --- a/src/mame/drivers/mjsister.c +++ b/src/mame/drivers/mjsister.c @@ -60,6 +60,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_mjsister(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -127,32 +128,31 @@ WRITE8_MEMBER(mjsister_state::mjsister_videoram_w) } } -static SCREEN_UPDATE_IND16( mjsister ) +UINT32 mjsister_state::screen_update_mjsister(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mjsister_state *state = screen.machine().driver_data<mjsister_state>(); - int flip = state->m_flip_screen; + int flip = m_flip_screen; int i, j; - if (state->m_screen_redraw) + if (m_screen_redraw) { int offs; for (offs = 0; offs < 0x8000; offs++) { - mjsister_plot0(screen.machine(), offs, state->m_videoram0[offs]); - mjsister_plot1(screen.machine(), offs, state->m_videoram1[offs]); + mjsister_plot0(screen.machine(), offs, m_videoram0[offs]); + mjsister_plot1(screen.machine(), offs, m_videoram1[offs]); } - state->m_screen_redraw = 0; + m_screen_redraw = 0; } - if (state->m_video_enable) + if (m_video_enable) { for (i = 0; i < 256; i++) for (j = 0; j < 4; j++) - bitmap.pix16(i, 256 + j) = state->m_colorbank * 0x20; + bitmap.pix16(i, 256 + j) = m_colorbank * 0x20; - copybitmap(bitmap, *state->m_tmpbitmap0, flip, flip, 0, 0, cliprect); - copybitmap_trans(bitmap, *state->m_tmpbitmap1, flip, flip, 2, 0, cliprect, 0); + copybitmap(bitmap, *m_tmpbitmap0, flip, flip, 0, 0, cliprect); + copybitmap_trans(bitmap, *m_tmpbitmap1, flip, flip, 2, 0, cliprect, 0); } else bitmap.fill(get_black_pen(screen.machine()), cliprect); @@ -508,7 +508,7 @@ static MACHINE_CONFIG_START( mjsister, mjsister_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256+4, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255+4, 8, 247) - MCFG_SCREEN_UPDATE_STATIC(mjsister) + MCFG_SCREEN_UPDATE_DRIVER(mjsister_state, screen_update_mjsister) MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c index e03dd2b8af3..20af7c33a37 100644 --- a/src/mame/drivers/mlanding.c +++ b/src/mame/drivers/mlanding.c @@ -77,6 +77,7 @@ public: DECLARE_DRIVER_INIT(mlanding); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -89,22 +90,21 @@ void mlanding_state::video_start() // 256: Cockpit // 512: control centre screen // 768: plane landing sequence -static SCREEN_UPDATE_IND16(mlanding) +UINT32 mlanding_state::screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mlanding_state *state = screen.machine().driver_data<mlanding_state>(); int x, y; for (y = cliprect.min_y; y <= cliprect.max_y; ++y) { - UINT16 *src = &state->m_g_ram[y * 512/2 + cliprect.min_x]; + UINT16 *src = &m_g_ram[y * 512/2 + cliprect.min_x]; UINT16 *dst = &bitmap.pix16(y, cliprect.min_x); for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) { UINT16 srcpix = *src++; - *dst++ = screen.machine().pens[256+(srcpix & 0xff) + (state->m_pal_fg_bank & 1 ? 0x100 : 0x000)]; - *dst++ = screen.machine().pens[256+(srcpix >> 8) + (state->m_pal_fg_bank & 1 ? 0x100 : 0x000)]; + *dst++ = screen.machine().pens[256+(srcpix & 0xff) + (m_pal_fg_bank & 1 ? 0x100 : 0x000)]; + *dst++ = screen.machine().pens[256+(srcpix >> 8) + (m_pal_fg_bank & 1 ? 0x100 : 0x000)]; } } @@ -794,7 +794,7 @@ static MACHINE_CONFIG_START( mlanding, mlanding_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 511, 14*8, 511) - MCFG_SCREEN_UPDATE_STATIC(mlanding) + MCFG_SCREEN_UPDATE_DRIVER(mlanding_state, screen_update_mlanding) MCFG_PALETTE_LENGTH(512*16) diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c index a7421e1b2b5..3181e0ff12c 100644 --- a/src/mame/drivers/model1.c +++ b/src/mame/drivers/model1.c @@ -1535,8 +1535,8 @@ static MACHINE_CONFIG_START( model1, model1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/) - MCFG_SCREEN_UPDATE_STATIC(model1) - MCFG_SCREEN_VBLANK_STATIC(model1) + MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1) + MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1) MCFG_PALETTE_LENGTH(8192) @@ -1584,8 +1584,8 @@ static MACHINE_CONFIG_START( model1_vr, model1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/) - MCFG_SCREEN_UPDATE_STATIC(model1) - MCFG_SCREEN_VBLANK_STATIC(model1) + MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1) + MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index 8502d9e9a0b..ae3de414bb6 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -2001,7 +2001,7 @@ static MACHINE_CONFIG_START( model2o, model2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(62*8, 48*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MCFG_SCREEN_UPDATE_STATIC(model2) + MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2) MCFG_PALETTE_LENGTH(8192) @@ -2059,7 +2059,7 @@ static MACHINE_CONFIG_START( model2a, model2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(62*8, 48*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MCFG_SCREEN_UPDATE_STATIC(model2) + MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2) MCFG_PALETTE_LENGTH(8192) @@ -2162,7 +2162,7 @@ static MACHINE_CONFIG_START( model2b, model2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(62*8, 48*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MCFG_SCREEN_UPDATE_STATIC(model2) + MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2) MCFG_PALETTE_LENGTH(8192) @@ -2209,7 +2209,7 @@ static MACHINE_CONFIG_START( model2c, model2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(62*8, 48*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MCFG_SCREEN_UPDATE_STATIC(model2) + MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index f7d9f9f74f0..41cdae70b67 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -5309,7 +5309,7 @@ static MACHINE_CONFIG_START( model3_10, model3_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383) MCFG_SCREEN_SIZE(512, 400) - MCFG_SCREEN_UPDATE_STATIC(model3) + MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3) MCFG_PALETTE_LENGTH(32768) MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) @@ -5350,7 +5350,7 @@ static MACHINE_CONFIG_START( model3_15, model3_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383) MCFG_SCREEN_SIZE(496, 400) - MCFG_SCREEN_UPDATE_STATIC(model3) + MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3) MCFG_PALETTE_LENGTH(32768) MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) @@ -5391,7 +5391,7 @@ static MACHINE_CONFIG_START( model3_20, model3_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383) MCFG_SCREEN_SIZE(496, 400) - MCFG_SCREEN_UPDATE_STATIC(model3) + MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3) MCFG_PALETTE_LENGTH(32768) MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) @@ -5430,7 +5430,7 @@ static MACHINE_CONFIG_START( model3_21, model3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383) MCFG_SCREEN_SIZE(496, 400) - MCFG_SCREEN_UPDATE_STATIC(model3) + MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3) MCFG_PALETTE_LENGTH(32768) MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c index 2e3bb842aef..79aafc18472 100644 --- a/src/mame/drivers/mogura.c +++ b/src/mame/drivers/mogura.c @@ -31,6 +31,7 @@ public: virtual void machine_start(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -86,21 +87,20 @@ void mogura_state::video_start() m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } -static SCREEN_UPDATE_IND16( mogura ) +UINT32 mogura_state::screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mogura_state *state = screen.machine().driver_data<mogura_state>(); const rectangle &visarea = screen.visible_area(); /* tilemap layout is a bit strange ... */ rectangle clip = visarea; clip.max_x = 256 - 1; - state->m_tilemap->set_scrollx(0, 256); - state->m_tilemap->draw(bitmap, clip, 0, 0); + m_tilemap->set_scrollx(0, 256); + m_tilemap->draw(bitmap, clip, 0, 0); clip.min_x = 256; clip.max_x = 512 - 1; - state->m_tilemap->set_scrollx(0, -128); - state->m_tilemap->draw(bitmap, clip, 0, 0); + m_tilemap->set_scrollx(0, -128); + m_tilemap->draw(bitmap, clip, 0, 0); return 0; } @@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( mogura, mogura_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(mogura) + MCFG_SCREEN_UPDATE_DRIVER(mogura_state, screen_update_mogura) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c index 45e3c676fea..3d96b5abe69 100644 --- a/src/mame/drivers/mole.c +++ b/src/mame/drivers/mole.c @@ -74,6 +74,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -122,11 +123,10 @@ WRITE8_MEMBER(mole_state::mole_flipscreen_w) flip_screen_set(data & 0x01); } -static SCREEN_UPDATE_IND16( mole ) +UINT32 mole_state::screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mole_state *state = screen.machine().driver_data<mole_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( mole, mole_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 25*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1) - MCFG_SCREEN_UPDATE_STATIC(mole) + MCFG_SCREEN_UPDATE_DRIVER(mole_state, screen_update_mole) MCFG_GFXDECODE(mole) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c index 59802748c2a..c053fb7b04b 100644 --- a/src/mame/drivers/momoko.c +++ b/src/mame/drivers/momoko.c @@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( momoko, momoko_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 29*8-1) - MCFG_SCREEN_UPDATE_STATIC(momoko) + MCFG_SCREEN_UPDATE_DRIVER(momoko_state, screen_update_momoko) MCFG_GFXDECODE(momoko) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/monzagp.c b/src/mame/drivers/monzagp.c index 5c8588964e3..9d8c39b3b13 100644 --- a/src/mame/drivers/monzagp.c +++ b/src/mame/drivers/monzagp.c @@ -55,6 +55,7 @@ public: DECLARE_WRITE8_MEMBER(port3_w); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -69,33 +70,32 @@ void monzagp_state::video_start() m_vram = auto_alloc_array(machine(), UINT8, 0x10000); } -static SCREEN_UPDATE_IND16(monzagp) +UINT32 monzagp_state::screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - monzagp_state *state = screen.machine().driver_data<monzagp_state>(); int x,y; if(screen.machine().input().code_pressed_once(KEYCODE_Z)) - state->m_bank--; + m_bank--; if(screen.machine().input().code_pressed_once(KEYCODE_X)) - state->m_bank++; + m_bank++; if(screen.machine().input().code_pressed_once(KEYCODE_Q)) { - state->m_screenw--; - printf("%x\n",state->m_screenw); + m_screenw--; + printf("%x\n",m_screenw); } if(screen.machine().input().code_pressed_once(KEYCODE_W)) { - state->m_screenw++; - printf("%x\n",state->m_screenw); + m_screenw++; + printf("%x\n",m_screenw); } if(screen.machine().input().code_pressed_once(KEYCODE_A)) { FILE * p=fopen("vram.bin","wb"); - fwrite(&state->m_vram[0],1,0x10000,p); + fwrite(&m_vram[0],1,0x10000,p); fclose(p); } @@ -104,9 +104,9 @@ static SCREEN_UPDATE_IND16(monzagp) { for(x=0;x<256;x++) { - drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[state->m_bank&1], - state->m_vram[y*state->m_screenw+x], - //(state->m_vram[y*state->m_screenw+x]&0x3f)+(state->m_bank>>1)*64, + drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[m_bank&1], + m_vram[y*m_screenw+x], + //(m_vram[y*m_screenw+x]&0x3f)+(m_bank>>1)*64, 0, 0, 0, x*8,y*8, @@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( monzagp, monzagp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(monzagp) + MCFG_SCREEN_UPDATE_DRIVER(monzagp_state, screen_update_monzagp) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c index 8fbca97b189..4e857bf98a9 100644 --- a/src/mame/drivers/moo.c +++ b/src/mame/drivers/moo.c @@ -535,7 +535,7 @@ static MACHINE_CONFIG_START( moo, moo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - MCFG_SCREEN_UPDATE_STATIC(moo) + MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo) MCFG_PALETTE_LENGTH(2048) @@ -578,7 +578,7 @@ static MACHINE_CONFIG_START( moobl, moo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - MCFG_SCREEN_UPDATE_STATIC(moo) + MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c index 048f42228bf..2f19198031c 100644 --- a/src/mame/drivers/mosaic.c +++ b/src/mame/drivers/mosaic.c @@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( mosaic, mosaic_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mosaic) + MCFG_SCREEN_UPDATE_DRIVER(mosaic_state, screen_update_mosaic) MCFG_GFXDECODE(mosaic) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c index 8af6bb0c178..fe4c2b6a112 100644 --- a/src/mame/drivers/mouser.c +++ b/src/mame/drivers/mouser.c @@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( mouser, mouser_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mouser) + MCFG_SCREEN_UPDATE_DRIVER(mouser_state, screen_update_mouser) MCFG_GFXDECODE(mouser) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/mpoker.c b/src/mame/drivers/mpoker.c index 08237846a5e..2da44d68377 100644 --- a/src/mame/drivers/mpoker.c +++ b/src/mame/drivers/mpoker.c @@ -197,6 +197,7 @@ public: DECLARE_WRITE8_MEMBER(sound_w); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -205,9 +206,8 @@ void mpoker_state::video_start() } -static SCREEN_UPDATE_IND16(mpoker) +UINT32 mpoker_state::screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mpoker_state *state = screen.machine().driver_data<mpoker_state>(); int y,x; int count; gfx_element *gfx = screen.machine().gfx[0]; @@ -217,8 +217,8 @@ static SCREEN_UPDATE_IND16(mpoker) { for (x=0;x<32;x++) { - UINT16 dat = state->m_video[count]; - UINT16 col = state->m_video[count+0x400] & 0x7f; + UINT16 dat = m_video[count]; + UINT16 col = m_video[count+0x400] & 0x7f; drawgfx_opaque(bitmap,cliprect,gfx,dat,col,0,0,x*16,y*16); count++; } @@ -596,7 +596,7 @@ static MACHINE_CONFIG_START( mpoker, mpoker_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(mpoker) + MCFG_SCREEN_UPDATE_DRIVER(mpoker_state, screen_update_mpoker) MCFG_GFXDECODE(mpoker) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/mpu4dealem.c b/src/mame/drivers/mpu4dealem.c index 0f33228f2a7..21d95123826 100644 --- a/src/mame/drivers/mpu4dealem.c +++ b/src/mame/drivers/mpu4dealem.c @@ -30,6 +30,7 @@ public: optional_shared_ptr<UINT8> m_dealem_videoram; DECLARE_MACHINE_RESET(dealem_vid); DECLARE_PALETTE_INIT(dealem); + UINT32 screen_update_dealem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -112,9 +113,8 @@ PALETTE_INIT_MEMBER(mpu4dealem_state,dealem) } -static SCREEN_UPDATE_IND16(dealem) +UINT32 mpu4dealem_state::screen_update_dealem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mpu4dealem_state *state = screen.machine().driver_data<mpu4dealem_state>(); int x,y; int count = 0; @@ -122,7 +122,7 @@ static SCREEN_UPDATE_IND16(dealem) { for (x = 0; x < 40; x++) { - int tile = state->m_dealem_videoram[count + 0x1000] | (state->m_dealem_videoram[count] << 8); + int tile = m_dealem_videoram[count + 0x1000] | (m_dealem_videoram[count] << 8); count++; drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,0,0,0,x * 8,y * 8); } @@ -225,7 +225,7 @@ static MACHINE_CONFIG_START( dealem, mpu4dealem_state ) MCFG_SCREEN_SIZE((54+1)*8, (32+1)*8) /* Taken from 6845 init, registers 00 & 04. Normally programmed with (value-1) */ MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 31*8-1) /* Taken from 6845 init, registers 01 & 06 */ MCFG_SCREEN_REFRESH_RATE(56) /* Measured accurately from the flip-flop, but 6845 handles this */ - MCFG_SCREEN_UPDATE_STATIC(dealem) + MCFG_SCREEN_UPDATE_DRIVER(mpu4dealem_state, screen_update_dealem) MCFG_GFXDECODE(dealem) diff --git a/src/mame/drivers/mpu4plasma.c b/src/mame/drivers/mpu4plasma.c index 25b7d482825..d908c29d5f1 100644 --- a/src/mame/drivers/mpu4plasma.c +++ b/src/mame/drivers/mpu4plasma.c @@ -30,6 +30,7 @@ public: { } + UINT32 screen_update_mpu4plasma(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -48,13 +49,12 @@ static ADDRESS_MAP_START( mpu4plasma_map, AS_PROGRAM, 16, mpu4plasma_state ) AM_RANGE(0xffff04, 0xffff05) AM_WRITE( mpu4plasma_unk_w ) ADDRESS_MAP_END -SCREEN_UPDATE_IND16( mpu4plasma ) +UINT32 mpu4plasma_state::screen_update_mpu4plasma(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { // don't know if this really gets drawn straight from ram.. - mpu4plasma_state *state = screen.machine().driver_data<mpu4plasma_state>(); int base = 0x1600 / 2; - UINT16* rambase = state->m_plasmaram; + UINT16* rambase = m_plasmaram; UINT16* dst_bitmap; int i,y,x,p; @@ -94,7 +94,7 @@ MACHINE_CONFIG_DERIVED_CLASS( mpu4plasma , mod2, mpu4plasma_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0*8, 40-1) - MCFG_SCREEN_UPDATE_STATIC(mpu4plasma) + MCFG_SCREEN_UPDATE_DRIVER(mpu4plasma_state, screen_update_mpu4plasma) MCFG_PALETTE_LENGTH(0x200) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mpu4vid.c b/src/mame/drivers/mpu4vid.c index a9592f670e1..8f6a9563260 100644 --- a/src/mame/drivers/mpu4vid.c +++ b/src/mame/drivers/mpu4vid.c @@ -268,6 +268,7 @@ public: DECLARE_MACHINE_START(mpu4_vid); DECLARE_MACHINE_RESET(mpu4_vid); DECLARE_VIDEO_START(mpu4_vid); + UINT32 screen_update_mpu4_vid(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -511,13 +512,12 @@ static const gfx_layout mpu4_vid_char_16x16_layout = -static SCREEN_UPDATE_RGB32(mpu4_vid) +UINT32 mpu4vid_state::screen_update_mpu4_vid(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - mpu4vid_state *state = screen.machine().driver_data<mpu4vid_state>(); bitmap.fill(0, cliprect); - state->m_scn2674->scn2574_draw(screen.machine(), bitmap, cliprect, state->m_vid_mainram ); + m_scn2674->scn2574_draw(screen.machine(), bitmap, cliprect, m_vid_mainram ); return 0; } @@ -1518,7 +1518,7 @@ static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state ) MCFG_SCREEN_VISIBLE_AREA(0, (63*8)+(0)-1, 0, (37*8)+0-1) MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_UPDATE_STATIC(mpu4_vid) + MCFG_SCREEN_UPDATE_DRIVER(mpu4vid_state, screen_update_mpu4_vid) MCFG_DEVICE_ADD("scn2674_vid", SCN2674_VIDEO, 0) scn2674_device::set_irq_update_callback(*device, update_mpu68_interrupts); diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c index 82a833557e7..d0bf3538901 100644 --- a/src/mame/drivers/mquake.c +++ b/src/mame/drivers/mquake.c @@ -354,7 +354,7 @@ static MACHINE_CONFIG_START( mquake, amiga_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512*2, 262) MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) - MCFG_SCREEN_UPDATE_STATIC(amiga) + MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) MCFG_PALETTE_LENGTH(4096) MCFG_PALETTE_INIT_OVERRIDE(amiga_state,amiga) diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c index 416ff575471..0bf17f4204d 100644 --- a/src/mame/drivers/mrdo.c +++ b/src/mame/drivers/mrdo.c @@ -191,7 +191,7 @@ static MACHINE_CONFIG_START( mrdo, mrdo_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/4, 312, 8, 248, 262, 32, 224) - MCFG_SCREEN_UPDATE_STATIC(mrdo) + MCFG_SCREEN_UPDATE_DRIVER(mrdo_state, screen_update_mrdo) MCFG_GFXDECODE(mrdo) MCFG_PALETTE_LENGTH(64*4+16*4) diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c index 863651885f3..c5a00afa7a0 100644 --- a/src/mame/drivers/mrflea.c +++ b/src/mame/drivers/mrflea.c @@ -373,7 +373,7 @@ static MACHINE_CONFIG_START( mrflea, mrflea_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(mrflea) + MCFG_SCREEN_UPDATE_DRIVER(mrflea_state, screen_update_mrflea) MCFG_GFXDECODE(mrflea) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c index 22e718ce728..c649556c755 100644 --- a/src/mame/drivers/mrjong.c +++ b/src/mame/drivers/mrjong.c @@ -209,7 +209,7 @@ static MACHINE_CONFIG_START( mrjong, mrjong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mrjong) + MCFG_SCREEN_UPDATE_DRIVER(mrjong_state, screen_update_mrjong) MCFG_GFXDECODE(mrjong) MCFG_PALETTE_LENGTH(4*32) diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c index a877facba34..e9a02730acb 100644 --- a/src/mame/drivers/ms32.c +++ b/src/mame/drivers/ms32.c @@ -1408,7 +1408,7 @@ static MACHINE_CONFIG_START( ms32, ms32_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(ms32) + MCFG_SCREEN_UPDATE_DRIVER(ms32_state, screen_update_ms32) MCFG_GFXDECODE(ms32) MCFG_PALETTE_LENGTH(0x10000) diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c index c68d2f96cc8..a0bd58410be 100644 --- a/src/mame/drivers/msisaac.c +++ b/src/mame/drivers/msisaac.c @@ -497,7 +497,7 @@ static MACHINE_CONFIG_START( msisaac, msisaac_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(msisaac) + MCFG_SCREEN_UPDATE_DRIVER(msisaac_state, screen_update_msisaac) MCFG_GFXDECODE(msisaac) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c index d48c6265aad..cea78832e1a 100644 --- a/src/mame/drivers/mugsmash.c +++ b/src/mame/drivers/mugsmash.c @@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( mugsmash, mugsmash_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(mugsmash) + MCFG_SCREEN_UPDATE_DRIVER(mugsmash_state, screen_update_mugsmash) MCFG_GFXDECODE(mugsmash) MCFG_PALETTE_LENGTH(0x300) diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index 4845d5a5033..49eef71823f 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -239,6 +239,7 @@ public: virtual void machine_reset(); virtual void video_start(); DECLARE_MACHINE_RESET(island2a); + UINT32 screen_update_multfish(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(multfish_state::get_multfish_tile_info) @@ -280,28 +281,27 @@ void multfish_state::video_start() m_reel_tilemap->set_scroll_cols(64); } -static SCREEN_UPDATE_IND16(multfish) +UINT32 multfish_state::screen_update_multfish(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - multfish_state *state = screen.machine().driver_data<multfish_state>(); int i; bitmap.fill(get_black_pen(screen.machine()), cliprect); - if (!state->m_disp_enable) return 0; + if (!m_disp_enable) return 0; /* Draw lower part of static tilemap (low pri tiles) */ - state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); + m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); /* Setup the column scroll and draw the reels */ for (i=0;i<64;i++) { - int colscroll = (state->m_vid[i*2] | state->m_vid[i*2+1] << 8); - state->m_reel_tilemap->set_scrolly(i, colscroll ); + int colscroll = (m_vid[i*2] | m_vid[i*2+1] << 8); + m_reel_tilemap->set_scrolly(i, colscroll ); } - state->m_reel_tilemap->draw(bitmap, cliprect, 0,0); + m_reel_tilemap->draw(bitmap, cliprect, 0,0); /* Draw upper part of static tilemap (high pri tiles) */ - state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0),0); + m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0),0); return 0; } @@ -1108,7 +1108,7 @@ static MACHINE_CONFIG_START( multfish, multfish_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(17*16, 1024-16*7-1, 1*16, 32*16-1*16-1) - MCFG_SCREEN_UPDATE_STATIC(multfish) + MCFG_SCREEN_UPDATE_DRIVER(multfish_state, screen_update_multfish) MCFG_GFXDECODE(multfish) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c index 084e2abb536..415c38508e3 100644 --- a/src/mame/drivers/multigam.c +++ b/src/mame/drivers/multigam.c @@ -144,6 +144,7 @@ public: DECLARE_MACHINE_START(multigm3); DECLARE_MACHINE_RESET(multigm3); DECLARE_MACHINE_START(supergm3); + UINT32 screen_update_multigam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -1114,7 +1115,7 @@ void multigam_state::video_start() { } -static SCREEN_UPDATE_IND16( multigam ) +UINT32 multigam_state::screen_update_multigam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* render the ppu */ ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu"); @@ -1203,7 +1204,7 @@ static MACHINE_CONFIG_START( multigam, multigam_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(multigam) + MCFG_SCREEN_UPDATE_DRIVER(multigam_state, screen_update_multigam) MCFG_GFXDECODE(multigam) MCFG_PALETTE_LENGTH(8*4*16) diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c index bc233fdb25a..4c199cdeca0 100644 --- a/src/mame/drivers/munchmo.c +++ b/src/mame/drivers/munchmo.c @@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( mnchmobl, munchmo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256+32+32, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255+32+32,0, 255-16) - MCFG_SCREEN_UPDATE_STATIC(mnchmobl) + MCFG_SCREEN_UPDATE_DRIVER(munchmo_state, screen_update_mnchmobl) MCFG_GFXDECODE(mnchmobl) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c index 0ee9369bd98..441c57cb866 100644 --- a/src/mame/drivers/murogem.c +++ b/src/mame/drivers/murogem.c @@ -120,6 +120,7 @@ public: required_shared_ptr<UINT8> m_videoram; DECLARE_WRITE8_MEMBER(outport_w); virtual void palette_init(); + UINT32 screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -202,9 +203,8 @@ GFXDECODE_END void murogem_state::palette_init() {} -static SCREEN_UPDATE_IND16(murogem) +UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - murogem_state *state = screen.machine().driver_data<murogem_state>(); int xx,yy,count; count = 0x000; @@ -214,8 +214,8 @@ static SCREEN_UPDATE_IND16(murogem) { for(xx=0;xx<32;xx++) { - int tileno = state->m_videoram[count]&0x3f; - int attr = state->m_videoram[count+0x400]&0x0f; + int tileno = m_videoram[count]&0x3f; + int attr = m_videoram[count+0x400]&0x0f; drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],tileno,attr,0,0,xx*8,yy*8,0); @@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( murogem, murogem_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((39+1)*8, (38+1)*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(murogem) + MCFG_SCREEN_UPDATE_DRIVER(murogem_state, screen_update_murogem) MCFG_GFXDECODE(murogem) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/murogmbl.c b/src/mame/drivers/murogmbl.c index 20bb09d08fb..5524bd163e5 100644 --- a/src/mame/drivers/murogmbl.c +++ b/src/mame/drivers/murogmbl.c @@ -48,6 +48,7 @@ public: required_shared_ptr<UINT8> m_video; virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -94,9 +95,8 @@ void murogmbl_state::video_start() } -static SCREEN_UPDATE_IND16(murogmbl) +UINT32 murogmbl_state::screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - murogmbl_state *state = screen.machine().driver_data<murogmbl_state>(); gfx_element *gfx = screen.machine().gfx[0]; int count = 0; @@ -106,7 +106,7 @@ static SCREEN_UPDATE_IND16(murogmbl) { for (x = 0; x < 32; x++) { - int tile = state->m_video[count]; + int tile = m_video[count]; drawgfx_opaque(bitmap, cliprect, gfx, tile, 0, 0, 0, x * 8, y * 8); count++; @@ -194,7 +194,7 @@ static MACHINE_CONFIG_START( murogmbl, murogmbl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(murogmbl) + MCFG_SCREEN_UPDATE_DRIVER(murogmbl_state, screen_update_murogmbl) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c index 23807101f2a..80519a8d3e8 100644 --- a/src/mame/drivers/mustache.c +++ b/src/mame/drivers/mustache.c @@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( mustache, mustache_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(mustache) + MCFG_SCREEN_UPDATE_DRIVER(mustache_state, screen_update_mustache) MCFG_GFXDECODE(mustache) MCFG_PALETTE_LENGTH(8*16+16*8) diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c index c40d5ff3276..a12c6a37892 100644 --- a/src/mame/drivers/mw8080bw.c +++ b/src/mame/drivers/mw8080bw.c @@ -231,7 +231,7 @@ MACHINE_CONFIG_START( mw8080bw_root, mw8080bw_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(mw8080bw) + MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_mw8080bw) MACHINE_CONFIG_END @@ -2269,7 +2269,7 @@ static MACHINE_CONFIG_DERIVED( spcenctr, mw8080bw_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(spcenctr) + MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_spcenctr) /* audio hardware */ MCFG_FRAGMENT_ADD(spcenctr_audio) @@ -2356,8 +2356,8 @@ static MACHINE_CONFIG_DERIVED( phantom2, mw8080bw_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(phantom2) - MCFG_SCREEN_VBLANK_STATIC(phantom2) + MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_phantom2) + MCFG_SCREEN_VBLANK_DRIVER(mw8080bw_state, screen_eof_phantom2) /* add shifter */ MCFG_MB14241_ADD("mb14241") @@ -2705,7 +2705,7 @@ MACHINE_CONFIG_DERIVED( invaders, mw8080bw_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(invaders) + MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_invaders) /* add shifter */ MCFG_MB14241_ADD("mb14241") diff --git a/src/mame/drivers/mwarr.c b/src/mame/drivers/mwarr.c index fcb04051420..b73b926b4c3 100644 --- a/src/mame/drivers/mwarr.c +++ b/src/mame/drivers/mwarr.c @@ -99,6 +99,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_mwarr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -480,57 +481,56 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16( mwarr ) +UINT32 mwarr_state::screen_update_mwarr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - mwarr_state *state = screen.machine().driver_data<mwarr_state>(); int i; screen.machine().priority_bitmap.fill(0, cliprect); - if (BIT(state->m_vidattrram[6], 0)) + if (BIT(m_vidattrram[6], 0)) { for (i = 0; i < 256; i++) - state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[i] + 20); + m_bg_tilemap->set_scrollx(i, m_bg_scrollram[i] + 20); } else { for (i = 0; i < 256; i++) - state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[0] + 19); + m_bg_tilemap->set_scrollx(i, m_bg_scrollram[0] + 19); } - if (BIT(state->m_vidattrram[6], 2)) + if (BIT(m_vidattrram[6], 2)) { for (i = 0; i < 256; i++) - state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[i] + 19); + m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[i] + 19); } else { for (i = 0; i < 256; i++) - state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[0] + 19); + m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[0] + 19); } - if (BIT(state->m_vidattrram[6], 4)) + if (BIT(m_vidattrram[6], 4)) { for (i = 0; i < 256; i++) - state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[i] + 19); + m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[i] + 19); } else { for (i = 0; i < 256; i++) - state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[0] + 19); + m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[0] + 19); } - state->m_bg_tilemap->set_scrolly(0, state->m_vidattrram[1] + 1); - state->m_mlow_tilemap->set_scrolly(0, state->m_vidattrram[2] + 1); - state->m_mhigh_tilemap->set_scrolly(0, state->m_vidattrram[3] + 1); + m_bg_tilemap->set_scrolly(0, m_vidattrram[1] + 1); + m_mlow_tilemap->set_scrolly(0, m_vidattrram[2] + 1); + m_mhigh_tilemap->set_scrolly(0, m_vidattrram[3] + 1); - state->m_tx_tilemap->set_scrollx(0, state->m_vidattrram[0] + 16); - state->m_tx_tilemap->set_scrolly(0, state->m_vidattrram[4] + 1); + m_tx_tilemap->set_scrollx(0, m_vidattrram[0] + 16); + m_tx_tilemap->set_scrolly(0, m_vidattrram[4] + 1); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0x01); - state->m_mlow_tilemap->draw(bitmap, cliprect, 0, 0x02); - state->m_mhigh_tilemap->draw(bitmap, cliprect, 0, 0x04); - state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0x10); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0x01); + m_mlow_tilemap->draw(bitmap, cliprect, 0, 0x02); + m_mhigh_tilemap->draw(bitmap, cliprect, 0, 0x04); + m_tx_tilemap->draw(bitmap, cliprect, 0, 0x10); draw_sprites(screen.machine(), bitmap, cliprect); return 0; } @@ -567,7 +567,7 @@ static MACHINE_CONFIG_START( mwarr, mwarr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8+1, 48*8-1-8-1, 0, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(mwarr) + MCFG_SCREEN_UPDATE_DRIVER(mwarr_state, screen_update_mwarr) MCFG_GFXDECODE(mwarr) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c index 94405f64751..666fe8775e0 100644 --- a/src/mame/drivers/mystwarr.c +++ b/src/mame/drivers/mystwarr.c @@ -1009,7 +1009,7 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) - MCFG_SCREEN_UPDATE_STATIC(mystwarr) + MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_mystwarr) MCFG_PALETTE_LENGTH(2048) @@ -1043,7 +1043,7 @@ static MACHINE_CONFIG_DERIVED( viostorm, mystwarr ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,viostorm) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(metamrph) + MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_metamrph) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(900)) @@ -1068,7 +1068,7 @@ static MACHINE_CONFIG_DERIVED( metamrph, mystwarr ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,metamrph) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(metamrph) + MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_metamrph) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(900)) @@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_DERIVED( dadandrn, mystwarr ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,dadandrn) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(dadandrn) + MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_dadandrn) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) @@ -1123,7 +1123,7 @@ static MACHINE_CONFIG_DERIVED( gaiapols, mystwarr ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(mystwarr_state,gaiapols) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(dadandrn) + MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_dadandrn) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_RAW_PARAMS(8000000, 384+24+64+40, 0, 383, 224+16+8+16, 0, 223) @@ -1150,7 +1150,7 @@ static MACHINE_CONFIG_DERIVED( martchmp, mystwarr ) MCFG_VIDEO_START_OVERRIDE(mystwarr_state,martchmp) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(martchmp) + MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_martchmp) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(32, 32+384-1, 16, 16+224-1) diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c index 912dad6c8b1..340bf43130a 100644 --- a/src/mame/drivers/n8080.c +++ b/src/mame/drivers/n8080.c @@ -554,7 +554,7 @@ static MACHINE_CONFIG_START( spacefev, n8080_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239) - MCFG_SCREEN_UPDATE_STATIC(spacefev) + MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_spacefev) MCFG_PALETTE_LENGTH(8) MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080) @@ -584,7 +584,7 @@ static MACHINE_CONFIG_START( sheriff, n8080_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239) - MCFG_SCREEN_UPDATE_STATIC(sheriff) + MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_sheriff) MCFG_PALETTE_LENGTH(8) MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080) @@ -625,8 +625,8 @@ static MACHINE_CONFIG_START( helifire, n8080_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239) - MCFG_SCREEN_UPDATE_STATIC(helifire) - MCFG_SCREEN_VBLANK_STATIC(helifire) + MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_helifire) + MCFG_SCREEN_VBLANK_DRIVER(n8080_state, screen_eof_helifire) MCFG_PALETTE_LENGTH(8 + 0x400) MCFG_PALETTE_INIT_OVERRIDE(n8080_state,helifire) diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index 1f7ac2f4501..1ee91ab2bd7 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -604,7 +604,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(NAMCOFL_HTOTAL, NAMCOFL_VTOTAL) MCFG_SCREEN_VISIBLE_AREA(0, NAMCOFL_HBSTART-1, 0, NAMCOFL_VBSTART-1) - MCFG_SCREEN_UPDATE_STATIC(namcofl) + MCFG_SCREEN_UPDATE_DRIVER(namcofl_state, screen_update_namcofl) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c index 522dca08f48..979293985d3 100644 --- a/src/mame/drivers/namcona1.c +++ b/src/mame/drivers/namcona1.c @@ -1026,7 +1026,7 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(38*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(namcona1) + MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update_namcona1) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c index fd5206f0b4b..0528ed66d20 100644 --- a/src/mame/drivers/namconb1.c +++ b/src/mame/drivers/namconb1.c @@ -1024,7 +1024,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state ) MCFG_SCREEN_REFRESH_RATE(59.7) MCFG_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL) MCFG_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1) - MCFG_SCREEN_UPDATE_STATIC(namconb1) + MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb1) MCFG_GFXDECODE(namconb1) MCFG_PALETTE_LENGTH(0x2000) @@ -1056,7 +1056,7 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state ) MCFG_SCREEN_REFRESH_RATE(59.7) MCFG_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL) MCFG_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1) - MCFG_SCREEN_UPDATE_STATIC(namconb2) + MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb2) MCFG_GFXDECODE(2) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c index aee010d139c..8b266ccdcaf 100644 --- a/src/mame/drivers/namcos1.c +++ b/src/mame/drivers/namcos1.c @@ -1111,8 +1111,8 @@ static MACHINE_CONFIG_START( ns1, namcos1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(9 + 8*8, 9 + 44*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(namcos1) - MCFG_SCREEN_VBLANK_STATIC(namcos1) + MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update_namcos1) + MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof_namcos1) MCFG_GFXDECODE(namcos1) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c index 562ec9dfecf..683d70f895b 100644 --- a/src/mame/drivers/namcos21.c +++ b/src/mame/drivers/namcos21.c @@ -1526,7 +1526,7 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT) MCFG_SCREEN_VISIBLE_AREA(0,495,0,479) - MCFG_SCREEN_UPDATE_STATIC(namcos21) + MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21) MCFG_GFXDECODE(namcos21) MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) @@ -1581,7 +1581,7 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT) MCFG_SCREEN_VISIBLE_AREA(0,495,0,479) - MCFG_SCREEN_UPDATE_STATIC(namcos21) + MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21) MCFG_GFXDECODE(namcos21) MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) @@ -1640,7 +1640,7 @@ static MACHINE_CONFIG_START( winrun, namcos21_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT) MCFG_SCREEN_VISIBLE_AREA(0,495,0,479) - MCFG_SCREEN_UPDATE_STATIC(namcos21) + MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21) MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c index dab1af6b3d5..06599622542 100644 --- a/src/mame/drivers/namcos22.c +++ b/src/mame/drivers/namcos22.c @@ -2971,7 +2971,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state ) MCFG_NVRAM_HANDLER(namcos22) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(namcos22s) + MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22s) MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE) MCFG_GFXDECODE(super) @@ -3219,7 +3219,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state ) MCFG_NVRAM_HANDLER(namcos22) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(namcos22) + MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22) MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE) MCFG_GFXDECODE(namcos22) diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index d3d4b09bb25..d9d0b24c258 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -1434,6 +1434,7 @@ public: DECLARE_MACHINE_START(s23); DECLARE_VIDEO_START(ss23); DECLARE_MACHINE_RESET(gmen); + UINT32 screen_update_ss23(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -2418,9 +2419,8 @@ VIDEO_START_MEMBER(namcos23_state,ss23) m_render.polymgr = poly_alloc(machine(), 10000, sizeof(namcos23_render_data), 0); } -static SCREEN_UPDATE_RGB32( ss23 ) +UINT32 namcos23_state::screen_update_ss23(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - namcos23_state *state = screen.machine().driver_data<namcos23_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); render_run( screen.machine(), bitmap ); @@ -2428,7 +2428,7 @@ static SCREEN_UPDATE_RGB32( ss23 ) gfx_element *gfx = screen.machine().gfx[0]; gfx->mark_all_dirty(); - state->m_bgtilemap->draw(bitmap, cliprect, 0/*flags*/, 0/*priority*/ ); /* opaque */ + m_bgtilemap->draw(bitmap, cliprect, 0/*flags*/, 0/*priority*/ ); /* opaque */ return 0; } @@ -3166,7 +3166,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(ss23) + MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23) MCFG_PALETTE_LENGTH(0x8000) @@ -3211,7 +3211,7 @@ static MACHINE_CONFIG_START( s23, namcos23_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(ss23) + MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23) MCFG_PALETTE_LENGTH(0x8000) @@ -3252,7 +3252,7 @@ static MACHINE_CONFIG_START( ss23, namcos23_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(ss23) + MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23) MCFG_PALETTE_LENGTH(0x8000) diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c index 0ade1d44ffc..04892c84b62 100644 --- a/src/mame/drivers/namcos86.c +++ b/src/mame/drivers/namcos86.c @@ -1012,8 +1012,8 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(3 + 8*8, 3 + 44*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(namcos86) - MCFG_SCREEN_VBLANK_STATIC(namcos86) + MCFG_SCREEN_UPDATE_DRIVER(namcos86_state, screen_update_namcos86) + MCFG_SCREEN_VBLANK_DRIVER(namcos86_state, screen_eof_namcos86) MCFG_GFXDECODE(namcos86) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index 42d625a10c6..22be4cbddfd 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -2526,7 +2526,7 @@ static MACHINE_CONFIG_START( naomi_aw_base, dc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_STATIC(dc) + MCFG_SCREEN_UPDATE_DRIVER(dc_state, screen_update_dc) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c index 8a856aa4f86..3832af295c6 100644 --- a/src/mame/drivers/naughtyb.c +++ b/src/mame/drivers/naughtyb.c @@ -431,7 +431,7 @@ static MACHINE_CONFIG_START( naughtyb, naughtyb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(naughtyb) + MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb) MCFG_GFXDECODE(naughtyb) MCFG_PALETTE_LENGTH(256) @@ -463,7 +463,7 @@ static MACHINE_CONFIG_START( popflame, naughtyb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(naughtyb) + MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb) MCFG_GFXDECODE(naughtyb) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c index c2daaaea083..5349bfd47d5 100644 --- a/src/mame/drivers/nbmj8688.c +++ b/src/mame/drivers/nbmj8688.c @@ -2921,7 +2921,7 @@ static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(mbmj8688) + MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688) MCFG_PALETTE_LENGTH(4096) @@ -3037,21 +3037,21 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(mbmj8688) + MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688) MCFG_SCREEN_ADD("lcd0", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(480, 64) MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1) - MCFG_SCREEN_UPDATE_STATIC(mbmj8688_lcd0) + MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688_lcd0) MCFG_SCREEN_ADD("lcd1", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(480, 64) MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1) - MCFG_SCREEN_UPDATE_STATIC(mbmj8688_lcd1) + MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688_lcd1) MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_16bit_LCD) diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c index 04321f200f0..63e54d66be7 100644 --- a/src/mame/drivers/nbmj8891.c +++ b/src/mame/drivers/nbmj8891.c @@ -2612,7 +2612,7 @@ static MACHINE_CONFIG_START( gionbana, nbmj8891_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1) - MCFG_SCREEN_UPDATE_STATIC(nbmj8891) + MCFG_SCREEN_UPDATE_DRIVER(nbmj8891_state, screen_update_nbmj8891) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/nbmj8900.c b/src/mame/drivers/nbmj8900.c index 3cae4e8be78..869e9d4ab56 100644 --- a/src/mame/drivers/nbmj8900.c +++ b/src/mame/drivers/nbmj8900.c @@ -318,7 +318,7 @@ static MACHINE_CONFIG_START( ohpaipee, nbmj8900_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1) - MCFG_SCREEN_UPDATE_STATIC(nbmj8900) + MCFG_SCREEN_UPDATE_DRIVER(nbmj8900_state, screen_update_nbmj8900) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c index fcc462ceab9..574793967b6 100644 --- a/src/mame/drivers/nbmj8991.c +++ b/src/mame/drivers/nbmj8991.c @@ -1481,7 +1481,7 @@ static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(1024, 512) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(nbmj8991_type1) + MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type1) MCFG_PALETTE_LENGTH(256) @@ -1514,7 +1514,7 @@ static MACHINE_CONFIG_START( nbmjdrv2, nbmj8991_state ) // pstadium MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(1024, 512) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(nbmj8991_type2) + MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type2) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c index 93c150bca6a..73e0c305fd6 100644 --- a/src/mame/drivers/nbmj9195.c +++ b/src/mame/drivers/nbmj9195.c @@ -3183,7 +3183,7 @@ static MACHINE_CONFIG_START( NBMJDRV1, nbmj9195_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(1024, 512) /* no way this is correct */ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(nbmj9195) + MCFG_SCREEN_UPDATE_DRIVER(nbmj9195_state, screen_update_nbmj9195) MCFG_PALETTE_LENGTH(256) @@ -3220,7 +3220,7 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV3, NBMJDRV1 ) MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nbmj9195_nb22090) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(nbmj9195) + MCFG_SCREEN_UPDATE_DRIVER(nbmj9195_state, screen_update_nbmj9195) MACHINE_CONFIG_END diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c index d5143eb6309..576759e1c79 100644 --- a/src/mame/drivers/nemesis.c +++ b/src/mame/drivers/nemesis.c @@ -1570,7 +1570,7 @@ static MACHINE_CONFIG_START( nemesis, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -1613,7 +1613,7 @@ static MACHINE_CONFIG_START( gx400, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -1655,7 +1655,7 @@ static MACHINE_CONFIG_START( konamigt, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -1695,7 +1695,7 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -1739,7 +1739,7 @@ static MACHINE_CONFIG_START( salamand, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((264-256)*125/2)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -1785,7 +1785,7 @@ static MACHINE_CONFIG_START( blkpnthr, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -1827,7 +1827,7 @@ static MACHINE_CONFIG_START( citybomb, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -1873,7 +1873,7 @@ static MACHINE_CONFIG_START( nyanpani, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -1917,7 +1917,7 @@ static MACHINE_CONFIG_START( hcrash, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) @@ -2664,7 +2664,7 @@ static MACHINE_CONFIG_START( bubsys, nemesis_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nemesis) + MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE(nemesis) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index 72f2395f847..c72a9963ec6 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -1375,7 +1375,7 @@ static MACHINE_CONFIG_START( neogeo, neogeo_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(neogeo) + MCFG_SCREEN_UPDATE_DRIVER(neogeo_state, screen_update_neogeo) /* audio hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c index 6e0392789b7..7620a2bf101 100644 --- a/src/mame/drivers/neoprint.c +++ b/src/mame/drivers/neoprint.c @@ -55,6 +55,8 @@ public: DECLARE_DRIVER_INIT(nprsp); virtual void video_start(); DECLARE_MACHINE_RESET(nprsp); + UINT32 screen_update_neoprint(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_nprsp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -109,7 +111,7 @@ static void draw_layer(running_machine &machine, bitmap_ind16 &bitmap,const rect } } -SCREEN_UPDATE_IND16(neoprint) +UINT32 neoprint_state::screen_update_neoprint(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); @@ -119,7 +121,7 @@ SCREEN_UPDATE_IND16(neoprint) return 0; } -SCREEN_UPDATE_IND16(nprsp) +UINT32 neoprint_state::screen_update_nprsp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); @@ -479,7 +481,7 @@ static MACHINE_CONFIG_START( neoprint, neoprint_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(neoprint) + MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_neoprint) MCFG_PALETTE_LENGTH(0x10000) @@ -519,7 +521,7 @@ static MACHINE_CONFIG_START( nprsp, neoprint_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nprsp) + MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_nprsp) MCFG_MACHINE_RESET_OVERRIDE(neoprint_state,nprsp) diff --git a/src/mame/drivers/news.c b/src/mame/drivers/news.c index 45d04f348be..d3621628ab9 100644 --- a/src/mame/drivers/news.c +++ b/src/mame/drivers/news.c @@ -139,7 +139,7 @@ static MACHINE_CONFIG_START( news, news_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(news) + MCFG_SCREEN_UPDATE_DRIVER(news_state, screen_update_news) MCFG_GFXDECODE(news) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/nexus3d.c b/src/mame/drivers/nexus3d.c index 4c0a2bb7f02..532b5dc2d7d 100644 --- a/src/mame/drivers/nexus3d.c +++ b/src/mame/drivers/nexus3d.c @@ -50,6 +50,7 @@ public: DECLARE_DRIVER_INIT(nexus3d); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_nexus3d(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -183,7 +184,7 @@ void nexus3d_state::video_start() } -SCREEN_UPDATE_RGB32(nexus3d) +UINT32 nexus3d_state::screen_update_nexus3d(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } @@ -204,7 +205,7 @@ static MACHINE_CONFIG_START( nexus3d, nexus3d_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(nexus3d) + MCFG_SCREEN_UPDATE_DRIVER(nexus3d_state, screen_update_nexus3d) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/nightgal.c b/src/mame/drivers/nightgal.c index 96faa64162d..1337badb70a 100644 --- a/src/mame/drivers/nightgal.c +++ b/src/mame/drivers/nightgal.c @@ -80,6 +80,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -95,14 +96,13 @@ void nightgal_state::video_start() save_item(NAME(m_blit_buffer)); } -static SCREEN_UPDATE_IND16( nightgal ) +UINT32 nightgal_state::screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - nightgal_state *state = screen.machine().driver_data<nightgal_state>(); int x, y; for (y = cliprect.min_y; y <= cliprect.max_y; ++y) { - UINT8 *src = &state->m_blit_buffer[y * 512 / 2 + cliprect.min_x]; + UINT8 *src = &m_blit_buffer[y * 512 / 2 + cliprect.min_x]; UINT16 *dst = &bitmap.pix16(y, cliprect.min_x); for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) @@ -883,7 +883,7 @@ static MACHINE_CONFIG_START( royalqn, nightgal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(nightgal) + MCFG_SCREEN_UPDATE_DRIVER(nightgal_state, screen_update_nightgal) MCFG_PALETTE_LENGTH(0x10) diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c index cfc9dbb8b74..86dcb645e81 100644 --- a/src/mame/drivers/ninjakd2.c +++ b/src/mame/drivers/ninjakd2.c @@ -951,8 +951,8 @@ static MACHINE_CONFIG_START( ninjakd2, ninjakd2_state ) MCFG_SCREEN_REFRESH_RATE(59.61) /* verified on pcb */ MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(ninjakd2) - MCFG_SCREEN_VBLANK_STATIC(ninjakd2) + MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_ninjakd2) + MCFG_SCREEN_VBLANK_DRIVER(ninjakd2_state, screen_eof_ninjakd2) MCFG_GFXDECODE(ninjakd2) MCFG_PALETTE_LENGTH(0x300) @@ -1021,7 +1021,7 @@ static MACHINE_CONFIG_DERIVED( robokid, mnight ) MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,robokid) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(robokid) + MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_robokid) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( omegaf, robokid ) @@ -1036,7 +1036,7 @@ static MACHINE_CONFIG_DERIVED( omegaf, robokid ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,omegaf) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(omegaf) + MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_omegaf) MACHINE_CONFIG_END diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c index 62c138b5a0b..d3d1ce590f3 100644 --- a/src/mame/drivers/ninjaw.c +++ b/src/mame/drivers/ninjaw.c @@ -867,21 +867,21 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(ninjaw_left) + MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_left) MCFG_SCREEN_ADD("mscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(ninjaw_middle) + MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_middle) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(ninjaw_right) + MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_right) MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l) @@ -947,21 +947,21 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(ninjaw_left) + MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_left) MCFG_SCREEN_ADD("mscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(ninjaw_middle) + MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_middle) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(ninjaw_right) + MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_right) MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l) diff --git a/src/mame/drivers/nitedrvr.c b/src/mame/drivers/nitedrvr.c index ba33762c1c5..91c4655c087 100644 --- a/src/mame/drivers/nitedrvr.c +++ b/src/mame/drivers/nitedrvr.c @@ -151,7 +151,7 @@ static MACHINE_CONFIG_START( nitedrvr, nitedrvr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(nitedrvr) + MCFG_SCREEN_UPDATE_DRIVER(nitedrvr_state, screen_update_nitedrvr) MCFG_GFXDECODE(nitedrvr) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c index 90303d19f6e..6ce4865a20e 100644 --- a/src/mame/drivers/niyanpai.c +++ b/src/mame/drivers/niyanpai.c @@ -960,7 +960,7 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(1024, 512) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) - MCFG_SCREEN_UPDATE_STATIC(niyanpai) + MCFG_SCREEN_UPDATE_DRIVER(niyanpai_state, screen_update_niyanpai) MCFG_PALETTE_LENGTH(256*3) diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c index 28a5b62ed1f..a03015eb671 100644 --- a/src/mame/drivers/nmg5.c +++ b/src/mame/drivers/nmg5.c @@ -275,6 +275,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -884,46 +885,45 @@ static void draw_bitmap( running_machine &machine, bitmap_ind16 &bitmap ) } -static SCREEN_UPDATE_IND16( nmg5 ) +UINT32 nmg5_state::screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - nmg5_state *state = screen.machine().driver_data<nmg5_state>(); - state->m_bg_tilemap->set_scrolly(0, state->m_scroll_ram[3] + 9); - state->m_bg_tilemap->set_scrollx(0, state->m_scroll_ram[2] + 3); - state->m_fg_tilemap->set_scrolly(0, state->m_scroll_ram[1] + 9); - state->m_fg_tilemap->set_scrollx(0, state->m_scroll_ram[0] - 1); + m_bg_tilemap->set_scrolly(0, m_scroll_ram[3] + 9); + m_bg_tilemap->set_scrollx(0, m_scroll_ram[2] + 3); + m_fg_tilemap->set_scrolly(0, m_scroll_ram[1] + 9); + m_fg_tilemap->set_scrollx(0, m_scroll_ram[0] - 1); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - if (state->m_priority_reg == 0) + if (m_priority_reg == 0) { - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); draw_bitmap(screen.machine(), bitmap); } - else if (state->m_priority_reg == 1) + else if (m_priority_reg == 1) { draw_bitmap(screen.machine(), bitmap); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); } - else if (state->m_priority_reg == 2) + else if (m_priority_reg == 2) { - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); draw_bitmap(screen.machine(), bitmap); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); } - else if (state->m_priority_reg == 3) + else if (m_priority_reg == 3) { - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); draw_bitmap(screen.machine(), bitmap); } - else if (state->m_priority_reg == 7) + else if (m_priority_reg == 7) { - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); draw_bitmap(screen.machine(), bitmap); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); } return 0; } @@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(nmg5) + MCFG_SCREEN_UPDATE_DRIVER(nmg5_state, screen_update_nmg5) MCFG_GFXDECODE(nmg5) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c index 62dd24b6c75..9ff8e5d15ef 100644 --- a/src/mame/drivers/nmk16.c +++ b/src/mame/drivers/nmk16.c @@ -3564,8 +3564,8 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tharrier) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tharrier) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(tharrier) MCFG_PALETTE_LENGTH(512) @@ -3607,8 +3607,8 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(manybloc) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_manybloc) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(tharrier) MCFG_PALETTE_LENGTH(512) @@ -3648,8 +3648,8 @@ static MACHINE_CONFIG_START( mustang, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3691,8 +3691,8 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3723,8 +3723,8 @@ static MACHINE_CONFIG_START( bioship, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bioship) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bioship) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(bioship) MCFG_PALETTE_LENGTH(1024) @@ -3764,8 +3764,8 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3808,8 +3808,8 @@ static MACHINE_CONFIG_START( vandykeb, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3839,8 +3839,8 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3884,8 +3884,8 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden sou MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3913,8 +3913,8 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3956,8 +3956,8 @@ static MACHINE_CONFIG_START( ssmissin, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3988,8 +3988,8 @@ static MACHINE_CONFIG_START( strahl, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(strahl) - MCFG_SCREEN_VBLANK_STATIC(strahl) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_strahl) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_strahl) MCFG_GFXDECODE(strahl) MCFG_PALETTE_LENGTH(1024) @@ -4029,8 +4029,8 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -4071,8 +4071,8 @@ static MACHINE_CONFIG_START( macross, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -4112,8 +4112,8 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -4153,8 +4153,8 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gunnail) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -4196,8 +4196,8 @@ static MACHINE_CONFIG_START( macross2, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(gunnail) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) @@ -4238,8 +4238,8 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tdragon2) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tdragon2) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) @@ -4279,8 +4279,8 @@ static MACHINE_CONFIG_START( raphero, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tdragon2) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tdragon2) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) @@ -4317,8 +4317,8 @@ static MACHINE_CONFIG_START( bjtwin, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bjtwin) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bjtwin) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(bjtwin) MCFG_PALETTE_LENGTH(1024) @@ -4826,8 +4826,8 @@ static MACHINE_CONFIG_START( stagger1, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(afega) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_afega) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(stagger1) MCFG_PALETTE_LENGTH(768) @@ -4852,7 +4852,7 @@ static MACHINE_CONFIG_DERIVED( redhawki, stagger1 ) /* basic machine hardware */ /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(redhawki) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_redhawki) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( redhawkb, stagger1 ) @@ -4861,7 +4861,7 @@ static MACHINE_CONFIG_DERIVED( redhawkb, stagger1 ) /* video hardware */ MCFG_GFXDECODE(redhawkb) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(redhawkb) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_redhawkb) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( grdnstrm, stagger1 ) @@ -4872,7 +4872,7 @@ static MACHINE_CONFIG_DERIVED( grdnstrm, stagger1 ) MCFG_GFXDECODE(grdnstrm) MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(firehawk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_firehawk) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( grdnstrmk, stagger1 ) /* Side by side with PCB, the music seems too fast as well */ @@ -4892,7 +4892,7 @@ static MACHINE_CONFIG_DERIVED( popspops, grdnstrm ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(bubl2000) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bubl2000) MACHINE_CONFIG_END static MACHINE_CONFIG_START( firehawk, nmk16_state ) @@ -4911,8 +4911,8 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(firehawk) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_firehawk) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(grdnstrm) MCFG_PALETTE_LENGTH(768) @@ -4946,8 +4946,8 @@ static MACHINE_CONFIG_START( twinactn, nmk16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(macross) - MCFG_SCREEN_VBLANK_STATIC(nmk) + MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross) + MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c index 1c2de5cc52c..943b6462ff7 100644 --- a/src/mame/drivers/norautp.c +++ b/src/mame/drivers/norautp.c @@ -563,9 +563,8 @@ void norautp_state::video_start() } -static SCREEN_UPDATE_IND16( norautp ) +UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - norautp_state *state = screen.machine().driver_data<norautp_state>(); int x, y, count; count = 0; @@ -579,8 +578,8 @@ static SCREEN_UPDATE_IND16( norautp ) { for(x = 0; x < 16; x++) { - int tile = state->m_np_vram[count] & 0x3f; - int colour = (state->m_np_vram[count] & 0xc0) >> 6; + int tile = m_np_vram[count] & 0x3f; + int colour = (m_np_vram[count] & 0xc0) >> 6; drawgfx_opaque(bitmap,cliprect, screen.machine().gfx[1], tile, colour, 0, 0, (x * 32) + 8, y * 32); @@ -591,8 +590,8 @@ static SCREEN_UPDATE_IND16( norautp ) { for(x = 0; x < 32; x++) { - int tile = state->m_np_vram[count] & 0x3f; - int colour = (state->m_np_vram[count] & 0xc0) >> 6; + int tile = m_np_vram[count] & 0x3f; + int colour = (m_np_vram[count] & 0xc0) >> 6; drawgfx_opaque(bitmap,cliprect, screen.machine().gfx[0], tile, colour, 0, 0, x * 16, y * 32); @@ -1265,7 +1264,7 @@ static MACHINE_CONFIG_START( noraut_base, norautp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(2*16, 31*16-1, (0*16) + 8, 16*16-1) /* the hardware clips the top 8 pixels */ - MCFG_SCREEN_UPDATE_STATIC(norautp) + MCFG_SCREEN_UPDATE_DRIVER(norautp_state, screen_update_norautp) MCFG_GFXDECODE(norautp) diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c index 8348dbaf4e4..928472bc3ab 100644 --- a/src/mame/drivers/nova2001.c +++ b/src/mame/drivers/nova2001.c @@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( nova2001, nova2001_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(nova2001) + MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_nova2001) MCFG_GFXDECODE(nova2001) MCFG_PALETTE_LENGTH(0x200) @@ -731,7 +731,7 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(ninjakun) + MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_ninjakun) MCFG_GFXDECODE(ninjakun) MCFG_PALETTE_LENGTH(0x300) @@ -763,7 +763,7 @@ static MACHINE_CONFIG_START( pkunwar, nova2001_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(pkunwar) + MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_pkunwar) MCFG_GFXDECODE(pkunwar) MCFG_PALETTE_LENGTH(0x200) @@ -802,7 +802,7 @@ static MACHINE_CONFIG_START( raiders5, nova2001_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(raiders5) + MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_raiders5) MCFG_GFXDECODE(raiders5) MCFG_PALETTE_LENGTH(0x300) diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c index 20eb5d3cedf..33f0459c18c 100644 --- a/src/mame/drivers/nsmpoker.c +++ b/src/mame/drivers/nsmpoker.c @@ -82,6 +82,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -127,10 +128,9 @@ void nsmpoker_state::video_start() } -static SCREEN_UPDATE_IND16( nsmpoker ) +UINT32 nsmpoker_state::screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - nsmpoker_state *state = screen.machine().driver_data<nsmpoker_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -406,7 +406,7 @@ static MACHINE_CONFIG_START( nsmpoker, nsmpoker_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(nsmpoker) + MCFG_SCREEN_UPDATE_DRIVER(nsmpoker_state, screen_update_nsmpoker) MCFG_GFXDECODE(nsmpoker) diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c index 25eb08ad126..fadaef38263 100644 --- a/src/mame/drivers/nwk-tr.c +++ b/src/mame/drivers/nwk-tr.c @@ -254,6 +254,7 @@ public: DECLARE_DRIVER_INIT(nwktr); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -273,9 +274,8 @@ static void voodoo_vblank_0(device_t *device, int param) } -static SCREEN_UPDATE_RGB32( nwktr ) +UINT32 nwktr_state::screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - nwktr_state *state = screen.machine().driver_data<nwktr_state>(); device_t *voodoo = screen.machine().device("voodoo"); device_t *k001604 = screen.machine().device("k001604"); @@ -288,8 +288,8 @@ static SCREEN_UPDATE_RGB32( nwktr ) k001604_draw_front_layer(k001604, bitmap, tilemap_rect); - draw_7segment_led(bitmap, 3, 3, state->m_led_reg0); - draw_7segment_led(bitmap, 9, 3, state->m_led_reg1); + draw_7segment_led(bitmap, 3, 3, m_led_reg0); + draw_7segment_led(bitmap, 9, 3, m_led_reg1); return 0; } @@ -745,7 +745,7 @@ static MACHINE_CONFIG_START( nwktr, nwktr_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 384) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_STATIC(nwktr) + MCFG_SCREEN_UPDATE_DRIVER(nwktr_state, screen_update_nwktr) MCFG_PALETTE_LENGTH(65536) diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c index b1b9e6ae520..124cf2528ba 100644 --- a/src/mame/drivers/nycaptor.c +++ b/src/mame/drivers/nycaptor.c @@ -854,7 +854,7 @@ static MACHINE_CONFIG_START( nycaptor, nycaptor_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nycaptor) + MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor) MCFG_GFXDECODE(nycaptor) MCFG_PALETTE_LENGTH(512) @@ -912,7 +912,7 @@ static MACHINE_CONFIG_START( cyclshtg, nycaptor_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nycaptor) + MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor) MCFG_GFXDECODE(nycaptor) MCFG_PALETTE_LENGTH(512) @@ -966,7 +966,7 @@ static MACHINE_CONFIG_START( bronx, nycaptor_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(nycaptor) + MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor) MCFG_GFXDECODE(nycaptor) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c index ca6729ea27d..511f8c86d98 100644 --- a/src/mame/drivers/offtwall.c +++ b/src/mame/drivers/offtwall.c @@ -417,7 +417,7 @@ static MACHINE_CONFIG_START( offtwall, offtwall_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a VAD chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(offtwall) + MCFG_SCREEN_UPDATE_DRIVER(offtwall_state, screen_update_offtwall) MCFG_VIDEO_START_OVERRIDE(offtwall_state,offtwall) diff --git a/src/mame/drivers/ohmygod.c b/src/mame/drivers/ohmygod.c index 06d70a44a84..9c1fcf57db6 100644 --- a/src/mame/drivers/ohmygod.c +++ b/src/mame/drivers/ohmygod.c @@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( ohmygod, ohmygod_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 0*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(ohmygod) + MCFG_SCREEN_UPDATE_DRIVER(ohmygod_state, screen_update_ohmygod) MCFG_GFXDECODE(ohmygod) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c index e8bca062d3c..59877c80645 100644 --- a/src/mame/drivers/ojankohs.c +++ b/src/mame/drivers/ojankohs.c @@ -868,7 +868,7 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(ojankohs) + MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs) MCFG_GFXDECODE(ojankohs) MCFG_PALETTE_LENGTH(1024) @@ -904,7 +904,7 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(ojankohs) + MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs) MCFG_GFXDECODE(ojankohs) MCFG_PALETTE_LENGTH(1024) @@ -941,7 +941,7 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(ojankohs) + MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs) MCFG_GFXDECODE(ojankohs) MCFG_PALETTE_LENGTH(1024) @@ -977,7 +977,7 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 248-1) - MCFG_SCREEN_UPDATE_STATIC(ojankoc) + MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankoc) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c index c3f725dbf48..9df89ebf99b 100644 --- a/src/mame/drivers/olibochu.c +++ b/src/mame/drivers/olibochu.c @@ -86,6 +86,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -226,10 +227,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } } -static SCREEN_UPDATE_IND16( olibochu ) +UINT32 olibochu_state::screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - olibochu_state *state = screen.machine().driver_data<olibochu_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); return 0; } @@ -463,7 +463,7 @@ static MACHINE_CONFIG_START( olibochu, olibochu_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(olibochu) + MCFG_SCREEN_UPDATE_DRIVER(olibochu_state, screen_update_olibochu) MCFG_GFXDECODE(olibochu) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c index 64ad5bfab9c..bf8ffe5cb35 100644 --- a/src/mame/drivers/oneshot.c +++ b/src/mame/drivers/oneshot.c @@ -384,7 +384,7 @@ static MACHINE_CONFIG_START( oneshot, oneshot_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 20*16-1, 0*16, 15*16-1) - MCFG_SCREEN_UPDATE_STATIC(oneshot) + MCFG_SCREEN_UPDATE_DRIVER(oneshot_state, screen_update_oneshot) MCFG_GFXDECODE(oneshot) MCFG_PALETTE_LENGTH(0x400) @@ -406,7 +406,7 @@ static MACHINE_CONFIG_DERIVED( maddonna, oneshot ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(maddonna) // no crosshair + MCFG_SCREEN_UPDATE_DRIVER(oneshot_state, screen_update_maddonna) MACHINE_CONFIG_END diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c index 044788ec60f..e2f99c21ff8 100644 --- a/src/mame/drivers/onetwo.c +++ b/src/mame/drivers/onetwo.c @@ -75,6 +75,7 @@ public: TILE_GET_INFO_MEMBER(get_fg_tile_info); virtual void machine_start(); virtual void video_start(); + UINT32 screen_update_onetwo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -100,10 +101,9 @@ void onetwo_state::video_start() m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } -static SCREEN_UPDATE_IND16( onetwo ) +UINT32 onetwo_state::screen_update_onetwo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - onetwo_state *state = screen.machine().driver_data<onetwo_state>(); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -375,7 +375,7 @@ static MACHINE_CONFIG_START( onetwo, onetwo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(16)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(onetwo) + MCFG_SCREEN_UPDATE_DRIVER(onetwo_state, screen_update_onetwo) MCFG_GFXDECODE(onetwo) MCFG_PALETTE_LENGTH(0x80) diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c index adb77d1099d..5d521aabf18 100644 --- a/src/mame/drivers/opwolf.c +++ b/src/mame/drivers/opwolf.c @@ -750,7 +750,7 @@ static MACHINE_CONFIG_START( opwolf, opwolf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(opwolf) + MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf) MCFG_GFXDECODE(opwolf) MCFG_PALETTE_LENGTH(8192) @@ -803,7 +803,7 @@ static MACHINE_CONFIG_START( opwolfb, opwolf_state ) /* OSC clocks unknown for t MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(opwolf) + MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf) MCFG_GFXDECODE(opwolfb) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c index 0745052ffd9..207f124c068 100644 --- a/src/mame/drivers/orbit.c +++ b/src/mame/drivers/orbit.c @@ -307,7 +307,7 @@ static MACHINE_CONFIG_START( orbit, orbit_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2, 384*2, 0, 256*2, 261*2, 0, 240*2) - MCFG_SCREEN_UPDATE_STATIC(orbit) + MCFG_SCREEN_UPDATE_DRIVER(orbit_state, screen_update_orbit) MCFG_GFXDECODE(orbit) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c index 2636630505e..894d211396b 100644 --- a/src/mame/drivers/othldrby.c +++ b/src/mame/drivers/othldrby.c @@ -251,8 +251,8 @@ static MACHINE_CONFIG_START( othldrby, othldrby_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(othldrby) - MCFG_SCREEN_VBLANK_STATIC(othldrby) + MCFG_SCREEN_UPDATE_DRIVER(othldrby_state, screen_update_othldrby) + MCFG_SCREEN_VBLANK_DRIVER(othldrby_state, screen_eof_othldrby) MCFG_GFXDECODE(othldrby) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c index 4ee5bd44b36..6c924025571 100644 --- a/src/mame/drivers/othunder.c +++ b/src/mame/drivers/othunder.c @@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( othunder, othunder_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(othunder) + MCFG_SCREEN_UPDATE_DRIVER(othunder_state, screen_update_othunder) MCFG_GFXDECODE(othunder) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c index 6120863c70b..3396ba13473 100644 --- a/src/mame/drivers/overdriv.c +++ b/src/mame/drivers/overdriv.c @@ -355,7 +355,7 @@ static MACHINE_CONFIG_START( overdriv, overdriv_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(64*8, 40*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 0*8, 32*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(overdriv) + MCFG_SCREEN_UPDATE_DRIVER(overdriv_state, screen_update_overdriv) // MCFG_GFXDECODE(overdriv) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c index 968b5f726b6..e8ade835d96 100644 --- a/src/mame/drivers/pacland.c +++ b/src/mame/drivers/pacland.c @@ -432,7 +432,7 @@ static MACHINE_CONFIG_START( pacland, pacland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(3*8, 39*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pacland) + MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update_pacland) MCFG_GFXDECODE(pacland) MCFG_PALETTE_LENGTH(256*4+256*4+64*16) diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c index da584f40be7..713627c03fc 100644 --- a/src/mame/drivers/pacman.c +++ b/src/mame/drivers/pacman.c @@ -3303,7 +3303,7 @@ static MACHINE_CONFIG_START( pacman, pacman_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(pacman) + MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman) MCFG_PALETTE_INIT_OVERRIDE(pacman_state,pacman) MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman) @@ -3456,7 +3456,7 @@ static MACHINE_CONFIG_DERIVED( s2650games, pacman ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_STATIC(s2650games) + MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_s2650games) MCFG_VIDEO_START_OVERRIDE(pacman_state,s2650games) diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c index 62836df34af..6038214b487 100644 --- a/src/mame/drivers/pandoras.c +++ b/src/mame/drivers/pandoras.c @@ -366,7 +366,7 @@ static MACHINE_CONFIG_START( pandoras, pandoras_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pandoras) + MCFG_SCREEN_UPDATE_DRIVER(pandoras_state, screen_update_pandoras) MCFG_GFXDECODE(pandoras) MCFG_PALETTE_LENGTH(16*16+16*16) diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c index 61d36faa83f..56de7c7ffa5 100644 --- a/src/mame/drivers/panicr.c +++ b/src/mame/drivers/panicr.c @@ -98,6 +98,7 @@ public: TILE_GET_INFO_MEMBER(get_txttile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -247,15 +248,14 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re } } -static SCREEN_UPDATE_IND16( panicr) +UINT32 panicr_state::screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - panicr_state *state = screen.machine().driver_data<panicr_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); - state->m_txttilemap->mark_all_dirty(); - state->m_bgtilemap->set_scrollx(0, state->m_scrollx); - state->m_bgtilemap->draw(bitmap, cliprect, 0,0); + m_txttilemap->mark_all_dirty(); + m_bgtilemap->set_scrollx(0, m_scrollx); + m_bgtilemap->draw(bitmap, cliprect, 0,0); draw_sprites(screen.machine(),bitmap,cliprect); - state->m_txttilemap->draw(bitmap, cliprect, 0,0); + m_txttilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -515,7 +515,7 @@ static MACHINE_CONFIG_START( panicr, panicr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(panicr) + MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update_panicr) MCFG_GFXDECODE(panicr) MCFG_PALETTE_LENGTH(256*3) diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c index 0263c394fa0..4e3ecc8e259 100644 --- a/src/mame/drivers/paradise.c +++ b/src/mame/drivers/paradise.c @@ -717,7 +717,7 @@ static MACHINE_CONFIG_START( paradise, paradise_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-1-16) - MCFG_SCREEN_UPDATE_STATIC(paradise) + MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise) MCFG_GFXDECODE(paradise) MCFG_PALETTE_LENGTH(0x800 + 16) @@ -749,7 +749,7 @@ static MACHINE_CONFIG_DERIVED( torus, paradise ) MCFG_GFXDECODE(torus) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(torus) + MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_torus) MCFG_DEVICE_REMOVE("oki2") MACHINE_CONFIG_END @@ -764,7 +764,7 @@ static MACHINE_CONFIG_DERIVED( madball, paradise ) MCFG_GFXDECODE(madball) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(madball) + MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_madball) MCFG_DEVICE_REMOVE("oki2") MACHINE_CONFIG_END diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c index 93188ac187a..f410a8a5c8e 100644 --- a/src/mame/drivers/parodius.c +++ b/src/mame/drivers/parodius.c @@ -304,7 +304,7 @@ static MACHINE_CONFIG_START( parodius, parodius_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(parodius) + MCFG_SCREEN_UPDATE_DRIVER(parodius_state, screen_update_parodius) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c index 8192ac4b250..3d1be994719 100644 --- a/src/mame/drivers/pasha2.c +++ b/src/mame/drivers/pasha2.c @@ -109,6 +109,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_pasha2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -349,9 +350,8 @@ void pasha2_state::video_start() save_item(NAME(m_bitmap1)); } -static SCREEN_UPDATE_IND16( pasha2 ) +UINT32 pasha2_state::screen_update_pasha2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - pasha2_state *state = screen.machine().driver_data<pasha2_state>(); int x, y, count; int color; @@ -364,10 +364,10 @@ static SCREEN_UPDATE_IND16( pasha2 ) { if (x * 2 < cliprect.max_x) { - color = (state->m_bitmap0[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8; + color = (m_bitmap0[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8; bitmap.pix16(y, x * 2 + 0) = color + 0x100; - color = state->m_bitmap0[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff; + color = m_bitmap0[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff; bitmap.pix16(y, x * 2 + 1) = color + 0x100; } @@ -382,11 +382,11 @@ static SCREEN_UPDATE_IND16( pasha2 ) { if (x * 2 < cliprect.max_x) { - color = state->m_bitmap1[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff; + color = m_bitmap1[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff; if (color != 0) bitmap.pix16(y, x * 2 + 1) = color; - color = (state->m_bitmap1[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8; + color = (m_bitmap1[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8; if (color != 0) bitmap.pix16(y, x * 2 + 0) = color; } @@ -428,7 +428,7 @@ static MACHINE_CONFIG_START( pasha2, pasha2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(pasha2) + MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/pass.c b/src/mame/drivers/pass.c index d7c0726bf18..646a19ed181 100644 --- a/src/mame/drivers/pass.c +++ b/src/mame/drivers/pass.c @@ -249,7 +249,7 @@ static MACHINE_CONFIG_START( pass, pass_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pass) + MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass) MCFG_PALETTE_LENGTH(0x200) MCFG_GFXDECODE(pass) diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c index 6c423a4fb4b..a16b38d15c4 100644 --- a/src/mame/drivers/pastelg.c +++ b/src/mame/drivers/pastelg.c @@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( pastelg, pastelg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(pastelg) + MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg) MCFG_PALETTE_LENGTH(32) @@ -477,7 +477,7 @@ static MACHINE_CONFIG_START( threeds, pastelg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_STATIC(pastelg) + MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c index 63eedeec830..385c60ee525 100644 --- a/src/mame/drivers/pbaction.c +++ b/src/mame/drivers/pbaction.c @@ -298,7 +298,7 @@ static MACHINE_CONFIG_START( pbaction, pbaction_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pbaction) + MCFG_SCREEN_UPDATE_DRIVER(pbaction_state, screen_update_pbaction) MCFG_GFXDECODE(pbaction) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c index 03e78f4a69e..83cb7d8d8eb 100644 --- a/src/mame/drivers/pcktgal.c +++ b/src/mame/drivers/pcktgal.c @@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( pcktgal, pcktgal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pcktgal) + MCFG_SCREEN_UPDATE_DRIVER(pcktgal_state, screen_update_pcktgal) MCFG_GFXDECODE(pcktgal) MCFG_PALETTE_LENGTH(512) @@ -262,7 +262,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( bootleg, pcktgal ) MCFG_GFXDECODE(bootleg) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(pcktgalb) + MCFG_SCREEN_UPDATE_DRIVER(pcktgal_state, screen_update_pcktgalb) MACHINE_CONFIG_END /***************************************************************************/ diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c index 2ebc6d97266..9ef43239469 100644 --- a/src/mame/drivers/pcxt.c +++ b/src/mame/drivers/pcxt.c @@ -124,14 +124,14 @@ public: DECLARE_DRIVER_INIT(tetriskr); DECLARE_DRIVER_INIT(filetto); virtual void machine_reset(); + UINT32 screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; -static SCREEN_UPDATE_RGB32( tetriskr ) +UINT32 pcxt_state::screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pcxt_state *state = screen.machine().driver_data<pcxt_state>(); int x,y; int yi; - const UINT8 *bg_rom = state->memregion("gfx2")->base(); + const UINT8 *bg_rom = memregion("gfx2")->base(); //popmessage("%04x",m_start_offs); @@ -151,7 +151,7 @@ static SCREEN_UPDATE_RGB32( tetriskr ) color = 0; /* TODO: first byte seems bogus? */ for(pen_i = 0;pen_i<4;pen_i++) - color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+state->m_bg_bank*0x2000+1] >> (7-xi)) & 1) << pen_i; + color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+m_bg_bank*0x2000+1] >> (7-xi)) & 1) << pen_i; if(cliprect.contains(x*8+xi, y*8+yi)) bitmap.pix32(y*8+yi, x*8+xi) = screen.machine().pens[color]; @@ -766,7 +766,7 @@ static MACHINE_CONFIG_DERIVED( tetriskr, filetto ) MCFG_DEVICE_MODIFY("screen") MCFG_VIDEO_START(pc_cga_superimpose) - MCFG_SCREEN_UPDATE_STATIC(tetriskr) + MCFG_SCREEN_UPDATE_DRIVER(pcxt_state, screen_update_tetriskr) MCFG_DEVICE_REMOVE("voice") MACHINE_CONFIG_END diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c index 2588e5c61d7..9e9bc6014b6 100644 --- a/src/mame/drivers/pengo.c +++ b/src/mame/drivers/pengo.c @@ -391,7 +391,7 @@ static MACHINE_CONFIG_START( pengo, pengo_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(pacman) + MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman) MCFG_PALETTE_INIT_OVERRIDE(pengo_state,pacman) MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo) diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c index 47b790f06ad..e18aa67380f 100644 --- a/src/mame/drivers/peplus.c +++ b/src/mame/drivers/peplus.c @@ -266,6 +266,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; static const UINT8 id_022[8] = { 0x00, 0x01, 0x04, 0x09, 0x13, 0x16, 0x18, 0x00 }; @@ -968,10 +969,9 @@ void peplus_state::video_start() memset(m_palette_ram2, 0, 0x3000); } -static SCREEN_UPDATE_IND16( peplus ) +UINT32 peplus_state::screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - peplus_state *state = screen.machine().driver_data<peplus_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -1352,7 +1352,7 @@ static MACHINE_CONFIG_START( peplus, peplus_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE((52+1)*8, (31+1)*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1) - MCFG_SCREEN_UPDATE_STATIC(peplus) + MCFG_SCREEN_UPDATE_DRIVER(peplus_state, screen_update_peplus) MCFG_GFXDECODE(peplus) MCFG_PALETTE_LENGTH(16*16*2) diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index 46ea400beca..f577fb294f0 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -539,8 +539,8 @@ MACHINE_CONFIG_FRAGMENT( pgmbase ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(pgm) - MCFG_SCREEN_VBLANK_STATIC(pgm) + MCFG_SCREEN_UPDATE_DRIVER(pgm_state, screen_update_pgm) + MCFG_SCREEN_VBLANK_DRIVER(pgm_state, screen_eof_pgm) MCFG_GFXDECODE(pgm) MCFG_PALETTE_LENGTH(0x1200/2) diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c index 2f0df6eab3f..065203dffac 100644 --- a/src/mame/drivers/pgm2.c +++ b/src/mame/drivers/pgm2.c @@ -36,6 +36,8 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_pgm2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_pgm2(screen_device &screen, bool state); }; static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state ) @@ -45,12 +47,12 @@ ADDRESS_MAP_END static INPUT_PORTS_START( pgm2 ) INPUT_PORTS_END -static SCREEN_UPDATE_IND16(pgm2) +UINT32 pgm2_state::screen_update_pgm2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { return 0; } -static SCREEN_VBLANK(pgm2) +void pgm2_state::screen_eof_pgm2(screen_device &screen, bool state) { } @@ -139,8 +141,8 @@ static MACHINE_CONFIG_START( pgm2, pgm2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(pgm2) - MCFG_SCREEN_VBLANK_STATIC(pgm2) + MCFG_SCREEN_UPDATE_DRIVER(pgm2_state, screen_update_pgm2) + MCFG_SCREEN_VBLANK_DRIVER(pgm2_state, screen_eof_pgm2) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c index 7af1638a3b7..e7aa6ecac60 100644 --- a/src/mame/drivers/phoenix.c +++ b/src/mame/drivers/phoenix.c @@ -461,7 +461,7 @@ static MACHINE_CONFIG_START( phoenix, phoenix_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(phoenix) + MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix) MCFG_GFXDECODE(phoenix) MCFG_PALETTE_LENGTH(256) @@ -534,7 +534,7 @@ static MACHINE_CONFIG_START( survival, phoenix_state ) */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(phoenix) + MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix) MCFG_GFXDECODE(phoenix) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c index a6267568bc2..9b1b6834c8d 100644 --- a/src/mame/drivers/photon.c +++ b/src/mame/drivers/photon.c @@ -36,6 +36,7 @@ public: DECLARE_WRITE8_MEMBER(pk8000_84_portc_w); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -205,7 +206,7 @@ void photon_state::video_start() { } -static SCREEN_UPDATE_IND16( photon ) +UINT32 photon_state::screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { return pk8000_video_update(screen, bitmap, cliprect, screen.machine().root_device().memregion("maincpu")->base()); } @@ -225,7 +226,7 @@ static MACHINE_CONFIG_START( photon, photon_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(256+32, 192+32) MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) - MCFG_SCREEN_UPDATE_STATIC(photon) + MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update_photon) MCFG_PALETTE_LENGTH(16) MCFG_PALETTE_INIT(pk8000) diff --git a/src/mame/drivers/photon2.c b/src/mame/drivers/photon2.c index d7e02bd5839..a2982954a8c 100644 --- a/src/mame/drivers/photon2.c +++ b/src/mame/drivers/photon2.c @@ -35,6 +35,8 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_spectrum(screen_device &screen, bool state); }; @@ -106,17 +108,16 @@ INLINE unsigned char get_display_color (unsigned char color, int invert) /* Code to change the FLASH status every 25 frames. Note this must be independent of frame skip etc. */ -static SCREEN_VBLANK( spectrum ) +void photon2_state::screen_eof_spectrum(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - photon2_state *state = screen.machine().driver_data<photon2_state>(); - state->m_spectrum_frame_number++; - if (state->m_spectrum_frame_number >= 25) + m_spectrum_frame_number++; + if (m_spectrum_frame_number >= 25) { - state->m_spectrum_frame_number = 0; - state->m_spectrum_flash_invert = !state->m_spectrum_flash_invert; + m_spectrum_frame_number = 0; + m_spectrum_flash_invert = !m_spectrum_flash_invert; } } } @@ -126,29 +127,28 @@ INLINE void spectrum_plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color bitmap.pix16(y, x) = (UINT16)color; } -static SCREEN_UPDATE_IND16( spectrum ) +UINT32 photon2_state::screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - photon2_state *state = screen.machine().driver_data<photon2_state>(); /* for now do a full-refresh */ int x, y, b, scrx, scry; unsigned short ink, pap; unsigned char *attr, *scr; // int full_refresh = 1; - scr=state->m_spectrum_video_ram; + scr=m_spectrum_video_ram; - bitmap.fill(state->m_spectrum_port_fe & 0x07, cliprect); + bitmap.fill(m_spectrum_port_fe & 0x07, cliprect); for (y=0; y<192; y++) { scrx=SPEC_LEFT_BORDER; scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0); - attr=state->m_spectrum_video_ram + ((scry>>3)*32) + 0x1800; + attr=m_spectrum_video_ram + ((scry>>3)*32) + 0x1800; for (x=0;x<32;x++) { /* Get ink and paper colour with bright */ - if (state->m_spectrum_flash_invert && (*attr & 0x80)) + if (m_spectrum_flash_invert && (*attr & 0x80)) { ink=((*attr)>>3) & 0x0f; pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08); @@ -331,8 +331,8 @@ static MACHINE_CONFIG_START( photon2, photon2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1) - MCFG_SCREEN_UPDATE_STATIC( spectrum ) - MCFG_SCREEN_VBLANK_STATIC( spectrum ) + MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum) + MCFG_SCREEN_VBLANK_DRIVER(photon2_state, screen_eof_spectrum) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c index 6502e6d55ec..deb1170807a 100644 --- a/src/mame/drivers/pingpong.c +++ b/src/mame/drivers/pingpong.c @@ -472,7 +472,7 @@ static MACHINE_CONFIG_START( pingpong, pingpong_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(456, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pingpong) + MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong) MCFG_GFXDECODE(pingpong) MCFG_PALETTE_LENGTH(64*4+64*4) diff --git a/src/mame/drivers/pinkiri8.c b/src/mame/drivers/pinkiri8.c index 00c46a37098..042a06196d2 100644 --- a/src/mame/drivers/pinkiri8.c +++ b/src/mame/drivers/pinkiri8.c @@ -76,6 +76,7 @@ public: DECLARE_READ8_MEMBER(ronjan_patched_prot_r); DECLARE_DRIVER_INIT(ronjan); virtual void video_start(); + UINT32 screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -201,16 +202,15 @@ ronjan */ -static SCREEN_UPDATE_IND16( pinkiri8 ) +UINT32 pinkiri8_state::screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - pinkiri8_state *state = screen.machine().driver_data<pinkiri8_state>(); int col_bank; gfx_element *gfx = screen.machine().gfx[0]; /* update palette */ for (int pen = 0; pen < 0x800 ; pen++) { - UINT16 val = (state->m_janshi_paletteram[pen]) | (state->m_janshi_paletteram2[pen]<<8); + UINT16 val = (m_janshi_paletteram[pen]) | (m_janshi_paletteram2[pen]<<8); int r = (val & 0x001f) >> 0; int g = (val & 0x03e0) >> 5; int b = (val & 0x7c00) >> 10; @@ -230,7 +230,7 @@ static SCREEN_UPDATE_IND16( pinkiri8 ) for (i=0x00;i<0x40;i+=2) { - printf("%02x, ", state->m_janshi_widthflags[i+1]); + printf("%02x, ", m_janshi_widthflags[i+1]); count2++; @@ -248,8 +248,8 @@ static SCREEN_UPDATE_IND16( pinkiri8 ) - //popmessage("%02x",state->m_janshi_crtc_regs[0x0a]); - col_bank = (state->m_janshi_crtc_regs[0x0a] & 0x40) >> 6; + //popmessage("%02x",m_janshi_crtc_regs[0x0a]); + col_bank = (m_janshi_crtc_regs[0x0a] & 0x40) >> 6; bitmap.fill(get_black_pen(screen.machine()), cliprect); @@ -263,8 +263,8 @@ static SCREEN_UPDATE_IND16( pinkiri8 ) { for(x=0;x<32;x++) { - tile = state->m_janshi_back_vram[count+1]<<8 | state->m_janshi_back_vram[count+0]; - attr = state->m_janshi_back_vram[count+2] ^ 0xf0; + tile = m_janshi_back_vram[count+1]<<8 | m_janshi_back_vram[count+0]; + attr = m_janshi_back_vram[count+2] ^ 0xf0; col = (attr >> 4) | 0x10; drawgfx_transpen(bitmap,cliprect,gfx,tile,col,0,0,x*16,y*8,0); @@ -300,15 +300,15 @@ static SCREEN_UPDATE_IND16( pinkiri8 ) */ - spr_offs = ((state->m_janshi_vram1[(i*4)+0] & 0xff) | (state->m_janshi_vram1[(i*4)+1]<<8)) & 0xffff; - col = (state->m_janshi_vram1[(i*4)+2] & 0xf8) >> 3; - x = state->m_janshi_vram1[(i*4)+3]; + spr_offs = ((m_janshi_vram1[(i*4)+0] & 0xff) | (m_janshi_vram1[(i*4)+1]<<8)) & 0xffff; + col = (m_janshi_vram1[(i*4)+2] & 0xf8) >> 3; + x = m_janshi_vram1[(i*4)+3]; x &= 0xff; x *= 2; -// unk2 = state->m_janshi_vram2[(i*2)+1]; - y = (state->m_janshi_vram2[(i*2)+0]); +// unk2 = m_janshi_vram2[(i*2)+1]; + y = (m_janshi_vram2[(i*2)+0]); y = 0x100-y; @@ -321,7 +321,7 @@ static SCREEN_UPDATE_IND16( pinkiri8 ) // these bits seem to somehow determine the sprite height / widths for the sprite ram region? - int bit = state->m_janshi_widthflags[(i/0x20)*2 + 1]; + int bit = m_janshi_widthflags[(i/0x20)*2 + 1]; if (bit) { @@ -1139,7 +1139,7 @@ static MACHINE_CONFIG_START( pinkiri8, pinkiri8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1) - MCFG_SCREEN_UPDATE_STATIC(pinkiri8) + MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8) MCFG_GFXDECODE(pinkiri8) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c index b486649b6b8..2219ee6db2f 100644 --- a/src/mame/drivers/pipedrm.c +++ b/src/mame/drivers/pipedrm.c @@ -653,7 +653,7 @@ static MACHINE_CONFIG_START( pipedrm, fromance_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(44*8, 30*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pipedrm) + MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_pipedrm) MCFG_GFXDECODE(pipedrm) MCFG_PALETTE_LENGTH(2048) @@ -692,7 +692,7 @@ static MACHINE_CONFIG_START( hatris, fromance_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(44*8, 30*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(fromance) + MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) MCFG_GFXDECODE(hatris) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c index 7b7a768b1ed..d7cea9d08bf 100644 --- a/src/mame/drivers/pipeline.c +++ b/src/mame/drivers/pipeline.c @@ -101,6 +101,7 @@ public: TILE_GET_INFO_MEMBER(get_tile_info2); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -135,11 +136,10 @@ void pipeline_state::video_start() m_tilemap2->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16( pipeline ) +UINT32 pipeline_state::screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - pipeline_state *state = screen.machine().driver_data<pipeline_state>(); - state->m_tilemap1->draw(bitmap, cliprect, 0,0); - state->m_tilemap2->draw(bitmap, cliprect, 0,0); + m_tilemap1->draw(bitmap, cliprect, 0,0); + m_tilemap2->draw(bitmap, cliprect, 0,0); return 0; } @@ -413,7 +413,7 @@ static MACHINE_CONFIG_START( pipeline, pipeline_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 319, 16, 239) - MCFG_SCREEN_UPDATE_STATIC(pipeline) + MCFG_SCREEN_UPDATE_DRIVER(pipeline_state, screen_update_pipeline) MCFG_GFXDECODE(pipeline) diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c index 0ce63367f73..7ec34a53ef4 100644 --- a/src/mame/drivers/pirates.c +++ b/src/mame/drivers/pirates.c @@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( pirates, pirates_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pirates) + MCFG_SCREEN_UPDATE_DRIVER(pirates_state, screen_update_pirates) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c index 0a96137298d..7fee2a2e0c6 100644 --- a/src/mame/drivers/pitnrun.c +++ b/src/mame/drivers/pitnrun.c @@ -250,7 +250,7 @@ static MACHINE_CONFIG_START( pitnrun, pitnrun_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pitnrun) + MCFG_SCREEN_UPDATE_DRIVER(pitnrun_state, screen_update_pitnrun) MCFG_GFXDECODE(pitnrun) MCFG_PALETTE_LENGTH(32*3) diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c index 5a41c18bca1..03162a8d79c 100644 --- a/src/mame/drivers/pkscram.c +++ b/src/mame/drivers/pkscram.c @@ -44,6 +44,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_pkscramble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -243,12 +244,11 @@ void pkscram_state::video_start() m_fg_tilemap->set_transparent_pen(15); } -static SCREEN_UPDATE_IND16( pkscramble ) +UINT32 pkscram_state::screen_update_pkscramble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - pkscram_state *state = screen.machine().driver_data<pkscram_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0,0); - state->m_md_tilemap->draw(bitmap, cliprect, 0,0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_md_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -316,7 +316,7 @@ static MACHINE_CONFIG_START( pkscramble, pkscram_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MCFG_SCREEN_UPDATE_STATIC(pkscramble) + MCFG_SCREEN_UPDATE_DRIVER(pkscram_state, screen_update_pkscramble) MCFG_PALETTE_LENGTH(0x800) MCFG_GFXDECODE(pkscram) diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c index 56af342e663..fdc49c35268 100644 --- a/src/mame/drivers/pktgaldx.c +++ b/src/mame/drivers/pktgaldx.c @@ -337,7 +337,7 @@ static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(pktgaldx) + MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx) MCFG_PALETTE_LENGTH(4096) MCFG_GFXDECODE(pktgaldx) @@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( pktgaldb, pktgaldx_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(pktgaldb) + MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb) MCFG_PALETTE_LENGTH(4096) MCFG_GFXDECODE(bootleg) diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c index daaf9583f71..58f9d6589d8 100644 --- a/src/mame/drivers/playch10.c +++ b/src/mame/drivers/playch10.c @@ -694,13 +694,13 @@ static MACHINE_CONFIG_START( playch10, playch10_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(playch10_top) + MCFG_SCREEN_UPDATE_DRIVER(playch10_state, screen_update_playch10_top) MCFG_SCREEN_ADD("bottom", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(playch10_bottom) + MCFG_SCREEN_UPDATE_DRIVER(playch10_state, screen_update_playch10_bottom) MCFG_PPU2C03B_ADD("ppu", playch10_ppu_interface) diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c index 25c4ba53c1b..491cb159a99 100644 --- a/src/mame/drivers/playmark.c +++ b/src/mame/drivers/playmark.c @@ -1084,7 +1084,7 @@ static MACHINE_CONFIG_START( bigtwin, playmark_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(bigtwin) + MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin) MCFG_GFXDECODE(playmark) MCFG_PALETTE_LENGTH(1024) @@ -1118,7 +1118,7 @@ static MACHINE_CONFIG_START( bigtwinb, playmark_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(bigtwinb) + MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb) MCFG_GFXDECODE(bigtwinb) MCFG_PALETTE_LENGTH(1024) @@ -1155,7 +1155,7 @@ static MACHINE_CONFIG_START( wbeachvl, playmark_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(wbeachvl) + MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl) MCFG_GFXDECODE(wbeachvl) MCFG_PALETTE_LENGTH(2048) @@ -1189,7 +1189,7 @@ static MACHINE_CONFIG_START( excelsr, playmark_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(excelsr) + MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr) MCFG_GFXDECODE(excelsr) MCFG_PALETTE_LENGTH(1024) @@ -1226,7 +1226,7 @@ static MACHINE_CONFIG_START( hotmind, playmark_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(hrdtimes) + MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) MCFG_GFXDECODE(hrdtimes) MCFG_PALETTE_LENGTH(1024) @@ -1260,7 +1260,7 @@ static MACHINE_CONFIG_START( hrdtimes, playmark_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(hrdtimes) + MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) MCFG_GFXDECODE(hrdtimes) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c index 66e3c4edfff..19f2232fb00 100644 --- a/src/mame/drivers/plygonet.c +++ b/src/mame/drivers/plygonet.c @@ -646,7 +646,7 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(64, 64+368-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(polygonet) + MCFG_SCREEN_UPDATE_DRIVER(polygonet_state, screen_update_polygonet) MCFG_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c index 4ec5aaed561..6a3b4eddd7c 100644 --- a/src/mame/drivers/pokechmp.c +++ b/src/mame/drivers/pokechmp.c @@ -218,7 +218,7 @@ static MACHINE_CONFIG_START( pokechmp, pokechmp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pokechmp) + MCFG_SCREEN_UPDATE_DRIVER(pokechmp_state, screen_update_pokechmp) MCFG_GFXDECODE(pokechmp) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c index 2f634481f8d..7309032a7f8 100644 --- a/src/mame/drivers/poker72.c +++ b/src/mame/drivers/poker72.c @@ -33,6 +33,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -40,9 +41,8 @@ void poker72_state::video_start() { } -static SCREEN_UPDATE_IND16(poker72) +UINT32 poker72_state::screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - poker72_state *state = screen.machine().driver_data<poker72_state>(); int x,y,count; count = 0; @@ -51,12 +51,12 @@ static SCREEN_UPDATE_IND16(poker72) { for (x=0;x<64;x++) { - int tile = ((state->m_vram[count+1] & 0x0f) << 8 ) | (state->m_vram[count+0] & 0xff); //TODO: tile bank - int fx = (state->m_vram[count+1] & 0x10); - int fy = (state->m_vram[count+1] & 0x20); - int color = (state->m_vram[count+1] & 0xc0) >> 6; + int tile = ((m_vram[count+1] & 0x0f) << 8 ) | (m_vram[count+0] & 0xff); //TODO: tile bank + int fx = (m_vram[count+1] & 0x10); + int fy = (m_vram[count+1] & 0x20); + int color = (m_vram[count+1] & 0xc0) >> 6; - tile|= state->m_tile_bank << 12; + tile|= m_tile_bank << 12; drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,color,fx,fy,x*8,y*8); @@ -363,7 +363,7 @@ static MACHINE_CONFIG_START( poker72, poker72_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(poker72) + MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72) MCFG_GFXDECODE(poker72) MCFG_PALETTE_LENGTH(0xe00) diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c index 2f444a26791..f837a950280 100644 --- a/src/mame/drivers/polepos.c +++ b/src/mame/drivers/polepos.c @@ -908,7 +908,7 @@ static MACHINE_CONFIG_START( polepos, polepos_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16) - MCFG_SCREEN_UPDATE_STATIC(polepos) + MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos) MCFG_GFXDECODE(polepos) MCFG_PALETTE_LENGTH(0x0f00) @@ -987,7 +987,7 @@ static MACHINE_CONFIG_START( topracern, polepos_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16) - MCFG_SCREEN_UPDATE_STATIC(polepos) + MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos) MCFG_GFXDECODE(polepos) MCFG_PALETTE_LENGTH(0x0f00) diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c index 51473e9bdad..ffb559a5013 100644 --- a/src/mame/drivers/policetr.c +++ b/src/mame/drivers/policetr.c @@ -427,7 +427,7 @@ static MACHINE_CONFIG_START( policetr, policetr_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(400, 262) /* needs to be verified */ MCFG_SCREEN_VISIBLE_AREA(0, 393, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(policetr) + MCFG_SCREEN_UPDATE_DRIVER(policetr_state, screen_update_policetr) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c index f9b1a304d77..627e0189881 100644 --- a/src/mame/drivers/polyplay.c +++ b/src/mame/drivers/polyplay.c @@ -285,7 +285,7 @@ static MACHINE_CONFIG_START( polyplay, polyplay_state ) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(polyplay) + MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay) MCFG_GFXDECODE(polyplay) MCFG_PALETTE_LENGTH(10) diff --git a/src/mame/drivers/poo.c b/src/mame/drivers/poo.c index a6954d64225..23537a51bef 100644 --- a/src/mame/drivers/poo.c +++ b/src/mame/drivers/poo.c @@ -68,6 +68,7 @@ public: DECLARE_READ8_MEMBER(timer_r); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_unclepoo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -75,9 +76,8 @@ void poo_state::video_start() { } -static SCREEN_UPDATE_IND16(unclepoo) +UINT32 poo_state::screen_update_unclepoo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - poo_state *state = screen.machine().driver_data<poo_state>(); int y,x; int count; gfx_element *gfx = screen.machine().gfx[0]; @@ -88,12 +88,12 @@ static SCREEN_UPDATE_IND16(unclepoo) { for (y=0;y<32;y++) { - int tile = state->m_vram[count+0x000] | ((state->m_vram[count+0x400] & 3) <<8); - int color = (state->m_vram[count+0x400] & 0x38) >> 3; - int scrolly = (state->m_scrolly[x*4]); + int tile = m_vram[count+0x000] | ((m_vram[count+0x400] & 3) <<8); + int color = (m_vram[count+0x400] & 0x38) >> 3; + int scrolly = (m_scrolly[x*4]); - drawgfx_opaque(bitmap,cliprect,gfx,tile,color+state->m_vram_colbank,0,0,x*8,256-(y*8)+scrolly); - drawgfx_opaque(bitmap,cliprect,gfx,tile,color+state->m_vram_colbank,0,0,x*8,0-(y*8)+scrolly); + drawgfx_opaque(bitmap,cliprect,gfx,tile,color+m_vram_colbank,0,0,x*8,256-(y*8)+scrolly); + drawgfx_opaque(bitmap,cliprect,gfx,tile,color+m_vram_colbank,0,0,x*8,0-(y*8)+scrolly); count++; } @@ -104,10 +104,10 @@ static SCREEN_UPDATE_IND16(unclepoo) for(i=0;i<0x80;i+=4) { - spr_offs = state->m_sprites[i+2] | (state->m_sprites[i+3] & 3) << 8; - y = state->m_sprites[i+0]+8; - x = state->m_sprites[i+1]; - col = (state->m_sprites[i+3] & 0xf8) >> 3; + spr_offs = m_sprites[i+2] | (m_sprites[i+3] & 3) << 8; + y = m_sprites[i+0]+8; + x = m_sprites[i+1]; + col = (m_sprites[i+3] & 0xf8) >> 3; fx = 0; fy = 0; @@ -353,7 +353,7 @@ static MACHINE_CONFIG_START( unclepoo, poo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(unclepoo) + MCFG_SCREEN_UPDATE_DRIVER(poo_state, screen_update_unclepoo) MCFG_GFXDECODE(unclepoo) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c index c5c020232b2..3121fa3e021 100644 --- a/src/mame/drivers/poolshrk.c +++ b/src/mame/drivers/poolshrk.c @@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( poolshrk, poolshrk_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(1, 255, 24, 255) - MCFG_SCREEN_UPDATE_STATIC(poolshrk) + MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update_poolshrk) MCFG_GFXDECODE(poolshrk) MCFG_PALETTE_LENGTH(4) diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c index e6d32f1c928..44a1415375f 100644 --- a/src/mame/drivers/pooyan.c +++ b/src/mame/drivers/pooyan.c @@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( pooyan, pooyan_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pooyan) + MCFG_SCREEN_UPDATE_DRIVER(pooyan_state, screen_update_pooyan) MCFG_GFXDECODE(pooyan) MCFG_PALETTE_LENGTH(16*16+16*16) diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c index 99efd79e9c3..cfbdde9cbbf 100644 --- a/src/mame/drivers/popeye.c +++ b/src/mame/drivers/popeye.c @@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( skyskipr, popeye_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1) - MCFG_SCREEN_UPDATE_STATIC(popeye) + MCFG_SCREEN_UPDATE_DRIVER(popeye_state, screen_update_popeye) MCFG_GFXDECODE(popeye) MCFG_PALETTE_LENGTH(16+16*2+64*4) diff --git a/src/mame/drivers/popobear.c b/src/mame/drivers/popobear.c index 75ae4d43cb6..076828d2883 100644 --- a/src/mame/drivers/popobear.c +++ b/src/mame/drivers/popobear.c @@ -95,6 +95,7 @@ public: DECLARE_READ8_MEMBER(popo_620000_r); DECLARE_WRITE8_MEMBER(popobear_irq_ack_w); virtual void video_start(); + UINT32 screen_update_popobear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; void popobear_state::video_start() @@ -256,13 +257,12 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re } } -SCREEN_UPDATE_IND16( popobear ) +UINT32 popobear_state::screen_update_popobear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { -// popobear_state *state = screen.machine().driver_data<popobear_state>(); bitmap.fill(0, cliprect); - //popmessage("%04x",state->m_vregs[0/2]); + //popmessage("%04x",m_vregs[0/2]); draw_layer(screen.machine(),bitmap,cliprect,3); draw_layer(screen.machine(),bitmap,cliprect,2); @@ -465,7 +465,7 @@ static MACHINE_CONFIG_START( popobear, popobear_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_STATIC(popobear) + MCFG_SCREEN_UPDATE_DRIVER(popobear_state, screen_update_popobear) // MCFG_GFXDECODE(popobear) diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c index 22431a138bf..7e268e19d60 100644 --- a/src/mame/drivers/popper.c +++ b/src/mame/drivers/popper.c @@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( popper, popper_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(33*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 33*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(popper) + MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update_popper) MCFG_GFXDECODE(popper) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c index 81a71d0c93d..8ef875ee8b2 100644 --- a/src/mame/drivers/portrait.c +++ b/src/mame/drivers/portrait.c @@ -256,7 +256,7 @@ static MACHINE_CONFIG_START( portrait, portrait_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 0*8, 40*8-1) - MCFG_SCREEN_UPDATE_STATIC(portrait) + MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update_portrait) MCFG_GFXDECODE(portrait) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c index 01c7ce0b49e..1337e46a414 100644 --- a/src/mame/drivers/powerbal.c +++ b/src/mame/drivers/powerbal.c @@ -426,11 +426,10 @@ VIDEO_START_MEMBER(playmark_state,powerbal) m_bg_tilemap->set_scrolly(0, m_bg_yoffset); } -static SCREEN_UPDATE_IND16( powerbal ) +UINT32 playmark_state::screen_update_powerbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - playmark_state *state = screen.machine().driver_data<playmark_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(), bitmap, cliprect); return 0; } @@ -496,7 +495,7 @@ static MACHINE_CONFIG_START( powerbal, playmark_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(128*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(powerbal) + MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_powerbal) MCFG_GFXDECODE(powerbal) MCFG_PALETTE_LENGTH(512) @@ -529,7 +528,7 @@ static MACHINE_CONFIG_START( magicstk, playmark_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(128*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(powerbal) + MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_powerbal) MCFG_GFXDECODE(powerbal) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c index 978a6ecee15..0a44d73ad0c 100644 --- a/src/mame/drivers/powerins.c +++ b/src/mame/drivers/powerins.c @@ -356,7 +356,7 @@ static MACHINE_CONFIG_START( powerins, powerins_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(powerins) + MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update_powerins) MCFG_GFXDECODE(powerins) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c index 185cbd0bebc..081bb98ef0e 100644 --- a/src/mame/drivers/ppmast93.c +++ b/src/mame/drivers/ppmast93.c @@ -155,6 +155,7 @@ public: TILE_GET_INFO_MEMBER(get_ppmast93_bg_tile_info); TILE_GET_INFO_MEMBER(get_ppmast93_fg_tile_info); virtual void video_start(); + UINT32 screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -353,11 +354,10 @@ void ppmast93_state::video_start() m_fg_tilemap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16( ppmast93 ) +UINT32 ppmast93_state::screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - ppmast93_state *state = screen.machine().driver_data<ppmast93_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0,0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( ppmast93, ppmast93_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(ppmast93) + MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update_ppmast93) MCFG_GFXDECODE(ppmast93) diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c index f8ad1f5102a..20e903d8f43 100644 --- a/src/mame/drivers/prehisle.c +++ b/src/mame/drivers/prehisle.c @@ -222,7 +222,7 @@ static MACHINE_CONFIG_START( prehisle, prehisle_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(prehisle) + MCFG_SCREEN_UPDATE_DRIVER(prehisle_state, screen_update_prehisle) MCFG_GFXDECODE(prehisle) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c index 98bfbcecf33..e2f65bbe484 100644 --- a/src/mame/drivers/progolf.c +++ b/src/mame/drivers/progolf.c @@ -86,6 +86,7 @@ public: DECLARE_DRIVER_INIT(progolf); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -101,14 +102,13 @@ void progolf_state::video_start() } -static SCREEN_UPDATE_IND16( progolf ) +UINT32 progolf_state::screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - progolf_state *state = screen.machine().driver_data<progolf_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int count,color,x,y,xi,yi; { - int scroll = (state->m_scrollx_lo | ((state->m_scrollx_hi & 0x03) << 8)); + int scroll = (m_scrollx_lo | ((m_scrollx_hi & 0x03) << 8)); count = 0; @@ -139,7 +139,7 @@ static SCREEN_UPDATE_IND16( progolf ) { for (xi=0;xi<8;xi++) { - color = state->m_fg_fb[(xi+yi*8)+count*0x40]; + color = m_fg_fb[(xi+yi*8)+count*0x40]; if(color != 0 && cliprect.contains(x+yi, 256-y+xi)) bitmap.pix16(x+yi, 256-y+xi) = screen.machine().pens[(color & 0x7)]; @@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( progolf, progolf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(progolf) + MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update_progolf) MCFG_GFXDECODE(progolf) MCFG_PALETTE_LENGTH(32*3) diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c index 9f3c368ec30..bd6f0da995e 100644 --- a/src/mame/drivers/psattack.c +++ b/src/mame/drivers/psattack.c @@ -90,6 +90,8 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_psattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_psattack(screen_device &screen, bool state); }; @@ -124,12 +126,12 @@ void psattack_state::video_start() } -static SCREEN_UPDATE_IND16(psattack) +UINT32 psattack_state::screen_update_psattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { return 0; } -static SCREEN_VBLANK(psattack) +void psattack_state::screen_eof_psattack(screen_device &screen, bool state) { } @@ -186,8 +188,8 @@ static MACHINE_CONFIG_START( psattack, psattack_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(psattack) - MCFG_SCREEN_VBLANK_STATIC(psattack) + MCFG_SCREEN_UPDATE_DRIVER(psattack_state, screen_update_psattack) + MCFG_SCREEN_VBLANK_DRIVER(psattack_state, screen_eof_psattack) MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB) diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index 7abba4bbf9d..b59c17cabdf 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -1062,8 +1062,8 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) - MCFG_SCREEN_UPDATE_STATIC(psikyo) - MCFG_SCREEN_VBLANK_STATIC(psikyo) + MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo) + MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo) MCFG_GFXDECODE(psikyo) MCFG_PALETTE_LENGTH(0x1000) @@ -1111,8 +1111,8 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) - MCFG_SCREEN_UPDATE_STATIC(psikyo) - MCFG_SCREEN_VBLANK_STATIC(psikyo) + MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo) + MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo) MCFG_GFXDECODE(psikyo) MCFG_PALETTE_LENGTH(0x1000) @@ -1144,8 +1144,8 @@ static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based o MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) - MCFG_SCREEN_UPDATE_STATIC(psikyo_bootleg) - MCFG_SCREEN_VBLANK_STATIC(psikyo) + MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo_bootleg) + MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo) MCFG_GFXDECODE(psikyo) MCFG_PALETTE_LENGTH(0x1000) @@ -1198,8 +1198,8 @@ static MACHINE_CONFIG_START( s1945, psikyo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) - MCFG_SCREEN_UPDATE_STATIC(psikyo) - MCFG_SCREEN_VBLANK_STATIC(psikyo) + MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo) + MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo) MCFG_GFXDECODE(psikyo) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c index c2d4c3a54ed..5483aa4c304 100644 --- a/src/mame/drivers/psikyo4.c +++ b/src/mame/drivers/psikyo4.c @@ -697,14 +697,14 @@ static MACHINE_CONFIG_START( ps4big, psikyo4_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(psikyo4_left) + MCFG_SCREEN_UPDATE_DRIVER(psikyo4_state, screen_update_psikyo4_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(psikyo4_right) + MCFG_SCREEN_UPDATE_DRIVER(psikyo4_state, screen_update_psikyo4_right) /* sound hardware */ diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c index bc8d51213d5..8dd2f2fd2f8 100644 --- a/src/mame/drivers/psikyosh.c +++ b/src/mame/drivers/psikyosh.c @@ -822,7 +822,7 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(psikyosh) + MCFG_SCREEN_UPDATE_DRIVER(psikyosh_state, screen_update_psikyosh) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram32_device, vblank_copy_rising) MCFG_GFXDECODE(psikyosh) diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c index d650e951951..ca2fbef83ab 100644 --- a/src/mame/drivers/psychic5.c +++ b/src/mame/drivers/psychic5.c @@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( psychic5, psychic5_state ) /* frames per second hand tuned to match game and music speed */ MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(psychic5) + MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_psychic5) MCFG_GFXDECODE(psychic5) MCFG_PALETTE_LENGTH(768) @@ -722,7 +722,7 @@ static MACHINE_CONFIG_START( bombsa, psychic5_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bombsa) + MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_bombsa) MCFG_GFXDECODE(bombsa) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c index d8500ed2436..356cc88ecd0 100644 --- a/src/mame/drivers/pturn.c +++ b/src/mame/drivers/pturn.c @@ -117,6 +117,7 @@ public: TILE_GET_INFO_MEMBER(get_pturn_bg_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_pturn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -163,16 +164,15 @@ void pturn_state::video_start() m_bgmap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16(pturn) +UINT32 pturn_state::screen_update_pturn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - pturn_state *state = screen.machine().driver_data<pturn_state>(); - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int offs; int sx, sy; int flipx, flipy; - bitmap.fill(state->m_bgcolor, cliprect); - state->m_bgmap->draw(bitmap, cliprect, 0,0); + bitmap.fill(m_bgcolor, cliprect); + m_bgmap->draw(bitmap, cliprect, 0,0); for ( offs = 0x80-4 ; offs >=0 ; offs -= 4) { sy=256-spriteram[offs]-16 ; @@ -182,13 +182,13 @@ static SCREEN_UPDATE_IND16(pturn) flipy=spriteram[offs+1]&0x80; - if (state->flip_screen_x()) + if (flip_screen_x()) { sx = 224 - sx; flipx ^= 0x40; } - if (state->flip_screen_y()) + if (flip_screen_y()) { flipy ^= 0x80; sy = 224 - sy; @@ -203,7 +203,7 @@ static SCREEN_UPDATE_IND16(pturn) sx,sy,0); } } - state->m_fgmap->draw(bitmap, cliprect, 0,0); + m_fgmap->draw(bitmap, cliprect, 0,0); return 0; } @@ -498,7 +498,7 @@ static MACHINE_CONFIG_START( pturn, pturn_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pturn) + MCFG_SCREEN_UPDATE_DRIVER(pturn_state, screen_update_pturn) MCFG_PALETTE_LENGTH(0x100) MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c index aae65e815d7..bdcb8a27d17 100644 --- a/src/mame/drivers/punchout.c +++ b/src/mame/drivers/punchout.c @@ -962,14 +962,14 @@ static MACHINE_CONFIG_START( punchout, punchout_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(punchout_top) + MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_top) MCFG_SCREEN_ADD("bottom", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(punchout_bottom) + MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_bottom) /* sound hardware */ @@ -996,9 +996,9 @@ static MACHINE_CONFIG_DERIVED( armwrest, punchout ) MCFG_VIDEO_START_OVERRIDE(punchout_state,armwrest) MCFG_SCREEN_MODIFY("top") - MCFG_SCREEN_UPDATE_STATIC(armwrest_top) + MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_top) MCFG_SCREEN_MODIFY("bottom") - MCFG_SCREEN_UPDATE_STATIC(armwrest_bottom) + MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_bottom) MACHINE_CONFIG_END diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c index 6768200a03a..b0edf6818a5 100644 --- a/src/mame/drivers/pushman.c +++ b/src/mame/drivers/pushman.c @@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( pushman, pushman_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pushman) + MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman) MCFG_GFXDECODE(pushman) MCFG_PALETTE_LENGTH(1024) @@ -495,7 +495,7 @@ static MACHINE_CONFIG_START( bballs, pushman_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pushman) + MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman) MCFG_GFXDECODE(pushman) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c index dd498d7af46..63c8451b3e3 100644 --- a/src/mame/drivers/pzletime.c +++ b/src/mame/drivers/pzletime.c @@ -59,6 +59,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -91,21 +92,20 @@ void pzletime_state::video_start() m_txt_tilemap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16( pzletime ) +UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - pzletime_state *state = screen.machine().driver_data<pzletime_state>(); int count; int y, x; bitmap.fill(screen.machine().pens[0], cliprect); //bg pen - state->m_txt_tilemap->set_scrolly(0, state->m_tilemap_regs[0] - 3); - state->m_txt_tilemap->set_scrollx(0, state->m_tilemap_regs[1]); + m_txt_tilemap->set_scrolly(0, m_tilemap_regs[0] - 3); + m_txt_tilemap->set_scrollx(0, m_tilemap_regs[1]); - state->m_mid_tilemap->set_scrolly(0, state->m_tilemap_regs[2] - 3); - state->m_mid_tilemap->set_scrollx(0, state->m_tilemap_regs[3] - 7); + m_mid_tilemap->set_scrolly(0, m_tilemap_regs[2] - 3); + m_mid_tilemap->set_scrollx(0, m_tilemap_regs[3] - 7); - if (state->m_video_regs[2] & 1) + if (m_video_regs[2] & 1) { count = 0; @@ -113,18 +113,18 @@ static SCREEN_UPDATE_IND16( pzletime ) { for (x = 0; x < 512; x++) { - if (state->m_bg_videoram[count] & 0x8000) - bitmap.pix16((y - 18) & 0xff, (x - 32) & 0x1ff) = 0x300 + (state->m_bg_videoram[count] & 0x7fff); + if (m_bg_videoram[count] & 0x8000) + bitmap.pix16((y - 18) & 0xff, (x - 32) & 0x1ff) = 0x300 + (m_bg_videoram[count] & 0x7fff); count++; } } } - state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0); + m_mid_tilemap->draw(bitmap, cliprect, 0, 0); { - UINT16 *spriteram = state->m_spriteram; + UINT16 *spriteram = m_spriteram; int offs, spr_offs, colour, sx, sy; for(offs = 0; offs < 0x2000 / 2; offs += 4) @@ -143,9 +143,9 @@ static SCREEN_UPDATE_IND16( pzletime ) } } - state->m_txt_tilemap->draw(bitmap, cliprect, 0, 0); + m_txt_tilemap->draw(bitmap, cliprect, 0, 0); if ((screen.frame_number() % 16) != 0) - state->m_txt_tilemap->draw(bitmap, cliprect, 1, 0); + m_txt_tilemap->draw(bitmap, cliprect, 1, 0); return 0; } @@ -333,7 +333,7 @@ static MACHINE_CONFIG_START( pzletime, pzletime_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(pzletime) + MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime) MCFG_GFXDECODE(pzletime) MCFG_PALETTE_LENGTH(0x300 + 32768) MCFG_EEPROM_93C46_ADD("eeprom") diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c index c1354d1de44..17c622bd487 100644 --- a/src/mame/drivers/qdrmfgp.c +++ b/src/mame/drivers/qdrmfgp.c @@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - MCFG_SCREEN_UPDATE_STATIC(qdrmfgp) + MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp) MCFG_PALETTE_LENGTH(2048) @@ -731,7 +731,7 @@ static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - MCFG_SCREEN_UPDATE_STATIC(qdrmfgp) + MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/quakeat.c b/src/mame/drivers/quakeat.c index 0e248a46d09..43e07c73087 100644 --- a/src/mame/drivers/quakeat.c +++ b/src/mame/drivers/quakeat.c @@ -76,6 +76,7 @@ public: DECLARE_READ8_MEMBER(get_slave_ack); virtual void machine_start(); virtual void video_start(); + UINT32 screen_update_quake(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -83,7 +84,7 @@ void quakeat_state::video_start() { } -static SCREEN_UPDATE_IND16(quake) +UINT32 quakeat_state::screen_update_quake(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { return 0; } @@ -182,7 +183,7 @@ static MACHINE_CONFIG_START( quake, quakeat_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(quake) + MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c index f5a767dc6ce..db0a14624d4 100644 --- a/src/mame/drivers/quasar.c +++ b/src/mame/drivers/quasar.c @@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( quasar, quasar_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(1*8+1, 29*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(quasar) + MCFG_SCREEN_UPDATE_DRIVER(quasar_state, screen_update_quasar) MCFG_GFXDECODE(quasar) MCFG_PALETTE_LENGTH((64+1)*8+(4*256)) diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c index e5db26bde80..88801eda608 100644 --- a/src/mame/drivers/quizdna.c +++ b/src/mame/drivers/quizdna.c @@ -455,7 +455,7 @@ static MACHINE_CONFIG_START( quizdna, quizdna_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(quizdna) + MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update_quizdna) MCFG_GFXDECODE(quizdna) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c index ab6d5b3a12f..b0758c7ea80 100644 --- a/src/mame/drivers/quizo.c +++ b/src/mame/drivers/quizo.c @@ -42,6 +42,7 @@ public: DECLARE_WRITE8_MEMBER(port60_w); DECLARE_DRIVER_INIT(quizo); virtual void palette_init(); + UINT32 screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -79,10 +80,9 @@ void quizo_state::palette_init() } } -static SCREEN_UPDATE_IND16( quizo ) +UINT32 quizo_state::screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - quizo_state *state = screen.machine().driver_data<quizo_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int x,y; for(y=0;y<200;y++) { @@ -216,7 +216,7 @@ static MACHINE_CONFIG_START( quizo, quizo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 200) MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1) - MCFG_SCREEN_UPDATE_STATIC(quizo) + MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update_quizo) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/quizpani.c b/src/mame/drivers/quizpani.c index 73ca7a5de9e..f70b03f2b37 100644 --- a/src/mame/drivers/quizpani.c +++ b/src/mame/drivers/quizpani.c @@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( quizpani, quizpani_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(quizpani) + MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update_quizpani) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c index 42ef66c9fab..60d8271c31a 100644 --- a/src/mame/drivers/quizpun2.c +++ b/src/mame/drivers/quizpun2.c @@ -112,6 +112,7 @@ public: TILE_GET_INFO_MEMBER(get_fg_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_quizpun2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -155,9 +156,8 @@ void quizpun2_state::video_start() m_fg_tmap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16(quizpun2) +UINT32 quizpun2_state::screen_update_quizpun2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - quizpun2_state *state = screen.machine().driver_data<quizpun2_state>(); int layers_ctrl = -1; #ifdef MAME_DEBUG @@ -170,11 +170,11 @@ static SCREEN_UPDATE_IND16(quizpun2) } #endif - if (layers_ctrl & 1) state->m_bg_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_bg_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); else bitmap.fill(get_black_pen(screen.machine()), cliprect); bitmap.fill(get_black_pen(screen.machine()), cliprect); - if (layers_ctrl & 2) state->m_fg_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_fg_tmap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( quizpun2, quizpun2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(quizpun2) + MCFG_SCREEN_UPDATE_DRIVER(quizpun2_state, screen_update_quizpun2) MCFG_GFXDECODE(quizpun2) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c index 46548f401a6..c8dba468706 100644 --- a/src/mame/drivers/quizshow.c +++ b/src/mame/drivers/quizshow.c @@ -63,6 +63,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -106,10 +107,9 @@ void quizshow_state::video_start() m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 32, 16); } -SCREEN_UPDATE_IND16( quizshow ) +UINT32 quizshow_state::screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - quizshow_state *state = screen.machine().driver_data<quizshow_state>(); - state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); return 0; } @@ -382,7 +382,7 @@ static MACHINE_CONFIG_START( quizshow, quizshow_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(quizshow) + MCFG_SCREEN_UPDATE_DRIVER(quizshow_state, screen_update_quizshow) MCFG_GFXDECODE(quizshow) MCFG_PALETTE_LENGTH(8*2) diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c index e90a9d67178..c24c4ce1d66 100644 --- a/src/mame/drivers/r2dx_v33.c +++ b/src/mame/drivers/r2dx_v33.c @@ -70,6 +70,7 @@ public: tilemap_t *m_fg_tilemap; tilemap_t *m_tx_tilemap; virtual void video_start(); + UINT32 screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -213,18 +214,17 @@ void r2dx_v33_state::video_start() m_tx_tilemap->set_transparent_pen(15); } -static SCREEN_UPDATE_IND16( rdx_v33 ) +UINT32 r2dx_v33_state::screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - r2dx_v33_state *state = screen.machine().driver_data<r2dx_v33_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_md_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_md_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); draw_sprites(screen.machine(),bitmap,cliprect,0); - state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(bitmap, cliprect, 0, 0); /* debug DMA processing */ if(0) @@ -258,7 +258,7 @@ static SCREEN_UPDATE_IND16( rdx_v33 ) } popmessage("%08x 1",src_addr); - state->m_bg_tilemap->mark_all_dirty(); + m_bg_tilemap->mark_all_dirty(); frame = 0; src_addr+=0x800; } @@ -704,7 +704,7 @@ static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(rdx_v33) + MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33) MCFG_GFXDECODE(rdx_v33) MCFG_PALETTE_LENGTH(2048) @@ -737,7 +737,7 @@ static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(rdx_v33) + MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33) MCFG_GFXDECODE(rdx_v33) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c index 9d580e32f25..c7aad838471 100644 --- a/src/mame/drivers/rabbit.c +++ b/src/mame/drivers/rabbit.c @@ -137,6 +137,7 @@ public: TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info); TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info); virtual void video_start(); + UINT32 screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -461,33 +462,32 @@ static void rabbit_drawtilemap( running_machine &machine, bitmap_ind16 &bitmap, tran ? 0 : TILEMAP_DRAW_OPAQUE,0); } -static SCREEN_UPDATE_IND16(rabbit) +UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - rabbit_state *state = screen.machine().driver_data<rabbit_state>(); int prilevel; bitmap.fill(get_black_pen(screen.machine()), cliprect); -// popmessage("%08x %08x", state->m_viewregs0[0], state->m_viewregs0[1]); -// popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[0][0],state->m_tilemap_regs[0][1],state->m_tilemap_regs[0][2],state->m_tilemap_regs[0][3],state->m_tilemap_regs[0][4],state->m_tilemap_regs[0][5]); -// popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[1][0],state->m_tilemap_regs[1][1],state->m_tilemap_regs[1][2],state->m_tilemap_regs[1][3],state->m_tilemap_regs[1][4],state->m_tilemap_regs[1][5]); -// popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[2][0],state->m_tilemap_regs[2][1],state->m_tilemap_regs[2][2],state->m_tilemap_regs[2][3],state->m_tilemap_regs[2][4],state->m_tilemap_regs[2][5]); -// popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[3][0],state->m_tilemap_regs[3][1],state->m_tilemap_regs[3][2],state->m_tilemap_regs[3][3],state->m_tilemap_regs[3][4],state->m_tilemap_regs[3][5]); -// popmessage("%08x %08x %08x %08x %08x %08x %08x", state->m_spriteregs[0],state->m_spriteregs[1],state->m_spriteregs[2],state->m_spriteregs[3],state->m_spriteregs[4],state->m_spriteregs[5], state->m_spriteregs[6]); -// popmessage("%08x %08x %08x %08x %08x", state->m_viewregs6[0],state->m_viewregs6[1],state->m_viewregs6[2],state->m_viewregs6[3],state->m_viewregs6[4]); -// popmessage("%08x", state->m_viewregs7[0]); -// popmessage("%08x %08x %08x %08x", state->m_blitterregs[0],state->m_blitterregs[1],state->m_blitterregs[2],state->m_blitterregs[3]); -// popmessage("%08x %08x %08x %08x", state->m_viewregs9[0],state->m_viewregs9[1],state->m_viewregs9[2],state->m_viewregs9[3]); +// popmessage("%08x %08x", m_viewregs0[0], m_viewregs0[1]); +// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[0][0],m_tilemap_regs[0][1],m_tilemap_regs[0][2],m_tilemap_regs[0][3],m_tilemap_regs[0][4],m_tilemap_regs[0][5]); +// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[1][0],m_tilemap_regs[1][1],m_tilemap_regs[1][2],m_tilemap_regs[1][3],m_tilemap_regs[1][4],m_tilemap_regs[1][5]); +// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[2][0],m_tilemap_regs[2][1],m_tilemap_regs[2][2],m_tilemap_regs[2][3],m_tilemap_regs[2][4],m_tilemap_regs[2][5]); +// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[3][0],m_tilemap_regs[3][1],m_tilemap_regs[3][2],m_tilemap_regs[3][3],m_tilemap_regs[3][4],m_tilemap_regs[3][5]); +// popmessage("%08x %08x %08x %08x %08x %08x %08x", m_spriteregs[0],m_spriteregs[1],m_spriteregs[2],m_spriteregs[3],m_spriteregs[4],m_spriteregs[5], m_spriteregs[6]); +// popmessage("%08x %08x %08x %08x %08x", m_viewregs6[0],m_viewregs6[1],m_viewregs6[2],m_viewregs6[3],m_viewregs6[4]); +// popmessage("%08x", m_viewregs7[0]); +// popmessage("%08x %08x %08x %08x", m_blitterregs[0],m_blitterregs[1],m_blitterregs[2],m_blitterregs[3]); +// popmessage("%08x %08x %08x %08x", m_viewregs9[0],m_viewregs9[1],m_viewregs9[2],m_viewregs9[3]); -// popmessage("%08x %08x %08x %08x %08x", state->m_viewregs10[0],state->m_viewregs10[1],state->m_viewregs10[2],state->m_viewregs10[3],state->m_viewregs10[4]); +// popmessage("%08x %08x %08x %08x %08x", m_viewregs10[0],m_viewregs10[1],m_viewregs10[2],m_viewregs10[3],m_viewregs10[4]); /* prio isnt certain but seems to work.. */ for (prilevel = 0xf; prilevel >0; prilevel--) { - if (prilevel == ((state->m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 3); - if (prilevel == ((state->m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 2); - if (prilevel == ((state->m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 1); - if (prilevel == ((state->m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 0); + if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 3); + if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 2); + if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 1); + if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 0); if (prilevel == 0x09) // should it be selectable? { @@ -891,7 +891,7 @@ static MACHINE_CONFIG_START( rabbit, rabbit_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) // MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*16, 64*16-1) // MCFG_SCREEN_VISIBLE_AREA(0*8, 20*16-1, 32*16, 48*16-1) - MCFG_SCREEN_UPDATE_STATIC(rabbit) + MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update_rabbit) MCFG_PALETTE_LENGTH(0x4000) MCFG_PALETTE_INIT( all_black ) diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c index 5e65ad7583b..725ed7d5e02 100644 --- a/src/mame/drivers/raiden.c +++ b/src/mame/drivers/raiden.c @@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( raiden, raiden_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(raiden) + MCFG_SCREEN_UPDATE_DRIVER(raiden_state, screen_update_raiden) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(raiden) diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c index 037a9ec88ee..1ff619a0a0f 100644 --- a/src/mame/drivers/raiden2.c +++ b/src/mame/drivers/raiden2.c @@ -936,39 +936,38 @@ VIDEO_START_MEMBER(raiden2_state,raiden2) /* SCREEN_UPDATE_IND16 (move to video file) */ -static SCREEN_UPDATE_IND16( raiden2 ) +UINT32 raiden2_state::screen_update_raiden2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - raiden2_state *state = screen.machine().driver_data<raiden2_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); //if (!screen.machine().input().code_pressed(KEYCODE_Q)) { - if (!(state->raiden2_tilemap_enable & 1)) - state->background_layer->draw(bitmap, cliprect, 0, 0); + if (!(raiden2_tilemap_enable & 1)) + background_layer->draw(bitmap, cliprect, 0, 0); } //if (!screen.machine().input().code_pressed(KEYCODE_W)) { - if (!(state->raiden2_tilemap_enable & 2)) - state->midground_layer->draw(bitmap, cliprect, 0, 0); + if (!(raiden2_tilemap_enable & 2)) + midground_layer->draw(bitmap, cliprect, 0, 0); } //if (!screen.machine().input().code_pressed(KEYCODE_E)) { - if (!(state->raiden2_tilemap_enable & 4)) - state->foreground_layer->draw(bitmap, cliprect, 0, 0); + if (!(raiden2_tilemap_enable & 4)) + foreground_layer->draw(bitmap, cliprect, 0, 0); } //if (!screen.machine().input().code_pressed(KEYCODE_S)) { //if (!(raiden2_tilemap_enable & 0x10)) - state->draw_sprites(screen.machine(), bitmap, cliprect, 0); + draw_sprites(screen.machine(), bitmap, cliprect, 0); } //if (!screen.machine().input().code_pressed(KEYCODE_A)) { - if (!(state->raiden2_tilemap_enable & 8)) - state->text_layer->draw(bitmap, cliprect, 0, 0); + if (!(raiden2_tilemap_enable & 8)) + text_layer->draw(bitmap, cliprect, 0, 0); } return 0; @@ -1816,7 +1815,7 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(raiden2) + MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2) MCFG_GFXDECODE(raiden2) MCFG_PALETTE_LENGTH(2048) @@ -1872,7 +1871,7 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(raiden2) + MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2) MCFG_GFXDECODE(raiden2) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c index b3f3acd33fe..749841458e8 100644 --- a/src/mame/drivers/rainbow.c +++ b/src/mame/drivers/rainbow.c @@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( rbisland, rbisland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(rainbow) + MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow) MCFG_GFXDECODE(rbisland) MCFG_PALETTE_LENGTH(8192) @@ -730,7 +730,7 @@ static MACHINE_CONFIG_START( jumping, rbisland_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(jumping) + MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping) MCFG_GFXDECODE(jumping) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c index 0c9ea1308ce..ce740be1b14 100644 --- a/src/mame/drivers/rallyx.c +++ b/src/mame/drivers/rallyx.c @@ -923,7 +923,7 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(rallyx) + MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_rallyx) MCFG_GFXDECODE(rallyx) MCFG_PALETTE_LENGTH(64*4+4) @@ -961,7 +961,7 @@ static MACHINE_CONFIG_START( jungler, rallyx_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(36*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(jungler) + MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_jungler) MCFG_GFXDECODE(jungler) MCFG_PALETTE_LENGTH(64*4+4+64) @@ -981,7 +981,7 @@ static MACHINE_CONFIG_DERIVED( tactcian, jungler ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(locomotn) + MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn) MACHINE_CONFIG_END @@ -992,7 +992,7 @@ static MACHINE_CONFIG_DERIVED( locomotn, jungler ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(locomotn) + MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn) MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn) MACHINE_CONFIG_END @@ -1004,7 +1004,7 @@ static MACHINE_CONFIG_DERIVED( commsega, jungler ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(locomotn) + MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn) MCFG_VIDEO_START_OVERRIDE(rallyx_state,commsega) MACHINE_CONFIG_END diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c index 0b81887cb84..aef16c1fb9e 100644 --- a/src/mame/drivers/rampart.c +++ b/src/mame/drivers/rampart.c @@ -362,7 +362,7 @@ static MACHINE_CONFIG_START( rampart, rampart_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(rampart) + MCFG_SCREEN_UPDATE_DRIVER(rampart_state, screen_update_rampart) MCFG_VIDEO_START_OVERRIDE(rampart_state,rampart) diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c index b044b628c16..d1ce6b13d4f 100644 --- a/src/mame/drivers/rastan.c +++ b/src/mame/drivers/rastan.c @@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( rastan, rastan_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(rastan) + MCFG_SCREEN_UPDATE_DRIVER(rastan_state, screen_update_rastan) MCFG_GFXDECODE(rastan) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c index f98ae2f8117..a71618e8cbb 100644 --- a/src/mame/drivers/rbmk.c +++ b/src/mame/drivers/rbmk.c @@ -78,6 +78,7 @@ public: DECLARE_WRITE8_MEMBER(mcu_io_mux_w); DECLARE_WRITE16_MEMBER(eeprom_w); virtual void video_start(); + UINT32 screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -497,9 +498,8 @@ void rbmk_state::video_start() { } -static SCREEN_UPDATE_IND16(rbmk) +UINT32 rbmk_state::screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - rbmk_state *state = screen.machine().driver_data<rbmk_state>(); int x,y; int count = 0; @@ -507,8 +507,8 @@ static SCREEN_UPDATE_IND16(rbmk) { for (x=0;x<64;x++) { - int tile = state->m_gms_vidram2[count+0x600]; - drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],(tile&0xfff)+((state->m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32); + int tile = m_gms_vidram2[count+0x600]; + drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],(tile&0xfff)+((m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32); count++; } } @@ -519,8 +519,8 @@ static SCREEN_UPDATE_IND16(rbmk) { for (x=0;x<64;x++) { - int tile = state->m_gms_vidram[count]; - drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],(tile&0xfff)+((state->m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0); + int tile = m_gms_vidram[count]; + drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],(tile&0xfff)+((m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0); count++; } } @@ -550,7 +550,7 @@ static MACHINE_CONFIG_START( rbmk, rbmk_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(rbmk) + MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update_rbmk) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c index 94c651ee180..8ee1af6fad4 100644 --- a/src/mame/drivers/realbrk.c +++ b/src/mame/drivers/realbrk.c @@ -768,7 +768,7 @@ static MACHINE_CONFIG_START( realbrk, realbrk_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x140, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(realbrk) + MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update_realbrk) MCFG_GFXDECODE(realbrk) MCFG_PALETTE_LENGTH(0x8000) @@ -802,7 +802,7 @@ static MACHINE_CONFIG_DERIVED( dai2kaku, realbrk ) MCFG_GFXDECODE(dai2kaku) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(dai2kaku) + MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update_dai2kaku) MACHINE_CONFIG_END diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c index 7574cb45799..49ddbd88151 100644 --- a/src/mame/drivers/redclash.c +++ b/src/mame/drivers/redclash.c @@ -365,8 +365,8 @@ static MACHINE_CONFIG_START( zerohour, ladybug_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(redclash) - MCFG_SCREEN_VBLANK_STATIC(redclash) + MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_redclash) + MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash) MCFG_GFXDECODE(redclash) MCFG_PALETTE_LENGTH(4*8+4*16+32) @@ -393,8 +393,8 @@ static MACHINE_CONFIG_START( redclash, ladybug_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(redclash) - MCFG_SCREEN_VBLANK_STATIC(redclash) + MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_redclash) + MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash) MCFG_GFXDECODE(redclash) MCFG_PALETTE_LENGTH(4*8+4*16+32) diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c index ba554a764e5..d7b828bae5a 100644 --- a/src/mame/drivers/relief.c +++ b/src/mame/drivers/relief.c @@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( relief, relief_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a VAD chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(relief) + MCFG_SCREEN_UPDATE_DRIVER(relief_state, screen_update_relief) MCFG_VIDEO_START_OVERRIDE(relief_state,relief) diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c index 0b7467aa3f7..cad46273909 100644 --- a/src/mame/drivers/renegade.c +++ b/src/mame/drivers/renegade.c @@ -950,7 +950,7 @@ static MACHINE_CONFIG_START( renegade, renegade_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)*2) /* not accurate */ MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(renegade) + MCFG_SCREEN_UPDATE_DRIVER(renegade_state, screen_update_renegade) MCFG_GFXDECODE(renegade) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c index d463414c6c3..ec5cec4f981 100644 --- a/src/mame/drivers/retofinv.c +++ b/src/mame/drivers/retofinv.c @@ -388,7 +388,7 @@ static MACHINE_CONFIG_START( retofinv, retofinv_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(retofinv) + MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update_retofinv) MCFG_GFXDECODE(retofinv) MCFG_PALETTE_LENGTH(256*2+64*16+64*16) diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c index 2e2d1b2d1ed..22388013368 100644 --- a/src/mame/drivers/rgum.c +++ b/src/mame/drivers/rgum.c @@ -32,6 +32,7 @@ public: UINT8 m_hbeat; DECLARE_CUSTOM_INPUT_MEMBER(rgum_heartbeat_r); virtual void video_start(); + UINT32 screen_update_royalgum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -39,9 +40,8 @@ void rgum_state::video_start() { } -static SCREEN_UPDATE_IND16(royalgum) +UINT32 rgum_state::screen_update_royalgum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - rgum_state *state = screen.machine().driver_data<rgum_state>(); int x,y,count; gfx_element *gfx = screen.machine().gfx[0]; @@ -51,7 +51,7 @@ static SCREEN_UPDATE_IND16(royalgum) { for(x=0;x<66;x++) { - int tile = state->m_vram[count] | ((state->m_cram[count] & 0xf) <<8); + int tile = m_vram[count] | ((m_cram[count] & 0xf) <<8); drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); @@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( rgum, rgum_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(royalgum) + MCFG_SCREEN_UPDATE_DRIVER(rgum_state, screen_update_royalgum) MCFG_MC6845_ADD("crtc", MC6845, 24000000/16, mc6845_intf) /* unknown clock & type, hand tuned to get ~50 fps (?) */ diff --git a/src/mame/drivers/rltennis.c b/src/mame/drivers/rltennis.c index df980cfda15..27f465668de 100644 --- a/src/mame/drivers/rltennis.c +++ b/src/mame/drivers/rltennis.c @@ -192,7 +192,7 @@ static MACHINE_CONFIG_START( rltennis, rltennis_state ) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(rltennis) + MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update_rltennis) MCFG_PALETTE_LENGTH(256) MCFG_NVRAM_ADD_0FILL("nvram") diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c index 88f560f0304..f6350fa50ec 100644 --- a/src/mame/drivers/rmhaihai.c +++ b/src/mame/drivers/rmhaihai.c @@ -59,6 +59,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); DECLARE_MACHINE_RESET(themj); + UINT32 screen_update_rmhaihai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -90,10 +91,9 @@ void rmhaihai_state::video_start() 8, 8, 64, 32); } -static SCREEN_UPDATE_IND16( rmhaihai ) +UINT32 rmhaihai_state::screen_update_rmhaihai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - rmhaihai_state *state = screen.machine().driver_data<rmhaihai_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -477,7 +477,7 @@ static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(4*8, 60*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(rmhaihai) + MCFG_SCREEN_UPDATE_DRIVER(rmhaihai_state, screen_update_rmhaihai) MCFG_GFXDECODE(rmhaihai) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c index 494d85c72bd..11ecdf52ffe 100644 --- a/src/mame/drivers/rockrage.c +++ b/src/mame/drivers/rockrage.c @@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( rockrage, rockrage_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(rockrage) + MCFG_SCREEN_UPDATE_DRIVER(rockrage_state, screen_update_rockrage) MCFG_K007342_ADD("k007342", rockrage_k007342_intf) MCFG_K007420_ADD("k007420", rockrage_k007420_intf) diff --git a/src/mame/drivers/rocnrope.c b/src/mame/drivers/rocnrope.c index c847b810c40..5f0518770c5 100644 --- a/src/mame/drivers/rocnrope.c +++ b/src/mame/drivers/rocnrope.c @@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( rocnrope, rocnrope_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(rocnrope) + MCFG_SCREEN_UPDATE_DRIVER(rocnrope_state, screen_update_rocnrope) MCFG_GFXDECODE(rocnrope) MCFG_PALETTE_LENGTH(16*16+16*16) diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c index 4537cd717a8..e0ebffc34cd 100644 --- a/src/mame/drivers/rohga.c +++ b/src/mame/drivers/rohga.c @@ -813,7 +813,7 @@ static MACHINE_CONFIG_START( rohga, rohga_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(rohga) + MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga) MCFG_GFXDECODE(rohga) MCFG_PALETTE_LENGTH(2048) @@ -864,7 +864,7 @@ static MACHINE_CONFIG_START( wizdfire, rohga_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(wizdfire) + MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire) MCFG_GFXDECODE(wizdfire) MCFG_PALETTE_LENGTH(2048) @@ -918,7 +918,7 @@ static MACHINE_CONFIG_START( nitrobal, rohga_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(nitrobal) + MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal) MCFG_GFXDECODE(wizdfire) MCFG_PALETTE_LENGTH(2048) @@ -971,7 +971,7 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(rohga) + MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga) MCFG_GFXDECODE(schmeisr) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c index 53d7828da7f..b248f1840f5 100644 --- a/src/mame/drivers/rollerg.c +++ b/src/mame/drivers/rollerg.c @@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( rollerg, rollerg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(rollerg) + MCFG_SCREEN_UPDATE_DRIVER(rollerg_state, screen_update_rollerg) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c index cad90051fb8..c1275843fbc 100644 --- a/src/mame/drivers/rollrace.c +++ b/src/mame/drivers/rollrace.c @@ -241,7 +241,7 @@ static MACHINE_CONFIG_START( rollrace, rollrace_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(16,255,16, 255-16) - MCFG_SCREEN_UPDATE_STATIC(rollrace) + MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update_rollrace) MCFG_GFXDECODE(rollrace) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/rotaryf.c b/src/mame/drivers/rotaryf.c index 038ff849ee3..d3484574ea6 100644 --- a/src/mame/drivers/rotaryf.c +++ b/src/mame/drivers/rotaryf.c @@ -26,6 +26,7 @@ public: required_device<cpu_device> m_maincpu; required_shared_ptr<UINT8> m_videoram; + UINT32 screen_update_rotaryf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -61,18 +62,17 @@ static TIMER_DEVICE_CALLBACK( rotaryf_interrupt ) * *************************************/ -static SCREEN_UPDATE_RGB32( rotaryf ) +UINT32 rotaryf_state::screen_update_rotaryf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - rotaryf_state *state = screen.machine().driver_data<rotaryf_state>(); offs_t offs; - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; UINT8 x = offs << 3; int y = offs >> 5; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; for (i = 0; i < 8; i++) { @@ -178,7 +178,7 @@ static MACHINE_CONFIG_START( rotaryf, rotaryf_state ) MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess, taken from mw8080bw */ MCFG_SCREEN_VISIBLE_AREA(1*8, 30*8-1, 0*8, 32*8-1) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_STATIC(rotaryf) + MCFG_SCREEN_UPDATE_DRIVER(rotaryf_state, screen_update_rotaryf) MACHINE_CONFIG_END diff --git a/src/mame/drivers/roul.c b/src/mame/drivers/roul.c index ca111e422c5..0469b895395 100644 --- a/src/mame/drivers/roul.c +++ b/src/mame/drivers/roul.c @@ -82,6 +82,7 @@ public: DECLARE_WRITE8_MEMBER(ball_w); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -214,13 +215,12 @@ void roul_state::video_start() m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE); } -static SCREEN_UPDATE_IND16(roul) +UINT32 roul_state::screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - roul_state *state = screen.machine().driver_data<roul_state>(); int i,j; for (i = 0; i < 256; i++) for (j = 0; j < 256; j++) - bitmap.pix16(j, i) = state->m_videobuf[j * 256 + 255 - i]; + bitmap.pix16(j, i) = m_videobuf[j * 256 + 255 - i]; return 0; } @@ -294,7 +294,7 @@ static MACHINE_CONFIG_START( roul, roul_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(roul) + MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update_roul) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c index 6f82dccb27d..ab4b93508c0 100644 --- a/src/mame/drivers/route16.c +++ b/src/mame/drivers/route16.c @@ -612,7 +612,7 @@ static MACHINE_CONFIG_START( route16, route16_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) MCFG_SCREEN_REFRESH_RATE(57) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) /* frames per second, vblank duration */ - MCFG_SCREEN_UPDATE_STATIC(route16) + MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_route16) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -640,7 +640,7 @@ static MACHINE_CONFIG_DERIVED( stratvox, route16 ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(stratvox) + MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_stratvox) /* sound hardware */ MCFG_SOUND_MODIFY("ay8910") @@ -678,7 +678,7 @@ static MACHINE_CONFIG_DERIVED( ttmahjng, route16 ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(ttmahjng) + MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng) MACHINE_CONFIG_END diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c index 87feb2b05ad..1ab6b4821ce 100644 --- a/src/mame/drivers/royalmah.c +++ b/src/mame/drivers/royalmah.c @@ -196,6 +196,7 @@ public: DECLARE_DRIVER_INIT(ippatsu); virtual void palette_init(); DECLARE_PALETTE_INIT(mjderngr); + UINT32 screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -283,10 +284,9 @@ WRITE8_MEMBER(royalmah_state::mjderngr_palbank_w) } -static SCREEN_UPDATE_IND16( royalmah ) +UINT32 royalmah_state::screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - royalmah_state *state = screen.machine().driver_data<royalmah_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; offs_t offs; @@ -304,7 +304,7 @@ static SCREEN_UPDATE_IND16( royalmah ) { UINT8 pen = ((data2 >> 1) & 0x08) | ((data2 << 2) & 0x04) | ((data1 >> 3) & 0x02) | ((data1 >> 0) & 0x01); - bitmap.pix16(y, x) = (state->m_palette_base << 4) | pen; + bitmap.pix16(y, x) = (m_palette_base << 4) | pen; x = x - 1; data1 = data1 >> 1; @@ -3181,7 +3181,7 @@ static MACHINE_CONFIG_START( royalmah, royalmah_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_STATIC(royalmah) + MCFG_SCREEN_UPDATE_DRIVER(royalmah_state, screen_update_royalmah) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c index 610af4bce61..a46516f3932 100644 --- a/src/mame/drivers/rpunch.c +++ b/src/mame/drivers/rpunch.c @@ -476,7 +476,7 @@ static MACHINE_CONFIG_START( rpunch, rpunch_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(304, 224) MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8) - MCFG_SCREEN_UPDATE_STATIC(rpunch) + MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch) MCFG_GFXDECODE(rpunch) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c index fc19af335d2..392a20fa8bc 100644 --- a/src/mame/drivers/runaway.c +++ b/src/mame/drivers/runaway.c @@ -359,7 +359,7 @@ static MACHINE_CONFIG_START( runaway, runaway_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 263) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(runaway) + MCFG_SCREEN_UPDATE_DRIVER(runaway_state, screen_update_runaway) MCFG_GFXDECODE(runaway) MCFG_PALETTE_LENGTH(16) @@ -387,7 +387,7 @@ static MACHINE_CONFIG_DERIVED( qwak, runaway ) MCFG_VIDEO_START_OVERRIDE(runaway_state,qwak) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(qwak) + MCFG_SCREEN_UPDATE_DRIVER(runaway_state, screen_update_qwak) MACHINE_CONFIG_END diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c index b57dada2cc7..25f85113444 100644 --- a/src/mame/drivers/rungun.c +++ b/src/mame/drivers/rungun.c @@ -420,7 +420,7 @@ static MACHINE_CONFIG_START( rng, rungun_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(88, 88+384-1, 24, 24+224-1) - MCFG_SCREEN_UPDATE_STATIC(rng) + MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c index d1ebca0ebee..919e056c97f 100644 --- a/src/mame/drivers/safarir.c +++ b/src/mame/drivers/safarir.c @@ -78,6 +78,7 @@ public: virtual void machine_start(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -200,14 +201,13 @@ void safarir_state::video_start() } -static SCREEN_UPDATE_IND16( safarir ) +UINT32 safarir_state::screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - safarir_state *state = screen.machine().driver_data<safarir_state>(); - state->m_bg_tilemap->set_scrollx(0, *state->m_bg_scroll); + m_bg_tilemap->set_scrollx(0, *m_bg_scroll); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -415,7 +415,7 @@ static MACHINE_CONFIG_START( safarir, safarir_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_STATIC(safarir) + MCFG_SCREEN_UPDATE_DRIVER(safarir_state, screen_update_safarir) /* audio hardware */ MCFG_FRAGMENT_ADD(safarir_audio) diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c index 42e97c5a285..4d59798f675 100644 --- a/src/mame/drivers/sandscrp.c +++ b/src/mame/drivers/sandscrp.c @@ -109,13 +109,14 @@ public: DECLARE_READ8_MEMBER(sandscrp_soundlatch_r); DECLARE_WRITE8_MEMBER(sandscrp_soundlatch_w); virtual void machine_reset(); + UINT32 screen_update_sandscrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_sandscrp(screen_device &screen, bool state); }; -SCREEN_UPDATE_IND16( sandscrp ) +UINT32 sandscrp_state::screen_update_sandscrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - sandscrp_state *state = screen.machine().driver_data<sandscrp_state>(); device_t *pandora = screen.machine().device("pandora"); bitmap.fill(0, cliprect); @@ -123,11 +124,11 @@ SCREEN_UPDATE_IND16( sandscrp ) screen.machine().priority_bitmap.fill(0, cliprect); - state->m_view2_0->kaneko16_prepare(bitmap, cliprect); + m_view2_0->kaneko16_prepare(bitmap, cliprect); for ( i = 0; i < 8; i++ ) { - state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i); + m_view2_0->render_tilemap_chip(bitmap,cliprect,i); } // copy sprite bitmap to screen @@ -167,14 +168,13 @@ static INTERRUPT_GEN( sandscrp_interrupt ) } -static SCREEN_VBLANK( sandscrp ) +void sandscrp_state::screen_eof_sandscrp(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - sandscrp_state *state = screen.machine().driver_data<sandscrp_state>(); device_t *pandora = screen.machine().device("pandora"); - state->m_sprite_irq = 1; + m_sprite_irq = 1; update_irq_state(screen.machine()); pandora_eof(pandora); } @@ -515,8 +515,8 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state ) MCFG_SCREEN_VBLANK_TIME( ATTOSECONDS_IN_USEC(2500) /* not accurate */ ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(sandscrp) - MCFG_SCREEN_VBLANK_STATIC(sandscrp) + MCFG_SCREEN_UPDATE_DRIVER(sandscrp_state, screen_update_sandscrp) + MCFG_SCREEN_VBLANK_DRIVER(sandscrp_state, screen_eof_sandscrp) MCFG_GFXDECODE(sandscrp) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/saturn.c b/src/mame/drivers/saturn.c index ceba5514e6a..1b4d99328e5 100644 --- a/src/mame/drivers/saturn.c +++ b/src/mame/drivers/saturn.c @@ -2207,10 +2207,10 @@ static MACHINE_CONFIG_START( saturn, saturn_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224) #if NEW_VIDEO_CODE - MCFG_SCREEN_UPDATE_STATIC(saturn) + MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_saturn) MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. (TODO: remove AT LEAST the latter) #else - MCFG_SCREEN_UPDATE_STATIC(stv_vdp2) + MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_stv_vdp2) MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. #endif @@ -2296,10 +2296,10 @@ static MACHINE_CONFIG_START( stv, saturn_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224) #if NEW_VIDEO_CODE - MCFG_SCREEN_UPDATE_STATIC(saturn) + MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_saturn) MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. (TODO: remove AT LEAST the latter) #else - MCFG_SCREEN_UPDATE_STATIC(stv_vdp2) + MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_stv_vdp2) MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. #endif diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c index 258905c62a1..be07dd82109 100644 --- a/src/mame/drivers/sauro.c +++ b/src/mame/drivers/sauro.c @@ -407,7 +407,7 @@ static MACHINE_CONFIG_DERIVED( trckydoc, tecfri ) MCFG_VIDEO_START_OVERRIDE(sauro_state,trckydoc) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(trckydoc) + MCFG_SCREEN_UPDATE_DRIVER(sauro_state, screen_update_trckydoc) MACHINE_CONFIG_END @@ -425,7 +425,7 @@ static MACHINE_CONFIG_DERIVED( sauro, tecfri ) MCFG_VIDEO_START_OVERRIDE(sauro_state,sauro) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(sauro) + MCFG_SCREEN_UPDATE_DRIVER(sauro_state, screen_update_sauro) MCFG_SOUND_ADD("speech", SP0256, 3120000) MCFG_SOUND_CONFIG(sauro_sp256) diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c index 6cba6571c3b..a354b2e61a2 100644 --- a/src/mame/drivers/sbasketb.c +++ b/src/mame/drivers/sbasketb.c @@ -210,7 +210,7 @@ static MACHINE_CONFIG_START( sbasketb, sbasketb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(sbasketb) + MCFG_SCREEN_UPDATE_DRIVER(sbasketb_state, screen_update_sbasketb) MCFG_GFXDECODE(sbasketb) MCFG_PALETTE_LENGTH(16*16+16*16*16) diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c index d96dacd92e4..7e501f49a7e 100644 --- a/src/mame/drivers/sbowling.c +++ b/src/mame/drivers/sbowling.c @@ -73,6 +73,7 @@ public: TILE_GET_INFO_MEMBER(get_sb_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(sbowling_state::get_sb_tile_info) @@ -116,13 +117,12 @@ WRITE8_MEMBER(sbowling_state::sbw_videoram_w) } } -static SCREEN_UPDATE_IND16(sbowling) +UINT32 sbowling_state::screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - sbowling_state *state = screen.machine().driver_data<sbowling_state>(); bitmap.fill(0x18, cliprect); - state->m_sb_tilemap->draw(bitmap, cliprect, 0, 0); - copybitmap_trans(bitmap, *state->m_tmpbitmap, 0, 0, 0, 0, cliprect, state->m_color_prom_address); + m_sb_tilemap->draw(bitmap, cliprect, 0, 0); + copybitmap_trans(bitmap, *m_tmpbitmap, 0, 0, 0, 0, cliprect, m_color_prom_address); return 0; } @@ -392,7 +392,7 @@ static MACHINE_CONFIG_START( sbowling, sbowling_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 262) /* vert size taken from mw8080bw */ MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(sbowling) + MCFG_SCREEN_UPDATE_DRIVER(sbowling_state, screen_update_sbowling) MCFG_GFXDECODE(sbowling) diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index 12eec0a6b24..a6f3dace53b 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -66,6 +66,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_sbrkout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -327,13 +328,12 @@ WRITE8_MEMBER(sbrkout_state::sbrkout_videoram_w) * *************************************/ -static SCREEN_UPDATE_IND16( sbrkout ) +UINT32 sbrkout_state::screen_update_sbrkout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - sbrkout_state *state = screen.machine().driver_data<sbrkout_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; int ball; - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); for (ball = 2; ball >= 0; ball--) { @@ -514,7 +514,7 @@ static MACHINE_CONFIG_START( sbrkout, sbrkout_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 384, 0, 256, 262, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(sbrkout) + MCFG_SCREEN_UPDATE_DRIVER(sbrkout_state, screen_update_sbrkout) MCFG_PALETTE_INIT(black_and_white) diff --git a/src/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c index 2f3954343e4..38a765221d7 100644 --- a/src/mame/drivers/sbugger.c +++ b/src/mame/drivers/sbugger.c @@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( sbugger, sbugger_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(sbugger) + MCFG_SCREEN_UPDATE_DRIVER(sbugger_state, screen_update_sbugger) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c index a4e4b60f213..a1a774e77e1 100644 --- a/src/mame/drivers/scobra.c +++ b/src/mame/drivers/scobra.c @@ -681,7 +681,7 @@ static MACHINE_CONFIG_START( type1, scobra_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold) MCFG_GFXDECODE(scobra) MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */ @@ -804,7 +804,7 @@ static MACHINE_CONFIG_START( hustler, scobra_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold) MCFG_GFXDECODE(scobra) MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */ diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c index 8139f024de6..8b77888347d 100644 --- a/src/mame/drivers/scotrsht.c +++ b/src/mame/drivers/scotrsht.c @@ -197,7 +197,7 @@ static MACHINE_CONFIG_START( scotrsht, scotrsht_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(scotrsht) + MCFG_SCREEN_UPDATE_DRIVER(scotrsht_state, screen_update_scotrsht) MCFG_GFXDECODE(scotrsht) MCFG_PALETTE_LENGTH(16*8*16+16*8*16) diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c index efa1498f515..0c8b57a74ca 100644 --- a/src/mame/drivers/scramble.c +++ b/src/mame/drivers/scramble.c @@ -1344,7 +1344,7 @@ static MACHINE_CONFIG_START( scramble, scramble_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold) MCFG_GFXDECODE(scramble) MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ @@ -1572,7 +1572,7 @@ static MACHINE_CONFIG_START( ad2083, scramble_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(galaxold) + MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold) MCFG_GFXDECODE(ad2083) MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */ diff --git a/src/mame/drivers/scregg.c b/src/mame/drivers/scregg.c index 76e38a277c2..384e25ac1ca 100644 --- a/src/mame/drivers/scregg.c +++ b/src/mame/drivers/scregg.c @@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( dommy, scregg_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz/2, 384, 8, 248, 272, 8, 248) - MCFG_SCREEN_UPDATE_STATIC(eggs) + MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs) MCFG_GFXDECODE(scregg) MCFG_PALETTE_LENGTH(8) @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( scregg, scregg_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz/2, 384, 8, 248, 272, 8, 248) - MCFG_SCREEN_UPDATE_STATIC(eggs) + MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs) MCFG_GFXDECODE(scregg) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c index e88dbf820f4..6adbff69d79 100644 --- a/src/mame/drivers/sderby.c +++ b/src/mame/drivers/sderby.c @@ -506,7 +506,7 @@ static MACHINE_CONFIG_START( sderby, sderby_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) - MCFG_SCREEN_UPDATE_STATIC(sderby) + MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby) MCFG_GFXDECODE(sderby) MCFG_PALETTE_LENGTH(0x1000) @@ -529,7 +529,7 @@ static MACHINE_CONFIG_START( luckboom, sderby_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) - MCFG_SCREEN_UPDATE_STATIC(sderby) + MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby) MCFG_GFXDECODE(sderby) MCFG_PALETTE_LENGTH(0x1000) @@ -552,7 +552,7 @@ static MACHINE_CONFIG_START( spacewin, sderby_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) - MCFG_SCREEN_UPDATE_STATIC(pmroulet) + MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet) MCFG_GFXDECODE(sderby) MCFG_PALETTE_LENGTH(0x1000) @@ -575,7 +575,7 @@ static MACHINE_CONFIG_START( pmroulet, sderby_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) - MCFG_SCREEN_UPDATE_STATIC(pmroulet) + MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet) MCFG_GFXDECODE(sderby) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c index 5a8b953bffc..4b1b78d49e9 100644 --- a/src/mame/drivers/seattle.c +++ b/src/mame/drivers/seattle.c @@ -493,6 +493,7 @@ public: DECLARE_DRIVER_INIT(blitz99); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_seattle(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -519,10 +520,9 @@ static void update_widget_irq(running_machine &machine); * *************************************/ -static SCREEN_UPDATE_RGB32( seattle ) +UINT32 seattle_state::screen_update_seattle(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - seattle_state *state = screen.machine().driver_data<seattle_state>(); - return voodoo_update(state->m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED; + return voodoo_update(m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED; } @@ -2559,7 +2559,7 @@ static MACHINE_CONFIG_START( seattle_common, seattle_state ) MCFG_SCREEN_REFRESH_RATE(57) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(seattle) + MCFG_SCREEN_UPDATE_DRIVER(seattle_state, screen_update_seattle) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index cefaa669259..c1223e90557 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -1273,17 +1273,16 @@ VIDEO_START_MEMBER(segac2_state,segac2_new) // C2 doesn't use the internal VDP CRAM, instead it uses the digital output of the chip // and applies it's own external colour circuity -static SCREEN_UPDATE_RGB32(segac2_new) +UINT32 segac2_state::screen_update_segac2_new(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { const pen_t *paldata = screen.machine().pens; - segac2_state *state = screen.machine().driver_data<segac2_state>(); - if (!state->m_segac2_enable_display) + if (!m_segac2_enable_display) { bitmap.fill(get_black_pen(screen.machine()), cliprect); return 0; } - sega_genesis_vdp_device *vdp = state->m_vdp; + sega_genesis_vdp_device *vdp = m_vdp; /* Copy our screen buffer here */ for (int y = cliprect.min_y; y <= cliprect.max_y; y++) @@ -1394,7 +1393,7 @@ static MACHINE_CONFIG_START( segac, segac2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually. MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(segac2_new) + MCFG_SCREEN_UPDATE_DRIVER(segac2_state, screen_update_segac2_new) MCFG_SCREEN_VBLANK_STATIC( megadriv ) MCFG_PALETTE_LENGTH(2048*3) diff --git a/src/mame/drivers/segae.c b/src/mame/drivers/segae.c index 96d0a0792ec..cf9988a5c10 100644 --- a/src/mame/drivers/segae.c +++ b/src/mame/drivers/segae.c @@ -347,6 +347,7 @@ public: int m_last2; int m_diff1; int m_diff2; + UINT32 screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; class fantzn2_state : public systeme_state @@ -1074,12 +1075,11 @@ static const sega315_5124_interface _315_5124_2_intf = }; -static SCREEN_UPDATE_RGB32( systeme ) +UINT32 systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - systeme_state *state = screen.machine().driver_data<systeme_state>(); - bitmap_rgb32 &vdp1_bitmap = state->m_vdp1->get_bitmap(); - bitmap_rgb32 &vdp2_bitmap = state->m_vdp2->get_bitmap(); - bitmap_ind8 &vdp2_y1 = state->m_vdp2->get_y1_bitmap(); + bitmap_rgb32 &vdp1_bitmap = m_vdp1->get_bitmap(); + bitmap_rgb32 &vdp2_bitmap = m_vdp2->get_bitmap(); + bitmap_ind8 &vdp2_y1 = m_vdp2->get_y1_bitmap(); for( int y = cliprect.min_y; y <= cliprect.max_y; y++ ) { @@ -1118,7 +1118,7 @@ static MACHINE_CONFIG_START( systeme, systeme_state ) MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \ SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 192) - MCFG_SCREEN_UPDATE_STATIC( systeme ) /* Combines and copies a bitmap */ + MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update_systeme) MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) MCFG_PALETTE_INIT(sega315_5124) diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c index ac833cbabfd..0272e47ebdc 100644 --- a/src/mame/drivers/segag80r.c +++ b/src/mame/drivers/segag80r.c @@ -852,7 +852,7 @@ static MACHINE_CONFIG_START( g80r_base, segag80r_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(segag80r) + MCFG_SCREEN_UPDATE_DRIVER(segag80r_state, screen_update_segag80r) /* sound hardware */ diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c index 9e7f5570933..503e7a3e630 100644 --- a/src/mame/drivers/segag80v.c +++ b/src/mame/drivers/segag80v.c @@ -906,7 +906,7 @@ static MACHINE_CONFIG_START( g80v_base, segag80v_state ) MCFG_SCREEN_REFRESH_RATE(40) MCFG_SCREEN_SIZE(400, 300) MCFG_SCREEN_VISIBLE_AREA(512, 1536, 640-32, 1408+32) - MCFG_SCREEN_UPDATE_STATIC(segag80v) + MCFG_SCREEN_UPDATE_DRIVER(segag80v_state, screen_update_segag80v) /* sound hardware */ diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c index fac1fb8c11e..a6552629fb7 100644 --- a/src/mame/drivers/segald.c +++ b/src/mame/drivers/segald.c @@ -58,6 +58,7 @@ public: DECLARE_WRITE8_MEMBER(astron_io_bankswitch_w); DECLARE_DRIVER_INIT(astron); virtual void machine_start(); + UINT32 screen_update_astron(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; /* VIDEO GOODS */ @@ -106,7 +107,7 @@ static void astron_draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, } -static SCREEN_UPDATE_RGB32( astron ) +UINT32 segald_state::screen_update_astron(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); @@ -376,7 +377,7 @@ static MACHINE_CONFIG_START( astron, segald_state ) MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(256, 256, astron) + MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, segald_state, screen_update_astron) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c index aaaa02b4933..d46954b2c25 100644 --- a/src/mame/drivers/segas24.c +++ b/src/mame/drivers/segas24.c @@ -1967,7 +1967,7 @@ static MACHINE_CONFIG_START( system24, segas24_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/) - MCFG_SCREEN_UPDATE_STATIC(system24) + MCFG_SCREEN_UPDATE_DRIVER(segas24_state, screen_update_system24) MCFG_PALETTE_LENGTH(8192*2) diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c index f38c4e341e3..9f24c46ed67 100644 --- a/src/mame/drivers/segas32.c +++ b/src/mame/drivers/segas32.c @@ -2214,7 +2214,7 @@ static MACHINE_CONFIG_START( system32, segas32_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(52*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(system32) + MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_system32) MCFG_VIDEO_START_OVERRIDE(segas32_state,system32) @@ -2274,13 +2274,13 @@ static MACHINE_CONFIG_START( multi32, segas32_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(52*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(multi32_left) + MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_multi32_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(52*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(multi32_right) + MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_multi32_right) MCFG_VIDEO_START_OVERRIDE(segas32_state,multi32) diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c index 97b8d827a2f..6f62e18ab19 100644 --- a/src/mame/drivers/seibuspi.c +++ b/src/mame/drivers/seibuspi.c @@ -1870,7 +1870,7 @@ static MACHINE_CONFIG_START( spi, seibuspi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(spi) + MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi) MCFG_GFXDECODE(spi) MCFG_PALETTE_LENGTH(6144) @@ -2210,7 +2210,7 @@ static MACHINE_CONFIG_START( seibu386, seibuspi_state ) MCFG_PALETTE_LENGTH(6144) MCFG_VIDEO_START_OVERRIDE(seibuspi_state,spi) - MCFG_SCREEN_UPDATE_STATIC(spi) + MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2265,7 +2265,7 @@ static MACHINE_CONFIG_START( sys386f2, seibuspi_state ) MCFG_PALETTE_LENGTH(8192) MCFG_VIDEO_START_OVERRIDE(seibuspi_state,sys386f2) - MCFG_SCREEN_UPDATE_STATIC(sys386f2) + MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_sys386f2) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c index 34da218086b..fcd7f8942ad 100644 --- a/src/mame/drivers/seicross.c +++ b/src/mame/drivers/seicross.c @@ -419,7 +419,7 @@ static MACHINE_CONFIG_START( nvram, seicross_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seicross) + MCFG_SCREEN_UPDATE_DRIVER(seicross_state, screen_update_seicross) MCFG_GFXDECODE(seicross) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c index b8094121fd7..006a7322acd 100644 --- a/src/mame/drivers/senjyo.c +++ b/src/mame/drivers/senjyo.c @@ -589,7 +589,7 @@ static MACHINE_CONFIG_START( senjyo, senjyo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(senjyo) + MCFG_SCREEN_UPDATE_DRIVER(senjyo_state, screen_update_senjyo) MCFG_GFXDECODE(senjyo) MCFG_PALETTE_LENGTH(512+2) /* 512 real palette + 2 for the radar */ diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index 2bb5985ff8e..e1ebcc5e83a 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -1595,12 +1595,11 @@ READ8_MEMBER(seta_state::dsw2_r) Sprites Buffering */ -static SCREEN_VBLANK( seta_buffer_sprites ) +void seta_state::screen_eof_seta_buffer_sprites(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - //seta_state *state = machine.driver_data<seta_state>(); screen.machine().device<seta001_device>("spritegen")->setac_eof(); } } @@ -7499,7 +7498,7 @@ static MACHINE_CONFIG_START( tndrcade, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -7549,7 +7548,7 @@ static MACHINE_CONFIG_START( twineagl, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(downtown) MCFG_PALETTE_LENGTH(512) @@ -7591,7 +7590,7 @@ static MACHINE_CONFIG_START( downtown, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(downtown) MCFG_PALETTE_LENGTH(512) @@ -7650,7 +7649,7 @@ static MACHINE_CONFIG_START( usclssic, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 33*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(usclssic) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_usclssic) MCFG_GFXDECODE(usclssic) MCFG_PALETTE_LENGTH(16*32 + 64*32*2) /* sprites, layer */ @@ -7699,7 +7698,7 @@ static MACHINE_CONFIG_START( calibr50, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(downtown) MCFG_PALETTE_LENGTH(512) @@ -7739,7 +7738,7 @@ static MACHINE_CONFIG_START( metafox, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(downtown) MCFG_PALETTE_LENGTH(512) @@ -7775,7 +7774,7 @@ static MACHINE_CONFIG_START( atehate, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -7817,8 +7816,8 @@ static MACHINE_CONFIG_START( blandia, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) - MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* Blandia uses sprite buffering */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) + MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE(blandia) MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ @@ -7850,8 +7849,8 @@ static MACHINE_CONFIG_START( blandiap, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) - MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* Blandia uses sprite buffering */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) + MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE(blandia) MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ @@ -7888,7 +7887,7 @@ static MACHINE_CONFIG_START( blockcar, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -7924,7 +7923,7 @@ static MACHINE_CONFIG_START( daioh, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ @@ -7965,8 +7964,8 @@ static MACHINE_CONFIG_START( drgnunit, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) - MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* qzkklogy uses sprite buffering */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) + MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE(downtown) MCFG_PALETTE_LENGTH(512) @@ -8000,8 +7999,8 @@ static MACHINE_CONFIG_START( qzkklgy2, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) - MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* qzkklogy uses sprite buffering */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) + MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE(qzkklgy2) MCFG_PALETTE_LENGTH(512) @@ -8051,8 +8050,8 @@ static MACHINE_CONFIG_START( setaroul, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(setaroul) - MCFG_SCREEN_VBLANK_STATIC(setaroul) /* qzkklogy uses sprite buffering */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_setaroul) + MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_setaroul) MCFG_GFXDECODE(setaroul) MCFG_PALETTE_LENGTH(512) @@ -8089,7 +8088,7 @@ static MACHINE_CONFIG_START( eightfrc, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ @@ -8130,7 +8129,7 @@ static MACHINE_CONFIG_START( extdwnhl, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(zingzip) MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */ @@ -8191,7 +8190,7 @@ static MACHINE_CONFIG_START( gundhara, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(jjsquawk) MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ @@ -8232,7 +8231,7 @@ static MACHINE_CONFIG_START( jjsquawk, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(jjsquawk) MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ @@ -8264,7 +8263,7 @@ static MACHINE_CONFIG_START( jjsquawb, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(jjsquawk) MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ @@ -8305,7 +8304,7 @@ static MACHINE_CONFIG_START( kamenrid, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ @@ -8342,7 +8341,7 @@ static MACHINE_CONFIG_START( orbs, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(orbs) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -8380,7 +8379,7 @@ static MACHINE_CONFIG_START( keroppi, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(orbs) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -8416,7 +8415,7 @@ static MACHINE_CONFIG_START( krzybowl, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -8457,7 +8456,7 @@ static MACHINE_CONFIG_START( madshark, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(jjsquawk) MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ @@ -8499,7 +8498,7 @@ static MACHINE_CONFIG_START( magspeed, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ @@ -8545,8 +8544,8 @@ static MACHINE_CONFIG_START( msgundam, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) - MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* msgundam uses sprite buffering */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) + MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ @@ -8583,7 +8582,7 @@ static MACHINE_CONFIG_START( oisipuzl, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ @@ -8620,7 +8619,7 @@ static MACHINE_CONFIG_START( triplfun, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ @@ -8655,7 +8654,7 @@ static MACHINE_CONFIG_START( kiwame, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -8694,7 +8693,7 @@ static MACHINE_CONFIG_START( rezon, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ @@ -8733,7 +8732,7 @@ static MACHINE_CONFIG_START( thunderl, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -8804,7 +8803,7 @@ static MACHINE_CONFIG_START( wiggie, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(wiggie) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -8838,7 +8837,7 @@ static MACHINE_CONFIG_START( wits, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -8874,7 +8873,7 @@ static MACHINE_CONFIG_START( umanclub, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(512) @@ -8914,7 +8913,7 @@ static MACHINE_CONFIG_START( utoukond, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ @@ -8963,7 +8962,7 @@ static MACHINE_CONFIG_START( wrofaero, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ @@ -9006,7 +9005,7 @@ static MACHINE_CONFIG_START( zingzip, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(zingzip) MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */ @@ -9059,7 +9058,7 @@ static MACHINE_CONFIG_START( pairlove, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE(tndrcade) MCFG_PALETTE_LENGTH(2048) /* sprites only */ @@ -9107,7 +9106,7 @@ static MACHINE_CONFIG_START( crazyfgt, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE(crazyfgt) MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer1, layer2 */ @@ -9204,7 +9203,7 @@ static MACHINE_CONFIG_START( inttoote, seta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(inttoote) + MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_inttoote) MCFG_GFXDECODE(inttoote) MCFG_PALETTE_LENGTH(512 * 1) diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index 13a4b397f34..af4a6b1e2ce 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -2036,8 +2036,8 @@ static MACHINE_CONFIG_START( seta2, seta2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 0x200) MCFG_SCREEN_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1) - MCFG_SCREEN_UPDATE_STATIC(seta2) - MCFG_SCREEN_VBLANK_STATIC(seta2) + MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2) + MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2) MCFG_GFXDECODE(seta2) MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity @@ -2231,8 +2231,8 @@ static MACHINE_CONFIG_START( funcube, seta2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate MCFG_SCREEN_SIZE(0x200, 0x200) MCFG_SCREEN_VISIBLE_AREA(0x0+1, 0x140-1+1, 0x80, 0x170-1) - MCFG_SCREEN_UPDATE_STATIC(seta2) - MCFG_SCREEN_VBLANK_STATIC(seta2) + MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2) + MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2) MCFG_GFXDECODE(funcube) MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity @@ -2282,8 +2282,8 @@ static MACHINE_CONFIG_START( namcostr, seta2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 0x200) MCFG_SCREEN_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1) - MCFG_SCREEN_UPDATE_STATIC(seta2) - MCFG_SCREEN_VBLANK_STATIC(seta2) + MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2) + MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2) MCFG_GFXDECODE(funcube) MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c index f32f1f40fe3..f9cde4c9b01 100644 --- a/src/mame/drivers/sf.c +++ b/src/mame/drivers/sf.c @@ -856,7 +856,7 @@ static MACHINE_CONFIG_START( sf, sf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(sf) + MCFG_SCREEN_UPDATE_DRIVER(sf_state, screen_update_sf) MCFG_GFXDECODE(sf) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c index dce17be86a0..0be77ea157d 100644 --- a/src/mame/drivers/sfbonus.c +++ b/src/mame/drivers/sfbonus.c @@ -453,6 +453,7 @@ public: TILE_GET_INFO_MEMBER(get_sfbonus_reel4_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -1059,13 +1060,12 @@ static void sfbonus_draw_reel_layer(screen_device &screen, bitmap_ind16 &bitmap, } -static SCREEN_UPDATE_IND16(sfbonus) +UINT32 sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - sfbonus_state *state = screen.machine().driver_data<sfbonus_state>(); - int globalyscroll = (state->m_vregs[2] | state->m_vregs[3]<<8); - int globalxscroll = (state->m_vregs[0] | state->m_vregs[1]<<8); - UINT8* front_rowscroll = &state->m_videoram[0x200]; + int globalyscroll = (m_vregs[2] | m_vregs[3]<<8); + int globalxscroll = (m_vregs[0] | m_vregs[1]<<8); + UINT8* front_rowscroll = &m_videoram[0x200]; ioport_constructor ipt; int i; @@ -1074,10 +1074,10 @@ static SCREEN_UPDATE_IND16(sfbonus) globalxscroll += 8; bitmap.fill(screen.machine().pens[0], cliprect); - state->m_temp_reel_bitmap->fill(screen.machine().pens[0], cliprect); + m_temp_reel_bitmap->fill(screen.machine().pens[0], cliprect); /* render reels to bitmap */ - sfbonus_draw_reel_layer(screen,*state->m_temp_reel_bitmap,cliprect,0); + sfbonus_draw_reel_layer(screen,*m_temp_reel_bitmap,cliprect,0); { int y,x; @@ -1086,7 +1086,7 @@ static SCREEN_UPDATE_IND16(sfbonus) { for (x=0;x<512;x++) { - UINT16* src = &state->m_temp_reel_bitmap->pix16(y, x); + UINT16* src = &m_temp_reel_bitmap->pix16(y, x); UINT16* dst = &bitmap.pix16(y, x); if ((src[0]&0x100)==0x000) @@ -1096,14 +1096,14 @@ static SCREEN_UPDATE_IND16(sfbonus) } /* Normal Tilemap */ - state->m_tilemap->set_scrolly(0, globalyscroll ); + m_tilemap->set_scrolly(0, globalyscroll ); for (i=0;i<64;i++) { int scroll; scroll = front_rowscroll[(i*2)+0x000] | (front_rowscroll[(i*2)+0x001]<<8); - state->m_tilemap->set_scrollx(i, scroll+globalxscroll ); + m_tilemap->set_scrollx(i, scroll+globalxscroll ); } - state->m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(bitmap, cliprect, 0,0); { int y,x; @@ -1112,7 +1112,7 @@ static SCREEN_UPDATE_IND16(sfbonus) { for (x=0;x<512;x++) { - UINT16* src = &state->m_temp_reel_bitmap->pix16(y, x); + UINT16* src = &m_temp_reel_bitmap->pix16(y, x); UINT16* dst = &bitmap.pix16(y, x); if ((src[0]&0x100)==0x100) @@ -1122,52 +1122,52 @@ static SCREEN_UPDATE_IND16(sfbonus) } #if 0 popmessage("%02x %02x %02x %02x %02x %02x %02x %02x -- %02x -- %02x %02x -- %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x", - state->m_3800_regs[0], - state->m_3800_regs[1], - state->m_3800_regs[2], - state->m_3800_regs[3], - state->m_3800_regs[4], - state->m_3800_regs[5], - state->m_3800_regs[6], - state->m_3800_regs[7], - state->m_3000_regs[0], - state->m_2801_regs[0], - state->m_2c01_regs[0], - state->m_vregs[8], - state->m_vregs[0], - state->m_vregs[10], - state->m_vregs[11], - state->m_vregs[12], - state->m_vregs[13], - state->m_vregs[14], - state->m_vregs[15], - state->m_vregs[16], - state->m_vregs[17], - state->m_vregs[18], - state->m_vregs[19], - state->m_vregs[20], - state->m_vregs[21], - state->m_vregs[22], - state->m_vregs[23], - state->m_vregs[24], - state->m_vregs[25], - state->m_vregs[26], - state->m_vregs[27], - state->m_vregs[28], - state->m_vregs[29], - state->m_vregs[30], - state->m_vregs[31] + m_3800_regs[0], + m_3800_regs[1], + m_3800_regs[2], + m_3800_regs[3], + m_3800_regs[4], + m_3800_regs[5], + m_3800_regs[6], + m_3800_regs[7], + m_3000_regs[0], + m_2801_regs[0], + m_2c01_regs[0], + m_vregs[8], + m_vregs[0], + m_vregs[10], + m_vregs[11], + m_vregs[12], + m_vregs[13], + m_vregs[14], + m_vregs[15], + m_vregs[16], + m_vregs[17], + m_vregs[18], + m_vregs[19], + m_vregs[20], + m_vregs[21], + m_vregs[22], + m_vregs[23], + m_vregs[24], + m_vregs[25], + m_vregs[26], + m_vregs[27], + m_vregs[28], + m_vregs[29], + m_vregs[30], + m_vregs[31] ); popmessage("-- %02x %02x %02x %02x %02x %02x %02x %02x", - state->m_1800_regs[0], - state->m_1800_regs[1], - state->m_1800_regs[2], - state->m_1800_regs[3], - state->m_1800_regs[4], - state->m_1800_regs[5], - state->m_1800_regs[6], - state->m_1800_regs[7]); + m_1800_regs[0], + m_1800_regs[1], + m_1800_regs[2], + m_1800_regs[3], + m_1800_regs[4], + m_1800_regs[5], + m_1800_regs[6], + m_1800_regs[7]); #endif ipt = screen.machine().system().ipt; @@ -1175,22 +1175,22 @@ static SCREEN_UPDATE_IND16(sfbonus) || (ipt == INPUT_PORTS_NAME(amcoe2_poker))) { // based on pirpok2 - output_set_lamp_value(0, (state->m_1800_regs[6] & 0x1) >> 0); - output_set_lamp_value(1, (state->m_1800_regs[6] & 0x4) >> 2); - output_set_lamp_value(2, (state->m_1800_regs[5] & 0x4) >> 2); - output_set_lamp_value(3, (state->m_1800_regs[5] & 0x1) >> 0); - output_set_lamp_value(4, (state->m_1800_regs[4] & 0x4) >> 2); - output_set_lamp_value(5, (state->m_1800_regs[4] & 0x1) >> 0); + output_set_lamp_value(0, (m_1800_regs[6] & 0x1) >> 0); + output_set_lamp_value(1, (m_1800_regs[6] & 0x4) >> 2); + output_set_lamp_value(2, (m_1800_regs[5] & 0x4) >> 2); + output_set_lamp_value(3, (m_1800_regs[5] & 0x1) >> 0); + output_set_lamp_value(4, (m_1800_regs[4] & 0x4) >> 2); + output_set_lamp_value(5, (m_1800_regs[4] & 0x1) >> 0); } else if ((ipt == INPUT_PORTS_NAME(amcoe1_reels3)) || (ipt == INPUT_PORTS_NAME(amcoe1_reels4)) || (ipt == INPUT_PORTS_NAME(amcoe1_poker))) { - output_set_lamp_value(0, (state->m_1800_regs[0] & 0x2) >> 1); - output_set_lamp_value(1, (state->m_1800_regs[4] & 0x2) >> 1); - output_set_lamp_value(2, (state->m_1800_regs[3] & 0x2) >> 1); - output_set_lamp_value(3, (state->m_1800_regs[6] & 0x4) >> 2); - output_set_lamp_value(4, (state->m_1800_regs[4] & 0x4) >> 2); - output_set_lamp_value(5, (state->m_1800_regs[3] & 0x4) >> 2); + output_set_lamp_value(0, (m_1800_regs[0] & 0x2) >> 1); + output_set_lamp_value(1, (m_1800_regs[4] & 0x2) >> 1); + output_set_lamp_value(2, (m_1800_regs[3] & 0x2) >> 1); + output_set_lamp_value(3, (m_1800_regs[6] & 0x4) >> 2); + output_set_lamp_value(4, (m_1800_regs[4] & 0x4) >> 2); + output_set_lamp_value(5, (m_1800_regs[3] & 0x4) >> 2); } return 0; @@ -1372,7 +1372,7 @@ static MACHINE_CONFIG_START( sfbonus, sfbonus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(128*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 288-1) - MCFG_SCREEN_UPDATE_STATIC(sfbonus) + MCFG_SCREEN_UPDATE_DRIVER(sfbonus_state, screen_update_sfbonus) MCFG_PALETTE_LENGTH(0x100*2) // *2 for priority workaraound / custom drawing diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c index fe304919b97..8249c20ed89 100644 --- a/src/mame/drivers/shadfrce.c +++ b/src/mame/drivers/shadfrce.c @@ -565,8 +565,8 @@ static MACHINE_CONFIG_START( shadfrce, shadfrce_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 432, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ - MCFG_SCREEN_UPDATE_STATIC(shadfrce) - MCFG_SCREEN_VBLANK_STATIC(shadfrce) + MCFG_SCREEN_UPDATE_DRIVER(shadfrce_state, screen_update_shadfrce) + MCFG_SCREEN_VBLANK_DRIVER(shadfrce_state, screen_eof_shadfrce) MCFG_GFXDECODE(shadfrce) MCFG_PALETTE_LENGTH(0x4000) diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c index a28e7d0492b..fd7e63199be 100644 --- a/src/mame/drivers/shangha3.c +++ b/src/mame/drivers/shangha3.c @@ -481,7 +481,7 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(24*16, 16*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1) - MCFG_SCREEN_UPDATE_STATIC(shangha3) + MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3) MCFG_GFXDECODE(shangha3) MCFG_PALETTE_LENGTH(2048) @@ -518,7 +518,7 @@ static MACHINE_CONFIG_START( heberpop, shangha3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(24*16, 16*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1) - MCFG_SCREEN_UPDATE_STATIC(shangha3) + MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3) MCFG_GFXDECODE(shangha3) MCFG_PALETTE_LENGTH(2048) @@ -556,7 +556,7 @@ static MACHINE_CONFIG_START( blocken, shangha3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(24*16, 16*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1) - MCFG_SCREEN_UPDATE_STATIC(shangha3) + MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3) MCFG_GFXDECODE(shangha3) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c index aaf1b64e7fe..5d048fc6810 100644 --- a/src/mame/drivers/shanghai.c +++ b/src/mame/drivers/shanghai.c @@ -38,6 +38,7 @@ public: DECLARE_READ16_MEMBER(kothello_hd63484_status_r); virtual void video_start(); DECLARE_PALETTE_INIT(shanghai); + UINT32 screen_update_shanghai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -75,7 +76,7 @@ void shanghai_state::video_start() { } -static SCREEN_UPDATE_IND16( shanghai ) +UINT32 shanghai_state::screen_update_shanghai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { device_t *hd63484 = screen.machine().device("hd63484"); int x, y, b, src; @@ -452,7 +453,7 @@ static MACHINE_CONFIG_START( shanghai, shanghai_state ) MCFG_SCREEN_REFRESH_RATE(30) MCFG_SCREEN_SIZE(384, 280) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel - MCFG_SCREEN_UPDATE_STATIC(shanghai) + MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai) MCFG_PALETTE_LENGTH(256) @@ -485,7 +486,7 @@ static MACHINE_CONFIG_START( shangha2, shanghai_state ) MCFG_SCREEN_REFRESH_RATE(30) MCFG_SCREEN_SIZE(384, 280) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel - MCFG_SCREEN_UPDATE_STATIC(shanghai) + MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai) MCFG_PALETTE_LENGTH(256) @@ -522,7 +523,7 @@ static MACHINE_CONFIG_START( kothello, shanghai_state ) MCFG_SCREEN_REFRESH_RATE(30) MCFG_SCREEN_SIZE(384, 280) MCFG_SCREEN_VISIBLE_AREA(8, 384-1, 0, 250-1) // Base Screen is 376 pixel - MCFG_SCREEN_UPDATE_STATIC(shanghai) + MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c index e33ce38559c..7e851a421c5 100644 --- a/src/mame/drivers/shangkid.c +++ b/src/mame/drivers/shangkid.c @@ -384,7 +384,7 @@ static MACHINE_CONFIG_START( chinhero, shangkid_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(16, 319-16, 0, 223) - MCFG_SCREEN_UPDATE_STATIC(shangkid) + MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_shangkid) MCFG_GFXDECODE(chinhero) MCFG_PALETTE_LENGTH(256) @@ -463,7 +463,7 @@ static MACHINE_CONFIG_START( dynamski, shangkid_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256+32, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255+32, 16, 255-16) - MCFG_SCREEN_UPDATE_STATIC(dynamski) + MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_dynamski) MCFG_GFXDECODE(dynamski) MCFG_PALETTE_LENGTH(16*4+16*4) diff --git a/src/mame/drivers/shaolins.c b/src/mame/drivers/shaolins.c index 755213a7d33..b54fa3e3c6f 100644 --- a/src/mame/drivers/shaolins.c +++ b/src/mame/drivers/shaolins.c @@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( shaolins, shaolins_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(shaolins) + MCFG_SCREEN_UPDATE_DRIVER(shaolins_state, screen_update_shaolins) MCFG_GFXDECODE(shaolins) MCFG_PALETTE_LENGTH(16*8*16+16*8*16) diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c index 0f30e42f8d7..ccd3c7fb519 100644 --- a/src/mame/drivers/shisen.c +++ b/src/mame/drivers/shisen.c @@ -228,7 +228,7 @@ static MACHINE_CONFIG_START( shisen, shisen_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(sichuan2) + MCFG_SCREEN_UPDATE_DRIVER(shisen_state, screen_update_sichuan2) MCFG_GFXDECODE(shisen) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c index cb5678f517a..9bf934243ba 100644 --- a/src/mame/drivers/shootout.c +++ b/src/mame/drivers/shootout.c @@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( shootout, shootout_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(shootout) + MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootout) MCFG_GFXDECODE(shootout) MCFG_PALETTE_LENGTH(256) @@ -303,7 +303,7 @@ static MACHINE_CONFIG_START( shootouj, shootout_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(shootouj) + MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootouj) MCFG_GFXDECODE(shootout) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c index 8750846ecaf..b80f0b62d50 100644 --- a/src/mame/drivers/shougi.c +++ b/src/mame/drivers/shougi.c @@ -111,6 +111,7 @@ public: DECLARE_WRITE8_MEMBER(nmi_enable_w); DECLARE_READ8_MEMBER(dummy_r); virtual void palette_init(); + UINT32 screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -174,9 +175,8 @@ void shougi_state::palette_init() -static SCREEN_UPDATE_IND16( shougi ) +UINT32 shougi_state::screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - shougi_state *state = screen.machine().driver_data<shougi_state>(); int offs; for (offs = 0;offs <0x4000; offs++) @@ -188,8 +188,8 @@ static SCREEN_UPDATE_IND16( shougi ) //if (flipscreen[0]) sx = 31 - sx; //if (flipscreen[1]) sy = 31 - sy; - data1 = state->m_videoram[offs]; /* color */ - data2 = state->m_videoram[0x4000 + offs]; /* pixel data */ + data1 = m_videoram[offs]; /* color */ + data2 = m_videoram[0x4000 + offs]; /* pixel data */ for (x=0; x<4; x++) /*4 pixels per byte (2 bitplanes in 2 nibbles: 1st=bits 7-4, 2nd=bits 3-0)*/ { @@ -425,7 +425,7 @@ static MACHINE_CONFIG_START( shougi, shougi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255) - MCFG_SCREEN_UPDATE_STATIC(shougi) + MCFG_SCREEN_UPDATE_DRIVER(shougi_state, screen_update_shougi) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/shtzone.c b/src/mame/drivers/shtzone.c index 5abce8b90eb..419e4279bc1 100644 --- a/src/mame/drivers/shtzone.c +++ b/src/mame/drivers/shtzone.c @@ -58,6 +58,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_shtzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; static ADDRESS_MAP_START( shtzone_map, AS_PROGRAM, 8, shtzone_state ) @@ -86,7 +87,7 @@ void shtzone_state::video_start() } -SCREEN_UPDATE_IND16( shtzone ) +UINT32 shtzone_state::screen_update_shtzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { return 0; @@ -108,7 +109,7 @@ static MACHINE_CONFIG_START( shtzone, shtzone_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(shtzone) + MCFG_SCREEN_UPDATE_DRIVER(shtzone_state, screen_update_shtzone) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c index 3dc37b10902..948c1def5ca 100644 --- a/src/mame/drivers/shuuz.c +++ b/src/mame/drivers/shuuz.c @@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( shuuz, shuuz_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a VAD chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(shuuz) + MCFG_SCREEN_UPDATE_DRIVER(shuuz_state, screen_update_shuuz) MCFG_VIDEO_START_OVERRIDE(shuuz_state,shuuz) diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c index bda44df88bb..91735a088d1 100644 --- a/src/mame/drivers/sidearms.c +++ b/src/mame/drivers/sidearms.c @@ -670,7 +670,7 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(sidearms) + MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(sidearms) @@ -714,7 +714,7 @@ static MACHINE_CONFIG_START( turtship, sidearms_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) - MCFG_SCREEN_UPDATE_STATIC(sidearms) + MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms) MCFG_GFXDECODE(turtship) MCFG_PALETTE_LENGTH(1024) @@ -759,7 +759,7 @@ static MACHINE_CONFIG_START( whizz, sidearms_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(sidearms) + MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(turtship) diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c index 8b78ab63a11..df0214e1cdb 100644 --- a/src/mame/drivers/sidepckt.c +++ b/src/mame/drivers/sidepckt.c @@ -402,7 +402,7 @@ static MACHINE_CONFIG_START( sidepckt, sidepckt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* VERIFY: May be 55 or 56 */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(sidepckt) + MCFG_SCREEN_UPDATE_DRIVER(sidepckt_state, screen_update_sidepckt) MCFG_GFXDECODE(sidepckt) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c index b58f76176aa..105c977738c 100644 --- a/src/mame/drivers/sigmab52.c +++ b/src/mame/drivers/sigmab52.c @@ -149,6 +149,7 @@ public: virtual void machine_start(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -165,7 +166,7 @@ void sigmab52_state::video_start() } -static SCREEN_UPDATE_IND16( jwildb52 ) +UINT32 sigmab52_state::screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { device_t *hd63484 = screen.machine().device("hd63484"); @@ -605,7 +606,7 @@ static MACHINE_CONFIG_START( jwildb52, sigmab52_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(1024, 1024) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 384-1) - MCFG_SCREEN_UPDATE_STATIC(jwildb52) + MCFG_SCREEN_UPDATE_DRIVER(sigmab52_state, screen_update_jwildb52) MCFG_HD63484_ADD("hd63484", jwildb52_hd63484_intf) diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index 45a1e0be29b..e8e5b38d048 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -175,6 +175,8 @@ public: DECLARE_DRIVER_INIT(ucytokyu); DECLARE_DRIVER_INIT(haekaka); DECLARE_MACHINE_RESET(sammymdl); + UINT32 screen_update_sigmab98(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_sammymdl(screen_device &screen, bool state); }; @@ -302,7 +304,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } } -static SCREEN_UPDATE_IND16(sigmab98) +UINT32 sigmab98_state::screen_update_sigmab98(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int layers_ctrl = -1; @@ -680,13 +682,12 @@ WRITE8_MEMBER(sigmab98_state::vblank_w) m_vblank = (m_vblank & ~0x03) | (data & 0x03); } -static SCREEN_VBLANK( sammymdl ) +void sigmab98_state::screen_eof_sammymdl(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - sigmab98_state *state = screen.machine().driver_data<sigmab98_state>(); - state->m_vblank &= ~0x01; + m_vblank &= ~0x01; } } @@ -1710,7 +1711,7 @@ static MACHINE_CONFIG_START( gegege, sigmab98_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state MCFG_SCREEN_SIZE(0x200, 0x200) MCFG_SCREEN_VISIBLE_AREA(0,0x140-1, 0,0xf0-1) - MCFG_SCREEN_UPDATE_STATIC(sigmab98) + MCFG_SCREEN_UPDATE_DRIVER(sigmab98_state, screen_update_sigmab98) MCFG_GFXDECODE(sigmab98) MCFG_PALETTE_LENGTH(0x100) @@ -1764,8 +1765,8 @@ static MACHINE_CONFIG_START( sammymdl, sigmab98_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(0x140, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_STATIC(sigmab98) - MCFG_SCREEN_VBLANK_STATIC(sammymdl) + MCFG_SCREEN_UPDATE_DRIVER(sigmab98_state, screen_update_sigmab98) + MCFG_SCREEN_VBLANK_DRIVER(sigmab98_state, screen_eof_sammymdl) MCFG_GFXDECODE(sigmab98) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c index 8cfb8322d21..e482c5a7448 100644 --- a/src/mame/drivers/silkroad.c +++ b/src/mame/drivers/silkroad.c @@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( silkroad, silkroad_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(6*8+2, 64*8-1-(10*8)-2, 2*8, 32*8-1-(2*8)) - MCFG_SCREEN_UPDATE_STATIC(silkroad) + MCFG_SCREEN_UPDATE_DRIVER(silkroad_state, screen_update_silkroad) MCFG_GFXDECODE(silkroad) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c index f6750e63438..a852ac766d4 100644 --- a/src/mame/drivers/silvmil.c +++ b/src/mame/drivers/silvmil.c @@ -111,6 +111,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_silvmil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -148,13 +149,12 @@ void silvmil_state::video_start() m_fg_layer->set_transparent_pen(0); } -SCREEN_UPDATE_IND16( silvmil ) +UINT32 silvmil_state::screen_update_silvmil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - silvmil_state *state = screen.machine().driver_data<silvmil_state>(); - state->m_bg_layer->draw(bitmap, cliprect, 0, 0); - state->m_fg_layer->draw(bitmap, cliprect, 0, 0); - screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400); + m_bg_layer->draw(bitmap, cliprect, 0, 0); + m_fg_layer->draw(bitmap, cliprect, 0, 0); + screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; } @@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(silvmil) + MCFG_SCREEN_UPDATE_DRIVER(silvmil_state, screen_update_silvmil) MCFG_PALETTE_LENGTH(0x300) MCFG_GFXDECODE(silvmil) diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c index 6f8d5f671d7..87c51f9a03a 100644 --- a/src/mame/drivers/simpl156.c +++ b/src/mame/drivers/simpl156.c @@ -435,7 +435,7 @@ static MACHINE_CONFIG_START( chainrec, simpl156_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(800)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(simpl156) + MCFG_SCREEN_UPDATE_DRIVER(simpl156_state, screen_update_simpl156) MCFG_PALETTE_LENGTH(4096) MCFG_GFXDECODE(simpl156) diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c index 6117be53195..2e09a7bafe7 100644 --- a/src/mame/drivers/simpsons.c +++ b/src/mame/drivers/simpsons.c @@ -326,7 +326,7 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(simpsons) + MCFG_SCREEN_UPDATE_DRIVER(simpsons_state, screen_update_simpsons) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/skimaxx.c b/src/mame/drivers/skimaxx.c index 8aa78bcf288..7469ff52019 100644 --- a/src/mame/drivers/skimaxx.c +++ b/src/mame/drivers/skimaxx.c @@ -73,6 +73,7 @@ public: DECLARE_READ32_MEMBER(skimaxx_analog_r); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_skimaxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -149,9 +150,9 @@ void skimaxx_state::video_start() membank("bank1")->configure_entry(1, m_bg_buffer_front); } -static SCREEN_UPDATE_IND16( skimaxx ) +UINT32 skimaxx_state::screen_update_skimaxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { -// popmessage("%02x %02x", state->ioport("X")->read(), state->ioport("Y")->read() ); +// popmessage("%02x %02x", ioport("X")->read(), ioport("Y")->read() ); SCREEN_UPDATE16_CALL(tms340x0_ind16); @@ -542,7 +543,7 @@ static MACHINE_CONFIG_START( skimaxx, skimaxx_state ) MCFG_SCREEN_SIZE(0x400, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x280-1, 0, 0xf0-1) // MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16) - MCFG_SCREEN_UPDATE_STATIC(skimaxx) + MCFG_SCREEN_UPDATE_DRIVER(skimaxx_state, screen_update_skimaxx) // MCFG_GFXDECODE( skimaxx ) diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c index 2aaaed51ac9..5b0d710ebdd 100644 --- a/src/mame/drivers/skullxbo.c +++ b/src/mame/drivers/skullxbo.c @@ -272,7 +272,7 @@ static MACHINE_CONFIG_START( skullxbo, skullxbo_state ) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(skullxbo) + MCFG_SCREEN_UPDATE_DRIVER(skullxbo_state, screen_update_skullxbo) MCFG_VIDEO_START_OVERRIDE(skullxbo_state,skullxbo) diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c index 39092d25f0c..77a46d943f4 100644 --- a/src/mame/drivers/skyarmy.c +++ b/src/mame/drivers/skyarmy.c @@ -53,6 +53,7 @@ public: TILE_GET_INFO_MEMBER(get_skyarmy_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w) @@ -124,17 +125,16 @@ void skyarmy_state::video_start() } -static SCREEN_UPDATE_IND16( skyarmy ) +UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - skyarmy_state *state = screen.machine().driver_data<skyarmy_state>(); - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int sx, sy, flipx, flipy, offs,pal; int i; for(i=0;i<0x20;i++) - state->m_tilemap->set_scrolly(i,state->m_scrollram[i]); + m_tilemap->set_scrolly(i,m_scrollram[i]); - state->m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(bitmap, cliprect, 0,0); for (offs = 0 ; offs < 0x40; offs+=4) { @@ -293,7 +293,7 @@ static MACHINE_CONFIG_START( skyarmy, skyarmy_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8,32*8) MCFG_SCREEN_VISIBLE_AREA(0*8,32*8-1,1*8,31*8-1) - MCFG_SCREEN_UPDATE_STATIC(skyarmy) + MCFG_SCREEN_UPDATE_DRIVER(skyarmy_state, screen_update_skyarmy) MCFG_GFXDECODE(skyarmy) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c index abb0068c184..cbe039a4e26 100644 --- a/src/mame/drivers/skydiver.c +++ b/src/mame/drivers/skydiver.c @@ -388,7 +388,7 @@ static MACHINE_CONFIG_START( skydiver, skydiver_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(skydiver) + MCFG_SCREEN_UPDATE_DRIVER(skydiver_state, screen_update_skydiver) MCFG_GFXDECODE(skydiver) MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) diff --git a/src/mame/drivers/skyfox.c b/src/mame/drivers/skyfox.c index ba651450f51..17f8d4f8778 100644 --- a/src/mame/drivers/skyfox.c +++ b/src/mame/drivers/skyfox.c @@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( skyfox, skyfox_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0+0x60, 320-1+0x60, 0+16, 256-1-16) // from $30*2 to $CC*2+8 - MCFG_SCREEN_UPDATE_STATIC(skyfox) + MCFG_SCREEN_UPDATE_DRIVER(skyfox_state, screen_update_skyfox) MCFG_GFXDECODE(skyfox) MCFG_PALETTE_LENGTH(256+256) /* 256 static colors (+256 for the background??) */ diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c index 4d9488ae873..ca0c47a5df8 100644 --- a/src/mame/drivers/skykid.c +++ b/src/mame/drivers/skykid.c @@ -461,7 +461,7 @@ static MACHINE_CONFIG_START( skykid, skykid_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(skykid) + MCFG_SCREEN_UPDATE_DRIVER(skykid_state, screen_update_skykid) MCFG_GFXDECODE(skykid) MCFG_PALETTE_LENGTH(64*4+128*4+64*8) diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c index 8acf1226370..8ef0a478c0c 100644 --- a/src/mame/drivers/skylncr.c +++ b/src/mame/drivers/skylncr.c @@ -108,6 +108,7 @@ public: TILE_GET_INFO_MEMBER(get_reel_3_tile_info); TILE_GET_INFO_MEMBER(get_reel_4_tile_info); virtual void video_start(); + UINT32 screen_update_skylncr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -182,13 +183,12 @@ void skylncr_state::video_start() } -static SCREEN_UPDATE_IND16( skylncr ) +UINT32 skylncr_state::screen_update_skylncr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - skylncr_state *state = screen.machine().driver_data<skylncr_state>(); int i; bitmap.fill(0, cliprect); - state->m_reel_1_tilemap->draw(bitmap, cliprect, 0, 0); + m_reel_1_tilemap->draw(bitmap, cliprect, 0, 0); // are these hardcoded, or registers? const rectangle visible1(0*8, (20+48)*8-1, 4*8, (4+7)*8-1); @@ -197,17 +197,17 @@ static SCREEN_UPDATE_IND16( skylncr ) for (i= 0;i < 64;i++) { - state->m_reel_2_tilemap->set_scrolly(i, state->m_reelscroll2[i]); - state->m_reel_3_tilemap->set_scrolly(i, state->m_reelscroll3[i]); - state->m_reel_4_tilemap->set_scrolly(i, state->m_reelscroll4[i]); + m_reel_2_tilemap->set_scrolly(i, m_reelscroll2[i]); + m_reel_3_tilemap->set_scrolly(i, m_reelscroll3[i]); + m_reel_4_tilemap->set_scrolly(i, m_reelscroll4[i]); } - state->m_reel_2_tilemap->draw(bitmap, visible1, 0, 0); - state->m_reel_3_tilemap->draw(bitmap, visible2, 0, 0); - state->m_reel_4_tilemap->draw(bitmap, visible3, 0, 0); + m_reel_2_tilemap->draw(bitmap, visible1, 0, 0); + m_reel_3_tilemap->draw(bitmap, visible2, 0, 0); + m_reel_4_tilemap->draw(bitmap, visible3, 0, 0); - state->m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( skylncr, skylncr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(skylncr) + MCFG_SCREEN_UPDATE_DRIVER(skylncr_state, screen_update_skylncr) MCFG_GFXDECODE(skylncr) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c index 8c87c23aeca..6abbd7de96a 100644 --- a/src/mame/drivers/skyraid.c +++ b/src/mame/drivers/skyraid.c @@ -229,7 +229,7 @@ static MACHINE_CONFIG_START( skyraid, skyraid_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750)) MCFG_SCREEN_SIZE(512, 240) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(skyraid) + MCFG_SCREEN_UPDATE_DRIVER(skyraid_state, screen_update_skyraid) MCFG_GFXDECODE(skyraid) diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c index d1765c5cf7b..93ac56a61fa 100644 --- a/src/mame/drivers/slapfght.c +++ b/src/mame/drivers/slapfght.c @@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 34*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(perfrman) + MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_perfrman) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(perfrman) @@ -813,7 +813,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(slapfight) + MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(slapfght) @@ -861,7 +861,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(slapfight) + MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(slapfght) @@ -910,7 +910,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(slapfight) + MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(slapfght) diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c index 24c8931feb1..45c19ec7cf9 100644 --- a/src/mame/drivers/slapshot.c +++ b/src/mame/drivers/slapshot.c @@ -559,8 +559,8 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(slapshot) - MCFG_SCREEN_VBLANK_STATIC(taito_no_buffer) + MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update_slapshot) + MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer) MCFG_GFXDECODE(slapshot) MCFG_PALETTE_LENGTH(8192) @@ -605,8 +605,8 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(slapshot) - MCFG_SCREEN_VBLANK_STATIC(taito_no_buffer) + MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update_slapshot) + MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer) MCFG_GFXDECODE(slapshot) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c index 3120246abb1..8228b3597c7 100644 --- a/src/mame/drivers/sliver.c +++ b/src/mame/drivers/sliver.c @@ -113,6 +113,7 @@ public: DECLARE_WRITE16_MEMBER(sound_w); DECLARE_WRITE8_MEMBER(oki_setbank); virtual void video_start(); + UINT32 screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; static void plot_pixel_rgb(sliver_state *state, int x, int y, UINT32 r, UINT32 g, UINT32 b) @@ -373,12 +374,11 @@ void sliver_state::video_start() machine().primary_screen->register_screen_bitmap(m_bitmap_fg); } -static SCREEN_UPDATE_RGB32(sliver) +UINT32 sliver_state::screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - sliver_state *state = screen.machine().driver_data<sliver_state>(); - copybitmap (bitmap, state->m_bitmap_bg, 0, 0, 0, 0, cliprect); - copybitmap_trans(bitmap, state->m_bitmap_fg, 0, 0, 0, 0, cliprect, 0); + copybitmap (bitmap, m_bitmap_bg, 0, 0, 0, 0, cliprect); + copybitmap_trans(bitmap, m_bitmap_fg, 0, 0, 0, 0, cliprect, 0); return 0; } @@ -486,7 +486,7 @@ static MACHINE_CONFIG_START( sliver, sliver_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 384-1-16, 0*8, 240-1) - MCFG_SCREEN_UPDATE_STATIC(sliver) + MCFG_SCREEN_UPDATE_DRIVER(sliver_state, screen_update_sliver) MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c index 20931533315..8a5b36ab573 100644 --- a/src/mame/drivers/sms.c +++ b/src/mame/drivers/sms.c @@ -245,6 +245,7 @@ public: virtual void video_start(); virtual void palette_init(); DECLARE_MACHINE_START(sureshot); + UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -480,10 +481,9 @@ void smsmfg_state::video_start() state_save_register_global_bitmap(machine(), &m_bitmap); } -static SCREEN_UPDATE_IND16( sms ) +UINT32 smsmfg_state::screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - smsmfg_state *state = screen.machine().driver_data<smsmfg_state>(); - copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect); + copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect); return 0; } @@ -578,7 +578,7 @@ static MACHINE_CONFIG_START( sms, smsmfg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x1b0, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x1af, 0, 0xff) - MCFG_SCREEN_UPDATE_STATIC(sms) + MCFG_SCREEN_UPDATE_DRIVER(smsmfg_state, screen_update_sms) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c index 02b9fc4f100..f33d7a5d16e 100644 --- a/src/mame/drivers/snk.c +++ b/src/mame/drivers/snk.c @@ -3645,7 +3645,7 @@ static MACHINE_CONFIG_START( marvins, snk_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(marvins) + MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_marvins) MCFG_GFXDECODE(marvins) MCFG_PALETTE_LENGTH(0x400) @@ -3714,7 +3714,7 @@ static MACHINE_CONFIG_START( jcross, snk_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnk3) + MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3) MCFG_GFXDECODE(tnk3) MCFG_PALETTE_LENGTH(0x400) @@ -3792,7 +3792,7 @@ static MACHINE_CONFIG_START( tnk3, snk_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnk3) + MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3) MCFG_GFXDECODE(tnk3) MCFG_PALETTE_LENGTH(0x400) @@ -3876,7 +3876,7 @@ static MACHINE_CONFIG_START( ikari, snk_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(ikari) + MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_ikari) MCFG_GFXDECODE(ikari) MCFG_PALETTE_LENGTH(0x400) @@ -3932,7 +3932,7 @@ static MACHINE_CONFIG_START( bermudat, snk_state ) // this visible area matches the psychos pcb MCFG_SCREEN_SIZE(50*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 50*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(gwar) + MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_gwar) MCFG_GFXDECODE(gwar) MCFG_PALETTE_LENGTH(0x400) @@ -4036,7 +4036,7 @@ static MACHINE_CONFIG_START( tdfever, snk_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(50*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 50*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(tdfever) + MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tdfever) MCFG_GFXDECODE(tdfever) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c index 14a050ca783..c9c3365d939 100644 --- a/src/mame/drivers/snk6502.c +++ b/src/mame/drivers/snk6502.c @@ -835,7 +835,7 @@ static MACHINE_CONFIG_START( sasuke, snk6502_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(snk6502) + MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502) MCFG_GFXDECODE(sasuke) MCFG_PALETTE_LENGTH(32) @@ -908,7 +908,7 @@ static MACHINE_CONFIG_START( vanguard, snk6502_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(snk6502) + MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502) MCFG_GFXDECODE(vanguard) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c index 0187a0580f4..71b7a8fb17a 100644 --- a/src/mame/drivers/snk68.c +++ b/src/mame/drivers/snk68.c @@ -605,7 +605,7 @@ static MACHINE_CONFIG_START( pow, snk68_state ) // give a theoretical refresh rate of 59.1856Hz while the measured // rate on a SAR board is 59.16Hz. MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 384, 0, 256, 264, 16, 240) - MCFG_SCREEN_UPDATE_STATIC(pow) + MCFG_SCREEN_UPDATE_DRIVER(snk68_state, screen_update_pow) MCFG_GFXDECODE(pow) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/snookr10.c b/src/mame/drivers/snookr10.c index 762ba82a899..daf079f2038 100644 --- a/src/mame/drivers/snookr10.c +++ b/src/mame/drivers/snookr10.c @@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( snookr10, snookr10_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(96*4, 30*8) MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(snookr10) + MCFG_SCREEN_UPDATE_DRIVER(snookr10_state, screen_update_snookr10) MCFG_GFXDECODE(snookr10) diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c index c254e7a103c..6a741abb638 100644 --- a/src/mame/drivers/snowbros.c +++ b/src/mame/drivers/snowbros.c @@ -82,7 +82,7 @@ WRITE16_MEMBER(snowbros_state::snowbros_flipscreen_w) } -static SCREEN_UPDATE_IND16( snowbros ) +UINT32 snowbros_state::screen_update_snowbros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { device_t *pandora = screen.machine().device("pandora"); @@ -93,10 +93,10 @@ static SCREEN_UPDATE_IND16( snowbros ) } -static SCREEN_VBLANK( snowbros ) +void snowbros_state::screen_eof_snowbros(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { device_t *pandora = screen.machine().device("pandora"); pandora_eof(pandora); @@ -1556,8 +1556,8 @@ static MACHINE_CONFIG_START( snowbros, snowbros_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(snowbros) - MCFG_SCREEN_VBLANK_STATIC(snowbros) + MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_snowbros) + MCFG_SCREEN_VBLANK_DRIVER(snowbros_state, screen_eof_snowbros) MCFG_GFXDECODE(snowbros) MCFG_PALETTE_LENGTH(256) @@ -1585,7 +1585,7 @@ static MACHINE_CONFIG_DERIVED( wintbob, snowbros ) /* video hardware */ MCFG_GFXDECODE(wb) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(wintbob) + MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_wintbob) MCFG_SCREEN_VBLANK_NONE() MACHINE_CONFIG_END @@ -1666,7 +1666,7 @@ static MACHINE_CONFIG_START( honeydol, snowbros_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(honeydol) + MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_honeydol) MCFG_GFXDECODE(honeydol) MCFG_PALETTE_LENGTH(0x800/2) @@ -1703,7 +1703,7 @@ static MACHINE_CONFIG_START( twinadv, snowbros_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(twinadv) + MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_twinadv) MCFG_GFXDECODE(twinadv) MCFG_PALETTE_LENGTH(0x100) @@ -1775,7 +1775,7 @@ static MACHINE_CONFIG_START( snowbro3, snowbros_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(snowbro3) + MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_snowbro3) MCFG_GFXDECODE(sb3) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c index d62e3b805b8..e8aecb72468 100644 --- a/src/mame/drivers/solomon.c +++ b/src/mame/drivers/solomon.c @@ -222,7 +222,7 @@ static MACHINE_CONFIG_START( solomon, solomon_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(solomon) + MCFG_SCREEN_UPDATE_DRIVER(solomon_state, screen_update_solomon) MCFG_GFXDECODE(solomon) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c index 3dc6604d0ec..182b425bf51 100644 --- a/src/mame/drivers/sonson.c +++ b/src/mame/drivers/sonson.c @@ -256,7 +256,7 @@ static MACHINE_CONFIG_START( sonson, sonson_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(sonson) + MCFG_SCREEN_UPDATE_DRIVER(sonson_state, screen_update_sonson) MCFG_GFXDECODE(sonson) MCFG_PALETTE_LENGTH(64*4+32*8) diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c index 7f06f0d2d46..399347abb98 100644 --- a/src/mame/drivers/spacefb.c +++ b/src/mame/drivers/spacefb.c @@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( spacefb, spacefb_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(SPACEFB_PIXEL_CLOCK, SPACEFB_HTOTAL, SPACEFB_HBEND, SPACEFB_HBSTART, SPACEFB_VTOTAL, SPACEFB_VBEND, SPACEFB_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(spacefb) + MCFG_SCREEN_UPDATE_DRIVER(spacefb_state, screen_update_spacefb) /* audio hardware */ MCFG_FRAGMENT_ADD(spacefb_audio) diff --git a/src/mame/drivers/spaceg.c b/src/mame/drivers/spaceg.c index 2288c6931cb..5e4f2a8fb21 100644 --- a/src/mame/drivers/spaceg.c +++ b/src/mame/drivers/spaceg.c @@ -190,6 +190,7 @@ public: DECLARE_WRITE8_MEMBER(zvideoram_w); DECLARE_READ8_MEMBER(spaceg_colorram_r); virtual void palette_init(); + UINT32 screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /************************************* @@ -297,21 +298,20 @@ READ8_MEMBER(spaceg_state::spaceg_colorram_r) } -static SCREEN_UPDATE_IND16( spaceg ) +UINT32 spaceg_state::screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - spaceg_state *state = screen.machine().driver_data<spaceg_state>(); offs_t offs; for (offs = 0; offs < 0x2000; offs++) { int i; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; int y = offs & 0xff; int x = (offs >> 8) << 3; for (i = 0; i < 8; i++) { - bitmap.pix16(y, x) = (data & 0x80) ? state->m_colorram[offs] : 0; + bitmap.pix16(y, x) = (data & 0x80) ? m_colorram[offs] : 0; x++; data <<= 1; @@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( spaceg, spaceg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 32, 255) - MCFG_SCREEN_UPDATE_STATIC( spaceg ) + MCFG_SCREEN_UPDATE_DRIVER(spaceg_state, screen_update_spaceg) MCFG_PALETTE_LENGTH(16+128-16) diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c index a26ce57ff4b..f6867d9a617 100644 --- a/src/mame/drivers/spbactn.c +++ b/src/mame/drivers/spbactn.c @@ -360,7 +360,7 @@ static MACHINE_CONFIG_START( spbactn, spbactn_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(spbactn) + MCFG_SCREEN_UPDATE_DRIVER(spbactn_state, screen_update_spbactn) MCFG_GFXDECODE(spbactn) MCFG_PALETTE_LENGTH(0x2800/2) diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c index f2bec69e55b..6e0f442433f 100644 --- a/src/mame/drivers/spcforce.c +++ b/src/mame/drivers/spcforce.c @@ -279,7 +279,7 @@ static MACHINE_CONFIG_START( spcforce, spcforce_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(spcforce) + MCFG_SCREEN_UPDATE_DRIVER(spcforce_state, screen_update_spcforce) MCFG_GFXDECODE(spcforce) MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c index cd2150ea31a..08476c2d906 100644 --- a/src/mame/drivers/spdodgeb.c +++ b/src/mame/drivers/spdodgeb.c @@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(12000000/2, 384, 0, 256, 272, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(spdodgeb) + MCFG_SCREEN_UPDATE_DRIVER(spdodgeb_state, screen_update_spdodgeb) MCFG_GFXDECODE(spdodgeb) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c index 4a593880048..6e0e8f60fb3 100644 --- a/src/mame/drivers/speedatk.c +++ b/src/mame/drivers/speedatk.c @@ -335,7 +335,7 @@ static MACHINE_CONFIG_START( speedatk, speedatk_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(speedatk) + MCFG_SCREEN_UPDATE_DRIVER(speedatk_state, screen_update_speedatk) MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */ diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c index af77aa567d3..18c055eae5d 100644 --- a/src/mame/drivers/speedbal.c +++ b/src/mame/drivers/speedbal.c @@ -238,7 +238,7 @@ static MACHINE_CONFIG_START( speedbal, speedbal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(speedbal) + MCFG_SCREEN_UPDATE_DRIVER(speedbal_state, screen_update_speedbal) MCFG_GFXDECODE(speedbal) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c index 293a9636e25..8c1ed3a8ec4 100644 --- a/src/mame/drivers/speedspn.c +++ b/src/mame/drivers/speedspn.c @@ -284,7 +284,7 @@ static MACHINE_CONFIG_START( speedspn, speedspn_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(speedspn) + MCFG_SCREEN_UPDATE_DRIVER(speedspn_state, screen_update_speedspn) MCFG_GFXDECODE(speedspn) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c index 33f64131653..3c86405eabb 100644 --- a/src/mame/drivers/speglsht.c +++ b/src/mame/drivers/speglsht.c @@ -133,6 +133,7 @@ public: DECLARE_DRIVER_INIT(speglsht); DECLARE_MACHINE_RESET(speglsht); DECLARE_VIDEO_START(speglsht); + UINT32 screen_update_speglsht(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -348,30 +349,29 @@ VIDEO_START_MEMBER(speglsht_state,speglsht) bitmap.pix32(y, x) = (b) | ((g)<<8) | ((r)<<16); \ } -static SCREEN_UPDATE_RGB32(speglsht) +UINT32 speglsht_state::screen_update_speglsht(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - speglsht_state *state = screen.machine().driver_data<speglsht_state>(); int x,y,dy; - dy=(state->m_videoreg&0x20)?(256*512):0; //visible frame + dy=(m_videoreg&0x20)?(256*512):0; //visible frame for(y=0;y<256;y++) { for(x=0;x<512;x++) { int tmp=dy+y*512+x; - PLOT_PIXEL_RGB(x-67,y-5,(state->m_framebuffer[tmp]>>0)&0xff,(state->m_framebuffer[tmp]>>8)&0xff,(state->m_framebuffer[tmp]>>16)&0xff); + PLOT_PIXEL_RGB(x-67,y-5,(m_framebuffer[tmp]>>0)&0xff,(m_framebuffer[tmp]>>8)&0xff,(m_framebuffer[tmp]>>16)&0xff); } } //draw st0016 gfx to temporary bitmap (indexed 16) - state->m_bitmap->fill(0); - st0016_draw_screen(screen, *state->m_bitmap, cliprect); + m_bitmap->fill(0); + st0016_draw_screen(screen, *m_bitmap, cliprect); //copy temporary bitmap to rgb 32 bit bitmap for(y=cliprect.min_y; y<cliprect.max_y;y++) { - UINT16 *srcline = &state->m_bitmap->pix16(y); + UINT16 *srcline = &m_bitmap->pix16(y); for(x=cliprect.min_x; x<cliprect.max_x;x++) { if(srcline[x]) @@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 239-8) - MCFG_SCREEN_UPDATE_STATIC(speglsht) + MCFG_SCREEN_UPDATE_DRIVER(speglsht_state, screen_update_speglsht) MCFG_GFXDECODE(speglsht) MCFG_PALETTE_LENGTH(16*16*4+1) diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c index f0b031b9039..ea6cb645086 100644 --- a/src/mame/drivers/splash.c +++ b/src/mame/drivers/splash.c @@ -508,7 +508,7 @@ static MACHINE_CONFIG_START( splash, splash_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(splash) + MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash) MCFG_GFXDECODE(splash) MCFG_PALETTE_LENGTH(2048) @@ -565,7 +565,7 @@ static MACHINE_CONFIG_START( roldfrog, splash_state ) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(splash) + MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash) MCFG_GFXDECODE(splash) MCFG_PALETTE_LENGTH(2048) @@ -644,7 +644,7 @@ static MACHINE_CONFIG_START( funystrp, splash_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(funystrp) + MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_funystrp) MCFG_GFXDECODE(splash) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c index 18562595628..a62c47dd2d5 100644 --- a/src/mame/drivers/spoker.c +++ b/src/mame/drivers/spoker.c @@ -58,6 +58,7 @@ public: TILE_GET_INFO_MEMBER(get_fg_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; WRITE8_MEMBER(spoker_state::bg_tile_w) @@ -101,13 +102,12 @@ void spoker_state::video_start() m_fg_tilemap->set_transparent_pen(0); } -static SCREEN_UPDATE_IND16(spoker) +UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - spoker_state *state = screen.machine().driver_data<spoker_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -543,7 +543,7 @@ static MACHINE_CONFIG_START( spoker, spoker_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(spoker) + MCFG_SCREEN_UPDATE_DRIVER(spoker_state, screen_update_spoker) MCFG_GFXDECODE(spoker) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c index ea130b61147..2483e48fc74 100644 --- a/src/mame/drivers/spool99.c +++ b/src/mame/drivers/spool99.c @@ -117,6 +117,7 @@ public: DECLARE_DRIVER_INIT(spool99); TILE_GET_INFO_MEMBER(get_spool99_tile_info); virtual void video_start(); + UINT32 screen_update_spool99(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(spool99_state::get_spool99_tile_info) @@ -137,11 +138,10 @@ void spool99_state::video_start() m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spool99_state::get_spool99_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); } -static SCREEN_UPDATE_IND16(spool99) +UINT32 spool99_state::screen_update_spool99(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - spool99_state *state = screen.machine().driver_data<spool99_state>(); - state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -361,7 +361,7 @@ static MACHINE_CONFIG_START( spool99, spool99_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(7*8, 55*8-1, 1*8, 31*8-1) //384x240,raw guess - MCFG_SCREEN_UPDATE_STATIC(spool99) + MCFG_SCREEN_UPDATE_DRIVER(spool99_state, screen_update_spool99) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c index ab0e6cccd63..e7eb7007fa3 100644 --- a/src/mame/drivers/sprcros2.c +++ b/src/mame/drivers/sprcros2.c @@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( sprcros2, sprcros2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(sprcros2) + MCFG_SCREEN_UPDATE_DRIVER(sprcros2_state, screen_update_sprcros2) MCFG_GFXDECODE(sprcros2) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c index 1ab98d5cd22..b4bf7e9c06d 100644 --- a/src/mame/drivers/sprint2.c +++ b/src/mame/drivers/sprint2.c @@ -507,8 +507,8 @@ static MACHINE_CONFIG_START( sprint2, sprint2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 262) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 223) - MCFG_SCREEN_UPDATE_STATIC(sprint2) - MCFG_SCREEN_VBLANK_STATIC(sprint2) + MCFG_SCREEN_UPDATE_DRIVER(sprint2_state, screen_update_sprint2) + MCFG_SCREEN_VBLANK_DRIVER(sprint2_state, screen_eof_sprint2) MCFG_GFXDECODE(sprint2) MCFG_PALETTE_LENGTH(12) diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c index 7f906f3529a..0c28a4940be 100644 --- a/src/mame/drivers/sprint4.c +++ b/src/mame/drivers/sprint4.c @@ -404,8 +404,8 @@ static MACHINE_CONFIG_START( sprint4, sprint4_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, 256, VTOTAL, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(sprint4) - MCFG_SCREEN_VBLANK_STATIC(sprint4) + MCFG_SCREEN_UPDATE_DRIVER(sprint4_state, screen_update_sprint4) + MCFG_SCREEN_VBLANK_DRIVER(sprint4_state, screen_eof_sprint4) MCFG_GFXDECODE(sprint4) MCFG_PALETTE_LENGTH(10) diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c index 81ad80c662b..d26b8c84429 100644 --- a/src/mame/drivers/sprint8.c +++ b/src/mame/drivers/sprint8.c @@ -463,8 +463,8 @@ static MACHINE_CONFIG_START( sprint8, sprint8_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 261) MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 231) - MCFG_SCREEN_UPDATE_STATIC(sprint8) - MCFG_SCREEN_VBLANK_STATIC(sprint8) + MCFG_SCREEN_UPDATE_DRIVER(sprint8_state, screen_update_sprint8) + MCFG_SCREEN_VBLANK_DRIVER(sprint8_state, screen_eof_sprint8) MCFG_GFXDECODE(sprint8) MCFG_PALETTE_LENGTH(36) diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c index fb4090239da..919893995d0 100644 --- a/src/mame/drivers/spy.c +++ b/src/mame/drivers/spy.c @@ -547,7 +547,7 @@ static MACHINE_CONFIG_START( spy, spy_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(spy) + MCFG_SCREEN_UPDATE_DRIVER(spy_state, screen_update_spy) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c index 5d9dd7b5786..f629badac10 100644 --- a/src/mame/drivers/srmp2.c +++ b/src/mame/drivers/srmp2.c @@ -1179,7 +1179,7 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(464, 256-16) MCFG_SCREEN_VISIBLE_AREA(16, 464-1, 8, 256-1-24) - MCFG_SCREEN_UPDATE_STATIC(srmp2) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp2) MCFG_GFXDECODE(srmp2) MCFG_PALETTE_LENGTH(1024) /* sprites only */ @@ -1220,7 +1220,7 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 256-16) MCFG_SCREEN_VISIBLE_AREA(16, 400-1, 8, 256-1-24) - MCFG_SCREEN_UPDATE_STATIC(srmp3) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp3) MCFG_GFXDECODE(srmp3) MCFG_PALETTE_LENGTH(512) /* sprites only */ @@ -1270,7 +1270,7 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 256-16) MCFG_SCREEN_VISIBLE_AREA(16, 400-1, 0, 256-1-16) - MCFG_SCREEN_UPDATE_STATIC(mjyuugi) /* just draw the sprites */ + MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_mjyuugi) MCFG_GFXDECODE(srmp3) MCFG_PALETTE_LENGTH(512) /* sprites only */ diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c index 86e53487180..ec2abe85204 100644 --- a/src/mame/drivers/srmp5.c +++ b/src/mame/drivers/srmp5.c @@ -102,22 +102,22 @@ public: DECLARE_READ8_MEMBER(cmd2_r); DECLARE_READ8_MEMBER(cmd_stat8_r); DECLARE_DRIVER_INIT(srmp5); + UINT32 screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; -static SCREEN_UPDATE_RGB32( srmp5 ) +UINT32 srmp5_state::screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - srmp5_state *state = screen.machine().driver_data<srmp5_state>(); int x,y,address,xs,xs2,ys,ys2,height,width,xw,yw,xb,yb,sizex,sizey; - UINT16 *sprite_list=state->m_sprram; - UINT16 *sprite_list_end=&state->m_sprram[0x4000]; //guess - UINT8 *pixels=(UINT8 *)state->m_tileram; + UINT16 *sprite_list=m_sprram; + UINT16 *sprite_list_end=&m_sprram[0x4000]; //guess + UINT8 *pixels=(UINT8 *)m_tileram; //Table surface seems to be tiles, but display corrupts when switching the scene if always ON. //Currently the tiles are OFF. #ifdef BG_ENABLE - UINT8 tile_width = (state->m_vidregs[2] >> 0) & 0xFF; - UINT8 tile_height = (state->m_vidregs[2] >> 8) & 0xFF; + UINT8 tile_width = (m_vidregs[2] >> 0) & 0xFF; + UINT8 tile_height = (m_vidregs[2] >> 8) & 0xFF; if(tile_width && tile_height) { // 16x16 tile @@ -137,7 +137,7 @@ static SCREEN_UPDATE_RGB32( srmp5 ) UINT8 pen = pixels[address]; if(pen) { - UINT16 pixdata=state->m_palram[pen]; + UINT16 pixdata=m_palram[pen]; bitmap.pix32(yw * 16 + y, xw * 16 + x) = ((pixdata&0x7c00)>>7) | ((pixdata&0x3e0)<<6) | ((pixdata&0x1f)<<19); } address++; @@ -152,7 +152,7 @@ static SCREEN_UPDATE_RGB32( srmp5 ) while((sprite_list[SUBLIST_OFFSET]&SPRITE_LIST_END_MARKER)==0 && sprite_list<sprite_list_end) { - UINT16 *sprite_sublist=&state->m_sprram[sprite_list[SUBLIST_OFFSET]<<SUBLIST_OFFSET_SHIFT]; + UINT16 *sprite_sublist=&m_sprram[sprite_list[SUBLIST_OFFSET]<<SUBLIST_OFFSET_SHIFT]; UINT16 sublist_length=sprite_list[SUBLIST_LENGTH]; INT16 global_x,global_y; @@ -189,7 +189,7 @@ static SCREEN_UPDATE_RGB32( srmp5 ) { if(cliprect.contains(xb+xs2, yb+ys2)) { - UINT16 pixdata=state->m_palram[pen+((sprite_sublist[SPRITE_PALETTE]&0xff)<<8)]; + UINT16 pixdata=m_palram[pen+((sprite_sublist[SPRITE_PALETTE]&0xff)<<8)]; bitmap.pix32(yb+ys2, xb+xs2) = ((pixdata&0x7c00)>>7) | ((pixdata&0x3e0)<<6) | ((pixdata&0x1f)<<19); } } @@ -210,10 +210,10 @@ static SCREEN_UPDATE_RGB32( srmp5 ) int i; for(i = 0; i < 0x2000; i++) { - if (state->m_tileduty[i] == 1) + if (m_tileduty[i] == 1) { screen.machine().gfx[0]->decode(i); - state->m_tileduty[i] = 0; + m_tileduty[i] = 0; } } } @@ -573,7 +573,7 @@ static MACHINE_CONFIG_START( srmp5, srmp5_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(96*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(srmp5) + MCFG_SCREEN_UPDATE_DRIVER(srmp5_state, screen_update_srmp5) MCFG_PALETTE_LENGTH(0x1800) #ifdef DEBUG_CHAR diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c index 4de22ae59f4..f4248f16f04 100644 --- a/src/mame/drivers/srmp6.c +++ b/src/mame/drivers/srmp6.c @@ -105,6 +105,7 @@ public: DECLARE_READ16_MEMBER(srmp6_irq_ack_r); DECLARE_DRIVER_INIT(INIT); virtual void video_start(); + UINT32 screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; #define VERBOSE 0 @@ -172,12 +173,11 @@ void srmp6_state::video_start() static int xixi=0; #endif -static SCREEN_UPDATE_RGB32(srmp6) +UINT32 srmp6_state::screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - srmp6_state *state = screen.machine().driver_data<srmp6_state>(); int alpha; int x,y,tileno,height,width,xw,yw,sprite,xb,yb; - UINT16 *sprite_list = state->m_sprram_old; + UINT16 *sprite_list = m_sprram_old; UINT16 mainlist_offset = 0; union @@ -207,7 +207,7 @@ static SCREEN_UPDATE_RGB32(srmp6) while (mainlist_offset<0x2000/2) { - UINT16 *sprite_sublist = &state->m_sprram_old[sprite_list[mainlist_offset+1]<<3]; + UINT16 *sprite_sublist = &m_sprram_old[sprite_list[mainlist_offset+1]<<3]; UINT16 sublist_length=sprite_list[mainlist_offset+0]&0x7fff; //+1 ? INT16 global_x,global_y, flip_x, flip_y; UINT16 global_pal; @@ -285,12 +285,12 @@ static SCREEN_UPDATE_RGB32(srmp6) mainlist_offset+=8; } - memcpy(state->m_sprram_old, state->m_sprram, 0x80000); + memcpy(m_sprram_old, m_sprram, 0x80000); if(screen.machine().input().code_pressed_once(KEYCODE_Q)) { FILE *p=fopen("tileram.bin","wb"); - fwrite(state->m_tileram, 1, 0x100000*16, p); + fwrite(m_tileram, 1, 0x100000*16, p); fclose(p); } @@ -681,7 +681,7 @@ static MACHINE_CONFIG_START( srmp6, srmp6_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(srmp6) + MCFG_SCREEN_UPDATE_DRIVER(srmp6_state, screen_update_srmp6) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c index 2330139b6bd..ed993146de5 100644 --- a/src/mame/drivers/srumbler.c +++ b/src/mame/drivers/srumbler.c @@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(10*8, (64-10)*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(srumbler) + MCFG_SCREEN_UPDATE_DRIVER(srumbler_state, screen_update_srumbler) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(srumbler) diff --git a/src/mame/drivers/ssfindo.c b/src/mame/drivers/ssfindo.c index 324d1d2219f..7626ed74e9e 100644 --- a/src/mame/drivers/ssfindo.c +++ b/src/mame/drivers/ssfindo.c @@ -246,6 +246,7 @@ public: DECLARE_DRIVER_INIT(ppcar); DECLARE_DRIVER_INIT(tetfight); virtual void machine_reset(); + UINT32 screen_update_ssfindo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -253,24 +254,23 @@ static void PS7500_startTimer0(running_machine &machine); static void PS7500_startTimer1(running_machine &machine); -static SCREEN_UPDATE_IND16(ssfindo) +UINT32 ssfindo_state::screen_update_ssfindo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - ssfindo_state *state = screen.machine().driver_data<ssfindo_state>(); int s,x,y; - if( state->m_PS7500_IO[VIDCR]&0x20) //video DMA enabled + if( m_PS7500_IO[VIDCR]&0x20) //video DMA enabled { - s=( (state->m_PS7500_IO[VIDINITA]&0x1fffffff)-0x10000000)/4; + s=( (m_PS7500_IO[VIDINITA]&0x1fffffff)-0x10000000)/4; if(s>=0 && s<(0x10000000/4)) { for(y=0;y<256;y++) for(x=0;x<320;x+=4) { - bitmap.pix16(y, x+0) = state->m_vram[s]&0xff; - bitmap.pix16(y, x+1) = (state->m_vram[s]>>8)&0xff; - bitmap.pix16(y, x+2) = (state->m_vram[s]>>16)&0xff; - bitmap.pix16(y, x+3) = (state->m_vram[s]>>24)&0xff; + bitmap.pix16(y, x+0) = m_vram[s]&0xff; + bitmap.pix16(y, x+1) = (m_vram[s]>>8)&0xff; + bitmap.pix16(y, x+2) = (m_vram[s]>>16)&0xff; + bitmap.pix16(y, x+3) = (m_vram[s]>>24)&0xff; s++; } } @@ -765,7 +765,7 @@ static MACHINE_CONFIG_START( ssfindo, ssfindo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(ssfindo) + MCFG_SCREEN_UPDATE_DRIVER(ssfindo_state, screen_update_ssfindo) MCFG_PALETTE_LENGTH(256) MACHINE_CONFIG_END diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c index 3091e19dcd0..5201d733b36 100644 --- a/src/mame/drivers/sshangha.c +++ b/src/mame/drivers/sshangha.c @@ -408,7 +408,7 @@ static MACHINE_CONFIG_START( sshangha, sshangha_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(sshangha) + MCFG_SCREEN_UPDATE_DRIVER(sshangha_state, screen_update_sshangha) MCFG_GFXDECODE(sshangha) MCFG_PALETTE_LENGTH(0x4000) diff --git a/src/mame/drivers/sshot.c b/src/mame/drivers/sshot.c index fe78f4720e6..eeff6398fb9 100644 --- a/src/mame/drivers/sshot.c +++ b/src/mame/drivers/sshot.c @@ -174,6 +174,7 @@ public: TILE_GET_INFO_MEMBER(get_supershot_text_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; /************************************* @@ -194,10 +195,9 @@ void supershot_state::video_start() m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( supershot ) +UINT32 supershot_state::screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - supershot_state *state = screen.machine().driver_data<supershot_state>(); - state->m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -340,7 +340,7 @@ static MACHINE_CONFIG_START( supershot, supershot_state ) MCFG_SCREEN_SIZE((32)*8, (32)*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(supershot) + MCFG_SCREEN_UPDATE_DRIVER(supershot_state, screen_update_supershot) MCFG_GFXDECODE(supershot) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c index 4028a9ab7aa..1c5771d51b8 100644 --- a/src/mame/drivers/sslam.c +++ b/src/mame/drivers/sslam.c @@ -718,7 +718,7 @@ static MACHINE_CONFIG_START( sslam, sslam_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(sslam) + MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_sslam) MCFG_GFXDECODE(sslam) MCFG_PALETTE_LENGTH(0x800) @@ -748,7 +748,7 @@ static MACHINE_CONFIG_START( powerbls, sslam_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(powerbls) + MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_powerbls) MCFG_GFXDECODE(powerbls) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/ssozumo.c b/src/mame/drivers/ssozumo.c index 32ef4ff0931..ae425aeea87 100644 --- a/src/mame/drivers/ssozumo.c +++ b/src/mame/drivers/ssozumo.c @@ -205,7 +205,7 @@ static MACHINE_CONFIG_START( ssozumo, ssozumo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8 - 1, 1*8, 31*8 - 1) - MCFG_SCREEN_UPDATE_STATIC(ssozumo) + MCFG_SCREEN_UPDATE_DRIVER(ssozumo_state, screen_update_ssozumo) MCFG_GFXDECODE(ssozumo) MCFG_PALETTE_LENGTH(64 + 16) diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c index ad634b25afc..c042cef3361 100644 --- a/src/mame/drivers/sspeedr.c +++ b/src/mame/drivers/sspeedr.c @@ -198,8 +198,8 @@ static MACHINE_CONFIG_START( sspeedr, sspeedr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(16 * 1000000 / 15680)) MCFG_SCREEN_SIZE(376, 256) MCFG_SCREEN_VISIBLE_AREA(0, 375, 0, 247) - MCFG_SCREEN_UPDATE_STATIC(sspeedr) - MCFG_SCREEN_VBLANK_STATIC(sspeedr) + MCFG_SCREEN_UPDATE_DRIVER(sspeedr_state, screen_update_sspeedr) + MCFG_SCREEN_VBLANK_DRIVER(sspeedr_state, screen_eof_sspeedr) MCFG_GFXDECODE(sspeedr) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c index b1a9b9de83d..42942673c22 100644 --- a/src/mame/drivers/ssrj.c +++ b/src/mame/drivers/ssrj.c @@ -152,8 +152,8 @@ static MACHINE_CONFIG_START( ssrj, ssrj_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 1*8, 31*8-1) // unknown res - MCFG_SCREEN_UPDATE_STATIC(ssrj) - MCFG_SCREEN_VBLANK_STATIC(ssrj) + MCFG_SCREEN_UPDATE_DRIVER(ssrj_state, screen_update_ssrj) + MCFG_SCREEN_VBLANK_DRIVER(ssrj_state, screen_eof_ssrj) MCFG_GFXDECODE(ssrj) MCFG_PALETTE_LENGTH(128) diff --git a/src/mame/drivers/sstrangr.c b/src/mame/drivers/sstrangr.c index b096b85a443..67d6823847d 100644 --- a/src/mame/drivers/sstrangr.c +++ b/src/mame/drivers/sstrangr.c @@ -24,6 +24,8 @@ public: UINT8 m_flip_screen; UINT8 *m_proms; DECLARE_WRITE8_MEMBER(port_w); + UINT32 screen_update_sstrangr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + UINT32 screen_update_sstrngr2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -34,9 +36,8 @@ public: * *************************************/ -static SCREEN_UPDATE_RGB32( sstrangr ) +UINT32 sstrangr_state::screen_update_sstrangr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - sstrangr_state *state = screen.machine().driver_data<sstrangr_state>(); offs_t offs; for (offs = 0; offs < 0x2000; offs++) @@ -45,13 +46,13 @@ static SCREEN_UPDATE_RGB32( sstrangr ) UINT8 x = offs << 3; int y = offs >> 5; - UINT8 data = state->m_ram[offs]; + UINT8 data = m_ram[offs]; for (i = 0; i < 8; i++) { pen_t pen; - if (state->m_flip_screen) + if (m_flip_screen) { pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK; data = data << 1; @@ -83,16 +84,15 @@ static void get_pens(pen_t *pens) } -static SCREEN_UPDATE_RGB32( sstrngr2 ) +UINT32 sstrangr_state::screen_update_sstrngr2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - sstrangr_state *state = screen.machine().driver_data<sstrangr_state>(); pen_t pens[NUM_PENS]; offs_t offs; UINT8 *color_map_base; get_pens(pens); - color_map_base = &state->memregion("proms")->base()[state->m_flip_screen ? 0x0000 : 0x0200]; + color_map_base = &memregion("proms")->base()[m_flip_screen ? 0x0000 : 0x0200]; for (offs = 0; offs < 0x2000; offs++) { @@ -103,14 +103,14 @@ static SCREEN_UPDATE_RGB32( sstrngr2 ) offs_t color_address = (offs >> 9 << 5) | (offs & 0x1f); - UINT8 data = state->m_ram[offs]; + UINT8 data = m_ram[offs]; UINT8 fore_color = color_map_base[color_address] & 0x07; for (i = 0; i < 8; i++) { UINT8 color; - if (state->m_flip_screen) + if (m_flip_screen) { color = (data & 0x80) ? fore_color : 0; data = data << 1; @@ -204,7 +204,7 @@ static MACHINE_CONFIG_START( sstrangr, sstrangr_state ) MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess, taken from mw8080bw */ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_STATIC(sstrangr) + MCFG_SCREEN_UPDATE_DRIVER(sstrangr_state, screen_update_sstrangr) /* sound hardware */ @@ -267,7 +267,7 @@ static MACHINE_CONFIG_DERIVED( sstrngr2, sstrangr ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(sstrngr2) + MCFG_SCREEN_UPDATE_DRIVER(sstrangr_state, screen_update_sstrngr2) MACHINE_CONFIG_END diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c index 00dc16110d5..210fbb4c4de 100644 --- a/src/mame/drivers/ssv.c +++ b/src/mame/drivers/ssv.c @@ -2610,7 +2610,7 @@ static MACHINE_CONFIG_START( ssv, ssv_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(0x1c6, 0x106) MCFG_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_STATIC(ssv) + MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_ssv) MCFG_GFXDECODE(ssv) MCFG_PALETTE_LENGTH(0x8000) @@ -2658,7 +2658,7 @@ static MACHINE_CONFIG_DERIVED( gdfs, ssv ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, (0xd5-0x2c)*2-1, 0, (0x102-0x12)-1) - MCFG_SCREEN_UPDATE_STATIC(gdfs) + MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_gdfs) MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0) @@ -2838,7 +2838,7 @@ static MACHINE_CONFIG_DERIVED( eaglshot, ssv ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, (0xca - 0x2a)*2-1, 0, (0xf6 - 0x16)-1) - MCFG_SCREEN_UPDATE_STATIC(eaglshot) + MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_eaglshot) MCFG_GFXDECODE(eaglshot) MCFG_VIDEO_START_OVERRIDE(ssv_state,eaglshot) diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c index b174b7bcac1..74a86886b2d 100644 --- a/src/mame/drivers/st0016.c +++ b/src/mame/drivers/st0016.c @@ -454,7 +454,7 @@ static MACHINE_CONFIG_START( st0016, st0016_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(48*8, 48*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 48*8-1) - MCFG_SCREEN_UPDATE_STATIC(st0016) + MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016) MCFG_GFXDECODE(st0016) MCFG_PALETTE_LENGTH(16*16*4+1) diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c index f24e0e3921e..3baa5082868 100644 --- a/src/mame/drivers/stadhero.c +++ b/src/mame/drivers/stadhero.c @@ -240,7 +240,7 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(stadhero) + MCFG_SCREEN_UPDATE_DRIVER(stadhero_state, screen_update_stadhero) MCFG_GFXDECODE(stadhero) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/starcrus.c b/src/mame/drivers/starcrus.c index d4dd189127c..7488ac11971 100644 --- a/src/mame/drivers/starcrus.c +++ b/src/mame/drivers/starcrus.c @@ -148,7 +148,7 @@ static MACHINE_CONFIG_START( starcrus, starcrus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(starcrus) + MCFG_SCREEN_UPDATE_DRIVER(starcrus_state, screen_update_starcrus) MCFG_GFXDECODE(starcrus) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/starfire.c b/src/mame/drivers/starfire.c index f0499e632be..924756e3015 100644 --- a/src/mame/drivers/starfire.c +++ b/src/mame/drivers/starfire.c @@ -268,7 +268,7 @@ static MACHINE_CONFIG_START( starfire, starfire_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(STARFIRE_PIXEL_CLOCK, STARFIRE_HTOTAL, STARFIRE_HBEND, STARFIRE_HBSTART, STARFIRE_VTOTAL, STARFIRE_VBEND, STARFIRE_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(starfire) + MCFG_SCREEN_UPDATE_DRIVER(starfire_state, screen_update_starfire) /* audio hardware */ diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c index c5c6c1e4283..279c5502828 100644 --- a/src/mame/drivers/starshp1.c +++ b/src/mame/drivers/starshp1.c @@ -306,8 +306,8 @@ static MACHINE_CONFIG_START( starshp1, starshp1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(STARSHP1_PIXEL_CLOCK, STARSHP1_HTOTAL, STARSHP1_HBEND, STARSHP1_HBSTART, STARSHP1_VTOTAL, STARSHP1_VBEND, STARSHP1_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(starshp1) - MCFG_SCREEN_VBLANK_STATIC(starshp1) + MCFG_SCREEN_UPDATE_DRIVER(starshp1_state, screen_update_starshp1) + MCFG_SCREEN_VBLANK_DRIVER(starshp1_state, screen_eof_starshp1) MCFG_GFXDECODE(starshp1) MCFG_PALETTE_LENGTH(19) diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c index d73b8b482ed..659152cf539 100644 --- a/src/mame/drivers/statriv2.c +++ b/src/mame/drivers/statriv2.c @@ -109,6 +109,7 @@ public: virtual void video_start(); virtual void palette_init(); DECLARE_VIDEO_START(vertical); + UINT32 screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -191,13 +192,12 @@ WRITE8_MEMBER(statriv2_state::statriv2_videoram_w) * *************************************/ -static SCREEN_UPDATE_IND16( statriv2 ) +UINT32 statriv2_state::screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - statriv2_state *state = screen.machine().driver_data<statriv2_state>(); if (tms9927_screen_reset(screen.machine().device("tms"))) bitmap.fill(get_black_pen(screen.machine()), cliprect); else - state->m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -612,7 +612,7 @@ static MACHINE_CONFIG_START( statriv2, statriv2_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 320, 270, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(statriv2) + MCFG_SCREEN_UPDATE_DRIVER(statriv2_state, screen_update_statriv2) MCFG_TMS9927_ADD("tms", MASTER_CLOCK/2, tms9927_intf) diff --git a/src/mame/drivers/stfight.c b/src/mame/drivers/stfight.c index 841ea911e86..65104628944 100644 --- a/src/mame/drivers/stfight.c +++ b/src/mame/drivers/stfight.c @@ -451,7 +451,7 @@ static MACHINE_CONFIG_START( stfight, stfight_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(stfight) + MCFG_SCREEN_UPDATE_DRIVER(stfight_state, screen_update_stfight) MCFG_GFXDECODE(stfight) MCFG_PALETTE_LENGTH(16*4+16*16+16*16+16*16) diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c index 40e0c00a2ec..8b88b4131a3 100644 --- a/src/mame/drivers/stlforce.c +++ b/src/mame/drivers/stlforce.c @@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( stlforce, stlforce_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 47*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(stlforce) + MCFG_SCREEN_UPDATE_DRIVER(stlforce_state, screen_update_stlforce) MCFG_GFXDECODE(stlforce) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c index e4b5ee0c14f..420363be2d8 100644 --- a/src/mame/drivers/strnskil.c +++ b/src/mame/drivers/strnskil.c @@ -367,7 +367,7 @@ static MACHINE_CONFIG_START( strnskil, strnskil_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8+3*8, 32*8+3*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(strnskil) + MCFG_SCREEN_UPDATE_DRIVER(strnskil_state, screen_update_strnskil) MCFG_GFXDECODE(strnskil) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/sub.c b/src/mame/drivers/sub.c index be67bc11cc4..4eedb6ed0ba 100644 --- a/src/mame/drivers/sub.c +++ b/src/mame/drivers/sub.c @@ -133,15 +133,15 @@ public: DECLARE_WRITE8_MEMBER(nmi_mask_w); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; void sub_state::video_start() { } -static SCREEN_UPDATE_IND16(sub) +UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - sub_state *state = screen.machine().driver_data<sub_state>(); gfx_element *gfx = screen.machine().gfx[0]; gfx_element *gfx_1 = screen.machine().gfx[1]; int y,x; @@ -151,12 +151,12 @@ static SCREEN_UPDATE_IND16(sub) { for (x=0;x<32;x++) { - UINT16 tile = state->m_vid[count]; + UINT16 tile = m_vid[count]; UINT8 col; - UINT8 y_offs = state->m_scrolly[x]; + UINT8 y_offs = m_scrolly[x]; - tile += (state->m_attr[count]&0xe0)<<3; - col = (state->m_attr[count]&0x1f); + tile += (m_attr[count]&0xe0)<<3; + col = (m_attr[count]&0x1f); drawgfx_opaque(bitmap,cliprect,gfx,tile,col+0x40,0,0,x*8,(y*8)-y_offs); drawgfx_opaque(bitmap,cliprect,gfx,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256); @@ -177,8 +177,8 @@ static SCREEN_UPDATE_IND16(sub) 1 --cc cccc color */ { - UINT8 *spriteram = state->m_spriteram; - UINT8 *spriteram_2 = state->m_spriteram2; + UINT8 *spriteram = m_spriteram; + UINT8 *spriteram_2 = m_spriteram2; UINT8 x,y,spr_offs,i,col,fx,fy; for(i=0;i<0x40;i+=2) @@ -202,12 +202,12 @@ static SCREEN_UPDATE_IND16(sub) { for (x=0;x<32;x++) { - UINT16 tile = state->m_vid[count]; + UINT16 tile = m_vid[count]; UINT8 col; - UINT8 y_offs = state->m_scrolly[x]; + UINT8 y_offs = m_scrolly[x]; - tile += (state->m_attr[count]&0xe0)<<3; - col = (state->m_attr[count]&0x1f); + tile += (m_attr[count]&0xe0)<<3; + col = (m_attr[count]&0x1f); if(x >= 28) { @@ -446,7 +446,7 @@ static MACHINE_CONFIG_START( sub, sub_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(sub) + MCFG_SCREEN_UPDATE_DRIVER(sub_state, screen_update_sub) MCFG_GFXDECODE(sub) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c index 2fb06c05a46..d963d855d4e 100644 --- a/src/mame/drivers/subs.c +++ b/src/mame/drivers/subs.c @@ -192,14 +192,14 @@ static MACHINE_CONFIG_START( subs, subs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(subs_left) + MCFG_SCREEN_UPDATE_DRIVER(subs_state, screen_update_subs_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(57) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(subs_right) + MCFG_SCREEN_UPDATE_DRIVER(subs_state, screen_update_subs_right) /* sound hardware */ diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c index 8f0c8a3b693..a60743fd8b5 100644 --- a/src/mame/drivers/subsino.c +++ b/src/mame/drivers/subsino.c @@ -306,6 +306,9 @@ public: DECLARE_PALETTE_INIT(subsino_3proms); DECLARE_VIDEO_START(subsino_reels); DECLARE_VIDEO_START(stisub); + UINT32 screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_subsino_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -483,77 +486,74 @@ VIDEO_START_MEMBER(subsino_state,stisub) } -static SCREEN_UPDATE_IND16( subsino ) +UINT32 subsino_state::screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - subsino_state *state = screen.machine().driver_data<subsino_state>(); bitmap.fill(0, cliprect); - state->m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(bitmap, cliprect, 0, 0); return 0; } -static SCREEN_UPDATE_IND16( subsino_reels ) +UINT32 subsino_state::screen_update_subsino_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - subsino_state *state = screen.machine().driver_data<subsino_state>(); int i; bitmap.fill(0, cliprect); for (i= 0;i < 64;i++) { - state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]); - state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]); - state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]); + m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]); + m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]); + m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]); } - if (state->m_out_c&0x08) + if (m_out_c&0x08) { // are these hardcoded, or registers? const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1); const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1); const rectangle visible3(0*8, (14+48)*8-1, 18*8, (18+7)*8-1); - state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(bitmap, visible3, 0, 0); } - state->m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(bitmap, cliprect, 0, 0); return 0; } -static SCREEN_UPDATE_IND16( stisub_reels ) +UINT32 subsino_state::screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - subsino_state *state = screen.machine().driver_data<subsino_state>(); int i; bitmap.fill(0, cliprect); - if (state->m_reel1_attr) + if (m_reel1_attr) { - state->m_reel1_tilemap->mark_all_dirty(); - state->m_reel2_tilemap->mark_all_dirty(); - state->m_reel3_tilemap->mark_all_dirty(); + m_reel1_tilemap->mark_all_dirty(); + m_reel2_tilemap->mark_all_dirty(); + m_reel3_tilemap->mark_all_dirty(); } for (i= 0;i < 64;i++) { - state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]); - state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]); - state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]); + m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]); + m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]); + m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]); } - if (state->m_out_c&0x08) + if (m_out_c&0x08) { // areas based on d-up game in attract mode const rectangle visible1(0, 511, 0, 87); const rectangle visible2(0, 511, 88, 143); const rectangle visible3(0, 511, 144, 223); - state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(bitmap, visible3, 0, 0); } - state->m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -2657,7 +2657,7 @@ static MACHINE_CONFIG_START( victor21, subsino_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(subsino) + MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino) MCFG_GFXDECODE(subsino_depth3) @@ -2697,7 +2697,7 @@ static MACHINE_CONFIG_START( crsbingo, subsino_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(subsino) + MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino) MCFG_GFXDECODE(subsino_depth4) @@ -2726,7 +2726,7 @@ static MACHINE_CONFIG_START( srider, subsino_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(subsino) + MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino) MCFG_GFXDECODE(subsino_depth4) @@ -2765,7 +2765,7 @@ static MACHINE_CONFIG_START( tisub, subsino_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(subsino_reels) + MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino_reels) MCFG_GFXDECODE(subsino_depth4_reels) @@ -2793,7 +2793,7 @@ static MACHINE_CONFIG_START( stisub, subsino_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(stisub_reels) + MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_stisub_reels) MCFG_GFXDECODE(subsino_stisub) diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c index 358521fde37..98e93fe730f 100644 --- a/src/mame/drivers/subsino2.c +++ b/src/mame/drivers/subsino2.c @@ -165,6 +165,7 @@ public: DECLARE_VIDEO_START(mtrain); DECLARE_MACHINE_RESET(am188em); DECLARE_VIDEO_START(xtrain); + UINT32 screen_update_subsino2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -631,10 +632,9 @@ VIDEO_START_MEMBER(subsino2_state,xtrain) m_ss9601_reelrects[2].set(0, 0, 0x18*8, 256-16-1); } -static SCREEN_UPDATE_IND16( subsino2 ) +UINT32 subsino2_state::screen_update_subsino2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - subsino2_state *state = screen.machine().driver_data<subsino2_state>(); - int layers_ctrl = ~state->m_ss9601_disable; + int layers_ctrl = ~m_ss9601_disable; int y; #ifdef MAME_DEBUG @@ -650,7 +650,7 @@ static SCREEN_UPDATE_IND16( subsino2 ) // Line Scroll / Reel Control int mask_y[2] = {0, 0}; bool l0_reel = false; - switch ( state->m_ss9601_scrollctrl ) + switch ( m_ss9601_scrollctrl ) { case 0xbf: mask_y[0] = ~(32-1); @@ -669,7 +669,7 @@ static SCREEN_UPDATE_IND16( subsino2 ) // Scroll for (int i = 0; i < 2; i++) { - layer_t *l = &state->m_layers[i]; + layer_t *l = &m_layers[i]; l->tmap->set_scroll_cols(1); l->tmap->set_scroll_rows(0x200); @@ -691,7 +691,7 @@ static SCREEN_UPDATE_IND16( subsino2 ) if (layers_ctrl & 1) { - layer_t *l = &state->m_layers[0]; + layer_t *l = &m_layers[0]; if (l0_reel) { @@ -700,7 +700,7 @@ static SCREEN_UPDATE_IND16( subsino2 ) for (int r = 0; r < 3; r++) { - rectangle visible = state->m_ss9601_reelrects[r]; + rectangle visible = m_ss9601_reelrects[r]; for (int x = 0; x < 0x40; x++) { @@ -708,7 +708,7 @@ static SCREEN_UPDATE_IND16( subsino2 ) visible.max_x = 8 * (x+1) - 1; int reeladdr = (visible.min_y / 0x10) * 0x80 + x; - UINT16 reelscroll = (state->m_ss9601_reelrams[VRAM_HI][reeladdr] << 8) + state->m_ss9601_reelrams[VRAM_LO][reeladdr]; + UINT16 reelscroll = (m_ss9601_reelrams[VRAM_HI][reeladdr] << 8) + m_ss9601_reelrams[VRAM_LO][reeladdr]; l->tmap->set_scrollx(0, (reelscroll >> 9) * 8 + l->scroll_x - visible.min_x); @@ -746,9 +746,9 @@ static SCREEN_UPDATE_IND16( subsino2 ) } } - if (layers_ctrl & 2) state->m_layers[1].tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_layers[1].tmap->draw(bitmap, cliprect, 0, 0); -// popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", state->m_layers[0].scroll_x,state->m_layers[0].scroll_y, state->m_layers[1].scroll_x,state->m_layers[1].scroll_y, state->m_ss9601_disable, state->m_ss9601_tilesize, state->m_ss9601_scrollctrl); +// popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", m_layers[0].scroll_x,m_layers[0].scroll_y, m_layers[1].scroll_x,m_layers[1].scroll_y, m_ss9601_disable, m_ss9601_tilesize, m_ss9601_scrollctrl); return 0; } @@ -2188,7 +2188,7 @@ static MACHINE_CONFIG_START( bishjan, subsino2_state ) MCFG_SCREEN_SIZE( 512, 256 ) MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 ) MCFG_SCREEN_REFRESH_RATE( 60 ) - MCFG_SCREEN_UPDATE_STATIC( subsino2 ) + MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2) MCFG_GFXDECODE( ss9601 ) MCFG_PALETTE_LENGTH( 256 ) @@ -2216,7 +2216,7 @@ static MACHINE_CONFIG_START( mtrain, subsino2_state ) MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-32-1 ) MCFG_SCREEN_REFRESH_RATE( 58.7270 ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state - MCFG_SCREEN_UPDATE_STATIC( subsino2 ) + MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2) MCFG_GFXDECODE( ss9601 ) MCFG_PALETTE_LENGTH( 256 ) @@ -2249,7 +2249,7 @@ static MACHINE_CONFIG_START( saklove, subsino2_state ) MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 ) MCFG_SCREEN_REFRESH_RATE( 58.7270 ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state - MCFG_SCREEN_UPDATE_STATIC( subsino2 ) + MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2) MCFG_GFXDECODE( ss9601 ) MCFG_PALETTE_LENGTH( 256 ) @@ -2286,7 +2286,7 @@ static MACHINE_CONFIG_START( xplan, subsino2_state ) MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 ) MCFG_SCREEN_REFRESH_RATE( 58.7270 ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state - MCFG_SCREEN_UPDATE_STATIC( subsino2 ) + MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2) MCFG_GFXDECODE( ss9601 ) MCFG_PALETTE_LENGTH( 256 ) diff --git a/src/mame/drivers/summit.c b/src/mame/drivers/summit.c index dbdd5626013..513e45ba2ec 100644 --- a/src/mame/drivers/summit.c +++ b/src/mame/drivers/summit.c @@ -32,6 +32,7 @@ public: DECLARE_WRITE8_MEMBER(out_w); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -39,9 +40,8 @@ void summit_state::video_start() { } -static SCREEN_UPDATE_IND16(summit) +UINT32 summit_state::screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - summit_state *state = screen.machine().driver_data<summit_state>(); gfx_element *gfx = screen.machine().gfx[0]; int count = 0x0000; @@ -52,7 +52,7 @@ static SCREEN_UPDATE_IND16(summit) { for (x=0;x<32;x++) { - int tile = (state->m_vram[count] | ((state->m_attr[count]&1)<<8) ); + int tile = (m_vram[count] | ((m_attr[count]&1)<<8) ); drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); count++; @@ -308,7 +308,7 @@ static MACHINE_CONFIG_START( summit, summit_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(summit) + MCFG_SCREEN_UPDATE_DRIVER(summit_state, screen_update_summit) MCFG_GFXDECODE(summit) diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c index becf170a4c8..a2aa2ccf72c 100644 --- a/src/mame/drivers/suna16.c +++ b/src/mame/drivers/suna16.c @@ -791,7 +791,7 @@ static MACHINE_CONFIG_START( bssoccer, suna16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(suna16) + MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16) MCFG_GFXDECODE(suna16) MCFG_PALETTE_LENGTH(512) @@ -849,7 +849,7 @@ static MACHINE_CONFIG_START( uballoon, suna16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(suna16) + MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16) MCFG_GFXDECODE(suna16) MCFG_PALETTE_LENGTH(512) @@ -897,7 +897,7 @@ static MACHINE_CONFIG_START( sunaq, suna16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(suna16) + MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16) MCFG_GFXDECODE(suna16) MCFG_PALETTE_LENGTH(512) @@ -963,7 +963,7 @@ static MACHINE_CONFIG_START( bestbest, suna16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(bestbest) + MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_bestbest) MCFG_GFXDECODE(bestbest) MCFG_PALETTE_LENGTH(256*8) diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c index 9143442f2ee..2e0e2f0f904 100644 --- a/src/mame/drivers/suna8.c +++ b/src/mame/drivers/suna8.c @@ -1637,7 +1637,7 @@ static MACHINE_CONFIG_START( hardhead, suna8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(suna8) + MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE(suna8) MCFG_PALETTE_LENGTH(256) @@ -1701,7 +1701,7 @@ static MACHINE_CONFIG_START( rranger, suna8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(suna8) + MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE(suna8) MCFG_PALETTE_LENGTH(256) @@ -1780,7 +1780,7 @@ static MACHINE_CONFIG_START( brickzn, suna8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(suna8) + MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE(suna8) MCFG_PALETTE_LENGTH(256 * 2) // 2 x Palette RAM @@ -1881,7 +1881,7 @@ static MACHINE_CONFIG_START( starfigh, suna8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(suna8) + MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE(suna8) MCFG_PALETTE_LENGTH(256) @@ -1928,7 +1928,7 @@ static MACHINE_CONFIG_START( sparkman, suna8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_STATIC(suna8) + MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE(suna8) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c index 51fe59e5af3..54f6f8e3926 100644 --- a/src/mame/drivers/supbtime.c +++ b/src/mame/drivers/supbtime.c @@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( supbtime, supbtime_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(supbtime) + MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime) MCFG_GFXDECODE(supbtime) MCFG_PALETTE_LENGTH(1024) @@ -398,7 +398,7 @@ static MACHINE_CONFIG_START( chinatwn, supbtime_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(supbtime) + MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime) MCFG_GFXDECODE(supbtime) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c index 0a330f69f3b..7520f7267c8 100644 --- a/src/mame/drivers/supdrapo.c +++ b/src/mame/drivers/supdrapo.c @@ -90,6 +90,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -102,9 +103,8 @@ void supdrapo_state::video_start() } -static SCREEN_UPDATE_IND16( supdrapo ) +UINT32 supdrapo_state::screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - supdrapo_state *state = screen.machine().driver_data<supdrapo_state>(); int x, y; int count; int color; @@ -115,9 +115,9 @@ static SCREEN_UPDATE_IND16( supdrapo ) { for(x = 0; x < 32; x++) { - int tile = state->m_videoram[count] + state->m_char_bank[count] * 0x100; + int tile = m_videoram[count] + m_char_bank[count] * 0x100; /* Global Column Coloring, GUESS! */ - color = state->m_col_line[(x*2) + 1] ? (state->m_col_line[(x*2) + 1] - 1) & 7 : 0; + color = m_col_line[(x*2) + 1] ? (m_col_line[(x*2) + 1] - 1) & 7 : 0; drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile,color, 0, 0, x*8, y*8); @@ -456,7 +456,7 @@ static MACHINE_CONFIG_START( supdrapo, supdrapo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(supdrapo) + MCFG_SCREEN_UPDATE_DRIVER(supdrapo_state, screen_update_supdrapo) MCFG_GFXDECODE(supdrapo) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c index cf9dbfc43a9..79b4e19baba 100644 --- a/src/mame/drivers/superchs.c +++ b/src/mame/drivers/superchs.c @@ -344,7 +344,7 @@ static MACHINE_CONFIG_START( superchs, superchs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(superchs) + MCFG_SCREEN_UPDATE_DRIVER(superchs_state, screen_update_superchs) MCFG_GFXDECODE(superchs) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c index ce3f39fccb1..80dc0183d13 100644 --- a/src/mame/drivers/superdq.c +++ b/src/mame/drivers/superdq.c @@ -51,6 +51,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(superdq_state::get_tile_info) @@ -66,11 +67,10 @@ void superdq_state::video_start() m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_RGB32( superdq ) +UINT32 superdq_state::screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - superdq_state *state = screen.machine().driver_data<superdq_state>(); - state->m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -349,7 +349,7 @@ static MACHINE_CONFIG_START( superdq, superdq_state ) MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_STATIC(256, 256, superdq) + MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, superdq_state, screen_update_superdq) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c index 44938140d19..d38bb74198e 100644 --- a/src/mame/drivers/superqix.c +++ b/src/mame/drivers/superqix.c @@ -1014,7 +1014,7 @@ static MACHINE_CONFIG_START( pbillian, superqix_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pbillian) + MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian) MCFG_GFXDECODE(pbillian) MCFG_PALETTE_LENGTH(512) @@ -1048,7 +1048,7 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(pbillian) + MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian) MCFG_GFXDECODE(pbillian) MCFG_PALETTE_LENGTH(512) @@ -1086,7 +1086,7 @@ static MACHINE_CONFIG_START( sqix, superqix_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(superqix) + MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix) MCFG_GFXDECODE(sqix) MCFG_PALETTE_LENGTH(256) @@ -1129,7 +1129,7 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(superqix) + MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix) MCFG_GFXDECODE(sqix) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/supertnk.c b/src/mame/drivers/supertnk.c index c199cb03093..2ef653f7e4d 100644 --- a/src/mame/drivers/supertnk.c +++ b/src/mame/drivers/supertnk.c @@ -125,6 +125,7 @@ public: DECLARE_DRIVER_INIT(supertnk); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_supertnk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -245,9 +246,8 @@ WRITE8_MEMBER(supertnk_state::supertnk_bitplane_select_1_w) } -static SCREEN_UPDATE_RGB32( supertnk ) +UINT32 supertnk_state::screen_update_supertnk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - supertnk_state *state = screen.machine().driver_data<supertnk_state>(); offs_t offs; for (offs = 0; offs < 0x2000; offs++) @@ -257,14 +257,14 @@ static SCREEN_UPDATE_RGB32( supertnk ) UINT8 y = offs >> 5; UINT8 x = offs << 3; - UINT8 data0 = state->m_videoram[0][offs]; - UINT8 data1 = state->m_videoram[1][offs]; - UINT8 data2 = state->m_videoram[2][offs]; + UINT8 data0 = m_videoram[0][offs]; + UINT8 data1 = m_videoram[1][offs]; + UINT8 data2 = m_videoram[2][offs]; for (i = 0; i < 8; i++) { UINT8 color = ((data0 & 0x80) >> 5) | ((data1 & 0x80) >> 6) | ((data2 & 0x80) >> 7); - bitmap.pix32(y, x) = state->m_pens[color]; + bitmap.pix32(y, x) = m_pens[color]; data0 = data0 << 1; data1 = data1 << 1; @@ -439,7 +439,7 @@ static MACHINE_CONFIG_START( supertnk, supertnk_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_UPDATE_STATIC(supertnk) + MCFG_SCREEN_UPDATE_DRIVER(supertnk_state, screen_update_supertnk) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c index e54e73b2ae3..de54f01846c 100644 --- a/src/mame/drivers/superwng.c +++ b/src/mame/drivers/superwng.c @@ -73,6 +73,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(superwng_state::get_bg_tile_info) @@ -112,22 +113,21 @@ void superwng_state::video_start() m_bg_tilemap->set_scrollx(0, 64); } -static SCREEN_UPDATE_IND16( superwng ) +UINT32 superwng_state::screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - superwng_state *state = screen.machine().driver_data<superwng_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); rectangle tmp = cliprect; - if (state->flip_screen()) + if (flip_screen()) { tmp.min_x += 32; - state->m_fg_tilemap->draw(bitmap, tmp, 0, 0); + m_fg_tilemap->draw(bitmap, tmp, 0, 0); } else { tmp.max_x -= 32; - state->m_fg_tilemap->draw(bitmap, tmp, 0, 0); + m_fg_tilemap->draw(bitmap, tmp, 0, 0); } //sprites @@ -143,14 +143,14 @@ static SCREEN_UPDATE_IND16( superwng ) x ? xxxx color */ - if (~state->m_videoram_bg[i] & 1) + if (~m_videoram_bg[i] & 1) continue; - int code = (state->m_videoram_bg[i] >> 2) | 0x40; - int flip = ~state->m_videoram_bg[i] >> 1 & 1; - int sx = 240 - state->m_videoram_bg[i + 1]; - int sy = state->m_colorram_bg[i]; - int color = state->m_colorram_bg[i + 1] & 0xf; + int code = (m_videoram_bg[i] >> 2) | 0x40; + int flip = ~m_videoram_bg[i] >> 1 & 1; + int sx = 240 - m_videoram_bg[i + 1]; + int sy = m_colorram_bg[i]; + int color = m_colorram_bg[i + 1] & 0xf; drawgfx_transpen(bitmap, cliprect,screen.machine().gfx[1], code, @@ -483,7 +483,7 @@ static MACHINE_CONFIG_START( superwng, superwng_state ) MCFG_GFXDECODE(superwng) MCFG_PALETTE_LENGTH(0x40) - MCFG_SCREEN_UPDATE_STATIC(superwng) + MCFG_SCREEN_UPDATE_DRIVER(superwng_state, screen_update_superwng) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c index 9a84c6d586e..24509cfce8a 100644 --- a/src/mame/drivers/suprgolf.c +++ b/src/mame/drivers/suprgolf.c @@ -68,6 +68,7 @@ public: TILE_GET_INFO_MEMBER(get_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info) @@ -94,9 +95,8 @@ void suprgolf_state::video_start() m_tilemap->set_transparent_pen(15); } -static SCREEN_UPDATE_IND16( suprgolf ) +UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - suprgolf_state *state = screen.machine().driver_data<suprgolf_state>(); int x,y,count,color; bitmap.fill(get_black_pen(screen.machine()), cliprect); @@ -107,7 +107,7 @@ static SCREEN_UPDATE_IND16( suprgolf ) { for(x=0;x<512;x++) { - color = state->m_bg_fb[count]; + color = m_bg_fb[count]; if(x <= cliprect.max_x && y <= cliprect.max_y) bitmap.pix16(y, x) = screen.machine().pens[(color & 0x7ff)]; @@ -124,9 +124,9 @@ static SCREEN_UPDATE_IND16( suprgolf ) { for(x=0;x<512;x++) { - color = state->m_fg_fb[count]; + color = m_fg_fb[count]; - if(((state->m_fg_fb[count] & 0x0f) != 0x0f) && (x <= cliprect.max_x && y <= cliprect.max_y)) + if(((m_fg_fb[count] & 0x0f) != 0x0f) && (x <= cliprect.max_x && y <= cliprect.max_y)) bitmap.pix16(y, x) = screen.machine().pens[(color & 0x7ff)]; count++; @@ -134,7 +134,7 @@ static SCREEN_UPDATE_IND16( suprgolf ) } } - state->m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -528,7 +528,7 @@ static MACHINE_CONFIG_START( suprgolf, suprgolf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 191) - MCFG_SCREEN_UPDATE_STATIC(suprgolf) + MCFG_SCREEN_UPDATE_DRIVER(suprgolf_state, screen_update_suprgolf) MCFG_GFXDECODE(suprgolf) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c index a40632767d7..2ac9fb7e1bf 100644 --- a/src/mame/drivers/suprloco.c +++ b/src/mame/drivers/suprloco.c @@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( suprloco, suprloco_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(suprloco) + MCFG_SCREEN_UPDATE_DRIVER(suprloco_state, screen_update_suprloco) MCFG_GFXDECODE(suprloco) MCFG_PALETTE_LENGTH(512+256) diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index 8895d3aa05b..e21abd12a59 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -777,8 +777,8 @@ static MACHINE_CONFIG_START( skns, skns_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(340,262) MCFG_SCREEN_VISIBLE_AREA(0,319,0,239) - MCFG_SCREEN_UPDATE_STATIC(skns) - MCFG_SCREEN_VBLANK_STATIC(skns) + MCFG_SCREEN_UPDATE_DRIVER(skns_state, screen_update_skns) + MCFG_SCREEN_VBLANK_DRIVER(skns_state, screen_eof_skns) MCFG_PALETTE_LENGTH(32768) MCFG_GFXDECODE(skns_bg) diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c index 6f05f011564..9d9c1811d6e 100644 --- a/src/mame/drivers/suprridr.c +++ b/src/mame/drivers/suprridr.c @@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( suprridr, suprridr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(suprridr) + MCFG_SCREEN_UPDATE_DRIVER(suprridr_state, screen_update_suprridr) MCFG_GFXDECODE(suprridr) MCFG_PALETTE_LENGTH(96) diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c index f548dd1e7e2..fb939269312 100644 --- a/src/mame/drivers/suprslam.c +++ b/src/mame/drivers/suprslam.c @@ -332,7 +332,7 @@ static MACHINE_CONFIG_START( suprslam, suprslam_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2300) /* hand-tuned */) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(suprslam) + MCFG_SCREEN_UPDATE_DRIVER(suprslam_state, screen_update_suprslam) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c index 2a31a76d128..fff5ee3b484 100644 --- a/src/mame/drivers/surpratk.c +++ b/src/mame/drivers/surpratk.c @@ -241,7 +241,7 @@ static MACHINE_CONFIG_START( surpratk, surpratk_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(surpratk) + MCFG_SCREEN_UPDATE_DRIVER(surpratk_state, screen_update_surpratk) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c index f24a73e730f..d104083d158 100644 --- a/src/mame/drivers/system1.c +++ b/src/mame/drivers/system1.c @@ -2163,7 +2163,7 @@ static MACHINE_CONFIG_START( sys1ppi, system1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 260, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(system1) + MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system1) MCFG_GFXDECODE(system1) MCFG_PALETTE_LENGTH(2048) @@ -2252,7 +2252,7 @@ static MACHINE_CONFIG_DERIVED( sys2, sys1ppi ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(system1_state,system2) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(system2) + MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system2) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( sys2m, sys2 ) @@ -2264,7 +2264,7 @@ static MACHINE_CONFIG_DERIVED( sys2row, sys2 ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(system2_rowscroll) + MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system2_rowscroll) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( sys2rowm, sys2row ) diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c index 5892d8570a2..c1316297634 100644 --- a/src/mame/drivers/system16.c +++ b/src/mame/drivers/system16.c @@ -2027,7 +2027,7 @@ static MACHINE_CONFIG_START( system16, segas1x_bootleg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(system16) + MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16) MCFG_GFXDECODE(sys16) MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER) @@ -2108,7 +2108,7 @@ static MACHINE_CONFIG_DERIVED( shinobib, system16 ) MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_shinobi ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg ) + MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( passshtb, system16_7759 ) @@ -2123,7 +2123,7 @@ static MACHINE_CONFIG_DERIVED( passshtb, system16_7759 ) MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg ) + MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg) MACHINE_CONFIG_END @@ -2140,7 +2140,7 @@ static MACHINE_CONFIG_DERIVED( passsht4b, system16_7759 ) MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg_passht4b ) + MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg_passht4b) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( wb3bb, system16 ) @@ -2156,7 +2156,7 @@ static MACHINE_CONFIG_DERIVED( wb3bb, system16 ) MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_wb3bl ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg ) + MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg) MACHINE_CONFIG_END @@ -2174,7 +2174,7 @@ static MACHINE_CONFIG_START( goldnaxeb1, segas1x_bootleg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(system16) + MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16) MCFG_GFXDECODE(sys16) MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER) @@ -2307,7 +2307,7 @@ static MACHINE_CONFIG_START( system18, segas1x_bootleg_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(system18old) + MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system18old) MCFG_GFXDECODE(sys16) MCFG_PALETTE_LENGTH((2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works) diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c index d62fc9b3c11..2a8465d707d 100644 --- a/src/mame/drivers/tagteam.c +++ b/src/mame/drivers/tagteam.c @@ -221,7 +221,7 @@ static MACHINE_CONFIG_START( tagteam, tagteam_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(tagteam) + MCFG_SCREEN_UPDATE_DRIVER(tagteam_state, screen_update_tagteam) MCFG_GFXDECODE(tagteam) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c index 42398978087..5e042b2fc6a 100644 --- a/src/mame/drivers/tail2nos.c +++ b/src/mame/drivers/tail2nos.c @@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( tail2nos, tail2nos_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(tail2nos) + MCFG_SCREEN_UPDATE_DRIVER(tail2nos_state, screen_update_tail2nos) MCFG_GFXDECODE(tail2nos) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c index eae7bfb4f24..2b8201885e4 100644 --- a/src/mame/drivers/taito_b.c +++ b/src/mame/drivers/taito_b.c @@ -2056,8 +2056,8 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2100,8 +2100,8 @@ static MACHINE_CONFIG_START( ashura, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2144,8 +2144,8 @@ static MACHINE_CONFIG_START( crimec, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2188,8 +2188,8 @@ static MACHINE_CONFIG_START( tetrist, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2231,8 +2231,8 @@ static MACHINE_CONFIG_START( tetrista, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2275,8 +2275,8 @@ static MACHINE_CONFIG_START( hitice, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2324,8 +2324,8 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(rambo3) MCFG_PALETTE_LENGTH(4096) @@ -2368,8 +2368,8 @@ static MACHINE_CONFIG_START( rambo3, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2415,8 +2415,8 @@ static MACHINE_CONFIG_START( pbobble, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2463,8 +2463,8 @@ static MACHINE_CONFIG_START( spacedx, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2507,8 +2507,8 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2555,8 +2555,8 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2599,8 +2599,8 @@ static MACHINE_CONFIG_START( viofight, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2646,8 +2646,8 @@ static MACHINE_CONFIG_START( masterw, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2691,8 +2691,8 @@ static MACHINE_CONFIG_START( silentd, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2735,8 +2735,8 @@ static MACHINE_CONFIG_START( selfeena, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2788,8 +2788,8 @@ static MACHINE_CONFIG_START( ryujin, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2839,8 +2839,8 @@ static MACHINE_CONFIG_START( sbm, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2888,14 +2888,14 @@ static MACHINE_CONFIG_START( realpunc, taitob_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitob) - MCFG_SCREEN_VBLANK_STATIC(taitob) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) + MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc) - MCFG_SCREEN_UPDATE_STATIC(realpunc) + MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_realpunc) MCFG_HD63484_ADD("hd63484", realpunc_hd63484_intf) diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c index a3bf1192b49..34d855a9624 100644 --- a/src/mame/drivers/taito_f2.c +++ b/src/mame/drivers/taito_f2.c @@ -3053,8 +3053,8 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitof2) - MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer) MCFG_GFXDECODE(taitof2) MCFG_PALETTE_LENGTH(4096) @@ -3099,7 +3099,7 @@ static MACHINE_CONFIG_DERIVED( finalb, taito_f2_tc0220ioc ) MCFG_GFXDECODE(finalb) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_finalb) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) @@ -3116,8 +3116,8 @@ static MACHINE_CONFIG_DERIVED( dondokod, taito_f2_tc0220ioc ) MCFG_GFXDECODE(pivot) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf) @@ -3134,7 +3134,7 @@ static MACHINE_CONFIG_DERIVED( megab, taito_f2_tc0220ioc ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3151,8 +3151,8 @@ static MACHINE_CONFIG_DERIVED( thundfox, taito_f2_tc0220ioc ) MCFG_GFXDECODE(thundfox) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_thundfox) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_thundfox) - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_thundfox) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_thundfox) MCFG_TC0100SCN_ADD("tc0100scn_1", thundfox_tc0100scn_intf_1) MCFG_TC0100SCN_ADD("tc0100scn_2", thundfox_tc0100scn_intf_2) @@ -3170,7 +3170,7 @@ static MACHINE_CONFIG_DERIVED( cameltry, taito_f2_tc0220ioc ) MCFG_GFXDECODE(pivot) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf) @@ -3187,7 +3187,7 @@ static MACHINE_CONFIG_DERIVED( qtorimon, taito_f2_tc0220ioc ) /* video hardware */ MCFG_GFXDECODE(yuyugogo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) @@ -3203,8 +3203,8 @@ static MACHINE_CONFIG_DERIVED( liquidk, taito_f2_tc0220ioc ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3220,7 +3220,7 @@ static MACHINE_CONFIG_DERIVED( quizhq, taito_f2 ) /* video hardware */ MCFG_GFXDECODE(yuyugogo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) @@ -3236,8 +3236,8 @@ static MACHINE_CONFIG_DERIVED( ssi, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ssi) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_ssi) - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox) // buffer_delayed_thundfox instead of buffer_delayed fixes the butterfly powerup + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_ssi) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_thundfox) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MACHINE_CONFIG_END @@ -3252,8 +3252,8 @@ static MACHINE_CONFIG_DERIVED( gunfront, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_gunfront) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3269,7 +3269,7 @@ static MACHINE_CONFIG_DERIVED( growl, taito_f2 ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_growl) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3300,8 +3300,8 @@ static MACHINE_CONFIG_DERIVED( footchmp, taito_f2 ) MCFG_GFXDECODE(deadconx) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_footchmp) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx) - MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_full_buffer_delayed) MCFG_TC0480SCP_ADD("tc0480scp", footchmp_tc0480scp_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3324,8 +3324,8 @@ static MACHINE_CONFIG_DERIVED( hthero, taito_f2 ) MCFG_GFXDECODE(deadconx) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_hthero) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx) - MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_full_buffer_delayed) MCFG_TC0360PRI_ADD("tc0360pri") MCFG_TC0480SCP_ADD("tc0480scp", hthero_tc0480scp_intf) @@ -3341,7 +3341,7 @@ static MACHINE_CONFIG_DERIVED( koshien, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_koshien) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", koshien_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3358,7 +3358,7 @@ static MACHINE_CONFIG_DERIVED( yuyugogo, taito_f2_tc0510nio ) MCFG_GFXDECODE(yuyugogo) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yuyugogo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_yesnoj) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_yesnoj) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MACHINE_CONFIG_END @@ -3373,7 +3373,7 @@ static MACHINE_CONFIG_DERIVED( ninjak, taito_f2 ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ninjak) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3389,7 +3389,7 @@ static MACHINE_CONFIG_DERIVED( solfigtr, taito_f2 ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_solfigtr) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", solfigtr_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3404,7 +3404,7 @@ static MACHINE_CONFIG_DERIVED( qzquest, taito_f2_tc0510nio ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MACHINE_CONFIG_END @@ -3420,7 +3420,7 @@ static MACHINE_CONFIG_DERIVED( pulirula, taito_f2_tc0510nio ) MCFG_GFXDECODE(pivot) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_pulirula) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf) @@ -3439,7 +3439,7 @@ static MACHINE_CONFIG_DERIVED( metalb, taito_f2_tc0510nio ) MCFG_PALETTE_LENGTH(8192) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_metalb) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_metalb) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_metalb) MCFG_TC0480SCP_ADD("tc0480scp", metalb_tc0480scp_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3455,7 +3455,7 @@ static MACHINE_CONFIG_DERIVED( qzchikyu, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_qzchikyu) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_qzchikyu) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_qzchikyu) MCFG_TC0100SCN_ADD("tc0100scn", qzchikyu_tc0100scn_intf) MACHINE_CONFIG_END @@ -3471,7 +3471,7 @@ static MACHINE_CONFIG_DERIVED( yesnoj, taito_f2 ) MCFG_GFXDECODE(yuyugogo) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yesnoj) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_yesnoj) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_yesnoj) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MACHINE_CONFIG_END @@ -3487,7 +3487,7 @@ static MACHINE_CONFIG_DERIVED( deadconx, taito_f2 ) MCFG_GFXDECODE(deadconx) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconx) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) MCFG_TC0480SCP_ADD("tc0480scp", deadconx_tc0480scp_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3504,7 +3504,7 @@ static MACHINE_CONFIG_DERIVED( deadconxj, taito_f2 ) MCFG_GFXDECODE(deadconx) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconxj) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) MCFG_TC0480SCP_ADD("tc0480scp", deadconxj_tc0480scp_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3520,7 +3520,7 @@ static MACHINE_CONFIG_DERIVED( dinorex, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dinorex) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3536,7 +3536,7 @@ static MACHINE_CONFIG_DERIVED( qjinsei, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3552,7 +3552,7 @@ static MACHINE_CONFIG_DERIVED( qcrayon, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3568,7 +3568,7 @@ static MACHINE_CONFIG_DERIVED( qcrayon2, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3585,7 +3585,7 @@ static MACHINE_CONFIG_DERIVED( driftout, taito_f2_tc0510nio ) MCFG_GFXDECODE(pivot) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf) @@ -3613,8 +3613,8 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz) - MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer) MCFG_GFXDECODE(pivot) MCFG_PALETTE_LENGTH(4096) @@ -3662,8 +3662,8 @@ static MACHINE_CONFIG_START( driveout, taitof2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz) - MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer) + MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) + MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer) MCFG_GFXDECODE(pivot) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c index fb6f96517dd..4253a9d1596 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -441,8 +441,8 @@ static MACHINE_CONFIG_START( f3, taito_f3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */) MCFG_SCREEN_SIZE(40*8+48*2, 32*8) MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+232-1) - MCFG_SCREEN_UPDATE_STATIC(f3) - MCFG_SCREEN_VBLANK_STATIC(f3) + MCFG_SCREEN_UPDATE_DRIVER(taito_f3_state, screen_update_f3) + MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3) MCFG_GFXDECODE(taito_f3) MCFG_PALETTE_LENGTH(0x2000) @@ -535,8 +535,8 @@ static MACHINE_CONFIG_START( bubsympb, taito_f3_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */) MCFG_SCREEN_SIZE(40*8+48*2, 32*8) MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 31, 31+224-1) - MCFG_SCREEN_UPDATE_STATIC(f3) - MCFG_SCREEN_VBLANK_STATIC(f3) + MCFG_SCREEN_UPDATE_DRIVER(taito_f3_state, screen_update_f3) + MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3) MCFG_GFXDECODE(bubsympb) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c index 5da35666620..4436c254419 100644 --- a/src/mame/drivers/taito_h.c +++ b/src/mame/drivers/taito_h.c @@ -582,7 +582,7 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*16, 64*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1) - MCFG_SCREEN_UPDATE_STATIC(syvalion) + MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_syvalion) MCFG_GFXDECODE(syvalion) MCFG_PALETTE_LENGTH(33*16) @@ -623,7 +623,7 @@ static MACHINE_CONFIG_START( recordbr, taitoh_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*16, 64*16) MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1) - MCFG_SCREEN_UPDATE_STATIC(recordbr) + MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_recordbr) MCFG_GFXDECODE(recordbr) MCFG_PALETTE_LENGTH(32*16) @@ -664,7 +664,7 @@ static MACHINE_CONFIG_START( dleague, taitoh_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*16, 64*16) MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1) - MCFG_SCREEN_UPDATE_STATIC(dleague) + MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_dleague) MCFG_GFXDECODE(dleague) MCFG_PALETTE_LENGTH(33*16) diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index d5319b3b974..77fc0f495a8 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -1864,8 +1864,8 @@ static MACHINE_CONFIG_START( fhawk, taitol_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitol) - MCFG_SCREEN_VBLANK_STATIC(taitol) + MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol) + MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) MCFG_GFXDECODE(2) MCFG_PALETTE_LENGTH(256) @@ -1956,8 +1956,8 @@ static MACHINE_CONFIG_START( kurikint, taitol_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitol) - MCFG_SCREEN_VBLANK_STATIC(taitol) + MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol) + MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) MCFG_GFXDECODE(2) MCFG_PALETTE_LENGTH(256) @@ -2002,8 +2002,8 @@ static MACHINE_CONFIG_START( plotting, taitol_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitol) - MCFG_SCREEN_VBLANK_STATIC(taitol) + MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol) + MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) MCFG_GFXDECODE(1) MCFG_PALETTE_LENGTH(256) @@ -2095,8 +2095,8 @@ static MACHINE_CONFIG_START( evilston, taitol_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitol) - MCFG_SCREEN_VBLANK_STATIC(taitol) + MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol) + MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) MCFG_GFXDECODE(2) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c index 94fd3227dba..7f875f9421c 100644 --- a/src/mame/drivers/taito_o.c +++ b/src/mame/drivers/taito_o.c @@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( parentj, taitoo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*16, 64*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 31*16-1) - MCFG_SCREEN_UPDATE_STATIC(parentj) + MCFG_SCREEN_UPDATE_DRIVER(taitoo_state, screen_update_parentj) MCFG_GFXDECODE(parentj) MCFG_PALETTE_LENGTH(33*16) diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c index 44c25e3a592..c3fabe84d78 100644 --- a/src/mame/drivers/taito_x.c +++ b/src/mame/drivers/taito_x.c @@ -847,7 +847,7 @@ static MACHINE_CONFIG_START( superman, taitox_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(52*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) + MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) MCFG_GFXDECODE(superman) MCFG_PALETTE_LENGTH(2048) @@ -889,7 +889,7 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(52*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) + MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) MCFG_GFXDECODE(superman) MCFG_PALETTE_LENGTH(2048) @@ -929,7 +929,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(52*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) + MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) MCFG_GFXDECODE(superman) MCFG_PALETTE_LENGTH(2048) @@ -971,7 +971,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(52*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) + MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) MCFG_GFXDECODE(ballbros) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c index 11ce7b4fb99..3692e1e2094 100644 --- a/src/mame/drivers/taito_z.c +++ b/src/mame/drivers/taito_z.c @@ -3096,7 +3096,7 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(contcirc) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc) MCFG_GFXDECODE(taitoz) MCFG_PALETTE_LENGTH(4096) @@ -3158,7 +3158,7 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(chasehq) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq) MCFG_GFXDECODE(chasehq) MCFG_PALETTE_LENGTH(4096) @@ -3222,7 +3222,7 @@ static MACHINE_CONFIG_START( enforce, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(contcirc) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc) MCFG_GFXDECODE(taitoz) MCFG_PALETTE_LENGTH(4096) @@ -3282,7 +3282,7 @@ static MACHINE_CONFIG_START( bshark, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(bshark) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_bshark) MCFG_GFXDECODE(taitoz) MCFG_PALETTE_LENGTH(4096) @@ -3353,7 +3353,7 @@ static MACHINE_CONFIG_START( sci, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(sci) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_sci) MCFG_GFXDECODE(taitoz) MCFG_PALETTE_LENGTH(4096) @@ -3415,7 +3415,7 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(chasehq) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq) MCFG_GFXDECODE(chasehq) MCFG_PALETTE_LENGTH(4096) @@ -3479,7 +3479,7 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(aquajack) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_aquajack) MCFG_GFXDECODE(taitoz) MCFG_PALETTE_LENGTH(4096) @@ -3540,7 +3540,7 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(spacegun) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_spacegun) MCFG_GFXDECODE(taitoz) MCFG_PALETTE_LENGTH(4096) @@ -3601,7 +3601,7 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(dblaxle) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_dblaxle) MCFG_GFXDECODE(dblaxle) MCFG_PALETTE_LENGTH(4096) @@ -3663,7 +3663,7 @@ static MACHINE_CONFIG_START( racingb, taitoz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(racingb) + MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_racingb) MCFG_GFXDECODE(dblaxle) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c index 9f3a252f02b..a043b9dbd3d 100644 --- a/src/mame/drivers/taitoair.c +++ b/src/mame/drivers/taitoair.c @@ -730,7 +730,7 @@ static MACHINE_CONFIG_START( airsys, taitoair_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*16, 64*16) MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1) - MCFG_SCREEN_UPDATE_STATIC(taitoair) + MCFG_SCREEN_UPDATE_DRIVER(taitoair_state, screen_update_taitoair) MCFG_GFXDECODE(airsys) MCFG_PALETTE_LENGTH(512*16+512*16) diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c index 1f74c22e415..41bf00b5a3d 100644 --- a/src/mame/drivers/taitojc.c +++ b/src/mame/drivers/taitojc.c @@ -1263,7 +1263,7 @@ static MACHINE_CONFIG_START( taitojc, taitojc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(512, 400) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399) - MCFG_SCREEN_UPDATE_STATIC(taitojc) + MCFG_SCREEN_UPDATE_DRIVER(taitojc_state, screen_update_taitojc) MCFG_PALETTE_LENGTH(32768) @@ -1279,7 +1279,7 @@ static MACHINE_CONFIG_DERIVED( dendego, taitojc ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(dendego) + MCFG_SCREEN_UPDATE_DRIVER(taitojc_state, screen_update_dendego) /* sound hardware */ MCFG_SPEAKER_ADD("subwoofer", 0.0, 0.0, 1.0) diff --git a/src/mame/drivers/taitopjc.c b/src/mame/drivers/taitopjc.c index f90cd3c7916..d3a0aca30a9 100644 --- a/src/mame/drivers/taitopjc.c +++ b/src/mame/drivers/taitopjc.c @@ -83,6 +83,7 @@ public: DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to1); DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to3); virtual void video_start(); + UINT32 screen_update_taitopjc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; void taitopjc_state::video_start() @@ -90,7 +91,7 @@ void taitopjc_state::video_start() } -static SCREEN_UPDATE_RGB32( taitopjc ) +UINT32 taitopjc_state::screen_update_taitopjc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { { UINT8 *s = (UINT8*)jc_char_ram; @@ -432,7 +433,7 @@ static MACHINE_CONFIG_START( taitopjc, taitopjc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(640, 768) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 767) - MCFG_SCREEN_UPDATE_STATIC(taitopjc) + MCFG_SCREEN_UPDATE_DRIVER(taitopjc_state, screen_update_taitopjc) MACHINE_CONFIG_END diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c index d5e982fa9fc..52d5ed727bd 100644 --- a/src/mame/drivers/taitosj.c +++ b/src/mame/drivers/taitosj.c @@ -1808,7 +1808,7 @@ static MACHINE_CONFIG_START( nomcu, taitosj_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(taitosj) + MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_taitosj) MCFG_GFXDECODE(taitosj) MCFG_PALETTE_LENGTH(64) @@ -1859,7 +1859,7 @@ static MACHINE_CONFIG_DERIVED( kikstart, mcu ) MCFG_CPU_PROGRAM_MAP(kikstart_main_map) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(kikstart) + MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_kikstart) MACHINE_CONFIG_END diff --git a/src/mame/drivers/taitotz.c b/src/mame/drivers/taitotz.c index 784764b70cf..e2468d4bef1 100644 --- a/src/mame/drivers/taitotz.c +++ b/src/mame/drivers/taitotz.c @@ -524,6 +524,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -1279,16 +1280,15 @@ void taitotz_renderer::render_displaylist(running_machine &machine, const rectan wait("render_polygons"); } -static SCREEN_UPDATE_RGB32( taitotz ) +UINT32 taitotz_state::screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - taitotz_state *state = screen.machine().driver_data<taitotz_state>(); bitmap.fill(0x000000, cliprect); - state->m_renderer->set_fb(&bitmap); - state->m_renderer->render_displaylist(screen.machine(), cliprect); + m_renderer->set_fb(&bitmap); + m_renderer->render_displaylist(screen.machine(), cliprect); - UINT16 *screen_src = (UINT16*)&state->m_screen_ram[state->m_scr_base]; + UINT16 *screen_src = (UINT16*)&m_screen_ram[m_scr_base]; for (int j=0; j < 384; j++) { @@ -2502,7 +2502,7 @@ static MACHINE_CONFIG_START( taitotz, taitotz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 384) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_STATIC(taitotz) + MCFG_SCREEN_UPDATE_DRIVER(taitotz_state, screen_update_taitotz) MACHINE_CONFIG_END diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c index 1c1f7e246f8..590d7b447c9 100644 --- a/src/mame/drivers/taitowlf.c +++ b/src/mame/drivers/taitowlf.c @@ -82,10 +82,11 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void palette_init(); + UINT32 screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; #if !ENABLE_VGA -static SCREEN_UPDATE_RGB32( taitowlf ) +UINT32 taitowlf_state::screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { int x,y,count; const UINT8 *blit_ram = screen.machine().root_device().memregion("user5")->base(); @@ -656,7 +657,7 @@ static MACHINE_CONFIG_START( taitowlf, taitowlf_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_PALETTE_LENGTH(256) - MCFG_SCREEN_UPDATE_STATIC(taitowlf) + MCFG_SCREEN_UPDATE_DRIVER(taitowlf_state, screen_update_taitowlf) #endif MACHINE_CONFIG_END diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c index 76fe1dc8433..d5ea74f7388 100644 --- a/src/mame/drivers/tank8.c +++ b/src/mame/drivers/tank8.c @@ -345,8 +345,8 @@ static MACHINE_CONFIG_START( tank8, tank8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30 * 1000000 / 15681)) MCFG_SCREEN_SIZE(512, 524) MCFG_SCREEN_VISIBLE_AREA(16, 495, 0, 463) - MCFG_SCREEN_UPDATE_STATIC(tank8) - MCFG_SCREEN_VBLANK_STATIC(tank8) + MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update_tank8) + MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof_tank8) MCFG_GFXDECODE(tank8) MCFG_PALETTE_LENGTH(20) diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c index c314b1d0525..318fe2b9daf 100644 --- a/src/mame/drivers/tankbatt.c +++ b/src/mame/drivers/tankbatt.c @@ -295,7 +295,7 @@ static MACHINE_CONFIG_START( tankbatt, tankbatt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tankbatt) + MCFG_SCREEN_UPDATE_DRIVER(tankbatt_state, screen_update_tankbatt) MCFG_GFXDECODE(tankbatt) MCFG_PALETTE_LENGTH(256*2) diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c index 101faf7f6dc..e3d6bce417c 100644 --- a/src/mame/drivers/tankbust.c +++ b/src/mame/drivers/tankbust.c @@ -347,7 +347,7 @@ static MACHINE_CONFIG_START( tankbust, tankbust_state ) MCFG_SCREEN_SIZE ( 64*8, 32*8 ) MCFG_SCREEN_VISIBLE_AREA ( 16*8, 56*8-1, 1*8, 31*8-1 ) // MCFG_SCREEN_VISIBLE_AREA ( 0*8, 64*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_STATIC ( tankbust ) + MCFG_SCREEN_UPDATE_DRIVER(tankbust_state, screen_update_tankbust) MCFG_GFXDECODE( tankbust ) diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c index e7922d9d389..55e01e43aff 100644 --- a/src/mame/drivers/taotaido.c +++ b/src/mame/drivers/taotaido.c @@ -346,8 +346,8 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(taotaido) - MCFG_SCREEN_VBLANK_STATIC( taotaido ) + MCFG_SCREEN_UPDATE_DRIVER(taotaido_state, screen_update_taotaido) + MCFG_SCREEN_VBLANK_DRIVER(taotaido_state, screen_eof_taotaido) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c index ff4cb679b41..621e3c44443 100644 --- a/src/mame/drivers/targeth.c +++ b/src/mame/drivers/targeth.c @@ -184,7 +184,7 @@ static MACHINE_CONFIG_START( targeth, targeth_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*16, 32*16) /* 1024x512 */ MCFG_SCREEN_VISIBLE_AREA(0, 24*16-1, 16, 16*16-1) /* 400x240 */ - MCFG_SCREEN_UPDATE_STATIC(targeth) + MCFG_SCREEN_UPDATE_DRIVER(targeth_state, screen_update_targeth) MCFG_GFXDECODE(0x080000) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c index 00a5e3c5c68..0720280187b 100644 --- a/src/mame/drivers/tasman.c +++ b/src/mame/drivers/tasman.c @@ -36,6 +36,7 @@ public: DECLARE_WRITE8_MEMBER(kongambl_ff_w); DECLARE_DRIVER_INIT(kingtut); DECLARE_VIDEO_START(kongambl); + UINT32 screen_update_kongambl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -54,10 +55,9 @@ VIDEO_START_MEMBER(kongambl_state,kongambl) #endif } -static SCREEN_UPDATE_IND16(kongambl) +UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { #if CUSTOM_DRAW - kongambl_state *state = screen.machine().driver_data<kongambl_state>(); gfx_element *gfx = screen.machine().gfx[0]; UINT32 count; @@ -67,7 +67,7 @@ static SCREEN_UPDATE_IND16(kongambl) { for (int x=0;x<128;x++) { - UINT32 tile = state->m_vram[count] & 0xffff; + UINT32 tile = m_vram[count] & 0xffff; if(screen.machine().primary_screen->visible_area().contains(x*8, y*8)) drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); @@ -82,7 +82,7 @@ static SCREEN_UPDATE_IND16(kongambl) { for (int x=0;x<128;x++) { - UINT32 tile = state->m_vram[count] & 0xffff; + UINT32 tile = m_vram[count] & 0xffff; if(screen.machine().primary_screen->visible_area().contains(x*8, y*8)) drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8,0); @@ -607,7 +607,7 @@ static MACHINE_CONFIG_START( kongambl, kongambl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(96*8, 64*8+16) MCFG_SCREEN_VISIBLE_AREA(0*8, 80*8-1, 0*8, 64*8-1) - MCFG_SCREEN_UPDATE_STATIC(kongambl) + MCFG_SCREEN_UPDATE_DRIVER(kongambl_state, screen_update_kongambl) MCFG_PALETTE_LENGTH(0x8000) diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c index 18dd5213dce..1172c37823f 100644 --- a/src/mame/drivers/tatsumi.c +++ b/src/mame/drivers/tatsumi.c @@ -893,7 +893,7 @@ static MACHINE_CONFIG_START( apache3, tatsumi_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(CLOCK_2 / 8, 400, 0, 320, 280, 0, 240) // TODO: Hook up CRTC - MCFG_SCREEN_UPDATE_STATIC(apache3) + MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_apache3) MCFG_GFXDECODE(apache3) MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ @@ -934,7 +934,7 @@ static MACHINE_CONFIG_START( roundup5, tatsumi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(roundup5) + MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_roundup5) MCFG_GFXDECODE(roundup5) MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ @@ -976,7 +976,7 @@ static MACHINE_CONFIG_START( cyclwarr, tatsumi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(cyclwarr) + MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_cyclwarr) MCFG_GFXDECODE(cyclwarr) MCFG_PALETTE_LENGTH(8192 + 8192) @@ -1018,7 +1018,7 @@ static MACHINE_CONFIG_START( bigfight, tatsumi_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(bigfight) + MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_bigfight) MCFG_GFXDECODE(cyclwarr) MCFG_PALETTE_LENGTH(8192 + 8192) diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c index 6ae2424485b..5b96ad4995a 100644 --- a/src/mame/drivers/tattack.c +++ b/src/mame/drivers/tattack.c @@ -37,6 +37,7 @@ public: TILE_GET_INFO_MEMBER(get_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -58,11 +59,10 @@ TILE_GET_INFO_MEMBER(tattack_state::get_tile_info) 0); } -static SCREEN_UPDATE_IND16( tattack ) +UINT32 tattack_state::screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - tattack_state *state = screen.machine().driver_data<tattack_state>(); - state->m_tmap->mark_all_dirty(); - state->m_tmap->draw(bitmap, cliprect, 0,0); + m_tmap->mark_all_dirty(); + m_tmap->draw(bitmap, cliprect, 0,0); return 0; } @@ -209,7 +209,7 @@ static MACHINE_CONFIG_START( tattack, tattack_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(tattack) + MCFG_SCREEN_UPDATE_DRIVER(tattack_state, screen_update_tattack) MCFG_GFXDECODE(tattack) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/taxidriv.c b/src/mame/drivers/taxidriv.c index 04893bada5a..17d022284ee 100644 --- a/src/mame/drivers/taxidriv.c +++ b/src/mame/drivers/taxidriv.c @@ -395,7 +395,7 @@ static MACHINE_CONFIG_START( taxidriv, taxidriv_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 27*8-1) - MCFG_SCREEN_UPDATE_STATIC(taxidriv) + MCFG_SCREEN_UPDATE_DRIVER(taxidriv_state, screen_update_taxidriv) MCFG_GFXDECODE(taxidriv) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c index 4d40cf8bab9..473cbfe4149 100644 --- a/src/mame/drivers/tbowl.c +++ b/src/mame/drivers/tbowl.c @@ -482,14 +482,14 @@ static MACHINE_CONFIG_START( tbowl, tbowl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tbowl_left) + MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_tbowl_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tbowl_right) + MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_tbowl_right) diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c index b9adde8e153..81b0ce89e40 100644 --- a/src/mame/drivers/tceptor.c +++ b/src/mame/drivers/tceptor.c @@ -398,22 +398,22 @@ static MACHINE_CONFIG_START( tceptor, tceptor_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(38*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0) - MCFG_SCREEN_UPDATE_STATIC(tceptor_2d) + MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_2d) MCFG_SCREEN_ADD("3dleft", RASTER) MCFG_SCREEN_REFRESH_RATE(60.606060) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(38*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0) - MCFG_SCREEN_UPDATE_STATIC(tceptor_3d_left) + MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_3d_left) MCFG_SCREEN_ADD("3dright", RASTER) MCFG_SCREEN_REFRESH_RATE(60.606060) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(38*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0) - MCFG_SCREEN_UPDATE_STATIC(tceptor_3d_right) - MCFG_SCREEN_VBLANK_STATIC(tceptor) + MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_3d_right) + MCFG_SCREEN_VBLANK_DRIVER(tceptor_state, screen_eof_tceptor) diff --git a/src/mame/drivers/tcl.c b/src/mame/drivers/tcl.c index b7482bf984e..97a565a16e1 100644 --- a/src/mame/drivers/tcl.c +++ b/src/mame/drivers/tcl.c @@ -54,13 +54,14 @@ public: DECLARE_DRIVER_INIT(tcl); virtual void video_start(); + UINT32 screen_update_tcl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; void tcl_state::video_start() { } -static SCREEN_UPDATE_IND16( tcl ) +UINT32 tcl_state::screen_update_tcl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { return 0; } @@ -135,7 +136,7 @@ static MACHINE_CONFIG_START( tcl, tcl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tcl) + MCFG_SCREEN_UPDATE_DRIVER(tcl_state, screen_update_tcl) MCFG_GFXDECODE(tcl) MCFG_PALETTE_LENGTH(16*16) diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c index 3961b8fb4f1..9010def04b9 100644 --- a/src/mame/drivers/tecmo.c +++ b/src/mame/drivers/tecmo.c @@ -644,7 +644,7 @@ static MACHINE_CONFIG_START( rygar, tecmo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tecmo) + MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo) MCFG_GFXDECODE(tecmo) MCFG_PALETTE_LENGTH(1024) @@ -703,7 +703,7 @@ static MACHINE_CONFIG_START( backfirt, tecmo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tecmo) + MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo) MCFG_GFXDECODE(tecmo) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c index f5ae1357cbe..fa025813321 100644 --- a/src/mame/drivers/tecmo16.c +++ b/src/mame/drivers/tecmo16.c @@ -391,7 +391,7 @@ static MACHINE_CONFIG_START( fstarfrc, tecmo16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tecmo16) + MCFG_SCREEN_UPDATE_DRIVER(tecmo16_state, screen_update_tecmo16) MCFG_GFXDECODE(tecmo16) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index 79f9bd09a6d..171c5fa73c6 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -474,7 +474,7 @@ static MACHINE_CONFIG_START( deroon, tecmosys_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3000)) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tecmosys) + MCFG_SCREEN_UPDATE_DRIVER(tecmosys_state, screen_update_tecmosys) MCFG_PALETTE_LENGTH(0x4000+0x800) diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c index 53dc391b3b4..548f99436b9 100644 --- a/src/mame/drivers/tehkanwc.c +++ b/src/mame/drivers/tehkanwc.c @@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tehkanwc) + MCFG_SCREEN_UPDATE_DRIVER(tehkanwc_state, screen_update_tehkanwc) MCFG_GFXDECODE(tehkanwc) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c index 6ca648baebd..4017d40c5fa 100644 --- a/src/mame/drivers/terracre.c +++ b/src/mame/drivers/terracre.c @@ -542,7 +542,7 @@ static MACHINE_CONFIG_START( amazon, terracre_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(amazon) + MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon) MCFG_GFXDECODE(terracre) MCFG_PALETTE_LENGTH(1*16+16*16+16*256) @@ -575,7 +575,7 @@ static MACHINE_CONFIG_START( ym3526, terracre_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(amazon) + MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon) MCFG_GFXDECODE(terracre) MCFG_PALETTE_LENGTH(1*16+16*16+16*256) @@ -608,7 +608,7 @@ static MACHINE_CONFIG_START( ym2203, terracre_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(amazon) + MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon) MCFG_GFXDECODE(terracre) MCFG_PALETTE_LENGTH(1*16+16*16+16*256) diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c index 7b9adf774ad..0ab6d1c40cd 100644 --- a/src/mame/drivers/tetrisp2.c +++ b/src/mame/drivers/tetrisp2.c @@ -1340,7 +1340,7 @@ static MACHINE_CONFIG_START( tetrisp2, tetrisp2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x140, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(tetrisp2) + MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2) MCFG_GFXDECODE(tetrisp2) MCFG_PALETTE_LENGTH(0x8000) @@ -1371,7 +1371,7 @@ static MACHINE_CONFIG_START( nndmseal, tetrisp2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x180, 0xf0) MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_STATIC(tetrisp2) + MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2) MCFG_GFXDECODE(tetrisp2) MCFG_PALETTE_LENGTH(0x8000) @@ -1401,7 +1401,7 @@ static MACHINE_CONFIG_START( rockn, tetrisp2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x140, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(rockntread) + MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread) MCFG_GFXDECODE(tetrisp2) MCFG_PALETTE_LENGTH(0x8000) @@ -1432,7 +1432,7 @@ static MACHINE_CONFIG_START( rockn2, tetrisp2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x140, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(rockntread) + MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread) MCFG_GFXDECODE(tetrisp2) MCFG_PALETTE_LENGTH(0x8000) @@ -1472,14 +1472,14 @@ static MACHINE_CONFIG_START( rocknms, tetrisp2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x140, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(rocknms_left) + MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rocknms_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x140, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(rocknms_right) + MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rocknms_right) MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rocknms) @@ -1509,21 +1509,21 @@ static MACHINE_CONFIG_START( stepstag, stepstag_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x160, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_STATIC(stepstag_left) + MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_left) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x160, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_STATIC(stepstag_mid) + MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_mid) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x160, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_STATIC(stepstag_right) + MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_right) MCFG_PALETTE_LENGTH(0x8000) // 0x8000 * 3 needed I guess, but it hits an assert diff --git a/src/mame/drivers/tgtpanic.c b/src/mame/drivers/tgtpanic.c index be5182416ea..cfc29194bd5 100644 --- a/src/mame/drivers/tgtpanic.c +++ b/src/mame/drivers/tgtpanic.c @@ -23,6 +23,7 @@ public: required_shared_ptr<UINT8> m_ram; UINT8 m_color; DECLARE_WRITE8_MEMBER(color_w); + UINT32 screen_update_tgtpanic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -32,21 +33,20 @@ public: * *************************************/ -static SCREEN_UPDATE_RGB32( tgtpanic ) +UINT32 tgtpanic_state::screen_update_tgtpanic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - tgtpanic_state *state = screen.machine().driver_data<tgtpanic_state>(); UINT32 colors[4]; UINT32 offs; UINT32 x, y; colors[0] = 0; colors[1] = 0xffffffff; - colors[2] = MAKE_RGB(pal1bit(state->m_color >> 2), pal1bit(state->m_color >> 1), pal1bit(state->m_color >> 0)); - colors[3] = MAKE_RGB(pal1bit(state->m_color >> 6), pal1bit(state->m_color >> 5), pal1bit(state->m_color >> 4)); + colors[2] = MAKE_RGB(pal1bit(m_color >> 2), pal1bit(m_color >> 1), pal1bit(m_color >> 0)); + colors[3] = MAKE_RGB(pal1bit(m_color >> 6), pal1bit(m_color >> 5), pal1bit(m_color >> 4)); for (offs = 0; offs < 0x2000; ++offs) { - UINT8 val = state->m_ram[offs]; + UINT8 val = m_ram[offs]; y = (offs & 0x7f) << 1; x = (offs >> 7) << 2; @@ -142,7 +142,7 @@ static MACHINE_CONFIG_START( tgtpanic, tgtpanic_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* Unverified */ MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 192 - 1, 0, 192 - 1) - MCFG_SCREEN_UPDATE_STATIC(tgtpanic) + MCFG_SCREEN_UPDATE_DRIVER(tgtpanic_state, screen_update_tgtpanic) MACHINE_CONFIG_END diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c index 3a921e0f9e1..4fb033be25c 100644 --- a/src/mame/drivers/thedeep.c +++ b/src/mame/drivers/thedeep.c @@ -468,7 +468,7 @@ static MACHINE_CONFIG_START( thedeep, thedeep_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x100, 0xf8) MCFG_SCREEN_VISIBLE_AREA(0, 0x100-1, 0, 0xf8-1) - MCFG_SCREEN_UPDATE_STATIC(thedeep) + MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update_thedeep) MCFG_GFXDECODE(thedeep) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c index ccc38c8e062..ba9265eb31c 100644 --- a/src/mame/drivers/thepit.c +++ b/src/mame/drivers/thepit.c @@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( thepit, thepit_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(thepit) + MCFG_SCREEN_UPDATE_DRIVER(thepit_state, screen_update_thepit) /* sound hardware */ diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c index c197f17f49d..f8d5f30e11d 100644 --- a/src/mame/drivers/thief.c +++ b/src/mame/drivers/thief.c @@ -447,7 +447,7 @@ static MACHINE_CONFIG_START( sharkatt, thief_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MCFG_SCREEN_UPDATE_STATIC(thief) + MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief) MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) @@ -482,7 +482,7 @@ static MACHINE_CONFIG_START( thief, thief_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(thief) + MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief) MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) @@ -517,7 +517,7 @@ static MACHINE_CONFIG_START( natodef, thief_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(thief) + MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief) MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) diff --git a/src/mame/drivers/thoop2.c b/src/mame/drivers/thoop2.c index 61492c96cbb..ee4f35e27f8 100644 --- a/src/mame/drivers/thoop2.c +++ b/src/mame/drivers/thoop2.c @@ -199,7 +199,7 @@ static MACHINE_CONFIG_START( thoop2, thoop2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_STATIC(thoop2) + MCFG_SCREEN_UPDATE_DRIVER(thoop2_state, screen_update_thoop2) MCFG_GFXDECODE(thoop2) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c index d4c5b32ecbc..fbe87f0dbe5 100644 --- a/src/mame/drivers/thunderj.c +++ b/src/mame/drivers/thunderj.c @@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( thunderj, thunderj_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a VAD chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(thunderj) + MCFG_SCREEN_UPDATE_DRIVER(thunderj_state, screen_update_thunderj) MCFG_VIDEO_START_OVERRIDE(thunderj_state,thunderj) diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c index 6615295592e..7ca009fd0a1 100644 --- a/src/mame/drivers/thunderx.c +++ b/src/mame/drivers/thunderx.c @@ -674,7 +674,7 @@ static MACHINE_CONFIG_START( scontra, thunderx_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(scontra) + MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra) MCFG_PALETTE_LENGTH(1024) @@ -717,7 +717,7 @@ static MACHINE_CONFIG_START( thunderx, thunderx_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(scontra) + MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c index bb63512628c..1b8e56b35b0 100644 --- a/src/mame/drivers/tiamc1.c +++ b/src/mame/drivers/tiamc1.c @@ -233,7 +233,7 @@ static MACHINE_CONFIG_START( tiamc1, tiamc1_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1600)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(tiamc1) + MCFG_SCREEN_UPDATE_DRIVER(tiamc1_state, screen_update_tiamc1) MCFG_GFXDECODE(tiamc1) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c index 25a7012ac17..af81d962a94 100644 --- a/src/mame/drivers/tigeroad.c +++ b/src/mame/drivers/tigeroad.c @@ -536,7 +536,7 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tigeroad) + MCFG_SCREEN_UPDATE_DRIVER(tigeroad_state, screen_update_tigeroad) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(tigeroad) diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c index d28826cd056..a55630dff9f 100644 --- a/src/mame/drivers/timelimt.c +++ b/src/mame/drivers/timelimt.c @@ -245,7 +245,7 @@ static MACHINE_CONFIG_START( timelimt, timelimt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(timelimt) + MCFG_SCREEN_UPDATE_DRIVER(timelimt_state, screen_update_timelimt) MCFG_GFXDECODE(timelimt) MCFG_PALETTE_LENGTH(64+32) diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c index 4b89fbe269b..e19acad6a45 100644 --- a/src/mame/drivers/timeplt.c +++ b/src/mame/drivers/timeplt.c @@ -480,7 +480,7 @@ static MACHINE_CONFIG_START( timeplt, timeplt_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(timeplt) + MCFG_SCREEN_UPDATE_DRIVER(timeplt_state, screen_update_timeplt) MCFG_GFXDECODE(timeplt) MCFG_PALETTE_LENGTH(32*4+64*4) diff --git a/src/mame/drivers/timetrv.c b/src/mame/drivers/timetrv.c index 4c54e7b8888..64c381353ce 100644 --- a/src/mame/drivers/timetrv.c +++ b/src/mame/drivers/timetrv.c @@ -42,6 +42,7 @@ public: DECLARE_READ8_MEMBER(in_r); DECLARE_READ8_MEMBER(ld_r); virtual void video_start(); + UINT32 screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -51,10 +52,9 @@ void timetrv_state::video_start() } -static SCREEN_UPDATE_RGB32( timetrv ) +UINT32 timetrv_state::screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - timetrv_state *state = screen.machine().driver_data<timetrv_state>(); - popmessage("%s%s",reinterpret_cast<char *>(state->m_led_vram_lo.target()),reinterpret_cast<char *>(state->m_led_vram_hi.target())); + popmessage("%s%s",reinterpret_cast<char *>(m_led_vram_lo.target()),reinterpret_cast<char *>(m_led_vram_hi.target())); return 0; } @@ -159,7 +159,7 @@ static MACHINE_CONFIG_START( timetrv, timetrv_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) - MCFG_SCREEN_UPDATE_STATIC(timetrv) + MCFG_SCREEN_UPDATE_DRIVER(timetrv_state, screen_update_timetrv) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c index e931fa46354..9ac49733637 100644 --- a/src/mame/drivers/tmaster.c +++ b/src/mame/drivers/tmaster.c @@ -183,6 +183,7 @@ public: DECLARE_VIDEO_START(tmaster); DECLARE_MACHINE_RESET(galgames); DECLARE_VIDEO_START(galgames); + UINT32 screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -357,9 +358,8 @@ VIDEO_START_MEMBER(tmaster_state,galgames) m_compute_addr = galgames_compute_addr; } -static SCREEN_UPDATE_IND16( tmaster ) +UINT32 tmaster_state::screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - tmaster_state *state = screen.machine().driver_data<tmaster_state>(); int layers_ctrl = -1; #ifdef MAME_DEBUG @@ -375,8 +375,8 @@ static SCREEN_UPDATE_IND16( tmaster ) bitmap.fill(get_black_pen(screen.machine()), cliprect); - if (layers_ctrl & 1) copybitmap_trans(bitmap, state->m_bitmap[0][(state->m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff); - if (layers_ctrl & 2) copybitmap_trans(bitmap, state->m_bitmap[1][(state->m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff); + if (layers_ctrl & 1) copybitmap_trans(bitmap, m_bitmap[0][(m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff); + if (layers_ctrl & 2) copybitmap_trans(bitmap, m_bitmap[1][(m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff); return 0; } @@ -941,7 +941,7 @@ static MACHINE_CONFIG_START( tm3k, tmaster_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 256) MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(tmaster) + MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster) MCFG_PALETTE_LENGTH(0x1000) @@ -998,7 +998,7 @@ static MACHINE_CONFIG_START( galgames, tmaster_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 256) MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(tmaster) + MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster) MCFG_PALETTE_LENGTH(0x1000) // only 0x100 used diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c index 51eb5bd627e..648c28e25f4 100644 --- a/src/mame/drivers/tmmjprd.c +++ b/src/mame/drivers/tmmjprd.c @@ -67,6 +67,8 @@ public: DECLARE_WRITE32_MEMBER(tmmjprd_brt_2_w); DECLARE_WRITE32_MEMBER(tmmjprd_eeprom_write); virtual void video_start(); + UINT32 screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -289,51 +291,49 @@ static void ttmjprd_draw_tilemap(running_machine &machine, bitmap_ind16 &bitmap, } -static SCREEN_UPDATE_IND16( tmmjprd_left ) +UINT32 tmmjprd_state::screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - tmmjprd_state *state = screen.machine().driver_data<tmmjprd_state>(); - UINT8* gfxroms = state->memregion("gfx2")->base(); + UINT8* gfxroms = memregion("gfx2")->base(); bitmap.fill(get_black_pen(screen.machine()), cliprect); - ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[3], state->m_tilemap_regs[3], gfxroms ); + ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms ); draw_sprites(screen.machine(),bitmap,cliprect, 1); - ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[2], state->m_tilemap_regs[2], gfxroms ); + ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[2], m_tilemap_regs[2], gfxroms ); /* popmessage("%08x %08x %08x %08x %08x %08x", - state->m_tilemap_regs[2][0], - state->m_tilemap_regs[2][1], - state->m_tilemap_regs[2][2], - state->m_tilemap_regs[2][3], - state->m_tilemap_regs[2][4], - state->m_tilemap_regs[2][5]); + m_tilemap_regs[2][0], + m_tilemap_regs[2][1], + m_tilemap_regs[2][2], + m_tilemap_regs[2][3], + m_tilemap_regs[2][4], + m_tilemap_regs[2][5]); */ /* popmessage("%08x %08x %08x %08x %08x %08x %08x", - state->m_spriteregs[0], - state->m_spriteregs[1], - state->m_spriteregs[2], - state->m_spriteregs[3], - state->m_spriteregs[4], - state->m_spriteregs[5], - state->m_spriteregs[6]); + m_spriteregs[0], + m_spriteregs[1], + m_spriteregs[2], + m_spriteregs[3], + m_spriteregs[4], + m_spriteregs[5], + m_spriteregs[6]); */ return 0; } -static SCREEN_UPDATE_IND16( tmmjprd_right ) +UINT32 tmmjprd_state::screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - tmmjprd_state *state = screen.machine().driver_data<tmmjprd_state>(); - UINT8* gfxroms = state->memregion("gfx2")->base(); + UINT8* gfxroms = memregion("gfx2")->base(); bitmap.fill(get_black_pen(screen.machine()), cliprect); - ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[1], state->m_tilemap_regs[1], gfxroms ); + ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms ); draw_sprites(screen.machine(),bitmap,cliprect, 0); - ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[0], state->m_tilemap_regs[0], gfxroms ); + ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[0], m_tilemap_regs[0], gfxroms ); return 0; } @@ -770,7 +770,7 @@ static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state ) MCFG_SCREEN_SIZE(64*16, 64*16) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1) - MCFG_SCREEN_UPDATE_STATIC(tmmjprd_left) + MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -778,7 +778,7 @@ static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state ) MCFG_SCREEN_SIZE(64*16, 64*16) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1) - MCFG_SCREEN_UPDATE_STATIC(tmmjprd_right) + MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_right) /* sound hardware */ diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index 3d6e984c815..3d9e01dd412 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -2269,7 +2269,7 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(mia) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia) MCFG_PALETTE_LENGTH(1024) MCFG_NVRAM_ADD_0FILL("nvram") @@ -2310,7 +2310,7 @@ static MACHINE_CONFIG_START( mia, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(mia) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia) MCFG_PALETTE_LENGTH(1024) @@ -2363,7 +2363,7 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state ) MCFG_SCREEN_SIZE(64*8, 32*8) //MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_VISIBLE_AREA(13*8-8, (64-13)*8-1+8, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(tmnt) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt) // We see something strange in the left 8 pixels and the right 8 pixels, but it is same as real PCB. MCFG_PALETTE_LENGTH(1024) @@ -2415,7 +2415,7 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(punkshot) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_punkshot) MCFG_PALETTE_LENGTH(2048) @@ -2456,7 +2456,7 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(lgtnfght) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght) MCFG_PALETTE_LENGTH(2048) @@ -2503,8 +2503,8 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-15)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(lgtnfght) - MCFG_SCREEN_VBLANK_STATIC( blswhstl ) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght) + MCFG_SCREEN_VBLANK_DRIVER(tmnt_state, screen_eof_blswhstl) MCFG_PALETTE_LENGTH(2048) @@ -2567,7 +2567,7 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(glfgreat) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat) MCFG_GFXDECODE(glfgreat) MCFG_PALETTE_LENGTH(2048) @@ -2632,7 +2632,7 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(glfgreat) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat) MCFG_GFXDECODE(glfgreat) MCFG_PALETTE_LENGTH(2048) @@ -2681,7 +2681,7 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(tmnt2) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2) MCFG_PALETTE_LENGTH(2048) @@ -2728,7 +2728,7 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(tmnt2) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2) MCFG_PALETTE_LENGTH(2048) @@ -2771,7 +2771,7 @@ static MACHINE_CONFIG_START( sunsetbl, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(tmnt2) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2) MCFG_PALETTE_LENGTH(2048) @@ -2811,7 +2811,7 @@ static MACHINE_CONFIG_START( thndrx2, tmnt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(thndrx2) + MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_thndrx2) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c index 1c69ee2a22d..92604f68fac 100644 --- a/src/mame/drivers/tmspoker.c +++ b/src/mame/drivers/tmspoker.c @@ -232,6 +232,7 @@ public: virtual void machine_reset(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -264,10 +265,9 @@ void tmspoker_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tmspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( tmspoker ) +UINT32 tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - tmspoker_state *state = screen.machine().driver_data<tmspoker_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -583,7 +583,7 @@ static MACHINE_CONFIG_START( tmspoker, tmspoker_state ) MCFG_PALETTE_LENGTH(256) - MCFG_SCREEN_UPDATE_STATIC(tmspoker) + MCFG_SCREEN_UPDATE_DRIVER(tmspoker_state, screen_update_tmspoker) MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/4, mc6845_intf) /* guess */ diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c index cbcfeab1006..06a88b6f265 100644 --- a/src/mame/drivers/tnzs.c +++ b/src/mame/drivers/tnzs.c @@ -1639,8 +1639,8 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnzs) - MCFG_SCREEN_VBLANK_STATIC(tnzs) + MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs) + MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1680,8 +1680,8 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnzs) - MCFG_SCREEN_VBLANK_STATIC(tnzs) + MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs) + MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1724,8 +1724,8 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnzs) - MCFG_SCREEN_VBLANK_STATIC(tnzs) + MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs) + MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1764,8 +1764,8 @@ static MACHINE_CONFIG_START( insectx, tnzs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnzs) - MCFG_SCREEN_VBLANK_STATIC(tnzs) + MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs) + MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE(insectx) MCFG_PALETTE_LENGTH(512) @@ -1803,8 +1803,8 @@ static MACHINE_CONFIG_START( kageki, tnzs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnzs) - MCFG_SCREEN_VBLANK_STATIC(tnzs) + MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs) + MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1852,8 +1852,8 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnzs) - MCFG_SCREEN_VBLANK_STATIC(tnzs) + MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs) + MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1911,8 +1911,8 @@ static MACHINE_CONFIG_START( jpopnics, tnzs_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tnzs) - MCFG_SCREEN_VBLANK_STATIC(tnzs) + MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs) + MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c index 24b7946dc98..eb6e5f3f8b7 100644 --- a/src/mame/drivers/toaplan1.c +++ b/src/mame/drivers/toaplan1.c @@ -1547,8 +1547,8 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(rallybik) - MCFG_SCREEN_VBLANK_STATIC(rallybik) + MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_rallybik) + MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_rallybik) MCFG_GFXDECODE(rallybik) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1584,8 +1584,8 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_VBLANK_STATIC(toaplan1) + MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1) + MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1621,8 +1621,8 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16) - MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_VBLANK_STATIC(toaplan1) + MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1) + MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1658,8 +1658,8 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16) - MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_VBLANK_STATIC(toaplan1) + MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1) + MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1699,8 +1699,8 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16) - MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_VBLANK_STATIC(toaplan1) + MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1) + MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1734,8 +1734,8 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_VBLANK_STATIC(samesame) + MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1) + MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_samesame) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1771,8 +1771,8 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_VBLANK_STATIC(toaplan1) + MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1) + MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE(outzone) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1806,8 +1806,8 @@ static MACHINE_CONFIG_START( vimana, toaplan1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_VBLANK_STATIC(toaplan1) + MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1) + MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE(vm) MCFG_PALETTE_LENGTH((64*16)+(64*16)) diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index bb222689dc0..b16634f73fb 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -3045,8 +3045,8 @@ static MACHINE_CONFIG_START( tekipaki, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3086,8 +3086,8 @@ static MACHINE_CONFIG_START( ghox, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3176,8 +3176,8 @@ static MACHINE_CONFIG_START( dogyuun, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */ MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(dogyuun) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_dogyuun) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(t2dualvdp) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3220,8 +3220,8 @@ static MACHINE_CONFIG_START( kbash, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3257,8 +3257,8 @@ static MACHINE_CONFIG_START( kbash2, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3294,8 +3294,8 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */ MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(truxton2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3349,8 +3349,8 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3390,8 +3390,8 @@ static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3471,8 +3471,8 @@ static MACHINE_CONFIG_START( fixeight, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */ MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(truxton2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3508,8 +3508,8 @@ static MACHINE_CONFIG_START( fixeightbl, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(fixeightbl) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3548,8 +3548,8 @@ static MACHINE_CONFIG_START( vfive, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* verified on pcb */ MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3586,8 +3586,8 @@ static MACHINE_CONFIG_START( batsugun, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(batsugun) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batsugun) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(t2dualvdp) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3624,8 +3624,8 @@ static MACHINE_CONFIG_START( snowbro2, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3667,8 +3667,8 @@ static MACHINE_CONFIG_START( mahoudai, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(raizing) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3710,8 +3710,8 @@ static MACHINE_CONFIG_START( shippumd, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(raizing) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3764,8 +3764,8 @@ static MACHINE_CONFIG_START( bgaregga, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_VBLANK_STATIC(toaplan2) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2) + MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE(raizing) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3814,7 +3814,7 @@ static MACHINE_CONFIG_START( batrider, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(batrider) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batrider) MCFG_GFXDECODE(batrider) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3865,7 +3865,7 @@ static MACHINE_CONFIG_START( bbakraid, toaplan2_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(batrider) + MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batrider) MCFG_GFXDECODE(batrider) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c index a8efe3789ef..5bd29ccc6d9 100644 --- a/src/mame/drivers/toki.c +++ b/src/mame/drivers/toki.c @@ -431,7 +431,7 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu * MCFG_SCREEN_REFRESH_RATE(59.61) /* verified on pcb */ MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* verified */ - MCFG_SCREEN_UPDATE_STATIC(toki) + MCFG_SCREEN_UPDATE_DRIVER(toki_state, screen_update_toki) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(toki) @@ -460,7 +460,7 @@ static MACHINE_CONFIG_START( tokib, toki_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* verified */ - MCFG_SCREEN_UPDATE_STATIC(tokib) + MCFG_SCREEN_UPDATE_DRIVER(toki_state, screen_update_tokib) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(tokib) diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c index 099576096ed..a8dab47e9f7 100644 --- a/src/mame/drivers/toobin.c +++ b/src/mame/drivers/toobin.c @@ -237,7 +237,7 @@ static MACHINE_CONFIG_START( toobin, toobin_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 416, 0, 384) - MCFG_SCREEN_UPDATE_STATIC(toobin) + MCFG_SCREEN_UPDATE_DRIVER(toobin_state, screen_update_toobin) MCFG_GFXDECODE(toobin) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c index 4d021fcdb6f..ca726e20ae3 100644 --- a/src/mame/drivers/topspeed.c +++ b/src/mame/drivers/topspeed.c @@ -769,7 +769,7 @@ static MACHINE_CONFIG_START( topspeed, topspeed_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(topspeed) + MCFG_SCREEN_UPDATE_DRIVER(topspeed_state, screen_update_topspeed) MCFG_GFXDECODE(topspeed) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/toratora.c b/src/mame/drivers/toratora.c index 613d1d99de4..4e9f95dc180 100644 --- a/src/mame/drivers/toratora.c +++ b/src/mame/drivers/toratora.c @@ -57,6 +57,7 @@ public: DECLARE_WRITE_LINE_MEMBER(sn2_ca2_u2_u3_w); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_toratora(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -79,18 +80,17 @@ WRITE_LINE_MEMBER(toratora_state::cb2_u3_w) * *************************************/ -static SCREEN_UPDATE_RGB32( toratora ) +UINT32 toratora_state::screen_update_toratora(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - toratora_state *state = screen.machine().driver_data<toratora_state>(); offs_t offs; - for (offs = 0; offs < state->m_videoram.bytes(); offs++) + for (offs = 0; offs < m_videoram.bytes(); offs++) { int i; UINT8 y = offs >> 5; UINT8 x = offs << 3; - UINT8 data = state->m_videoram[offs]; + UINT8 data = m_videoram[offs]; for (i = 0; i < 8; i++) { @@ -102,11 +102,11 @@ static SCREEN_UPDATE_RGB32( toratora ) } /* the video system clears as it writes out the pixels */ - if (state->m_clear_tv) - state->m_videoram[offs] = 0; + if (m_clear_tv) + m_videoram[offs] = 0; } - state->m_clear_tv = 0; + m_clear_tv = 0; return 0; } @@ -462,7 +462,7 @@ static MACHINE_CONFIG_START( toratora, toratora_state ) MCFG_SCREEN_VISIBLE_AREA(0,256-1,8,248-1) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_UPDATE_STATIC(toratora) + MCFG_SCREEN_UPDATE_DRIVER(toratora_state, screen_update_toratora) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c index 8181fd60618..9510cade6ba 100644 --- a/src/mame/drivers/toypop.c +++ b/src/mame/drivers/toypop.c @@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( liblrabl, toypop_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(toypop) + MCFG_SCREEN_UPDATE_DRIVER(toypop_state, screen_update_toypop) MCFG_GFXDECODE(toypop) MCFG_PALETTE_LENGTH(128*4+64*4+16*2) diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c index 6c7cb710f16..4b0fbec9f92 100644 --- a/src/mame/drivers/tp84.c +++ b/src/mame/drivers/tp84.c @@ -328,7 +328,7 @@ static MACHINE_CONFIG_START( tp84, tp84_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tp84) + MCFG_SCREEN_UPDATE_DRIVER(tp84_state, screen_update_tp84) MCFG_GFXDECODE(tp84) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c index c8519b735ec..12cef41fa1a 100644 --- a/src/mame/drivers/trackfld.c +++ b/src/mame/drivers/trackfld.c @@ -928,7 +928,7 @@ static MACHINE_CONFIG_START( trackfld, trackfld_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(trackfld) + MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld) MCFG_GFXDECODE(trackfld) MCFG_PALETTE_LENGTH(16*16+16*16) @@ -983,7 +983,7 @@ static MACHINE_CONFIG_START( yieartf, trackfld_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(trackfld) + MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld) MCFG_GFXDECODE(trackfld) MCFG_PALETTE_LENGTH(16*16+16*16) diff --git a/src/mame/drivers/travrusa.c b/src/mame/drivers/travrusa.c index 3673da60531..bd015c1d9bd 100644 --- a/src/mame/drivers/travrusa.c +++ b/src/mame/drivers/travrusa.c @@ -312,7 +312,7 @@ static MACHINE_CONFIG_START( travrusa, travrusa_state ) /* talks about 55Hz and 1790ms vblank duration. */ MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(travrusa) + MCFG_SCREEN_UPDATE_DRIVER(travrusa_state, screen_update_travrusa) MCFG_GFXDECODE(travrusa) diff --git a/src/mame/drivers/triforce.c b/src/mame/drivers/triforce.c index df904ade008..9d95f8b601b 100644 --- a/src/mame/drivers/triforce.c +++ b/src/mame/drivers/triforce.c @@ -421,6 +421,7 @@ public: DECLARE_WRITE64_MEMBER(gc_exi_w); virtual void machine_start(); virtual void video_start(); + UINT32 screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; READ64_MEMBER(triforce_state::gc_pi_r) @@ -456,7 +457,7 @@ void triforce_state::video_start() } -static SCREEN_UPDATE_RGB32(triforce) +UINT32 triforce_state::screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } @@ -541,7 +542,7 @@ static MACHINE_CONFIG_START( triforce_base, triforce_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(triforce) + MCFG_SCREEN_UPDATE_DRIVER(triforce_state, screen_update_triforce) MCFG_PALETTE_LENGTH(65536) diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c index 28f1c78a333..ac4531147cc 100644 --- a/src/mame/drivers/triplhnt.c +++ b/src/mame/drivers/triplhnt.c @@ -320,7 +320,7 @@ static MACHINE_CONFIG_START( triplhnt, triplhnt_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 262) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(triplhnt) + MCFG_SCREEN_UPDATE_DRIVER(triplhnt_state, screen_update_triplhnt) MCFG_GFXDECODE(triplhnt) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c index f66d32d3e97..b5f391ca4b1 100644 --- a/src/mame/drivers/truco.c +++ b/src/mame/drivers/truco.c @@ -469,7 +469,7 @@ static MACHINE_CONFIG_START( truco, truco_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 192) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) - MCFG_SCREEN_UPDATE_STATIC(truco) + MCFG_SCREEN_UPDATE_DRIVER(truco_state, screen_update_truco) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c index 4d0be1cd6d2..24ee5c4643d 100644 --- a/src/mame/drivers/trucocl.c +++ b/src/mame/drivers/trucocl.c @@ -143,7 +143,7 @@ static MACHINE_CONFIG_START( trucocl, trucocl_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(trucocl) + MCFG_SCREEN_UPDATE_DRIVER(trucocl_state, screen_update_trucocl) MCFG_GFXDECODE(trucocl) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c index df3e04279ab..0b5294ab413 100644 --- a/src/mame/drivers/trvmadns.c +++ b/src/mame/drivers/trvmadns.c @@ -86,6 +86,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_trvmadns(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -291,9 +292,8 @@ void trvmadns_state::video_start() machine().gfx[0]->set_source(m_gfxram); } -static SCREEN_UPDATE_IND16( trvmadns ) +UINT32 trvmadns_state::screen_update_trvmadns(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - trvmadns_state *state = screen.machine().driver_data<trvmadns_state>(); int x,y,count; gfx_element *gfx = screen.machine().gfx[0]; @@ -305,8 +305,8 @@ static SCREEN_UPDATE_IND16( trvmadns ) { for (x=0;x<32;x++) { - int attr = state->m_tileram[count*2+0]; - int tile = state->m_tileram[count*2+1] | ((attr & 0x01) << 8); + int attr = m_tileram[count*2+0]; + int tile = m_tileram[count*2+1] | ((attr & 0x01) << 8); int color = (attr & 0x18) >> 3; int flipx = attr & 4; int flipy = attr & 2; @@ -323,8 +323,8 @@ static SCREEN_UPDATE_IND16( trvmadns ) { for (x=0;x<32;x++) { - int attr = state->m_tileram[count*2+0]; - int tile = state->m_tileram[count*2+1] | ((attr & 0x01) << 8); + int attr = m_tileram[count*2+0]; + int tile = m_tileram[count*2+1] | ((attr & 0x01) << 8); int color = (attr & 0x18) >> 3; int flipx = attr & 4; int flipy = attr & 2; @@ -356,7 +356,7 @@ static MACHINE_CONFIG_START( trvmadns, trvmadns_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(trvmadns) + MCFG_SCREEN_UPDATE_DRIVER(trvmadns_state, screen_update_trvmadns) MCFG_GFXDECODE(trvmadns) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c index dbeb1546b11..496d247bc5b 100644 --- a/src/mame/drivers/tryout.c +++ b/src/mame/drivers/tryout.c @@ -200,7 +200,7 @@ static MACHINE_CONFIG_START( tryout, tryout_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(tryout) + MCFG_SCREEN_UPDATE_DRIVER(tryout_state, screen_update_tryout) MCFG_GFXDECODE(tryout) MCFG_PALETTE_LENGTH(0x20) diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c index 9d6d45e82e4..4dfffd946a2 100644 --- a/src/mame/drivers/tsamurai.c +++ b/src/mame/drivers/tsamurai.c @@ -696,7 +696,7 @@ static MACHINE_CONFIG_START( tsamurai, tsamurai_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_UPDATE_STATIC(tsamurai) + MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai) MCFG_GFXDECODE(tsamurai) MCFG_PALETTE_LENGTH(256) @@ -736,7 +736,7 @@ static MACHINE_CONFIG_START( vsgongf, tsamurai_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_UPDATE_STATIC(vsgongf) + MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_vsgongf) MCFG_GFXDECODE(tsamurai) MCFG_PALETTE_LENGTH(256) @@ -780,7 +780,7 @@ static MACHINE_CONFIG_START( m660, tsamurai_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_UPDATE_STATIC(tsamurai) + MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai) MCFG_GFXDECODE(tsamurai) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/ttchamp.c b/src/mame/drivers/ttchamp.c index b419a787ba0..fc54c625f86 100644 --- a/src/mame/drivers/ttchamp.c +++ b/src/mame/drivers/ttchamp.c @@ -84,6 +84,7 @@ public: virtual void video_start(); + UINT32 screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -97,9 +98,8 @@ void ttchamp_state::video_start() } -static SCREEN_UPDATE_IND16(ttchamp) +UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - ttchamp_state *state = screen.machine().driver_data<ttchamp_state>(); int y,x,count; // int i; static const int xxx=320,yyy=204; @@ -114,11 +114,11 @@ static SCREEN_UPDATE_IND16(ttchamp) // b = (dat>>10)&0x1f; // g = (dat>>5)&0x1f; // r = (dat>>0)&0x1f; -// palette_set_color_rgb(machine,i,pal5bit(r),pal5bit(g),pal5bit(b)); +// palette_set_color_rgb(machine(),i,pal5bit(r),pal5bit(g),pal5bit(b)); // } count=0; - UINT8 *videoram = (UINT8*)state->m_peno_vram; + UINT8 *videoram = (UINT8*)m_peno_vram; for (y=0;y<yyy;y++) { for(x=0;x<xxx;x++) @@ -287,7 +287,7 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(1024,1024) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_STATIC(ttchamp) + MCFG_SCREEN_UPDATE_DRIVER(ttchamp_state, screen_update_ttchamp) MCFG_PALETTE_LENGTH(0x8000) diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c index 781bffac627..d0fa497f3ff 100644 --- a/src/mame/drivers/tubep.c +++ b/src/mame/drivers/tubep.c @@ -913,7 +913,7 @@ static MACHINE_CONFIG_START( tubep, tubep_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 264) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tubep) + MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_tubep) MCFG_PALETTE_LENGTH(32 + 256*64) @@ -973,7 +973,7 @@ static MACHINE_CONFIG_START( rjammer, tubep_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(256, 264) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(rjammer) + MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_rjammer) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c index 2a9db2f2e47..fbecd3f16dc 100644 --- a/src/mame/drivers/tugboat.c +++ b/src/mame/drivers/tugboat.c @@ -49,6 +49,7 @@ public: DECLARE_WRITE8_MEMBER(tugboat_ctrl_w); virtual void machine_reset(); virtual void palette_init(); + UINT32 screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -132,11 +133,10 @@ static void draw_tilemap(running_machine &machine, bitmap_ind16 &bitmap,const re } } -static SCREEN_UPDATE_IND16( tugboat ) +UINT32 tugboat_state::screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - tugboat_state *state = screen.machine().driver_data<tugboat_state>(); - int startaddr0 = state->m_hd46505_0_reg[0x0c]*256 + state->m_hd46505_0_reg[0x0d]; - int startaddr1 = state->m_hd46505_1_reg[0x0c]*256 + state->m_hd46505_1_reg[0x0d]; + int startaddr0 = m_hd46505_0_reg[0x0c]*256 + m_hd46505_0_reg[0x0d]; + int startaddr1 = m_hd46505_1_reg[0x0c]*256 + m_hd46505_1_reg[0x0d]; draw_tilemap(screen.machine(), bitmap,cliprect,startaddr0,0,1,FALSE); @@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( tugboat, tugboat_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(32*8,32*8) MCFG_SCREEN_VISIBLE_AREA(1*8,31*8-1,2*8,30*8-1) - MCFG_SCREEN_UPDATE_STATIC(tugboat) + MCFG_SCREEN_UPDATE_DRIVER(tugboat_state, screen_update_tugboat) MCFG_GFXDECODE(tugboat) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c index abb8cb4260a..c6d76c0372d 100644 --- a/src/mame/drivers/tumbleb.c +++ b/src/mame/drivers/tumbleb.c @@ -1988,7 +1988,7 @@ static MACHINE_CONFIG_START( tumblepb, tumbleb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(tumblepb) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); @@ -2023,7 +2023,7 @@ static MACHINE_CONFIG_START( tumbleb2, tumbleb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(tumblepb) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); @@ -2061,7 +2061,7 @@ static MACHINE_CONFIG_START( jumpkids, tumbleb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(jumpkids) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_jumpkids) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); @@ -2095,7 +2095,7 @@ static MACHINE_CONFIG_START( fncywld, tumbleb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(fncywld) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_fncywld) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); @@ -2165,7 +2165,7 @@ static MACHINE_CONFIG_START( htchctch, tumbleb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) // ?? cookbib needs it above ~2400 or the Joystick on the How to Play screen is the wrong colour?! MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(semicom) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); @@ -2191,7 +2191,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cookbib, htchctch ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC( semicom_altoffsets ) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom_altoffsets) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cookbib_mcu, htchctch ) @@ -2203,12 +2203,12 @@ static MACHINE_CONFIG_DERIVED( cookbib_mcu, htchctch ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC( semicom_altoffsets ) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom_altoffsets) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( bcstory, htchctch ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(bcstory) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_bcstory) MCFG_SOUND_REPLACE("ymsnd", YM2151, 3427190) MCFG_SOUND_CONFIG(semicom_ym2151_interface) @@ -2218,13 +2218,13 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( semibase, bcstory ) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(semibase ) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semibase) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( sdfight, bcstory ) MCFG_VIDEO_START_OVERRIDE(tumbleb_state,sdfight) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(sdfight) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_sdfight) MACHINE_CONFIG_END @@ -2258,7 +2258,7 @@ static MACHINE_CONFIG_START( suprtrio, tumbleb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8-1, 31*8-2) - MCFG_SCREEN_UPDATE_STATIC(suprtrio) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_suprtrio) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); @@ -2293,7 +2293,7 @@ static MACHINE_CONFIG_START( pangpang, tumbleb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(pangpang) + MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_pangpang) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c index 6eaa6639d60..b2fea7b8a82 100644 --- a/src/mame/drivers/tumblep.c +++ b/src/mame/drivers/tumblep.c @@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( tumblep, tumblep_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-2, 1*8, 31*8-1) // hmm - MCFG_SCREEN_UPDATE_STATIC(tumblep) + MCFG_SCREEN_UPDATE_DRIVER(tumblep_state, screen_update_tumblep) MCFG_GFXDECODE(tumblep) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c index 34a54d94a05..04b1e49d617 100644 --- a/src/mame/drivers/tunhunt.c +++ b/src/mame/drivers/tunhunt.c @@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( tunhunt, tunhunt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256-16) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255-16) - MCFG_SCREEN_UPDATE_STATIC(tunhunt) + MCFG_SCREEN_UPDATE_DRIVER(tunhunt_state, screen_update_tunhunt) MCFG_GFXDECODE(tunhunt) MCFG_PALETTE_LENGTH(0x1a) diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c index 6198ed9ba49..d1c6d9f182e 100644 --- a/src/mame/drivers/turbo.c +++ b/src/mame/drivers/turbo.c @@ -946,7 +946,7 @@ static MACHINE_CONFIG_START( turbo, turbo_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(turbo) + MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_turbo) MCFG_PALETTE_INIT_OVERRIDE(turbo_state,turbo) MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo) @@ -975,7 +975,7 @@ static MACHINE_CONFIG_START( subroc3d, turbo_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(subroc3d) + MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_subroc3d) MCFG_PALETTE_INIT_OVERRIDE(turbo_state,subroc3d) MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo) @@ -1011,7 +1011,7 @@ static MACHINE_CONFIG_START( buckrog, turbo_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(buckrog) + MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_buckrog) MCFG_PALETTE_INIT_OVERRIDE(turbo_state,buckrog) MCFG_VIDEO_START_OVERRIDE(turbo_state,buckrog) diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c index c5f25bb5388..98752cc6870 100644 --- a/src/mame/drivers/tutankhm.c +++ b/src/mame/drivers/tutankhm.c @@ -232,7 +232,7 @@ static MACHINE_CONFIG_START( tutankhm, tutankhm_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */ - MCFG_SCREEN_UPDATE_STATIC(tutankhm) + MCFG_SCREEN_UPDATE_DRIVER(tutankhm_state, screen_update_tutankhm) /* sound hardware */ MCFG_FRAGMENT_ADD(timeplt_sound) diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c index d243bfab69d..97d1d8b7248 100644 --- a/src/mame/drivers/twin16.c +++ b/src/mame/drivers/twin16.c @@ -745,8 +745,8 @@ static MACHINE_CONFIG_START( twin16, twin16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2062)) // 32 lines MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(twin16) - MCFG_SCREEN_VBLANK_STATIC(twin16) + MCFG_SCREEN_UPDATE_DRIVER(twin16_state, screen_update_twin16) + MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16) MCFG_GFXDECODE(twin16) MCFG_PALETTE_LENGTH(0x400) @@ -799,8 +799,8 @@ static MACHINE_CONFIG_START( fround, twin16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(twin16) - MCFG_SCREEN_VBLANK_STATIC(twin16) + MCFG_SCREEN_UPDATE_DRIVER(twin16_state, screen_update_twin16) + MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16) MCFG_GFXDECODE(twin16) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c index 81e706d87e7..4beb33507d9 100644 --- a/src/mame/drivers/twincobr.c +++ b/src/mame/drivers/twincobr.c @@ -587,7 +587,7 @@ static MACHINE_CONFIG_START( twincobr, twincobr_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz/4, 446, 0, 320, 286, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(toaplan0) + MCFG_SCREEN_UPDATE_DRIVER(twincobr_state, screen_update_toaplan0) MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(twincobr) diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c index ce79d1fd7b5..7509c169097 100644 --- a/src/mame/drivers/twins.c +++ b/src/mame/drivers/twins.c @@ -71,6 +71,8 @@ public: DECLARE_READ16_MEMBER(twinsa_unk_r); DECLARE_VIDEO_START(twins); DECLARE_VIDEO_START(twinsa); + UINT32 screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_twinsa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -116,9 +118,8 @@ VIDEO_START_MEMBER(twins_state,twins) m_pal = auto_alloc_array(machine(), UINT16, 0x100); } -static SCREEN_UPDATE_IND16(twins) +UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - twins_state *state = screen.machine().driver_data<twins_state>(); int y,x,count; int i; static const int xxx=320,yyy=204; @@ -128,7 +129,7 @@ static SCREEN_UPDATE_IND16(twins) for (i=0;i<0x100;i++) { int dat,r,g,b; - dat = state->m_pal[i]; + dat = m_pal[i]; r = dat & 0x1f; r = BITSWAP8(r,7,6,5,0,1,2,3,4); @@ -143,7 +144,7 @@ static SCREEN_UPDATE_IND16(twins) } count=0; - UINT8 *videoram = reinterpret_cast<UINT8 *>(state->m_videoram.target()); + UINT8 *videoram = reinterpret_cast<UINT8 *>(m_videoram.target()); for (y=0;y<yyy;y++) { for(x=0;x<xxx;x++) @@ -200,7 +201,7 @@ static MACHINE_CONFIG_START( twins, twins_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320,256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_STATIC(twins) + MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twins) MCFG_PALETTE_LENGTH(0x100) @@ -222,9 +223,8 @@ VIDEO_START_MEMBER(twins_state,twinsa) m_pal = auto_alloc_array(machine(), UINT16, 0x1000); } -static SCREEN_UPDATE_IND16(twinsa) +UINT32 twins_state::screen_update_twinsa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - twins_state *state = screen.machine().driver_data<twins_state>(); int y,x,count; int i; static const int xxx=320,yyy=204; @@ -234,15 +234,15 @@ static SCREEN_UPDATE_IND16(twinsa) for (i=0;i<0x1000-3;i+=3) { int r,g,b; - r = state->m_pal[i]; - g = state->m_pal[i+1]; - b = state->m_pal[i+2]; + r = m_pal[i]; + g = m_pal[i+1]; + b = m_pal[i+2]; palette_set_color_rgb(screen.machine(),i/3, pal6bit(r), pal6bit(g), pal6bit(b)); } count=0; - UINT8 *videoram = reinterpret_cast<UINT8 *>(state->m_videoram.target()); + UINT8 *videoram = reinterpret_cast<UINT8 *>(m_videoram.target()); for (y=0;y<yyy;y++) { for(x=0;x<xxx;x++) @@ -289,7 +289,7 @@ static MACHINE_CONFIG_START( twinsa, twins_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320,256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_STATIC(twinsa) + MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twinsa) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c index 51d716e762e..29127218b86 100644 --- a/src/mame/drivers/tx1.c +++ b/src/mame/drivers/tx1.c @@ -715,16 +715,16 @@ static MACHINE_CONFIG_START( tx1, tx1_state ) MCFG_SCREEN_ADD("lscreen", RASTER) MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(tx1_left) + MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_left) MCFG_SCREEN_ADD("cscreen", RASTER) MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(tx1_middle) + MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_middle) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(tx1_right) - MCFG_SCREEN_VBLANK_STATIC(tx1) + MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_right) + MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_tx1) MCFG_VIDEO_START_OVERRIDE(tx1_state,tx1) @@ -765,16 +765,16 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state ) MCFG_SCREEN_ADD("lscreen", RASTER) MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(buggyboy_left) + MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_left) MCFG_SCREEN_ADD("cscreen", RASTER) MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(buggyboy_middle) + MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_middle) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(buggyboy_right) - MCFG_SCREEN_VBLANK_STATIC(buggyboy) + MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_right) + MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy) MCFG_PALETTE_LENGTH(256) MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy) @@ -815,8 +815,8 @@ static MACHINE_CONFIG_START( buggybjr, tx1_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(buggybjr) - MCFG_SCREEN_VBLANK_STATIC(buggyboy) + MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggybjr) + MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy) MCFG_PALETTE_LENGTH(256) MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy) diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c index 4c2ff67faa6..248b0030b18 100644 --- a/src/mame/drivers/ultraman.c +++ b/src/mame/drivers/ultraman.c @@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(ultraman) + MCFG_SCREEN_UPDATE_DRIVER(ultraman_state, screen_update_ultraman) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c index 72ea3e7b86f..4bd78da771b 100644 --- a/src/mame/drivers/ultratnk.c +++ b/src/mame/drivers/ultratnk.c @@ -301,8 +301,8 @@ static MACHINE_CONFIG_START( ultratnk, ultratnk_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, 256, VTOTAL, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(ultratnk) - MCFG_SCREEN_VBLANK_STATIC(ultratnk) + MCFG_SCREEN_UPDATE_DRIVER(ultratnk_state, screen_update_ultratnk) + MCFG_SCREEN_VBLANK_DRIVER(ultratnk_state, screen_eof_ultratnk) MCFG_GFXDECODE(ultratnk) MCFG_PALETTE_LENGTH(10) diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c index c17e7ff5e15..422f1851d92 100644 --- a/src/mame/drivers/ultrsprt.c +++ b/src/mame/drivers/ultrsprt.c @@ -35,17 +35,17 @@ public: DECLARE_WRITE16_MEMBER(K056800_68k_w); DECLARE_CUSTOM_INPUT_MEMBER(analog_ctrl_r); virtual void machine_start(); + UINT32 screen_update_ultrsprt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; -static SCREEN_UPDATE_IND16( ultrsprt ) +UINT32 ultrsprt_state::screen_update_ultrsprt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - ultrsprt_state *state = screen.machine().driver_data<ultrsprt_state>(); int i, j; - UINT8 *ram = reinterpret_cast<UINT8 *>(state->m_vram.target()); + UINT8 *ram = reinterpret_cast<UINT8 *>(m_vram.target()); for (j=0; j < 400; j++) { @@ -243,7 +243,7 @@ static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 400) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399) - MCFG_SCREEN_UPDATE_STATIC(ultrsprt) + MCFG_SCREEN_UPDATE_DRIVER(ultrsprt_state, screen_update_ultrsprt) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/umipoker.c b/src/mame/drivers/umipoker.c index e930307823f..8edfa66e14e 100644 --- a/src/mame/drivers/umipoker.c +++ b/src/mame/drivers/umipoker.c @@ -67,6 +67,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_umipoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_0) @@ -132,21 +133,20 @@ void umipoker_state::video_start() } -static SCREEN_UPDATE_IND16( umipoker ) +UINT32 umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - umipoker_state *state = screen.machine().driver_data<umipoker_state>(); - state->m_tilemap_0->set_scrolly(0, state->m_umipoker_scrolly[0]); - state->m_tilemap_1->set_scrolly(0, state->m_umipoker_scrolly[1]); - state->m_tilemap_2->set_scrolly(0, state->m_umipoker_scrolly[2]); - state->m_tilemap_3->set_scrolly(0, state->m_umipoker_scrolly[3]); + m_tilemap_0->set_scrolly(0, m_umipoker_scrolly[0]); + m_tilemap_1->set_scrolly(0, m_umipoker_scrolly[1]); + m_tilemap_2->set_scrolly(0, m_umipoker_scrolly[2]); + m_tilemap_3->set_scrolly(0, m_umipoker_scrolly[3]); bitmap.fill(get_black_pen(screen.machine()), cliprect); - state->m_tilemap_0->draw(bitmap, cliprect, 0,0); - state->m_tilemap_1->draw(bitmap, cliprect, 0,0); - state->m_tilemap_2->draw(bitmap, cliprect, 0,0); - state->m_tilemap_3->draw(bitmap, cliprect, 0,0); + m_tilemap_0->draw(bitmap, cliprect, 0,0); + m_tilemap_1->draw(bitmap, cliprect, 0,0); + m_tilemap_2->draw(bitmap, cliprect, 0,0); + m_tilemap_3->draw(bitmap, cliprect, 0,0); return 0; } @@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( umipoker, umipoker_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(umipoker) + MCFG_SCREEN_UPDATE_DRIVER(umipoker_state, screen_update_umipoker) MCFG_GFXDECODE(umipoker) diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c index a72200d2d20..28bbd182751 100644 --- a/src/mame/drivers/undrfire.c +++ b/src/mame/drivers/undrfire.c @@ -739,7 +739,7 @@ static MACHINE_CONFIG_START( undrfire, undrfire_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(undrfire) + MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_undrfire) MCFG_GFXDECODE(undrfire) MCFG_PALETTE_LENGTH(16384) @@ -774,7 +774,7 @@ static MACHINE_CONFIG_START( cbombers, undrfire_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(cbombers) + MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_cbombers) MCFG_GFXDECODE(cbombers) MCFG_PALETTE_LENGTH(16384) diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c index 96f65fe0939..524a95ab11d 100644 --- a/src/mame/drivers/unico.c +++ b/src/mame/drivers/unico.c @@ -603,7 +603,7 @@ static MACHINE_CONFIG_START( burglarx, unico_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x180, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(unico) + MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico) MCFG_GFXDECODE(unico) MCFG_PALETTE_LENGTH(8192) @@ -648,7 +648,7 @@ static MACHINE_CONFIG_START( zeropnt, unico_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x180, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(unico) + MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico) MCFG_GFXDECODE(unico) MCFG_PALETTE_LENGTH(8192) @@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( zeropnt2, unico_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x180, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(zeropnt2) + MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_zeropnt2) MCFG_GFXDECODE(unico) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/unkhorse.c b/src/mame/drivers/unkhorse.c index 30369e322c9..54dfd8da620 100644 --- a/src/mame/drivers/unkhorse.c +++ b/src/mame/drivers/unkhorse.c @@ -39,6 +39,7 @@ public: DECLARE_WRITE8_MEMBER(horse_output_w); DECLARE_WRITE_LINE_MEMBER(horse_timer_out); virtual void palette_init(); + UINT32 screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -55,16 +56,15 @@ void horse_state::palette_init() palette_set_color_rgb(machine(), i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)); } -static SCREEN_UPDATE_IND16( horse ) +UINT32 horse_state::screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - horse_state *state = screen.machine().driver_data<horse_state>(); for (int y = cliprect.min_y; y <= cliprect.max_y; y++) { for (int x = 0; x < 32; x++) { - UINT8 data = state->m_video_ram[y << 5 | x]; - UINT8 color = state->m_color_ram[(y << 3 & 0x780) | x] >> 4; + UINT8 data = m_video_ram[y << 5 | x]; + UINT8 color = m_color_ram[(y << 3 & 0x780) | x] >> 4; for (int i = 0; i < 8; i++) bitmap.pix16(y, x << 3 | i) = (data >> i & 1) ? color : 0; @@ -213,7 +213,7 @@ static MACHINE_CONFIG_START( horse, horse_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(horse) + MCFG_SCREEN_UPDATE_DRIVER(horse_state, screen_update_horse) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c index dc4f97c04ca..259888dbc62 100644 --- a/src/mame/drivers/upscope.c +++ b/src/mame/drivers/upscope.c @@ -324,7 +324,7 @@ static MACHINE_CONFIG_START( upscope, upscope_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512*2, 262) MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) - MCFG_SCREEN_UPDATE_STATIC(amiga) + MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) MCFG_PALETTE_LENGTH(4096) MCFG_PALETTE_INIT_OVERRIDE(upscope_state,amiga) diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c index ee29336a8b3..030cd638681 100644 --- a/src/mame/drivers/usgames.c +++ b/src/mame/drivers/usgames.c @@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( usg32, usgames_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(7*8, 57*8-1, 0*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(usgames) + MCFG_SCREEN_UPDATE_DRIVER(usgames_state, screen_update_usgames) MCFG_GFXDECODE(usgames) MCFG_PALETTE_LENGTH(2*256) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index 113c8130248..97f96c1bcdc 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -164,6 +164,8 @@ public: DECLARE_DRIVER_INIT(vamphalf); DECLARE_DRIVER_INIT(wyvernwg); DECLARE_DRIVER_INIT(luplup); + UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; READ16_MEMBER(vamphalf_state::eeprom_r) @@ -752,7 +754,7 @@ void vamphalf_handle_flipped_visible_area( screen_device &screen ) } -static SCREEN_UPDATE_IND16( common ) +UINT32 vamphalf_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { vamphalf_handle_flipped_visible_area(screen); bitmap.fill(0, cliprect); @@ -760,7 +762,7 @@ static SCREEN_UPDATE_IND16( common ) return 0; } -static SCREEN_UPDATE_IND16( aoh ) +UINT32 vamphalf_state::screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { // vamphalf_handle_flipped_visible_area(screen); // not on this? bitmap.fill(0, cliprect); @@ -993,7 +995,7 @@ static MACHINE_CONFIG_START( common, vamphalf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(31, 350, 16, 251) - MCFG_SCREEN_UPDATE_STATIC(common) + MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_common) MCFG_PALETTE_LENGTH(0x8000) MCFG_GFXDECODE(vamphalf) @@ -1124,7 +1126,7 @@ static MACHINE_CONFIG_START( aoh, vamphalf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(64, 511-64, 16, 255-16) - MCFG_SCREEN_UPDATE_STATIC(aoh) + MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_aoh) MCFG_PALETTE_LENGTH(0x8000) MCFG_GFXDECODE(vamphalf) diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c index f0088ad350c..2fc18a31de6 100644 --- a/src/mame/drivers/vaportra.c +++ b/src/mame/drivers/vaportra.c @@ -278,7 +278,7 @@ static MACHINE_CONFIG_START( vaportra, vaportra_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_STATIC(vaportra) + MCFG_SCREEN_UPDATE_DRIVER(vaportra_state, screen_update_vaportra) MCFG_GFXDECODE(vaportra) MCFG_PALETTE_LENGTH(1280) diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c index 83502ae2261..429901a02d3 100644 --- a/src/mame/drivers/vastar.c +++ b/src/mame/drivers/vastar.c @@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( vastar, vastar_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(vastar) + MCFG_SCREEN_UPDATE_DRIVER(vastar_state, screen_update_vastar) MCFG_GFXDECODE(vastar) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c index e5ed264faf7..5bd206c8d13 100644 --- a/src/mame/drivers/vball.c +++ b/src/mame/drivers/vball.c @@ -419,7 +419,7 @@ static MACHINE_CONFIG_START( vball, vball_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248) /* based on ddragon driver */ - MCFG_SCREEN_UPDATE_STATIC(vb) + MCFG_SCREEN_UPDATE_DRIVER(vball_state, screen_update_vb) MCFG_GFXDECODE(vb) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/vcombat.c b/src/mame/drivers/vcombat.c index 42f74d818bf..51d137df846 100644 --- a/src/mame/drivers/vcombat.c +++ b/src/mame/drivers/vcombat.c @@ -124,6 +124,8 @@ public: DECLARE_DRIVER_INIT(vcombat); DECLARE_MACHINE_RESET(vcombat); DECLARE_MACHINE_RESET(shadfgtr); + UINT32 screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + UINT32 screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; static UINT32 update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index) @@ -175,8 +177,8 @@ static UINT32 update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const r return 0; } -static SCREEN_UPDATE_RGB32( vcombat_main ) { return update_screen(screen, bitmap, cliprect, 0); } -static SCREEN_UPDATE_RGB32( vcombat_aux ) { return update_screen(screen, bitmap, cliprect, 1); } +UINT32 vcombat_state::screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); } +UINT32 vcombat_state::screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); } WRITE16_MEMBER(vcombat_state::main_video_write) @@ -612,11 +614,11 @@ static MACHINE_CONFIG_START( vcombat, vcombat_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz / 2, 400, 0, 256, 291, 0, 208) - MCFG_SCREEN_UPDATE_STATIC(vcombat_main) + MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main) MCFG_SCREEN_ADD("aux", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz / 2, 400, 0, 256, 291, 0, 208) - MCFG_SCREEN_UPDATE_STATIC(vcombat_aux) + MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_aux) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -647,7 +649,7 @@ static MACHINE_CONFIG_START( shadfgtr, vcombat_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz / 4, 320, 0, 256, 277, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(vcombat_main) + MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/vectrex.c b/src/mame/drivers/vectrex.c index 977e1f6b7c4..b50e3201651 100644 --- a/src/mame/drivers/vectrex.c +++ b/src/mame/drivers/vectrex.c @@ -106,7 +106,7 @@ static MACHINE_CONFIG_START( vectrex, vectrex_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(400, 300) MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 299) - MCFG_SCREEN_UPDATE_STATIC(vectrex) + MCFG_SCREEN_UPDATE_DRIVER(vectrex_state, screen_update_vectrex) /* sound hardware */ diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c index 9f6b41831f8..e95fa934521 100644 --- a/src/mame/drivers/vega.c +++ b/src/mame/drivers/vega.c @@ -148,6 +148,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void palette_init(); + UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; WRITE8_MEMBER(vega_state::extern_w) @@ -547,26 +548,25 @@ static void draw_tilemap(vega_state *state, screen_device& screen, bitmap_ind16& } -static SCREEN_UPDATE_IND16( vega ) +UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - vega_state *state = screen.machine().driver_data<vega_state>(); - ++state->m_frame_counter; + ++m_frame_counter; bitmap.fill(0, cliprect); - draw_tilemap(state, screen, bitmap, cliprect); + draw_tilemap(this, screen, bitmap, cliprect); { int x,y; int idx=0; - UINT8 *color_lookup = state->memregion("proms")->base() + 0x200; + UINT8 *color_lookup = memregion("proms")->base() + 0x200; for(y=0;y<25;++y) for(x=0;x<40;++x) { - int character=state->m_txt_ram[idx]; + int character=m_txt_ram[idx]; //int color=BITSWAP8(color_lookup[character],7,6,5,4,0,1,2,3)>>1; int color=color_lookup[character]&0xf; /* @@ -593,10 +593,10 @@ static SCREEN_UPDATE_IND16( vega ) for(int i=OBJ_0;i<OBJ_PLAYER;++i) { - int x0=255-state->m_obj[i].m_x; - int y0=255-state->m_obj[i].m_y; - int num=state->m_obj[i].m_type&7; - int flip=state->m_obj[i].m_type&8; + int x0=255-m_obj[i].m_x; + int y0=255-m_obj[i].m_y; + int num=m_obj[i].m_type&7; + int flip=m_obj[i].m_type&8; num*=4*8; for(int x=0;x<8;++x) @@ -623,20 +623,20 @@ static SCREEN_UPDATE_IND16( vega ) { - if(BIT(state->m_obj[OBJ_PLAYER].m_type,5)) + if(BIT(m_obj[OBJ_PLAYER].m_type,5)) { - int x0=state->m_obj[OBJ_PLAYER].m_x; - int y0=255-state->m_obj[OBJ_PLAYER].m_y-32; + int x0=m_obj[OBJ_PLAYER].m_x; + int y0=255-m_obj[OBJ_PLAYER].m_y-32; - UINT8 *sprite_lookup = state->memregion("proms")->base(); + UINT8 *sprite_lookup = memregion("proms")->base(); for(int x=0;x<16;++x) { - int prom_data=sprite_lookup[ ((state->m_obj[OBJ_PLAYER].m_type&0xf)<<2)|((x>>2)&3)|(((state->m_frame_counter>>1)&3)<<6) ]; + int prom_data=sprite_lookup[ ((m_obj[OBJ_PLAYER].m_type&0xf)<<2)|((x>>2)&3)|(((m_frame_counter>>1)&3)<<6) ]; int xor_line=( ! (( ! ((BIT(prom_data,1))&(BIT(prom_data,2))&(BIT(prom_data,3))&(BIT(x,2)) ) ) & - ( (BIT(prom_data,2)) | (BIT(prom_data,3)) | ( BIT(state->m_obj[OBJ_PLAYER].m_type,4)) ) )); + ( (BIT(prom_data,2)) | (BIT(prom_data,3)) | ( BIT(m_obj[OBJ_PLAYER].m_type,4)) ) )); int strip_num=((prom_data)&0x7)|( ((x&3)^(xor_line?0x3:0)) <<3)|((BIT(prom_data,3))<<5); @@ -860,7 +860,7 @@ static MACHINE_CONFIG_START( vega, vega_state ) MCFG_GFXDECODE(test_decode) - MCFG_SCREEN_UPDATE_STATIC(vega) + MCFG_SCREEN_UPDATE_DRIVER(vega_state, screen_update_vega) /* sound hardware */ diff --git a/src/mame/drivers/vegaeo.c b/src/mame/drivers/vegaeo.c index 509ff998828..bcd5f569f6c 100644 --- a/src/mame/drivers/vegaeo.c +++ b/src/mame/drivers/vegaeo.c @@ -41,6 +41,7 @@ public: DECLARE_WRITE8_MEMBER(qs1000_p3_w); DECLARE_DRIVER_INIT(vegaeo); DECLARE_VIDEO_START(vega); + UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; READ8_MEMBER( vegaeo_state::qs1000_p1_r ) @@ -194,9 +195,8 @@ VIDEO_START_MEMBER(vegaeo_state,vega) m_vega_vram = auto_alloc_array(machine(), UINT32, 0x14000*2/4); } -static SCREEN_UPDATE_IND16( vega ) +UINT32 vegaeo_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - vegaeo_state *state = screen.machine().driver_data<vegaeo_state>(); int x,y,count; int color; @@ -205,16 +205,16 @@ static SCREEN_UPDATE_IND16( vega ) { for (x=0;x < 320/4;x++) { - color = state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff; + color = m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff; bitmap.pix16(y, x*4 + 3) = color; - color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff00) >> 8; + color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff00) >> 8; bitmap.pix16(y, x*4 + 2) = color; - color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff0000) >> 16; + color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff0000) >> 16; bitmap.pix16(y, x*4 + 1) = color; - color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff000000) >> 24; + color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff000000) >> 24; bitmap.pix16(y, x*4 + 0) = color; count++; @@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( vega, vegaeo_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_STATIC(vega) + MCFG_SCREEN_UPDATE_DRIVER(vegaeo_state, screen_update_vega) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c index 50c3b7b5585..456b590581a 100644 --- a/src/mame/drivers/vegas.c +++ b/src/mame/drivers/vegas.c @@ -501,6 +501,7 @@ public: DECLARE_DRIVER_INIT(sf2049se); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_vegas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -523,10 +524,9 @@ static void remap_dynamic_addresses(running_machine &machine); * *************************************/ -static SCREEN_UPDATE_RGB32( vegas ) +UINT32 vegas_state::screen_update_vegas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - vegas_state *state = screen.machine().driver_data<vegas_state>(); - return voodoo_update(state->m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED; + return voodoo_update(m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED; } @@ -2264,7 +2264,7 @@ static MACHINE_CONFIG_START( vegascore, vegas_state ) MCFG_SCREEN_REFRESH_RATE(57) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_STATIC(vegas) + MCFG_SCREEN_UPDATE_DRIVER(vegas_state, screen_update_vegas) MACHINE_CONFIG_END diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c index dc24040f873..2bf27c405da 100644 --- a/src/mame/drivers/vendetta.c +++ b/src/mame/drivers/vendetta.c @@ -521,7 +521,7 @@ static MACHINE_CONFIG_START( vendetta, vendetta_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(vendetta) + MCFG_SCREEN_UPDATE_DRIVER(vendetta_state, screen_update_vendetta) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c index 36a7d0209bb..de8b9e9511f 100644 --- a/src/mame/drivers/vicdual.c +++ b/src/mame/drivers/vicdual.c @@ -295,7 +295,7 @@ static MACHINE_CONFIG_DERIVED( depthch, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_bw) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -383,7 +383,7 @@ static MACHINE_CONFIG_DERIVED( safari, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_bw) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw) MACHINE_CONFIG_END @@ -486,7 +486,7 @@ static MACHINE_CONFIG_DERIVED( frogs, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_bw) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -674,7 +674,7 @@ static MACHINE_CONFIG_DERIVED( headon, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_bw_or_color) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw_or_color) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -686,7 +686,7 @@ static MACHINE_CONFIG_DERIVED( headons, headon ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_bw) // no colour prom on PCB, must be bw? + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw) MACHINE_CONFIG_END @@ -700,7 +700,7 @@ static MACHINE_CONFIG_DERIVED( sspaceat, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_bw_or_color) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw_or_color) MACHINE_CONFIG_END @@ -894,7 +894,7 @@ static MACHINE_CONFIG_DERIVED( headon2, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_color) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -907,7 +907,7 @@ static MACHINE_CONFIG_DERIVED( headon2bw, headon2 ) /* basic machine hardware */ /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_bw) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw) MACHINE_CONFIG_END @@ -920,7 +920,7 @@ static MACHINE_CONFIG_DERIVED( digger, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_color) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color) MACHINE_CONFIG_END @@ -1904,7 +1904,7 @@ static MACHINE_CONFIG_DERIVED( vicdual_dualgame_root, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_color) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color) MACHINE_CONFIG_END @@ -2151,7 +2151,7 @@ static MACHINE_CONFIG_DERIVED( samurai, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_color) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color) MACHINE_CONFIG_END @@ -2246,7 +2246,7 @@ static MACHINE_CONFIG_DERIVED( nsub, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_color) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color) MACHINE_CONFIG_END @@ -2345,7 +2345,7 @@ static MACHINE_CONFIG_DERIVED( invinco, vicdual_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(vicdual_color) + MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c index 5748e8d15e7..d0956445f5f 100644 --- a/src/mame/drivers/victory.c +++ b/src/mame/drivers/victory.c @@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( victory, victory_state ) MCFG_SCREEN_ADD("screen", RASTER) /* using the standard Exidy video parameters for now, needs to be confirmed */ MCFG_SCREEN_RAW_PARAMS(VICTORY_PIXEL_CLOCK, VICTORY_HTOTAL, VICTORY_HBEND, VICTORY_HBSTART, VICTORY_VTOTAL, VICTORY_VBEND, VICTORY_VBSTART) - MCFG_SCREEN_UPDATE_STATIC(victory) + MCFG_SCREEN_UPDATE_DRIVER(victory_state, screen_update_victory) MCFG_PALETTE_LENGTH(64) diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c index a738fef45d7..2813fac4a33 100644 --- a/src/mame/drivers/videopin.c +++ b/src/mame/drivers/videopin.c @@ -333,7 +333,7 @@ static MACHINE_CONFIG_START( videopin, videopin_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(304, 263) MCFG_SCREEN_VISIBLE_AREA(0, 303, 0, 255) - MCFG_SCREEN_UPDATE_STATIC(videopin) + MCFG_SCREEN_UPDATE_DRIVER(videopin_state, screen_update_videopin) MCFG_GFXDECODE(videopin) MCFG_PALETTE_LENGTH(2) diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c index b1befb82467..58615e4ba68 100644 --- a/src/mame/drivers/videopkr.c +++ b/src/mame/drivers/videopkr.c @@ -363,6 +363,7 @@ public: DECLARE_VIDEO_START(vidadcba); DECLARE_PALETTE_INIT(babypkr); DECLARE_PALETTE_INIT(fortune1); + UINT32 screen_update_videopkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -520,11 +521,10 @@ VIDEO_START_MEMBER(videopkr_state,vidadcba) } -static SCREEN_UPDATE_IND16( videopkr ) +UINT32 videopkr_state::screen_update_videopkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - videopkr_state *state = screen.machine().driver_data<videopkr_state>(); - state->m_bg_tilemap->mark_all_dirty(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->mark_all_dirty(); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -1254,7 +1254,7 @@ static MACHINE_CONFIG_START( videopkr, videopkr_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(2080) - MCFG_SCREEN_UPDATE_STATIC(videopkr) + MCFG_SCREEN_UPDATE_DRIVER(videopkr_state, screen_update_videopkr) MCFG_GFXDECODE(videopkr) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c index 8bee571540e..69873e4831e 100644 --- a/src/mame/drivers/vigilant.c +++ b/src/mame/drivers/vigilant.c @@ -496,7 +496,7 @@ static MACHINE_CONFIG_START( vigilant, vigilant_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(vigilant) + MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant) MCFG_GFXDECODE(vigilant) MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */ @@ -536,7 +536,7 @@ static MACHINE_CONFIG_START( buccanrs, vigilant_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(vigilant) + MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant) MCFG_GFXDECODE(buccanrs) MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */ @@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( kikcubic, vigilant_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 ) - MCFG_SCREEN_UPDATE_STATIC(kikcubic) + MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_kikcubic) MCFG_GFXDECODE(kikcubic) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c index a68d3ebbba6..4afbbdea3bd 100644 --- a/src/mame/drivers/vindictr.c +++ b/src/mame/drivers/vindictr.c @@ -211,7 +211,7 @@ static MACHINE_CONFIG_START( vindictr, vindictr_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a SYNGEN chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(vindictr) + MCFG_SCREEN_UPDATE_DRIVER(vindictr_state, screen_update_vindictr) MCFG_VIDEO_START_OVERRIDE(vindictr_state,vindictr) diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c index 0d2c5e3aa93..c26ff9ef220 100644 --- a/src/mame/drivers/viper.c +++ b/src/mame/drivers/viper.c @@ -303,12 +303,6 @@ static emu_timer *ds2430_timer; static timer_device *ds2430_bit_timer; -static SCREEN_UPDATE_RGB32(viper) -{ - device_t *device = screen.machine().device("voodoo"); - return voodoo_update(device, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED; -} - class viper_state : public driver_device { public: @@ -352,8 +346,15 @@ public: DECLARE_DRIVER_INIT(vipercf); virtual void machine_start(); virtual void machine_reset(); + UINT32 screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; +UINT32 viper_state::screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + device_t *device = screen.machine().device("voodoo"); + return voodoo_update(device, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED; +} + UINT32 m_mpc8240_regs[256/4]; /*****************************************************************************/ @@ -2010,7 +2011,7 @@ static MACHINE_CONFIG_START( viper, viper_state ) MCFG_PALETTE_LENGTH(65536) - MCFG_SCREEN_UPDATE_STATIC(viper) + MCFG_SCREEN_UPDATE_DRIVER(viper_state, screen_update_viper) MCFG_TIMER_ADD("ds2430_timer2", NULL) diff --git a/src/mame/drivers/vmetal.c b/src/mame/drivers/vmetal.c index 6693884e486..97f17e020e6 100644 --- a/src/mame/drivers/vmetal.c +++ b/src/mame/drivers/vmetal.c @@ -120,6 +120,7 @@ public: TILE_GET_INFO_MEMBER(get_vmetal_mid1tilemap_tile_info); TILE_GET_INFO_MEMBER(get_vmetal_mid2tilemap_tile_info); DECLARE_VIDEO_START(varia); + UINT32 screen_update_varia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -456,25 +457,24 @@ VIDEO_START_MEMBER(vmetal_state,varia) expand_gfx1(machine()); } -static SCREEN_UPDATE_IND16(varia) +UINT32 vmetal_state::screen_update_varia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - vmetal_state *state = screen.machine().driver_data<vmetal_state>(); bitmap.fill(get_black_pen(screen.machine()), cliprect); screen.machine().priority_bitmap.fill(0, cliprect); - state->m_mid2tilemap->set_scrollx(0, state->m_vmetal_videoregs[0x06a/2]-64 /*+ state->m_vmetal_videoregs[0x066/2]*/); - state->m_mid1tilemap->set_scrollx(0, state->m_vmetal_videoregs[0x07a/2]-64 /*+ state->m_vmetal_videoregs[0x076/2]*/); - state->m_texttilemap->set_scrollx(0, -64 /*+ state->m_vmetal_videoregs[0x076/2]*/); + m_mid2tilemap->set_scrollx(0, m_vmetal_videoregs[0x06a/2]-64 /*+ m_vmetal_videoregs[0x066/2]*/); + m_mid1tilemap->set_scrollx(0, m_vmetal_videoregs[0x07a/2]-64 /*+ m_vmetal_videoregs[0x076/2]*/); + m_texttilemap->set_scrollx(0, -64 /*+ m_vmetal_videoregs[0x076/2]*/); - state->m_mid2tilemap->set_scrolly(0, -64); - state->m_mid1tilemap->set_scrolly(0, -64); - state->m_texttilemap->set_scrolly(0, -64); + m_mid2tilemap->set_scrolly(0, -64); + m_mid1tilemap->set_scrolly(0, -64); + m_texttilemap->set_scrolly(0, -64); - state->m_mid1tilemap->draw(bitmap, cliprect, 0, 0); - state->m_mid2tilemap->draw(bitmap, cliprect, 0, 0); + m_mid1tilemap->draw(bitmap, cliprect, 0, 0); + m_mid2tilemap->draw(bitmap, cliprect, 0, 0); metro_draw_sprites(screen.machine(), bitmap, cliprect); - state->m_texttilemap->draw(bitmap, cliprect, 0, 0); + m_texttilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -492,7 +492,7 @@ static MACHINE_CONFIG_START( varia, vmetal_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(2048, 2048) MCFG_SCREEN_VISIBLE_AREA(0+64, 319+64, 0+64, 223+64) - MCFG_SCREEN_UPDATE_STATIC(varia) + MCFG_SCREEN_UPDATE_DRIVER(vmetal_state, screen_update_varia) MCFG_GFXDECODE(vmetal) MCFG_PALETTE_LENGTH(0x4000) diff --git a/src/mame/drivers/volfied.c b/src/mame/drivers/volfied.c index 57062e2bfe8..ecefaa91114 100644 --- a/src/mame/drivers/volfied.c +++ b/src/mame/drivers/volfied.c @@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( volfied, volfied_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247) - MCFG_SCREEN_UPDATE_STATIC(volfied) + MCFG_SCREEN_UPDATE_DRIVER(volfied_state, screen_update_volfied) MCFG_GFXDECODE(volfied) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/vpoker.c b/src/mame/drivers/vpoker.c index a09bcdefc76..3428407b4b4 100644 --- a/src/mame/drivers/vpoker.c +++ b/src/mame/drivers/vpoker.c @@ -125,6 +125,7 @@ public: DECLARE_WRITE_LINE_MEMBER(ptm_irq); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -133,10 +134,9 @@ void vpoker_state::video_start() m_videoram = auto_alloc_array(machine(), UINT8, 0x200); } -static SCREEN_UPDATE_IND16( vpoker ) +UINT32 vpoker_state::screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - vpoker_state *state = screen.machine().driver_data<vpoker_state>(); - UINT8 *videoram = state->m_videoram; + UINT8 *videoram = m_videoram; gfx_element *gfx = screen.machine().gfx[0]; int count = 0x0000; @@ -665,7 +665,7 @@ static MACHINE_CONFIG_START( vpoker, vpoker_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 480-1, 0*8, 240-1) // MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 256-1) - MCFG_SCREEN_UPDATE_STATIC(vpoker) + MCFG_SCREEN_UPDATE_DRIVER(vpoker_state, screen_update_vpoker) MCFG_GFXDECODE(vpoker) MCFG_PALETTE_LENGTH(8) diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c index 3ebd43aac38..23139e58828 100644 --- a/src/mame/drivers/vroulet.c +++ b/src/mame/drivers/vroulet.c @@ -62,6 +62,7 @@ public: DECLARE_WRITE8_MEMBER(ppi8255_c_w); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); + UINT32 screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -115,12 +116,11 @@ void vroulet_state::video_start() 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16(vroulet) +UINT32 vroulet_state::screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - vroulet_state *state = screen.machine().driver_data<vroulet_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], 0x320, 1, 0, 0, - state->m_ball[1], state->m_ball[0] - 12, 0); + m_ball[1], m_ball[0] - 12, 0); return 0; } @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( vroulet, vroulet_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(vroulet) + MCFG_SCREEN_UPDATE_DRIVER(vroulet_state, screen_update_vroulet) MCFG_GFXDECODE(vroulet) MCFG_PALETTE_LENGTH(128*4) diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c index c666d7fd8d4..802c2bfe1c1 100644 --- a/src/mame/drivers/vulgus.c +++ b/src/mame/drivers/vulgus.c @@ -225,7 +225,7 @@ static MACHINE_CONFIG_START( vulgus, vulgus_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(vulgus) + MCFG_SCREEN_UPDATE_DRIVER(vulgus_state, screen_update_vulgus) MCFG_GFXDECODE(vulgus) MCFG_PALETTE_LENGTH(64*4+16*16+4*32*8) diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c index 14a788b6042..20a1346a6bb 100644 --- a/src/mame/drivers/wallc.c +++ b/src/mame/drivers/wallc.c @@ -69,6 +69,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -153,10 +154,9 @@ void wallc_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( wallc ) +UINT32 wallc_state::screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - wallc_state *state = screen.machine().driver_data<wallc_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -310,7 +310,7 @@ static MACHINE_CONFIG_START( wallc, wallc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(wallc) + MCFG_SCREEN_UPDATE_DRIVER(wallc_state, screen_update_wallc) MCFG_GFXDECODE(wallc) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c index 948bc07d8e7..81ce2fca050 100644 --- a/src/mame/drivers/wardner.c +++ b/src/mame/drivers/wardner.c @@ -414,7 +414,7 @@ static MACHINE_CONFIG_START( wardner, wardner_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_14MHz/2, 446, 0, 320, 286, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(toaplan0) + MCFG_SCREEN_UPDATE_DRIVER(wardner_state, screen_update_toaplan0) MCFG_SCREEN_VBLANK_DEVICE("spriteram8", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE(wardner) diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c index ea718631fca..dc744364d22 100644 --- a/src/mame/drivers/warpsped.c +++ b/src/mame/drivers/warpsped.c @@ -106,6 +106,7 @@ public: TILE_GET_INFO_MEMBER(get_warpspeed_starfield_tile_info); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w) @@ -208,13 +209,12 @@ static void warpspeed_draw_circles(bitmap_ind16 &bitmap, warpspeed_state *state) } } -static SCREEN_UPDATE_IND16( warpspeed ) +UINT32 warpspeed_state::screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - warpspeed_state *state = screen.machine().driver_data<warpspeed_state>(); - state->m_starfield_tilemap->draw(bitmap, cliprect, 0, 0); - warpspeed_draw_circles(bitmap, state); - state->m_text_tilemap->draw(bitmap, cliprect, 0, 0); + m_starfield_tilemap->draw(bitmap, cliprect, 0, 0); + warpspeed_draw_circles(bitmap, this); + m_text_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -318,7 +318,7 @@ static MACHINE_CONFIG_START( warpspeed, warpspeed_state ) MCFG_SCREEN_SIZE((32)*8, (32)*8) MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 8*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(warpspeed) + MCFG_SCREEN_UPDATE_DRIVER(warpspeed_state, screen_update_warpspeed) MCFG_GFXDECODE(warpspeed) MCFG_PALETTE_LENGTH(2+8) diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c index 9e4a79b6cae..aada67ce4b9 100644 --- a/src/mame/drivers/warpwarp.c +++ b/src/mame/drivers/warpwarp.c @@ -737,7 +737,7 @@ static MACHINE_CONFIG_START( geebee, warpwarp_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(geebee) + MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee) MCFG_GFXDECODE(1k) MCFG_PALETTE_LENGTH(4*2) @@ -772,7 +772,7 @@ static MACHINE_CONFIG_START( bombbee, warpwarp_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224) - MCFG_SCREEN_UPDATE_STATIC(geebee) + MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee) MCFG_GFXDECODE(color) MCFG_PALETTE_LENGTH(2*256+1) diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c index 0d68349335a..83c9f62e0a0 100644 --- a/src/mame/drivers/warriorb.c +++ b/src/mame/drivers/warriorb.c @@ -564,14 +564,14 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(warriorb_left) + MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(warriorb_right) + MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_right) MCFG_TC0100SCN_ADD("tc0100scn_1", darius2d_tc0100scn_intf_l) @@ -627,14 +627,14 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(warriorb_left) + MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(warriorb_right) + MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_right) MCFG_TC0100SCN_ADD("tc0100scn_1", warriorb_tc0100scn_intf_l) diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c index 2183ba674b3..9956609b5c4 100644 --- a/src/mame/drivers/wc90.c +++ b/src/mame/drivers/wc90.c @@ -326,7 +326,7 @@ static MACHINE_CONFIG_START( wc90, wc90_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(wc90) + MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update_wc90) MCFG_GFXDECODE(wc90) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c index 398767e3b07..71f9c76bc99 100644 --- a/src/mame/drivers/wc90b.c +++ b/src/mame/drivers/wc90b.c @@ -381,7 +381,7 @@ static MACHINE_CONFIG_START( wc90b, wc90b_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(wc90b) + MCFG_SCREEN_UPDATE_DRIVER(wc90b_state, screen_update_wc90b) MCFG_GFXDECODE(wc90b) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c index 76d4999ff20..b6bb5f690a8 100644 --- a/src/mame/drivers/wecleman.c +++ b/src/mame/drivers/wecleman.c @@ -1074,7 +1074,7 @@ static MACHINE_CONFIG_START( wecleman, wecleman_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320 +16, 256) MCFG_SCREEN_VISIBLE_AREA(0 +8, 320-1 +8, 0 +8, 224-1 +8) - MCFG_SCREEN_UPDATE_STATIC(wecleman) + MCFG_SCREEN_UPDATE_DRIVER(wecleman_state, screen_update_wecleman) MCFG_GFXDECODE(wecleman) @@ -1158,7 +1158,7 @@ static MACHINE_CONFIG_START( hotchase, wecleman_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(320 +16, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_STATIC(hotchase) + MCFG_SCREEN_UPDATE_DRIVER(wecleman_state, screen_update_hotchase) MCFG_GFXDECODE(hotchase) MCFG_PALETTE_LENGTH(2048*2) diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c index 58121e48a00..9466ffb9bd1 100644 --- a/src/mame/drivers/welltris.c +++ b/src/mame/drivers/welltris.c @@ -719,7 +719,7 @@ static MACHINE_CONFIG_START( welltris, welltris_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(15, 367-1, 8, 248-1) - MCFG_SCREEN_UPDATE_STATIC(welltris) + MCFG_SCREEN_UPDATE_DRIVER(welltris_state, screen_update_welltris) MCFG_GFXDECODE(welltris) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c index a444fc5a56b..a2f1cc7c40b 100644 --- a/src/mame/drivers/wgp.c +++ b/src/mame/drivers/wgp.c @@ -1014,7 +1014,7 @@ static MACHINE_CONFIG_START( wgp, wgp_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(wgp) + MCFG_SCREEN_UPDATE_DRIVER(wgp_state, screen_update_wgp) MCFG_GFXDECODE(wgp) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c index 2124ffe08cf..1768fbd8ea9 100644 --- a/src/mame/drivers/wheelfir.c +++ b/src/mame/drivers/wheelfir.c @@ -284,6 +284,8 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_wheelfir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof_wheelfir(screen_device &screen, bool state); }; @@ -574,30 +576,29 @@ void wheelfir_state::video_start() m_tmp_bitmap[1] = auto_bitmap_ind16_alloc(machine(), 512, 512); } -static SCREEN_UPDATE_IND16(wheelfir) +UINT32 wheelfir_state::screen_update_wheelfir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - wheelfir_state *state = screen.machine().driver_data<wheelfir_state>(); bitmap.fill(0, cliprect); for(int y=0;y<NUM_SCANLINES;++y) { - UINT16 *source = &state->m_tmp_bitmap[LAYER_BG]->pix16(( (state->m_scanlines[y].y)&511)); + UINT16 *source = &m_tmp_bitmap[LAYER_BG]->pix16(( (m_scanlines[y].y)&511)); UINT16 *dest = &bitmap.pix16(y); for (int x=0;x<336;x++) { - dest[x] = source[ (x+(state->m_scanlines[y].x)) &511]; + dest[x] = source[ (x+(m_scanlines[y].x)) &511]; } } - copybitmap_trans(bitmap, *state->m_tmp_bitmap[LAYER_FG], 0, 0, 0, 0, cliprect, 0); + copybitmap_trans(bitmap, *m_tmp_bitmap[LAYER_FG], 0, 0, 0, 0, cliprect, 0); /* { - state->m_tmp_bitmap[LAYER_BG]->fill(0, screen.visible_area()); + m_tmp_bitmap[LAYER_BG]->fill(0, screen.visible_area()); } */ @@ -605,13 +606,12 @@ static SCREEN_UPDATE_IND16(wheelfir) return 0; } -static SCREEN_VBLANK( wheelfir ) +void wheelfir_state::screen_eof_wheelfir(screen_device &screen, bool state) { // rising edge - if (vblank_on) + if (state) { - wheelfir_state *state = screen.machine().driver_data<wheelfir_state>(); - state->m_tmp_bitmap[LAYER_FG]->fill(0, screen.visible_area()); + m_tmp_bitmap[LAYER_FG]->fill(0, screen.visible_area()); } } @@ -828,8 +828,8 @@ static MACHINE_CONFIG_START( wheelfir, wheelfir_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(336, NUM_SCANLINES+NUM_VBLANK_LINES) MCFG_SCREEN_VISIBLE_AREA(0,335, 0, NUM_SCANLINES-1) - MCFG_SCREEN_UPDATE_STATIC(wheelfir) - MCFG_SCREEN_VBLANK_STATIC(wheelfir) + MCFG_SCREEN_UPDATE_DRIVER(wheelfir_state, screen_update_wheelfir) + MCFG_SCREEN_VBLANK_DRIVER(wheelfir_state, screen_eof_wheelfir) MCFG_PALETTE_LENGTH(NUM_COLORS) diff --git a/src/mame/drivers/wildpkr.c b/src/mame/drivers/wildpkr.c index 568ead9720e..9bd98a83b72 100644 --- a/src/mame/drivers/wildpkr.c +++ b/src/mame/drivers/wildpkr.c @@ -176,6 +176,7 @@ public: virtual void machine_start(); virtual void video_start(); virtual void palette_init(); + UINT32 screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -187,9 +188,8 @@ void wildpkr_state::video_start() { } -static SCREEN_UPDATE_IND16( wildpkr ) +UINT32 wildpkr_state::screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { -// wildpkr_state *state = screen.machine().driver_data<wildpkr_state>(); return 0; } @@ -284,7 +284,7 @@ static MACHINE_CONFIG_START( wildpkr, wildpkr_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 512) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1) - MCFG_SCREEN_UPDATE_STATIC(wildpkr) + MCFG_SCREEN_UPDATE_DRIVER(wildpkr_state, screen_update_wildpkr) // MCFG_HD63484_ADD("hd63484", wildpkr_hd63484_intf) MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c index 84a45416b8c..59b1ac1a0ed 100644 --- a/src/mame/drivers/williams.c +++ b/src/mame/drivers/williams.c @@ -1451,7 +1451,7 @@ static MACHINE_CONFIG_START( defender, williams_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 10, 304, 260, 7, 245) - MCFG_SCREEN_UPDATE_STATIC(williams) + MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_williams) MCFG_VIDEO_START_OVERRIDE(williams_state,williams) @@ -1590,7 +1590,7 @@ static MACHINE_CONFIG_DERIVED( blastkit, williams ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(williams_state,blaster) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(blaster) + MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_blaster) /* pia */ MCFG_PIA6821_MODIFY("pia_0", williams_49way_muxed_pia_0_intf) @@ -1643,7 +1643,7 @@ static MACHINE_CONFIG_START( williams2, williams_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 8, 284, 260, 8, 248) - MCFG_SCREEN_UPDATE_STATIC(williams2) + MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_williams2) MCFG_VIDEO_START_OVERRIDE(williams_state,williams2) diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c index 9126bf1978b..fd8c659cb40 100644 --- a/src/mame/drivers/wink.c +++ b/src/mame/drivers/wink.c @@ -42,6 +42,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void machine_reset(); virtual void video_start(); + UINT32 screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -65,10 +66,9 @@ void wink_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wink_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -static SCREEN_UPDATE_IND16( wink ) +UINT32 wink_state::screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - wink_state *state = screen.machine().driver_data<wink_state>(); - state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -360,7 +360,7 @@ static MACHINE_CONFIG_START( wink, wink_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_STATIC(wink) + MCFG_SCREEN_UPDATE_DRIVER(wink_state, screen_update_wink) MCFG_GFXDECODE(wink) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c index 22ec05471b2..81bb0c14fc1 100644 --- a/src/mame/drivers/wiping.c +++ b/src/mame/drivers/wiping.c @@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( wiping, wiping_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(36*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(wiping) + MCFG_SCREEN_UPDATE_DRIVER(wiping_state, screen_update_wiping) MCFG_GFXDECODE(wiping) MCFG_PALETTE_LENGTH(64*4+64*4) diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c index 00ba320310f..ca88359f4a8 100644 --- a/src/mame/drivers/witch.c +++ b/src/mame/drivers/witch.c @@ -238,6 +238,7 @@ public: TILE_GET_INFO_MEMBER(get_gfx0a_tile_info); TILE_GET_INFO_MEMBER(get_gfx1_tile_info); virtual void video_start(); + UINT32 screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -764,18 +765,17 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } -static SCREEN_UPDATE_IND16(witch) +UINT32 witch_state::screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - witch_state *state = screen.machine().driver_data<witch_state>(); - state->m_gfx1_tilemap->set_scrollx(0, state->m_scrollx-7 ); //offset to have it aligned with the sprites - state->m_gfx1_tilemap->set_scrolly(0, state->m_scrolly+8 ); + m_gfx1_tilemap->set_scrollx(0, m_scrollx-7 ); //offset to have it aligned with the sprites + m_gfx1_tilemap->set_scrolly(0, m_scrolly+8 ); - state->m_gfx1_tilemap->draw(bitmap, cliprect, 0,0); - state->m_gfx0a_tilemap->draw(bitmap, cliprect, 0,0); + m_gfx1_tilemap->draw(bitmap, cliprect, 0,0); + m_gfx0a_tilemap->draw(bitmap, cliprect, 0,0); draw_sprites(screen.machine(), bitmap, cliprect); - state->m_gfx0b_tilemap->draw(bitmap, cliprect, 0,0); + m_gfx0b_tilemap->draw(bitmap, cliprect, 0,0); return 0; } @@ -808,7 +808,7 @@ static MACHINE_CONFIG_START( witch, witch_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(8, 256-1-8, 8*4, 256-8*4-1) - MCFG_SCREEN_UPDATE_STATIC(witch) + MCFG_SCREEN_UPDATE_DRIVER(witch_state, screen_update_witch) MCFG_GFXDECODE(witch) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c index 074f9f55b54..0fa46a2a721 100644 --- a/src/mame/drivers/wiz.c +++ b/src/mame/drivers/wiz.c @@ -735,7 +735,7 @@ static MACHINE_CONFIG_START( wiz, wiz_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(wiz) + MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_wiz) MCFG_GFXDECODE(wiz) MCFG_PALETTE_LENGTH(256) @@ -765,7 +765,7 @@ static MACHINE_CONFIG_DERIVED( stinger, wiz ) /* video hardware */ MCFG_GFXDECODE(stinger) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(stinger) + MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_stinger) /* sound hardware */ MCFG_DEVICE_REMOVE("8910.3") @@ -794,7 +794,7 @@ static MACHINE_CONFIG_DERIVED( kungfut, wiz ) /* video hardware */ MCFG_GFXDECODE(stinger) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(kungfut) + MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_kungfut) MACHINE_CONFIG_END diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c index 3d48fa46565..85266a71638 100644 --- a/src/mame/drivers/wolfpack.c +++ b/src/mame/drivers/wolfpack.c @@ -300,8 +300,8 @@ static MACHINE_CONFIG_START( wolfpack, wolfpack_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 262) MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 239) - MCFG_SCREEN_UPDATE_STATIC(wolfpack) - MCFG_SCREEN_VBLANK_STATIC(wolfpack) + MCFG_SCREEN_UPDATE_DRIVER(wolfpack_state, screen_update_wolfpack) + MCFG_SCREEN_VBLANK_DRIVER(wolfpack_state, screen_eof_wolfpack) MCFG_GFXDECODE(wolfpack) MCFG_PALETTE_LENGTH(12) diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c index 9e10f44cf3d..499ab78f4c6 100644 --- a/src/mame/drivers/wrally.c +++ b/src/mame/drivers/wrally.c @@ -263,7 +263,7 @@ static MACHINE_CONFIG_START( wrally, wrally_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(8, 24*16-8-1, 16, 16*16-8-1) - MCFG_SCREEN_UPDATE_STATIC(wrally) + MCFG_SCREEN_UPDATE_DRIVER(wrally_state, screen_update_wrally) MCFG_GFXDECODE(wrally) MCFG_PALETTE_LENGTH(1024*8) diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c index ecc96580ef7..0f7c46f068c 100644 --- a/src/mame/drivers/wwfsstar.c +++ b/src/mame/drivers/wwfsstar.c @@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( wwfsstar, wwfsstar_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 320, 0, 256, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ - MCFG_SCREEN_UPDATE_STATIC(wwfsstar) + MCFG_SCREEN_UPDATE_DRIVER(wwfsstar_state, screen_update_wwfsstar) MCFG_GFXDECODE(wwfsstar) MCFG_PALETTE_LENGTH(384) diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c index a2cac42ce58..52028d0315d 100644 --- a/src/mame/drivers/wwfwfest.c +++ b/src/mame/drivers/wwfwfest.c @@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ - MCFG_SCREEN_UPDATE_STATIC(wwfwfest) + MCFG_SCREEN_UPDATE_DRIVER(wwfwfest_state, screen_update_wwfwfest) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE(wwfwfest) diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c index b4df3d2aa60..c271e2f20d5 100644 --- a/src/mame/drivers/xain.c +++ b/src/mame/drivers/xain.c @@ -596,7 +596,7 @@ static MACHINE_CONFIG_START( xsleena, xain_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248) /* based on ddragon driver */ - MCFG_SCREEN_UPDATE_STATIC(xain) + MCFG_SCREEN_UPDATE_DRIVER(xain_state, screen_update_xain) MCFG_GFXDECODE(xain) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c index b6ecf1babe7..c61dd05c782 100644 --- a/src/mame/drivers/xexex.c +++ b/src/mame/drivers/xexex.c @@ -535,7 +535,7 @@ static MACHINE_CONFIG_START( xexex, xexex_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 0, 0+256-1) - MCFG_SCREEN_UPDATE_STATIC(xexex) + MCFG_SCREEN_UPDATE_DRIVER(xexex_state, screen_update_xexex) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 6d16f5c572b..4d0b0501252 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -385,7 +385,7 @@ static MACHINE_CONFIG_START( xmen, xmen_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) /* correct, same issue of TMNT2 */ - MCFG_SCREEN_UPDATE_STATIC(xmen) + MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen) MCFG_PALETTE_LENGTH(2048) MCFG_K052109_ADD("k052109", xmen_k052109_intf) @@ -437,15 +437,15 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(12*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(xmen6p_left) + MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen6p_left) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(16*8, 52*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(xmen6p_right) - MCFG_SCREEN_VBLANK_STATIC(xmen6p) + MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen6p_right) + MCFG_SCREEN_VBLANK_DRIVER(xmen_state, screen_eof_xmen6p) MCFG_VIDEO_START_OVERRIDE(xmen_state,xmen6p) diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c index 34c95b30a69..b298290d980 100644 --- a/src/mame/drivers/xorworld.c +++ b/src/mame/drivers/xorworld.c @@ -188,7 +188,7 @@ static MACHINE_CONFIG_START( xorworld, xorworld_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(xorworld) + MCFG_SCREEN_UPDATE_DRIVER(xorworld_state, screen_update_xorworld) MCFG_GFXDECODE(xorworld) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c index 35179eab5b2..e0f5a32a4ee 100644 --- a/src/mame/drivers/xxmissio.c +++ b/src/mame/drivers/xxmissio.c @@ -301,7 +301,7 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(xxmissio) + MCFG_SCREEN_UPDATE_DRIVER(xxmissio_state, screen_update_xxmissio) MCFG_GFXDECODE(xxmissio) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c index 9dfd64833c0..7169f2fef75 100644 --- a/src/mame/drivers/xybots.c +++ b/src/mame/drivers/xybots.c @@ -210,7 +210,7 @@ static MACHINE_CONFIG_START( xybots, xybots_state ) /* note: these parameters are from published specs, not derived */ /* the board uses a SYNGEN chip to generate video signals */ MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_STATIC(xybots) + MCFG_SCREEN_UPDATE_DRIVER(xybots_state, screen_update_xybots) MCFG_VIDEO_START_OVERRIDE(xybots_state,xybots) diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c index 80d6e1b2822..8183b58303d 100644 --- a/src/mame/drivers/xyonix.c +++ b/src/mame/drivers/xyonix.c @@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( xyonix, xyonix_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(80*4, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 80*4-1, 0, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(xyonix) + MCFG_SCREEN_UPDATE_DRIVER(xyonix_state, screen_update_xyonix) MCFG_GFXDECODE(xyonix) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c index 1a489f0a0c7..966d6bd8d0e 100644 --- a/src/mame/drivers/yiear.c +++ b/src/mame/drivers/yiear.c @@ -299,7 +299,7 @@ static MACHINE_CONFIG_START( yiear, yiear_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(yiear) + MCFG_SCREEN_UPDATE_DRIVER(yiear_state, screen_update_yiear) MCFG_GFXDECODE(yiear) MCFG_PALETTE_LENGTH(32) diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c index cb2d5e74e9c..3024333d2cf 100644 --- a/src/mame/drivers/yunsun16.c +++ b/src/mame/drivers/yunsun16.c @@ -603,7 +603,7 @@ static MACHINE_CONFIG_START( magicbub, yunsun16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x180, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0+0x20, 0x180-1-0x20, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(yunsun16) + MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16) MCFG_GFXDECODE(yunsun16) MCFG_PALETTE_LENGTH(8192) @@ -641,7 +641,7 @@ static MACHINE_CONFIG_START( shocking, yunsun16_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x180, 0xe0) MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1-4, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_STATIC(yunsun16) + MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16) MCFG_GFXDECODE(yunsun16) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c index c0ba0f4f71c..58ba1b8c9f9 100644 --- a/src/mame/drivers/yunsung8.c +++ b/src/mame/drivers/yunsung8.c @@ -515,7 +515,7 @@ static MACHINE_CONFIG_START( yunsung8, yunsung8_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0+64, 512-64-1, 0+8, 256-8-1) - MCFG_SCREEN_UPDATE_STATIC(yunsung8) + MCFG_SCREEN_UPDATE_DRIVER(yunsung8_state, screen_update_yunsung8) MCFG_GFXDECODE(yunsung8) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c index 4bdb485a15b..f0c80850c6c 100644 --- a/src/mame/drivers/zac2650.c +++ b/src/mame/drivers/zac2650.c @@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( tinvader, zac2650_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1041)) MCFG_SCREEN_SIZE(30*24, 32*24) MCFG_SCREEN_VISIBLE_AREA(0, 719, 0, 767) - MCFG_SCREEN_UPDATE_STATIC(tinvader) + MCFG_SCREEN_UPDATE_DRIVER(zac2650_state, screen_update_tinvader) MCFG_GFXDECODE(tinvader) MCFG_PALETTE_LENGTH(4) diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c index e0efe3fde48..3bcd01d7036 100644 --- a/src/mame/drivers/zaccaria.c +++ b/src/mame/drivers/zaccaria.c @@ -606,7 +606,7 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_STATIC(zaccaria) + MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update_zaccaria) MCFG_GFXDECODE(zaccaria) MCFG_PALETTE_LENGTH(32*8+32*8) diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c index 8acdece266b..a7f92f77724 100644 --- a/src/mame/drivers/zaxxon.c +++ b/src/mame/drivers/zaxxon.c @@ -973,7 +973,7 @@ static MACHINE_CONFIG_START( root, zaxxon_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_STATIC(zaxxon) + MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_zaxxon) MACHINE_CONFIG_END @@ -990,7 +990,7 @@ static MACHINE_CONFIG_DERIVED( futspy, root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(futspy) + MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_futspy) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1008,7 +1008,7 @@ static MACHINE_CONFIG_DERIVED( razmataz, root ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(zaxxon_state,razmataz) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(razmataz) + MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_razmataz) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1032,7 +1032,7 @@ static MACHINE_CONFIG_DERIVED( congo, root ) MCFG_PALETTE_LENGTH(512) MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_STATIC(congo) + MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_congo) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c index c20d05ac044..f72019f532e 100644 --- a/src/mame/drivers/zr107.c +++ b/src/mame/drivers/zr107.c @@ -205,6 +205,8 @@ public: virtual void machine_reset(); DECLARE_VIDEO_START(zr107); DECLARE_VIDEO_START(jetwave); + UINT32 screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + UINT32 screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -218,9 +220,8 @@ VIDEO_START_MEMBER(zr107_state,jetwave) } -static SCREEN_UPDATE_RGB32( jetwave ) +UINT32 zr107_state::screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - zr107_state *state = screen.machine().driver_data<zr107_state>(); device_t *k001604 = screen.machine().device("k001604"); bitmap.fill(screen.machine().pens[0], cliprect); @@ -229,8 +230,8 @@ static SCREEN_UPDATE_RGB32( jetwave ) k001604_draw_front_layer(k001604, bitmap, cliprect); - draw_7segment_led(bitmap, 3, 3, state->m_led_reg0); - draw_7segment_led(bitmap, 9, 3, state->m_led_reg1); + draw_7segment_led(bitmap, 3, 3, m_led_reg0); + draw_7segment_led(bitmap, 9, 3, m_led_reg1); sharc_set_flag_input(screen.machine().device("dsp"), 1, ASSERT_LINE); return 0; @@ -271,9 +272,8 @@ VIDEO_START_MEMBER(zr107_state,zr107) K001005_init(machine()); } -static SCREEN_UPDATE_RGB32( zr107 ) +UINT32 zr107_state::screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - zr107_state *state = screen.machine().driver_data<zr107_state>(); device_t *k056832 = screen.machine().device("k056832"); bitmap.fill(screen.machine().pens[0], cliprect); @@ -281,8 +281,8 @@ static SCREEN_UPDATE_RGB32( zr107 ) K001005_draw(bitmap, cliprect); k056832_tilemap_draw(k056832, bitmap, cliprect, 0, 0, 0); - draw_7segment_led(bitmap, 3, 3, state->m_led_reg0); - draw_7segment_led(bitmap, 9, 3, state->m_led_reg1); + draw_7segment_led(bitmap, 3, 3, m_led_reg0); + draw_7segment_led(bitmap, 9, 3, m_led_reg1); sharc_set_flag_input(screen.machine().device("dsp"), 1, ASSERT_LINE); return 0; @@ -751,7 +751,7 @@ static MACHINE_CONFIG_START( zr107, zr107_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 48*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) - MCFG_SCREEN_UPDATE_STATIC(zr107) + MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_zr107) MCFG_PALETTE_LENGTH(65536) @@ -807,7 +807,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(64*8, 48*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) - MCFG_SCREEN_UPDATE_STATIC(jetwave) + MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_jetwave) MCFG_PALETTE_LENGTH(65536) |