From 04674fbba789fd81d7a6191f056cadd2e3f56041 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 15 Dec 2012 02:13:58 +0100 Subject: [PATCH] (PS3/XDK) Better way to toggle frame advance --- 360/frontend-xdk/menu.cpp | 3 +++ console/rmenu/rmenu.c | 1 + ps3/ps3_input.c | 14 +------------- retroarch.c | 11 +++++++++++ xdk/xdk_xinput_input.c | 8 -------- 5 files changed, 16 insertions(+), 21 deletions(-) diff --git a/360/frontend-xdk/menu.cpp b/360/frontend-xdk/menu.cpp index 4151326cde..0d9faf3fee 100644 --- a/360/frontend-xdk/menu.cpp +++ b/360/frontend-xdk/menu.cpp @@ -815,7 +815,10 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled break; case MENU_ITEM_FRAME_ADVANCE: if (g_extern.console.emulator_initialized) + { + g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE); rarch_settings_change(S_FRAME_ADVANCE); + } break; case MENU_ITEM_SCREENSHOT_MODE: if (g_extern.console.rmenu.state.msg_info.enable) diff --git a/console/rmenu/rmenu.c b/console/rmenu/rmenu.c index a4571a4e94..769dbaeada 100644 --- a/console/rmenu/rmenu.c +++ b/console/rmenu/rmenu.c @@ -2036,6 +2036,7 @@ static void ingame_menu(menu *current_menu, uint64_t input) case MENU_ITEM_FRAME_ADVANCE: if((input & (1ULL << RMENU_DEVICE_NAV_B)) || (input & (1ULL << RMENU_DEVICE_NAV_R2)) || (input & (1ULL << RMENU_DEVICE_NAV_L2))) { + g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE); rarch_settings_change(S_FRAME_ADVANCE); g_extern.console.rmenu.ingame_menu.idx = MENU_ITEM_FRAME_ADVANCE; } diff --git a/ps3/ps3_input.c b/ps3/ps3_input.c index 16490fecc6..612d58c510 100644 --- a/ps3/ps3_input.c +++ b/ps3/ps3_input.c @@ -460,19 +460,7 @@ static bool ps3_input_key_pressed(void *data, int key) if(g_extern.lifecycle_state & (1ULL << key)) return true; - switch (key) - { - case RARCH_FRAMEADVANCE: - if(g_extern.console.screen.state.frame_advance.enable) - { - g_extern.console.rmenu.state.rmenu.enable = true; - g_extern.console.rmenu.state.ingame_menu.enable = true; - g_extern.console.rmenu.mode = MODE_MENU; - } - return false; - default: - return false; - } + return false; } static void ps3_set_default_keybind_lut(unsigned device, unsigned port) diff --git a/retroarch.c b/retroarch.c index 60b96fce44..3cf9bdede9 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2821,6 +2821,17 @@ bool rarch_main_iterate(void) } #endif +#ifdef HAVE_RMENU + if (input_key_pressed_func(RARCH_FRAMEADVANCE)) + { + g_extern.lifecycle_state &= ~(1ULL << RARCH_FRAMEADVANCE); + g_extern.console.rmenu.state.rmenu.enable = true; + g_extern.console.rmenu.state.ingame_menu.enable = true; + g_extern.console.rmenu.mode = MODE_MENU; + return false; + } +#endif + return true; } diff --git a/xdk/xdk_xinput_input.c b/xdk/xdk_xinput_input.c index 6bd81a5342..91ca450017 100644 --- a/xdk/xdk_xinput_input.c +++ b/xdk/xdk_xinput_input.c @@ -344,14 +344,6 @@ static bool xdk_input_key_pressed(void *data, int key) return ((state[0] & XINPUT1_GAMEPAD_RSTICK_RIGHT_MASK) && (state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER)); case RARCH_STATE_SLOT_MINUS: return ((state[0] & XINPUT1_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER)); - case RARCH_FRAMEADVANCE: - if(g_extern.console.screen.state.frame_advance.enable) - { - g_extern.console.rmenu.state.rmenu.enable = true; - g_extern.console.rmenu.mode = MODE_MENU; - g_extern.console.rmenu.state.ingame_menu.enable = true; - } - return false; case RARCH_REWIND: return ((state[0] & XINPUT1_GAMEPAD_RSTICK_UP_MASK) && !(state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER)); default: