From 602166c5d3502ef82935bfc285df41bfc733002d Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Mon, 14 Apr 2014 15:03:26 +0300 Subject: [PATCH] Advance macros after frame is complete, not before frame starts --- src/core/mainloop.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/core/mainloop.cpp b/src/core/mainloop.cpp index e42fd791..6ffa84c6 100644 --- a/src/core/mainloop.cpp +++ b/src/core/mainloop.cpp @@ -1269,13 +1269,13 @@ void main_loop(struct loaded_rom& rom, struct moviefile& initial, bool load_has_ if(!first_round) { controls.reset_framehold(); - movb.get_movie().get_pollcounters().set_framepflag(false); - movb.new_frame_starting(amode == ADVANCE_SKIPLAG); - movb.get_movie().get_pollcounters().set_framepflag(true); if(!macro_hold_1 && !macro_hold_2) { controls.advance_macros(); } macro_hold_2 = false; + movb.get_movie().get_pollcounters().set_framepflag(false); + movb.new_frame_starting(amode == ADVANCE_SKIPLAG); + movb.get_movie().get_pollcounters().set_framepflag(true); if(amode == ADVANCE_QUIT && queued_saves.empty()) break; handle_saves(); @@ -1311,11 +1311,6 @@ void main_loop(struct loaded_rom& rom, struct moviefile& initial, bool load_has_ movb.get_movie().set_controls(movb.update_controls(true)); movb.get_movie().set_all_DRDY(); just_did_loadstate = false; - //Advance macros to avoid double inputs. - if(!macro_hold_1 && !macro_hold_2) { - controls.advance_macros(); - } - macro_hold_2 = false; } frame_irq_time = get_utime() - time_x; our_rom.rtype->emulate(); -- 2.11.4.GIT