diff options
author | Aaron Giles <aaron@aarongiles.com> | 2012-01-14 00:39:13 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2012-01-14 00:39:13 +0000 |
commit | 8d1ffc9677f513da4bda481dd2e5d67021043479 (patch) | |
tree | 98e70b854ac2cddae2ed2b2182da18df91ffd069 | |
parent | e325b867ece9738594a92d7f75cc45168fdac494 (diff) |
Death to SCREEN_EOF, which was ambiguously called either
at the start or end of VBLANK depending on the video flag
VIDEO_UPDATE_AFTER_VBLANK. Replaced with SCREEN_VBLANK
callbacks which are called both at the start and end of
VBLANK, so you can operate either way, and be explicit
about it. Updated all callers.
Also updated screen_device to use device timers and some
other minor cleanups.
281 files changed, 2420 insertions, 1978 deletions
diff --git a/src/emu/screen.c b/src/emu/screen.c index 201df7948d3..4659792b324 100644 --- a/src/emu/screen.c +++ b/src/emu/screen.c @@ -232,14 +232,13 @@ void screen_device::static_set_screen_update(device_t &device, screen_update_rgb //------------------------------------------------- -// static_set_screen_eof - set the legacy -// screen eof callback in the device -// configuration +// static_set_screen_vblank - set the screen +// VBLANK callback in the device configuration //------------------------------------------------- -void screen_device::static_set_screen_eof(device_t &device, screen_eof_delegate callback) +void screen_device::static_set_screen_vblank(device_t &device, screen_vblank_delegate callback) { - downcast<screen_device &>(device).m_screen_eof = callback; + downcast<screen_device &>(device).m_screen_vblank = callback; } @@ -299,7 +298,7 @@ void screen_device::device_start() // bind our handlers m_screen_update_ind16.bind_relative_to(*owner()); m_screen_update_rgb32.bind_relative_to(*owner()); - m_screen_eof.bind_relative_to(*owner()); + m_screen_vblank.bind_relative_to(*owner()); // configure bitmap formats texture_format texformat = !m_screen_update_ind16.isnull() ? TEXFORMAT_PALETTE16 : TEXFORMAT_RGB32; @@ -316,15 +315,15 @@ void screen_device::device_start() m_container->set_user_settings(settings); // allocate the VBLANK timers - m_vblank_begin_timer = machine().scheduler().timer_alloc(FUNC(static_vblank_begin_callback), (void *)this); - m_vblank_end_timer = machine().scheduler().timer_alloc(FUNC(static_vblank_end_callback), (void *)this); + m_vblank_begin_timer = timer_alloc(TID_VBLANK_START); + m_vblank_end_timer = timer_alloc(TID_VBLANK_END); // allocate a timer to reset partial updates - m_scanline0_timer = machine().scheduler().timer_alloc(FUNC(static_scanline0_callback), (void *)this); + m_scanline0_timer = timer_alloc(TID_SCANLINE0); // allocate a timer to generate per-scanline updates if ((machine().config().m_video_attributes & VIDEO_UPDATE_SCANLINE) != 0) - m_scanline_timer = machine().scheduler().timer_alloc(FUNC(static_scanline_update_callback), (void *)this); + m_scanline_timer = timer_alloc(TID_SCANLINE); // configure the screen with the default parameters configure(m_width, m_height, m_visarea, m_refresh); @@ -396,6 +395,46 @@ void screen_device::device_post_load() //------------------------------------------------- +// device_timer - called whenever a device timer +// fires +//------------------------------------------------- + +void screen_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + switch (id) + { + // signal VBLANK start + case TID_VBLANK_START: + vblank_begin(); + break; + + // signal VBLANK end + case TID_VBLANK_END: + vblank_end(); + break; + + // first visible scanline + case TID_SCANLINE0: + reset_partial_updates(); + break; + + // subsequent scanlines when scanline updates are enabled + case TID_SCANLINE: + + // force a partial update to the current scanline + update_partial(param); + + // compute the next visible scanline + param++; + if (param > m_visarea.max_y) + param = m_visarea.min_y; + m_scanline_timer->adjust(time_until_pos(param), param); + break; + } +} + + +//------------------------------------------------- // configure - configure screen parameters //------------------------------------------------- @@ -460,14 +499,14 @@ void screen_device::reset_origin(int beamy, int beamx) // if we are resetting relative to (0,0) == VBLANK end, call the // scanline 0 timer by hand now; otherwise, adjust it for the future if (beamy == 0 && beamx == 0) - scanline0_callback(); + reset_partial_updates(); else m_scanline0_timer->adjust(time_until_pos(0)); // if we are resetting relative to (visarea.max_y + 1, 0) == VBLANK start, // call the VBLANK start timer now; otherwise, adjust it for the future if (beamy == m_visarea.max_y + 1 && beamx == 0) - vblank_begin_callback(); + vblank_begin(); else m_vblank_begin_timer->adjust(time_until_vblank_start()); } @@ -644,6 +683,19 @@ void screen_device::update_now() //------------------------------------------------- +// reset_partial_updates - reset the partial +// updating state +//------------------------------------------------- + +void screen_device::reset_partial_updates() +{ + m_last_partial_scan = 0; + m_partial_updates_this_frame = 0; + m_scanline0_timer->adjust(time_until_pos(0)); +} + + +//------------------------------------------------- // vpos - returns the current vertical position // of the beam //------------------------------------------------- @@ -758,11 +810,11 @@ void screen_device::register_vblank_callback(vblank_state_delegate vblank_callba //------------------------------------------------- -// vblank_begin_callback - call any external -// callbacks to signal the VBLANK period has begun +// vblank_begin - call any external callbacks to +// signal the VBLANK period has begun //------------------------------------------------- -void screen_device::vblank_begin_callback() +void screen_device::vblank_begin() { // reset the starting VBLANK time m_vblank_start_time = machine().time(); @@ -771,6 +823,8 @@ void screen_device::vblank_begin_callback() // call the screen specific callbacks for (callback_item *item = m_callback_list.first(); item != NULL; item = item->next()) item->m_callback(*this, true); + if (!m_screen_vblank.isnull()) + m_screen_vblank(*this, true); // if this is the primary screen and we need to update now if (this == machine().primary_screen && !(machine().config().m_video_attributes & VIDEO_UPDATE_AFTER_VBLANK)) @@ -781,22 +835,24 @@ void screen_device::vblank_begin_callback() // if no VBLANK period, call the VBLANK end callback immedietely, otherwise reset the timer if (m_vblank_period == 0) - vblank_end_callback(); + vblank_end(); else m_vblank_end_timer->adjust(time_until_vblank_end()); } //------------------------------------------------- -// vblank_end_callback - call any external -// callbacks to signal the VBLANK period has ended +// vblank_end - call any external callbacks to +// signal the VBLANK period has ended //------------------------------------------------- -void screen_device::vblank_end_callback() +void screen_device::vblank_end() { // call the screen specific callbacks for (callback_item *item = m_callback_list.first(); item != NULL; item = item->next()) item->m_callback(*this, false); + if (!m_screen_vblank.isnull()) + m_screen_vblank(*this, false); // if this is the primary screen and we need to update now if (this == machine().primary_screen && (machine().config().m_video_attributes & VIDEO_UPDATE_AFTER_VBLANK)) @@ -808,39 +864,6 @@ void screen_device::vblank_end_callback() //------------------------------------------------- -// scanline0_callback - reset partial updates -// for a screen -//------------------------------------------------- - -void screen_device::scanline0_callback() -{ - // reset partial updates - m_last_partial_scan = 0; - m_partial_updates_this_frame = 0; - - m_scanline0_timer->adjust(time_until_pos(0)); -} - - -//------------------------------------------------- -// scanline_update_callback - perform partial -// updates on each scanline -//------------------------------------------------- - -void screen_device::scanline_update_callback(int scanline) -{ - // force a partial update to the current scanline - update_partial(scanline); - - // compute the next visible scanline - scanline++; - if (scanline > m_visarea.max_y) - scanline = m_visarea.min_y; - m_scanline_timer->adjust(time_until_pos(scanline), scanline); -} - - -//------------------------------------------------- // update_quads - set up the quads for this // screen //------------------------------------------------- @@ -1040,15 +1063,3 @@ void screen_device::load_effect_overlay(const char *filename) else mame_printf_warning("Unable to load effect PNG file '%s'\n", fullname.cstr()); } - - -//------------------------------------------------- -// screen_eof - default implementation which -// calls to the legacy screen_update function -//------------------------------------------------- - -void screen_device::screen_eof() -{ - if (!m_screen_eof.isnull()) - m_screen_eof(*this); -} diff --git a/src/emu/screen.h b/src/emu/screen.h index 8bfd308b424..46e3af14304 100644 --- a/src/emu/screen.h +++ b/src/emu/screen.h @@ -161,9 +161,10 @@ private: // ======================> other delegate types typedef delegate<void (screen_device &, bool)> vblank_state_delegate; -typedef device_delegate<void (screen_device &)> screen_eof_delegate; + typedef device_delegate<UINT32 (screen_device &, bitmap_ind16 &, const rectangle &)> screen_update_ind16_delegate; typedef device_delegate<UINT32 (screen_device &, bitmap_rgb32 &, const rectangle &)> screen_update_rgb32_delegate; +typedef device_delegate<void (screen_device &, bool)> screen_vblank_delegate; // ======================> screen_device @@ -202,12 +203,11 @@ public: static void static_set_default_position(device_t &device, double xscale, double xoffs, double yscale, double yoffs); static void static_set_screen_update(device_t &device, screen_update_ind16_delegate callback); static void static_set_screen_update(device_t &device, screen_update_rgb32_delegate callback); - static void static_set_screen_eof(device_t &device, screen_eof_delegate callback); + static void static_set_screen_vblank(device_t &device, screen_vblank_delegate callback); // information getters screen_device *next_screen() const { return downcast<screen_device *>(typenext()); } render_container &container() const { assert(m_container != NULL); return *m_container; } - void screen_eof(); // dynamic configuration void configure(int width, int height, const rectangle &visarea, attoseconds_t frame_period); @@ -228,11 +228,12 @@ public: attotime scan_period() const { return attotime(0, m_scantime); } attotime frame_period() const { return (this == NULL) ? DEFAULT_FRAME_PERIOD : attotime(0, m_frame_period); }; UINT64 frame_number() const { return m_frame_number; } - int partial_updates() const { return m_partial_updates_this_frame; } // updating + int partial_updates() const { return m_partial_updates_this_frame; } bool update_partial(int scanline); void update_now(); + void reset_partial_updates(); // additional helpers void register_vblank_callback(vblank_state_delegate vblank_callback); @@ -246,30 +247,27 @@ public: static const attotime DEFAULT_FRAME_PERIOD; private: + // timer IDs + enum + { + TID_VBLANK_START, + TID_VBLANK_END, + TID_SCANLINE0, + TID_SCANLINE + }; + // device-level overrides virtual bool device_validity_check(emu_options &options, const game_driver &driver) const; virtual void device_start(); virtual void device_stop(); virtual void device_post_load(); + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); // internal helpers void set_container(render_container &container) { m_container = &container; } void realloc_screen_bitmaps(); - - static TIMER_CALLBACK( static_vblank_begin_callback ) { reinterpret_cast<screen_device *>(ptr)->vblank_begin_callback(); } - void vblank_begin_callback(); - - static TIMER_CALLBACK( static_vblank_end_callback ) { reinterpret_cast<screen_device *>(ptr)->vblank_end_callback(); } - void vblank_end_callback(); - - static TIMER_CALLBACK( static_scanline0_callback ) { reinterpret_cast<screen_device *>(ptr)->scanline0_callback(); } -public: // temporary - void scanline0_callback(); -private: - - static TIMER_CALLBACK( static_scanline_update_callback ) { reinterpret_cast<screen_device *>(ptr)->scanline_update_callback(param); } - void scanline_update_callback(int scanline); - + void vblank_begin(); + void vblank_end(); void finalize_burnin(); void load_effect_overlay(const char *filename); @@ -282,7 +280,7 @@ private: float m_xscale, m_yscale; // default X/Y scale factor screen_update_ind16_delegate m_screen_update_ind16; // screen update callback (16-bit palette) screen_update_rgb32_delegate m_screen_update_rgb32; // screen update callback (32-bit RGB) - screen_eof_delegate m_screen_eof; // screen eof callback + screen_vblank_delegate m_screen_vblank; // screen vblank callback // internal state render_container * m_container; // pointer to our container @@ -346,9 +344,9 @@ extern const device_type SCREEN; #define SCREEN_UPDATE16_CALL(name) SCREEN_UPDATE_NAME(name)(NULL, screen, bitmap, cliprect) #define SCREEN_UPDATE32_CALL(name) SCREEN_UPDATE_NAME(name)(NULL, screen, bitmap, cliprect) -#define SCREEN_EOF_NAME(name) screen_eof_##name -#define SCREEN_EOF(name) void SCREEN_EOF_NAME(name)(device_t *, screen_device &screen) -#define SCREEN_EOF_CALL(name) SCREEN_EOF_NAME(name)(NULL, screen) +#define SCREEN_VBLANK_NAME(name) screen_vblank_##name +#define SCREEN_VBLANK(name) void SCREEN_VBLANK_NAME(name)(device_t *, screen_device &screen, bool vblank_on) +#define SCREEN_VBLANK_CALL(name) SCREEN_VBLANK_NAME(name)(NULL, screen, vblank_on) #define MCFG_SCREEN_ADD(_tag, _type) \ MCFG_DEVICE_ADD(_tag, SCREEN, 0) \ @@ -387,17 +385,17 @@ extern const device_type SCREEN; #define MCFG_SCREEN_UPDATE_DEVICE(_device, _class, _method) \ screen_device::static_set_screen_update(*device, screen_update_delegate_smart(&_class::_method, #_class "::" #_method, _device)); \ -#define MCFG_SCREEN_EOF_NONE() \ - screen_device::static_set_screen_eof(*device, screen_eof_delegate()); \ +#define MCFG_SCREEN_VBLANK_NONE() \ + screen_device::static_set_screen_vblank(*device, screen_vblank_delegate()); \ -#define MCFG_SCREEN_EOF_STATIC(_func) \ - screen_device::static_set_screen_eof(*device, screen_eof_delegate(&screen_eof_##_func, "screen_eof_" #_func)); \ +#define MCFG_SCREEN_VBLANK_STATIC(_func) \ + screen_device::static_set_screen_vblank(*device, screen_vblank_delegate(&screen_vblank_##_func, "screen_vblank_" #_func)); \ -#define MCFG_SCREEN_EOF_DRIVER(_class, _method) \ - screen_device::static_set_screen_eof(*device, screen_eof_delegate(&_class::_method, #_class "::" #_method, NULL)); \ +#define MCFG_SCREEN_VBLANK_DRIVER(_class, _method) \ + screen_device::static_set_screen_vblank(*device, screen_vblank_delegate(&_class::_method, #_class "::" #_method, NULL)); \ -#define MCFG_SCREEN_EOF_DEVICE(_device, _class, _method) \ - screen_device::static_set_screen_eof(*device, screen_eof_delegate(&_class::_method, #_class "::" #_method, _device)); \ +#define MCFG_SCREEN_VBLANK_DEVICE(_device, _class, _method) \ + screen_device::static_set_screen_vblank(*device, screen_vblank_delegate(&_class::_method, #_class "::" #_method, _device)); \ diff --git a/src/emu/video.c b/src/emu/video.c index 41dc41250cb..9625e38ab2c 100644 --- a/src/emu/video.c +++ b/src/emu/video.c @@ -267,16 +267,7 @@ void video_manager::frame_update(bool debug) { // reset partial updates if we're paused or if the debugger is active if (machine().primary_screen != NULL && (machine().paused() || debug || debugger_within_instruction_hook(machine()))) - machine().primary_screen->scanline0_callback(); - - // otherwise, call the video EOF callback - else - { - g_profiler.start(PROFILER_VIDEO); - for (screen_device *screen = machine().first_screen(); screen != NULL; screen = screen->next_screen()) - screen->screen_eof(); - g_profiler.stop(); - } + machine().primary_screen->reset_partial_updates(); } } diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c index cf2a53507ef..d3899a7028c 100644 --- a/src/mame/drivers/2mindril.c +++ b/src/mame/drivers/2mindril.c @@ -451,7 +451,7 @@ static MACHINE_CONFIG_START( drill, _2mindril_state ) 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_EOF_STATIC(f3) + MCFG_SCREEN_VBLANK_STATIC(f3) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c index 53764fa0645..16afb9ec071 100644 --- a/src/mame/drivers/airbustr.c +++ b/src/mame/drivers/airbustr.c @@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state ) 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_EOF_STATIC(airbustr) + MCFG_SCREEN_VBLANK_STATIC(airbustr) MCFG_GFXDECODE(airbustr) MCFG_PALETTE_LENGTH(768) diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c index 4db19c5a6bf..37f3743e0ee 100644 --- a/src/mame/drivers/armedf.c +++ b/src/mame/drivers/armedf.c @@ -1214,7 +1214,7 @@ static MACHINE_CONFIG_START( terraf, armedf_state ) MCFG_VIDEO_START(terraf) MCFG_SCREEN_UPDATE_STATIC(armedf) - MCFG_SCREEN_EOF_STATIC(armedf) + MCFG_SCREEN_VBLANK_STATIC(armedf) MCFG_GFXDECODE(armedf) @@ -1263,7 +1263,7 @@ static MACHINE_CONFIG_START( terrafb, armedf_state ) MCFG_VIDEO_START(terraf) MCFG_SCREEN_UPDATE_STATIC(armedf) - MCFG_SCREEN_EOF_STATIC(armedf) + MCFG_SCREEN_VBLANK_STATIC(armedf) MCFG_GFXDECODE(armedf) MCFG_PALETTE_LENGTH(2048) @@ -1307,7 +1307,7 @@ static MACHINE_CONFIG_START( kozure, armedf_state ) MCFG_VIDEO_START(terraf) MCFG_SCREEN_UPDATE_STATIC(armedf) - MCFG_SCREEN_EOF_STATIC(armedf) + MCFG_SCREEN_VBLANK_STATIC(armedf) MCFG_GFXDECODE(armedf) MCFG_PALETTE_LENGTH(2048) @@ -1351,7 +1351,7 @@ static MACHINE_CONFIG_START( armedf, armedf_state ) MCFG_VIDEO_START(armedf) MCFG_SCREEN_UPDATE_STATIC(armedf) - MCFG_SCREEN_EOF_STATIC(armedf) + MCFG_SCREEN_VBLANK_STATIC(armedf) MCFG_GFXDECODE(armedf) MCFG_PALETTE_LENGTH(2048) @@ -1395,7 +1395,7 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state ) MCFG_VIDEO_START(terraf) MCFG_SCREEN_UPDATE_STATIC(armedf) - MCFG_SCREEN_EOF_STATIC(armedf) + MCFG_SCREEN_VBLANK_STATIC(armedf) MCFG_GFXDECODE(armedf) MCFG_PALETTE_LENGTH(2048) @@ -1439,7 +1439,7 @@ static MACHINE_CONFIG_START( legion, armedf_state ) MCFG_VIDEO_START(terraf) MCFG_SCREEN_UPDATE_STATIC(armedf) - MCFG_SCREEN_EOF_STATIC(armedf) + MCFG_SCREEN_VBLANK_STATIC(armedf) MCFG_GFXDECODE(armedf) MCFG_PALETTE_LENGTH(2048) @@ -1483,7 +1483,7 @@ static MACHINE_CONFIG_START( legiono, armedf_state ) MCFG_VIDEO_START(terraf) MCFG_SCREEN_UPDATE_STATIC(armedf) - MCFG_SCREEN_EOF_STATIC(armedf) + MCFG_SCREEN_VBLANK_STATIC(armedf) MCFG_GFXDECODE(armedf) MCFG_PALETTE_LENGTH(2048) @@ -1542,7 +1542,7 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state ) MCFG_VIDEO_START(armedf) MCFG_SCREEN_UPDATE_STATIC(armedf) - MCFG_SCREEN_EOF_STATIC(armedf) + MCFG_SCREEN_VBLANK_STATIC(armedf) MCFG_GFXDECODE(armedf) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c index 824e1c3ee78..2e305349b92 100644 --- a/src/mame/drivers/asuka.c +++ b/src/mame/drivers/asuka.c @@ -874,10 +874,13 @@ static MACHINE_RESET( asuka ) memset(state->m_cval, 0, 26); } -static SCREEN_EOF( asuka ) +static SCREEN_VBLANK( asuka ) { - asuka_state *state = screen.machine().driver_data<asuka_state>(); - pc090oj_eof_callback(state->m_pc090oj); + if (vblank_on) + { + asuka_state *state = screen.machine().driver_data<asuka_state>(); + pc090oj_eof_callback(state->m_pc090oj); + } } static const tc0220ioc_interface asuka_io_intf = @@ -914,7 +917,7 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state ) 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_EOF_STATIC(asuka) + MCFG_SCREEN_VBLANK_STATIC(asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) @@ -959,7 +962,7 @@ static MACHINE_CONFIG_START( asuka, asuka_state ) 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_EOF_STATIC(asuka) + MCFG_SCREEN_VBLANK_STATIC(asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) @@ -1011,7 +1014,7 @@ static MACHINE_CONFIG_START( cadash, asuka_state ) 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_EOF_STATIC(asuka) + MCFG_SCREEN_VBLANK_STATIC(asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) @@ -1055,7 +1058,7 @@ static MACHINE_CONFIG_START( mofflott, asuka_state ) 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_EOF_STATIC(asuka) + MCFG_SCREEN_VBLANK_STATIC(asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ @@ -1103,7 +1106,7 @@ static MACHINE_CONFIG_START( galmedes, asuka_state ) 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_EOF_STATIC(asuka) + MCFG_SCREEN_VBLANK_STATIC(asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ @@ -1147,7 +1150,7 @@ static MACHINE_CONFIG_START( eto, asuka_state ) 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_EOF_STATIC(asuka) + MCFG_SCREEN_VBLANK_STATIC(asuka) MCFG_GFXDECODE(asuka) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c index c233140e7fe..f7f42032be5 100644 --- a/src/mame/drivers/atarig1.c +++ b/src/mame/drivers/atarig1.c @@ -472,7 +472,7 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state ) /* 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_EOF_STATIC(atarig1) + MCFG_SCREEN_VBLANK_STATIC(atarig1) MCFG_VIDEO_START(atarig1) diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c index 48e5ebeecbc..8635bfe212c 100644 --- a/src/mame/drivers/atarig42.c +++ b/src/mame/drivers/atarig42.c @@ -582,7 +582,7 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state ) /* 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_EOF_STATIC(atarig42) + MCFG_SCREEN_VBLANK_STATIC(atarig42) MCFG_VIDEO_START(atarig42) diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c index 047743e3d20..9aa2cecd85c 100644 --- a/src/mame/drivers/atarigt.c +++ b/src/mame/drivers/atarigt.c @@ -833,7 +833,7 @@ static MACHINE_CONFIG_START( atarigt, atarigt_state ) /* 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_EOF_STATIC(atarigt) + MCFG_SCREEN_VBLANK_STATIC(atarigt) MCFG_VIDEO_START(atarigt) diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c index d0d05c43cdd..7a6635d641d 100644 --- a/src/mame/drivers/atarigx2.c +++ b/src/mame/drivers/atarigx2.c @@ -1453,7 +1453,7 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state ) /* 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_EOF_STATIC(atarigx2) + MCFG_SCREEN_VBLANK_STATIC(atarigx2) MCFG_VIDEO_START(atarigx2) diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c index f6940e43989..1d42172a0cf 100644 --- a/src/mame/drivers/baraduke.c +++ b/src/mame/drivers/baraduke.c @@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( baraduke, baraduke_state ) 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_EOF_STATIC(baraduke) + MCFG_SCREEN_VBLANK_STATIC(baraduke) MCFG_GFXDECODE(baraduke) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c index 54c7c65fdf5..adbd7cfb751 100644 --- a/src/mame/drivers/bbusters.c +++ b/src/mame/drivers/bbusters.c @@ -664,18 +664,26 @@ static const ym2610_interface ym2610_config = /******************************************************************************/ -static SCREEN_EOF( bbuster ) +static SCREEN_VBLANK( bbuster ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space,0,0,0xffff); - buffer_spriteram16_2_w(space,0,0,0xffff); + buffer_spriteram16_w(space,0,0,0xffff); + buffer_spriteram16_2_w(space,0,0,0xffff); + } } -static SCREEN_EOF( mechatt ) +static SCREEN_VBLANK( mechatt ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space,0,0,0xffff); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + buffer_spriteram16_w(space,0,0,0xffff); + } } static MACHINE_CONFIG_START( bbusters, bbusters_state ) @@ -699,7 +707,7 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state ) 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_EOF_STATIC(bbuster) + MCFG_SCREEN_VBLANK_STATIC(bbuster) MCFG_GFXDECODE(bbusters) MCFG_PALETTE_LENGTH(2048) @@ -736,7 +744,7 @@ static MACHINE_CONFIG_START( mechatt, bbusters_state ) 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_EOF_STATIC(mechatt) + MCFG_SCREEN_VBLANK_STATIC(mechatt) MCFG_GFXDECODE(mechatt) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c index d2bc46b39a3..63e1658f301 100644 --- a/src/mame/drivers/bionicc.c +++ b/src/mame/drivers/bionicc.c @@ -383,7 +383,7 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state ) 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_EOF_STATIC(bionicc) + MCFG_SCREEN_VBLANK_STATIC(bionicc) MCFG_GFXDECODE(bionicc) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c index 4ee814de213..074651e9a74 100644 --- a/src/mame/drivers/bking.c +++ b/src/mame/drivers/bking.c @@ -504,7 +504,7 @@ static MACHINE_CONFIG_START( bking, bking_state ) 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_EOF_STATIC(bking) + MCFG_SCREEN_VBLANK_STATIC(bking) MCFG_GFXDECODE(bking) MCFG_PALETTE_LENGTH(4*8+4*4+4*2+4*2) diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c index 7422dd767da..df021da7878 100644 --- a/src/mame/drivers/blktiger.c +++ b/src/mame/drivers/blktiger.c @@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state ) 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_EOF_STATIC(blktiger) + MCFG_SCREEN_VBLANK_STATIC(blktiger) MCFG_GFXDECODE(blktiger) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/carpolo.c b/src/mame/drivers/carpolo.c index fde42358b65..f7865d5ca6d 100644 --- a/src/mame/drivers/carpolo.c +++ b/src/mame/drivers/carpolo.c @@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( carpolo, carpolo_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 255) MCFG_SCREEN_UPDATE_STATIC(carpolo) - MCFG_SCREEN_EOF_STATIC(carpolo) + MCFG_SCREEN_VBLANK_STATIC(carpolo) MCFG_GFXDECODE(carpolo) MCFG_PALETTE_LENGTH(12*2+2*16+4*2) diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c index 8d1f98c2c46..cd8176fcbe8 100644 --- a/src/mame/drivers/cchance.c +++ b/src/mame/drivers/cchance.c @@ -234,7 +234,7 @@ static MACHINE_CONFIG_START( cchance, cchance_state ) 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_EOF_STATIC(tnzs) + MCFG_SCREEN_VBLANK_STATIC(tnzs) MCFG_PALETTE_LENGTH(512) MCFG_PALETTE_INIT(arknoid2) diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c index d7dea155c7e..653136a3407 100644 --- a/src/mame/drivers/champbas.c +++ b/src/mame/drivers/champbas.c @@ -95,13 +95,17 @@ TODO: * *************************************/ -static SCREEN_EOF( champbas ) +static SCREEN_VBLANK( champbas ) { - champbas_state *state = screen.machine().driver_data<champbas_state>(); - state->m_watchdog_count++; + // rising edge + if (vblank_on) + { + champbas_state *state = screen.machine().driver_data<champbas_state>(); + state->m_watchdog_count++; - if (state->m_watchdog_count == 0x10) - screen.machine().schedule_soft_reset(); + if (state->m_watchdog_count == 0x10) + screen.machine().schedule_soft_reset(); + } } @@ -625,7 +629,7 @@ static MACHINE_CONFIG_START( talbot, champbas_state ) 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_EOF_STATIC(champbas) + MCFG_SCREEN_VBLANK_STATIC(champbas) MCFG_GFXDECODE(talbot) MCFG_PALETTE_LENGTH(0x200) @@ -660,7 +664,7 @@ static MACHINE_CONFIG_START( champbas, champbas_state ) 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_EOF_STATIC(champbas) + MCFG_SCREEN_VBLANK_STATIC(champbas) MCFG_GFXDECODE(champbas) MCFG_PALETTE_LENGTH(0x200) @@ -717,7 +721,7 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state ) 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_EOF_STATIC(champbas) + MCFG_SCREEN_VBLANK_STATIC(champbas) MCFG_GFXDECODE(exctsccr) MCFG_PALETTE_LENGTH(0x200) @@ -768,7 +772,7 @@ static MACHINE_CONFIG_START( exctsccrb, champbas_state ) 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_EOF_STATIC(champbas) + MCFG_SCREEN_VBLANK_STATIC(champbas) MCFG_GFXDECODE(exctsccr) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c index f5133af0ca6..375240cb3cb 100644 --- a/src/mame/drivers/champbwl.c +++ b/src/mame/drivers/champbwl.c @@ -460,9 +460,11 @@ SCREEN_UPDATE_IND16( champbwl ) return 0; } -SCREEN_EOF( champbwl ) +SCREEN_VBLANK( champbwl ) { - screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); + // rising edge + if (vblank_on) + screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); } @@ -487,7 +489,7 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state ) 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_EOF_STATIC(champbwl) + MCFG_SCREEN_VBLANK_STATIC(champbwl) MCFG_GFXDECODE(champbwl) MCFG_PALETTE_LENGTH(512) @@ -517,9 +519,11 @@ static SCREEN_UPDATE_IND16( doraemon ) return 0; } -static SCREEN_EOF( doraemon ) +static SCREEN_VBLANK( doraemon ) { - screen.machine().device<seta001_device>("spritegen")->setac_eof(); + // rising edge + if (vblank_on) + screen.machine().device<seta001_device>("spritegen")->setac_eof(); } static MACHINE_START( doraemon ) @@ -548,7 +552,7 @@ static MACHINE_CONFIG_START( doraemon, tnzs_state ) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1) MCFG_SCREEN_UPDATE_STATIC(doraemon) - MCFG_SCREEN_EOF_STATIC(doraemon) + MCFG_SCREEN_VBLANK_STATIC(doraemon) MCFG_GFXDECODE(champbwl) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c index 2f405f68450..a1c4651a0e5 100644 --- a/src/mame/drivers/commando.c +++ b/src/mame/drivers/commando.c @@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( commando, commando_state ) 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_EOF_STATIC(commando) + MCFG_SCREEN_VBLANK_STATIC(commando) MCFG_GFXDECODE(commando) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index 36e8365f546..8c3f2ef92b7 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -3056,7 +3056,7 @@ static MACHINE_CONFIG_START( cps1_10MHz, cps_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_UPDATE_STATIC(cps1) - MCFG_SCREEN_EOF_STATIC(cps1) + MCFG_SCREEN_VBLANK_STATIC(cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) @@ -3140,7 +3140,7 @@ static MACHINE_CONFIG_START( cpspicb, cps_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_UPDATE_STATIC(cps1) - MCFG_SCREEN_EOF_STATIC(cps1) + MCFG_SCREEN_VBLANK_STATIC(cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) @@ -3214,7 +3214,7 @@ static MACHINE_CONFIG_START( sf2mdt, cps_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_UPDATE_STATIC(cps1) - MCFG_SCREEN_EOF_STATIC(cps1) + MCFG_SCREEN_VBLANK_STATIC(cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) @@ -3298,7 +3298,7 @@ static MACHINE_CONFIG_START( knightsb, cps_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_UPDATE_STATIC(cps1) - MCFG_SCREEN_EOF_STATIC(cps1) + MCFG_SCREEN_VBLANK_STATIC(cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index fdbeb55ce2e..fdf7ac70043 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -1227,7 +1227,7 @@ 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_EOF_STATIC(cps1) + MCFG_SCREEN_VBLANK_STATIC(cps1) /* Measured clocks: V = 59.6376Hz diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c index 82d6b6177ff..294a145fcef 100644 --- a/src/mame/drivers/crshrace.c +++ b/src/mame/drivers/crshrace.c @@ -489,7 +489,7 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state ) 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_EOF_STATIC(crshrace) + MCFG_SCREEN_VBLANK_STATIC(crshrace) MCFG_GFXDECODE(crshrace) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c index 57e59f95234..50be45a3128 100644 --- a/src/mame/drivers/crystal.c +++ b/src/mame/drivers/crystal.c @@ -694,31 +694,35 @@ static SCREEN_UPDATE_IND16( crystal ) return 0; } -static SCREEN_EOF(crystal) +static SCREEN_VBLANK(crystal) { - 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; - - head = GetVidReg(space, 0x82); - tail = GetVidReg(space, 0x80); - while ((head & 0x7ff) != (tail & 0x7ff)) + // rising edge + if (vblank_on) { - UINT16 Packet0 = space->read_word(0x03800000 + head * 64); - if (Packet0 & 0x81) - DoFlip = 1; - head++; - head &= 0x7ff; + 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; + + head = GetVidReg(space, 0x82); + tail = GetVidReg(space, 0x80); + while ((head & 0x7ff) != (tail & 0x7ff)) + { + UINT16 Packet0 = space->read_word(0x03800000 + head * 64); + if (Packet0 & 0x81) + DoFlip = 1; + head++; + head &= 0x7ff; + if (DoFlip) + break; + } + SetVidReg(space, 0x82, head); if (DoFlip) - break; - } - SetVidReg(space, 0x82, head); - if (DoFlip) - { - if (state->m_FlipCount) - state->m_FlipCount--; + { + if (state->m_FlipCount) + state->m_FlipCount--; + } } } @@ -834,7 +838,7 @@ static MACHINE_CONFIG_START( crystal, crystal_state ) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(crystal) - MCFG_SCREEN_EOF_STATIC(crystal) + MCFG_SCREEN_VBLANK_STATIC(crystal) MCFG_VIDEO_VRENDER0_ADD("vr0", vr0video_config) diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c index abf0bd0ce10..4622f88306e 100644 --- a/src/mame/drivers/ddz.c +++ b/src/mame/drivers/ddz.c @@ -39,7 +39,7 @@ static SCREEN_UPDATE_RGB32(ddz) return 0; } -static SCREEN_EOF(ddz) +static SCREEN_VBLANK(ddz) { } @@ -75,7 +75,7 @@ static MACHINE_CONFIG_START( ddz, ddz_state ) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(ddz) - MCFG_SCREEN_EOF_STATIC(ddz) + MCFG_SCREEN_VBLANK_STATIC(ddz) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c index db76b6f2862..01cd7ed5a8e 100644 --- a/src/mame/drivers/dec8.c +++ b/src/mame/drivers/dec8.c @@ -65,10 +65,14 @@ static WRITE8_HANDLER( dec8_mxc06_karn_buffer_spriteram_w) } /* Only used by ghostb, gondo, garyoret, other games can control buffering */ -static SCREEN_EOF( dec8 ) +static SCREEN_VBLANK( dec8 ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0); + } } static READ8_HANDLER( i8751_h_r ) @@ -2075,7 +2079,7 @@ static MACHINE_CONFIG_START( ghostb, dec8_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(ghostb) - MCFG_SCREEN_EOF_STATIC(dec8) + MCFG_SCREEN_VBLANK_STATIC(dec8) MCFG_GFXDECODE(ghostb) MCFG_PALETTE_LENGTH(1024) @@ -2224,7 +2228,7 @@ static MACHINE_CONFIG_START( gondo, dec8_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(gondo) - MCFG_SCREEN_EOF_STATIC(dec8) + MCFG_SCREEN_VBLANK_STATIC(dec8) MCFG_GFXDECODE(gondo) MCFG_PALETTE_LENGTH(1024) @@ -2423,7 +2427,7 @@ static MACHINE_CONFIG_START( garyoret, dec8_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(garyoret) - MCFG_SCREEN_EOF_STATIC(dec8) + MCFG_SCREEN_VBLANK_STATIC(dec8) MCFG_GFXDECODE(gondo) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index df1af48505f..57fbd98b5ac 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -1771,7 +1771,7 @@ static MACHINE_CONFIG_START( captaven, 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(captaven) - MCFG_SCREEN_EOF_STATIC(captaven) + MCFG_SCREEN_VBLANK_STATIC(captaven) MCFG_GFXDECODE(captaven) MCFG_PALETTE_LENGTH(2048) @@ -1983,7 +1983,7 @@ static MACHINE_CONFIG_START( dragngun, dragngun_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(dragngun) - MCFG_SCREEN_EOF_STATIC(dragngun) + MCFG_SCREEN_VBLANK_STATIC(dragngun) MCFG_DECO16IC_ADD("tilegen1", dragngun_deco16ic_tilegen1_intf) MCFG_DECO16IC_ADD("tilegen2", dragngun_deco16ic_tilegen2_intf) @@ -2056,7 +2056,7 @@ static MACHINE_CONFIG_START( lockload, dragngun_state ) 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_EOF_STATIC(dragngun) + MCFG_SCREEN_VBLANK_STATIC(dragngun) MCFG_DECO16IC_ADD("tilegen1", lockload_deco16ic_tilegen1_intf) MCFG_DECO16IC_ADD("tilegen2", lockload_deco16ic_tilegen2_intf) diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c index 66048d7b765..b9dccbf9b03 100644 --- a/src/mame/drivers/deco_mlc.c +++ b/src/mame/drivers/deco_mlc.c @@ -396,7 +396,7 @@ static MACHINE_CONFIG_START( avengrgs, deco_mlc_state ) 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_EOF_STATIC(mlc) + MCFG_SCREEN_VBLANK_STATIC(mlc) MCFG_GFXDECODE(deco_mlc) MCFG_PALETTE_LENGTH(2048) @@ -428,7 +428,7 @@ static MACHINE_CONFIG_START( mlc, deco_mlc_state ) 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_EOF_STATIC(mlc) + MCFG_SCREEN_VBLANK_STATIC(mlc) MCFG_GFXDECODE(deco_mlc) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c index d3220a6a6bb..adf5e4530cf 100644 --- a/src/mame/drivers/djboy.c +++ b/src/mame/drivers/djboy.c @@ -614,7 +614,7 @@ static MACHINE_CONFIG_START( djboy, djboy_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) MCFG_SCREEN_UPDATE_STATIC(djboy) - MCFG_SCREEN_EOF_STATIC(djboy) + MCFG_SCREEN_VBLANK_STATIC(djboy) MCFG_GFXDECODE(djboy) MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c index 04706b140cd..4a03344fb29 100644 --- a/src/mame/drivers/dooyong.c +++ b/src/mame/drivers/dooyong.c @@ -884,7 +884,7 @@ static MACHINE_CONFIG_START( lastday, dooyong_state ) 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_EOF_STATIC(dooyong) + MCFG_SCREEN_VBLANK_STATIC(dooyong) MCFG_GFXDECODE(lastday) MCFG_PALETTE_LENGTH(1024) @@ -926,7 +926,7 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state ) 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_EOF_STATIC(dooyong) + MCFG_SCREEN_VBLANK_STATIC(dooyong) MCFG_GFXDECODE(lastday) MCFG_PALETTE_LENGTH(1024) @@ -959,7 +959,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_state ) 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_EOF_STATIC(dooyong) + MCFG_SCREEN_VBLANK_STATIC(dooyong) MCFG_GFXDECODE(lastday) MCFG_PALETTE_LENGTH(1024) @@ -991,7 +991,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state ) 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_EOF_STATIC(dooyong) + MCFG_SCREEN_VBLANK_STATIC(dooyong) MCFG_GFXDECODE(bluehawk) MCFG_PALETTE_LENGTH(1024) @@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state ) 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_EOF_STATIC(dooyong) + MCFG_SCREEN_VBLANK_STATIC(dooyong) MCFG_GFXDECODE(flytiger) MCFG_PALETTE_LENGTH(1024) @@ -1053,7 +1053,7 @@ static MACHINE_CONFIG_START( primella, dooyong_state ) 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_EOF_STATIC(dooyong) + MCFG_SCREEN_VBLANK_STATIC(dooyong) MCFG_GFXDECODE(primella) MCFG_PALETTE_LENGTH(1024) @@ -1095,7 +1095,7 @@ static MACHINE_CONFIG_START( rshark, dooyong_state ) 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_EOF_STATIC(rshark) + MCFG_SCREEN_VBLANK_STATIC(rshark) MCFG_GFXDECODE(rshark) MCFG_PALETTE_LENGTH(2048) @@ -1125,7 +1125,7 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map 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_EOF_STATIC(rshark) + MCFG_SCREEN_VBLANK_STATIC(rshark) MCFG_GFXDECODE(rshark) MCFG_PALETTE_LENGTH(2048) @@ -1155,7 +1155,7 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state ) 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_EOF_STATIC(rshark) + MCFG_SCREEN_VBLANK_STATIC(rshark) MCFG_GFXDECODE(popbingo) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c index a53309d0ec8..26f8e3dcb7f 100644 --- a/src/mame/drivers/dreamwld.c +++ b/src/mame/drivers/dreamwld.c @@ -272,11 +272,15 @@ static VIDEO_START( dreamwld ) } -SCREEN_EOF( dreamwld ) +SCREEN_VBLANK( dreamwld ) { - 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); + // rising edge + if (vblank_on) + { + 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); + } } @@ -587,7 +591,7 @@ static MACHINE_CONFIG_START( baryon, dreamwld_state ) MCFG_SCREEN_SIZE(512,256) MCFG_SCREEN_VISIBLE_AREA(0, 304-1, 0, 224-1) MCFG_SCREEN_UPDATE_STATIC(dreamwld) - MCFG_SCREEN_EOF_STATIC(dreamwld) + MCFG_SCREEN_VBLANK_STATIC(dreamwld) MCFG_PALETTE_LENGTH(0x1000) MCFG_GFXDECODE(dreamwld) diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c index cd5689fc5e8..30ea28de4df 100644 --- a/src/mame/drivers/dynduke.c +++ b/src/mame/drivers/dynduke.c @@ -295,7 +295,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state ) 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_EOF_STATIC(dynduke) + MCFG_SCREEN_VBLANK_STATIC(dynduke) MCFG_GFXDECODE(dynduke) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c index 85651aca158..67ee1bc2089 100644 --- a/src/mame/drivers/exedexes.c +++ b/src/mame/drivers/exedexes.c @@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state ) 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_EOF_STATIC(exedexes) + MCFG_SCREEN_VBLANK_STATIC(exedexes) MCFG_GFXDECODE(exedexes) MCFG_PALETTE_LENGTH(64*4+64*4+16*16+16*16) diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c index fb65c881f11..532db7becf0 100644 --- a/src/mame/drivers/fcrash.c +++ b/src/mame/drivers/fcrash.c @@ -746,7 +746,7 @@ static MACHINE_CONFIG_START( fcrash, cps_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_UPDATE_STATIC(fcrash) - MCFG_SCREEN_EOF_STATIC(cps1) + MCFG_SCREEN_VBLANK_STATIC(cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(4096) @@ -796,7 +796,7 @@ static MACHINE_CONFIG_START( kodb, cps_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_UPDATE_STATIC(kodb) - MCFG_SCREEN_EOF_STATIC(cps1) + MCFG_SCREEN_VBLANK_STATIC(cps1) MCFG_GFXDECODE(cps1) MCFG_PALETTE_LENGTH(0xc00) diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c index e2f06cf3de1..3235eedacac 100644 --- a/src/mame/drivers/fuukifg3.c +++ b/src/mame/drivers/fuukifg3.c @@ -618,7 +618,7 @@ static MACHINE_CONFIG_START( fuuki32, fuuki32_state ) 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_EOF_STATIC(fuuki32) + MCFG_SCREEN_VBLANK_STATIC(fuuki32) MCFG_GFXDECODE(fuuki32) MCFG_PALETTE_LENGTH(0x4000/2) diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c index d63d854463c..82873bfd15a 100644 --- a/src/mame/drivers/gaelco2.c +++ b/src/mame/drivers/gaelco2.c @@ -169,7 +169,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco2_state ) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) MCFG_SCREEN_UPDATE_STATIC(gaelco2) - MCFG_SCREEN_EOF_STATIC(gaelco2) + MCFG_SCREEN_VBLANK_STATIC(gaelco2) MCFG_GFXDECODE(0x0080000) MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state ) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) MCFG_SCREEN_UPDATE_STATIC(gaelco2) - MCFG_SCREEN_EOF_STATIC(gaelco2) + MCFG_SCREEN_VBLANK_STATIC(gaelco2) MCFG_GFXDECODE(0x0200000) MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ @@ -543,7 +543,7 @@ static MACHINE_CONFIG_START( alighunt, gaelco2_state ) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) MCFG_SCREEN_UPDATE_STATIC(gaelco2) - MCFG_SCREEN_EOF_STATIC(gaelco2) + MCFG_SCREEN_VBLANK_STATIC(gaelco2) MCFG_GFXDECODE(0x0400000) MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ @@ -795,7 +795,7 @@ static MACHINE_CONFIG_START( touchgo, gaelco2_state ) 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_EOF_STATIC(gaelco2) + MCFG_SCREEN_VBLANK_STATIC(gaelco2) MCFG_VIDEO_START(gaelco2_dual) @@ -979,7 +979,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state ) MCFG_SCREEN_SIZE(64*16, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) MCFG_SCREEN_UPDATE_STATIC(gaelco2) - MCFG_SCREEN_EOF_STATIC(gaelco2) + MCFG_SCREEN_VBLANK_STATIC(gaelco2) MCFG_GFXDECODE(0x0400000) MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ @@ -1230,7 +1230,7 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state ) MCFG_SCREEN_SIZE(384, 32*16) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) MCFG_SCREEN_UPDATE_STATIC(gaelco2_right) - MCFG_SCREEN_EOF_STATIC(gaelco2) + MCFG_SCREEN_VBLANK_STATIC(gaelco2) MCFG_VIDEO_START(gaelco2_dual) diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c index a44cb70a1ac..ef23a94352d 100644 --- a/src/mame/drivers/galaga.c +++ b/src/mame/drivers/galaga.c @@ -1689,7 +1689,7 @@ static MACHINE_CONFIG_START( bosco, bosco_state ) 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_EOF_STATIC(bosco) + MCFG_SCREEN_VBLANK_STATIC(bosco) MCFG_GFXDECODE(bosco) MCFG_PALETTE_LENGTH(64*4+64*4+4+64) @@ -1740,7 +1740,7 @@ static MACHINE_CONFIG_START( galaga, galaga_state ) 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_EOF_STATIC(galaga) + MCFG_SCREEN_VBLANK_STATIC(galaga) MCFG_GFXDECODE(galaga) MCFG_PALETTE_LENGTH(64*4+64*4+64) diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c index ce20788dafd..bf59d10f1c3 100644 --- a/src/mame/drivers/galpanic.c +++ b/src/mame/drivers/galpanic.c @@ -125,10 +125,14 @@ The current set of Super Model is an example of type C #include "includes/galpanic.h" #include "includes/galpnipt.h" -static SCREEN_EOF( galpanic ) +static SCREEN_VBLANK( galpanic ) { - device_t *pandora = screen.machine().device("pandora"); - pandora_eof(pandora); + // rising edge + if (vblank_on) + { + device_t *pandora = screen.machine().device("pandora"); + pandora_eof(pandora); + } } static TIMER_DEVICE_CALLBACK( galpanic_scanline ) @@ -577,7 +581,7 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) MCFG_SCREEN_UPDATE_STATIC(galpanic) - MCFG_SCREEN_EOF_STATIC( galpanic ) + MCFG_SCREEN_VBLANK_STATIC( galpanic ) MCFG_GFXDECODE(galpanic) MCFG_PALETTE_LENGTH(1024 + 32768) @@ -615,7 +619,7 @@ static MACHINE_CONFIG_DERIVED( comad, galpanic ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(comad) - MCFG_SCREEN_EOF_NONE() + MCFG_SCREEN_VBLANK_NONE() MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( supmodel, comad ) @@ -629,7 +633,7 @@ static MACHINE_CONFIG_DERIVED( supmodel, comad ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(comad) - MCFG_SCREEN_EOF_NONE() + MCFG_SCREEN_VBLANK_NONE() /* sound hardware */ MCFG_OKIM6295_REPLACE("oki", 1584000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified @@ -647,7 +651,7 @@ static MACHINE_CONFIG_DERIVED( fantsia2, comad ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(comad) - MCFG_SCREEN_EOF_NONE() + MCFG_SCREEN_VBLANK_NONE() MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( galhustl, comad ) @@ -662,7 +666,7 @@ static MACHINE_CONFIG_DERIVED( galhustl, comad ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(comad) - MCFG_SCREEN_EOF_NONE() + MCFG_SCREEN_VBLANK_NONE() /* sound hardware */ MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c index 43c86f63f2b..64ccdd7432c 100644 --- a/src/mame/drivers/gaplus.c +++ b/src/mame/drivers/gaplus.c @@ -591,7 +591,7 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state ) 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_EOF_STATIC(gaplus) + MCFG_SCREEN_VBLANK_STATIC(gaplus) MCFG_GFXDECODE(gaplus) MCFG_PALETTE_LENGTH(64*4+64*8) diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c index 0d28b16f556..d0cf1f8389a 100644 --- a/src/mame/drivers/gng.c +++ b/src/mame/drivers/gng.c @@ -363,7 +363,7 @@ static MACHINE_CONFIG_START( gng, gng_state ) 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_EOF_STATIC(gng) + MCFG_SCREEN_VBLANK_STATIC(gng) MCFG_GFXDECODE(gng) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c index 79c08d30d11..41ea74949dc 100644 --- a/src/mame/drivers/goal92.c +++ b/src/mame/drivers/goal92.c @@ -334,7 +334,7 @@ static MACHINE_CONFIG_START( goal92, goal92_state ) 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_EOF_STATIC(goal92) + MCFG_SCREEN_VBLANK_STATIC(goal92) MCFG_GFXDECODE(goal92) MCFG_PALETTE_LENGTH(128*16) diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c index 766437167f5..93d18712217 100644 --- a/src/mame/drivers/hng64.c +++ b/src/mame/drivers/hng64.c @@ -1746,7 +1746,7 @@ static MACHINE_CONFIG_START( hng64, hng64_state ) MCFG_PALETTE_LENGTH(0x1000) MCFG_VIDEO_START(hng64) - MCFG_SCREEN_EOF_STATIC(hng64) + MCFG_SCREEN_VBLANK_STATIC(hng64) MACHINE_CONFIG_END diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c index ea012e16151..9141fb8f606 100644 --- a/src/mame/drivers/homedata.c +++ b/src/mame/drivers/homedata.c @@ -1274,7 +1274,7 @@ static MACHINE_CONFIG_START( mrokumei, homedata_state ) // 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_EOF_STATIC(homedata) + MCFG_SCREEN_VBLANK_STATIC(homedata) MCFG_GFXDECODE(mrokumei) MCFG_PALETTE_LENGTH(0x8000) @@ -1342,7 +1342,7 @@ static MACHINE_CONFIG_START( reikaids, homedata_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 256-1-16) MCFG_SCREEN_UPDATE_STATIC(reikaids) - MCFG_SCREEN_EOF_STATIC(homedata) + MCFG_SCREEN_VBLANK_STATIC(homedata) MCFG_GFXDECODE(reikaids) MCFG_PALETTE_LENGTH(0x8000) @@ -1393,7 +1393,7 @@ static MACHINE_CONFIG_START( pteacher, homedata_state ) // 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_EOF_STATIC(homedata) + MCFG_SCREEN_VBLANK_STATIC(homedata) MCFG_GFXDECODE(pteacher) MCFG_PALETTE_LENGTH(0x8000) diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c index 18d34ff5639..0a4ba22c572 100644 --- a/src/mame/drivers/hvyunit.c +++ b/src/mame/drivers/hvyunit.c @@ -169,10 +169,14 @@ static SCREEN_UPDATE_IND16( hvyunit ) return 0; } -static SCREEN_EOF( hvyunit ) +static SCREEN_VBLANK( hvyunit ) { - hvyunit_state *state = screen.machine().driver_data<hvyunit_state>(); - pandora_eof(state->m_pandora); + // rising edge + if (vblank_on) + { + hvyunit_state *state = screen.machine().driver_data<hvyunit_state>(); + pandora_eof(state->m_pandora); + } } @@ -672,7 +676,7 @@ static MACHINE_CONFIG_START( hvyunit, hvyunit_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) MCFG_SCREEN_UPDATE_STATIC(hvyunit) - MCFG_SCREEN_EOF_STATIC(hvyunit) + MCFG_SCREEN_VBLANK_STATIC(hvyunit) MCFG_GFXDECODE(hvyunit) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c index 4bf4891a26a..380f7cb7f27 100644 --- a/src/mame/drivers/igs011.c +++ b/src/mame/drivers/igs011.c @@ -2388,11 +2388,15 @@ static READ16_HANDLER( vbowl_unk_r ) return 0xffff; } -static SCREEN_EOF( vbowl ) +static SCREEN_VBLANK( vbowl ) { - igs011_state *state = screen.machine().driver_data<igs011_state>(); - state->m_vbowl_trackball[0] = state->m_vbowl_trackball[1]; - state->m_vbowl_trackball[1] = (input_port_read(screen.machine(), "AN1") << 8) | input_port_read(screen.machine(), "AN0"); + // rising edge + if (vblank_on) + { + igs011_state *state = screen.machine().driver_data<igs011_state>(); + state->m_vbowl_trackball[0] = state->m_vbowl_trackball[1]; + state->m_vbowl_trackball[1] = (input_port_read(screen.machine(), "AN1") << 8) | input_port_read(screen.machine(), "AN0"); + } } static WRITE16_HANDLER( vbowl_pen_hi_w ) @@ -3696,7 +3700,7 @@ static MACHINE_CONFIG_DERIVED( vbowl, igs011_base ) // irq 4 points to an apparently unneeded routine MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_EOF_STATIC(vbowl) // trackball + MCFG_SCREEN_VBLANK_STATIC(vbowl) // trackball // MCFG_GFXDECODE(igs011_hi) MCFG_DEVICE_REMOVE("oki") diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c index 1fd43fb0928..7578ba3cfb8 100644 --- a/src/mame/drivers/ladybug.c +++ b/src/mame/drivers/ladybug.c @@ -828,7 +828,7 @@ static MACHINE_CONFIG_START( sraider, ladybug_state ) 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_EOF_STATIC(sraider) + MCFG_SCREEN_VBLANK_STATIC(sraider) MCFG_GFXDECODE(sraider) MCFG_PALETTE_LENGTH(4*8+4*16+32+2) diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c index 2b393837d2e..dd76d0b5d58 100644 --- a/src/mame/drivers/lastduel.c +++ b/src/mame/drivers/lastduel.c @@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state ) 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_EOF_STATIC(lastduel) + MCFG_SCREEN_VBLANK_STATIC(lastduel) MCFG_GFXDECODE(lastduel) MCFG_PALETTE_LENGTH(1024) @@ -562,7 +562,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state ) 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_EOF_STATIC(lastduel) + MCFG_SCREEN_VBLANK_STATIC(lastduel) MCFG_GFXDECODE(madgear) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c index 8f05698b38a..53911cb6b88 100644 --- a/src/mame/drivers/lemmings.c +++ b/src/mame/drivers/lemmings.c @@ -283,7 +283,7 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state ) 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_EOF_STATIC(lemmings) + MCFG_SCREEN_VBLANK_STATIC(lemmings) MCFG_GFXDECODE(lemmings) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c index 373c2876738..c7340d1f08e 100644 --- a/src/mame/drivers/lockon.c +++ b/src/mame/drivers/lockon.c @@ -543,7 +543,7 @@ 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_EOF_STATIC(lockon) + MCFG_SCREEN_VBLANK_STATIC(lockon) MCFG_GFXDECODE(lockon) MCFG_PALETTE_INIT(lockon) diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c index f05a47141c9..85686123f34 100644 --- a/src/mame/drivers/lwings.c +++ b/src/mame/drivers/lwings.c @@ -809,7 +809,7 @@ static MACHINE_CONFIG_START( lwings, lwings_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(lwings) - MCFG_SCREEN_EOF_STATIC(lwings) + MCFG_SCREEN_VBLANK_STATIC(lwings) MCFG_GFXDECODE(lwings) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c index 68067b8598b..7fdf74ef3a4 100644 --- a/src/mame/drivers/macrossp.c +++ b/src/mame/drivers/macrossp.c @@ -645,7 +645,7 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state ) 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_EOF_STATIC(macrossp) + MCFG_SCREEN_VBLANK_STATIC(macrossp) MCFG_GFXDECODE(macrossp) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c index 021e98ab9a9..0858651b2ab 100644 --- a/src/mame/drivers/maygayv1.c +++ b/src/mame/drivers/maygayv1.c @@ -411,33 +411,37 @@ static SCREEN_UPDATE_IND16( maygayv1 ) return 0; } -static SCREEN_EOF( maygayv1 ) +static SCREEN_VBLANK( maygayv1 ) { - maygayv1_state *state = screen.machine().driver_data<maygayv1_state>(); - i82716_t &i82716 = state->m_i82716; - // UCF - if (VREG(VCR0) & VCR0_UCF) - { - int i; - - for (i = 0; i < 16; ++i) - VREG(i) = i82716.dram[i]; - } - else + // rising edge + if (vblank_on) { - VREG(VCR0) = i82716.dram[VCR0]; - VREG(ATBA) = i82716.dram[ATBA]; - } + maygayv1_state *state = screen.machine().driver_data<maygayv1_state>(); + i82716_t &i82716 = state->m_i82716; + // UCF + if (VREG(VCR0) & VCR0_UCF) + { + int i; - if (!(VREG(VCR0) & VCR0_DEI)) - { - int i; - UINT16 *palbase = &i82716.dram[VREG(CTBA)]; + for (i = 0; i < 16; ++i) + VREG(i) = i82716.dram[i]; + } + else + { + VREG(VCR0) = i82716.dram[VCR0]; + VREG(ATBA) = i82716.dram[ATBA]; + } - for (i = 0; i < 16; ++i) + if (!(VREG(VCR0) & VCR0_DEI)) { - UINT16 entry = *palbase++; - palette_set_color_rgb(screen.machine(), entry & 0xf, pal4bit(entry >> 12), pal4bit(entry >> 8), pal4bit(entry >> 4)); + int i; + UINT16 *palbase = &i82716.dram[VREG(CTBA)]; + + for (i = 0; i < 16; ++i) + { + UINT16 entry = *palbase++; + palette_set_color_rgb(screen.machine(), entry & 0xf, pal4bit(entry >> 12), pal4bit(entry >> 8), pal4bit(entry >> 4)); + } } } } @@ -1047,7 +1051,7 @@ static MACHINE_CONFIG_START( maygayv1, maygayv1_state ) MCFG_SCREEN_SIZE(640, 300) MCFG_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 300 - 1) MCFG_SCREEN_UPDATE_STATIC(maygayv1) - MCFG_SCREEN_EOF_STATIC(maygayv1) + MCFG_SCREEN_VBLANK_STATIC(maygayv1) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c index b5d58684250..a0e7584963b 100644 --- a/src/mame/drivers/mcatadv.c +++ b/src/mame/drivers/mcatadv.c @@ -461,7 +461,7 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state ) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) MCFG_SCREEN_UPDATE_STATIC(mcatadv) - MCFG_SCREEN_EOF_STATIC(mcatadv) // Buffer Spriteram + MCFG_SCREEN_VBLANK_STATIC(mcatadv) // Buffer Spriteram MCFG_GFXDECODE(mcatadv) MCFG_PALETTE_LENGTH(0x2000/2) diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c index 0f5578a5dde..1017ad3f4c2 100644 --- a/src/mame/drivers/megaplay.c +++ b/src/mame/drivers/megaplay.c @@ -627,7 +627,7 @@ static SCREEN_UPDATE_RGB32(megplay) } -//extern SCREEN_EOF(megadriv); +//extern SCREEN_VBLANK(megadriv); static MACHINE_RESET( megaplay ) { mplay_state *state = machine.driver_data<mplay_state>(); @@ -638,10 +638,10 @@ static MACHINE_RESET( megaplay ) MACHINE_RESET_CALL(megatech_bios); } -static SCREEN_EOF( megaplay ) +static SCREEN_VBLANK( megaplay ) { - SCREEN_EOF_CALL(megadriv); - SCREEN_EOF_CALL(megatech_bios); + SCREEN_VBLANK_CALL(megadriv); + SCREEN_VBLANK_CALL(megatech_bios); } static MACHINE_CONFIG_START( megaplay, mplay_state ) @@ -666,7 +666,7 @@ static MACHINE_CONFIG_START( megaplay, mplay_state ) MCFG_VIDEO_START(megplay) MCFG_SCREEN_MODIFY("megadriv") MCFG_SCREEN_UPDATE_STATIC(megplay) - MCFG_SCREEN_EOF_STATIC( megaplay ) + MCFG_SCREEN_VBLANK_STATIC( megaplay ) MACHINE_CONFIG_END diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c index 8d3fc9ec9e2..849b65a1c2a 100644 --- a/src/mame/drivers/megasys1.c +++ b/src/mame/drivers/megasys1.c @@ -1480,7 +1480,7 @@ static MACHINE_CONFIG_START( system_A, megasys1_state ) 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_EOF_STATIC(megasys1) + MCFG_SCREEN_VBLANK_STATIC(megasys1) MCFG_GFXDECODE(ABC) MCFG_PALETTE_LENGTH(1024) @@ -1540,7 +1540,7 @@ static MACHINE_CONFIG_START( system_Bbl, megasys1_state ) 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_EOF_STATIC(megasys1) + MCFG_SCREEN_VBLANK_STATIC(megasys1) MCFG_GFXDECODE(ABC) MCFG_PALETTE_LENGTH(1024) @@ -1612,7 +1612,7 @@ static MACHINE_CONFIG_START( system_D, megasys1_state ) 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_EOF_STATIC(megasys1) + MCFG_SCREEN_VBLANK_STATIC(megasys1) MCFG_GFXDECODE(ABC) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c index 6c33181c76b..bea38d1d58a 100644 --- a/src/mame/drivers/megatech.c +++ b/src/mame/drivers/megatech.c @@ -454,13 +454,13 @@ static SCREEN_UPDATE_RGB32(mtnew) return 0; } -static SCREEN_EOF(mtnew) +static SCREEN_VBLANK(mtnew) { mtech_state *state = screen.machine().driver_data<mtech_state>(); if (!state->m_current_game_is_sms) - SCREEN_EOF_CALL(megadriv); + SCREEN_VBLANK_CALL(megadriv); else - SCREEN_EOF_CALL(megatech_md_sms); + SCREEN_VBLANK_CALL(megatech_md_sms); } static MACHINE_RESET(mtnew) @@ -494,11 +494,11 @@ static MACHINE_CONFIG_START( megatech, mtech_state ) MCFG_SCREEN_SIZE(342,262) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) MCFG_SCREEN_UPDATE_STATIC(megatech_bios) - MCFG_SCREEN_EOF_STATIC(megatech_bios) + MCFG_SCREEN_VBLANK_STATIC(megatech_bios) MCFG_SCREEN_MODIFY("megadriv") MCFG_SCREEN_UPDATE_STATIC(mtnew) - MCFG_SCREEN_EOF_STATIC(mtnew) + MCFG_SCREEN_VBLANK_STATIC(mtnew) /* sound hardware */ MCFG_SOUND_ADD("sn2", SN76496, MASTER_CLOCK/15) diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c index 8abd7e3cd8c..7b73071465d 100644 --- a/src/mame/drivers/mermaid.c +++ b/src/mame/drivers/mermaid.c @@ -472,7 +472,7 @@ static MACHINE_CONFIG_START( mermaid, mermaid_state ) 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_EOF_STATIC(mermaid) + MCFG_SCREEN_VBLANK_STATIC(mermaid) MCFG_GFXDECODE(mermaid) MCFG_PALETTE_LENGTH(4*16+2*2) diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c index d573e4e1c76..6c9a09b0525 100644 --- a/src/mame/drivers/mirage.c +++ b/src/mame/drivers/mirage.c @@ -93,10 +93,14 @@ static SCREEN_UPDATE_RGB32( mirage ) return 0; } -static SCREEN_EOF( mirage ) +static SCREEN_VBLANK( mirage ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space,0,0,0xffff); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + buffer_spriteram16_w(space,0,0,0xffff); + } } @@ -333,7 +337,7 @@ static MACHINE_CONFIG_START( mirage, mirage_state ) 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_EOF_STATIC(mirage) + MCFG_SCREEN_VBLANK_STATIC(mirage) MCFG_VIDEO_START(mirage) diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c index a55860067de..d4eec80d09c 100644 --- a/src/mame/drivers/model1.c +++ b/src/mame/drivers/model1.c @@ -1522,7 +1522,7 @@ 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_EOF_STATIC(model1) + MCFG_SCREEN_VBLANK_STATIC(model1) MCFG_PALETTE_LENGTH(8192) @@ -1567,7 +1567,7 @@ 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_EOF_STATIC(model1) + MCFG_SCREEN_VBLANK_STATIC(model1) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c index 7518b41d946..0d4e609cb5b 100644 --- a/src/mame/drivers/mw8080bw.c +++ b/src/mame/drivers/mw8080bw.c @@ -2374,7 +2374,7 @@ static MACHINE_CONFIG_DERIVED( phantom2, mw8080bw_root ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(phantom2) - MCFG_SCREEN_EOF_STATIC(phantom2) + MCFG_SCREEN_VBLANK_STATIC(phantom2) /* add shifter */ MCFG_MB14241_ADD("mb14241") diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c index 50b60771a7c..0cef611a768 100644 --- a/src/mame/drivers/n8080.c +++ b/src/mame/drivers/n8080.c @@ -634,7 +634,7 @@ static MACHINE_CONFIG_START( helifire, n8080_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239) MCFG_SCREEN_UPDATE_STATIC(helifire) - MCFG_SCREEN_EOF_STATIC(helifire) + MCFG_SCREEN_VBLANK_STATIC(helifire) MCFG_PALETTE_LENGTH(8 + 0x400) MCFG_PALETTE_INIT(helifire) diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c index ed239c9ee9f..1d5004c7953 100644 --- a/src/mame/drivers/namcos1.c +++ b/src/mame/drivers/namcos1.c @@ -1116,7 +1116,7 @@ static MACHINE_CONFIG_START( ns1, namcos1_state ) 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_EOF_STATIC(namcos1) + MCFG_SCREEN_VBLANK_STATIC(namcos1) MCFG_GFXDECODE(namcos1) MCFG_PALETTE_LENGTH(0x2000) diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c index 645bd4b4027..d42c6dd90c9 100644 --- a/src/mame/drivers/namcos86.c +++ b/src/mame/drivers/namcos86.c @@ -1016,7 +1016,7 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state ) 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_EOF_STATIC(namcos86) + MCFG_SCREEN_VBLANK_STATIC(namcos86) MCFG_GFXDECODE(namcos86) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c index a56ac586ae3..a3f0f1788b8 100644 --- a/src/mame/drivers/ninjakd2.c +++ b/src/mame/drivers/ninjakd2.c @@ -956,7 +956,7 @@ static MACHINE_CONFIG_START( ninjakd2, ninjakd2_state ) 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_EOF_STATIC(ninjakd2) + MCFG_SCREEN_VBLANK_STATIC(ninjakd2) MCFG_GFXDECODE(ninjakd2) MCFG_PALETTE_LENGTH(0x300) diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c index eb7f5144bf0..c32a4420811 100644 --- a/src/mame/drivers/nmk16.c +++ b/src/mame/drivers/nmk16.c @@ -3570,7 +3570,7 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(tharrier) MCFG_PALETTE_LENGTH(512) @@ -3613,7 +3613,7 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(tharrier) MCFG_PALETTE_LENGTH(512) @@ -3654,7 +3654,7 @@ static MACHINE_CONFIG_START( mustang, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3697,7 +3697,7 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3729,7 +3729,7 @@ static MACHINE_CONFIG_START( bioship, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(bioship) MCFG_PALETTE_LENGTH(1024) @@ -3770,7 +3770,7 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3814,7 +3814,7 @@ static MACHINE_CONFIG_START( vandykeb, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3845,7 +3845,7 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3890,7 +3890,7 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden sou 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3919,7 +3919,7 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_STATIC(tdragon) - MCFG_SCREEN_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3962,7 +3962,7 @@ static MACHINE_CONFIG_START( ssmissin, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -3994,7 +3994,7 @@ static MACHINE_CONFIG_START( strahl, nmk16_state ) 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_EOF_STATIC(strahl) + MCFG_SCREEN_VBLANK_STATIC(strahl) MCFG_GFXDECODE(strahl) MCFG_PALETTE_LENGTH(1024) @@ -4035,7 +4035,7 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_STATIC(hachamf) - MCFG_SCREEN_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -4077,7 +4077,7 @@ static MACHINE_CONFIG_START( macross, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -4118,7 +4118,7 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -4159,7 +4159,7 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) @@ -4202,7 +4202,7 @@ static MACHINE_CONFIG_START( macross2, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) @@ -4244,7 +4244,7 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) @@ -4285,7 +4285,7 @@ static MACHINE_CONFIG_START( raphero, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross2) MCFG_PALETTE_LENGTH(1024) @@ -4323,7 +4323,7 @@ static MACHINE_CONFIG_START( bjtwin, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(bjtwin) MCFG_PALETTE_LENGTH(1024) @@ -4834,7 +4834,7 @@ static MACHINE_CONFIG_START( stagger1, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(stagger1) MCFG_PALETTE_LENGTH(768) @@ -4918,7 +4918,7 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(grdnstrm) MCFG_PALETTE_LENGTH(768) @@ -4953,7 +4953,7 @@ static MACHINE_CONFIG_START( twinactn, nmk16_state ) 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_EOF_STATIC(nmk) + MCFG_SCREEN_VBLANK_STATIC(nmk) MCFG_GFXDECODE(macross) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c index e2284a2ed33..43b676ec583 100644 --- a/src/mame/drivers/othldrby.c +++ b/src/mame/drivers/othldrby.c @@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( othldrby, othldrby_state ) 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_EOF_STATIC(othldrby) + MCFG_SCREEN_VBLANK_STATIC(othldrby) MCFG_GFXDECODE(othldrby) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index b98229ea761..6fa60269ab1 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -1154,7 +1154,7 @@ MACHINE_CONFIG_FRAGMENT( pgmbase ) 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_EOF_STATIC(pgm) + MCFG_SCREEN_VBLANK_STATIC(pgm) MCFG_GFXDECODE(pgm) MCFG_PALETTE_LENGTH(0x1200/2) @@ -1325,7 +1325,7 @@ static MACHINE_CONFIG_START( cavepgm, cavepgm_state ) 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_EOF_STATIC(pgm) + MCFG_SCREEN_VBLANK_STATIC(pgm) MCFG_GFXDECODE(pgm) MCFG_PALETTE_LENGTH(0x1200/2) diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c index afa426f05ac..c7b257af3e8 100644 --- a/src/mame/drivers/pgm2.c +++ b/src/mame/drivers/pgm2.c @@ -38,7 +38,7 @@ static SCREEN_UPDATE_IND16(pgm2) return 0; } -static SCREEN_EOF(pgm2) +static SCREEN_VBLANK(pgm2) { } @@ -130,7 +130,7 @@ static MACHINE_CONFIG_START( pgm2, pgm2_state ) 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_EOF_STATIC(pgm2) + MCFG_SCREEN_VBLANK_STATIC(pgm2) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/photon2.c b/src/mame/drivers/photon2.c index 25957b1fd60..73415b7a165 100644 --- a/src/mame/drivers/photon2.c +++ b/src/mame/drivers/photon2.c @@ -100,15 +100,19 @@ 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_EOF( spectrum ) +static SCREEN_VBLANK( spectrum ) { - photon2_state *state = screen.machine().driver_data<photon2_state>(); - state->m_spectrum_frame_number++; - if (state->m_spectrum_frame_number >= 25) - { - state->m_spectrum_frame_number = 0; - state->m_spectrum_flash_invert = !state->m_spectrum_flash_invert; - } + // rising edge + if (vblank_on) + { + photon2_state *state = screen.machine().driver_data<photon2_state>(); + state->m_spectrum_frame_number++; + if (state->m_spectrum_frame_number >= 25) + { + state->m_spectrum_frame_number = 0; + state->m_spectrum_flash_invert = !state->m_spectrum_flash_invert; + } + } } INLINE void spectrum_plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color) @@ -325,7 +329,7 @@ static MACHINE_CONFIG_START( photon2, photon2_state ) 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_EOF_STATIC( spectrum ) + MCFG_SCREEN_VBLANK_STATIC( spectrum ) MCFG_PALETTE_LENGTH(16) MCFG_PALETTE_INIT( spectrum ) diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c index 752007903b9..afcf0bdba7a 100644 --- a/src/mame/drivers/psattack.c +++ b/src/mame/drivers/psattack.c @@ -124,7 +124,7 @@ static SCREEN_UPDATE_IND16(psattack) return 0; } -static SCREEN_EOF(psattack) +static SCREEN_VBLANK(psattack) { } @@ -184,7 +184,7 @@ static MACHINE_CONFIG_START( psattack, psattack_state ) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(psattack) - MCFG_SCREEN_EOF_STATIC(psattack) + MCFG_SCREEN_VBLANK_STATIC(psattack) MCFG_VIDEO_START(psattack) diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index 121ac4ad574..042ad8e2c3e 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -1081,7 +1081,7 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state ) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) MCFG_SCREEN_UPDATE_STATIC(psikyo) - MCFG_SCREEN_EOF_STATIC(psikyo) + MCFG_SCREEN_VBLANK_STATIC(psikyo) MCFG_GFXDECODE(psikyo) MCFG_PALETTE_LENGTH(0x1000) @@ -1132,7 +1132,7 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state ) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) MCFG_SCREEN_UPDATE_STATIC(psikyo) - MCFG_SCREEN_EOF_STATIC(psikyo) + MCFG_SCREEN_VBLANK_STATIC(psikyo) MCFG_GFXDECODE(psikyo) MCFG_PALETTE_LENGTH(0x1000) @@ -1167,7 +1167,7 @@ static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based o MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) MCFG_SCREEN_UPDATE_STATIC(psikyo_bootleg) - MCFG_SCREEN_EOF_STATIC(psikyo) + MCFG_SCREEN_VBLANK_STATIC(psikyo) MCFG_GFXDECODE(psikyo) MCFG_PALETTE_LENGTH(0x1000) @@ -1223,7 +1223,7 @@ static MACHINE_CONFIG_START( s1945, psikyo_state ) MCFG_SCREEN_SIZE(320, 256) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) MCFG_SCREEN_UPDATE_STATIC(psikyo) - MCFG_SCREEN_EOF_STATIC(psikyo) + MCFG_SCREEN_VBLANK_STATIC(psikyo) MCFG_GFXDECODE(psikyo) MCFG_PALETTE_LENGTH(0x1000) diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c index fe011efef5d..f9cd2086848 100644 --- a/src/mame/drivers/psikyosh.c +++ b/src/mame/drivers/psikyosh.c @@ -827,7 +827,7 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state ) 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_EOF_STATIC(psikyosh) + MCFG_SCREEN_VBLANK_STATIC(psikyosh) MCFG_GFXDECODE(psikyosh) MCFG_PALETTE_LENGTH(0x5000/4) diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c index 1c81c884cc6..d444312ea84 100644 --- a/src/mame/drivers/raiden.c +++ b/src/mame/drivers/raiden.c @@ -242,10 +242,14 @@ static INTERRUPT_GEN( raiden_interrupt ) device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4); /* VBL */ } -static SCREEN_EOF( raiden ) +static SCREEN_VBLANK( raiden ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space,0,0,0xffff); /* Could be a memory location instead */ + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + buffer_spriteram16_w(space,0,0,0xffff); /* Could be a memory location instead */ + } } static MACHINE_CONFIG_START( raiden, raiden_state ) @@ -274,7 +278,7 @@ static MACHINE_CONFIG_START( raiden, raiden_state ) 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_EOF_STATIC(raiden) + MCFG_SCREEN_VBLANK_STATIC(raiden) MCFG_GFXDECODE(raiden) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c index b972030eb6d..5d75c95b751 100644 --- a/src/mame/drivers/redclash.c +++ b/src/mame/drivers/redclash.c @@ -370,7 +370,7 @@ static MACHINE_CONFIG_START( zerohour, ladybug_state ) 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_EOF_STATIC(redclash) + MCFG_SCREEN_VBLANK_STATIC(redclash) MCFG_GFXDECODE(redclash) MCFG_PALETTE_LENGTH(4*8+4*16+32) @@ -398,7 +398,7 @@ static MACHINE_CONFIG_START( redclash, ladybug_state ) 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_EOF_STATIC(redclash) + MCFG_SCREEN_VBLANK_STATIC(redclash) MCFG_GFXDECODE(redclash) MCFG_PALETTE_LENGTH(4*8+4*16+32) diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c index 59c24baa0cb..48b29343b2a 100644 --- a/src/mame/drivers/sandscrp.c +++ b/src/mame/drivers/sandscrp.c @@ -134,13 +134,17 @@ static INTERRUPT_GEN( sandscrp_interrupt ) } -static SCREEN_EOF( sandscrp ) +static SCREEN_VBLANK( sandscrp ) { - sandscrp_state *state = screen.machine().driver_data<sandscrp_state>(); - device_t *pandora = screen.machine().device("pandora"); - state->m_sprite_irq = 1; - update_irq_state(screen.machine()); - pandora_eof(pandora); + // rising edge + if (vblank_on) + { + sandscrp_state *state = screen.machine().driver_data<sandscrp_state>(); + device_t *pandora = screen.machine().device("pandora"); + state->m_sprite_irq = 1; + update_irq_state(screen.machine()); + pandora_eof(pandora); + } } /* Reads the cause of the interrupt */ @@ -483,7 +487,7 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) MCFG_SCREEN_UPDATE_STATIC(sandscrp) - MCFG_SCREEN_EOF_STATIC(sandscrp) + MCFG_SCREEN_VBLANK_STATIC(sandscrp) MCFG_GFXDECODE(sandscrp) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index daf2f3b80fe..4c05380a34e 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -1297,7 +1297,7 @@ static MACHINE_CONFIG_START( segac, segac2_state ) 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_EOF_STATIC( megadriv ) + MCFG_SCREEN_VBLANK_STATIC( megadriv ) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index 8788cb5feaf..cfca09a69b7 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -1545,10 +1545,14 @@ static READ8_DEVICE_HANDLER( dsw2_r ) Sprites Buffering */ -static SCREEN_EOF( seta_buffer_sprites ) +static SCREEN_VBLANK( seta_buffer_sprites ) { - //seta_state *state = machine.driver_data<seta_state>(); - screen.machine().device<seta001_device>("spritegen")->setac_eof(); + // rising edge + if (vblank_on) + { + //seta_state *state = machine.driver_data<seta_state>(); + screen.machine().device<seta001_device>("spritegen")->setac_eof(); + } } @@ -7665,7 +7669,7 @@ static MACHINE_CONFIG_START( blandia, seta_state ) 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_EOF_STATIC(seta_buffer_sprites) /* Blandia uses sprite buffering */ + MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* Blandia uses sprite buffering */ MCFG_GFXDECODE(blandia) MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ @@ -7698,7 +7702,7 @@ static MACHINE_CONFIG_START( blandiap, seta_state ) 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_EOF_STATIC(seta_buffer_sprites) /* Blandia uses sprite buffering */ + MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* Blandia uses sprite buffering */ MCFG_GFXDECODE(blandia) MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ @@ -7813,7 +7817,7 @@ static MACHINE_CONFIG_START( drgnunit, seta_state ) 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_EOF_STATIC(seta_buffer_sprites) /* qzkklogy uses sprite buffering */ + MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* qzkklogy uses sprite buffering */ MCFG_GFXDECODE(downtown) MCFG_PALETTE_LENGTH(512) @@ -7848,7 +7852,7 @@ static MACHINE_CONFIG_START( qzkklgy2, seta_state ) 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_EOF_STATIC(seta_buffer_sprites) /* qzkklogy uses sprite buffering */ + MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* qzkklogy uses sprite buffering */ MCFG_GFXDECODE(qzkklgy2) MCFG_PALETTE_LENGTH(512) @@ -7899,7 +7903,7 @@ static MACHINE_CONFIG_START( setaroul, seta_state ) 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_EOF_STATIC(setaroul) /* qzkklogy uses sprite buffering */ + MCFG_SCREEN_VBLANK_STATIC(setaroul) /* qzkklogy uses sprite buffering */ MCFG_GFXDECODE(setaroul) MCFG_PALETTE_LENGTH(512) @@ -8352,7 +8356,7 @@ static MACHINE_CONFIG_START( msgundam, seta_state ) 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_EOF_STATIC(seta_buffer_sprites) /* msgundam uses sprite buffering */ + MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* msgundam uses sprite buffering */ MCFG_GFXDECODE(msgundam) MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index 7b849e48c60..c873e545ff7 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -2032,7 +2032,7 @@ static MACHINE_CONFIG_START( seta2, seta2_state ) MCFG_SCREEN_SIZE(0x200, 0x200) MCFG_SCREEN_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1) MCFG_SCREEN_UPDATE_STATIC(seta2) - MCFG_SCREEN_EOF_STATIC(seta2) + MCFG_SCREEN_VBLANK_STATIC(seta2) MCFG_GFXDECODE(seta2) MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity @@ -2228,7 +2228,7 @@ static MACHINE_CONFIG_START( funcube, seta2_state ) MCFG_SCREEN_SIZE(0x200, 0x200) MCFG_SCREEN_VISIBLE_AREA(0x0, 0x140-1, 0x80, 0x170-1) MCFG_SCREEN_UPDATE_STATIC(seta2) - MCFG_SCREEN_EOF_STATIC(seta2) + MCFG_SCREEN_VBLANK_STATIC(seta2) MCFG_GFXDECODE(funcube) MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity @@ -2264,7 +2264,7 @@ static MACHINE_CONFIG_START( namcostr, seta2_state ) MCFG_SCREEN_SIZE(0x200, 0x200) MCFG_SCREEN_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1) MCFG_SCREEN_UPDATE_STATIC(seta2) - MCFG_SCREEN_EOF_STATIC(seta2) + MCFG_SCREEN_VBLANK_STATIC(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/shadfrce.c b/src/mame/drivers/shadfrce.c index ed2a3154998..4db1acf7f10 100644 --- a/src/mame/drivers/shadfrce.c +++ b/src/mame/drivers/shadfrce.c @@ -568,7 +568,7 @@ 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_EOF_STATIC(shadfrce) + MCFG_SCREEN_VBLANK_STATIC(shadfrce) MCFG_GFXDECODE(shadfrce) MCFG_PALETTE_LENGTH(0x4000) diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c index b4540d1f7bc..6e89dff4610 100644 --- a/src/mame/drivers/sidearms.c +++ b/src/mame/drivers/sidearms.c @@ -671,7 +671,7 @@ static MACHINE_CONFIG_START( sidearms, 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_UPDATE_STATIC(sidearms) - MCFG_SCREEN_EOF_STATIC(sidearms) + MCFG_SCREEN_VBLANK_STATIC(sidearms) MCFG_GFXDECODE(sidearms) MCFG_PALETTE_LENGTH(1024) @@ -714,7 +714,7 @@ static MACHINE_CONFIG_START( turtship, 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_EOF_STATIC(sidearms) + MCFG_SCREEN_VBLANK_STATIC(sidearms) MCFG_SCREEN_UPDATE_STATIC(sidearms) MCFG_GFXDECODE(turtship) @@ -762,7 +762,7 @@ static MACHINE_CONFIG_START( whizz, 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_UPDATE_STATIC(sidearms) - MCFG_SCREEN_EOF_STATIC(sidearms) + MCFG_SCREEN_VBLANK_STATIC(sidearms) MCFG_GFXDECODE(turtship) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index 530caa851f0..d83927023e9 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -638,10 +638,14 @@ static WRITE8_HANDLER( vblank_w ) state->m_vblank = (state->m_vblank & ~0x03) | (data & 0x03); } -static SCREEN_EOF( sammymdl ) +static SCREEN_VBLANK( sammymdl ) { - sigmab98_state *state = screen.machine().driver_data<sigmab98_state>(); - state->m_vblank &= ~0x01; + // rising edge + if (vblank_on) + { + sigmab98_state *state = screen.machine().driver_data<sigmab98_state>(); + state->m_vblank &= ~0x01; + } } static void show_3_outputs(sigmab98_state *state) @@ -1741,7 +1745,7 @@ static MACHINE_CONFIG_START( sammymdl, sigmab98_state ) MCFG_SCREEN_SIZE(0x140, 0x100) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xf0-1) MCFG_SCREEN_UPDATE_STATIC(sigmab98) - MCFG_SCREEN_EOF_STATIC(sammymdl) + MCFG_SCREEN_VBLANK_STATIC(sammymdl) MCFG_GFXDECODE(sigmab98) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c index ec315575e47..4e349537bb0 100644 --- a/src/mame/drivers/slapfght.c +++ b/src/mame/drivers/slapfght.c @@ -734,10 +734,14 @@ static const ay8910_interface ay8910_interface_2 = DEVCB_NULL }; -static SCREEN_EOF( perfrman ) +static SCREEN_VBLANK( perfrman ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space, 0, 0); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + buffer_spriteram_w(space, 0, 0); + } } static INTERRUPT_GEN( vblank_irq ) @@ -774,7 +778,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state ) 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_EOF_STATIC(perfrman) + MCFG_SCREEN_VBLANK_STATIC(perfrman) MCFG_GFXDECODE(perfrman) MCFG_PALETTE_LENGTH(256) @@ -820,7 +824,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state ) 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_EOF_STATIC(perfrman) + MCFG_SCREEN_VBLANK_STATIC(perfrman) MCFG_GFXDECODE(slapfght) MCFG_PALETTE_LENGTH(256) @@ -868,7 +872,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state ) 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_EOF_STATIC(perfrman) + MCFG_SCREEN_VBLANK_STATIC(perfrman) MCFG_GFXDECODE(slapfght) MCFG_PALETTE_LENGTH(256) @@ -917,7 +921,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state ) 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_EOF_STATIC(perfrman) + MCFG_SCREEN_VBLANK_STATIC(perfrman) MCFG_GFXDECODE(slapfght) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c index 9bf0675e52f..d785ce036d9 100644 --- a/src/mame/drivers/slapshot.c +++ b/src/mame/drivers/slapshot.c @@ -569,7 +569,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state ) 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_EOF_STATIC(taito_no_buffer) + MCFG_SCREEN_VBLANK_STATIC(taito_no_buffer) MCFG_GFXDECODE(slapshot) MCFG_PALETTE_LENGTH(8192) @@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state ) 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_EOF_STATIC(taito_no_buffer) + MCFG_SCREEN_VBLANK_STATIC(taito_no_buffer) MCFG_GFXDECODE(slapshot) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c index 01c54d9d1ed..ef27f21253f 100644 --- a/src/mame/drivers/snowbros.c +++ b/src/mame/drivers/snowbros.c @@ -92,10 +92,14 @@ static SCREEN_UPDATE_IND16( snowbros ) } -static SCREEN_EOF( snowbros ) +static SCREEN_VBLANK( snowbros ) { - device_t *pandora = screen.machine().device("pandora"); - pandora_eof(pandora); + // rising edge + if (vblank_on) + { + device_t *pandora = screen.machine().device("pandora"); + pandora_eof(pandora); + } } @@ -1485,7 +1489,7 @@ static MACHINE_CONFIG_START( snowbros, snowbros_state ) 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_EOF_STATIC(snowbros) + MCFG_SCREEN_VBLANK_STATIC(snowbros) MCFG_GFXDECODE(snowbros) MCFG_PALETTE_LENGTH(256) @@ -1514,7 +1518,7 @@ static MACHINE_CONFIG_DERIVED( wintbob, snowbros ) MCFG_GFXDECODE(wb) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(wintbob) - MCFG_SCREEN_EOF_NONE() + MCFG_SCREEN_VBLANK_NONE() MACHINE_CONFIG_END diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c index 8476827f404..e6fe13cc1cf 100644 --- a/src/mame/drivers/sprint2.c +++ b/src/mame/drivers/sprint2.c @@ -516,7 +516,7 @@ static MACHINE_CONFIG_START( sprint2, sprint2_state ) MCFG_SCREEN_SIZE(512, 262) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 223) MCFG_SCREEN_UPDATE_STATIC(sprint2) - MCFG_SCREEN_EOF_STATIC(sprint2) + MCFG_SCREEN_VBLANK_STATIC(sprint2) MCFG_GFXDECODE(sprint2) MCFG_PALETTE_LENGTH(12) diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c index 01fbebbe3de..29ea2ff50bd 100644 --- a/src/mame/drivers/sprint4.c +++ b/src/mame/drivers/sprint4.c @@ -408,7 +408,7 @@ static MACHINE_CONFIG_START( sprint4, sprint4_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, 256, VTOTAL, 0, 224) MCFG_SCREEN_UPDATE_STATIC(sprint4) - MCFG_SCREEN_EOF_STATIC(sprint4) + MCFG_SCREEN_VBLANK_STATIC(sprint4) MCFG_GFXDECODE(sprint4) MCFG_PALETTE_LENGTH(10) diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c index b619ea2aa76..0af43faa345 100644 --- a/src/mame/drivers/sprint8.c +++ b/src/mame/drivers/sprint8.c @@ -469,7 +469,7 @@ static MACHINE_CONFIG_START( sprint8, sprint8_state ) MCFG_SCREEN_SIZE(512, 261) MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 231) MCFG_SCREEN_UPDATE_STATIC(sprint8) - MCFG_SCREEN_EOF_STATIC(sprint8) + MCFG_SCREEN_VBLANK_STATIC(sprint8) MCFG_GFXDECODE(sprint8) MCFG_PALETTE_LENGTH(36) diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c index e3a5415fd33..8f08c03d1a9 100644 --- a/src/mame/drivers/srumbler.c +++ b/src/mame/drivers/srumbler.c @@ -256,7 +256,7 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state ) 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_EOF_STATIC(srumbler) + MCFG_SCREEN_VBLANK_STATIC(srumbler) MCFG_GFXDECODE(srumbler) MCFG_PALETTE_LENGTH(512) diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c index 7c2531d172f..b4e61148844 100644 --- a/src/mame/drivers/sspeedr.c +++ b/src/mame/drivers/sspeedr.c @@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( sspeedr, sspeedr_state ) MCFG_SCREEN_SIZE(376, 256) MCFG_SCREEN_VISIBLE_AREA(0, 375, 0, 247) MCFG_SCREEN_UPDATE_STATIC(sspeedr) - MCFG_SCREEN_EOF_STATIC(sspeedr) + MCFG_SCREEN_VBLANK_STATIC(sspeedr) MCFG_GFXDECODE(sspeedr) MCFG_PALETTE_LENGTH(16) diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c index 040b4793c22..ab51a886565 100644 --- a/src/mame/drivers/ssrj.c +++ b/src/mame/drivers/ssrj.c @@ -155,7 +155,7 @@ static MACHINE_CONFIG_START( ssrj, ssrj_state ) 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_EOF_STATIC(ssrj) + MCFG_SCREEN_VBLANK_STATIC(ssrj) MCFG_GFXDECODE(ssrj) MCFG_PALETTE_LENGTH(128) diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c index c2a4a4c165c..54cd255b600 100644 --- a/src/mame/drivers/starshp1.c +++ b/src/mame/drivers/starshp1.c @@ -312,7 +312,7 @@ 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_EOF_STATIC(starshp1) + MCFG_SCREEN_VBLANK_STATIC(starshp1) MCFG_GFXDECODE(starshp1) MCFG_PALETTE_LENGTH(19) diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index 330924fbae3..1fc9c667006 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -784,7 +784,7 @@ static MACHINE_CONFIG_START( skns, skns_state ) MCFG_SCREEN_SIZE(340,262) MCFG_SCREEN_VISIBLE_AREA(0,319,0,239) MCFG_SCREEN_UPDATE_STATIC(skns) - MCFG_SCREEN_EOF_STATIC(skns) + MCFG_SCREEN_VBLANK_STATIC(skns) MCFG_PALETTE_LENGTH(32768) MCFG_GFXDECODE(skns_bg) diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c index 49c172c70f7..a51d4e0e0be 100644 --- a/src/mame/drivers/taito_b.c +++ b/src/mame/drivers/taito_b.c @@ -2069,7 +2069,7 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2115,7 +2115,7 @@ static MACHINE_CONFIG_START( ashura, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2161,7 +2161,7 @@ static MACHINE_CONFIG_START( crimec, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2207,7 +2207,7 @@ static MACHINE_CONFIG_START( tetrist, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2252,7 +2252,7 @@ static MACHINE_CONFIG_START( tetrista, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2298,7 +2298,7 @@ static MACHINE_CONFIG_START( hitice, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2349,7 +2349,7 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(rambo3) MCFG_PALETTE_LENGTH(4096) @@ -2395,7 +2395,7 @@ static MACHINE_CONFIG_START( rambo3, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2444,7 +2444,7 @@ static MACHINE_CONFIG_START( pbobble, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2494,7 +2494,7 @@ static MACHINE_CONFIG_START( spacedx, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2540,7 +2540,7 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2590,7 +2590,7 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2636,7 +2636,7 @@ static MACHINE_CONFIG_START( viofight, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2685,7 +2685,7 @@ static MACHINE_CONFIG_START( masterw, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2732,7 +2732,7 @@ static MACHINE_CONFIG_START( silentd, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2778,7 +2778,7 @@ static MACHINE_CONFIG_START( selfeena, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2833,7 +2833,7 @@ static MACHINE_CONFIG_START( ryujin, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2886,7 +2886,7 @@ static MACHINE_CONFIG_START( sbm, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) @@ -2937,7 +2937,7 @@ static MACHINE_CONFIG_START( realpunc, taitob_state ) 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_EOF_STATIC(taitob) + MCFG_SCREEN_VBLANK_STATIC(taitob) MCFG_GFXDECODE(taito_b) MCFG_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c index b90b3e733d9..b253a5d2f46 100644 --- a/src/mame/drivers/taito_f2.c +++ b/src/mame/drivers/taito_f2.c @@ -3042,7 +3042,7 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state ) 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_EOF_STATIC(taitof2_no_buffer) + MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer) MCFG_GFXDECODE(taitof2) MCFG_PALETTE_LENGTH(4096) @@ -3087,7 +3087,7 @@ static MACHINE_CONFIG_DERIVED( finalb, taito_f2_tc0220ioc ) MCFG_GFXDECODE(finalb) MCFG_VIDEO_START(taitof2_finalb) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) @@ -3104,7 +3104,7 @@ static MACHINE_CONFIG_DERIVED( dondokod, taito_f2_tc0220ioc ) MCFG_GFXDECODE(pivot) MCFG_VIDEO_START(taitof2_dondokod) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz) MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) @@ -3140,7 +3140,7 @@ static MACHINE_CONFIG_DERIVED( thundfox, taito_f2_tc0220ioc ) MCFG_VIDEO_START(taitof2_thundfox) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(taitof2_thundfox) - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed_thundfox) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox) MCFG_TC0100SCN_ADD("tc0100scn_1", thundfox_tc0100scn_intf_1) MCFG_TC0100SCN_ADD("tc0100scn_2", thundfox_tc0100scn_intf_2) @@ -3175,7 +3175,7 @@ static MACHINE_CONFIG_DERIVED( qtorimon, taito_f2_tc0220ioc ) /* video hardware */ MCFG_GFXDECODE(yuyugogo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) @@ -3192,7 +3192,7 @@ static MACHINE_CONFIG_DERIVED( liquidk, taito_f2_tc0220ioc ) MCFG_VIDEO_START(taitof2_megab) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3208,7 +3208,7 @@ static MACHINE_CONFIG_DERIVED( quizhq, taito_f2 ) /* video hardware */ MCFG_GFXDECODE(yuyugogo) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) @@ -3225,7 +3225,7 @@ static MACHINE_CONFIG_DERIVED( ssi, taito_f2_tc0510nio ) MCFG_VIDEO_START(taitof2_ssi) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(taitof2_ssi) - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed_thundfox) // buffer_delayed_thundfox instead of buffer_delayed fixes the butterfly powerup + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox) // buffer_delayed_thundfox instead of buffer_delayed fixes the butterfly powerup MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MACHINE_CONFIG_END @@ -3241,7 +3241,7 @@ static MACHINE_CONFIG_DERIVED( gunfront, taito_f2_tc0510nio ) MCFG_VIDEO_START(taitof2_gunfront) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(taitof2_pri) - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3289,7 +3289,7 @@ static MACHINE_CONFIG_DERIVED( footchmp, taito_f2 ) MCFG_VIDEO_START(taitof2_footchmp) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx) - MCFG_SCREEN_EOF_STATIC(taitof2_full_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed) MCFG_TC0480SCP_ADD("tc0480scp", footchmp_tc0480scp_intf) MCFG_TC0360PRI_ADD("tc0360pri") @@ -3313,7 +3313,7 @@ static MACHINE_CONFIG_DERIVED( hthero, taito_f2 ) MCFG_VIDEO_START(taitof2_hthero) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx) - MCFG_SCREEN_EOF_STATIC(taitof2_full_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed) MCFG_TC0360PRI_ADD("tc0360pri") MCFG_TC0480SCP_ADD("tc0480scp", hthero_tc0480scp_intf) @@ -3392,7 +3392,7 @@ static MACHINE_CONFIG_DERIVED( qzquest, taito_f2_tc0510nio ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MACHINE_CONFIG_END @@ -3443,7 +3443,7 @@ static MACHINE_CONFIG_DERIVED( qzchikyu, taito_f2_tc0510nio ) /* video hardware */ MCFG_VIDEO_START(taitof2_qzchikyu) MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_EOF_STATIC(taitof2_partial_buffer_delayed_qzchikyu) + MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_qzchikyu) MCFG_TC0100SCN_ADD("tc0100scn", qzchikyu_tc0100scn_intf) MACHINE_CONFIG_END @@ -3602,7 +3602,7 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state ) 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_EOF_STATIC(taitof2_no_buffer) + MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer) MCFG_GFXDECODE(pivot) MCFG_PALETTE_LENGTH(4096) @@ -3651,7 +3651,7 @@ static MACHINE_CONFIG_START( driveout, taitof2_state ) 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_EOF_STATIC(taitof2_no_buffer) + MCFG_SCREEN_VBLANK_STATIC(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 5ace7cd02d6..b8042414281 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -446,7 +446,7 @@ static MACHINE_CONFIG_START( f3, taito_f3_state ) 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_EOF_STATIC(f3) + MCFG_SCREEN_VBLANK_STATIC(f3) MCFG_GFXDECODE(taito_f3) MCFG_PALETTE_LENGTH(0x2000) @@ -540,7 +540,7 @@ static MACHINE_CONFIG_START( bubsympb, taito_f3_state ) 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_EOF_STATIC(f3) + MCFG_SCREEN_VBLANK_STATIC(f3) MCFG_GFXDECODE(bubsympb) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index da51f2c2710..022fb47506c 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -1900,7 +1900,7 @@ static MACHINE_CONFIG_START( fhawk, taitol_state ) 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_EOF_STATIC(taitol) + MCFG_SCREEN_VBLANK_STATIC(taitol) MCFG_GFXDECODE(2) MCFG_PALETTE_LENGTH(256) @@ -1996,7 +1996,7 @@ static MACHINE_CONFIG_START( kurikint, taitol_state ) 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_EOF_STATIC(taitol) + MCFG_SCREEN_VBLANK_STATIC(taitol) MCFG_GFXDECODE(2) MCFG_PALETTE_LENGTH(256) @@ -2042,7 +2042,7 @@ static MACHINE_CONFIG_START( plotting, taitol_state ) 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_EOF_STATIC(taitol) + MCFG_SCREEN_VBLANK_STATIC(taitol) MCFG_GFXDECODE(1) MCFG_PALETTE_LENGTH(256) @@ -2135,7 +2135,7 @@ static MACHINE_CONFIG_START( evilston, taitol_state ) 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_EOF_STATIC(taitol) + MCFG_SCREEN_VBLANK_STATIC(taitol) MCFG_GFXDECODE(2) MCFG_PALETTE_LENGTH(256) diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c index 401be37a153..b844e2ec7f2 100644 --- a/src/mame/drivers/tank8.c +++ b/src/mame/drivers/tank8.c @@ -344,7 +344,7 @@ static MACHINE_CONFIG_START( tank8, tank8_state ) MCFG_SCREEN_SIZE(512, 524) MCFG_SCREEN_VISIBLE_AREA(16, 495, 0, 463) MCFG_SCREEN_UPDATE_STATIC(tank8) - MCFG_SCREEN_EOF_STATIC(tank8) + MCFG_SCREEN_VBLANK_STATIC(tank8) MCFG_GFXDECODE(tank8) MCFG_PALETTE_LENGTH(20) diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c index f89ba1f0bd5..94162e76d37 100644 --- a/src/mame/drivers/taotaido.c +++ b/src/mame/drivers/taotaido.c @@ -350,7 +350,7 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state ) 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_EOF_STATIC( taotaido ) + MCFG_SCREEN_VBLANK_STATIC( taotaido ) MCFG_PALETTE_LENGTH(0x800) diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c index 716d40a8b96..cfa5c6587ff 100644 --- a/src/mame/drivers/tceptor.c +++ b/src/mame/drivers/tceptor.c @@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( tceptor, tceptor_state ) 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_EOF_STATIC(tceptor) + MCFG_SCREEN_VBLANK_STATIC(tceptor) MCFG_PALETTE_INIT(tceptor) diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c index ee400911587..7b67d3033b5 100644 --- a/src/mame/drivers/tigeroad.c +++ b/src/mame/drivers/tigeroad.c @@ -537,7 +537,7 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state ) 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_EOF_STATIC(tigeroad) + MCFG_SCREEN_VBLANK_STATIC(tigeroad) MCFG_GFXDECODE(tigeroad) MCFG_PALETTE_LENGTH(576) diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index 7975996ccdb..af29fb10a58 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -2581,7 +2581,7 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state ) 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_EOF_STATIC( blswhstl ) + MCFG_SCREEN_VBLANK_STATIC( blswhstl ) MCFG_PALETTE_LENGTH(2048) diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c index a85206aa654..9e474e106d2 100644 --- a/src/mame/drivers/tnzs.c +++ b/src/mame/drivers/tnzs.c @@ -1639,7 +1639,7 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state ) 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_EOF_STATIC(tnzs) + MCFG_SCREEN_VBLANK_STATIC(tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1680,7 +1680,7 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state ) 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_EOF_STATIC(tnzs) + MCFG_SCREEN_VBLANK_STATIC(tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1724,7 +1724,7 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state ) 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_EOF_STATIC(tnzs) + MCFG_SCREEN_VBLANK_STATIC(tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1764,7 +1764,7 @@ static MACHINE_CONFIG_START( insectx, tnzs_state ) 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_EOF_STATIC(tnzs) + MCFG_SCREEN_VBLANK_STATIC(tnzs) MCFG_GFXDECODE(insectx) MCFG_PALETTE_LENGTH(512) @@ -1803,7 +1803,7 @@ static MACHINE_CONFIG_START( kageki, tnzs_state ) 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_EOF_STATIC(tnzs) + MCFG_SCREEN_VBLANK_STATIC(tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1853,7 +1853,7 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state ) 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_EOF_STATIC(tnzs) + MCFG_SCREEN_VBLANK_STATIC(tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(512) @@ -1916,7 +1916,7 @@ static MACHINE_CONFIG_START( jpopnics, tnzs_state ) 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_EOF_STATIC(tnzs) + MCFG_SCREEN_VBLANK_STATIC(tnzs) MCFG_GFXDECODE(tnzs) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c index 71c851e3ee7..f4bd6001982 100644 --- a/src/mame/drivers/toaplan1.c +++ b/src/mame/drivers/toaplan1.c @@ -1540,7 +1540,7 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(rallybik) - MCFG_SCREEN_EOF_STATIC(rallybik) + MCFG_SCREEN_VBLANK_STATIC(rallybik) MCFG_GFXDECODE(rallybik) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1578,7 +1578,7 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_EOF_STATIC(toaplan1) + MCFG_SCREEN_VBLANK_STATIC(toaplan1) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1616,7 +1616,7 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_VISIBLE_AREA(0, 319, 16, 255) MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_EOF_STATIC(toaplan1) + MCFG_SCREEN_VBLANK_STATIC(toaplan1) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1654,7 +1654,7 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_VISIBLE_AREA(0, 319, 16, 255) MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_EOF_STATIC(toaplan1) + MCFG_SCREEN_VBLANK_STATIC(toaplan1) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1696,7 +1696,7 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_VISIBLE_AREA(0, 319, 16, 255) MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_EOF_STATIC(toaplan1) + MCFG_SCREEN_VBLANK_STATIC(toaplan1) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1732,7 +1732,7 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_EOF_STATIC(samesame) + MCFG_SCREEN_VBLANK_STATIC(samesame) MCFG_GFXDECODE(toaplan1) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1770,7 +1770,7 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_EOF_STATIC(toaplan1) + MCFG_SCREEN_VBLANK_STATIC(toaplan1) MCFG_GFXDECODE(outzone) MCFG_PALETTE_LENGTH((64*16)+(64*16)) @@ -1806,7 +1806,7 @@ static MACHINE_CONFIG_START( vimana, toaplan1_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan1) - MCFG_SCREEN_EOF_STATIC(toaplan1) + MCFG_SCREEN_VBLANK_STATIC(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 a1cb894636b..c2739bebffa 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -3047,7 +3047,7 @@ static MACHINE_CONFIG_START( tekipaki, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3088,7 +3088,7 @@ static MACHINE_CONFIG_START( ghox, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3178,7 +3178,7 @@ static MACHINE_CONFIG_START( dogyuun, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(dogyuun) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(t2dualvdp) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3222,7 +3222,7 @@ static MACHINE_CONFIG_START( kbash, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3259,7 +3259,7 @@ static MACHINE_CONFIG_START( kbash2, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3296,7 +3296,7 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(truxton2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3351,7 +3351,7 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3392,7 +3392,7 @@ static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3473,7 +3473,7 @@ static MACHINE_CONFIG_START( fixeight, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(truxton2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3510,7 +3510,7 @@ static MACHINE_CONFIG_START( fixeightbl, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(fixeightbl) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3550,7 +3550,7 @@ static MACHINE_CONFIG_START( vfive, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3588,7 +3588,7 @@ static MACHINE_CONFIG_START( batsugun, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(batsugun) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(t2dualvdp) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3626,7 +3626,7 @@ static MACHINE_CONFIG_START( snowbro2, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(toaplan2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(toaplan2) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3669,7 +3669,7 @@ static MACHINE_CONFIG_START( mahoudai, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(raizing) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3712,7 +3712,7 @@ static MACHINE_CONFIG_START( shippumd, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(raizing) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) @@ -3766,7 +3766,7 @@ static MACHINE_CONFIG_START( bgaregga, toaplan2_state ) MCFG_SCREEN_SIZE(432, 262) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_STATIC(truxton2) - MCFG_SCREEN_EOF_STATIC(toaplan2) + MCFG_SCREEN_VBLANK_STATIC(toaplan2) MCFG_GFXDECODE(raizing) MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c index 0d1920e99c8..4f4742042bb 100644 --- a/src/mame/drivers/toki.c +++ b/src/mame/drivers/toki.c @@ -432,7 +432,7 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu * 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_EOF_STATIC(toki) + MCFG_SCREEN_VBLANK_STATIC(toki) MCFG_GFXDECODE(toki) MCFG_PALETTE_LENGTH(1024) @@ -462,7 +462,7 @@ static MACHINE_CONFIG_START( tokib, toki_state ) 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_EOF_STATIC(tokib) + MCFG_SCREEN_VBLANK_STATIC(tokib) MCFG_GFXDECODE(tokib) MCFG_PALETTE_LENGTH(1024) diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c index b8ccd53dac4..34b5dff0779 100644 --- a/src/mame/drivers/twin16.c +++ b/src/mame/drivers/twin16.c @@ -754,7 +754,7 @@ static MACHINE_CONFIG_START( twin16, twin16_state ) 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_EOF_STATIC(twin16) + MCFG_SCREEN_VBLANK_STATIC(twin16) MCFG_GFXDECODE(twin16) MCFG_PALETTE_LENGTH(0x400) @@ -807,7 +807,7 @@ static MACHINE_CONFIG_START( fround, twin16_state ) 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_EOF_STATIC(twin16) + MCFG_SCREEN_VBLANK_STATIC(twin16) MCFG_GFXDECODE(twin16) MCFG_PALETTE_LENGTH(0x400) diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c index 0e5afa5bf26..fc0a17e056f 100644 --- a/src/mame/drivers/twincobr.c +++ b/src/mame/drivers/twincobr.c @@ -584,7 +584,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_EOF_STATIC(toaplan0) + MCFG_SCREEN_VBLANK_STATIC(toaplan0) MCFG_GFXDECODE(twincobr) MCFG_PALETTE_LENGTH(1792) diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c index 57ea78aab52..f449008bcd8 100644 --- a/src/mame/drivers/tx1.c +++ b/src/mame/drivers/tx1.c @@ -728,7 +728,7 @@ static MACHINE_CONFIG_START( tx1, tx1_state ) 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_EOF_STATIC(tx1) + MCFG_SCREEN_VBLANK_STATIC(tx1) MCFG_VIDEO_START(tx1) @@ -777,7 +777,7 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state ) 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_EOF_STATIC(buggyboy) + MCFG_SCREEN_VBLANK_STATIC(buggyboy) MCFG_PALETTE_LENGTH(256) MCFG_PALETTE_INIT(buggyboy) @@ -819,7 +819,7 @@ 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_EOF_STATIC(buggyboy) + MCFG_SCREEN_VBLANK_STATIC(buggyboy) MCFG_PALETTE_LENGTH(256) MCFG_PALETTE_INIT(buggyboy) diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c index 25da4dffd86..e8dd3f8a540 100644 --- a/src/mame/drivers/ultratnk.c +++ b/src/mame/drivers/ultratnk.c @@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( ultratnk, ultratnk_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, 256, VTOTAL, 0, 224) MCFG_SCREEN_UPDATE_STATIC(ultratnk) - MCFG_SCREEN_EOF_STATIC(ultratnk) + MCFG_SCREEN_VBLANK_STATIC(ultratnk) MCFG_GFXDECODE(ultratnk) MCFG_PALETTE_LENGTH(10) diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c index 5853aed62f3..50fba056454 100644 --- a/src/mame/drivers/wardner.c +++ b/src/mame/drivers/wardner.c @@ -432,7 +432,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_EOF_STATIC(toaplan0) + MCFG_SCREEN_VBLANK_STATIC(toaplan0) MCFG_GFXDECODE(wardner) MCFG_PALETTE_LENGTH(1792) diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c index f9b41f7152a..4032e51eb78 100644 --- a/src/mame/drivers/wheelfir.c +++ b/src/mame/drivers/wheelfir.c @@ -595,10 +595,14 @@ static SCREEN_UPDATE_IND16(wheelfir) return 0; } -static SCREEN_EOF( wheelfir ) +static SCREEN_VBLANK( wheelfir ) { - wheelfir_state *state = screen.machine().driver_data<wheelfir_state>(); - state->m_tmp_bitmap[LAYER_FG]->fill(0, screen.visible_area()); + // rising edge + if (vblank_on) + { + wheelfir_state *state = screen.machine().driver_data<wheelfir_state>(); + state->m_tmp_bitmap[LAYER_FG]->fill(0, screen.visible_area()); + } } @@ -821,7 +825,7 @@ static MACHINE_CONFIG_START( wheelfir, wheelfir_state ) 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_EOF_STATIC(wheelfir) + MCFG_SCREEN_VBLANK_STATIC(wheelfir) MCFG_PALETTE_LENGTH(NUM_COLORS) diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c index 7f1d270feba..ee7380fdfe4 100644 --- a/src/mame/drivers/wolfpack.c +++ b/src/mame/drivers/wolfpack.c @@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( wolfpack, wolfpack_state ) MCFG_SCREEN_SIZE(512, 262) MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 239) MCFG_SCREEN_UPDATE_STATIC(wolfpack) - MCFG_SCREEN_EOF_STATIC(wolfpack) + MCFG_SCREEN_VBLANK_STATIC(wolfpack) MCFG_GFXDECODE(wolfpack) MCFG_PALETTE_LENGTH(12) diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c index 3968ac2ac67..e4f8a11ddf0 100644 --- a/src/mame/drivers/wwfwfest.c +++ b/src/mame/drivers/wwfwfest.c @@ -381,11 +381,15 @@ static const ym2151_interface ym2151_config = dd3_ymirq_handler }; -static SCREEN_EOF( wwfwfest ) +static SCREEN_VBLANK( wwfwfest ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space,0,0,0xffff); + buffer_spriteram16_w(space,0,0,0xffff); + } } /******************************************************************************* @@ -408,7 +412,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_EOF_STATIC(wwfwfest) + MCFG_SCREEN_VBLANK_STATIC(wwfwfest) MCFG_GFXDECODE(wwfwfest) MCFG_PALETTE_LENGTH(8192) diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 20f30a71c4b..8a8394daeb8 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -455,7 +455,7 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state ) 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_EOF_STATIC(xmen6p) + MCFG_SCREEN_VBLANK_STATIC(xmen6p) MCFG_VIDEO_START(xmen6p) diff --git a/src/mame/includes/airbustr.h b/src/mame/includes/airbustr.h index 0d56e7fa961..2486292cb4f 100644 --- a/src/mame/includes/airbustr.h +++ b/src/mame/includes/airbustr.h @@ -50,4 +50,4 @@ WRITE8_HANDLER( airbustr_scrollregs_w ); VIDEO_START( airbustr ); SCREEN_UPDATE_IND16( airbustr ); -SCREEN_EOF( airbustr ); +SCREEN_VBLANK( airbustr ); diff --git a/src/mame/includes/armedf.h b/src/mame/includes/armedf.h index 5578fcabbe8..570c2353dbb 100644 --- a/src/mame/includes/armedf.h +++ b/src/mame/includes/armedf.h @@ -47,7 +47,7 @@ public: /*----------- defined in video/armedf.c -----------*/ SCREEN_UPDATE_IND16( armedf ); -SCREEN_EOF( armedf ); +SCREEN_VBLANK( armedf ); VIDEO_START( armedf ); VIDEO_START( terraf ); diff --git a/src/mame/includes/atarig1.h b/src/mame/includes/atarig1.h index fcf58fa141a..21629bac321 100644 --- a/src/mame/includes/atarig1.h +++ b/src/mame/includes/atarig1.h @@ -37,7 +37,7 @@ public: WRITE16_HANDLER( atarig1_mo_control_w ); VIDEO_START( atarig1 ); -SCREEN_EOF( atarig1 ); +SCREEN_VBLANK( atarig1 ); SCREEN_UPDATE_IND16( atarig1 ); void atarig1_scanline_update(screen_device &screen, int scanline); diff --git a/src/mame/includes/atarig42.h b/src/mame/includes/atarig42.h index ba78ef8d914..37bf10d082c 100644 --- a/src/mame/includes/atarig42.h +++ b/src/mame/includes/atarig42.h @@ -37,7 +37,7 @@ public: /*----------- defined in video/atarig42.c -----------*/ VIDEO_START( atarig42 ); -SCREEN_EOF( atarig42 ); +SCREEN_VBLANK( atarig42 ); SCREEN_UPDATE_IND16( atarig42 ); WRITE16_HANDLER( atarig42_mo_control_w ); diff --git a/src/mame/includes/atarigt.h b/src/mame/includes/atarigt.h index f82b7f5f239..5d79708ab23 100644 --- a/src/mame/includes/atarigt.h +++ b/src/mame/includes/atarigt.h @@ -55,7 +55,7 @@ void atarigt_colorram_w(atarigt_state *state, offs_t address, UINT16 data, UINT1 UINT16 atarigt_colorram_r(atarigt_state *state, offs_t address); VIDEO_START( atarigt ); -SCREEN_EOF( atarigt ); +SCREEN_VBLANK( atarigt ); SCREEN_UPDATE_RGB32( atarigt ); void atarigt_scanline_update(screen_device &screen, int scanline); diff --git a/src/mame/includes/atarigx2.h b/src/mame/includes/atarigx2.h index dae2c3e0b4b..23a9b78cd8f 100644 --- a/src/mame/includes/atarigx2.h +++ b/src/mame/includes/atarigx2.h @@ -33,7 +33,7 @@ public: /*----------- defined in video/atarigx2.c -----------*/ VIDEO_START( atarigx2 ); -SCREEN_EOF( atarigx2 ); +SCREEN_VBLANK( atarigx2 ); SCREEN_UPDATE_IND16( atarigx2 ); WRITE16_HANDLER( atarigx2_mo_control_w ); diff --git a/src/mame/includes/baraduke.h b/src/mame/includes/baraduke.h index ea6370d0fad..029598c8039 100644 --- a/src/mame/includes/baraduke.h +++ b/src/mame/includes/baraduke.h @@ -21,7 +21,7 @@ public: VIDEO_START( baraduke ); SCREEN_UPDATE_IND16( baraduke ); -SCREEN_EOF( baraduke ); +SCREEN_VBLANK( baraduke ); READ8_HANDLER( baraduke_videoram_r ); WRITE8_HANDLER( baraduke_videoram_w ); READ8_HANDLER( baraduke_textram_r ); diff --git a/src/mame/includes/bionicc.h b/src/mame/includes/bionicc.h index ab491d598a0..9964fb0acc0 100644 --- a/src/mame/includes/bionicc.h +++ b/src/mame/includes/bionicc.h @@ -39,4 +39,4 @@ WRITE16_HANDLER( bionicc_gfxctrl_w ); VIDEO_START( bionicc ); SCREEN_UPDATE_IND16( bionicc ); -SCREEN_EOF( bionicc ); +SCREEN_VBLANK( bionicc ); diff --git a/src/mame/includes/bking.h b/src/mame/includes/bking.h index cca8faf3636..0ae47a76056 100644 --- a/src/mame/includes/bking.h +++ b/src/mame/includes/bking.h @@ -72,4 +72,4 @@ READ8_HANDLER( bking_pos_r ); PALETTE_INIT( bking ); VIDEO_START( bking ); SCREEN_UPDATE_IND16( bking ); -SCREEN_EOF( bking ); +SCREEN_VBLANK( bking ); diff --git a/src/mame/includes/blktiger.h b/src/mame/includes/blktiger.h index 56113db65a3..0dca3884382 100644 --- a/src/mame/includes/blktiger.h +++ b/src/mame/includes/blktiger.h @@ -54,4 +54,4 @@ WRITE8_HANDLER( blktiger_scrolly_w ); VIDEO_START( blktiger ); SCREEN_UPDATE_IND16( blktiger ); -SCREEN_EOF( blktiger ); +SCREEN_VBLANK( blktiger ); diff --git a/src/mame/includes/carpolo.h b/src/mame/includes/carpolo.h index 4bf5d45e953..6afc52fc318 100644 --- a/src/mame/includes/carpolo.h +++ b/src/mame/includes/carpolo.h @@ -94,4 +94,4 @@ void carpolo_generate_car_border_interrupt(running_machine &machine, int car, in PALETTE_INIT( carpolo ); VIDEO_START( carpolo ); SCREEN_UPDATE_IND16( carpolo ); -SCREEN_EOF( carpolo ); +SCREEN_VBLANK( carpolo ); diff --git a/src/mame/includes/commando.h b/src/mame/includes/commando.h index 3d6571d7c33..42240a31d1d 100644 --- a/src/mame/includes/commando.h +++ b/src/mame/includes/commando.h @@ -41,4 +41,4 @@ WRITE8_HANDLER( commando_c804_w ); VIDEO_START( commando ); SCREEN_UPDATE_IND16( commando ); -SCREEN_EOF( commando ); +SCREEN_VBLANK( commando ); diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h index a7703f519d2..7eceafb3562 100644 --- a/src/mame/includes/cps1.h +++ b/src/mame/includes/cps1.h @@ -175,7 +175,7 @@ WRITE16_HANDLER( cps2_objram2_w ); VIDEO_START( cps1 ); VIDEO_START( cps2 ); SCREEN_UPDATE_IND16( cps1 ); -SCREEN_EOF( cps1 ); +SCREEN_VBLANK( cps1 ); void cps1_get_video_base(running_machine &machine); void cps2_set_sprite_priorities(running_machine &machine); diff --git a/src/mame/includes/crshrace.h b/src/mame/includes/crshrace.h index bc1c88e575a..c92ab18ba36 100644 --- a/src/mame/includes/crshrace.h +++ b/src/mame/includes/crshrace.h @@ -35,5 +35,5 @@ WRITE16_HANDLER( crshrace_roz_bank_w ); WRITE16_HANDLER( crshrace_gfxctrl_w ); VIDEO_START( crshrace ); -SCREEN_EOF( crshrace ); +SCREEN_VBLANK( crshrace ); SCREEN_UPDATE_IND16( crshrace ); diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h index 30b43b923a0..3418ad2d502 100644 --- a/src/mame/includes/deco32.h +++ b/src/mame/includes/deco32.h @@ -78,8 +78,8 @@ VIDEO_START( dragngun ); VIDEO_START( lockload ); VIDEO_START( nslasher ); -SCREEN_EOF( captaven ); -SCREEN_EOF( dragngun ); +SCREEN_VBLANK( captaven ); +SCREEN_VBLANK( dragngun ); SCREEN_UPDATE_IND16( captaven ); SCREEN_UPDATE_RGB32( fghthist ); diff --git a/src/mame/includes/deco_mlc.h b/src/mame/includes/deco_mlc.h index ee5a79c7f66..d530da5dce0 100644 --- a/src/mame/includes/deco_mlc.h +++ b/src/mame/includes/deco_mlc.h @@ -24,4 +24,4 @@ public: VIDEO_START( mlc ); SCREEN_UPDATE_RGB32( mlc ); -SCREEN_EOF( mlc ); +SCREEN_VBLANK( mlc ); diff --git a/src/mame/includes/djboy.h b/src/mame/includes/djboy.h index a820ea57f7e..2062ebf762c 100644 --- a/src/mame/includes/djboy.h +++ b/src/mame/includes/djboy.h @@ -54,4 +54,4 @@ WRITE8_HANDLER( djboy_paletteram_w ); VIDEO_START( djboy ); SCREEN_UPDATE_IND16( djboy ); -SCREEN_EOF( djboy ); +SCREEN_VBLANK( djboy ); diff --git a/src/mame/includes/dooyong.h b/src/mame/includes/dooyong.h index c4b8e6a942c..0d5b151d0f9 100644 --- a/src/mame/includes/dooyong.h +++ b/src/mame/includes/dooyong.h @@ -77,5 +77,5 @@ VIDEO_START( primella ); VIDEO_START( rshark ); VIDEO_START( popbingo ); -SCREEN_EOF( dooyong ); -SCREEN_EOF( rshark ); +SCREEN_VBLANK( dooyong ); +SCREEN_VBLANK( rshark ); diff --git a/src/mame/includes/dynduke.h b/src/mame/includes/dynduke.h index 975973fdde8..7748e6bee31 100644 --- a/src/mame/includes/dynduke.h +++ b/src/mame/includes/dynduke.h @@ -32,4 +32,4 @@ WRITE16_HANDLER( dynduke_control_w ); WRITE16_HANDLER( dynduke_paletteram_w ); VIDEO_START( dynduke ); SCREEN_UPDATE_IND16( dynduke ); -SCREEN_EOF( dynduke ); +SCREEN_VBLANK( dynduke ); diff --git a/src/mame/includes/exedexes.h b/src/mame/includes/exedexes.h index 1cb20f4d576..e56d05217ad 100644 --- a/src/mame/includes/exedexes.h +++ b/src/mame/includes/exedexes.h @@ -41,4 +41,4 @@ extern WRITE8_HANDLER( exedexes_gfxctrl_w ); extern PALETTE_INIT( exedexes ); extern VIDEO_START( exedexes ); extern SCREEN_UPDATE_IND16( exedexes ); -extern SCREEN_EOF( exedexes ); +extern SCREEN_VBLANK( exedexes ); diff --git a/src/mame/includes/fuukifg3.h b/src/mame/includes/fuukifg3.h index 563602e8f7a..3eb1ac24d8d 100644 --- a/src/mame/includes/fuukifg3.h +++ b/src/mame/includes/fuukifg3.h @@ -49,4 +49,4 @@ WRITE32_HANDLER( fuuki32_vram_3_w ); VIDEO_START( fuuki32 ); SCREEN_UPDATE_IND16( fuuki32 ); -SCREEN_EOF( fuuki32 ); +SCREEN_VBLANK( fuuki32 ); diff --git a/src/mame/includes/gaelco2.h b/src/mame/includes/gaelco2.h index 7a899507421..85420cf2f1e 100644 --- a/src/mame/includes/gaelco2.h +++ b/src/mame/includes/gaelco2.h @@ -44,7 +44,7 @@ WRITE16_HANDLER( snowboar_protection_w ); WRITE16_HANDLER( gaelco2_vram_w ); WRITE16_HANDLER( gaelco2_palette_w ); SCREEN_UPDATE_IND16( gaelco2 ); -SCREEN_EOF( gaelco2 ); +SCREEN_VBLANK( gaelco2 ); VIDEO_START( gaelco2 ); SCREEN_UPDATE_IND16( gaelco2_left ); SCREEN_UPDATE_IND16( gaelco2_right ); diff --git a/src/mame/includes/galaga.h b/src/mame/includes/galaga.h index 2e2e1ebe382..9aa1ba9714a 100644 --- a/src/mame/includes/galaga.h +++ b/src/mame/includes/galaga.h @@ -94,7 +94,7 @@ WRITE8_HANDLER( bosco_starclr_w ); VIDEO_START( bosco ); SCREEN_UPDATE_IND16( bosco ); PALETTE_INIT( bosco ); -SCREEN_EOF( bosco ); /* update starfield */ +SCREEN_VBLANK( bosco ); /* update starfield */ /*----------- defined in audio/galaga.c -----------*/ @@ -117,7 +117,7 @@ WRITE8_HANDLER( galaga_videoram_w ); WRITE8_HANDLER( gatsbee_bank_w ); VIDEO_START( galaga ); SCREEN_UPDATE_IND16( galaga ); -SCREEN_EOF( galaga ); /* update starfield */ +SCREEN_VBLANK( galaga ); /* update starfield */ /*----------- defined in video/xevious.c -----------*/ diff --git a/src/mame/includes/gaplus.h b/src/mame/includes/gaplus.h index 61123c109b0..ba6682e0db9 100644 --- a/src/mame/includes/gaplus.h +++ b/src/mame/includes/gaplus.h @@ -39,4 +39,4 @@ WRITE8_HANDLER( gaplus_starfield_control_w ); VIDEO_START( gaplus ); PALETTE_INIT( gaplus ); SCREEN_UPDATE_IND16( gaplus ); -SCREEN_EOF( gaplus ); /* update starfields */ +SCREEN_VBLANK( gaplus ); /* update starfields */ diff --git a/src/mame/includes/gng.h b/src/mame/includes/gng.h index 070e8d33691..5e660689bb9 100644 --- a/src/mame/includes/gng.h +++ b/src/mame/includes/gng.h @@ -35,4 +35,4 @@ WRITE8_HANDLER( gng_flipscreen_w ); VIDEO_START( gng ); SCREEN_UPDATE_IND16( gng ); -SCREEN_EOF( gng ); +SCREEN_VBLANK( gng ); diff --git a/src/mame/includes/goal92.h b/src/mame/includes/goal92.h index e7cfb9e147c..50ab004cc61 100644 --- a/src/mame/includes/goal92.h +++ b/src/mame/includes/goal92.h @@ -47,4 +47,4 @@ READ16_HANDLER( goal92_fg_bank_r ); VIDEO_START( goal92 ); SCREEN_UPDATE_IND16( goal92 ); -SCREEN_EOF( goal92 ); +SCREEN_VBLANK( goal92 ); diff --git a/src/mame/includes/hng64.h b/src/mame/includes/hng64.h index d86b8539643..f110fe225e8 100644 --- a/src/mame/includes/hng64.h +++ b/src/mame/includes/hng64.h @@ -108,4 +108,4 @@ void hng64_command3d(running_machine& machine, const UINT16* packet); VIDEO_START( hng64 ); SCREEN_UPDATE_RGB32( hng64 ); -SCREEN_EOF( hng64 ); +SCREEN_VBLANK( hng64 ); diff --git a/src/mame/includes/homedata.h b/src/mame/includes/homedata.h index d777509ebd8..72e1b186870 100644 --- a/src/mame/includes/homedata.h +++ b/src/mame/includes/homedata.h @@ -70,4 +70,4 @@ SCREEN_UPDATE_IND16( mrokumei ); SCREEN_UPDATE_IND16( reikaids ); SCREEN_UPDATE_IND16( pteacher ); SCREEN_UPDATE_IND16( mirderby ); -SCREEN_EOF( homedata ); +SCREEN_VBLANK( homedata ); diff --git a/src/mame/includes/ladybug.h b/src/mame/includes/ladybug.h index dabe64ff049..2038a159ce7 100644 --- a/src/mame/includes/ladybug.h +++ b/src/mame/includes/ladybug.h @@ -58,7 +58,7 @@ SCREEN_UPDATE_IND16( ladybug ); PALETTE_INIT( sraider ); VIDEO_START( sraider ); SCREEN_UPDATE_IND16( sraider ); -SCREEN_EOF( sraider ); +SCREEN_VBLANK( sraider ); /*----------- defined in video/redclash.c -----------*/ @@ -74,7 +74,7 @@ WRITE8_HANDLER( redclash_star_reset_w ); PALETTE_INIT( redclash ); VIDEO_START( redclash ); SCREEN_UPDATE_IND16( redclash ); -SCREEN_EOF( redclash ); +SCREEN_VBLANK( redclash ); /* sraider uses the zerohour star generator board */ void redclash_set_stars_enable(running_machine &machine, UINT8 on); diff --git a/src/mame/includes/lastduel.h b/src/mame/includes/lastduel.h index ef221aaa9b9..72ad7fc152b 100644 --- a/src/mame/includes/lastduel.h +++ b/src/mame/includes/lastduel.h @@ -49,4 +49,4 @@ VIDEO_START( lastduel ); VIDEO_START( madgear ); SCREEN_UPDATE_IND16( lastduel ); SCREEN_UPDATE_IND16( madgear ); -SCREEN_EOF( lastduel ); +SCREEN_VBLANK( lastduel ); diff --git a/src/mame/includes/lemmings.h b/src/mame/includes/lemmings.h index 6af96250dfb..fd9de45bd0f 100644 --- a/src/mame/includes/lemmings.h +++ b/src/mame/includes/lemmings.h @@ -33,5 +33,5 @@ WRITE16_HANDLER( lemmings_pixel_1_w ); WRITE16_HANDLER( lemmings_vram_w ); VIDEO_START( lemmings ); -SCREEN_EOF( lemmings ); +SCREEN_VBLANK( lemmings ); SCREEN_UPDATE_IND16( lemmings ); diff --git a/src/mame/includes/lockon.h b/src/mame/includes/lockon.h index b802710d9d7..e046e09c0ec 100644 --- a/src/mame/includes/lockon.h +++ b/src/mame/includes/lockon.h @@ -81,7 +81,7 @@ public: PALETTE_INIT( lockon ); VIDEO_START( lockon ); SCREEN_UPDATE_IND16( lockon ); -SCREEN_EOF( lockon ); +SCREEN_VBLANK( lockon ); READ16_HANDLER( lockon_crtc_r ); WRITE16_HANDLER( lockon_crtc_w ); WRITE16_HANDLER( lockon_rotate_w ); diff --git a/src/mame/includes/lwings.h b/src/mame/includes/lwings.h index 0711524984f..7b884702836 100644 --- a/src/mame/includes/lwings.h +++ b/src/mame/includes/lwings.h @@ -45,4 +45,4 @@ VIDEO_START( trojan ); VIDEO_START( avengers ); SCREEN_UPDATE_IND16( lwings ); SCREEN_UPDATE_IND16( trojan ); -SCREEN_EOF( lwings ); +SCREEN_VBLANK( lwings ); diff --git a/src/mame/includes/macrossp.h b/src/mame/includes/macrossp.h index 202a13dba42..febd6e3a64a 100644 --- a/src/mame/includes/macrossp.h +++ b/src/mame/includes/macrossp.h @@ -52,4 +52,4 @@ WRITE32_HANDLER( macrossp_text_videoram_w ); VIDEO_START(macrossp); SCREEN_UPDATE_RGB32(macrossp); -SCREEN_EOF(macrossp); +SCREEN_VBLANK(macrossp); diff --git a/src/mame/includes/mcatadv.h b/src/mame/includes/mcatadv.h index 682661dae28..54746025849 100644 --- a/src/mame/includes/mcatadv.h +++ b/src/mame/includes/mcatadv.h @@ -32,7 +32,7 @@ public: SCREEN_UPDATE_IND16( mcatadv ); VIDEO_START( mcatadv ); -SCREEN_EOF( mcatadv ); +SCREEN_VBLANK( mcatadv ); WRITE16_HANDLER( mcatadv_videoram1_w ); WRITE16_HANDLER( mcatadv_videoram2_w ); diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h index e9a41ca131a..98504307bda 100644 --- a/src/mame/includes/megadriv.h +++ b/src/mame/includes/megadriv.h @@ -67,7 +67,7 @@ MACHINE_START( megadriv ); MACHINE_RESET( megadriv ); VIDEO_START( megadriv ); SCREEN_UPDATE_RGB32( megadriv ); -SCREEN_EOF( megadriv ); +SCREEN_VBLANK( megadriv ); extern UINT16* megadrive_vdp_palette_lookup; diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h index 62403f44970..e8b6cb1bb56 100644 --- a/src/mame/includes/megasys1.h +++ b/src/mame/includes/megasys1.h @@ -58,7 +58,7 @@ public: VIDEO_START( megasys1 ); SCREEN_UPDATE_IND16( megasys1 ); -SCREEN_EOF( megasys1 ); +SCREEN_VBLANK( megasys1 ); PALETTE_INIT( megasys1 ); diff --git a/src/mame/includes/mermaid.h b/src/mame/includes/mermaid.h index cfd3268498f..165b0c0aafe 100644 --- a/src/mame/includes/mermaid.h +++ b/src/mame/includes/mermaid.h @@ -69,4 +69,4 @@ PALETTE_INIT( mermaid ); PALETTE_INIT( rougien ); VIDEO_START( mermaid ); SCREEN_UPDATE_IND16( mermaid ); -SCREEN_EOF( mermaid ); +SCREEN_VBLANK( mermaid ); diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h index 3f7c02b789a..e14e9c335ac 100644 --- a/src/mame/includes/model1.h +++ b/src/mame/includes/model1.h @@ -113,7 +113,7 @@ void model1_tgp_reset(running_machine &machine, int swa); VIDEO_START(model1); SCREEN_UPDATE_RGB32(model1); -SCREEN_EOF(model1); +SCREEN_VBLANK(model1); READ16_HANDLER( model1_listctl_r ); WRITE16_HANDLER( model1_listctl_w ); diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h index cdd673ae50f..08c4568c0ed 100644 --- a/src/mame/includes/mw8080bw.h +++ b/src/mame/includes/mw8080bw.h @@ -230,6 +230,6 @@ SCREEN_UPDATE_RGB32( mw8080bw ); SCREEN_UPDATE_RGB32( spcenctr ); SCREEN_UPDATE_RGB32( phantom2 ); -SCREEN_EOF( phantom2 ); +SCREEN_VBLANK( phantom2 ); SCREEN_UPDATE_RGB32( invaders ); diff --git a/src/mame/includes/n8080.h b/src/mame/includes/n8080.h index a2092769105..d83592c30e7 100644 --- a/src/mame/includes/n8080.h +++ b/src/mame/includes/n8080.h @@ -55,7 +55,7 @@ VIDEO_START( helifire ); SCREEN_UPDATE_IND16( spacefev ); SCREEN_UPDATE_IND16( sheriff ); SCREEN_UPDATE_IND16( helifire ); -SCREEN_EOF( helifire ); +SCREEN_VBLANK( helifire ); void spacefev_start_red_cannon(running_machine &machine); diff --git a/src/mame/includes/namcos1.h b/src/mame/includes/namcos1.h index 2700450adfb..0b4b52b694c 100644 --- a/src/mame/includes/namcos1.h +++ b/src/mame/includes/namcos1.h @@ -103,4 +103,4 @@ WRITE8_HANDLER( namcos1_spriteram_w ); VIDEO_START( namcos1 ); SCREEN_UPDATE_IND16( namcos1 ); -SCREEN_EOF( namcos1 ); +SCREEN_VBLANK( namcos1 ); diff --git a/src/mame/includes/namcos86.h b/src/mame/includes/namcos86.h index 6f4d6bed192..7a95213e25a 100644 --- a/src/mame/includes/namcos86.h +++ b/src/mame/includes/namcos86.h @@ -24,7 +24,7 @@ public: PALETTE_INIT( namcos86 ); VIDEO_START( namcos86 ); SCREEN_UPDATE_IND16( namcos86 ); -SCREEN_EOF( namcos86 ); +SCREEN_VBLANK( namcos86 ); READ8_HANDLER( rthunder_videoram1_r ); WRITE8_HANDLER( rthunder_videoram1_w ); diff --git a/src/mame/includes/ninjakd2.h b/src/mame/includes/ninjakd2.h index 5c638c0308d..afe57a73788 100644 --- a/src/mame/includes/ninjakd2.h +++ b/src/mame/includes/ninjakd2.h @@ -59,5 +59,5 @@ extern VIDEO_START( omegaf ); extern SCREEN_UPDATE_IND16( ninjakd2 ); extern SCREEN_UPDATE_IND16( robokid ); extern SCREEN_UPDATE_IND16( omegaf ); -extern SCREEN_EOF( ninjakd2 ); +extern SCREEN_VBLANK( ninjakd2 ); diff --git a/src/mame/includes/nmk16.h b/src/mame/includes/nmk16.h index 30563bd25ac..e005e695962 100644 --- a/src/mame/includes/nmk16.h +++ b/src/mame/includes/nmk16.h @@ -82,8 +82,8 @@ SCREEN_UPDATE_IND16( bjtwin ); SCREEN_UPDATE_IND16( tharrier ); SCREEN_UPDATE_IND16( hachamf ); SCREEN_UPDATE_IND16( tdragon ); -SCREEN_EOF( nmk ); -SCREEN_EOF( strahl ); +SCREEN_VBLANK( nmk ); +SCREEN_VBLANK( strahl ); VIDEO_START( afega ); VIDEO_START( grdnstrm ); diff --git a/src/mame/includes/othldrby.h b/src/mame/includes/othldrby.h index 00708ba6200..c32c603602f 100644 --- a/src/mame/includes/othldrby.h +++ b/src/mame/includes/othldrby.h @@ -37,5 +37,5 @@ WRITE16_HANDLER( othldrby_vreg_addr_w ); WRITE16_HANDLER( othldrby_vreg_w ); VIDEO_START( othldrby ); -SCREEN_EOF( othldrby ); +SCREEN_VBLANK( othldrby ); SCREEN_UPDATE_IND16( othldrby ); diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h index 098118f3114..a87ef744f00 100644 --- a/src/mame/includes/pgm.h +++ b/src/mame/includes/pgm.h @@ -171,5 +171,5 @@ WRITE16_HANDLER( pgm_tx_videoram_w ); WRITE16_HANDLER( pgm_bg_videoram_w ); VIDEO_START( pgm ); -SCREEN_EOF( pgm ); +SCREEN_VBLANK( pgm ); SCREEN_UPDATE_IND16( pgm ); diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h index 16887598691..b5cc64f7679 100644 --- a/src/mame/includes/psikyo.h +++ b/src/mame/includes/psikyo.h @@ -70,4 +70,4 @@ VIDEO_START( sngkace ); VIDEO_START( psikyo ); SCREEN_UPDATE_IND16( psikyo ); SCREEN_UPDATE_IND16( psikyo_bootleg ); -SCREEN_EOF( psikyo ); +SCREEN_VBLANK( psikyo ); diff --git a/src/mame/includes/psikyosh.h b/src/mame/includes/psikyosh.h index 786a05f9f0b..69279db736c 100644 --- a/src/mame/includes/psikyosh.h +++ b/src/mame/includes/psikyosh.h @@ -46,4 +46,4 @@ public: VIDEO_START( psikyosh ); SCREEN_UPDATE_RGB32( psikyosh ); -SCREEN_EOF( psikyosh ); +SCREEN_VBLANK( psikyosh ); diff --git a/src/mame/includes/segamsys.h b/src/mame/includes/segamsys.h index 6de643804f4..47830ed3af4 100644 --- a/src/mame/includes/segamsys.h +++ b/src/mame/includes/segamsys.h @@ -15,8 +15,8 @@ extern DRIVER_INIT( megatech_bios ); extern DRIVER_INIT( hazemd_segasyse ); extern MACHINE_RESET(megatech_bios); extern MACHINE_RESET(megatech_md_sms); -extern SCREEN_EOF(megatech_bios); -extern SCREEN_EOF(megatech_md_sms); +extern SCREEN_VBLANK(megatech_bios); +extern SCREEN_VBLANK(megatech_md_sms); extern READ8_HANDLER( sms_vcounter_r ); extern READ8_HANDLER( sms_vdp_data_r ); @@ -35,12 +35,12 @@ extern READ8_HANDLER( md_sms_vdp_ctrl_r ); extern WRITE8_HANDLER( md_sms_vdp_ctrl_w ); extern VIDEO_START(sms); -extern SCREEN_EOF(sms); +extern SCREEN_VBLANK(sms); extern READ8_HANDLER( sms_vdp_2_data_r ); extern WRITE8_HANDLER( sms_vdp_2_data_w ); extern READ8_HANDLER( sms_vdp_2_ctrl_r ); extern WRITE8_HANDLER( sms_vdp_2_ctrl_w ); -extern SCREEN_EOF(systeme); +extern SCREEN_VBLANK(systeme); extern SCREEN_UPDATE_RGB32(systeme); extern MACHINE_RESET(systeme); extern UINT8* sms_mainram; diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h index e53a56e014f..818ebbbd032 100644 --- a/src/mame/includes/seta.h +++ b/src/mame/includes/seta.h @@ -120,5 +120,5 @@ SCREEN_UPDATE_IND16( usclssic ); SCREEN_UPDATE_IND16( inttoote ); SCREEN_UPDATE_IND16( setaroul ); -SCREEN_EOF( setaroul ); +SCREEN_VBLANK( setaroul ); diff --git a/src/mame/includes/seta2.h b/src/mame/includes/seta2.h index cd59fe5c2c1..0b9ab2bb3fb 100644 --- a/src/mame/includes/seta2.h +++ b/src/mame/includes/seta2.h @@ -38,4 +38,4 @@ VIDEO_START( seta2 ); VIDEO_START( seta2_xoffset ); VIDEO_START( seta2_yoffset ); SCREEN_UPDATE_IND16( seta2 ); -SCREEN_EOF( seta2 ); +SCREEN_VBLANK( seta2 ); diff --git a/src/mame/includes/shadfrce.h b/src/mame/includes/shadfrce.h index 2db245332a0..f9506e595f0 100644 --- a/src/mame/includes/shadfrce.h +++ b/src/mame/includes/shadfrce.h @@ -31,7 +31,7 @@ WRITE16_HANDLER ( shadfrce_bg1scrollx_w ); WRITE16_HANDLER ( shadfrce_bg0scrolly_w ); WRITE16_HANDLER ( shadfrce_bg1scrolly_w ); VIDEO_START( shadfrce ); -SCREEN_EOF(shadfrce); +SCREEN_VBLANK(shadfrce); SCREEN_UPDATE_IND16( shadfrce ); WRITE16_HANDLER( shadfrce_fgvideoram_w ); WRITE16_HANDLER( shadfrce_bg0videoram_w ); diff --git a/src/mame/includes/sidearms.h b/src/mame/includes/sidearms.h index 2e7cd4da486..d2dbb8fe8bd 100644 --- a/src/mame/includes/sidearms.h +++ b/src/mame/includes/sidearms.h @@ -37,4 +37,4 @@ WRITE8_HANDLER( sidearms_gfxctrl_w ); VIDEO_START( sidearms ); SCREEN_UPDATE_IND16( sidearms ); -SCREEN_EOF( sidearms ); +SCREEN_VBLANK( sidearms ); diff --git a/src/mame/includes/slapshot.h b/src/mame/includes/slapshot.h index 06f265bc569..1477d1bf8f3 100644 --- a/src/mame/includes/slapshot.h +++ b/src/mame/includes/slapshot.h @@ -59,4 +59,4 @@ public: VIDEO_START( slapshot ); SCREEN_UPDATE_IND16( slapshot ); -SCREEN_EOF( taito_no_buffer ); +SCREEN_VBLANK( taito_no_buffer ); diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h index 2576b8683a2..8cd368daa79 100644 --- a/src/mame/includes/sprint2.h +++ b/src/mame/includes/sprint2.h @@ -58,5 +58,5 @@ WRITE8_HANDLER( sprint2_video_ram_w ); PALETTE_INIT( sprint2 ); SCREEN_UPDATE_IND16( sprint2 ); VIDEO_START( sprint2 ); -SCREEN_EOF( sprint2 ); +SCREEN_VBLANK( sprint2 ); diff --git a/src/mame/includes/sprint4.h b/src/mame/includes/sprint4.h index 06d2e53c370..3f35b963772 100644 --- a/src/mame/includes/sprint4.h +++ b/src/mame/includes/sprint4.h @@ -20,7 +20,7 @@ public: PALETTE_INIT( sprint4 ); -SCREEN_EOF( sprint4 ); +SCREEN_VBLANK( sprint4 ); VIDEO_START( sprint4 ); SCREEN_UPDATE_IND16( sprint4 ); diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h index bda145b045c..5dbf429b2d5 100644 --- a/src/mame/includes/sprint8.h +++ b/src/mame/includes/sprint8.h @@ -31,7 +31,7 @@ void sprint8_set_collision(running_machine &machine, int n); /*----------- defined in video/sprint8.c -----------*/ PALETTE_INIT( sprint8 ); -SCREEN_EOF( sprint8 ); +SCREEN_VBLANK( sprint8 ); VIDEO_START( sprint8 ); SCREEN_UPDATE_IND16( sprint8 ); diff --git a/src/mame/includes/srumbler.h b/src/mame/includes/srumbler.h index fc6596b644d..474a79424b3 100644 --- a/src/mame/includes/srumbler.h +++ b/src/mame/includes/srumbler.h @@ -25,4 +25,4 @@ WRITE8_HANDLER( srumbler_4009_w ); VIDEO_START( srumbler ); SCREEN_UPDATE_IND16( srumbler ); -SCREEN_EOF( srumbler ); +SCREEN_VBLANK( srumbler ); diff --git a/src/mame/includes/sspeedr.h b/src/mame/includes/sspeedr.h index 66e6839c29a..c1dabc59166 100644 --- a/src/mame/includes/sspeedr.h +++ b/src/mame/includes/sspeedr.h @@ -38,4 +38,4 @@ WRITE8_HANDLER( sspeedr_track_ice_w ); VIDEO_START( sspeedr ); SCREEN_UPDATE_IND16( sspeedr ); -SCREEN_EOF( sspeedr ); +SCREEN_VBLANK( sspeedr ); diff --git a/src/mame/includes/ssrj.h b/src/mame/includes/ssrj.h index d8da319ca16..babd922ce15 100644 --- a/src/mame/includes/ssrj.h +++ b/src/mame/includes/ssrj.h @@ -25,5 +25,5 @@ WRITE8_HANDLER(ssrj_vram4_w); VIDEO_START( ssrj ); SCREEN_UPDATE_IND16( ssrj ); -SCREEN_EOF( ssrj ); +SCREEN_VBLANK( ssrj ); PALETTE_INIT( ssrj ); diff --git a/src/mame/includes/starshp1.h b/src/mame/includes/starshp1.h index 7108bab908b..fc28aef92cf 100644 --- a/src/mame/includes/starshp1.h +++ b/src/mame/includes/starshp1.h @@ -73,7 +73,7 @@ WRITE8_HANDLER( starshp1_playfield_w ); PALETTE_INIT( starshp1 ); SCREEN_UPDATE_IND16( starshp1 ); -SCREEN_EOF( starshp1 ); +SCREEN_VBLANK( starshp1 ); VIDEO_START( starshp1 ); diff --git a/src/mame/includes/suprnova.h b/src/mame/includes/suprnova.h index f54628b10a6..de97ee783bf 100644 --- a/src/mame/includes/suprnova.h +++ b/src/mame/includes/suprnova.h @@ -86,5 +86,5 @@ WRITE32_HANDLER ( skns_pal_regs_w ); WRITE32_HANDLER ( skns_palette_ram_w ); VIDEO_START(skns); VIDEO_RESET(skns); -SCREEN_EOF(skns); +SCREEN_VBLANK(skns); SCREEN_UPDATE_RGB32(skns); diff --git a/src/mame/includes/taito_b.h b/src/mame/includes/taito_b.h index 38b45f1121c..a30b9b7b522 100644 --- a/src/mame/includes/taito_b.h +++ b/src/mame/includes/taito_b.h @@ -59,4 +59,4 @@ VIDEO_RESET( hitice ); SCREEN_UPDATE_RGB32( realpunc ); SCREEN_UPDATE_IND16( taitob ); -SCREEN_EOF( taitob ); +SCREEN_VBLANK( taitob ); diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h index 9462bae1b3a..2f30c0d7215 100644 --- a/src/mame/includes/taito_f2.h +++ b/src/mame/includes/taito_f2.h @@ -108,11 +108,11 @@ VIDEO_START( taitof2_yesnoj ); VIDEO_START( taitof2_deadconx ); VIDEO_START( taitof2_deadconxj ); VIDEO_START( taitof2_dinorex ); -SCREEN_EOF( taitof2_no_buffer ); -SCREEN_EOF( taitof2_full_buffer_delayed ); -SCREEN_EOF( taitof2_partial_buffer_delayed ); -SCREEN_EOF( taitof2_partial_buffer_delayed_thundfox ); -SCREEN_EOF( taitof2_partial_buffer_delayed_qzchikyu ); +SCREEN_VBLANK( taitof2_no_buffer ); +SCREEN_VBLANK( taitof2_full_buffer_delayed ); +SCREEN_VBLANK( taitof2_partial_buffer_delayed ); +SCREEN_VBLANK( taitof2_partial_buffer_delayed_thundfox ); +SCREEN_VBLANK( taitof2_partial_buffer_delayed_qzchikyu ); SCREEN_UPDATE_IND16( taitof2 ); SCREEN_UPDATE_IND16( taitof2_pri ); diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h index 524168a7a8a..9072e176802 100644 --- a/src/mame/includes/taito_f3.h +++ b/src/mame/includes/taito_f3.h @@ -200,7 +200,7 @@ public: VIDEO_START( f3 ); SCREEN_UPDATE_RGB32( f3 ); -SCREEN_EOF( f3 ); +SCREEN_VBLANK( f3 ); WRITE16_HANDLER( f3_control_0_w ); WRITE16_HANDLER( f3_control_1_w ); diff --git a/src/mame/includes/taito_l.h b/src/mame/includes/taito_l.h index 7cd842331bb..822187929c3 100644 --- a/src/mame/includes/taito_l.h +++ b/src/mame/includes/taito_l.h @@ -63,7 +63,7 @@ public: /*----------- defined in video/taito_l.c -----------*/ -SCREEN_EOF( taitol ); +SCREEN_VBLANK( taitol ); VIDEO_START( taitol ); SCREEN_UPDATE_IND16( taitol ); diff --git a/src/mame/includes/tank8.h b/src/mame/includes/tank8.h index fade5fc4b29..821022bc348 100644 --- a/src/mame/includes/tank8.h +++ b/src/mame/includes/tank8.h @@ -55,7 +55,7 @@ void tank8_set_collision(running_machine &machine, int index); /*----------- defined in video/tank8.c -----------*/ PALETTE_INIT( tank8 ); -SCREEN_EOF( tank8 ); +SCREEN_VBLANK( tank8 ); VIDEO_START( tank8 ); SCREEN_UPDATE_IND16( tank8 ); diff --git a/src/mame/includes/taotaido.h b/src/mame/includes/taotaido.h index 631c33d6da5..6b38a9495aa 100644 --- a/src/mame/includes/taotaido.h +++ b/src/mame/includes/taotaido.h @@ -26,4 +26,4 @@ WRITE16_HANDLER( taotaido_tileregs_w ); WRITE16_HANDLER( taotaido_bgvideoram_w ); VIDEO_START( taotaido ); SCREEN_UPDATE_IND16( taotaido ); -SCREEN_EOF( taotaido ); +SCREEN_VBLANK( taotaido ); diff --git a/src/mame/includes/tceptor.h b/src/mame/includes/tceptor.h index 77f2ccfa018..6214b0be925 100644 --- a/src/mame/includes/tceptor.h +++ b/src/mame/includes/tceptor.h @@ -35,7 +35,7 @@ VIDEO_START( tceptor ); SCREEN_UPDATE_IND16( tceptor_2d ); SCREEN_UPDATE_IND16( tceptor_3d_left ); SCREEN_UPDATE_IND16( tceptor_3d_right ); -SCREEN_EOF( tceptor ); +SCREEN_VBLANK( tceptor ); WRITE8_HANDLER( tceptor_tile_ram_w ); WRITE8_HANDLER( tceptor_tile_attr_w ); diff --git a/src/mame/includes/tigeroad.h b/src/mame/includes/tigeroad.h index 1646c9aedbb..a6ebc0ff081 100644 --- a/src/mame/includes/tigeroad.h +++ b/src/mame/includes/tigeroad.h @@ -19,4 +19,4 @@ WRITE16_HANDLER( tigeroad_videoctrl_w ); WRITE16_HANDLER( tigeroad_scroll_w ); VIDEO_START( tigeroad ); SCREEN_UPDATE_IND16( tigeroad ); -SCREEN_EOF( tigeroad ); +SCREEN_VBLANK( tigeroad ); diff --git a/src/mame/includes/tmnt.h b/src/mame/includes/tmnt.h index 325f60a93f3..4f5503fa573 100644 --- a/src/mame/includes/tmnt.h +++ b/src/mame/includes/tmnt.h @@ -108,4 +108,4 @@ SCREEN_UPDATE_IND16( glfgreat ); SCREEN_UPDATE_IND16( tmnt2 ); SCREEN_UPDATE_IND16( thndrx2 ); -SCREEN_EOF( blswhstl ); +SCREEN_VBLANK( blswhstl ); diff --git a/src/mame/includes/tnzs.h b/src/mame/includes/tnzs.h index b8b90a80a04..2e54fe3485f 100644 --- a/src/mame/includes/tnzs.h +++ b/src/mame/includes/tnzs.h @@ -88,4 +88,4 @@ MACHINE_START( jpopnics ); PALETTE_INIT( arknoid2 ); SCREEN_UPDATE_IND16( tnzs ); -SCREEN_EOF( tnzs ); +SCREEN_VBLANK( tnzs ); diff --git a/src/mame/includes/toaplan1.h b/src/mame/includes/toaplan1.h index e85b41107ea..9c9cfebb6d1 100644 --- a/src/mame/includes/toaplan1.h +++ b/src/mame/includes/toaplan1.h @@ -147,9 +147,9 @@ WRITE16_HANDLER( toaplan1_tileram_offs_w ); READ16_HANDLER ( toaplan1_spriteram_offs_r ); WRITE16_HANDLER( toaplan1_spriteram_offs_w ); -SCREEN_EOF( rallybik ); -SCREEN_EOF( toaplan1 ); -SCREEN_EOF( samesame ); +SCREEN_VBLANK( rallybik ); +SCREEN_VBLANK( toaplan1 ); +SCREEN_VBLANK( samesame ); VIDEO_START( rallybik ); VIDEO_START( toaplan1 ); SCREEN_UPDATE_IND16( rallybik ); diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h index c7cac1b646e..d95ad982d55 100644 --- a/src/mame/includes/toaplan2.h +++ b/src/mame/includes/toaplan2.h @@ -69,7 +69,7 @@ SCREEN_UPDATE_IND16( batrider ); SCREEN_UPDATE_IND16( dogyuun ); SCREEN_UPDATE_IND16( batsugun ); -SCREEN_EOF( toaplan2 ); +SCREEN_VBLANK( toaplan2 ); /* non-vdp text layer */ WRITE16_HANDLER( toaplan2_txvideoram16_w ); diff --git a/src/mame/includes/toki.h b/src/mame/includes/toki.h index 51ba65c9c4b..fe45cf58e6a 100644 --- a/src/mame/includes/toki.h +++ b/src/mame/includes/toki.h @@ -19,8 +19,8 @@ public: /*----------- defined in video/toki.c -----------*/ VIDEO_START( toki ); -SCREEN_EOF( toki ); -SCREEN_EOF( tokib ); +SCREEN_VBLANK( toki ); +SCREEN_VBLANK( tokib ); SCREEN_UPDATE_IND16( toki ); SCREEN_UPDATE_IND16( tokib ); WRITE16_HANDLER( toki_background1_videoram16_w ); diff --git a/src/mame/includes/twin16.h b/src/mame/includes/twin16.h index 36397630b3f..c3db4a7941e 100644 --- a/src/mame/includes/twin16.h +++ b/src/mame/includes/twin16.h @@ -42,6 +42,6 @@ READ16_HANDLER( twin16_sprite_status_r ); VIDEO_START( twin16 ); SCREEN_UPDATE_IND16( twin16 ); -SCREEN_EOF( twin16 ); +SCREEN_VBLANK( twin16 ); void twin16_spriteram_process( running_machine &machine ); diff --git a/src/mame/includes/twincobr.h b/src/mame/includes/twincobr.h index 59987260c26..13171622e41 100644 --- a/src/mame/includes/twincobr.h +++ b/src/mame/includes/twincobr.h @@ -122,4 +122,4 @@ WRITE8_HANDLER( wardner_sprite_w ); VIDEO_START( toaplan0 ); SCREEN_UPDATE_IND16( toaplan0 ); -SCREEN_EOF( toaplan0 ); +SCREEN_VBLANK( toaplan0 ); diff --git a/src/mame/includes/tx1.h b/src/mame/includes/tx1.h index 760a320db8d..12bc99d93e7 100644 --- a/src/mame/includes/tx1.h +++ b/src/mame/includes/tx1.h @@ -164,7 +164,7 @@ VIDEO_START( tx1 ); SCREEN_UPDATE_IND16( tx1_left ); SCREEN_UPDATE_IND16( tx1_middle ); SCREEN_UPDATE_IND16( tx1_right ); -SCREEN_EOF( tx1 ); +SCREEN_VBLANK( tx1 ); WRITE16_HANDLER( tx1_slincs_w ); WRITE16_HANDLER( tx1_slock_w ); WRITE16_HANDLER( tx1_scolst_w ); @@ -176,7 +176,7 @@ VIDEO_START( buggyboy ); SCREEN_UPDATE_IND16( buggyboy_left ); SCREEN_UPDATE_IND16( buggyboy_middle ); SCREEN_UPDATE_IND16( buggyboy_right ); -SCREEN_EOF( buggyboy ); +SCREEN_VBLANK( buggyboy ); VIDEO_START( buggybjr ); SCREEN_UPDATE_IND16( buggybjr ); diff --git a/src/mame/includes/ultratnk.h b/src/mame/includes/ultratnk.h index 4cb440e5060..f748505139f 100644 --- a/src/mame/includes/ultratnk.h +++ b/src/mame/includes/ultratnk.h @@ -24,6 +24,6 @@ public: PALETTE_INIT( ultratnk ); VIDEO_START( ultratnk ); SCREEN_UPDATE_IND16( ultratnk ); -SCREEN_EOF( ultratnk ); +SCREEN_VBLANK( ultratnk ); WRITE8_HANDLER( ultratnk_video_ram_w ); diff --git a/src/mame/includes/wolfpack.h b/src/mame/includes/wolfpack.h index b537de19e89..2dde29be368 100644 --- a/src/mame/includes/wolfpack.h +++ b/src/mame/includes/wolfpack.h @@ -29,7 +29,7 @@ public: PALETTE_INIT( wolfpack ); SCREEN_UPDATE_IND16( wolfpack ); VIDEO_START( wolfpack ); -SCREEN_EOF( wolfpack ); +SCREEN_VBLANK( wolfpack ); WRITE8_HANDLER( wolfpack_video_invert_w ); WRITE8_HANDLER( wolfpack_ship_reflect_w ); diff --git a/src/mame/includes/xmen.h b/src/mame/includes/xmen.h index 2c451780056..d864dd93d7a 100644 --- a/src/mame/includes/xmen.h +++ b/src/mame/includes/xmen.h @@ -46,4 +46,4 @@ VIDEO_START( xmen6p ); SCREEN_UPDATE_IND16( xmen ); SCREEN_UPDATE_IND16( xmen6p_left ); SCREEN_UPDATE_IND16( xmen6p_right ); -SCREEN_EOF( xmen6p ); +SCREEN_VBLANK( xmen6p ); diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c index 2be878aa15b..e67abe68293 100644 --- a/src/mame/machine/megadriv.c +++ b/src/mame/machine/megadriv.c @@ -9396,23 +9396,26 @@ void megadriv_stop_scanline_timer(void) /* VIDEO_EOF is used to resync the scanline counters */ -SCREEN_EOF(megadriv) +SCREEN_VBLANK(megadriv) { - rectangle visarea; - int scr_width = 320; + // rising edge + if (vblank_on) + { + rectangle visarea; + int scr_width = 320; - megadrive_vblank_flag = 0; - //megadrive_irq6_pending = 0; /* NO! (breaks warlock) */ + megadrive_vblank_flag = 0; + //megadrive_irq6_pending = 0; /* NO! (breaks warlock) */ - /* Set it to -1 here, so it becomes 0 when the first timer kicks in */ - genesis_scanline_counter = -1; - megadrive_sprite_collision=0;//? when to reset this .. - megadrive_imode = MEGADRIVE_REG0C_INTERLEAVE; // can't change mid-frame.. - megadrive_imode_odd_frame^=1; -// cputag_set_input_line(machine, "genesis_snd_z80", 0, CLEAR_LINE); // if the z80 interrupt hasn't happened by now, clear it.. + /* Set it to -1 here, so it becomes 0 when the first timer kicks in */ + genesis_scanline_counter = -1; + megadrive_sprite_collision=0;//? when to reset this .. + megadrive_imode = MEGADRIVE_REG0C_INTERLEAVE; // can't change mid-frame.. + megadrive_imode_odd_frame^=1; +// cputag_set_input_line(machine, "genesis_snd_z80", 0, CLEAR_LINE); // if the z80 interrupt hasn't happened by now, clear it.. - if (input_port_read_safe(screen.machine(), "RESET", 0x00) & 0x01) - cputag_set_input_line(screen.machine(), "maincpu", INPUT_LINE_RESET, PULSE_LINE); + if (input_port_read_safe(screen.machine(), "RESET", 0x00) & 0x01) + cputag_set_input_line(screen.machine(), "maincpu", INPUT_LINE_RESET, PULSE_LINE); /* int megadrive_total_scanlines = 262; @@ -9424,88 +9427,89 @@ int megadrive_z80irq_hpos = 320; */ - if (MEGADRIVE_REG01_240_LINE) - { - if (!megadrive_region_pal) + if (MEGADRIVE_REG01_240_LINE) { - /* this is invalid! */ - megadrive_visible_scanlines = 240; - megadrive_total_scanlines = 262; - megadrive_irq6_scanline = 240; - megadrive_z80irq_scanline = 240; + if (!megadrive_region_pal) + { + /* this is invalid! */ + megadrive_visible_scanlines = 240; + megadrive_total_scanlines = 262; + megadrive_irq6_scanline = 240; + megadrive_z80irq_scanline = 240; + } + else + { + megadrive_visible_scanlines = 240; + megadrive_total_scanlines = 313; + megadrive_irq6_scanline = 240; + megadrive_z80irq_scanline = 240; + } } else { - megadrive_visible_scanlines = 240; - megadrive_total_scanlines = 313; - megadrive_irq6_scanline = 240; - megadrive_z80irq_scanline = 240; + if (!megadrive_region_pal) + { + megadrive_visible_scanlines = 224; + megadrive_total_scanlines=262; + megadrive_irq6_scanline = 224; + megadrive_z80irq_scanline = 224; + } + else + { + megadrive_visible_scanlines = 224; + megadrive_total_scanlines=313; + megadrive_irq6_scanline = 224; + megadrive_z80irq_scanline = 224; + } } - } - else - { - if (!megadrive_region_pal) + + if (megadrive_imode==3) { - megadrive_visible_scanlines = 224; - megadrive_total_scanlines=262; - megadrive_irq6_scanline = 224; - megadrive_z80irq_scanline = 224; + megadrive_visible_scanlines<<=1; + megadrive_total_scanlines<<=1; + megadrive_irq6_scanline <<=1; + megadrive_z80irq_scanline <<=1; } - else + + + //get_hposition(); + switch (MEGADRIVE_REG0C_RS0 | (MEGADRIVE_REG0C_RS1 << 1)) { - megadrive_visible_scanlines = 224; - megadrive_total_scanlines=313; - megadrive_irq6_scanline = 224; - megadrive_z80irq_scanline = 224; + /* note, add 240 mode + init new timings! */ + case 0:scr_width = 256;break;// configure_screen(0, 256-1, megadrive_visible_scanlines-1,(double)megadriv_framerate); break; + case 1:scr_width = 256;break;// configure_screen(0, 256-1, megadrive_visible_scanlines-1,(double)megadriv_framerate); mame_printf_debug("invalid screenmode!\n"); break; + case 2:scr_width = 320;break;// configure_screen(0, 320-1, megadrive_visible_scanlines-1,(double)megadriv_framerate); break; /* technically invalid, but used in rare cases */ + case 3:scr_width = 320;break;// configure_screen(0, 320-1, megadrive_visible_scanlines-1,(double)megadriv_framerate); break; } - } - - if (megadrive_imode==3) - { - megadrive_visible_scanlines<<=1; - megadrive_total_scanlines<<=1; - megadrive_irq6_scanline <<=1; - megadrive_z80irq_scanline <<=1; - } +// mame_printf_debug("my mode %02x", megadrive_vdp_register[0x0c]); + visarea.min_x = 0; + visarea.max_x = scr_width-1; + visarea.min_y = 0; + visarea.max_y = megadrive_visible_scanlines-1; - //get_hposition(); - switch (MEGADRIVE_REG0C_RS0 | (MEGADRIVE_REG0C_RS1 << 1)) - { - /* note, add 240 mode + init new timings! */ - case 0:scr_width = 256;break;// configure_screen(0, 256-1, megadrive_visible_scanlines-1,(double)megadriv_framerate); break; - case 1:scr_width = 256;break;// configure_screen(0, 256-1, megadrive_visible_scanlines-1,(double)megadriv_framerate); mame_printf_debug("invalid screenmode!\n"); break; - case 2:scr_width = 320;break;// configure_screen(0, 320-1, megadrive_visible_scanlines-1,(double)megadriv_framerate); break; /* technically invalid, but used in rare cases */ - case 3:scr_width = 320;break;// configure_screen(0, 320-1, megadrive_visible_scanlines-1,(double)megadriv_framerate); break; - } -// mame_printf_debug("my mode %02x", megadrive_vdp_register[0x0c]); + screen.machine().primary_screen->configure(scr_width, megadrive_visible_scanlines, visarea, HZ_TO_ATTOSECONDS(megadriv_framerate)); - visarea.min_x = 0; - visarea.max_x = scr_width-1; - visarea.min_y = 0; - visarea.max_y = megadrive_visible_scanlines-1; + if (0) + { + //int xxx; +// UINT64 frametime; - screen.machine().primary_screen->configure(scr_width, megadrive_visible_scanlines, visarea, HZ_TO_ATTOSECONDS(megadriv_framerate)); + // /* reference */ +// frametime = ATTOSECONDS_PER_SECOND/megadriv_framerate; - if (0) - { - //int xxx; -// UINT64 frametime; + //time_elapsed_since_crap = frame_timer->time_elapsed(); + //xxx = screen.machine().device<cpudevice>("maincpu")->attotime_to_cycles(time_elapsed_since_crap); + //mame_printf_debug("---------- cycles %d, %08x %08x\n",xxx, (UINT32)(time_elapsed_since_crap.attoseconds>>32),(UINT32)(time_elapsed_since_crap.attoseconds&0xffffffff)); + //mame_printf_debug("---------- framet %d, %08x %08x\n",xxx, (UINT32)(frametime>>32),(UINT32)(frametime&0xffffffff)); + frame_timer->adjust(attotime::zero); + } - // /* reference */ -// frametime = ATTOSECONDS_PER_SECOND/megadriv_framerate; + scanline_timer->adjust(attotime::zero); - //time_elapsed_since_crap = frame_timer->time_elapsed(); - //xxx = screen.machine().device<cpudevice>("maincpu")->attotime_to_cycles(time_elapsed_since_crap); - //mame_printf_debug("---------- cycles %d, %08x %08x\n",xxx, (UINT32)(time_elapsed_since_crap.attoseconds>>32),(UINT32)(time_elapsed_since_crap.attoseconds&0xffffffff)); - //mame_printf_debug("---------- framet %d, %08x %08x\n",xxx, (UINT32)(frametime>>32),(UINT32)(frametime&0xffffffff)); - frame_timer->adjust(attotime::zero); + if(_32x_is_connected) + _32x_hcount_compare_val = -1; } - - scanline_timer->adjust(attotime::zero); - - if(_32x_is_connected) - _32x_hcount_compare_val = -1; } @@ -9565,7 +9569,7 @@ MACHINE_CONFIG_FRAGMENT( md_ntsc ) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1) MCFG_SCREEN_UPDATE_STATIC(megadriv) /* Copies a bitmap */ - MCFG_SCREEN_EOF_STATIC(megadriv) /* Used to Sync the timing */ + MCFG_SCREEN_VBLANK_STATIC(megadriv) /* Used to Sync the timing */ MCFG_NVRAM_HANDLER(megadriv) @@ -9613,7 +9617,7 @@ MACHINE_CONFIG_FRAGMENT( md_pal ) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1) MCFG_SCREEN_UPDATE_STATIC(megadriv) /* Copies a bitmap */ - MCFG_SCREEN_EOF_STATIC(megadriv) /* Used to Sync the timing */ + MCFG_SCREEN_VBLANK_STATIC(megadriv) /* Used to Sync the timing */ MCFG_NVRAM_HANDLER(megadriv) diff --git a/src/mame/machine/segamsys.c b/src/mame/machine/segamsys.c index 36e8d535acb..fbcbe640462 100644 --- a/src/mame/machine/segamsys.c +++ b/src/mame/machine/segamsys.c @@ -1181,14 +1181,17 @@ static void end_of_frame(running_machine &machine, struct sms_vdp *chip) } -SCREEN_EOF(sms) +SCREEN_VBLANK(sms) { - end_of_frame(screen.machine(), md_sms_vdp); - - // the SMS has a 'RESET' button on the machine, it generates an NMI - if (input_port_read_safe(screen.machine(),"PAUSE",0x00)) - cputag_set_input_line(screen.machine(), "maincpu", INPUT_LINE_NMI, PULSE_LINE); + // rising edge + if (vblank_on) + { + end_of_frame(screen.machine(), md_sms_vdp); + // the SMS has a 'RESET' button on the machine, it generates an NMI + if (input_port_read_safe(screen.machine(),"PAUSE",0x00)) + cputag_set_input_line(screen.machine(), "maincpu", INPUT_LINE_NMI, PULSE_LINE); + } } @@ -1250,21 +1253,29 @@ MACHINE_RESET(megatech_bios) vdp1->sms_scanline_timer->adjust(attotime::zero); } -SCREEN_EOF(systeme) +SCREEN_VBLANK(systeme) { - end_of_frame(screen.machine(), vdp1); - end_of_frame(screen.machine(), vdp2); + // rising edge + if (vblank_on) + { + end_of_frame(screen.machine(), vdp1); + end_of_frame(screen.machine(), vdp2); + } } -SCREEN_EOF(megatech_md_sms) +SCREEN_VBLANK(megatech_md_sms) { - end_of_frame(screen.machine(), md_sms_vdp); + // rising edge + if (vblank_on) + end_of_frame(screen.machine(), md_sms_vdp); } -SCREEN_EOF(megatech_bios) +SCREEN_VBLANK(megatech_bios) { - end_of_frame(screen.machine(), vdp1); + // rising edge + if (vblank_on) + end_of_frame(screen.machine(), vdp1); } SCREEN_UPDATE_RGB32(megatech_md_sms) @@ -1729,7 +1740,7 @@ MACHINE_CONFIG_START( sms, driver_device ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223) // MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 191) MCFG_SCREEN_UPDATE_STATIC(megatech_md_sms) /* Copies a bitmap */ - MCFG_SCREEN_EOF_STATIC(sms) /* Used to Sync the timing */ + MCFG_SCREEN_VBLANK_STATIC(sms) /* Used to Sync the timing */ MCFG_PALETTE_LENGTH(0x200) diff --git a/src/mame/video/airbustr.c b/src/mame/video/airbustr.c index 8fb38918549..987a29b0ac2 100644 --- a/src/mame/video/airbustr.c +++ b/src/mame/video/airbustr.c @@ -146,11 +146,15 @@ SCREEN_UPDATE_IND16( airbustr ) return 0; } -SCREEN_EOF( airbustr ) +SCREEN_VBLANK( airbustr ) { - airbustr_state *state = screen.machine().driver_data<airbustr_state>(); + // rising edge + if (vblank_on) + { + airbustr_state *state = screen.machine().driver_data<airbustr_state>(); - // update the sprite bitmap - pandora_eof(state->m_pandora); + // update the sprite bitmap + pandora_eof(state->m_pandora); + } } diff --git a/src/mame/video/armedf.c b/src/mame/video/armedf.c index b83bd555828..37c5502789e 100644 --- a/src/mame/video/armedf.c +++ b/src/mame/video/armedf.c @@ -431,9 +431,13 @@ SCREEN_UPDATE_IND16( armedf ) } -SCREEN_EOF( armedf ) +SCREEN_VBLANK( armedf ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space, 0, 0, 0xffff); + buffer_spriteram16_w(space, 0, 0, 0xffff); + } } diff --git a/src/mame/video/atarig1.c b/src/mame/video/atarig1.c index 2d1c144a191..49ca351b389 100644 --- a/src/mame/video/atarig1.c +++ b/src/mame/video/atarig1.c @@ -166,9 +166,13 @@ SCREEN_UPDATE_IND16( atarig1 ) return 0; } -SCREEN_EOF( atarig1 ) +SCREEN_VBLANK( atarig1 ) { - atarig1_state *state = screen.machine().driver_data<atarig1_state>(); + // rising edge + if (vblank_on) + { + atarig1_state *state = screen.machine().driver_data<atarig1_state>(); - atarirle_eof(state->m_rle); + atarirle_eof(state->m_rle); + } } diff --git a/src/mame/video/atarig42.c b/src/mame/video/atarig42.c index abcd53be806..5f50a26c194 100644 --- a/src/mame/video/atarig42.c +++ b/src/mame/video/atarig42.c @@ -227,9 +227,13 @@ SCREEN_UPDATE_IND16( atarig42 ) return 0; } -SCREEN_EOF( atarig42 ) +SCREEN_VBLANK( atarig42 ) { - atarig42_state *state = screen.machine().driver_data<atarig42_state>(); + // rising edge + if (vblank_on) + { + atarig42_state *state = screen.machine().driver_data<atarig42_state>(); - atarirle_eof(state->m_rle); + atarirle_eof(state->m_rle); + } } diff --git a/src/mame/video/atarigt.c b/src/mame/video/atarigt.c index 9a4c7842c49..35f8c2b281b 100644 --- a/src/mame/video/atarigt.c +++ b/src/mame/video/atarigt.c @@ -632,9 +632,13 @@ SCREEN_UPDATE_RGB32( atarigt ) return 0; } -SCREEN_EOF( atarigt ) +SCREEN_VBLANK( atarigt ) { - atarigt_state *state = screen.machine().driver_data<atarigt_state>(); + // rising edge + if (vblank_on) + { + atarigt_state *state = screen.machine().driver_data<atarigt_state>(); - atarirle_eof(state->m_rle); + atarirle_eof(state->m_rle); + } } diff --git a/src/mame/video/atarigx2.c b/src/mame/video/atarigx2.c index 7a41f2a4af6..ef2c7d50727 100644 --- a/src/mame/video/atarigx2.c +++ b/src/mame/video/atarigx2.c @@ -220,9 +220,13 @@ SCREEN_UPDATE_IND16( atarigx2 ) return 0; } -SCREEN_EOF( atarigx2 ) +SCREEN_VBLANK( atarigx2 ) { - atarigx2_state *state = screen.machine().driver_data<atarigx2_state>(); + // rising edge + if (vblank_on) + { + atarigx2_state *state = screen.machine().driver_data<atarigx2_state>(); - atarirle_eof(state->m_rle); + atarirle_eof(state->m_rle); + } } diff --git a/src/mame/video/baraduke.c b/src/mame/video/baraduke.c index 9840da91e27..7296534e8e0 100644 --- a/src/mame/video/baraduke.c +++ b/src/mame/video/baraduke.c @@ -340,20 +340,24 @@ SCREEN_UPDATE_IND16( baraduke ) } -SCREEN_EOF( baraduke ) +SCREEN_VBLANK( baraduke ) { - baraduke_state *state = screen.machine().driver_data<baraduke_state>(); - if (state->m_copy_sprites) + // rising edge + if (vblank_on) { - UINT8 *spriteram = state->m_spriteram + 0x1800; - int i,j; - - for (i = 0;i < 0x800;i += 16) + baraduke_state *state = screen.machine().driver_data<baraduke_state>(); + if (state->m_copy_sprites) { - for (j = 10;j < 16;j++) - spriteram[i+j] = spriteram[i+j - 6]; - } + UINT8 *spriteram = state->m_spriteram + 0x1800; + int i,j; - state->m_copy_sprites = 0; + for (i = 0;i < 0x800;i += 16) + { + for (j = 10;j < 16;j++) + spriteram[i+j] = spriteram[i+j - 6]; + } + + state->m_copy_sprites = 0; + } } } diff --git a/src/mame/video/bionicc.c b/src/mame/video/bionicc.c index 2f66d01995e..ab9eee12fac 100644 --- a/src/mame/video/bionicc.c +++ b/src/mame/video/bionicc.c @@ -260,9 +260,13 @@ SCREEN_UPDATE_IND16( bionicc ) return 0; } -SCREEN_EOF( bionicc ) +SCREEN_VBLANK( bionicc ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space, 0, 0, 0xffff); + buffer_spriteram16_w(space, 0, 0, 0xffff); + } } diff --git a/src/mame/video/bking.c b/src/mame/video/bking.c index 8d52839527f..c9014182f78 100644 --- a/src/mame/video/bking.c +++ b/src/mame/video/bking.c @@ -278,80 +278,84 @@ SCREEN_UPDATE_IND16( bking ) } -SCREEN_EOF( bking ) +SCREEN_VBLANK( bking ) { - bking_state *state = screen.machine().driver_data<bking_state>(); - const rectangle rect(0, 7, 0, 15); - - int xld = 0; - int yld = 0; - - UINT32 latch = 0; - - if (state->m_pc3259_mask == 6) /* player 1 */ + // rising edge + if (vblank_on) { - xld = state->m_xld1; - yld = state->m_yld1; + bking_state *state = screen.machine().driver_data<bking_state>(); + const rectangle rect(0, 7, 0, 15); - drawgfx_opaque(state->m_tmp_bitmap2, rect, screen.machine().gfx[2], - state->m_ball1_pic, - 0, - 0, 0, - 0, 0); + int xld = 0; + int yld = 0; - latch = 0x0c00; - } + UINT32 latch = 0; - if (state->m_pc3259_mask == 3) /* player 2 */ - { - xld = state->m_xld2; - yld = state->m_yld2; + if (state->m_pc3259_mask == 6) /* player 1 */ + { + xld = state->m_xld1; + yld = state->m_yld1; - drawgfx_opaque(state->m_tmp_bitmap2, rect, screen.machine().gfx[3], - state->m_ball2_pic, - 0, - 0, 0, - 0, 0); + drawgfx_opaque(state->m_tmp_bitmap2, rect, screen.machine().gfx[2], + state->m_ball1_pic, + 0, + 0, 0, + 0, 0); - latch = 0x0400; - } + latch = 0x0c00; + } - tilemap_set_scrollx(state->m_bg_tilemap, 0, flip_screen_get(screen.machine()) ? -xld : xld); - tilemap_set_scrolly(state->m_bg_tilemap, 0, flip_screen_get(screen.machine()) ? -yld : yld); + if (state->m_pc3259_mask == 3) /* player 2 */ + { + xld = state->m_xld2; + yld = state->m_yld2; - tilemap_draw(state->m_tmp_bitmap1, rect, state->m_bg_tilemap, 0, 0); + drawgfx_opaque(state->m_tmp_bitmap2, rect, screen.machine().gfx[3], + state->m_ball2_pic, + 0, + 0, 0, + 0, 0); - tilemap_set_scrollx(state->m_bg_tilemap, 0, 0); - tilemap_set_scrolly(state->m_bg_tilemap, 0, 0); + latch = 0x0400; + } - if (latch != 0) - { - const UINT8* MASK = screen.machine().region("user1")->base() + 8 * state->m_hit; + tilemap_set_scrollx(state->m_bg_tilemap, 0, flip_screen_get(screen.machine()) ? -xld : xld); + tilemap_set_scrolly(state->m_bg_tilemap, 0, flip_screen_get(screen.machine()) ? -yld : yld); - int x; - int y; + tilemap_draw(state->m_tmp_bitmap1, rect, state->m_bg_tilemap, 0, 0); - for (y = rect.min_y; y <= rect.max_y; y++) + tilemap_set_scrollx(state->m_bg_tilemap, 0, 0); + tilemap_set_scrolly(state->m_bg_tilemap, 0, 0); + + if (latch != 0) { - const UINT16* p0 = &state->m_tmp_bitmap1.pix16(y); - const UINT16* p1 = &state->m_tmp_bitmap2.pix16(y); + const UINT8* MASK = screen.machine().region("user1")->base() + 8 * state->m_hit; + + int x; + int y; - for (x = rect.min_x; x <= rect.max_x; x++) + for (y = rect.min_y; y <= rect.max_y; y++) { - if (MASK[p0[x] & 7] && p1[x]) + const UINT16* p0 = &state->m_tmp_bitmap1.pix16(y); + const UINT16* p1 = &state->m_tmp_bitmap2.pix16(y); + + for (x = rect.min_x; x <= rect.max_x; x++) { - int col = (xld + x) / 8 + 1; - int row = (yld + y) / 8 + 0; + if (MASK[p0[x] & 7] && p1[x]) + { + int col = (xld + x) / 8 + 1; + int row = (yld + y) / 8 + 0; - latch |= (flip_screen_get(screen.machine()) ? 31 - col : col) << 0; - latch |= (flip_screen_get(screen.machine()) ? 31 - row : row) << 5; + latch |= (flip_screen_get(screen.machine()) ? 31 - col : col) << 0; + latch |= (flip_screen_get(screen.machine()) ? 31 - row : row) << 5; - state->m_pc3259_output[0] = (latch >> 0x0) & 0xf; - state->m_pc3259_output[1] = (latch >> 0x4) & 0xf; - state->m_pc3259_output[2] = (latch >> 0x8) & 0xf; - state->m_pc3259_output[3] = (latch >> 0xc) & 0xf; + state->m_pc3259_output[0] = (latch >> 0x0) & 0xf; + state->m_pc3259_output[1] = (latch >> 0x4) & 0xf; + state->m_pc3259_output[2] = (latch >> 0x8) & 0xf; + state->m_pc3259_output[3] = (latch >> 0xc) & 0xf; - return; + return; + } } } } diff --git a/src/mame/video/blktiger.c b/src/mame/video/blktiger.c index c2d44cd0dc2..30f2ad6e371 100644 --- a/src/mame/video/blktiger.c +++ b/src/mame/video/blktiger.c @@ -251,9 +251,13 @@ SCREEN_UPDATE_IND16( blktiger ) return 0; } -SCREEN_EOF( blktiger ) +SCREEN_VBLANK( blktiger ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space, 0, 0); + buffer_spriteram_w(space, 0, 0); + } } diff --git a/src/mame/video/bosco.c b/src/mame/video/bosco.c index 619a8ccf301..35cbed8c32b 100644 --- a/src/mame/video/bosco.c +++ b/src/mame/video/bosco.c @@ -317,12 +317,16 @@ SCREEN_UPDATE_IND16( bosco ) } -SCREEN_EOF( bosco ) +SCREEN_VBLANK( bosco ) { - bosco_state *state = screen.machine().driver_data<bosco_state>(); - static const int speedsx[8] = { -1, -2, -3, 0, 3, 2, 1, 0 }; - static const int speedsy[8] = { 0, -1, -2, -3, 0, 3, 2, 1 }; + // rising edge + if (vblank_on) + { + bosco_state *state = screen.machine().driver_data<bosco_state>(); + static const int speedsx[8] = { -1, -2, -3, 0, 3, 2, 1, 0 }; + static const int speedsy[8] = { 0, -1, -2, -3, 0, 3, 2, 1 }; - state->m_stars_scrollx += speedsx[state->m_bosco_starcontrol[0] & 0x07]; - state->m_stars_scrolly += speedsy[(state->m_bosco_starcontrol[0] & 0x38) >> 3]; + state->m_stars_scrollx += speedsx[state->m_bosco_starcontrol[0] & 0x07]; + state->m_stars_scrolly += speedsy[(state->m_bosco_starcontrol[0] & 0x38) >> 3]; + } } diff --git a/src/mame/video/carpolo.c b/src/mame/video/carpolo.c index be7abffe459..8ad3c9e0760 100644 --- a/src/mame/video/carpolo.c +++ b/src/mame/video/carpolo.c @@ -548,182 +548,186 @@ static int check_sprite_border_collision(running_machine &machine, UINT8 x1, UIN } -SCREEN_EOF( carpolo ) +SCREEN_VBLANK( carpolo ) { - carpolo_state *state = screen.machine().driver_data<carpolo_state>(); - int col_x, col_y; - int car1_x, car2_x, car3_x, car4_x, ball_x; - int car1_y, car2_y, car3_y, car4_y, ball_y; - int car1_code, car2_code, car3_code, car4_code, ball_code; - int car1_flipy, car2_flipy, car3_flipy, car4_flipy, ball_flipy; - - - /* check car-car collision first */ - - car1_x = state->m_spriteram[0x00]; - car1_y = state->m_spriteram[0x01]; - remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0c] & 0x0f, &car1_code, &car1_flipy); - - car2_x = state->m_spriteram[0x02]; - car2_y = state->m_spriteram[0x03]; - remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0c] >> 4, &car2_code, &car2_flipy); - - car3_x = state->m_spriteram[0x04]; - car3_y = state->m_spriteram[0x05]; - remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0d] & 0x0f, &car3_code, &car3_flipy); - - car4_x = state->m_spriteram[0x06]; - car4_y = state->m_spriteram[0x07]; - remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0d] >> 4, &car4_code, &car4_flipy); - - ball_x = state->m_spriteram[0x08]; - ball_y = state->m_spriteram[0x09]; - remap_sprite_code(screen.machine(), 1, state->m_spriteram[0x0e] & 0x0f, &ball_code, &ball_flipy); - - - /* cars 1 and 2 */ - if (check_sprite_sprite_collision(screen.machine(), - car1_x, car1_y, car1_code, car1_flipy, - car2_x, car2_y, car2_code, car2_flipy, - &col_x, &col_y)) - carpolo_generate_car_car_interrupt(screen.machine(), 0, 1); - - /* cars 1 and 3 */ - else if (check_sprite_sprite_collision(screen.machine(), - car1_x, car1_y, car1_code, car1_flipy, - car3_x, car3_y, car3_code, car3_flipy, - &col_x, &col_y)) - carpolo_generate_car_car_interrupt(screen.machine(), 0, 2); - - /* cars 1 and 4 */ - else if (check_sprite_sprite_collision(screen.machine(), - car1_x, car1_y, car1_code, car1_flipy, - car4_x, car4_y, car4_code, car4_flipy, - &col_x, &col_y)) - carpolo_generate_car_car_interrupt(screen.machine(), 0, 3); - - /* cars 2 and 3 */ - else if (check_sprite_sprite_collision(screen.machine(), - car2_x, car2_y, car2_code, car2_flipy, - car3_x, car3_y, car3_code, car3_flipy, - &col_x, &col_y)) - carpolo_generate_car_car_interrupt(screen.machine(), 1, 2); - - /* cars 2 and 4 */ - else if (check_sprite_sprite_collision(screen.machine(), - car2_x, car2_y, car2_code, car2_flipy, - car4_x, car4_y, car4_code, car4_flipy, - &col_x, &col_y)) - carpolo_generate_car_car_interrupt(screen.machine(), 1, 3); - - /* cars 3 and 4 */ - else if (check_sprite_sprite_collision(screen.machine(), - car3_x, car3_y, car3_code, car3_flipy, - car4_x, car4_y, car4_code, car4_flipy, - &col_x, &col_y)) - carpolo_generate_car_car_interrupt(screen.machine(), 2, 3); - - - - /* check car-ball collision */ - if (check_sprite_sprite_collision(screen.machine(), - car1_x, car1_y, car1_code, car1_flipy, - ball_x, ball_y, ball_code, ball_flipy, - &col_x, &col_y)) - carpolo_generate_car_ball_interrupt(screen.machine(), 0, col_x, col_y); - - else if (check_sprite_sprite_collision(screen.machine(), - car2_x, car2_y, car2_code, car2_flipy, - ball_x, ball_y, ball_code, ball_flipy, - &col_x, &col_y)) - carpolo_generate_car_ball_interrupt(screen.machine(), 1, col_x, col_y); - - else if (check_sprite_sprite_collision(screen.machine(), - car3_x, car3_y, car3_code, car3_flipy, - ball_x, ball_y, ball_code, ball_flipy, - &col_x, &col_y)) - carpolo_generate_car_ball_interrupt(screen.machine(), 2, col_x, col_y); - - else if (check_sprite_sprite_collision(screen.machine(), - car4_x, car4_y, car4_code, car4_flipy, - ball_x, ball_y, ball_code, ball_flipy, - &col_x, &col_y)) - carpolo_generate_car_ball_interrupt(screen.machine(), 3, col_x, col_y); - - - /* check car-goal collision */ - if (check_sprite_left_goal_collision(screen.machine(), car1_x, car1_y, car1_code, car1_flipy, 1)) - carpolo_generate_car_goal_interrupt(screen.machine(), 0, 0); - - else if (check_sprite_right_goal_collision(screen.machine(), car1_x, car1_y, car1_code, car1_flipy, 1)) - carpolo_generate_car_goal_interrupt(screen.machine(), 0, 1); + // rising edge + if (vblank_on) + { + carpolo_state *state = screen.machine().driver_data<carpolo_state>(); + int col_x, col_y; + int car1_x, car2_x, car3_x, car4_x, ball_x; + int car1_y, car2_y, car3_y, car4_y, ball_y; + int car1_code, car2_code, car3_code, car4_code, ball_code; + int car1_flipy, car2_flipy, car3_flipy, car4_flipy, ball_flipy; + + + /* check car-car collision first */ + + car1_x = state->m_spriteram[0x00]; + car1_y = state->m_spriteram[0x01]; + remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0c] & 0x0f, &car1_code, &car1_flipy); + + car2_x = state->m_spriteram[0x02]; + car2_y = state->m_spriteram[0x03]; + remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0c] >> 4, &car2_code, &car2_flipy); + + car3_x = state->m_spriteram[0x04]; + car3_y = state->m_spriteram[0x05]; + remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0d] & 0x0f, &car3_code, &car3_flipy); + + car4_x = state->m_spriteram[0x06]; + car4_y = state->m_spriteram[0x07]; + remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0d] >> 4, &car4_code, &car4_flipy); + + ball_x = state->m_spriteram[0x08]; + ball_y = state->m_spriteram[0x09]; + remap_sprite_code(screen.machine(), 1, state->m_spriteram[0x0e] & 0x0f, &ball_code, &ball_flipy); + + + /* cars 1 and 2 */ + if (check_sprite_sprite_collision(screen.machine(), + car1_x, car1_y, car1_code, car1_flipy, + car2_x, car2_y, car2_code, car2_flipy, + &col_x, &col_y)) + carpolo_generate_car_car_interrupt(screen.machine(), 0, 1); + + /* cars 1 and 3 */ + else if (check_sprite_sprite_collision(screen.machine(), + car1_x, car1_y, car1_code, car1_flipy, + car3_x, car3_y, car3_code, car3_flipy, + &col_x, &col_y)) + carpolo_generate_car_car_interrupt(screen.machine(), 0, 2); + + /* cars 1 and 4 */ + else if (check_sprite_sprite_collision(screen.machine(), + car1_x, car1_y, car1_code, car1_flipy, + car4_x, car4_y, car4_code, car4_flipy, + &col_x, &col_y)) + carpolo_generate_car_car_interrupt(screen.machine(), 0, 3); + + /* cars 2 and 3 */ + else if (check_sprite_sprite_collision(screen.machine(), + car2_x, car2_y, car2_code, car2_flipy, + car3_x, car3_y, car3_code, car3_flipy, + &col_x, &col_y)) + carpolo_generate_car_car_interrupt(screen.machine(), 1, 2); + + /* cars 2 and 4 */ + else if (check_sprite_sprite_collision(screen.machine(), + car2_x, car2_y, car2_code, car2_flipy, + car4_x, car4_y, car4_code, car4_flipy, + &col_x, &col_y)) + carpolo_generate_car_car_interrupt(screen.machine(), 1, 3); + + /* cars 3 and 4 */ + else if (check_sprite_sprite_collision(screen.machine(), + car3_x, car3_y, car3_code, car3_flipy, + car4_x, car4_y, car4_code, car4_flipy, + &col_x, &col_y)) + carpolo_generate_car_car_interrupt(screen.machine(), 2, 3); + + + + /* check car-ball collision */ + if (check_sprite_sprite_collision(screen.machine(), + car1_x, car1_y, car1_code, car1_flipy, + ball_x, ball_y, ball_code, ball_flipy, + &col_x, &col_y)) + carpolo_generate_car_ball_interrupt(screen.machine(), 0, col_x, col_y); + + else if (check_sprite_sprite_collision(screen.machine(), + car2_x, car2_y, car2_code, car2_flipy, + ball_x, ball_y, ball_code, ball_flipy, + &col_x, &col_y)) + carpolo_generate_car_ball_interrupt(screen.machine(), 1, col_x, col_y); + + else if (check_sprite_sprite_collision(screen.machine(), + car3_x, car3_y, car3_code, car3_flipy, + ball_x, ball_y, ball_code, ball_flipy, + &col_x, &col_y)) + carpolo_generate_car_ball_interrupt(screen.machine(), 2, col_x, col_y); + + else if (check_sprite_sprite_collision(screen.machine(), + car4_x, car4_y, car4_code, car4_flipy, + ball_x, ball_y, ball_code, ball_flipy, + &col_x, &col_y)) + carpolo_generate_car_ball_interrupt(screen.machine(), 3, col_x, col_y); + + + /* check car-goal collision */ + if (check_sprite_left_goal_collision(screen.machine(), car1_x, car1_y, car1_code, car1_flipy, 1)) + carpolo_generate_car_goal_interrupt(screen.machine(), 0, 0); - else if (check_sprite_left_goal_collision(screen.machine(), car2_x, car2_y, car2_code, car2_flipy, 1)) - carpolo_generate_car_goal_interrupt(screen.machine(), 1, 0); - - else if (check_sprite_right_goal_collision(screen.machine(), car2_x, car2_y, car2_code, car2_flipy, 1)) - carpolo_generate_car_goal_interrupt(screen.machine(), 1, 1); + else if (check_sprite_right_goal_collision(screen.machine(), car1_x, car1_y, car1_code, car1_flipy, 1)) + carpolo_generate_car_goal_interrupt(screen.machine(), 0, 1); - else if (check_sprite_left_goal_collision(screen.machine(), car3_x, car3_y, car3_code, car3_flipy, 1)) - carpolo_generate_car_goal_interrupt(screen.machine(), 2, 0); - - else if (check_sprite_right_goal_collision(screen.machine(), car3_x, car3_y, car3_code, car3_flipy, 1)) - carpolo_generate_car_goal_interrupt(screen.machine(), 2, 1); - - else if (check_sprite_left_goal_collision(screen.machine(), car4_x, car4_y, car4_code, car4_flipy, 1)) - carpolo_generate_car_goal_interrupt(screen.machine(), 3, 0); - - else if (check_sprite_right_goal_collision(screen.machine(), car4_x, car4_y, car4_code, car4_flipy, 1)) - carpolo_generate_car_goal_interrupt(screen.machine(), 3, 1); + else if (check_sprite_left_goal_collision(screen.machine(), car2_x, car2_y, car2_code, car2_flipy, 1)) + carpolo_generate_car_goal_interrupt(screen.machine(), 1, 0); + + else if (check_sprite_right_goal_collision(screen.machine(), car2_x, car2_y, car2_code, car2_flipy, 1)) + carpolo_generate_car_goal_interrupt(screen.machine(), 1, 1); + else if (check_sprite_left_goal_collision(screen.machine(), car3_x, car3_y, car3_code, car3_flipy, 1)) + carpolo_generate_car_goal_interrupt(screen.machine(), 2, 0); + + else if (check_sprite_right_goal_collision(screen.machine(), car3_x, car3_y, car3_code, car3_flipy, 1)) + carpolo_generate_car_goal_interrupt(screen.machine(), 2, 1); + + else if (check_sprite_left_goal_collision(screen.machine(), car4_x, car4_y, car4_code, car4_flipy, 1)) + carpolo_generate_car_goal_interrupt(screen.machine(), 3, 0); + + else if (check_sprite_right_goal_collision(screen.machine(), car4_x, car4_y, car4_code, car4_flipy, 1)) + carpolo_generate_car_goal_interrupt(screen.machine(), 3, 1); - /* check ball collision with static screen elements */ - { - int col; - - col = check_sprite_left_goal_collision(screen.machine(), ball_x, ball_y, ball_code, ball_flipy, 0); - - if (col == 1) carpolo_generate_ball_screen_interrupt(screen.machine(), 0x05); - if (col == 2) carpolo_generate_ball_screen_interrupt(screen.machine(), 0x03); + /* check ball collision with static screen elements */ + { + int col; + + col = check_sprite_left_goal_collision(screen.machine(), ball_x, ball_y, ball_code, ball_flipy, 0); - col = check_sprite_right_goal_collision(screen.machine(), ball_x, ball_y, ball_code, ball_flipy, 0); + if (col == 1) carpolo_generate_ball_screen_interrupt(screen.machine(), 0x05); + if (col == 2) carpolo_generate_ball_screen_interrupt(screen.machine(), 0x03); - if (col == 1) carpolo_generate_ball_screen_interrupt(screen.machine(), 0x05 | 0x08); - if (col == 2) carpolo_generate_ball_screen_interrupt(screen.machine(), 0x03 | 0x08); + col = check_sprite_right_goal_collision(screen.machine(), ball_x, ball_y, ball_code, ball_flipy, 0); - if (check_sprite_border_collision(screen.machine(), ball_x, ball_y, ball_code, ball_flipy)) - carpolo_generate_ball_screen_interrupt(screen.machine(), 0x06); - } + if (col == 1) carpolo_generate_ball_screen_interrupt(screen.machine(), 0x05 | 0x08); + if (col == 2) carpolo_generate_ball_screen_interrupt(screen.machine(), 0x03 | 0x08); - /* check car-border collision */ - { - int col; + if (check_sprite_border_collision(screen.machine(), ball_x, ball_y, ball_code, ball_flipy)) + carpolo_generate_ball_screen_interrupt(screen.machine(), 0x06); + } - col = check_sprite_border_collision(screen.machine(), car1_x, car1_y, car1_code, car1_flipy); - if (col) - carpolo_generate_car_border_interrupt(screen.machine(), 0, (col == 2)); - else + /* check car-border collision */ { - col = check_sprite_border_collision(screen.machine(), car2_x, car2_y, car2_code, car2_flipy); + int col; + + col = check_sprite_border_collision(screen.machine(), car1_x, car1_y, car1_code, car1_flipy); if (col) - carpolo_generate_car_border_interrupt(screen.machine(), 1, (col == 2)); + carpolo_generate_car_border_interrupt(screen.machine(), 0, (col == 2)); else { - col = check_sprite_border_collision(screen.machine(), car3_x, car3_y, car3_code, car3_flipy); + col = check_sprite_border_collision(screen.machine(), car2_x, car2_y, car2_code, car2_flipy); if (col) - carpolo_generate_car_border_interrupt(screen.machine(), 2, (col == 2)); + carpolo_generate_car_border_interrupt(screen.machine(), 1, (col == 2)); else { - col = check_sprite_border_collision(screen.machine(), car4_x, car4_y, car4_code, car4_flipy); + col = check_sprite_border_collision(screen.machine(), car3_x, car3_y, car3_code, car3_flipy); if (col) - carpolo_generate_car_border_interrupt(screen.machine(), 3, (col == 2)); + carpolo_generate_car_border_interrupt(screen.machine(), 2, (col == 2)); + else + { + col = check_sprite_border_collision(screen.machine(), car4_x, car4_y, car4_code, car4_flipy); + + if (col) + carpolo_generate_car_border_interrupt(screen.machine(), 3, (col == 2)); + } } } } diff --git a/src/mame/video/commando.c b/src/mame/video/commando.c index 240119671c2..3b1bda588d4 100644 --- a/src/mame/video/commando.c +++ b/src/mame/video/commando.c @@ -145,9 +145,13 @@ SCREEN_UPDATE_IND16( commando ) return 0; } -SCREEN_EOF( commando ) +SCREEN_VBLANK( commando ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space, 0, 0); + buffer_spriteram_w(space, 0, 0); + } } diff --git a/src/mame/video/cps1.c b/src/mame/video/cps1.c index e8290a7eb8e..a46aa08d433 100644 --- a/src/mame/video/cps1.c +++ b/src/mame/video/cps1.c @@ -2950,17 +2950,21 @@ if (0 && screen.machine().input().code_pressed(KEYCODE_Z)) return 0; } -SCREEN_EOF( cps1 ) +SCREEN_VBLANK( cps1 ) { - cps_state *state = screen.machine().driver_data<cps_state>(); + // rising edge + if (vblank_on) + { + cps_state *state = screen.machine().driver_data<cps_state>(); - /* Get video memory base registers */ - cps1_get_video_base(screen.machine()); + /* Get video memory base registers */ + cps1_get_video_base(screen.machine()); - if (state->m_cps_version == 1) - { - /* CPS1 sprites have to be delayed one frame */ - memcpy(state->m_buffered_obj, state->m_obj, state->m_obj_size); + if (state->m_cps_version == 1) + { + /* CPS1 sprites have to be delayed one frame */ + memcpy(state->m_buffered_obj, state->m_obj, state->m_obj_size); + } } } diff --git a/src/mame/video/crshrace.c b/src/mame/video/crshrace.c index 2d2f82103d3..5b15d117f64 100644 --- a/src/mame/video/crshrace.c +++ b/src/mame/video/crshrace.c @@ -217,10 +217,14 @@ SCREEN_UPDATE_IND16( crshrace ) return 0; } -SCREEN_EOF( crshrace ) +SCREEN_VBLANK( crshrace ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space, 0, 0, 0xffff); - buffer_spriteram16_2_w(space, 0, 0, 0xffff); + buffer_spriteram16_w(space, 0, 0, 0xffff); + buffer_spriteram16_2_w(space, 0, 0, 0xffff); + } } diff --git a/src/mame/video/deco32.c b/src/mame/video/deco32.c index 0403054b01e..4bffbc46e88 100644 --- a/src/mame/video/deco32.c +++ b/src/mame/video/deco32.c @@ -568,12 +568,12 @@ VIDEO_START( nslasher ) /******************************************************************************/ -SCREEN_EOF( captaven ) +SCREEN_VBLANK( captaven ) { } -SCREEN_EOF( dragngun ) +SCREEN_VBLANK( dragngun ) { } diff --git a/src/mame/video/deco_mlc.c b/src/mame/video/deco_mlc.c index 46a6c7a4126..e5de156a644 100644 --- a/src/mame/video/deco_mlc.c +++ b/src/mame/video/deco_mlc.c @@ -494,15 +494,19 @@ static void draw_sprites(running_machine& machine, bitmap_rgb32 &bitmap,const re } } -SCREEN_EOF( mlc ) +SCREEN_VBLANK( mlc ) { - deco_mlc_state *state = screen.machine().driver_data<deco_mlc_state>(); - /* Spriteram is definitely double buffered, as the vram lookup tables - are often updated a frame after spriteram is setup to point to a new - lookup table. Without buffering incorrect one frame glitches are seen - in several places, especially in Hoops. - */ - memcpy(state->m_mlc_buffered_spriteram, state->m_spriteram, 0x3000); + // rising edge + if (vblank_on) + { + deco_mlc_state *state = screen.machine().driver_data<deco_mlc_state>(); + /* Spriteram is definitely double buffered, as the vram lookup tables + are often updated a frame after spriteram is setup to point to a new + lookup table. Without buffering incorrect one frame glitches are seen + in several places, especially in Hoops. + */ + memcpy(state->m_mlc_buffered_spriteram, state->m_spriteram, 0x3000); + } } SCREEN_UPDATE_RGB32( mlc ) diff --git a/src/mame/video/djboy.c b/src/mame/video/djboy.c index 01fffa076d1..f5d35ddc367 100644 --- a/src/mame/video/djboy.c +++ b/src/mame/video/djboy.c @@ -81,8 +81,12 @@ SCREEN_UPDATE_IND16( djboy ) return 0; } -SCREEN_EOF( djboy ) +SCREEN_VBLANK( djboy ) { - djboy_state *state = screen.machine().driver_data<djboy_state>(); - pandora_eof(state->m_pandora); + // rising edge + if (vblank_on) + { + djboy_state *state = screen.machine().driver_data<djboy_state>(); + pandora_eof(state->m_pandora); + } } diff --git a/src/mame/video/dooyong.c b/src/mame/video/dooyong.c index 8761cb30aae..addb3aafed8 100644 --- a/src/mame/video/dooyong.c +++ b/src/mame/video/dooyong.c @@ -931,16 +931,24 @@ VIDEO_START( popbingo ) } -SCREEN_EOF( dooyong ) +SCREEN_VBLANK( dooyong ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space, 0, 0); + buffer_spriteram_w(space, 0, 0); + } } -SCREEN_EOF( rshark ) +SCREEN_VBLANK( rshark ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space, 0, 0, 0xffff); + buffer_spriteram16_w(space, 0, 0, 0xffff); + } } diff --git a/src/mame/video/dynduke.c b/src/mame/video/dynduke.c index e063e90e29d..282759c25cd 100644 --- a/src/mame/video/dynduke.c +++ b/src/mame/video/dynduke.c @@ -251,9 +251,13 @@ SCREEN_UPDATE_IND16( dynduke ) return 0; } -SCREEN_EOF( dynduke ) +SCREEN_VBLANK( dynduke ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space, 0, 0, 0xffff); // Could be a memory location instead + buffer_spriteram16_w(space, 0, 0, 0xffff); // Could be a memory location instead + } } diff --git a/src/mame/video/exedexes.c b/src/mame/video/exedexes.c index 057ff71525e..e2e1a27d748 100644 --- a/src/mame/video/exedexes.c +++ b/src/mame/video/exedexes.c @@ -245,9 +245,13 @@ SCREEN_UPDATE_IND16( exedexes ) return 0; } -SCREEN_EOF( exedexes ) +SCREEN_VBLANK( exedexes ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space, 0, 0); + buffer_spriteram_w(space, 0, 0); + } } diff --git a/src/mame/video/fuukifg3.c b/src/mame/video/fuukifg3.c index 25db696c27a..be1c96114ef 100644 --- a/src/mame/video/fuukifg3.c +++ b/src/mame/video/fuukifg3.c @@ -367,13 +367,17 @@ SCREEN_UPDATE_IND16( fuuki32 ) return 0; } -SCREEN_EOF( fuuki32 ) +SCREEN_VBLANK( fuuki32 ) { - fuuki32_state *state = screen.machine().driver_data<fuuki32_state>(); + // rising edge + if (vblank_on) + { + fuuki32_state *state = screen.machine().driver_data<fuuki32_state>(); - /* Buffer sprites and tilebank by 2 frames */ - state->m_spr_buffered_tilebank[1] = state->m_spr_buffered_tilebank[0]; - state->m_spr_buffered_tilebank[0] = state->m_tilebank[0]; - memcpy(state->m_buf_spriteram2, state->m_buf_spriteram, state->m_spriteram_size); - memcpy(state->m_buf_spriteram, state->m_spriteram, state->m_spriteram_size); + /* Buffer sprites and tilebank by 2 frames */ + state->m_spr_buffered_tilebank[1] = state->m_spr_buffered_tilebank[0]; + state->m_spr_buffered_tilebank[0] = state->m_tilebank[0]; + memcpy(state->m_buf_spriteram2, state->m_buf_spriteram, state->m_spriteram_size); + memcpy(state->m_buf_spriteram, state->m_spriteram, state->m_spriteram_size); + } } diff --git a/src/mame/video/gaelco2.c b/src/mame/video/gaelco2.c index 0c2a4eea208..474fc18da5e 100644 --- a/src/mame/video/gaelco2.c +++ b/src/mame/video/gaelco2.c @@ -501,10 +501,14 @@ SCREEN_UPDATE_IND16( gaelco2_right ) { return dual_update(screen, bitmap, clipre -SCREEN_EOF( gaelco2 ) +SCREEN_VBLANK( gaelco2 ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - /* sprites are one frame ahead */ - buffer_spriteram16_w(space, 0, 0, 0xffff); + /* sprites are one frame ahead */ + buffer_spriteram16_w(space, 0, 0, 0xffff); + } } diff --git a/src/mame/video/galaga.c b/src/mame/video/galaga.c index bc926d6258d..bd5400953da 100644 --- a/src/mame/video/galaga.c +++ b/src/mame/video/galaga.c @@ -578,18 +578,22 @@ SCREEN_UPDATE_IND16( galaga ) -SCREEN_EOF( galaga ) +SCREEN_VBLANK( galaga ) { - galaga_state *state = screen.machine().driver_data<galaga_state>(); - /* this function is called by galaga_interrupt_1() */ - int s0,s1,s2; - static const int speeds[8] = { -1, -2, -3, 0, 3, 2, 1, 0 }; + // rising edge + if (vblank_on) + { + galaga_state *state = screen.machine().driver_data<galaga_state>(); + /* this function is called by galaga_interrupt_1() */ + int s0,s1,s2; + static const int speeds[8] = { -1, -2, -3, 0, 3, 2, 1, 0 }; - s0 = (state->m_galaga_starcontrol[0] & 1); - s1 = (state->m_galaga_starcontrol[1] & 1); - s2 = (state->m_galaga_starcontrol[2] & 1); + s0 = (state->m_galaga_starcontrol[0] & 1); + s1 = (state->m_galaga_starcontrol[1] & 1); + s2 = (state->m_galaga_starcontrol[2] & 1); - state->m_stars_scrollx += speeds[s0 + s1*2 + s2*4]; + state->m_stars_scrollx += speeds[s0 + s1*2 + s2*4]; + } } diff --git a/src/mame/video/gaplus.c b/src/mame/video/gaplus.c index 24445de663f..257e7705420 100644 --- a/src/mame/video/gaplus.c +++ b/src/mame/video/gaplus.c @@ -329,78 +329,82 @@ SCREEN_UPDATE_IND16( gaplus ) } -SCREEN_EOF( gaplus ) /* update starfields */ +SCREEN_VBLANK( gaplus ) /* update starfields */ { - gaplus_state *state = screen.machine().driver_data<gaplus_state>(); - struct star *stars = state->m_stars; - int i; - - int width = screen.machine().primary_screen->width(); - int height = screen.machine().primary_screen->height(); - - /* check if we're running */ - if ( ( state->m_starfield_control[0] & 1 ) == 0 ) - return; - - /* update the starfields */ - for ( i = 0; i < state->m_total_stars; i++ ) { - switch( state->m_starfield_control[stars[i].set + 1] ) { - case 0x87: - /* stand still */ - break; - - case 0x86: - /* scroll down (speed 1) */ - stars[i].x += SPEED_1; - break; - - case 0x85: - /* scroll down (speed 2) */ - stars[i].x += SPEED_2; - break; - - case 0x06: - /* scroll down (speed 3) */ - stars[i].x += SPEED_3; - break; - - case 0x80: - /* scroll up (speed 1) */ - stars[i].x -= SPEED_1; - break; - - case 0x82: - /* scroll up (speed 2) */ - stars[i].x -= SPEED_2; - break; - - case 0x81: - /* scroll up (speed 3) */ - stars[i].x -= SPEED_3; - break; - - case 0x9f: - /* scroll left (speed 2) */ - stars[i].y += SPEED_2; - break; - - case 0xaf: - /* scroll left (speed 1) */ - stars[i].y += SPEED_1; - break; - } + // rising edge + if (vblank_on) + { + gaplus_state *state = screen.machine().driver_data<gaplus_state>(); + struct star *stars = state->m_stars; + int i; + + int width = screen.machine().primary_screen->width(); + int height = screen.machine().primary_screen->height(); + + /* check if we're running */ + if ( ( state->m_starfield_control[0] & 1 ) == 0 ) + return; + + /* update the starfields */ + for ( i = 0; i < state->m_total_stars; i++ ) { + switch( state->m_starfield_control[stars[i].set + 1] ) { + case 0x87: + /* stand still */ + break; + + case 0x86: + /* scroll down (speed 1) */ + stars[i].x += SPEED_1; + break; + + case 0x85: + /* scroll down (speed 2) */ + stars[i].x += SPEED_2; + break; + + case 0x06: + /* scroll down (speed 3) */ + stars[i].x += SPEED_3; + break; + + case 0x80: + /* scroll up (speed 1) */ + stars[i].x -= SPEED_1; + break; + + case 0x82: + /* scroll up (speed 2) */ + stars[i].x -= SPEED_2; + break; + + case 0x81: + /* scroll up (speed 3) */ + stars[i].x -= SPEED_3; + break; + + case 0x9f: + /* scroll left (speed 2) */ + stars[i].y += SPEED_2; + break; + + case 0xaf: + /* scroll left (speed 1) */ + stars[i].y += SPEED_1; + break; + } - /* wrap */ - if ( stars[i].x < 0 ) - stars[i].x = ( float )( width*2 ) + stars[i].x; + /* wrap */ + if ( stars[i].x < 0 ) + stars[i].x = ( float )( width*2 ) + stars[i].x; - if ( stars[i].x >= ( float )( width*2 ) ) - stars[i].x -= ( float )( width*2 ); + if ( stars[i].x >= ( float )( width*2 ) ) + stars[i].x -= ( float )( width*2 ); - if ( stars[i].y < 0 ) - stars[i].y = ( float )( height ) + stars[i].y; + if ( stars[i].y < 0 ) + stars[i].y = ( float )( height ) + stars[i].y; - if ( stars[i].y >= ( float )( height ) ) - stars[i].y -= ( float )( height ); + if ( stars[i].y >= ( float )( height ) ) + stars[i].y -= ( float )( height ); + } } } diff --git a/src/mame/video/gng.c b/src/mame/video/gng.c index 35eff523052..43d2e21396f 100644 --- a/src/mame/video/gng.c +++ b/src/mame/video/gng.c @@ -150,9 +150,13 @@ SCREEN_UPDATE_IND16( gng ) return 0; } -SCREEN_EOF( gng ) +SCREEN_VBLANK( gng ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space, 0, 0); + buffer_spriteram_w(space, 0, 0); + } } diff --git a/src/mame/video/goal92.c b/src/mame/video/goal92.c index b08b6295ecd..b4a34c19b9f 100644 --- a/src/mame/video/goal92.c +++ b/src/mame/video/goal92.c @@ -188,8 +188,12 @@ SCREEN_UPDATE_IND16( goal92 ) return 0; } -SCREEN_EOF( goal92 ) +SCREEN_VBLANK( goal92 ) { - goal92_state *state = screen.machine().driver_data<goal92_state>(); - memcpy(state->m_buffered_spriteram, state->m_spriteram, 0x400 * 2); + // rising edge + if (vblank_on) + { + goal92_state *state = screen.machine().driver_data<goal92_state>(); + memcpy(state->m_buffered_spriteram, state->m_spriteram, 0x400 * 2); + } } diff --git a/src/mame/video/hng64.c b/src/mame/video/hng64.c index cf88a81ecd5..5658187414f 100644 --- a/src/mame/video/hng64.c +++ b/src/mame/video/hng64.c @@ -1643,9 +1643,11 @@ SCREEN_UPDATE_RGB32( hng64 ) return 0; } -SCREEN_EOF( hng64 ) +SCREEN_VBLANK( hng64 ) { - clear3d(screen.machine()); + // rising edge + if (vblank_on) + clear3d(screen.machine()); } VIDEO_START( hng64 ) diff --git a/src/mame/video/homedata.c b/src/mame/video/homedata.c index 8be2aa04101..a3c49be5dd2 100644 --- a/src/mame/video/homedata.c +++ b/src/mame/video/homedata.c @@ -1049,8 +1049,12 @@ SCREEN_UPDATE_IND16( mirderby ) } -SCREEN_EOF( homedata ) +SCREEN_VBLANK( homedata ) { - homedata_state *state = screen.machine().driver_data<homedata_state>(); - state->m_visible_page ^= 1; + // rising edge + if (vblank_on) + { + homedata_state *state = screen.machine().driver_data<homedata_state>(); + state->m_visible_page ^= 1; + } } diff --git a/src/mame/video/ladybug.c b/src/mame/video/ladybug.c index 7c2b4fc9248..ab7fdcd49fe 100644 --- a/src/mame/video/ladybug.c +++ b/src/mame/video/ladybug.c @@ -306,9 +306,11 @@ SCREEN_UPDATE_IND16( ladybug ) return 0; } -SCREEN_EOF( sraider ) /* update starfield position */ +SCREEN_VBLANK( sraider ) /* update starfield position */ { - redclash_update_stars_state(screen.machine()); + // rising edge + if (vblank_on) + redclash_update_stars_state(screen.machine()); } SCREEN_UPDATE_IND16( sraider ) diff --git a/src/mame/video/lastduel.c b/src/mame/video/lastduel.c index 3b5eed35573..588b980d7ea 100644 --- a/src/mame/video/lastduel.c +++ b/src/mame/video/lastduel.c @@ -306,12 +306,16 @@ SCREEN_UPDATE_IND16( madgear ) return 0; } -SCREEN_EOF( lastduel ) +SCREEN_VBLANK( lastduel ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - /* Spriteram is always 1 frame ahead, suggesting buffering. I can't find - a register to control this so I assume it happens automatically - every frame at the end of vblank */ - buffer_spriteram16_w(space, 0, 0, 0xffff); + /* Spriteram is always 1 frame ahead, suggesting buffering. I can't find + a register to control this so I assume it happens automatically + every frame at the end of vblank */ + buffer_spriteram16_w(space, 0, 0, 0xffff); + } } diff --git a/src/mame/video/lemmings.c b/src/mame/video/lemmings.c index 2011f984140..56f3c06f64d 100644 --- a/src/mame/video/lemmings.c +++ b/src/mame/video/lemmings.c @@ -105,12 +105,16 @@ VIDEO_START( lemmings ) state->save_pointer(NAME(state->m_sprite_triple_buffer_1), 0x800 / 2); } -SCREEN_EOF( lemmings ) +SCREEN_VBLANK( lemmings ) { - lemmings_state *state = screen.machine().driver_data<lemmings_state>(); + // rising edge + if (vblank_on) + { + lemmings_state *state = screen.machine().driver_data<lemmings_state>(); - memcpy(state->m_sprite_triple_buffer_0, screen.machine().generic.buffered_spriteram.u16, 0x800); - memcpy(state->m_sprite_triple_buffer_1, screen.machine().generic.buffered_spriteram2.u16, 0x800); + memcpy(state->m_sprite_triple_buffer_0, screen.machine().generic.buffered_spriteram.u16, 0x800); + memcpy(state->m_sprite_triple_buffer_1, screen.machine().generic.buffered_spriteram2.u16, 0x800); + } } /******************************************************************************/ diff --git a/src/mame/video/lockon.c b/src/mame/video/lockon.c index f86ee773122..8c2551cd9ba 100644 --- a/src/mame/video/lockon.c +++ b/src/mame/video/lockon.c @@ -952,17 +952,21 @@ SCREEN_UPDATE_IND16( lockon ) return 0; } -SCREEN_EOF( lockon ) +SCREEN_VBLANK( lockon ) { - lockon_state *state = screen.machine().driver_data<lockon_state>(); + // on falling edge + if (!vblank_on) + { + lockon_state *state = screen.machine().driver_data<lockon_state>(); - /* Swap the frame buffers */ - bitmap_ind16 *tmp = state->m_front_buffer; - state->m_front_buffer = state->m_back_buffer; - state->m_back_buffer = tmp; + /* Swap the frame buffers */ + bitmap_ind16 *tmp = state->m_front_buffer; + state->m_front_buffer = state->m_back_buffer; + state->m_back_buffer = tmp; - /* Draw the frame buffer layers */ - scene_draw(screen.machine()); - ground_draw(screen.machine()); - objects_draw(screen.machine()); + /* Draw the frame buffer layers */ + scene_draw(screen.machine()); + ground_draw(screen.machine()); + objects_draw(screen.machine()); + } } diff --git a/src/mame/video/lwings.c b/src/mame/video/lwings.c index f769e424abd..b0830bc0c7d 100644 --- a/src/mame/video/lwings.c +++ b/src/mame/video/lwings.c @@ -291,9 +291,13 @@ SCREEN_UPDATE_IND16( trojan ) return 0; } -SCREEN_EOF( lwings ) +SCREEN_VBLANK( lwings ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space, 0, 0); + buffer_spriteram_w(space, 0, 0); + } } diff --git a/src/mame/video/macrossp.c b/src/mame/video/macrossp.c index 0db495d3a45..ebde07e9b8e 100644 --- a/src/mame/video/macrossp.c +++ b/src/mame/video/macrossp.c @@ -429,11 +429,15 @@ state->m_scrc_videoregs[2]);// 08 - 0b return 0; } -SCREEN_EOF( macrossp ) +SCREEN_VBLANK( macrossp ) { - macrossp_state *state = screen.machine().driver_data<macrossp_state>(); + // rising edge + if (vblank_on) + { + macrossp_state *state = screen.machine().driver_data<macrossp_state>(); - /* looks like sprites are *two* frames ahead, like nmk16 */ - memcpy(state->m_spriteram_old2, state->m_spriteram_old, state->m_spriteram_size); - memcpy(state->m_spriteram_old, state->m_spriteram, state->m_spriteram_size); + /* looks like sprites are *two* frames ahead, like nmk16 */ + memcpy(state->m_spriteram_old2, state->m_spriteram_old, state->m_spriteram_size); + memcpy(state->m_spriteram_old, state->m_spriteram, state->m_spriteram_size); + } } diff --git a/src/mame/video/mcatadv.c b/src/mame/video/mcatadv.c index 16289228c26..3a9893ee934 100644 --- a/src/mame/video/mcatadv.c +++ b/src/mame/video/mcatadv.c @@ -269,9 +269,13 @@ VIDEO_START( mcatadv ) state->save_pointer(NAME(state->m_vidregs_old), (0x0f + 1) / 2); } -SCREEN_EOF( mcatadv ) +SCREEN_VBLANK( mcatadv ) { - mcatadv_state *state = screen.machine().driver_data<mcatadv_state>(); - memcpy(state->m_spriteram_old, state->m_spriteram, state->m_spriteram_size); - memcpy(state->m_vidregs_old, state->m_vidregs, 0xf); + // rising edge + if (vblank_on) + { + mcatadv_state *state = screen.machine().driver_data<mcatadv_state>(); + memcpy(state->m_spriteram_old, state->m_spriteram, state->m_spriteram_size); + memcpy(state->m_vidregs_old, state->m_vidregs, 0xf); + } } diff --git a/src/mame/video/megasys1.c b/src/mame/video/megasys1.c index 8c04c614748..5d07590f5a4 100644 --- a/src/mame/video/megasys1.c +++ b/src/mame/video/megasys1.c @@ -1020,16 +1020,20 @@ SCREEN_UPDATE_IND16( megasys1 ) return 0; } -SCREEN_EOF( megasys1 ) +SCREEN_VBLANK( megasys1 ) { - megasys1_state *state = screen.machine().driver_data<megasys1_state>(); - /* Sprite are TWO frames ahead, like NMK16 HW. */ -//state->m_objectram - memcpy(state->m_buffer2_objectram,state->m_buffer_objectram, 0x2000); - memcpy(state->m_buffer_objectram, state->m_objectram, 0x2000); -//spriteram16 - memcpy(state->m_buffer2_spriteram16, state->m_buffer_spriteram16, 0x2000); - memcpy(state->m_buffer_spriteram16, state->m_spriteram, 0x2000); + // rising edge + if (vblank_on) + { + megasys1_state *state = screen.machine().driver_data<megasys1_state>(); + /* Sprite are TWO frames ahead, like NMK16 HW. */ + //state->m_objectram + memcpy(state->m_buffer2_objectram,state->m_buffer_objectram, 0x2000); + memcpy(state->m_buffer_objectram, state->m_objectram, 0x2000); + //spriteram16 + memcpy(state->m_buffer2_spriteram16, state->m_buffer_spriteram16, 0x2000); + memcpy(state->m_buffer_spriteram16, state->m_spriteram, 0x2000); + } } diff --git a/src/mame/video/mermaid.c b/src/mame/video/mermaid.c index bcf55924457..b4714d722cc 100644 --- a/src/mame/video/mermaid.c +++ b/src/mame/video/mermaid.c @@ -262,304 +262,307 @@ static UINT8 collision_check( running_machine &machine, rectangle& rect ) return data; } -SCREEN_EOF( mermaid ) +SCREEN_VBLANK( mermaid ) { - mermaid_state *state = screen.machine().driver_data<mermaid_state>(); - const rectangle &visarea = screen.machine().primary_screen->visible_area(); - UINT8 *spriteram = state->m_spriteram; - - int offs, offs2; - - state->m_coll_bit0 = 0; - state->m_coll_bit1 = 0; - state->m_coll_bit2 = 0; - state->m_coll_bit3 = 0; - state->m_coll_bit6 = 0; - - // check for bit 0 (sprite-sprite), 1 (sprite-foreground), 2 (sprite-background) - - for (offs = state->m_spriteram_size - 4; offs >= 0; offs -= 4) + // rising edge + if (vblank_on) { - int attr = spriteram[offs + 2]; - int bank = (attr & 0x30) >> 4; - int coll = (attr & 0xc0) >> 6; - int code = (spriteram[offs] & 0x3f) | (bank << 6); - int flipx = spriteram[offs] & 0x40; - int flipy = spriteram[offs] & 0x80; - int sx = spriteram[offs + 3] + 1; - int sy = 240 - spriteram[offs + 1]; + mermaid_state *state = screen.machine().driver_data<mermaid_state>(); + const rectangle &visarea = screen.machine().primary_screen->visible_area(); + UINT8 *spriteram = state->m_spriteram; - rectangle rect; + int offs, offs2; - if (coll != 1) continue; + state->m_coll_bit0 = 0; + state->m_coll_bit1 = 0; + state->m_coll_bit2 = 0; + state->m_coll_bit3 = 0; + state->m_coll_bit6 = 0; - code |= state->m_rougien_gfxbank1 * 0x2800; - code |= state->m_rougien_gfxbank2 * 0x2400; + // check for bit 0 (sprite-sprite), 1 (sprite-foreground), 2 (sprite-background) - if (flip_screen_x_get(screen.machine())) + for (offs = state->m_spriteram_size - 4; offs >= 0; offs -= 4) { - flipx = !flipx; - sx = 240 - sx; - } + int attr = spriteram[offs + 2]; + int bank = (attr & 0x30) >> 4; + int coll = (attr & 0xc0) >> 6; + int code = (spriteram[offs] & 0x3f) | (bank << 6); + int flipx = spriteram[offs] & 0x40; + int flipy = spriteram[offs] & 0x80; + int sx = spriteram[offs + 3] + 1; + int sy = 240 - spriteram[offs + 1]; - if (flip_screen_y_get(screen.machine())) - { - flipy = !flipy; - sy = 240 - sy; - } + rectangle rect; - rect.min_x = sx; - rect.min_y = sy; - rect.max_x = sx + screen.machine().gfx[1]->width - 1; - rect.max_y = sy + screen.machine().gfx[1]->height - 1; + if (coll != 1) continue; - if (rect.min_x < visarea.min_x) - rect.min_x = visarea.min_x; - if (rect.min_y < visarea.min_y) - rect.min_y = visarea.min_y; - if (rect.max_x > visarea.max_x) - rect.max_x = visarea.max_x; - if (rect.max_y > visarea.max_y) - rect.max_y = visarea.max_y; + code |= state->m_rougien_gfxbank1 * 0x2800; + code |= state->m_rougien_gfxbank2 * 0x2400; - // check collision sprite - background + if (flip_screen_x_get(screen.machine())) + { + flipx = !flipx; + sx = 240 - sx; + } - state->m_helper.fill(0, rect); - state->m_helper2.fill(0, rect); + if (flip_screen_y_get(screen.machine())) + { + flipy = !flipy; + sy = 240 - sy; + } - tilemap_draw(state->m_helper, rect, state->m_bg_tilemap, 0, 0); + rect.min_x = sx; + rect.min_y = sy; + rect.max_x = sx + screen.machine().gfx[1]->width - 1; + rect.max_y = sy + screen.machine().gfx[1]->height - 1; - drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); + if (rect.min_x < visarea.min_x) + rect.min_x = visarea.min_x; + if (rect.min_y < visarea.min_y) + rect.min_y = visarea.min_y; + if (rect.max_x > visarea.max_x) + rect.max_x = visarea.max_x; + if (rect.max_y > visarea.max_y) + rect.max_y = visarea.max_y; - state->m_coll_bit2 |= collision_check(screen.machine(), rect); + // check collision sprite - background - // check collision sprite - foreground + state->m_helper.fill(0, rect); + state->m_helper2.fill(0, rect); - state->m_helper.fill(0, rect); - state->m_helper2.fill(0, rect); + tilemap_draw(state->m_helper, rect, state->m_bg_tilemap, 0, 0); - tilemap_draw(state->m_helper, rect, state->m_fg_tilemap, 0, 0); + drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); - drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); + state->m_coll_bit2 |= collision_check(screen.machine(), rect); - state->m_coll_bit1 |= collision_check(screen.machine(), rect); + // check collision sprite - foreground - // check collision sprite - sprite + state->m_helper.fill(0, rect); + state->m_helper2.fill(0, rect); - state->m_helper.fill(0, rect); - state->m_helper2.fill(0, rect); + tilemap_draw(state->m_helper, rect, state->m_fg_tilemap, 0, 0); - for (offs2 = state->m_spriteram_size - 4; offs2 >= 0; offs2 -= 4) - if (offs != offs2) - { - int attr2 = spriteram[offs2 + 2]; - int bank2 = (attr2 & 0x30) >> 4; - int coll2 = (attr2 & 0xc0) >> 6; - int code2 = (spriteram[offs2] & 0x3f) | (bank2 << 6); - int flipx2 = spriteram[offs2] & 0x40; - int flipy2 = spriteram[offs2] & 0x80; - int sx2 = spriteram[offs2 + 3] + 1; - int sy2 = 240 - spriteram[offs2 + 1]; + drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); - if (coll2 != 0) continue; + state->m_coll_bit1 |= collision_check(screen.machine(), rect); - code2 |= state->m_rougien_gfxbank1 * 0x2800; - code2 |= state->m_rougien_gfxbank2 * 0x2400; + // check collision sprite - sprite - if (flip_screen_x_get(screen.machine())) - { - flipx2 = !flipx2; - sx2 = 240 - sx2; - } + state->m_helper.fill(0, rect); + state->m_helper2.fill(0, rect); - if (flip_screen_y_get(screen.machine())) + for (offs2 = state->m_spriteram_size - 4; offs2 >= 0; offs2 -= 4) + if (offs != offs2) { - flipy2 = !flipy2; - sy2 = 240 - sy2; + int attr2 = spriteram[offs2 + 2]; + int bank2 = (attr2 & 0x30) >> 4; + int coll2 = (attr2 & 0xc0) >> 6; + int code2 = (spriteram[offs2] & 0x3f) | (bank2 << 6); + int flipx2 = spriteram[offs2] & 0x40; + int flipy2 = spriteram[offs2] & 0x80; + int sx2 = spriteram[offs2 + 3] + 1; + int sy2 = 240 - spriteram[offs2 + 1]; + + if (coll2 != 0) continue; + + code2 |= state->m_rougien_gfxbank1 * 0x2800; + code2 |= state->m_rougien_gfxbank2 * 0x2400; + + if (flip_screen_x_get(screen.machine())) + { + flipx2 = !flipx2; + sx2 = 240 - sx2; + } + + if (flip_screen_y_get(screen.machine())) + { + flipy2 = !flipy2; + sy2 = 240 - sy2; + } + + drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0); } - drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0); - } - - drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); - - state->m_coll_bit0 |= collision_check(screen.machine(), rect); - } - - // check for bit 3 (sprite-sprite) - - for (offs = state->m_spriteram_size - 4; offs >= 0; offs -= 4) - { - int attr = spriteram[offs + 2]; - int bank = (attr & 0x30) >> 4; - int coll = (attr & 0xc0) >> 6; - int code = (spriteram[offs] & 0x3f) | (bank << 6); - int flipx = spriteram[offs] & 0x40; - int flipy = spriteram[offs] & 0x80; - int sx = spriteram[offs + 3] + 1; - int sy = 240 - spriteram[offs + 1]; - - rectangle rect; - - if (coll != 2) continue; - - code |= state->m_rougien_gfxbank1 * 0x2800; - code |= state->m_rougien_gfxbank2 * 0x2400; + drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); - if (flip_screen_x_get(screen.machine())) - { - flipx = !flipx; - sx = 240 - sx; + state->m_coll_bit0 |= collision_check(screen.machine(), rect); } - if (flip_screen_y_get(screen.machine())) - { - flipy = !flipy; - sy = 240 - sy; - } + // check for bit 3 (sprite-sprite) - rect.min_x = sx; - rect.min_y = sy; - rect.max_x = sx + screen.machine().gfx[1]->width - 1; - rect.max_y = sy + screen.machine().gfx[1]->height - 1; + for (offs = state->m_spriteram_size - 4; offs >= 0; offs -= 4) + { + int attr = spriteram[offs + 2]; + int bank = (attr & 0x30) >> 4; + int coll = (attr & 0xc0) >> 6; + int code = (spriteram[offs] & 0x3f) | (bank << 6); + int flipx = spriteram[offs] & 0x40; + int flipy = spriteram[offs] & 0x80; + int sx = spriteram[offs + 3] + 1; + int sy = 240 - spriteram[offs + 1]; - if (rect.min_x < visarea.min_x) - rect.min_x = visarea.min_x; - if (rect.min_y < visarea.min_y) - rect.min_y = visarea.min_y; - if (rect.max_x > visarea.max_x) - rect.max_x = visarea.max_x; - if (rect.max_y > visarea.max_y) - rect.max_y = visarea.max_y; + rectangle rect; - // check collision sprite - sprite + if (coll != 2) continue; - state->m_helper.fill(0, rect); - state->m_helper2.fill(0, rect); + code |= state->m_rougien_gfxbank1 * 0x2800; + code |= state->m_rougien_gfxbank2 * 0x2400; - for (offs2 = state->m_spriteram_size - 4; offs2 >= 0; offs2 -= 4) - if (offs != offs2) + if (flip_screen_x_get(screen.machine())) { - int attr2 = spriteram[offs2 + 2]; - int bank2 = (attr2 & 0x30) >> 4; - int coll2 = (attr2 & 0xc0) >> 6; - int code2 = (spriteram[offs2] & 0x3f) | (bank2 << 6); - int flipx2 = spriteram[offs2] & 0x40; - int flipy2 = spriteram[offs2] & 0x80; - int sx2 = spriteram[offs2 + 3] + 1; - int sy2 = 240 - spriteram[offs2 + 1]; - - if (coll2 != 0) continue; - - code2 |= state->m_rougien_gfxbank1 * 0x2800; - code2 |= state->m_rougien_gfxbank2 * 0x2400; - - if (flip_screen_x_get(screen.machine())) - { - flipx2 = !flipx2; - sx2 = 240 - sx2; - } - - if (flip_screen_y_get(screen.machine())) - { - flipy2 = !flipy2; - sy2 = 240 - sy2; - } - - drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0); + flipx = !flipx; + sx = 240 - sx; } - drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); + if (flip_screen_y_get(screen.machine())) + { + flipy = !flipy; + sy = 240 - sy; + } - state->m_coll_bit3 |= collision_check(screen.machine(), rect); - } + rect.min_x = sx; + rect.min_y = sy; + rect.max_x = sx + screen.machine().gfx[1]->width - 1; + rect.max_y = sy + screen.machine().gfx[1]->height - 1; - // check for bit 6 + if (rect.min_x < visarea.min_x) + rect.min_x = visarea.min_x; + if (rect.min_y < visarea.min_y) + rect.min_y = visarea.min_y; + if (rect.max_x > visarea.max_x) + rect.max_x = visarea.max_x; + if (rect.max_y > visarea.max_y) + rect.max_y = visarea.max_y; - for (offs = state->m_spriteram_size - 4; offs >= 0; offs -= 4) - { - int attr = spriteram[offs + 2]; - int bank = (attr & 0x30) >> 4; - int coll = (attr & 0xc0) >> 6; - int code = (spriteram[offs] & 0x3f) | (bank << 6); - int flipx = spriteram[offs] & 0x40; - int flipy = spriteram[offs] & 0x80; - int sx = spriteram[offs + 3] + 1; - int sy = 240 - spriteram[offs + 1]; + // check collision sprite - sprite - rectangle rect; + state->m_helper.fill(0, rect); + state->m_helper2.fill(0, rect); - if (coll != 1) continue; + for (offs2 = state->m_spriteram_size - 4; offs2 >= 0; offs2 -= 4) + if (offs != offs2) + { + int attr2 = spriteram[offs2 + 2]; + int bank2 = (attr2 & 0x30) >> 4; + int coll2 = (attr2 & 0xc0) >> 6; + int code2 = (spriteram[offs2] & 0x3f) | (bank2 << 6); + int flipx2 = spriteram[offs2] & 0x40; + int flipy2 = spriteram[offs2] & 0x80; + int sx2 = spriteram[offs2 + 3] + 1; + int sy2 = 240 - spriteram[offs2 + 1]; + + if (coll2 != 0) continue; + + code2 |= state->m_rougien_gfxbank1 * 0x2800; + code2 |= state->m_rougien_gfxbank2 * 0x2400; + + if (flip_screen_x_get(screen.machine())) + { + flipx2 = !flipx2; + sx2 = 240 - sx2; + } + + if (flip_screen_y_get(screen.machine())) + { + flipy2 = !flipy2; + sy2 = 240 - sy2; + } + + drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0); + } - code |= state->m_rougien_gfxbank1 * 0x2800; - code |= state->m_rougien_gfxbank2 * 0x2400; + drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); - if (flip_screen_x_get(screen.machine())) - { - flipx = !flipx; - sx = 240 - sx; + state->m_coll_bit3 |= collision_check(screen.machine(), rect); } - if (flip_screen_y_get(screen.machine())) + // check for bit 6 + + for (offs = state->m_spriteram_size - 4; offs >= 0; offs -= 4) { - flipy = !flipy; - sy = 240 - sy; - } + int attr = spriteram[offs + 2]; + int bank = (attr & 0x30) >> 4; + int coll = (attr & 0xc0) >> 6; + int code = (spriteram[offs] & 0x3f) | (bank << 6); + int flipx = spriteram[offs] & 0x40; + int flipy = spriteram[offs] & 0x80; + int sx = spriteram[offs + 3] + 1; + int sy = 240 - spriteram[offs + 1]; - rect.min_x = sx; - rect.min_y = sy; - rect.max_x = sx + screen.machine().gfx[1]->width - 1; - rect.max_y = sy + screen.machine().gfx[1]->height - 1; + rectangle rect; - if (rect.min_x < visarea.min_x) - rect.min_x = visarea.min_x; - if (rect.min_y < visarea.min_y) - rect.min_y = visarea.min_y; - if (rect.max_x > visarea.max_x) - rect.max_x = visarea.max_x; - if (rect.max_y > visarea.max_y) - rect.max_y = visarea.max_y; + if (coll != 1) continue; - // check collision sprite - sprite + code |= state->m_rougien_gfxbank1 * 0x2800; + code |= state->m_rougien_gfxbank2 * 0x2400; - state->m_helper.fill(0, rect); - state->m_helper2.fill(0, rect); + if (flip_screen_x_get(screen.machine())) + { + flipx = !flipx; + sx = 240 - sx; + } - for (offs2 = state->m_spriteram_size - 4; offs2 >= 0; offs2 -= 4) - if (offs != offs2) + if (flip_screen_y_get(screen.machine())) { - int attr2 = spriteram[offs2 + 2]; - int bank2 = (attr2 & 0x30) >> 4; - int coll2 = (attr2 & 0xc0) >> 6; - int code2 = (spriteram[offs2] & 0x3f) | (bank2 << 6); - int flipx2 = spriteram[offs2] & 0x40; - int flipy2 = spriteram[offs2] & 0x80; - int sx2 = spriteram[offs2 + 3] + 1; - int sy2 = 240 - spriteram[offs2 + 1]; + flipy = !flipy; + sy = 240 - sy; + } - if (coll2 != 2) continue; + rect.min_x = sx; + rect.min_y = sy; + rect.max_x = sx + screen.machine().gfx[1]->width - 1; + rect.max_y = sy + screen.machine().gfx[1]->height - 1; - code2 |= state->m_rougien_gfxbank1 * 0x2800; - code2 |= state->m_rougien_gfxbank2 * 0x2400; + if (rect.min_x < visarea.min_x) + rect.min_x = visarea.min_x; + if (rect.min_y < visarea.min_y) + rect.min_y = visarea.min_y; + if (rect.max_x > visarea.max_x) + rect.max_x = visarea.max_x; + if (rect.max_y > visarea.max_y) + rect.max_y = visarea.max_y; - if (flip_screen_x_get(screen.machine())) - { - flipx2 = !flipx2; - sx2 = 240 - sx2; - } + // check collision sprite - sprite + + state->m_helper.fill(0, rect); + state->m_helper2.fill(0, rect); - if (flip_screen_y_get(screen.machine())) + for (offs2 = state->m_spriteram_size - 4; offs2 >= 0; offs2 -= 4) + if (offs != offs2) { - flipy2 = !flipy2; - sy2 = 240 - sy2; + int attr2 = spriteram[offs2 + 2]; + int bank2 = (attr2 & 0x30) >> 4; + int coll2 = (attr2 & 0xc0) >> 6; + int code2 = (spriteram[offs2] & 0x3f) | (bank2 << 6); + int flipx2 = spriteram[offs2] & 0x40; + int flipy2 = spriteram[offs2] & 0x80; + int sx2 = spriteram[offs2 + 3] + 1; + int sy2 = 240 - spriteram[offs2 + 1]; + + if (coll2 != 2) continue; + + code2 |= state->m_rougien_gfxbank1 * 0x2800; + code2 |= state->m_rougien_gfxbank2 * 0x2400; + + if (flip_screen_x_get(screen.machine())) + { + flipx2 = !flipx2; + sx2 = 240 - sx2; + } + + if (flip_screen_y_get(screen.machine())) + { + flipy2 = !flipy2; + sy2 = 240 - sy2; + } + + drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0); } - drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0); - } - - drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); + drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); - state->m_coll_bit6 |= collision_check(screen.machine(), rect); + state->m_coll_bit6 |= collision_check(screen.machine(), rect); + } } - } diff --git a/src/mame/video/model1.c b/src/mame/video/model1.c index d220cc64623..433fb2e1077 100644 --- a/src/mame/video/model1.c +++ b/src/mame/video/model1.c @@ -1537,9 +1537,13 @@ SCREEN_UPDATE_RGB32(model1) return 0; } -SCREEN_EOF(model1) +SCREEN_VBLANK(model1) { - tgp_scan(screen.machine()); - end_frame(screen.machine()); - LOG_TGP(("TGP: vsync\n")); + // on falling edge + if (!vblank_on) + { + tgp_scan(screen.machine()); + end_frame(screen.machine()); + LOG_TGP(("TGP: vsync\n")); + } } diff --git a/src/mame/video/mw8080bw.c b/src/mame/video/mw8080bw.c index be74432687a..b998e09cdb7 100644 --- a/src/mame/video/mw8080bw.c +++ b/src/mame/video/mw8080bw.c @@ -311,14 +311,18 @@ SCREEN_UPDATE_RGB32( phantom2 ) } -SCREEN_EOF( phantom2 ) +SCREEN_VBLANK( phantom2 ) { - mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>(); + // rising edge + if (vblank_on) + { + mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>(); - state->m_phantom2_cloud_counter += MW8080BW_VTOTAL; + state->m_phantom2_cloud_counter += MW8080BW_VTOTAL; - if (state->m_phantom2_cloud_counter >= PHANTOM2_CLOUD_COUNTER_END) - state->m_phantom2_cloud_counter = PHANTOM2_CLOUD_COUNTER_START + (state->m_phantom2_cloud_counter - PHANTOM2_CLOUD_COUNTER_END); + if (state->m_phantom2_cloud_counter >= PHANTOM2_CLOUD_COUNTER_END) + state->m_phantom2_cloud_counter = PHANTOM2_CLOUD_COUNTER_START + (state->m_phantom2_cloud_counter - PHANTOM2_CLOUD_COUNTER_END); + } } diff --git a/src/mame/video/n8080.c b/src/mame/video/n8080.c index 582bf87df62..9622f3307a5 100644 --- a/src/mame/video/n8080.c +++ b/src/mame/video/n8080.c @@ -352,40 +352,44 @@ SCREEN_UPDATE_IND16( helifire ) } -SCREEN_EOF( helifire ) +SCREEN_VBLANK( helifire ) { - n8080_state *state = screen.machine().driver_data<n8080_state>(); - int n = (screen.machine().primary_screen->frame_number() >> 1) % sizeof state->m_helifire_LSFR; - - int i; - - for (i = 0; i < 8; i++) + // rising edge + if (vblank_on) { - int R = (i & 1); - int G = (i & 2); - int B = (i & 4); + n8080_state *state = screen.machine().driver_data<n8080_state>(); + int n = (screen.machine().primary_screen->frame_number() >> 1) % sizeof state->m_helifire_LSFR; - if (state->m_helifire_flash) + int i; + + for (i = 0; i < 8; i++) { - if (state->m_helifire_LSFR[n] & 0x20) - { - G |= B; - } + int R = (i & 1); + int G = (i & 2); + int B = (i & 4); - if (screen.machine().primary_screen->frame_number() & 0x04) + if (state->m_helifire_flash) { - R |= G; + if (state->m_helifire_LSFR[n] & 0x20) + { + G |= B; + } + + if (screen.machine().primary_screen->frame_number() & 0x04) + { + R |= G; + } } - } - palette_set_color_rgb(screen.machine(),i, - R ? 255 : 0, - G ? 255 : 0, - B ? 255 : 0); - } + palette_set_color_rgb(screen.machine(),i, + R ? 255 : 0, + G ? 255 : 0, + B ? 255 : 0); + } - for (i = 0; i < 256; i++) - { - helifire_next_line(screen.machine()); + for (i = 0; i < 256; i++) + { + helifire_next_line(screen.machine()); + } } } diff --git a/src/mame/video/namcos1.c b/src/mame/video/namcos1.c index 799c0e3a501..46918510115 100644 --- a/src/mame/video/namcos1.c +++ b/src/mame/video/namcos1.c @@ -440,20 +440,24 @@ SCREEN_UPDATE_IND16( namcos1 ) } -SCREEN_EOF( namcos1 ) +SCREEN_VBLANK( namcos1 ) { - namcos1_state *state = screen.machine().driver_data<namcos1_state>(); - if (state->m_copy_sprites) + // rising edge + if (vblank_on) { - UINT8 *spriteram = state->m_spriteram + 0x800; - int i,j; - - for (i = 0;i < 0x800;i += 16) + namcos1_state *state = screen.machine().driver_data<namcos1_state>(); + if (state->m_copy_sprites) { - for (j = 10;j < 16;j++) - spriteram[i+j] = spriteram[i+j - 6]; - } + UINT8 *spriteram = state->m_spriteram + 0x800; + int i,j; - state->m_copy_sprites = 0; + for (i = 0;i < 0x800;i += 16) + { + for (j = 10;j < 16;j++) + spriteram[i+j] = spriteram[i+j - 6]; + } + + state->m_copy_sprites = 0; + } } } diff --git a/src/mame/video/namcos86.c b/src/mame/video/namcos86.c index adeaa225a46..51982a9c12a 100644 --- a/src/mame/video/namcos86.c +++ b/src/mame/video/namcos86.c @@ -396,20 +396,24 @@ SCREEN_UPDATE_IND16( namcos86 ) } -SCREEN_EOF( namcos86 ) +SCREEN_VBLANK( namcos86 ) { - namcos86_state *state = screen.machine().driver_data<namcos86_state>(); - if (state->m_copy_sprites) + // rising edge + if (vblank_on) { - UINT8 *spriteram = state->m_spriteram; - int i,j; - - for (i = 0;i < 0x800;i += 16) + namcos86_state *state = screen.machine().driver_data<namcos86_state>(); + if (state->m_copy_sprites) { - for (j = 10;j < 16;j++) - spriteram[i+j] = spriteram[i+j - 6]; - } + UINT8 *spriteram = state->m_spriteram; + int i,j; - state->m_copy_sprites = 0; + for (i = 0;i < 0x800;i += 16) + { + for (j = 10;j < 16;j++) + spriteram[i+j] = spriteram[i+j - 6]; + } + + state->m_copy_sprites = 0; + } } } diff --git a/src/mame/video/ninjakd2.c b/src/mame/video/ninjakd2.c index 6fc807047c0..88039db0885 100644 --- a/src/mame/video/ninjakd2.c +++ b/src/mame/video/ninjakd2.c @@ -546,11 +546,15 @@ SCREEN_UPDATE_IND16( omegaf ) } -SCREEN_EOF( ninjakd2 ) +SCREEN_VBLANK( ninjakd2 ) { - ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>(); - if (!state->m_sprites_updated) - update_sprites(screen.machine()); + // rising edge + if (vblank_on) + { + ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>(); + if (!state->m_sprites_updated) + update_sprites(screen.machine()); - state->m_sprites_updated = 0; + state->m_sprites_updated = 0; + } } diff --git a/src/mame/video/nmk16.c b/src/mame/video/nmk16.c index f87d62397e7..e3919be0ac0 100644 --- a/src/mame/video/nmk16.c +++ b/src/mame/video/nmk16.c @@ -791,31 +791,39 @@ SCREEN_UPDATE_IND16( bjtwin ) return 0; } -SCREEN_EOF( nmk ) +SCREEN_VBLANK( nmk ) { - nmk16_state *state = screen.machine().driver_data<nmk16_state>(); - /* sprites are DMA'd from Main RAM to a private buffer automatically - (or at least this is how I interpret the datasheet) */ + // rising edge + if (vblank_on) + { + nmk16_state *state = screen.machine().driver_data<nmk16_state>(); + /* sprites are DMA'd from Main RAM to a private buffer automatically + (or at least this is how I interpret the datasheet) */ - /* -- I actually see little evidence to support this, sprite lag - in some games should be checked on real boards */ + /* -- I actually see little evidence to support this, sprite lag + in some games should be checked on real boards */ -// memcpy(state->m_spriteram_old2,state->m_spriteram_old,0x1000); - memcpy(state->m_spriteram_old2,state->m_mainram+0x8000/2,0x1000); + // memcpy(state->m_spriteram_old2,state->m_spriteram_old,0x1000); + memcpy(state->m_spriteram_old2,state->m_mainram+0x8000/2,0x1000); + } } -SCREEN_EOF( strahl ) +SCREEN_VBLANK( strahl ) { - nmk16_state *state = screen.machine().driver_data<nmk16_state>(); - /* sprites are DMA'd from Main RAM to a private buffer automatically - (or at least this is how I interpret the datasheet) */ + // rising edge + if (vblank_on) + { + nmk16_state *state = screen.machine().driver_data<nmk16_state>(); + /* sprites are DMA'd from Main RAM to a private buffer automatically + (or at least this is how I interpret the datasheet) */ - /* -- I actually see little evidence to support this, sprite lag - in some games should be checked on real boards */ + /* -- I actually see little evidence to support this, sprite lag + in some games should be checked on real boards */ - /* strahl sprites are allocated in memory range FF000-FFFFF */ + /* strahl sprites are allocated in memory range FF000-FFFFF */ - memcpy(state->m_spriteram_old2,state->m_mainram+0xF000/2,0x1000); + memcpy(state->m_spriteram_old2,state->m_mainram+0xF000/2,0x1000); + } } diff --git a/src/mame/video/othldrby.c b/src/mame/video/othldrby.c index 92d341d582f..48ace537b63 100644 --- a/src/mame/video/othldrby.c +++ b/src/mame/video/othldrby.c @@ -224,11 +224,15 @@ SCREEN_UPDATE_IND16( othldrby ) return 0; } -SCREEN_EOF( othldrby ) +SCREEN_VBLANK( othldrby ) { - othldrby_state *state = screen.machine().driver_data<othldrby_state>(); + // rising edge + if (vblank_on) + { + othldrby_state *state = screen.machine().driver_data<othldrby_state>(); - /* sprites need to be delayed two frames */ - memcpy(state->m_buf_spriteram, state->m_buf_spriteram2, SPRITERAM_SIZE * sizeof(state->m_buf_spriteram[0])); - memcpy(state->m_buf_spriteram2, &state->m_vram[SPRITERAM_START], SPRITERAM_SIZE * sizeof(state->m_buf_spriteram[0])); + /* sprites need to be delayed two frames */ + memcpy(state->m_buf_spriteram, state->m_buf_spriteram2, SPRITERAM_SIZE * sizeof(state->m_buf_spriteram[0])); + memcpy(state->m_buf_spriteram2, &state->m_vram[SPRITERAM_START], SPRITERAM_SIZE * sizeof(state->m_buf_spriteram[0])); + } } diff --git a/src/mame/video/pgm.c b/src/mame/video/pgm.c index 414aa9df7af..27afc868f8a 100644 --- a/src/mame/video/pgm.c +++ b/src/mame/video/pgm.c @@ -673,10 +673,14 @@ SCREEN_UPDATE_IND16( pgm ) } -SCREEN_EOF( pgm ) +SCREEN_VBLANK( pgm ) { - pgm_state *state = screen.machine().driver_data<pgm_state>(); + // rising edge + if (vblank_on) + { + pgm_state *state = screen.machine().driver_data<pgm_state>(); - /* first 0xa00 of main ram = sprites, seems to be buffered, DMA? */ - memcpy(state->m_spritebufferram, pgm_mainram, 0xa00); + /* first 0xa00 of main ram = sprites, seems to be buffered, DMA? */ + memcpy(state->m_spritebufferram, pgm_mainram, 0xa00); + } } diff --git a/src/mame/video/psikyo.c b/src/mame/video/psikyo.c index 8397e5164a0..f2de0755494 100644 --- a/src/mame/video/psikyo.c +++ b/src/mame/video/psikyo.c @@ -865,9 +865,13 @@ SCREEN_UPDATE_IND16( psikyo_bootleg ) } -SCREEN_EOF( psikyo ) +SCREEN_VBLANK( psikyo ) { - psikyo_state *state = screen.machine().driver_data<psikyo_state>(); - memcpy(state->m_spritebuf2, state->m_spritebuf1, 0x2000); - memcpy(state->m_spritebuf1, state->m_spriteram, 0x2000); + // rising edge + if (vblank_on) + { + psikyo_state *state = screen.machine().driver_data<psikyo_state>(); + memcpy(state->m_spritebuf2, state->m_spritebuf1, 0x2000); + memcpy(state->m_spritebuf1, state->m_spriteram, 0x2000); + } } diff --git a/src/mame/video/psikyosh.c b/src/mame/video/psikyosh.c index ff2ebf4df61..1b1c12374a9 100644 --- a/src/mame/video/psikyosh.c +++ b/src/mame/video/psikyosh.c @@ -1313,9 +1313,13 @@ popmessage ("%08x %08x %08x %08x\n%08x %08x %08x %08x", return 0; } -SCREEN_EOF( psikyosh ) +SCREEN_VBLANK( psikyosh ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram32_w(space, 0, 0, 0xffffffff); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + buffer_spriteram32_w(space, 0, 0, 0xffffffff); + } } diff --git a/src/mame/video/redclash.c b/src/mame/video/redclash.c index f167c0f1a02..0fcff897ce8 100644 --- a/src/mame/video/redclash.c +++ b/src/mame/video/redclash.c @@ -315,7 +315,7 @@ void redclash_set_stars_enable( running_machine &machine, UINT8 on ) } /* This sets up which starfield to draw and the offset, */ -/* To be called from SCREEN_EOF() */ +/* To be called from SCREEN_VBLANK() */ void redclash_update_stars_state( running_machine &machine ) { @@ -418,9 +418,11 @@ void redclash_draw_stars( running_machine &machine, bitmap_ind16 &bitmap, const } } -SCREEN_EOF( redclash ) +SCREEN_VBLANK( redclash ) { - redclash_update_stars_state(screen.machine()); + // rising edge + if (vblank_on) + redclash_update_stars_state(screen.machine()); } SCREEN_UPDATE_IND16( redclash ) diff --git a/src/mame/video/seta.c b/src/mame/video/seta.c index b5adeda3012..3f63a374f1b 100644 --- a/src/mame/video/seta.c +++ b/src/mame/video/seta.c @@ -1065,9 +1065,11 @@ SCREEN_UPDATE_IND16( setaroul ) return 0; } -SCREEN_EOF( setaroul ) +SCREEN_VBLANK( setaroul ) { - screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); + // rising edge + if (vblank_on) + screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); } diff --git a/src/mame/video/seta2.c b/src/mame/video/seta2.c index cf0a0769e5f..27914c25eab 100644 --- a/src/mame/video/seta2.c +++ b/src/mame/video/seta2.c @@ -491,10 +491,14 @@ SCREEN_UPDATE_IND16( seta2 ) return 0; } -SCREEN_EOF( seta2 ) +SCREEN_VBLANK( seta2 ) { - seta2_state *state = screen.machine().driver_data<seta2_state>(); + // rising edge + if (vblank_on) + { + seta2_state *state = screen.machine().driver_data<seta2_state>(); - // Buffer sprites by 1 frame - memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram_size); + // Buffer sprites by 1 frame + memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram_size); + } } diff --git a/src/mame/video/shadfrce.c b/src/mame/video/shadfrce.c index 5b551821175..3c5c2b19d70 100644 --- a/src/mame/video/shadfrce.c +++ b/src/mame/video/shadfrce.c @@ -182,10 +182,14 @@ SCREEN_UPDATE_IND16( shadfrce ) return 0; } -SCREEN_EOF( shadfrce ) +SCREEN_VBLANK( shadfrce ) { - shadfrce_state *state = screen.machine().driver_data<shadfrce_state>(); + // rising edge + if (vblank_on) + { + shadfrce_state *state = screen.machine().driver_data<shadfrce_state>(); - /* looks like sprites are *two* frames ahead */ - memcpy(state->m_spvideoram_old, state->m_spvideoram, state->m_spvideoram_size); + /* looks like sprites are *two* frames ahead */ + memcpy(state->m_spvideoram_old, state->m_spvideoram, state->m_spvideoram_size); + } } diff --git a/src/mame/video/sidearms.c b/src/mame/video/sidearms.c index 41b0dae92f8..ab8cea31c54 100644 --- a/src/mame/video/sidearms.c +++ b/src/mame/video/sidearms.c @@ -366,9 +366,13 @@ SCREEN_UPDATE_IND16( sidearms ) return 0; } -SCREEN_EOF( sidearms ) +SCREEN_VBLANK( sidearms ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space, 0, 0); + buffer_spriteram_w(space, 0, 0); + } } diff --git a/src/mame/video/slapshot.c b/src/mame/video/slapshot.c index 8bf3b56f36e..6706f96cb7d 100644 --- a/src/mame/video/slapshot.c +++ b/src/mame/video/slapshot.c @@ -428,13 +428,17 @@ static void taito_update_sprites_active_area( running_machine &machine ) } } -SCREEN_EOF( taito_no_buffer ) +SCREEN_VBLANK( taito_no_buffer ) { - slapshot_state *state = screen.machine().driver_data<slapshot_state>(); + // rising edge + if (vblank_on) + { + slapshot_state *state = screen.machine().driver_data<slapshot_state>(); - taito_update_sprites_active_area(screen.machine()); + taito_update_sprites_active_area(screen.machine()); - state->m_prepare_sprites = 1; + state->m_prepare_sprites = 1; + } } diff --git a/src/mame/video/sprint2.c b/src/mame/video/sprint2.c index 08164dcca59..90c57aa6dd9 100644 --- a/src/mame/video/sprint2.c +++ b/src/mame/video/sprint2.c @@ -144,73 +144,77 @@ SCREEN_UPDATE_IND16( sprint2 ) } -SCREEN_EOF( sprint2 ) +SCREEN_VBLANK( sprint2 ) { - sprint2_state *state = screen.machine().driver_data<sprint2_state>(); - UINT8 *video_ram = state->m_video_ram; - int i; - int j; - const rectangle &visarea = screen.machine().primary_screen->visible_area(); - - /* - * Collisions are detected for both player cars: - * - * D7 => state->m_collision w/ white playfield - * D6 => state->m_collision w/ black playfield or another car - * - */ - - for (i = 0; i < 2; i++) + // rising edge + if (vblank_on) { - rectangle rect; - - rect.min_x = get_sprite_x(video_ram, i); - rect.min_y = get_sprite_y(video_ram, i); - rect.max_x = get_sprite_x(video_ram, i) + screen.machine().gfx[1]->width - 1; - rect.max_y = get_sprite_y(video_ram, i) + screen.machine().gfx[1]->height - 1; - - if (rect.min_x < visarea.min_x) - rect.min_x = visarea.min_x; - if (rect.min_y < visarea.min_y) - rect.min_y = visarea.min_y; - if (rect.max_x > visarea.max_x) - rect.max_x = visarea.max_x; - if (rect.max_y > visarea.max_y) - rect.max_y = visarea.max_y; - - /* check for sprite-tilemap collisions */ - - tilemap_draw(state->m_helper, rect, state->m_bg_tilemap, 0, 0); - - drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], - get_sprite_code(video_ram, i), - 0, - 0, 0, - get_sprite_x(video_ram, i), - get_sprite_y(video_ram, i), 1); - - state->m_collision[i] |= collision_check(state, screen.machine().colortable, rect); - - /* check for sprite-sprite collisions */ - - for (j = 0; j < 4; j++) - if (j != i) - { - drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], - get_sprite_code(video_ram, j), - 1, - 0, 0, - get_sprite_x(video_ram, j), - get_sprite_y(video_ram, j), 0); - } - - drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], - get_sprite_code(video_ram, i), - 0, - 0, 0, - get_sprite_x(video_ram, i), - get_sprite_y(video_ram, i), 1); - - state->m_collision[i] |= collision_check(state, screen.machine().colortable, rect); + sprint2_state *state = screen.machine().driver_data<sprint2_state>(); + UINT8 *video_ram = state->m_video_ram; + int i; + int j; + const rectangle &visarea = screen.machine().primary_screen->visible_area(); + + /* + * Collisions are detected for both player cars: + * + * D7 => state->m_collision w/ white playfield + * D6 => state->m_collision w/ black playfield or another car + * + */ + + for (i = 0; i < 2; i++) + { + rectangle rect; + + rect.min_x = get_sprite_x(video_ram, i); + rect.min_y = get_sprite_y(video_ram, i); + rect.max_x = get_sprite_x(video_ram, i) + screen.machine().gfx[1]->width - 1; + rect.max_y = get_sprite_y(video_ram, i) + screen.machine().gfx[1]->height - 1; + + if (rect.min_x < visarea.min_x) + rect.min_x = visarea.min_x; + if (rect.min_y < visarea.min_y) + rect.min_y = visarea.min_y; + if (rect.max_x > visarea.max_x) + rect.max_x = visarea.max_x; + if (rect.max_y > visarea.max_y) + rect.max_y = visarea.max_y; + + /* check for sprite-tilemap collisions */ + + tilemap_draw(state->m_helper, rect, state->m_bg_tilemap, 0, 0); + + drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], + get_sprite_code(video_ram, i), + 0, + 0, 0, + get_sprite_x(video_ram, i), + get_sprite_y(video_ram, i), 1); + + state->m_collision[i] |= collision_check(state, screen.machine().colortable, rect); + + /* check for sprite-sprite collisions */ + + for (j = 0; j < 4; j++) + if (j != i) + { + drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], + get_sprite_code(video_ram, j), + 1, + 0, 0, + get_sprite_x(video_ram, j), + get_sprite_y(video_ram, j), 0); + } + + drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], + get_sprite_code(video_ram, i), + 0, + 0, 0, + get_sprite_x(video_ram, i), + get_sprite_y(video_ram, i), 1); + + state->m_collision[i] |= collision_check(state, screen.machine().colortable, rect); + } } } diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c index 60b04295fca..ecbaf0cd1b8 100644 --- a/src/mame/video/sprint4.c +++ b/src/mame/video/sprint4.c @@ -88,60 +88,64 @@ SCREEN_UPDATE_IND16( sprint4 ) } -SCREEN_EOF( sprint4 ) +SCREEN_VBLANK( sprint4 ) { - sprint4_state *state = screen.machine().driver_data<sprint4_state>(); - UINT8 *videoram = state->m_videoram; - int i; + // rising edge + if (vblank_on) + { + sprint4_state *state = screen.machine().driver_data<sprint4_state>(); + UINT8 *videoram = state->m_videoram; + int i; - /* check for sprite-playfield collisions */ + /* check for sprite-playfield collisions */ - device_t *discrete = screen.machine().device("discrete"); + device_t *discrete = screen.machine().device("discrete"); - for (i = 0; i < 4; i++) - { - rectangle rect; + for (i = 0; i < 4; i++) + { + rectangle rect; - int x; - int y; + int x; + int y; - int bank = 0; + int bank = 0; - UINT8 horz = videoram[0x390 + 2 * i + 0]; - UINT8 vert = videoram[0x398 + 2 * i + 0]; - UINT8 code = videoram[0x398 + 2 * i + 1]; + UINT8 horz = videoram[0x390 + 2 * i + 0]; + UINT8 vert = videoram[0x398 + 2 * i + 0]; + UINT8 code = videoram[0x398 + 2 * i + 1]; - rect.min_x = horz - 15; - rect.min_y = vert - 15; - rect.max_x = horz - 15 + screen.machine().gfx[1]->width - 1; - rect.max_y = vert - 15 + screen.machine().gfx[1]->height - 1; + rect.min_x = horz - 15; + rect.min_y = vert - 15; + rect.max_x = horz - 15 + screen.machine().gfx[1]->width - 1; + rect.max_y = vert - 15 + screen.machine().gfx[1]->height - 1; - rect &= screen.machine().primary_screen->visible_area(); + rect &= screen.machine().primary_screen->visible_area(); - tilemap_draw(state->m_helper, rect, state->m_playfield, 0, 0); + tilemap_draw(state->m_helper, rect, state->m_playfield, 0, 0); - if (i & 1) - bank = 32; + if (i & 1) + bank = 32; - drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], - (code >> 3) | bank, - 4, - 0, 0, - horz - 15, - vert - 15, 1); + drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], + (code >> 3) | bank, + 4, + 0, 0, + horz - 15, + vert - 15, 1); - for (y = rect.min_y; y <= rect.max_y; y++) - for (x = rect.min_x; x <= rect.max_x; x++) - if (colortable_entry_get_value(screen.machine().colortable, state->m_helper.pix16(y, x)) != 0) - state->m_collision[i] = 1; - } + for (y = rect.min_y; y <= rect.max_y; y++) + for (x = rect.min_x; x <= rect.max_x; x++) + if (colortable_entry_get_value(screen.machine().colortable, state->m_helper.pix16(y, x)) != 0) + state->m_collision[i] = 1; + } - /* update sound status */ + /* update sound status */ - discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_1, videoram[0x391] & 15); - discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_2, videoram[0x393] & 15); - discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_3, videoram[0x395] & 15); - discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_4, videoram[0x397] & 15); + discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_1, videoram[0x391] & 15); + discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_2, videoram[0x393] & 15); + discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_3, videoram[0x395] & 15); + discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_4, videoram[0x397] & 15); + } } diff --git a/src/mame/video/sprint8.c b/src/mame/video/sprint8.c index efa219d2c1d..dc1af359267 100644 --- a/src/mame/video/sprint8.c +++ b/src/mame/video/sprint8.c @@ -168,28 +168,32 @@ SCREEN_UPDATE_IND16( sprint8 ) } -SCREEN_EOF( sprint8 ) +SCREEN_VBLANK( sprint8 ) { - sprint8_state *state = screen.machine().driver_data<sprint8_state>(); - int x; - int y; - const rectangle &visarea = screen.machine().primary_screen->visible_area(); + // rising edge + if (vblank_on) + { + sprint8_state *state = screen.machine().driver_data<sprint8_state>(); + int x; + int y; + const rectangle &visarea = screen.machine().primary_screen->visible_area(); - tilemap_draw(state->m_helper2, visarea, state->m_tilemap2, 0, 0); + tilemap_draw(state->m_helper2, visarea, state->m_tilemap2, 0, 0); - state->m_helper1.fill(0x20, visarea); + state->m_helper1.fill(0x20, visarea); - draw_sprites(screen.machine(), state->m_helper1, visarea); + draw_sprites(screen.machine(), state->m_helper1, visarea); - for (y = visarea.min_y; y <= visarea.max_y; y++) - { - const UINT16* p1 = &state->m_helper1.pix16(y); - const UINT16* p2 = &state->m_helper2.pix16(y); - - for (x = visarea.min_x; x <= visarea.max_x; x++) - if (p1[x] != 0x20 && p2[x] == 0x23) - screen.machine().scheduler().timer_set(screen.machine().primary_screen->time_until_pos(y + 24, x), - FUNC(sprint8_collision_callback), - colortable_entry_get_value(screen.machine().colortable, p1[x])); + for (y = visarea.min_y; y <= visarea.max_y; y++) + { + const UINT16* p1 = &state->m_helper1.pix16(y); + const UINT16* p2 = &state->m_helper2.pix16(y); + + for (x = visarea.min_x; x <= visarea.max_x; x++) + if (p1[x] != 0x20 && p2[x] == 0x23) + screen.machine().scheduler().timer_set(screen.machine().primary_screen->time_until_pos(y + 24, x), + FUNC(sprint8_collision_callback), + colortable_entry_get_value(screen.machine().colortable, p1[x])); + } } } diff --git a/src/mame/video/srumbler.c b/src/mame/video/srumbler.c index e960feddc49..86cf9305dcb 100644 --- a/src/mame/video/srumbler.c +++ b/src/mame/video/srumbler.c @@ -170,9 +170,13 @@ SCREEN_UPDATE_IND16( srumbler ) return 0; } -SCREEN_EOF( srumbler ) +SCREEN_VBLANK( srumbler ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram_w(space,0,0); + buffer_spriteram_w(space,0,0); + } } diff --git a/src/mame/video/sspeedr.c b/src/mame/video/sspeedr.c index ec051d52a3e..8b559592807 100644 --- a/src/mame/video/sspeedr.c +++ b/src/mame/video/sspeedr.c @@ -267,8 +267,12 @@ SCREEN_UPDATE_IND16( sspeedr ) } -SCREEN_EOF( sspeedr ) +SCREEN_VBLANK( sspeedr ) { - sspeedr_state *state = screen.machine().driver_data<sspeedr_state>(); - state->m_toggle ^= 1; + // rising edge + if (vblank_on) + { + sspeedr_state *state = screen.machine().driver_data<sspeedr_state>(); + state->m_toggle ^= 1; + } } diff --git a/src/mame/video/ssrj.c b/src/mame/video/ssrj.c index f09352ef488..af2931734e5 100644 --- a/src/mame/video/ssrj.c +++ b/src/mame/video/ssrj.c @@ -294,9 +294,13 @@ SCREEN_UPDATE_IND16( ssrj ) return 0; } -SCREEN_EOF( ssrj ) +SCREEN_VBLANK( ssrj ) { - ssrj_state *state = screen.machine().driver_data<ssrj_state>(); + // rising edge + if (vblank_on) + { + ssrj_state *state = screen.machine().driver_data<ssrj_state>(); - memcpy(state->m_buffer_spriteram, state->m_scrollram, 0x800); + memcpy(state->m_buffer_spriteram, state->m_scrollram, 0x800); + } } diff --git a/src/mame/video/starshp1.c b/src/mame/video/starshp1.c index 882138f42dc..aff2b5e7975 100644 --- a/src/mame/video/starshp1.c +++ b/src/mame/video/starshp1.c @@ -386,33 +386,37 @@ SCREEN_UPDATE_IND16( starshp1 ) } -SCREEN_EOF( starshp1 ) +SCREEN_VBLANK( starshp1 ) { - starshp1_state *state = screen.machine().driver_data<starshp1_state>(); - rectangle rect; - const rectangle &visarea = screen.machine().primary_screen->visible_area(); + // rising edge + if (vblank_on) + { + starshp1_state *state = screen.machine().driver_data<starshp1_state>(); + rectangle rect; + const rectangle &visarea = screen.machine().primary_screen->visible_area(); - rect.min_x = get_sprite_hpos(state, 13); - rect.min_y = get_sprite_vpos(state, 13); - rect.max_x = rect.min_x + screen.machine().gfx[1]->width - 1; - rect.max_y = rect.min_y + screen.machine().gfx[1]->height - 1; - - rect &= state->m_helper.cliprect(); + rect.min_x = get_sprite_hpos(state, 13); + rect.min_y = get_sprite_vpos(state, 13); + rect.max_x = rect.min_x + screen.machine().gfx[1]->width - 1; + rect.max_y = rect.min_y + screen.machine().gfx[1]->height - 1; + + rect &= state->m_helper.cliprect(); - state->m_helper.fill(0, visarea); + state->m_helper.fill(0, visarea); - if (state->m_attract == 0) - draw_spaceship(screen.machine(), state->m_helper, visarea); + if (state->m_attract == 0) + draw_spaceship(screen.machine(), state->m_helper, visarea); - if (circle_collision(state, visarea)) - state->m_collision_latch |= 1; + if (circle_collision(state, visarea)) + state->m_collision_latch |= 1; - if (circle_collision(state, rect)) - state->m_collision_latch |= 2; + if (circle_collision(state, rect)) + state->m_collision_latch |= 2; - if (spaceship_collision(screen.machine(), state->m_helper, rect)) - state->m_collision_latch |= 4; + if (spaceship_collision(screen.machine(), state->m_helper, rect)) + state->m_collision_latch |= 4; - if (spaceship_collision(screen.machine(), state->m_helper, visarea)) - state->m_collision_latch |= 8; + if (spaceship_collision(screen.machine(), state->m_helper, visarea)) + state->m_collision_latch |= 8; + } } diff --git a/src/mame/video/suprnova.c b/src/mame/video/suprnova.c index 308e9d43434..2aca0448672 100644 --- a/src/mame/video/suprnova.c +++ b/src/mame/video/suprnova.c @@ -637,7 +637,7 @@ SCREEN_UPDATE_RGB32(skns) return 0; } -SCREEN_EOF(skns) +SCREEN_VBLANK(skns) { } diff --git a/src/mame/video/taito_b.c b/src/mame/video/taito_b.c index 1581e19ebdf..96c72694095 100644 --- a/src/mame/video/taito_b.c +++ b/src/mame/video/taito_b.c @@ -503,20 +503,24 @@ SCREEN_UPDATE_RGB32( realpunc ) -SCREEN_EOF( taitob ) +SCREEN_VBLANK( taitob ) { - taitob_state *state = screen.machine().driver_data<taitob_state>(); - UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0); - UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, 0); + // rising edge + if (vblank_on) + { + taitob_state *state = screen.machine().driver_data<taitob_state>(); + UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0); + UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, 0); - if (~video_control & 0x01) - state->m_framebuffer[framebuffer_page]->fill(0, screen.machine().primary_screen->visible_area()); + if (~video_control & 0x01) + state->m_framebuffer[framebuffer_page]->fill(0, screen.machine().primary_screen->visible_area()); - if (~video_control & 0x80) - { - framebuffer_page ^= 1; - tc0180vcu_set_fb_page(state->m_tc0180vcu, 0, framebuffer_page); - } + if (~video_control & 0x80) + { + framebuffer_page ^= 1; + tc0180vcu_set_fb_page(state->m_tc0180vcu, 0, framebuffer_page); + } - draw_sprites(screen.machine(), *state->m_framebuffer[framebuffer_page], screen.machine().primary_screen->visible_area()); + draw_sprites(screen.machine(), *state->m_framebuffer[framebuffer_page], screen.machine().primary_screen->visible_area()); + } } diff --git a/src/mame/video/taito_f2.c b/src/mame/video/taito_f2.c index 481da2f0c30..d9053391298 100644 --- a/src/mame/video/taito_f2.c +++ b/src/mame/video/taito_f2.c @@ -891,87 +891,107 @@ static void taitof2_update_sprites_active_area( running_machine &machine ) } -SCREEN_EOF( taitof2_no_buffer ) +SCREEN_VBLANK( taitof2_no_buffer ) { - taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + // rising edge + if (vblank_on) + { + taitof2_state *state = screen.machine().driver_data<taitof2_state>(); - taitof2_update_sprites_active_area(screen.machine()); + taitof2_update_sprites_active_area(screen.machine()); - state->m_prepare_sprites = 1; + state->m_prepare_sprites = 1; + } } -SCREEN_EOF( taitof2_full_buffer_delayed ) +SCREEN_VBLANK( taitof2_full_buffer_delayed ) { - taitof2_state *state = screen.machine().driver_data<taitof2_state>(); - UINT16 *spriteram = state->m_spriteram; - int i; + // rising edge + if (vblank_on) + { + taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + UINT16 *spriteram = state->m_spriteram; + int i; - taitof2_update_sprites_active_area(screen.machine()); + taitof2_update_sprites_active_area(screen.machine()); - state->m_prepare_sprites = 0; - memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram_size); - for (i = 0; i < state->m_spriteram_size / 2; i++) - state->m_spriteram_buffered[i] = spriteram[i]; - memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram_size); + state->m_prepare_sprites = 0; + memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram_size); + for (i = 0; i < state->m_spriteram_size / 2; i++) + state->m_spriteram_buffered[i] = spriteram[i]; + memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram_size); + } } -SCREEN_EOF( taitof2_partial_buffer_delayed ) +SCREEN_VBLANK( taitof2_partial_buffer_delayed ) { - taitof2_state *state = screen.machine().driver_data<taitof2_state>(); - UINT16 *spriteram = state->m_spriteram; - int i; + // rising edge + if (vblank_on) + { + taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + UINT16 *spriteram = state->m_spriteram; + int i; - taitof2_update_sprites_active_area(screen.machine()); + taitof2_update_sprites_active_area(screen.machine()); - state->m_prepare_sprites = 0; - memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram_size); - for (i = 0;i < state->m_spriteram_size / 2; i += 4) - state->m_spriteram_buffered[i] = spriteram[i]; - memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram_size); + state->m_prepare_sprites = 0; + memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram_size); + for (i = 0;i < state->m_spriteram_size / 2; i += 4) + state->m_spriteram_buffered[i] = spriteram[i]; + memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram_size); + } } -SCREEN_EOF( taitof2_partial_buffer_delayed_thundfox ) +SCREEN_VBLANK( taitof2_partial_buffer_delayed_thundfox ) { - taitof2_state *state = screen.machine().driver_data<taitof2_state>(); - UINT16 *spriteram = state->m_spriteram; - int i; + // rising edge + if (vblank_on) + { + taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + UINT16 *spriteram = state->m_spriteram; + int i; - taitof2_update_sprites_active_area(screen.machine()); + taitof2_update_sprites_active_area(screen.machine()); - state->m_prepare_sprites = 0; - memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram_size); - for (i = 0; i < state->m_spriteram_size / 2; i += 8) - { - state->m_spriteram_buffered[i] = spriteram[i]; - state->m_spriteram_buffered[i + 1] = spriteram[i + 1]; - state->m_spriteram_buffered[i + 4] = spriteram[i + 4]; + state->m_prepare_sprites = 0; + memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram_size); + for (i = 0; i < state->m_spriteram_size / 2; i += 8) + { + state->m_spriteram_buffered[i] = spriteram[i]; + state->m_spriteram_buffered[i + 1] = spriteram[i + 1]; + state->m_spriteram_buffered[i + 4] = spriteram[i + 4]; + } + memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram_size); } - memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram_size); } -SCREEN_EOF( taitof2_partial_buffer_delayed_qzchikyu ) +SCREEN_VBLANK( taitof2_partial_buffer_delayed_qzchikyu ) { - /* spriteram[2] and [3] are 1 frame behind... - probably thundfox_eof_callback would work fine */ + // rising edge + if (vblank_on) + { + /* spriteram[2] and [3] are 1 frame behind... + probably thundfox_eof_callback would work fine */ - taitof2_state *state = screen.machine().driver_data<taitof2_state>(); - UINT16 *spriteram = state->m_spriteram; - int i; + taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + UINT16 *spriteram = state->m_spriteram; + int i; - taitof2_update_sprites_active_area(screen.machine()); + taitof2_update_sprites_active_area(screen.machine()); - state->m_prepare_sprites = 0; - memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram_size); - for (i = 0; i < state->m_spriteram_size / 2; i += 8) - { - state->m_spriteram_buffered[i] = spriteram[i]; - state->m_spriteram_buffered[i + 1] = spriteram[i + 1]; - state->m_spriteram_buffered[i + 4] = spriteram[i + 4]; - state->m_spriteram_buffered[i + 5] = spriteram[i + 5]; // not needed? - state->m_spriteram_buffered[i + 6] = spriteram[i + 6]; // not needed? - state->m_spriteram_buffered[i + 7] = spriteram[i + 7]; // not needed? + state->m_prepare_sprites = 0; + memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram_size); + for (i = 0; i < state->m_spriteram_size / 2; i += 8) + { + state->m_spriteram_buffered[i] = spriteram[i]; + state->m_spriteram_buffered[i + 1] = spriteram[i + 1]; + state->m_spriteram_buffered[i + 4] = spriteram[i + 4]; + state->m_spriteram_buffered[i + 5] = spriteram[i + 5]; // not needed? + state->m_spriteram_buffered[i + 6] = spriteram[i + 6]; // not needed? + state->m_spriteram_buffered[i + 7] = spriteram[i + 7]; // not needed? + } + memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram_size); } - memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram_size); } diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c index fbceb5773d9..3fab2207a4d 100644 --- a/src/mame/video/taito_f3.c +++ b/src/mame/video/taito_f3.c @@ -515,22 +515,25 @@ static TILE_GET_INFO( get_tile_info_pixel ) /******************************************************************************/ -SCREEN_EOF( f3 ) +SCREEN_VBLANK( f3 ) { - taito_f3_state *state = screen.machine().driver_data<taito_f3_state>(); - if (state->m_sprite_lag==2) + if (vblank_on) { - if (screen.machine().video().skip_this_frame() == 0) + taito_f3_state *state = screen.machine().driver_data<taito_f3_state>(); + if (state->m_sprite_lag==2) { - get_sprite_info(screen.machine(), state->m_spriteram16_buffered); + if (screen.machine().video().skip_this_frame() == 0) + { + get_sprite_info(screen.machine(), state->m_spriteram16_buffered); + } + memcpy(state->m_spriteram16_buffered,state->m_spriteram,0x10000); } - memcpy(state->m_spriteram16_buffered,state->m_spriteram,0x10000); - } - else if (state->m_sprite_lag==1) - { - if (screen.machine().video().skip_this_frame() == 0) + else if (state->m_sprite_lag==1) { - get_sprite_info(screen.machine(), state->m_spriteram); + if (screen.machine().video().skip_this_frame() == 0) + { + get_sprite_info(screen.machine(), state->m_spriteram); + } } } } diff --git a/src/mame/video/taito_l.c b/src/mame/video/taito_l.c index 2da67756cde..20c024fea5d 100644 --- a/src/mame/video/taito_l.c +++ b/src/mame/video/taito_l.c @@ -327,10 +327,14 @@ SCREEN_UPDATE_IND16( taitol ) -SCREEN_EOF( taitol ) +SCREEN_VBLANK( taitol ) { - taitol_state *state = screen.machine().driver_data<taitol_state>(); - UINT8 *spriteram = state->m_rambanks + 0xb000; + // rising edge + if (vblank_on) + { + taitol_state *state = screen.machine().driver_data<taitol_state>(); + UINT8 *spriteram = state->m_rambanks + 0xb000; - memcpy(state->m_buff_spriteram, spriteram, TAITOL_SPRITERAM_SIZE); + memcpy(state->m_buff_spriteram, spriteram, TAITOL_SPRITERAM_SIZE); + } } diff --git a/src/mame/video/tank8.c b/src/mame/video/tank8.c index 199cdcca45b..ff1a0fadf24 100644 --- a/src/mame/video/tank8.c +++ b/src/mame/video/tank8.c @@ -202,91 +202,95 @@ SCREEN_UPDATE_IND16( tank8 ) } -SCREEN_EOF( tank8 ) +SCREEN_VBLANK( tank8 ) { - tank8_state *state = screen.machine().driver_data<tank8_state>(); - int x; - int y; - const rectangle &visarea = screen.machine().primary_screen->visible_area(); - - tilemap_draw(state->m_helper1, visarea, state->m_tilemap, 0, 0); - - state->m_helper2.fill(8, visarea); - state->m_helper3.fill(8, visarea); - - draw_sprites(screen.machine(), state->m_helper2, visarea); - draw_bullets(screen.machine(), state->m_helper3, visarea); - - for (y = visarea.min_y; y <= visarea.max_y; y++) + // on falling edge + if (!vblank_on) { - int _state = 0; - - const UINT16* p1 = &state->m_helper1.pix16(y); - const UINT16* p2 = &state->m_helper2.pix16(y); - const UINT16* p3 = &state->m_helper3.pix16(y); - - if (y % 2 != screen.machine().primary_screen->frame_number() % 2) - continue; /* video display is interlaced */ - - for (x = visarea.min_x; x <= visarea.max_x; x++) - { - UINT8 index; - - /* neither wall nor mine */ - if ((p1[x] != 0x11) && (p1[x] != 0x13)) - { - _state = 0; - continue; - } + tank8_state *state = screen.machine().driver_data<tank8_state>(); + int x; + int y; + const rectangle &visarea = screen.machine().primary_screen->visible_area(); - /* neither tank nor bullet */ - if ((p2[x] == 8) && (p3[x] == 8)) - { - _state = 0; - continue; - } + tilemap_draw(state->m_helper1, visarea, state->m_tilemap, 0, 0); - /* bullets cannot hit mines */ - if ((p3[x] != 8) && (p1[x] == 0x13)) - { - _state = 0; - continue; - } + state->m_helper2.fill(8, visarea); + state->m_helper3.fill(8, visarea); - if (_state) - continue; + draw_sprites(screen.machine(), state->m_helper2, visarea); + draw_bullets(screen.machine(), state->m_helper3, visarea); - if (p3[x] != 8) - { - index = ((p3[x] & ~0x01) >> 1) | 0x18; + for (y = visarea.min_y; y <= visarea.max_y; y++) + { + int _state = 0; - if (1) - index |= 0x20; + const UINT16* p1 = &state->m_helper1.pix16(y); + const UINT16* p2 = &state->m_helper2.pix16(y); + const UINT16* p3 = &state->m_helper3.pix16(y); - if (0) - index |= 0x40; + if (y % 2 != screen.machine().primary_screen->frame_number() % 2) + continue; /* video display is interlaced */ - if (1) - index |= 0x80; - } - else + for (x = visarea.min_x; x <= visarea.max_x; x++) { - int sprite_num = (p2[x] & ~0x01) >> 1; - index = sprite_num | 0x10; - - if (p1[x] == 0x11) - index |= 0x20; - - if (y - get_y_pos(state, sprite_num) >= 8) - index |= 0x40; /* collision on bottom side */ - - if (x - get_x_pos(state, sprite_num) >= 8) - index |= 0x80; /* collision on right side */ + UINT8 index; + + /* neither wall nor mine */ + if ((p1[x] != 0x11) && (p1[x] != 0x13)) + { + _state = 0; + continue; + } + + /* neither tank nor bullet */ + if ((p2[x] == 8) && (p3[x] == 8)) + { + _state = 0; + continue; + } + + /* bullets cannot hit mines */ + if ((p3[x] != 8) && (p1[x] == 0x13)) + { + _state = 0; + continue; + } + + if (_state) + continue; + + if (p3[x] != 8) + { + index = ((p3[x] & ~0x01) >> 1) | 0x18; + + if (1) + index |= 0x20; + + if (0) + index |= 0x40; + + if (1) + index |= 0x80; + } + else + { + int sprite_num = (p2[x] & ~0x01) >> 1; + index = sprite_num | 0x10; + + if (p1[x] == 0x11) + index |= 0x20; + + if (y - get_y_pos(state, sprite_num) >= 8) + index |= 0x40; /* collision on bottom side */ + + if (x - get_x_pos(state, sprite_num) >= 8) + index |= 0x80; /* collision on right side */ + } + + screen.machine().scheduler().timer_set(screen.time_until_pos(y, x), FUNC(tank8_collision_callback), index); + + _state = 1; } - - screen.machine().scheduler().timer_set(screen.time_until_pos(y, x), FUNC(tank8_collision_callback), index); - - _state = 1; } } } diff --git a/src/mame/video/taotaido.c b/src/mame/video/taotaido.c index a2bc687618d..f12ccc9561c 100644 --- a/src/mame/video/taotaido.c +++ b/src/mame/video/taotaido.c @@ -227,14 +227,18 @@ SCREEN_UPDATE_IND16(taotaido) return 0; } -SCREEN_EOF( taotaido ) +SCREEN_VBLANK( taotaido ) { - taotaido_state *state = screen.machine().driver_data<taotaido_state>(); - /* sprites need to be delayed by 2 frames? */ + // rising edge + if (vblank_on) + { + taotaido_state *state = screen.machine().driver_data<taotaido_state>(); + /* sprites need to be delayed by 2 frames? */ - memcpy(state->m_spriteram2_older,state->m_spriteram2_old,0x10000); - memcpy(state->m_spriteram2_old,state->m_spriteram2,0x10000); + memcpy(state->m_spriteram2_older,state->m_spriteram2_old,0x10000); + memcpy(state->m_spriteram2_old,state->m_spriteram2,0x10000); - memcpy(state->m_spriteram_older,state->m_spriteram_old,0x2000); - memcpy(state->m_spriteram_old,state->m_spriteram,0x2000); + memcpy(state->m_spriteram_older,state->m_spriteram_old,0x2000); + memcpy(state->m_spriteram_old,state->m_spriteram,0x2000); + } } diff --git a/src/mame/video/tceptor.c b/src/mame/video/tceptor.c index c1129251c2f..78483b8c4b1 100644 --- a/src/mame/video/tceptor.c +++ b/src/mame/video/tceptor.c @@ -567,8 +567,12 @@ SCREEN_UPDATE_IND16( tceptor_3d_right ) } -SCREEN_EOF( tceptor ) +SCREEN_VBLANK( tceptor ) { - tceptor_state *state = screen.machine().driver_data<tceptor_state>(); - memcpy(state->m_sprite_ram_buffered, state->m_sprite_ram, 0x200); + // rising edge + if (vblank_on) + { + tceptor_state *state = screen.machine().driver_data<tceptor_state>(); + memcpy(state->m_sprite_ram_buffered, state->m_sprite_ram, 0x200); + } } diff --git a/src/mame/video/tigeroad.c b/src/mame/video/tigeroad.c index 176f5e645f1..305f90a797d 100644 --- a/src/mame/video/tigeroad.c +++ b/src/mame/video/tigeroad.c @@ -171,9 +171,13 @@ SCREEN_UPDATE_IND16( tigeroad ) return 0; } -SCREEN_EOF( tigeroad ) +SCREEN_VBLANK( tigeroad ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space, 0, 0, 0xffff); + buffer_spriteram16_w(space, 0, 0, 0xffff); + } } diff --git a/src/mame/video/tmnt.c b/src/mame/video/tmnt.c index fa1a8144d5d..f3a7ca038e4 100644 --- a/src/mame/video/tmnt.c +++ b/src/mame/video/tmnt.c @@ -831,8 +831,12 @@ SCREEN_UPDATE_IND16( thndrx2 ) ***************************************************************************/ -SCREEN_EOF( blswhstl ) +SCREEN_VBLANK( blswhstl ) { - tmnt_state *state = screen.machine().driver_data<tmnt_state>(); - k053245_clear_buffer(state->m_k053245); + // on falling edge + if (!vblank_on) + { + tmnt_state *state = screen.machine().driver_data<tmnt_state>(); + k053245_clear_buffer(state->m_k053245); + } } diff --git a/src/mame/video/tnzs.c b/src/mame/video/tnzs.c index 17cd1dc35d0..f6c2c8b65cf 100644 --- a/src/mame/video/tnzs.c +++ b/src/mame/video/tnzs.c @@ -53,7 +53,9 @@ SCREEN_UPDATE_IND16( tnzs ) return 0; } -SCREEN_EOF( tnzs ) +SCREEN_VBLANK( tnzs ) { - screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); + // rising edge + if (vblank_on) + screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); } diff --git a/src/mame/video/toaplan1.c b/src/mame/video/toaplan1.c index 4da96e4bdd2..12f00a438fa 100644 --- a/src/mame/video/toaplan1.c +++ b/src/mame/video/toaplan1.c @@ -1217,26 +1217,38 @@ SCREEN_UPDATE_IND16( toaplan1 ) assume it happens automatically every frame, at the end of vblank ****************************************************************************/ -SCREEN_EOF( rallybik ) +SCREEN_VBLANK( rallybik ) { - toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); + // rising edge + if (vblank_on) + { + toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); - memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram_size); + memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram_size); + } } -SCREEN_EOF( toaplan1 ) +SCREEN_VBLANK( toaplan1 ) { - toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); + // rising edge + if (vblank_on) + { + toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); - memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram_size); - memcpy(state->m_buffered_spritesizeram16, state->m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE); + memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram_size); + memcpy(state->m_buffered_spritesizeram16, state->m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE); + } } -SCREEN_EOF( samesame ) +SCREEN_VBLANK( samesame ) { - toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); + // rising edge + if (vblank_on) + { + toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); - memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram_size); - memcpy(state->m_buffered_spritesizeram16, state->m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE); - cputag_set_input_line(screen.machine(), "maincpu", M68K_IRQ_2, HOLD_LINE); /* Frame done */ + memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram_size); + memcpy(state->m_buffered_spritesizeram16, state->m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE); + cputag_set_input_line(screen.machine(), "maincpu", M68K_IRQ_2, HOLD_LINE); /* Frame done */ + } } diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c index 32a5ad0e78d..d212849be2b 100644 --- a/src/mame/video/toaplan2.c +++ b/src/mame/video/toaplan2.c @@ -485,9 +485,13 @@ SCREEN_UPDATE_IND16( batsugun ) return 0; } -SCREEN_EOF( toaplan2 ) +SCREEN_VBLANK( toaplan2 ) { - toaplan2_state *state = screen.machine().driver_data<toaplan2_state>(); - if (state->m_vdp0) state->m_vdp0->gp9001_screen_eof(); - if (state->m_vdp1) state->m_vdp1->gp9001_screen_eof(); + // rising edge + if (vblank_on) + { + toaplan2_state *state = screen.machine().driver_data<toaplan2_state>(); + if (state->m_vdp0) state->m_vdp0->gp9001_screen_eof(); + if (state->m_vdp1) state->m_vdp1->gp9001_screen_eof(); + } } diff --git a/src/mame/video/toki.c b/src/mame/video/toki.c index 81f9d78b073..722b9a23da4 100644 --- a/src/mame/video/toki.c +++ b/src/mame/video/toki.c @@ -33,14 +33,18 @@ WRITE16_HANDLER( toki_control_w ) COMBINE_DATA(&state->m_scrollram16[offset]); } -SCREEN_EOF( toki ) +SCREEN_VBLANK( toki ) { - buffer_spriteram16_w(screen.machine().device("maincpu")->memory().space(AS_PROGRAM), 0, 0, 0xffff); + // rising edge + if (vblank_on) + buffer_spriteram16_w(screen.machine().device("maincpu")->memory().space(AS_PROGRAM), 0, 0, 0xffff); } -SCREEN_EOF( tokib ) +SCREEN_VBLANK( tokib ) { - buffer_spriteram16_w(screen.machine().device("maincpu")->memory().space(AS_PROGRAM), 0, 0, 0xffff); + // rising edge + if (vblank_on) + buffer_spriteram16_w(screen.machine().device("maincpu")->memory().space(AS_PROGRAM), 0, 0, 0xffff); } static TILE_GET_INFO( get_text_tile_info ) diff --git a/src/mame/video/twin16.c b/src/mame/video/twin16.c index d0aeb2256cb..e5e3d181744 100644 --- a/src/mame/video/twin16.c +++ b/src/mame/video/twin16.c @@ -537,24 +537,28 @@ SCREEN_UPDATE_IND16( twin16 ) return 0; } -SCREEN_EOF( twin16 ) +SCREEN_VBLANK( twin16 ) { - twin16_state *state = screen.machine().driver_data<twin16_state>(); - twin16_set_sprite_timer(screen.machine()); - - if (twin16_spriteram_process_enable(screen.machine())) { - if (state->m_need_process_spriteram) twin16_spriteram_process(screen.machine()); - state->m_need_process_spriteram = 1; - - /* if the sprite preprocessor is used, sprite ram is copied to an external buffer first, - as evidenced by 1-frame sprite lag in gradius2 and devilw otherwise, though there's probably - more to it than that */ - memcpy(&screen.machine().generic.buffered_spriteram.u16[0x1800],state->m_sprite_buffer,0x800*sizeof(UINT16)); - memcpy(state->m_sprite_buffer,&screen.machine().generic.spriteram.u16[0x1800],0x800*sizeof(UINT16)); - } - else { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - buffer_spriteram16_w(space,0,0,0xffff); + // rising edge + if (vblank_on) + { + twin16_state *state = screen.machine().driver_data<twin16_state>(); + twin16_set_sprite_timer(screen.machine()); + + if (twin16_spriteram_process_enable(screen.machine())) { + if (state->m_need_process_spriteram) twin16_spriteram_process(screen.machine()); + state->m_need_process_spriteram = 1; + + /* if the sprite preprocessor is used, sprite ram is copied to an external buffer first, + as evidenced by 1-frame sprite lag in gradius2 and devilw otherwise, though there's probably + more to it than that */ + memcpy(&screen.machine().generic.buffered_spriteram.u16[0x1800],state->m_sprite_buffer,0x800*sizeof(UINT16)); + memcpy(state->m_sprite_buffer,&screen.machine().generic.spriteram.u16[0x1800],0x800*sizeof(UINT16)); + } + else { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + buffer_spriteram16_w(space,0,0,0xffff); + } } } diff --git a/src/mame/video/twincobr.c b/src/mame/video/twincobr.c index 4f5012ecf19..45fc04751e8 100644 --- a/src/mame/video/twincobr.c +++ b/src/mame/video/twincobr.c @@ -516,12 +516,16 @@ SCREEN_UPDATE_IND16( toaplan0 ) } -SCREEN_EOF( toaplan0 ) +SCREEN_VBLANK( toaplan0 ) { - address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); + // rising edge + if (vblank_on) + { + address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM); - /* Spriteram is always 1 frame ahead, suggesting spriteram buffering. - There are no CPU output registers that control this so we - assume it happens automatically every frame, at the end of vblank */ - buffer_spriteram16_w(space,0,0,0xffff); + /* Spriteram is always 1 frame ahead, suggesting spriteram buffering. + There are no CPU output registers that control this so we + assume it happens automatically every frame, at the end of vblank */ + buffer_spriteram16_w(space,0,0,0xffff); + } } diff --git a/src/mame/video/tx1.c b/src/mame/video/tx1.c index 3e484a7a048..dd5435c4e28 100644 --- a/src/mame/video/tx1.c +++ b/src/mame/video/tx1.c @@ -1124,7 +1124,7 @@ VIDEO_START( tx1 ) state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } -SCREEN_EOF( tx1 ) +SCREEN_VBLANK( tx1 ) { tx1_state *state = screen.machine().driver_data<tx1_state>(); /* /VSYNC: Update TZ113 */ @@ -3027,15 +3027,19 @@ VIDEO_START( buggybjr ) state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } -SCREEN_EOF( buggyboy ) +SCREEN_VBLANK( buggyboy ) { - tx1_state *state = screen.machine().driver_data<tx1_state>(); + // rising edge + if (vblank_on) + { + tx1_state *state = screen.machine().driver_data<tx1_state>(); - /* /VSYNC: Update TZ113 @ 219 */ - state->m_vregs.slin_val += state->m_vregs.slin_inc; + /* /VSYNC: Update TZ113 @ 219 */ + state->m_vregs.slin_val += state->m_vregs.slin_inc; - /* /VSYNC: Clear wave LFSR */ - state->m_vregs.wave_lfsr = 0; + /* /VSYNC: Clear wave LFSR */ + state->m_vregs.wave_lfsr = 0; + } } diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c index 4302d28b6ac..8ed661f26be 100644 --- a/src/mame/video/ultratnk.c +++ b/src/mame/video/ultratnk.c @@ -90,58 +90,62 @@ SCREEN_UPDATE_IND16( ultratnk ) } -SCREEN_EOF( ultratnk ) +SCREEN_VBLANK( ultratnk ) { - ultratnk_state *state = screen.machine().driver_data<ultratnk_state>(); - int i; - UINT16 BG = colortable_entry_get_value(screen.machine().colortable, 0); - device_t *discrete = screen.machine().device("discrete"); - UINT8 *videoram = state->m_videoram; + // rising edge + if (vblank_on) + { + ultratnk_state *state = screen.machine().driver_data<ultratnk_state>(); + int i; + UINT16 BG = colortable_entry_get_value(screen.machine().colortable, 0); + device_t *discrete = screen.machine().device("discrete"); + UINT8 *videoram = state->m_videoram; - /* check for sprite-playfield collisions */ + /* check for sprite-playfield collisions */ - for (i = 0; i < 4; i++) - { - rectangle rect; + for (i = 0; i < 4; i++) + { + rectangle rect; - int x; - int y; + int x; + int y; - int bank = 0; + int bank = 0; - UINT8 horz = videoram[0x390 + 2 * i + 0]; - UINT8 vert = videoram[0x398 + 2 * i + 0]; - UINT8 code = videoram[0x398 + 2 * i + 1]; + UINT8 horz = videoram[0x390 + 2 * i + 0]; + UINT8 vert = videoram[0x398 + 2 * i + 0]; + UINT8 code = videoram[0x398 + 2 * i + 1]; - rect.min_x = horz - 15; - rect.min_y = vert - 15; - rect.max_x = horz - 15 + screen.machine().gfx[1]->width - 1; - rect.max_y = vert - 15 + screen.machine().gfx[1]->height - 1; + rect.min_x = horz - 15; + rect.min_y = vert - 15; + rect.max_x = horz - 15 + screen.machine().gfx[1]->width - 1; + rect.max_y = vert - 15 + screen.machine().gfx[1]->height - 1; - rect &= screen.machine().primary_screen->visible_area(); + rect &= screen.machine().primary_screen->visible_area(); - tilemap_draw(state->m_helper, rect, state->m_playfield, 0, 0); + tilemap_draw(state->m_helper, rect, state->m_playfield, 0, 0); - if (code & 4) - bank = 32; + if (code & 4) + bank = 32; - drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], - (code >> 3) | bank, - 4, - 0, 0, - horz - 15, - vert - 15, 1); - - for (y = rect.min_y; y <= rect.max_y; y++) - for (x = rect.min_x; x <= rect.max_x; x++) - if (colortable_entry_get_value(screen.machine().colortable, state->m_helper.pix16(y, x)) != BG) - state->m_collision[i] = 1; - } + drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], + (code >> 3) | bank, + 4, + 0, 0, + horz - 15, + vert - 15, 1); - /* update sound status */ + for (y = rect.min_y; y <= rect.max_y; y++) + for (x = rect.min_x; x <= rect.max_x; x++) + if (colortable_entry_get_value(screen.machine().colortable, state->m_helper.pix16(y, x)) != BG) + state->m_collision[i] = 1; + } - discrete_sound_w(discrete, ULTRATNK_MOTOR_DATA_1, videoram[0x391] & 15); - discrete_sound_w(discrete, ULTRATNK_MOTOR_DATA_2, videoram[0x393] & 15); + /* update sound status */ + + discrete_sound_w(discrete, ULTRATNK_MOTOR_DATA_1, videoram[0x391] & 15); + discrete_sound_w(discrete, ULTRATNK_MOTOR_DATA_2, videoram[0x393] & 15); + } } diff --git a/src/mame/video/wolfpack.c b/src/mame/video/wolfpack.c index 48745e0e484..c3dd86880f0 100644 --- a/src/mame/video/wolfpack.c +++ b/src/mame/video/wolfpack.c @@ -291,33 +291,37 @@ SCREEN_UPDATE_IND16( wolfpack ) } -SCREEN_EOF( wolfpack ) +SCREEN_VBLANK( wolfpack ) { - wolfpack_state *state = screen.machine().driver_data<wolfpack_state>(); - - int x; - int y; + // rising edge + if (vblank_on) + { + wolfpack_state *state = screen.machine().driver_data<wolfpack_state>(); - state->m_helper.fill(0); + int x; + int y; - draw_ship(screen.machine(), state->m_helper, state->m_helper.cliprect()); + state->m_helper.fill(0); - for (y = 128; y < 224 - state->m_torpedo_v; y++) - { - int x1 = 248 - state->m_torpedo_h - 1; - int x2 = 248 - state->m_torpedo_h + 1; + draw_ship(screen.machine(), state->m_helper, state->m_helper.cliprect()); - for (x = 2 * x1; x < 2 * x2; x++) + for (y = 128; y < 224 - state->m_torpedo_v; y++) { - if (x < 0 || x >= state->m_helper.width()) - continue; - if (y < 0 || y >= state->m_helper.height()) - continue; - - if (state->m_helper.pix16(y, x)) - state->m_collision = 1; + int x1 = 248 - state->m_torpedo_h - 1; + int x2 = 248 - state->m_torpedo_h + 1; + + for (x = 2 * x1; x < 2 * x2; x++) + { + if (x < 0 || x >= state->m_helper.width()) + continue; + if (y < 0 || y >= state->m_helper.height()) + continue; + + if (state->m_helper.pix16(y, x)) + state->m_collision = 1; + } } - } - state->m_current_index += 0x300 * 262; + state->m_current_index += 0x300 * 262; + } } diff --git a/src/mame/video/xmen.c b/src/mame/video/xmen.c index e1402cb8f03..402c8d9f988 100644 --- a/src/mame/video/xmen.c +++ b/src/mame/video/xmen.c @@ -142,91 +142,95 @@ SCREEN_UPDATE_IND16( xmen6p_right ) } /* my lefts and rights are mixed up in several places.. */ -SCREEN_EOF( xmen6p ) +SCREEN_VBLANK( xmen6p ) { - xmen_state *state = screen.machine().driver_data<xmen_state>(); - int layer[3], bg_colorbase; - bitmap_ind16 * renderbitmap; - rectangle cliprect; - int offset; - -// const rectangle *visarea = screen.machine().primary_screen->visible_area(); -// cliprect.min_x = visarea->min_x; -// cliprect.max_x = visarea->max_x; -// cliprect.min_y = visarea->min_y; -// cliprect.max_y = visarea->max_y; + // rising edge + if (vblank_on) + { + xmen_state *state = screen.machine().driver_data<xmen_state>(); + int layer[3], bg_colorbase; + bitmap_ind16 * renderbitmap; + rectangle cliprect; + int offset; - cliprect.min_x = 0; - cliprect.max_x = 64 * 8 - 1; - cliprect.min_y = 2 * 8; - cliprect.max_y = 30 * 8 - 1; + // const rectangle *visarea = screen.machine().primary_screen->visible_area(); + // cliprect.min_x = visarea->min_x; + // cliprect.max_x = visarea->max_x; + // cliprect.min_y = visarea->min_y; + // cliprect.max_y = visarea->max_y; + cliprect.min_x = 0; + cliprect.max_x = 64 * 8 - 1; + cliprect.min_y = 2 * 8; + cliprect.max_y = 30 * 8 - 1; - if (screen.machine().primary_screen->frame_number() & 0x01) - { - /* copy the desired spritelist to the chip */ - memcpy(state->m_k053247_ram, state->m_xmen6p_spriteramright, 0x1000); - - /* we write the entire content of the tileram to the chip to ensure - everything gets marked as dirty and the desired tilemap is rendered - this is not very efficient! - */ - for (offset = 0; offset < (0xc000 / 2); offset++) + if (screen.machine().primary_screen->frame_number() & 0x01) { -// K052109_lsb_w - k052109_w(state->m_k052109, offset, state->m_xmen6p_tilemapright[offset] & 0x00ff); - } + /* copy the desired spritelist to the chip */ + memcpy(state->m_k053247_ram, state->m_xmen6p_spriteramright, 0x1000); - renderbitmap = state->m_screen_right; - } - else - { - /* copy the desired spritelist to the chip */ - memcpy(state->m_k053247_ram, state->m_xmen6p_spriteramleft, 0x1000); + /* we write the entire content of the tileram to the chip to ensure + everything gets marked as dirty and the desired tilemap is rendered + this is not very efficient! + */ + for (offset = 0; offset < (0xc000 / 2); offset++) + { + // K052109_lsb_w + k052109_w(state->m_k052109, offset, state->m_xmen6p_tilemapright[offset] & 0x00ff); + } - /* we write the entire content of the tileram to the chip to ensure - everything gets marked as dirty and the desired tilemap is rendered - this is not very efficient! - */ - for (offset = 0; offset < (0xc000 / 2); offset++) - { -// K052109_lsb_w - k052109_w(state->m_k052109, offset, state->m_xmen6p_tilemapleft[offset] & 0x00ff); + renderbitmap = state->m_screen_right; } + else + { + /* copy the desired spritelist to the chip */ + memcpy(state->m_k053247_ram, state->m_xmen6p_spriteramleft, 0x1000); + /* we write the entire content of the tileram to the chip to ensure + everything gets marked as dirty and the desired tilemap is rendered - renderbitmap = state->m_screen_left; - } + this is not very efficient! + */ + for (offset = 0; offset < (0xc000 / 2); offset++) + { + // K052109_lsb_w + k052109_w(state->m_k052109, offset, state->m_xmen6p_tilemapleft[offset] & 0x00ff); + } - bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI4); - state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1); - state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI3); - state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI0); - state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI2); + renderbitmap = state->m_screen_left; + } - k052109_tilemap_update(state->m_k052109); - layer[0] = 0; - state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI3); - layer[1] = 1; - state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI0); - layer[2] = 2; - state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI2); + bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI4); + state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1); + state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI3); + state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI0); + state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI2); - konami_sortlayers3(layer, state->m_layerpri); + k052109_tilemap_update(state->m_k052109); - screen.machine().priority_bitmap.fill(0, cliprect); - /* note the '+1' in the background color!!! */ - renderbitmap->fill(16 * bg_colorbase + 1, cliprect); - k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[0], 0, 1); - k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[1], 0, 2); - k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[2], 0, 4); + layer[0] = 0; + state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI3); + layer[1] = 1; + state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI0); + layer[2] = 2; + state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI2); -/* this isn't supported anymore and it is unsure if still needed; keeping here for reference - pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */ - k053247_sprites_draw(state->m_k053246, *renderbitmap, cliprect); + konami_sortlayers3(layer, state->m_layerpri); + + screen.machine().priority_bitmap.fill(0, cliprect); + /* note the '+1' in the background color!!! */ + renderbitmap->fill(16 * bg_colorbase + 1, cliprect); + k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[0], 0, 1); + k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[1], 0, 2); + k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[2], 0, 4); + + /* this isn't supported anymore and it is unsure if still needed; keeping here for reference + pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */ + k053247_sprites_draw(state->m_k053246, *renderbitmap, cliprect); + } } |