diff --git a/360/frontend-xdk/menu.cpp b/360/frontend-xdk/menu.cpp index 5072b153ac..6b4d77c3cb 100644 --- a/360/frontend-xdk/menu.cpp +++ b/360/frontend-xdk/menu.cpp @@ -160,7 +160,7 @@ HRESULT CRetroArchFileBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled GetChildById(L"XuiBtnGameDir", &m_dir_game); GetChildById(L"XuiBtnCacheDir", &m_dir_cache); - filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), g_console.default_rom_startup_dir); + filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), g_extern.console.main_wrap.paths.default_rom_startup_dir); uint64_t action = (1 << RMENU_DEVICE_NAV_B); filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); @@ -191,7 +191,7 @@ HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle } else if (hObjPressed == m_dir_game) { - filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), g_console.default_rom_startup_dir); + filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), g_extern.console.main_wrap.paths.default_rom_startup_dir); uint64_t action = (1 << RMENU_DEVICE_NAV_B); filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); } @@ -202,7 +202,7 @@ HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle uint64_t action = (1 << RMENU_DEVICE_NAV_B); filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); - if (g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_CACHE_PARTITION, S_DELAY_180); } #endif @@ -379,15 +379,15 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) GetChildById(L"XuiBackButton", &m_back); m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); - m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: OFF"); - m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD"); - m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); + m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_extern.console.rmenu.state.msg_info.enable ? L"Info messages: ON" : L"Info messages: OFF"); + m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.menus_hd.enable ? L"Menus: HD" : L"Menus: SD"); + m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER, g_settings.video.smooth ? L"Hardware filtering shader #1: Linear interpolation" : L"Hardware filtering shader #1: Point filtering"); m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering"); - m_settingslist.SetText(SETTING_SCALE_ENABLED, g_console.fbo_enabled ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); + m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.fbo.enable ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_SHADER, strw_buffer); - m_settingslist.SetText(SETTING_COLOR_FORMAT, g_console.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA"); + m_settingslist.SetText(SETTING_COLOR_FORMAT, g_settings.video.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA"); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER_2, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_SHADER_2, strw_buffer); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); @@ -413,52 +413,52 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled rarch_settings_change(S_REWIND); m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); - if (g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_EMU_SHOW_INFO_MSG: - g_console.info_msg_enable = !g_console.info_msg_enable; - m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: OFF"); + g_extern.console.rmenu.state.msg_info.enable = !g_settings.console.rmenu.state.msg_info.enable; + m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_extern.console.rmenu.state.msg_info.enable ? L"Info messages: ON" : L"Info messages: OFF"); break; case SETTING_EMU_MENUS: - g_console.menus_hd_enable = !g_console.menus_hd_enable; - m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD"); + g_extern.console.rmenu.state.menus_hd.enable = !g_extern.console.rmenu.state.menus_hd.enable; + m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.menus_hd.enable ? L"Menus: HD" : L"Menus: SD"); break; case SETTING_GAMMA_CORRECTION_ENABLED: - g_console.gamma_correction = g_console.gamma_correction ? 0 : 1; - m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; + m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); + if (g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_COLOR_FORMAT: - g_console.color_format = !g_console.color_format; - m_settingslist.SetText(SETTING_COLOR_FORMAT, g_console.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA"); - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + g_settings.video.color_format = !g_settings.video.color_format; + m_settingslist.SetText(SETTING_COLOR_FORMAT, g_settings.video.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA"); + if (g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_SHADER: set_shader = 1; - hr = XuiSceneCreate(g_console.menus_hd_enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser); + hr = XuiSceneCreate(g_extern.console.rmenu.state.menus_hd.enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); hCur = app.hShaderBrowser; - if (g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180); NavigateForward(app.hShaderBrowser); break; case SETTING_SHADER_2: set_shader = 2; - hr = XuiSceneCreate(g_console.menus_hd_enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser); + hr = XuiSceneCreate(g_extern.console.rmenu.state.menus_hd.enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); hCur = app.hShaderBrowser; - if (g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180); NavigateForward(app.hShaderBrowser); @@ -472,9 +472,9 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering"); break; case SETTING_SCALE_ENABLED: - g_console.fbo_enabled = !g_console.fbo_enabled; - m_settingslist.SetText(SETTING_SCALE_ENABLED, g_console.fbo_enabled ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); - context->set_fbo_enable(g_console.fbo_enabled); + g_settings.video.fbo.enable = !g_settings.video.fbo.enable; + m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.fbo.enable ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); + context->set_fbo_enable(g_settings.video.fbo.enable); break; case SETTING_ZIP_EXTRACT: if(g_extern.filebrowser_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR) @@ -503,32 +503,32 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro case XUI_CONTROL_NAVIGATE_LEFT: switch(current_index) { - case SETTING_EMU_REWIND_ENABLED: - rarch_settings_change(S_REWIND); - m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); - - if (g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); - break; + case SETTING_EMU_REWIND_ENABLED: + rarch_settings_change(S_REWIND); + m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); + + if (g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + break; case SETTING_EMU_SHOW_INFO_MSG: - g_console.info_msg_enable = !g_console.info_msg_enable; - m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: OFF"); + g_extern.console.rmenu.state.msg_info.enable = !g_extern.console.rmenu.state.msg_info.enable; + m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_extern.console.rmenu.state.msg_info.enable ? L"Info messages: ON" : L"Info messages: OFF"); break; case SETTING_EMU_MENUS: - g_console.menus_hd_enable = !g_console.menus_hd_enable; - m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD"); + g_extern.console.rmenu.state.menus_hd_enable = !g_extern.console.rmenu.state.menus_hd_enable; + m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.menus_hd.enable ? L"Menus: HD" : L"Menus: SD"); break; case SETTING_GAMMA_CORRECTION_ENABLED: - g_console.gamma_correction = g_console.gamma_correction ? 0 : 1; - m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; + m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); + if (g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_COLOR_FORMAT: - g_console.color_format = !g_console.color_format; - m_settingslist.SetText(SETTING_COLOR_FORMAT, g_console.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA"); - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + g_settings.video.color_format = !g_settings.video.color_format; + m_settingslist.SetText(SETTING_COLOR_FORMAT, g_settings.video.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA"); + if (g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_SCALE_FACTOR: if(vid->fbo_enabled) @@ -541,12 +541,12 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer); } } - break; - case SETTING_ZIP_EXTRACT: - if(g_extern.filebrowser_state.zip_extract_mode) - g_extern.filebrowser_state.zip_extract_mode--; - rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer)); - m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer); + break; + case SETTING_ZIP_EXTRACT: + if(g_extern.filebrowser_state.zip_extract_mode) + g_extern.filebrowser_state.zip_extract_mode--; + rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer)); + m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer); break; case SETTING_HW_TEXTURE_FILTER: g_settings.video.smooth = !g_settings.video.smooth; @@ -557,9 +557,9 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering"); break; case SETTING_SCALE_ENABLED: - g_console.fbo_enabled = !g_console.fbo_enabled; - m_settingslist.SetText(SETTING_SCALE_ENABLED, g_console.fbo_enabled ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); - context->set_fbo_enable(g_console.fbo_enabled); + g_settings.video.fbo.enable = !g_settings.video.fbo.enable; + m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.fbo.enable ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); + context->set_fbo_enable(g_settings.video.fbo.enable); break; default: break; @@ -569,50 +569,50 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro switch(current_index) { case SETTING_EMU_SHOW_INFO_MSG: - g_console.info_msg_enable = !g_console.info_msg_enable; - m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: OFF"); + g_extern.console.rmenu.state.msg_info.enable = !g_extern.console.rmenu.state.msg_info.enable; + m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_extern.console.rmenu.state.msg_info.enable ? L"Info messages: ON" : L"Info messages: OFF"); break; case SETTING_EMU_MENUS: - g_console.menus_hd_enable = !g_console.menus_hd_enable; - m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD"); + g_extern.console.rmenu.state.menus_hd.enable = !g_extern.console.rmenu.state.menus_hd.enable; + m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.menus_hd.enable ? L"Menus: HD" : L"Menus: SD"); break; case SETTING_GAMMA_CORRECTION_ENABLED: - g_console.gamma_correction = g_console.gamma_correction ? 0 : 1; - m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; + m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); + if (g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_COLOR_FORMAT: - g_console.color_format = !g_console.color_format; - m_settingslist.SetText(SETTING_COLOR_FORMAT, g_console.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA"); - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + g_settings.video.color_format = !g_settings.video.color_format; + m_settingslist.SetText(SETTING_COLOR_FORMAT, g_settings.video.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA"); + if (g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; - case SETTING_EMU_REWIND_ENABLED: - rarch_settings_change(S_REWIND); - m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); - - if (g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); - break; - case SETTING_SCALE_FACTOR: - if(vid->fbo_enabled) - { - if((g_settings.video.fbo_scale_x < MAX_SCALING_FACTOR)) - { + case SETTING_EMU_REWIND_ENABLED: + rarch_settings_change(S_REWIND); + m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); + + if (g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + break; + case SETTING_SCALE_FACTOR: + if(vid->fbo_enabled) + { + if((g_settings.video.fbo_scale_x < MAX_SCALING_FACTOR)) + { rarch_settings_change(S_SCALE_FACTOR_INCREMENT); - //xdk360_gfx_init_fbo(vid); - rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); - m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer); - } - } - break; - case SETTING_ZIP_EXTRACT: - if(g_extern.filebrowser_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR) - g_extern.filebrowser_state.zip_extract_mode++; - rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer)); - m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer); - break; + //xdk360_gfx_init_fbo(vid); + rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); + m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer); + } + } + break; + case SETTING_ZIP_EXTRACT: + if(g_extern.filebrowser_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR) + g_extern.filebrowser_state.zip_extract_mode++; + rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer)); + m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer); + break; case SETTING_HW_TEXTURE_FILTER: g_settings.video.smooth = !g_settings.video.smooth; m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER, g_settings.video.smooth ? L"Hardware filtering shader #1: Linear interpolation" : L"Hardware filtering shader #1: Point filtering"); @@ -622,12 +622,12 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering"); break; case SETTING_SCALE_ENABLED: - g_console.fbo_enabled = !g_console.fbo_enabled; - m_settingslist.SetText(SETTING_SCALE_ENABLED, g_console.fbo_enabled ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); - context->set_fbo_enable(g_console.fbo_enabled); + g_settings.video.fbo.enable = !g_settings.video.fbo.enable; + m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.fbo.enable ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); + context->set_fbo_enable(g_settings.video.fbo.enable); + break; + default: break; - default: - break; } break; case XUI_CONTROL_NAVIGATE_UP: @@ -701,7 +701,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr rarch_settings_change(S_ROTATION_DECREMENT); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, strw_buffer); - video_xdk_d3d.set_rotation(driver.video_data, g_console.screen_orientation); + video_xdk_d3d.set_rotation(driver.video_data, g_extern.console.screen.orientation); break; default: break; @@ -726,7 +726,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr rarch_settings_change(S_ROTATION_INCREMENT); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, strw_buffer); - video_xdk_d3d.set_rotation(driver.video_data, g_console.screen_orientation); + video_xdk_d3d.set_rotation(driver.video_data, g_extern.console.screen.orientation); break; default: break; @@ -739,7 +739,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr if(aspectratio_changed) { - context->set_aspect_ratio(g_console.aspect_ratio_index); + context->set_aspect_ratio(g_settings.video.aspect_ratio_idx); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer); } @@ -773,14 +773,14 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled switch(current_index) { case MENU_ITEM_LOAD_STATE: - if (g_console.emulator_initialized) + if (g_extern.console.emulator_initialized) { rarch_load_state(); rarch_settings_change(S_RETURN_TO_GAME); } break; case MENU_ITEM_SAVE_STATE: - if (g_console.emulator_initialized) + if (g_extern.console.emulator_initialized) { rarch_save_state(); rarch_settings_change(S_RETURN_TO_GAME); @@ -788,43 +788,43 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled break; case MENU_ITEM_KEEP_ASPECT_RATIO: rarch_settings_default(S_DEF_ASPECT_RATIO); - context->set_aspect_ratio(g_console.aspect_ratio_index); + context->set_aspect_ratio(g_settings.video.aspect_ratio_idx); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer); break; case MENU_ITEM_OVERSCAN_AMOUNT: - if(g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_NOT_IMPLEMENTED, S_DELAY_180); break; case MENU_ITEM_ORIENTATION: rarch_settings_default(S_DEF_ROTATION); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, strw_buffer); - video_xdk_d3d.set_rotation(driver.video_data, g_console.screen_orientation); + video_xdk_d3d.set_rotation(driver.video_data, g_extern.console.screen.orientation); break; case MENU_ITEM_RESIZE_MODE: - g_console.input_loop = INPUT_LOOP_RESIZE_MODE; + g_extern.console.input_loop = INPUT_LOOP_RESIZE_MODE; - if (g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_RESIZE_SCREEN, S_DELAY_270); break; case MENU_ITEM_FRAME_ADVANCE: - if (g_console.emulator_initialized) + if (g_extern.console.emulator_initialized) rarch_settings_change(S_FRAME_ADVANCE); break; case MENU_ITEM_SCREENSHOT_MODE: - if (g_console.info_msg_enable) - gfx_ctx_xdk_screenshot_dump(NULL); + if (g_extern.console.rmenu.state.msg_info.enable) + gfx_ctx_xdk_screenshot_dump(NULL); break; case MENU_ITEM_RESET: - if (g_console.emulator_initialized) + if (g_extern.console.emulator_initialized) { rarch_settings_change(S_RETURN_TO_GAME); rarch_game_reset(); } break; case MENU_ITEM_RETURN_TO_GAME: - if (g_console.emulator_initialized) + if (g_extern.console.emulator_initialized) rarch_settings_change(S_RETURN_TO_GAME); break; case MENU_ITEM_QUIT_RARCH: @@ -914,7 +914,7 @@ HRESULT CRetroArchCoreBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle convert_wchar_to_char(str_buffer, (const wchar_t *)m_romlist.GetText(index), sizeof(str_buffer)); if(path_file_exists(tmp_browser->current_dir.list->elems[index].data)) { - snprintf(g_console.launch_app_on_exit, sizeof(g_console.launch_app_on_exit), "%s\\%s", filebrowser_get_current_dir(tmp_browser), str_buffer); + snprintf(g_extern.console.external_launch.launch_app, sizeof(g_extern.console.external_launch.launch_app), "%s\\%s", filebrowser_get_current_dir(tmp_browser), str_buffer); rarch_settings_change(S_RETURN_TO_LAUNCHER); } else if(tmp_browser->current_dir.list->elems[index].attr.b) @@ -954,7 +954,7 @@ HRESULT CRetroArchMain::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_RARCH_VERSION, sizeof(strw_buffer)); m_title.SetText(strw_buffer); - g_console.input_loop = INPUT_LOOP_NONE; + g_extern.console.input_loop = INPUT_LOOP_NONE; return 0; } @@ -963,13 +963,13 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) { xdk_d3d_video_t *vid = (xdk_d3d_video_t*)driver.video_data; - bool hdmenus_allowed = g_console.menus_hd_enable; + bool hdmenus_allowed = g_extern.console.rmenu.state.menus_hd.enable; HRESULT hr; if ( hObjPressed == m_filebrowser ) { - g_console.input_loop = INPUT_LOOP_FILEBROWSER; + g_extern.console.rmenu.input_loop = INPUT_LOOP_FILEBROWSER; hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_filebrowser.xur", NULL, &app.hFileBrowser); if (hr < 0) @@ -1001,7 +1001,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) hCur = app.hControlsMenu; - if (g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_CHANGE_CONTROLS, S_DELAY_180); NavigateForward(app.hControlsMenu); @@ -1016,7 +1016,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) } hCur = app.hCoreBrowser; - if (g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SELECT_LIBRETRO_CORE, S_DELAY_180); NavigateForward(app.hCoreBrowser); @@ -1046,7 +1046,7 @@ void menu_init (void) xdk_d3d_video_t *vid = (xdk_d3d_video_t*)driver.video_data; - bool hdmenus_allowed = g_console.menus_hd_enable; + bool hdmenus_allowed = g_extern.console.rmenu.state.menus_hd.enable; hr = app.InitShared(vid->d3d_render_device, &vid->d3dpp, XuiPNGTextureLoader); @@ -1083,7 +1083,7 @@ void menu_init (void) browser = (filebrowser_t*)malloc(1 * sizeof(filebrowser_t)); tmp_browser = (filebrowser_t*)malloc(1 * sizeof(filebrowser_t)); - filebrowser_new(browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext()); + filebrowser_new(browser, g_extern.console.main_wrap.paths.default_rom_startup_dir, rarch_console_get_rom_ext()); } void menu_free (void) @@ -1102,34 +1102,34 @@ static void ingame_menu_resize (void) XInputGetState(0, &state); if(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT || state.Gamepad.sThumbLX < -DEADZONE) - g_console.viewports.custom_vp.x -= 1; + g_extern.console.screen.viewports.custom_vp.x -= 1; else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT || state.Gamepad.sThumbLX > DEADZONE) - g_console.viewports.custom_vp.x += 1; + g_extern.console.screen.viewports.custom_vp.x += 1; if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP || state.Gamepad.sThumbLY > DEADZONE) - g_console.viewports.custom_vp.y += 1; + g_extern.console.screen.viewports.custom_vp.y += 1; else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN || state.Gamepad.sThumbLY < -DEADZONE) - g_console.viewports.custom_vp.y -= 1; + g_extern.console.screen.viewports.custom_vp.y -= 1; if (state.Gamepad.sThumbRX < -DEADZONE || state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) - g_console.viewports.custom_vp.width -= 1; + g_extern.console.screen.viewports.custom_vp.width -= 1; else if (state.Gamepad.sThumbRX > DEADZONE || state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) - g_console.viewports.custom_vp.width += 1; + g_extern.console.screen.viewports.custom_vp.width += 1; if (state.Gamepad.sThumbRY > DEADZONE || state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER) - g_console.viewports.custom_vp.height += 1; + g_extern.console.screen.viewports.custom_vp.height += 1; else if (state.Gamepad.sThumbRY < -DEADZONE || state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER) - g_console.viewports.custom_vp.height -= 1; + g_extern.console.screen.viewports.custom_vp.height -= 1; if (state.Gamepad.wButtons & XINPUT_GAMEPAD_Y) { - g_console.viewports.custom_vp.x = 0; - g_console.viewports.custom_vp.y = 0; - g_console.viewports.custom_vp.width = 1280; //FIXME: hardcoded - g_console.viewports.custom_vp.height = 720; //FIXME: hardcoded + g_extern.console.screen.viewports.custom_vp.x = 0; + g_extern.console.screen.viewports.custom_vp.y = 0; + g_extern.console.screen.viewports.custom_vp.width = 1280; //FIXME: hardcoded + g_extern.console.screen.viewports.custom_vp.height = 720; //FIXME: hardcoded } if(state.Gamepad.wButtons & XINPUT_GAMEPAD_B) - g_console.input_loop = INPUT_LOOP_MENU; + g_extern.console.rmenu.input_loop = INPUT_LOOP_MENU; } void menu_loop(void) @@ -1137,15 +1137,15 @@ void menu_loop(void) HRESULT hr; xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data; - g_console.menu_enable = true; + g_extern.console.rmenu.state.rmenu.enable = true; d3d->block_swap = true; - g_console.input_loop = INPUT_LOOP_MENU; + g_extern.console.rmenu.input_loop = INPUT_LOOP_MENU; do { - if(g_console.emulator_initialized) + if(g_extern.console.emulator_initialized) rarch_render_cached_frame(); else { @@ -1156,13 +1156,13 @@ void menu_loop(void) XINPUT_STATE state; XInputGetState(0, &state); - g_console.menu_enable = !((state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) - && (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) && (g_console.emulator_initialized) + g_extern.console.rmenu.state.rmenu.enable = !((state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) + && (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) && (g_extern.console.emulator_initialized) && IS_TIMER_EXPIRED(d3d)); - g_extern.console.mode = g_console.menu_enable ? MODE_MENU : MODE_EMULATION; + g_extern.console.mode = g_extern.console.rmenu.state.rmenu.enable ? MODE_MENU : MODE_EMULATION; - switch(g_console.input_loop) + switch(g_extern.console.input_loop) { case INPUT_LOOP_FILEBROWSER: /* @@ -1188,7 +1188,7 @@ void menu_loop(void) hr = app.Render(); /* Render XUI */ hr = XuiTimersRun(); /* Update XUI timers */ - if(g_extern.console.mode == MODE_EMULATION && !g_console.frame_advance_enable) + if(g_extern.console.mode == MODE_EMULATION && !g_extern.console.screen.state.frame_advance.enable) { SET_TIMER_EXPIRATION(d3d, 30); } @@ -1202,9 +1202,9 @@ void menu_loop(void) } context->swap_buffers(); - }while(g_console.menu_enable); + }while(g_extern.console.rmenu.state.rmenu.enable); d3d->block_swap = false; - g_console.ingame_menu_enable = false; + g_extern.console.rmenu.state.ingame_menu.enable = false; } diff --git a/audio/dsound.c b/audio/dsound.c index 8a5a92c392..fc43d7aa09 100644 --- a/audio/dsound.c +++ b/audio/dsound.c @@ -354,7 +354,7 @@ static void *dsound_init(const char *device, unsigned rate, unsigned latency) IDirectSoundBuffer_SetVolume(ds->dsb, DSBVOLUME_MAX); #ifdef _XBOX - if(g_console.sound_volume_level == 1) + if(g_extern.console.sound.volume_level == 1) { dsmb.dwMixBinCount = 8; dsmb.lpMixBinVolumePairs = dsmbvp; diff --git a/conf/config_file_macros.h b/conf/config_file_macros.h index ce66da2bc0..8e0cda4bbb 100644 --- a/conf/config_file_macros.h +++ b/conf/config_file_macros.h @@ -63,12 +63,5 @@ #define CONFIG_GET_STRING_EXTERN(var, key) CONFIG_GET_STRING_BASE(conf, g_extern, var, key) #define CONFIG_GET_PATH_EXTERN(var, key) CONFIG_GET_PATH_BASE(conf, g_extern, var, key) -#ifdef RARCH_CONSOLE -#define CONFIG_GET_BOOL_CONSOLE(var, key) CONFIG_GET_BOOL_BASE(conf, g_console, var, key) -#define CONFIG_GET_INT_CONSOLE(var, key) CONFIG_GET_INT_BASE(conf, g_console, var, key) -#define CONFIG_GET_FLOAT_CONSOLE(var, key) CONFIG_GET_FLOAT_BASE(conf, g_console, var, key) -#define CONFIG_GET_STRING_CONSOLE(var, key) CONFIG_GET_STRING_BASE(conf, g_console, var, key) -#endif - #endif diff --git a/console/rarch_console_config.c b/console/rarch_console_config.c index 9aa51d113f..ddceae424b 100644 --- a/console/rarch_console_config.c +++ b/console/rarch_console_config.c @@ -54,13 +54,17 @@ void rarch_config_load(const char *conf_name, bool upgrade_core_succeeded) CONFIG_GET_STRING(video.cg_shader_path, "video_cg_shader"); #ifdef HAVE_FBO CONFIG_GET_STRING(video.second_pass_shader, "video_second_pass_shader"); - CONFIG_GET_FLOAT(video.fbo_scale_x, "video_fbo_scale_x"); - CONFIG_GET_FLOAT(video.fbo_scale_y, "video_fbo_scale_y"); + CONFIG_GET_FLOAT(video.fbo.scale_x, "video_fbo_scale_x"); + CONFIG_GET_FLOAT(video.fbo.scale_y, "video_fbo_scale_y"); CONFIG_GET_BOOL(video.render_to_texture, "video_render_to_texture"); CONFIG_GET_BOOL(video.second_pass_smooth, "video_second_pass_smooth"); #endif CONFIG_GET_BOOL(video.smooth, "video_smooth"); +#ifdef HAVE_FBO + CONFIG_GET_BOOL(video.fbo.enable, "fbo_enabled"); +#endif CONFIG_GET_BOOL(video.vsync, "video_vsync"); + CONFIG_GET_INT(video.aspect_ratio_idx, "aspect_ratio_index"); CONFIG_GET_FLOAT(video.aspect_ratio, "video_aspect_ratio"); CONFIG_GET_STRING(audio.device, "audio_device"); CONFIG_GET_BOOL(audio.rate_control, "audio_rate_control"); @@ -75,46 +79,37 @@ void rarch_config_load(const char *conf_name, bool upgrade_core_succeeded) CONFIG_GET_INT(input.device[i], cfg); } - // g_console - -#ifdef HAVE_FBO - CONFIG_GET_BOOL_CONSOLE(fbo_enabled, "fbo_enabled"); + // g_extern + CONFIG_GET_STRING_EXTERN(console.main_wrap.paths.default_rom_startup_dir, "default_rom_startup_dir"); + CONFIG_GET_BOOL_EXTERN(console.screen.gamma_correction, "gamma_correction"); + CONFIG_GET_BOOL_EXTERN(console.rmenu.state.msg_info.enable, "info_msg_enable"); + CONFIG_GET_BOOL_EXTERN(console.screen.state.screenshots.enable, "screenshots_enable"); + CONFIG_GET_BOOL_EXTERN(console.screen.state.throttle.enable, "throttle_enable"); + CONFIG_GET_BOOL_EXTERN(console.screen.state.triple_buffering.enable, "triple_buffering_enable"); + CONFIG_GET_BOOL_EXTERN(console.screen.state.overscan.enable, "overscan_enable"); + CONFIG_GET_BOOL_EXTERN(console.sound.custom_bgm.enable, "custom_bgm_enable"); + CONFIG_GET_FLOAT_EXTERN(console.screen.overscan_amount, "overscan_amount"); +#ifdef _XBOX1 + CONFIG_GET_INT_EXTERN(console.screen.state.flicker_filter.enable, "flicker_filter"); + CONFIG_GET_INT_EXTERN(console.sound.volume_level, "sound_volume_level"); #endif -#ifdef __CELLOS_LV2__ - CONFIG_GET_BOOL_CONSOLE(custom_bgm_enable, "custom_bgm_enable"); -#endif - CONFIG_GET_BOOL_CONSOLE(overscan_enable, "overscan_enable"); - CONFIG_GET_BOOL_CONSOLE(screenshots_enable, "screenshots_enable"); - CONFIG_GET_BOOL_CONSOLE(throttle_enable, "throttle_enable"); - CONFIG_GET_BOOL_CONSOLE(triple_buffering_enable, "triple_buffering_enable"); - CONFIG_GET_BOOL_CONSOLE(info_msg_enable, "info_msg_enable"); - CONFIG_GET_INT_CONSOLE(aspect_ratio_index, "aspect_ratio_index"); - CONFIG_GET_INT_CONSOLE(current_resolution_id, "current_resolution_id"); - CONFIG_GET_INT_CONSOLE(viewports.custom_vp.x, "custom_viewport_x"); - CONFIG_GET_INT_CONSOLE(viewports.custom_vp.y, "custom_viewport_y"); - CONFIG_GET_INT_CONSOLE(viewports.custom_vp.width, "custom_viewport_width"); - CONFIG_GET_INT_CONSOLE(viewports.custom_vp.height, "custom_viewport_height"); - CONFIG_GET_INT_CONSOLE(screen_orientation, "screen_orientation"); - CONFIG_GET_INT_CONSOLE(sound_mode, "sound_mode"); #ifdef HAVE_ZLIB - CONFIG_GET_INT_EXTERN(filebrowser_state.zip_extract_mode, "zip_extract_mode"); + CONFIG_GET_INT_EXTERN(file_state.zip_extract_mode, "zip_extract_mode"); #endif #ifdef _XBOX360 - CONFIG_GET_INT_CONSOLE(color_format, "color_format"); + CONFIG_GET_INT(video.color_format, "color_format"); #endif - CONFIG_GET_BOOL_CONSOLE(gamma_correction, "gamma_correction"); -#ifdef _XBOX1 - CONFIG_GET_INT_CONSOLE(flicker_filter, "flicker_filter"); - CONFIG_GET_INT_CONSOLE(sound_volume_level, "sound_volume_level"); -#endif - CONFIG_GET_BOOL_CONSOLE(soft_display_filter_enable, "soft_display_filter_enable"); - CONFIG_GET_STRING_CONSOLE(default_rom_startup_dir, "default_rom_startup_dir"); - CONFIG_GET_FLOAT_EXTERN(console.font_size, "menu_font_size"); - CONFIG_GET_FLOAT_CONSOLE(overscan_amount, "overscan_amount"); - - // g_extern + CONFIG_GET_INT_EXTERN(console.screen.resolutions.current.id, "current_resolution_id"); CONFIG_GET_INT_EXTERN(state_slot, "state_slot"); CONFIG_GET_INT_EXTERN(audio_data.mute, "audio_mute"); + CONFIG_GET_BOOL_EXTERN(console.screen.state.soft_filter.enable, "soft_display_filter_enable"); + CONFIG_GET_INT_EXTERN(console.screen.orientation, "screen_orientation"); + CONFIG_GET_INT_EXTERN(console.sound.mode, "sound_mode"); + CONFIG_GET_INT_EXTERN(console.screen.viewports.custom_vp.x, "custom_viewport_x"); + CONFIG_GET_INT_EXTERN(console.screen.viewports.custom_vp.y, "custom_viewport_y"); + CONFIG_GET_INT_EXTERN(console.screen.viewports.custom_vp.width, "custom_viewport_width"); + CONFIG_GET_INT_EXTERN(console.screen.viewports.custom_vp.height, "custom_viewport_height"); + CONFIG_GET_FLOAT_EXTERN(console.rmenu.font_size, "menu_font_size"); if(upgrade_core_succeeded) { @@ -143,14 +138,17 @@ void rarch_config_save(const char * conf_name) config_set_string(conf, "video_cg_shader", g_settings.video.cg_shader_path); config_set_float(conf, "video_aspect_ratio", g_settings.video.aspect_ratio); #ifdef HAVE_FBO - config_set_float(conf, "video_fbo_scale_x", g_settings.video.fbo_scale_x); - config_set_float(conf, "video_fbo_scale_y", g_settings.video.fbo_scale_y); + config_set_float(conf, "video_fbo_scale_x", g_settings.video.fbo.scale_x); + config_set_float(conf, "video_fbo_scale_y", g_settings.video.fbo.scale_y); config_set_string(conf, "video_second_pass_shader", g_settings.video.second_pass_shader); config_set_bool(conf, "video_render_to_texture", g_settings.video.render_to_texture); config_set_bool(conf, "video_second_pass_smooth", g_settings.video.second_pass_smooth); + config_set_bool(conf, "fbo_enabled", g_settings.video.fbo.enable); #endif config_set_bool(conf, "video_smooth", g_settings.video.smooth); config_set_bool(conf, "video_vsync", g_settings.video.vsync); + config_set_int(conf, "aspect_ratio_index", g_settings.video.aspect_ratio_idx); + config_set_int(conf, "color_format", g_settings.video.color_format); config_set_string(conf, "audio_device", g_settings.audio.device); config_set_bool(conf, "audio_rate_control", g_settings.audio.rate_control); config_set_float(conf, "audio_rate_control_delta", g_settings.audio.rate_control_delta); @@ -164,44 +162,35 @@ void rarch_config_save(const char * conf_name) config_set_int(conf, cfg, g_settings.input.device[i]); } -#ifdef RARCH_CONSOLE - config_set_bool(conf, "fbo_enabled", g_console.fbo_enabled); -#ifdef __CELLOS_LV2__ - config_set_bool(conf, "custom_bgm_enable", g_console.custom_bgm_enable); -#endif - config_set_bool(conf, "overscan_enable", g_console.overscan_enable); - config_set_bool(conf, "screenshots_enable", g_console.screenshots_enable); - config_set_bool(conf, "gamma_correction", g_console.gamma_correction); -#ifdef _XBOX360 - config_set_int(conf, "color_format", g_console.color_format); -#endif - config_set_bool(conf, "soft_display_filter_enable", g_console.soft_display_filter_enable); + config_set_bool(conf, "overscan_enable", g_extern.console.screen.state.overscan.enable); + config_set_bool(conf, "screenshots_enable", g_extern.console.screen.state.screenshots.enable); + config_set_bool(conf, "gamma_correction", g_extern.console.screen.gamma_correction); #ifdef _XBOX1 - config_set_int(conf, "flicker_filter", g_console.flicker_filter); - config_set_int(conf, "sound_volume_level", g_console.sound_volume_level); + config_set_int(conf, "flicker_filter", g_extern.console.screen.state.flicker_filter.value); + config_set_int(conf, "sound_volume_level", g_extern.console.sound.volume_level); #endif - config_set_bool(conf, "throttle_enable", g_console.throttle_enable); - config_set_bool(conf, "triple_buffering_enable", g_console.triple_buffering_enable); - config_set_bool(conf, "info_msg_enable", g_console.info_msg_enable); - config_set_int(conf, "sound_mode", g_console.sound_mode); - config_set_int(conf, "aspect_ratio_index", g_console.aspect_ratio_index); - config_set_int(conf, "current_resolution_id", g_console.current_resolution_id); - config_set_int(conf, "custom_viewport_width", g_console.viewports.custom_vp.width); - config_set_int(conf, "custom_viewport_height", g_console.viewports.custom_vp.height); - config_set_int(conf, "custom_viewport_x", g_console.viewports.custom_vp.x); - config_set_int(conf, "custom_viewport_y", g_console.viewports.custom_vp.y); - config_set_int(conf, "screen_orientation", g_console.screen_orientation); - config_set_string(conf, "default_rom_startup_dir", g_console.default_rom_startup_dir); - config_set_float(conf, "menu_font_size", g_extern.console.font_size); - config_set_float(conf, "overscan_amount", g_console.overscan_amount); + config_set_bool(conf, "throttle_enable", g_extern.console.screen.state.throttle.enable); + config_set_bool(conf, "triple_buffering_enable", g_extern.console.screen.state.triple_buffering.enable); + config_set_bool(conf, "info_msg_enable", g_extern.console.rmenu.state.msg_info.enable); + config_set_int(conf, "current_resolution_id", g_extern.console.screen.resolutions.current.id); + config_set_int(conf, "custom_viewport_width", g_extern.console.screen.viewports.custom_vp.width); + config_set_int(conf, "custom_viewport_height", g_extern.console.screen.viewports.custom_vp.height); + config_set_int(conf, "custom_viewport_x", g_extern.console.screen.viewports.custom_vp.x); + config_set_int(conf, "custom_viewport_y", g_extern.console.screen.viewports.custom_vp.y); + config_set_string(conf, "default_rom_startup_dir", g_extern.console.main_wrap.paths.default_rom_startup_dir); + config_set_float(conf, "menu_font_size", g_extern.console.rmenu.font_size); + config_set_float(conf, "overscan_amount", g_extern.console.screen.overscan_amount); #ifdef HAVE_ZLIB - config_set_int(conf, "zip_extract_mode", g_extern.filebrowser_state.zip_extract_mode); -#endif + config_set_int(conf, "zip_extract_mode", g_extern.file_state.zip_extract_mode); #endif // g_extern + config_set_int(conf, "sound_mode", g_extern.console.sound.mode); config_set_int(conf, "state_slot", g_extern.state_slot); config_set_int(conf, "audio_mute", g_extern.audio_data.mute); + config_set_bool(conf, "soft_display_filter_enable", g_extern.console.screen.state.soft_filter.enable); + config_set_int(conf, "screen_orientation", g_extern.console.screen.orientation); + config_set_bool(conf, "custom_bgm_enable", g_extern.console.sound.custom_bgm.enable); if (!config_file_write(conf, conf_name)) RARCH_ERR("Failed to write config file to \"%s\". Check permissions.\n", conf_name); diff --git a/console/rarch_console_main_wrap.c b/console/rarch_console_main_wrap.c index 1fd629de68..c424803e71 100644 --- a/console/rarch_console_main_wrap.c +++ b/console/rarch_console_main_wrap.c @@ -83,18 +83,18 @@ bool rarch_startup (const char * config_path) { bool retval = false; - if(g_console.initialize_rarch_enable) + if(g_extern.console.initialize_rarch_enable) { - if(g_console.emulator_initialized) + if(g_extern.console.emulator_initialized) rarch_main_deinit(); struct rarch_main_wrap args = {0}; args.verbose = g_extern.verbose; args.config_path = config_path; - args.sram_path = g_console.default_sram_dir_enable ? g_console.default_sram_dir : NULL, - args.state_path = g_console.default_savestate_dir_enable ? g_console.default_savestate_dir : NULL, - args.rom_path = g_extern.filebrowser_state.rom_path; + args.sram_path = g_extern.console.main_wrap.state.default_sram_dir.enable ? g_extern.console.main_wrap.paths.default_sram_dir : NULL, + args.state_path = g_extern.console.main_wrap.state.default_savestate_dir.enable ? g_extern.console.main_wrap.paths.default_savestate_dir : NULL, + args.rom_path = g_extern.file_state.rom_path; #ifdef HAVE_DYLIB args.libretro_path = g_settings.libretro; #endif @@ -104,15 +104,15 @@ bool rarch_startup (const char * config_path) if(init_ret == 0) { - g_console.emulator_initialized = 1; - g_console.initialize_rarch_enable = 0; + g_extern.console.emulator_initialized = 1; + g_extern.console.initialize_rarch_enable = 0; retval = true; } else { //failed to load the ROM for whatever reason - g_console.emulator_initialized = 0; - g_extern.console.mode = MODE_MENU; + g_extern.console.emulator_initialized = 0; + g_extern.console.rmenu.mode = MODE_MENU; rarch_settings_msg(S_MSG_ROM_LOADING_ERROR, S_DELAY_180); } } diff --git a/console/rarch_console_rom_ext.c b/console/rarch_console_rom_ext.c index 4e18a98c62..c043cc1a2e 100644 --- a/console/rarch_console_rom_ext.c +++ b/console/rarch_console_rom_ext.c @@ -34,7 +34,7 @@ static void rarch_console_load_game(const char *path) { - snprintf(g_extern.filebrowser_state.rom_path, sizeof(g_extern.filebrowser_state.rom_path), path); + snprintf(g_extern.file_state.rom_path, sizeof(g_extern.file_state.rom_path), path); rarch_settings_change(S_START_RARCH); } @@ -68,12 +68,12 @@ void rarch_console_load_game_wrap(const char *path, unsigned extract_zip_mode, u fill_pathname_basedir(dir_path_temp, rom_path_temp, sizeof(dir_path_temp)); rarch_extract_zipfile(rom_path_temp, dir_path_temp, first_file_inzip, sizeof(first_file_inzip), extract_zip_mode); - if(g_console.info_msg_enable) + if(g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_EXTRACTED_ZIPFILE, S_DELAY_180); } extract_zip_and_load_game_cond = (extract_zip_cond && - g_extern.filebrowser_state.zip_extract_mode == ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE); + g_extern.file_state.zip_extract_mode == ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE); load_game = (extract_zip_and_load_game_cond) || (!extract_zip_cond); if(extract_zip_and_load_game_cond) @@ -86,7 +86,7 @@ void rarch_console_load_game_wrap(const char *path, unsigned extract_zip_mode, u { rarch_console_load_game(game_to_load); - if(g_console.info_msg_enable) + if(g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_LOADING_ROM, delay); } } diff --git a/console/rarch_console_settings.c b/console/rarch_console_settings.c index 22d8c68af7..8c75155123 100644 --- a/console/rarch_console_settings.c +++ b/console/rarch_console_settings.c @@ -27,12 +27,12 @@ void rarch_settings_change(unsigned setting) switch(setting) { case S_ASPECT_RATIO_DECREMENT: - if(g_console.aspect_ratio_index > 0) - g_console.aspect_ratio_index--; + if(g_settings.video.aspect_ratio_idx > 0) + g_settings.video.aspect_ratio_idx--; break; case S_ASPECT_RATIO_INCREMENT: - if(g_console.aspect_ratio_index < LAST_ASPECT_RATIO) - g_console.aspect_ratio_index++; + if(g_settings.video.aspect_ratio_idx < LAST_ASPECT_RATIO) + g_settings.video.aspect_ratio_idx++; break; case S_AUDIO_MUTE: g_extern.audio_data.mute = !g_extern.audio_data.mute; @@ -51,9 +51,9 @@ void rarch_settings_change(unsigned setting) g_settings.audio.rate_control = true; break; case S_FRAME_ADVANCE: - g_extern.console.frame_advance_enable = true; - g_extern.console.enable = false; - g_extern.console.mode = MODE_EMULATION; + g_extern.console.screen.state.frame_advance.enable = true; + g_extern.console.rmenu.state.rmenu.enable = false; + g_extern.console.rmenu.mode = MODE_EMULATION; break; case S_HW_TEXTURE_FILTER: g_settings.video.smooth = !g_settings.video.smooth; @@ -62,69 +62,69 @@ void rarch_settings_change(unsigned setting) g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth; break; case S_OVERSCAN_DECREMENT: - g_console.overscan_amount -= 0.01f; - g_console.overscan_enable = true; - if(g_console.overscan_amount == 0.0f) - g_console.overscan_enable = false; + g_extern.console.screen.overscan_amount -= 0.01f; + g_extern.console.screen.state.overscan.enable = true; + if(g_extern.console.screen.overscan_amount == 0.0f) + g_extern.console.screen.state.overscan.enable = false; break; case S_OVERSCAN_INCREMENT: - g_console.overscan_amount += 0.01f; - g_console.overscan_enable = true; - if(g_console.overscan_amount == 0.0f) - g_console.overscan_enable = 0; + g_extern.console.screen.overscan_amount += 0.01f; + g_extern.console.screen.state.overscan.enable = true; + if(g_extern.console.screen.overscan_amount == 0.0f) + g_extern.console.screen.state.overscan.enable = 0; break; case S_RESOLUTION_PREVIOUS: - if (g_console.current_resolution_index) + if (g_extern.console.screen.resolutions.current.idx) { - g_console.current_resolution_index--; - g_console.current_resolution_id = g_console.supported_resolutions[g_console.current_resolution_index]; + g_extern.console.screen.resolutions.current.idx--; + g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx]; } break; case S_RESOLUTION_NEXT: - if (g_console.current_resolution_index + 1 < g_console.supported_resolutions_count) + if (g_extern.console.screen.resolutions.current.idx + 1 < g_extern.console.screen.resolutions.count) { - g_console.current_resolution_index++; - g_console.current_resolution_id = g_console.supported_resolutions[g_console.current_resolution_index]; + g_extern.console.screen.resolutions.current.idx++; + g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx]; } break; case S_QUIT: - g_extern.console.enable = false; - g_extern.console.ingame_menu_enable = false; - g_extern.console.mode = MODE_EXIT; + g_extern.console.rmenu.state.rmenu.enable = false; + g_extern.console.rmenu.state.ingame_menu.enable = false; + g_extern.console.rmenu.mode = MODE_EXIT; break; case S_QUIT_RARCH: - g_extern.console.enable = false; - g_console.initialize_rarch_enable = false; - g_extern.console.mode = MODE_EXIT; + g_extern.console.rmenu.state.rmenu.enable = false; + g_extern.console.initialize_rarch_enable = false; + g_extern.console.rmenu.mode = MODE_EXIT; break; case S_RETURN_TO_GAME: - g_extern.console.frame_advance_enable = false; - g_extern.console.enable = false; - g_extern.console.mode = MODE_EMULATION; + g_extern.console.screen.state.frame_advance.enable = false; + g_extern.console.rmenu.state.rmenu.enable = false; + g_extern.console.rmenu.mode = MODE_EMULATION; break; case S_RETURN_TO_LAUNCHER: - g_console.return_to_launcher = true; - g_extern.console.enable = false; - g_console.initialize_rarch_enable = false; - g_extern.console.mode = MODE_EXIT; + g_extern.console.external_launch.enable = true; + g_extern.console.rmenu.state.rmenu.enable = false; + g_extern.console.initialize_rarch_enable = false; + g_extern.console.rmenu.mode = MODE_EXIT; break; case S_RETURN_TO_MENU: - g_extern.console.enable = false; - g_extern.console.ingame_menu_item = 0; - g_extern.console.mode = MODE_MENU; + g_extern.console.rmenu.state.rmenu.enable = false; + g_extern.console.rmenu.ingame_menu.idx = 0; + g_extern.console.rmenu.mode = MODE_MENU; break; case S_ROTATION_DECREMENT: - if(g_console.screen_orientation > 0) - g_console.screen_orientation--; + if(g_extern.console.screen.orientation > 0) + g_extern.console.screen.orientation--; break; case S_ROTATION_INCREMENT: - if(g_console.screen_orientation < LAST_ORIENTATION) - g_console.screen_orientation++; + if(g_extern.console.screen.orientation < LAST_ORIENTATION) + g_extern.console.screen.orientation++; break; case S_START_RARCH: - g_extern.console.enable = false; - g_console.initialize_rarch_enable = 1; - g_extern.console.mode = MODE_EMULATION; + g_extern.console.rmenu.state.rmenu.enable = false; + g_extern.console.initialize_rarch_enable = 1; + g_extern.console.rmenu.mode = MODE_EMULATION; break; case S_REWIND: g_settings.rewind_enable = !g_settings.rewind_enable; @@ -137,22 +137,24 @@ void rarch_settings_change(unsigned setting) g_extern.state_slot++; break; case S_SCALE_ENABLED: - g_console.fbo_enabled = !g_console.fbo_enabled; + g_settings.video.fbo.enable = !g_settings.video.fbo.enable; break; case S_SCALE_FACTOR_DECREMENT: - g_settings.video.fbo_scale_x -= 1.0f; - g_settings.video.fbo_scale_y -= 1.0f; + g_settings.video.fbo.scale_x -= 1.0f; + g_settings.video.fbo.scale_y -= 1.0f; break; case S_SCALE_FACTOR_INCREMENT: - g_settings.video.fbo_scale_x += 1.0f; - g_settings.video.fbo_scale_y += 1.0f; + g_settings.video.fbo.scale_x += 1.0f; + g_settings.video.fbo.scale_y += 1.0f; break; case S_THROTTLE: if(!g_extern.system.force_nonblock) - g_console.throttle_enable = !g_console.throttle_enable; + g_extern.console.screen.state.throttle.enable = + !g_extern.console.screen.state.throttle.enable; break; case S_TRIPLE_BUFFERING: - g_console.triple_buffering_enable = !g_console.triple_buffering_enable; + g_extern.console.screen.state.triple_buffering.enable = + !g_extern.console.screen.state.triple_buffering.enable; break; } } @@ -162,7 +164,7 @@ void rarch_settings_default(unsigned setting) switch(setting) { case S_DEF_ASPECT_RATIO: - g_console.aspect_ratio_index = ASPECT_RATIO_4_3; + g_settings.video.aspect_ratio_idx = ASPECT_RATIO_4_3; break; case S_DEF_AUDIO_MUTE: g_extern.audio_data.mute = false; @@ -183,30 +185,30 @@ void rarch_settings_default(unsigned setting) g_settings.video.second_pass_smooth = 1; break; case S_DEF_OVERSCAN: - g_console.overscan_amount = 0.0f; - g_console.overscan_enable = false; + g_extern.console.screen.overscan_amount = 0.0f; + g_extern.console.screen.state.overscan.enable = false; break; case S_DEF_ROTATION: - g_console.screen_orientation = ORIENTATION_NORMAL; + g_extern.console.screen.orientation = ORIENTATION_NORMAL; break; case S_DEF_THROTTLE: if(!g_extern.system.force_nonblock) - g_console.throttle_enable = true; + g_extern.console.screen.state.throttle.enable = true; break; case S_DEF_TRIPLE_BUFFERING: - g_console.triple_buffering_enable = true; + g_extern.console.screen.state.triple_buffering.enable = true; break; case S_DEF_SAVE_STATE: g_extern.state_slot = 0; break; case S_DEF_SCALE_ENABLED: - g_console.fbo_enabled = true; - g_settings.video.fbo_scale_x = 2.0f; - g_settings.video.fbo_scale_y = 2.0f; + g_settings.video.fbo.enable = true; + g_settings.video.fbo.scale_x = 2.0f; + g_settings.video.fbo.scale_y = 2.0f; break; case S_DEF_SCALE_FACTOR: - g_settings.video.fbo_scale_x = 2.0f; - g_settings.video.fbo_scale_y = 2.0f; + g_settings.video.fbo.scale_x = 2.0f; + g_settings.video.fbo.scale_y = 2.0f; break; } } @@ -227,7 +229,7 @@ void rarch_settings_msg(unsigned setting, unsigned delay) snprintf(str, sizeof(str), "INFO - Press LEFT/RIGHT to change the controls, and press\n[RetroPad Start] to reset a button to default values."); break; case S_MSG_EXTRACTED_ZIPFILE: - switch(g_extern.filebrowser_state.zip_extract_mode) + switch(g_extern.file_state.zip_extract_mode) { case ZIP_EXTRACT_TO_CURRENT_DIR: snprintf(str, sizeof(str), "INFO - ZIP file successfully extracted to current directory."); @@ -243,7 +245,7 @@ void rarch_settings_msg(unsigned setting, unsigned delay) } break; case S_MSG_LOADING_ROM: - fill_pathname_base(tmp, g_extern.filebrowser_state.rom_path, sizeof(tmp)); + fill_pathname_base(tmp, g_extern.file_state.rom_path, sizeof(tmp)); snprintf(str, sizeof(str), "INFO - Loading %s...", tmp); break; case S_MSG_DIR_LOADING_ERROR: @@ -288,7 +290,7 @@ void rarch_settings_create_menu_item_label(char * str, unsigned setting, size_t switch (setting) { case S_LBL_ASPECT_RATIO: - snprintf(str, size, "Aspect Ratio: %s", aspectratio_lut[g_console.aspect_ratio_index].name); + snprintf(str, size, "Aspect Ratio: %s", aspectratio_lut[g_settings.video.aspect_ratio_idx].name); break; case S_LBL_SHADER: snprintf(str, size, "Shader #1: %s", g_settings.video.cg_shader_path); @@ -300,10 +302,10 @@ void rarch_settings_create_menu_item_label(char * str, unsigned setting, size_t snprintf(str, size, "RetroArch %s", PACKAGE_VERSION); break; case S_LBL_SCALE_FACTOR: - snprintf(str, size, "Scale Factor: %f (X) / %f (Y)", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); + snprintf(str, size, "Scale Factor: %f (X) / %f (Y)", g_settings.video.fbo.scale_x, g_settings.video.fbo.scale_y); break; case S_LBL_ROTATION: - snprintf(str, size, "Rotation: %s", rotation_lut[g_console.screen_orientation]); + snprintf(str, size, "Rotation: %s", rotation_lut[g_extern.console.screen.orientation]); break; case S_LBL_LOAD_STATE_SLOT: snprintf(str, size, "Load State #%d", g_extern.state_slot); @@ -314,7 +316,7 @@ void rarch_settings_create_menu_item_label(char * str, unsigned setting, size_t case S_LBL_ZIP_EXTRACT: { char msg[128]; - switch(g_extern.filebrowser_state.zip_extract_mode) + switch(g_extern.file_state.zip_extract_mode) { case ZIP_EXTRACT_TO_CURRENT_DIR: snprintf(msg, sizeof(msg), "Current dir"); @@ -353,8 +355,8 @@ void rarch_settings_set_default(void) #endif #ifdef HAVE_FBO - g_settings.video.fbo_scale_x = 2.0f; - g_settings.video.fbo_scale_y = 2.0f; + g_settings.video.fbo.scale_x = 2.0f; + g_settings.video.fbo.scale_y = 2.0f; #endif #ifdef GEKKO @@ -372,56 +374,53 @@ void rarch_settings_set_default(void) g_settings.video.msg_pos_x = 0.05f; g_settings.video.msg_pos_y = 0.90f; g_settings.video.aspect_ratio = -1.0f; - - // g_console - g_console.block_config_read = true; - g_extern.console.frame_advance_enable = false; - g_console.emulator_initialized = 0; - g_console.screenshots_enable = true; - g_console.throttle_enable = true; - g_console.initialize_rarch_enable = false; - g_console.triple_buffering_enable = true; - g_console.default_savestate_dir_enable = false; - g_console.default_sram_dir_enable = false; - -#ifdef HAVE_FBO - g_console.fbo_enabled = true; -#else - g_console.fbo_enabled = false; -#endif - - g_extern.console.mode = MODE_MENU; - g_console.screen_orientation = ORIENTATION_NORMAL; - g_console.current_resolution_id = 0; - strlcpy(g_console.default_rom_startup_dir, default_paths.filebrowser_startup_dir, sizeof(g_console.default_rom_startup_dir)); - strlcpy(g_console.default_savestate_dir, default_paths.savestate_dir, sizeof(g_console.default_savestate_dir)); - strlcpy(g_console.default_sram_dir, default_paths.sram_dir, sizeof(g_console.default_sram_dir)); - g_console.aspect_ratio_index = 0; - g_extern.console.font_size = 1.0f; - g_console.overscan_enable = false; - g_console.overscan_amount = 0.0f; - g_console.sound_mode = SOUND_MODE_NORMAL; - g_console.viewports.custom_vp.width = 0; - g_console.viewports.custom_vp.height = 0; - g_console.viewports.custom_vp.x = 0; - g_console.viewports.custom_vp.y = 0; - g_console.custom_bgm_enable = true; - g_console.info_msg_enable = true; #ifdef _XBOX360 - g_console.color_format = 0; -#endif - g_console.gamma_correction = DEFAULT_GAMMA; -#ifdef _XBOX1 - g_console.flicker_filter = 1; - g_console.sound_volume_level = 0; -#endif - g_console.soft_display_filter_enable = true; -#ifdef HAVE_ZLIB - g_extern.filebrowser_state.zip_extract_mode = 0; + g_settings.video.color_format = 0; #endif // g_extern + strlcpy(g_extern.console.main_wrap.paths.default_sram_dir, default_paths.sram_dir, sizeof(g_extern.console.main_wrap.paths.default_sram_dir)); + g_extern.console.screen.state.overscan.enable = false; + g_extern.console.screen.overscan_amount = 0.0f; + g_extern.console.sound.custom_bgm.enable = true; + g_extern.console.screen.gamma_correction = DEFAULT_GAMMA; + g_extern.console.initialize_rarch_enable = false; + g_extern.console.screen.state.screenshots.enable = true; + g_extern.console.screen.state.throttle.enable = true; + g_extern.console.rmenu.state.msg_info.enable = true; + g_extern.console.screen.state.triple_buffering.enable = true; + g_extern.console.main_wrap.state.default_savestate_dir.enable = false; + g_extern.console.main_wrap.state.default_sram_dir.enable = false; + g_extern.console.screen.orientation = ORIENTATION_NORMAL; + g_extern.console.screen.resolutions.current.id = 0; + strlcpy(g_extern.console.main_wrap.paths.default_rom_startup_dir, default_paths.filebrowser_startup_dir, sizeof(g_extern.console.main_wrap.paths.default_rom_startup_dir)); + strlcpy(g_extern.console.main_wrap.paths.default_savestate_dir, default_paths.savestate_dir, sizeof(g_extern.console.main_wrap.paths.default_savestate_dir)); +#ifdef HAVE_FBO + g_settings.video.fbo.enable = true; +#else + g_settings.video.fbo.enable = false; +#endif + g_settings.video.aspect_ratio_idx = 0; + g_extern.console.block_config_read = true; + g_extern.console.screen.state.frame_advance.enable = false; g_extern.state_slot = 0; g_extern.audio_data.mute = 0; g_extern.verbose = true; + + g_extern.console.emulator_initialized = 0; + g_extern.console.rmenu.mode = MODE_MENU; + g_extern.console.rmenu.font_size = 1.0f; + g_extern.console.sound.mode = SOUND_MODE_NORMAL; + g_extern.console.screen.viewports.custom_vp.width = 0; + g_extern.console.screen.viewports.custom_vp.height = 0; + g_extern.console.screen.viewports.custom_vp.x = 0; + g_extern.console.screen.viewports.custom_vp.y = 0; +#ifdef _XBOX1 + g_extern.console.screen.state.flicker_filter.enable = 1; + g_extern.console.sound.volume_level = 0; +#endif + g_extern.console.screen.state.soft_filter.enable = true; +#ifdef HAVE_ZLIB + g_extern.file_state.zip_extract_mode = 0; +#endif } diff --git a/console/rarch_console_video.c b/console/rarch_console_video.c index 5c7505a5c8..7524135571 100644 --- a/console/rarch_console_video.c +++ b/console/rarch_console_video.c @@ -82,7 +82,7 @@ void rarch_set_auto_viewport(unsigned width, unsigned height) void rarch_set_core_viewport() { - if (!g_console.emulator_initialized) + if (!g_extern.console.emulator_initialized) return; // fallback to 1:1 pixel ratio if none provided @@ -103,7 +103,7 @@ void rarch_load_shader(unsigned slot, const char *path) RARCH_WARN("Shader support is not implemented for this build.\n"); #endif - if (g_console.info_msg_enable) + if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } #endif diff --git a/console/rarch_console_video.h b/console/rarch_console_video.h index fefa863e62..494b4ab90e 100644 --- a/console/rarch_console_video.h +++ b/console/rarch_console_video.h @@ -17,9 +17,9 @@ #ifndef RARCH_CONSOLE_VIDEO_H__ #define RARCH_CONSOLE_VIDEO_H__ -#define IS_TIMER_NOT_EXPIRED(handle) ((handle)->frame_count < g_console.timer_expiration_frame_count) +#define IS_TIMER_NOT_EXPIRED(handle) ((handle)->frame_count < g_extern.console.timers.general_timer.expire_frame) #define IS_TIMER_EXPIRED(handle) (!(IS_TIMER_NOT_EXPIRED((handle)))) -#define SET_TIMER_EXPIRATION(handle, value) (g_console.timer_expiration_frame_count = (handle)->frame_count + (value)) +#define SET_TIMER_EXPIRATION(handle, value) (g_extern.console.timers.general_timer.expire_frame = (handle)->frame_count + (value)) #define MIN_SCALING_FACTOR (1.0f) diff --git a/console/rgui/rgui.c b/console/rgui/rgui.c index 86b99c4b22..13966f9329 100644 --- a/console/rgui/rgui.c +++ b/console/rgui/rgui.c @@ -310,7 +310,7 @@ static void render_messagebox(rgui_handle_t *rgui, const char *message) static void render_text(rgui_handle_t *rgui) { - if (rgui->need_refresh && g_console.mode_switch == MODE_MENU && !rgui->msg_force) + if (rgui->need_refresh && g_extern.console.rmenu.mode == MODE_MENU && !rgui->msg_force) return; size_t begin = rgui->directory_ptr >= TERM_HEIGHT / 2 ? @@ -377,7 +377,7 @@ static void render_text(rgui_handle_t *rgui) break; #ifdef HW_RVL case RGUI_SETTINGS_VIDEO_SOFT_FILTER: - snprintf(type_str, sizeof(type_str), g_console.soft_display_filter_enable ? "ON" : "OFF"); + snprintf(type_str, sizeof(type_str), g_extern.console.screen.state.soft_filter.enable ? "ON" : "OFF"); break; #endif #ifdef GEKKO @@ -386,13 +386,13 @@ static void render_text(rgui_handle_t *rgui) break; #endif case RGUI_SETTINGS_VIDEO_GAMMA: - snprintf(type_str, sizeof(type_str), "%d", g_console.gamma_correction); + snprintf(type_str, sizeof(type_str), "%d", g_extern.console.screen.gamma_correction); break; case RGUI_SETTINGS_VIDEO_ASPECT_RATIO: - snprintf(type_str, sizeof(type_str), "%s", aspectratio_lut[g_console.aspect_ratio_index].name); + snprintf(type_str, sizeof(type_str), "%s", aspectratio_lut[g_settings.video.aspect_ratio_idx].name); break; case RGUI_SETTINGS_VIDEO_OVERSCAN: - snprintf(type_str, sizeof(type_str), "%.2f", g_console.overscan_amount); + snprintf(type_str, sizeof(type_str), "%.2f", g_extern.console.screen.overscan_amount); break; case RGUI_SETTINGS_VIDEO_ROTATION: { @@ -408,7 +408,7 @@ static void render_text(rgui_handle_t *rgui) snprintf(type_str, sizeof(type_str), "%.3f", g_settings.audio.rate_control_delta); break; case RGUI_SETTINGS_ZIP_EXTRACT: - switch(g_console.zip_extract_mode) + switch(g_extern.file_state.zip_extract_mode) { case ZIP_EXTRACT_TO_CURRENT_DIR: snprintf(type_str, sizeof(type_str), "Current"); @@ -422,7 +422,7 @@ static void render_text(rgui_handle_t *rgui) } break; case RGUI_SETTINGS_DEBUG_TEXT: - snprintf(type_str, sizeof(type_str), g_console.fps_info_msg_enable ? "ON" : "OFF"); + snprintf(type_str, sizeof(type_str), g_extern.console.rmenu.state.msg_fps.enable ? "ON" : "OFF"); break; case RGUI_SETTINGS_CUSTOM_VIEWPORT: case RGUI_SETTINGS_CORE: @@ -566,7 +566,7 @@ static void rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t #ifdef HW_RVL case RGUI_SETTINGS_VIDEO_SOFT_FILTER: { - g_console.soft_display_filter_enable = !g_console.soft_display_filter_enable; + g_extern.console.screen.state.soft_filter.enable = !g_extern.console.screen.state.soft_filter.enable; driver.video->apply_state_changes(); } break; @@ -594,22 +594,22 @@ static void rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t case RGUI_SETTINGS_VIDEO_GAMMA: if (action == RGUI_ACTION_START) { - g_console.gamma_correction = 0; + g_extern.console.screen.gamma_correction = 0; driver.video->apply_state_changes(); } else if (action == RGUI_ACTION_LEFT) { - if(g_console.gamma_correction > 0) + if(g_extern.console.screen.gamma_correction > 0) { - g_console.gamma_correction--; + g_extern.console.screen.gamma_correction--; driver.video->apply_state_changes(); } } else if (action == RGUI_ACTION_RIGHT) { - if(g_console.gamma_correction < MAX_GAMMA_SETTING) + if(g_extern.console.screen.gamma_correction < MAX_GAMMA_SETTING) { - g_console.gamma_correction++; + g_extern.console.screen.gamma_correction++; driver.video->apply_state_changes(); } } @@ -621,23 +621,23 @@ static void rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t rarch_settings_change(S_ASPECT_RATIO_DECREMENT); else if (action == RGUI_ACTION_RIGHT) rarch_settings_change(S_ASPECT_RATIO_INCREMENT); - video_set_aspect_ratio_func(g_console.aspect_ratio_index); + video_set_aspect_ratio_func(g_settings.video.aspect_ratio_idx); break; case RGUI_SETTINGS_VIDEO_ROTATION: if (action == RGUI_ACTION_START) { rarch_settings_default(S_DEF_AUDIO_CONTROL_RATE); - video_set_rotation_func(g_console.screen_orientation); + video_set_rotation_func(g_extern.console.screen.orientation); } else if (action == RGUI_ACTION_LEFT) { rarch_settings_change(S_ROTATION_DECREMENT); - video_set_rotation_func(g_console.screen_orientation); + video_set_rotation_func(g_extern.console.screen.orientation); } else if (action == RGUI_ACTION_RIGHT) { rarch_settings_change(S_ROTATION_INCREMENT); - video_set_rotation_func(g_console.screen_orientation); + video_set_rotation_func(g_extern.console.screen.orientation); } break; case RGUI_SETTINGS_VIDEO_OVERSCAN: @@ -673,23 +673,23 @@ static void rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t break; case RGUI_SETTINGS_ZIP_EXTRACT: if (action == RGUI_ACTION_START) - g_console.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR; - else if (action == RGUI_ACTION_LEFT && g_console.zip_extract_mode > 0) - g_console.zip_extract_mode--; - else if (action == RGUI_ACTION_RIGHT && g_console.zip_extract_mode < LAST_ZIP_EXTRACT) - g_console.zip_extract_mode++; + g_extern.file_state.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR; + else if (action == RGUI_ACTION_LEFT && g_extern.file_state.zip_extract_mode > 0) + g_extern.file_state.zip_extract_mode--; + else if (action == RGUI_ACTION_RIGHT && g_extern.file_state.zip_extract_mode < LAST_ZIP_EXTRACT) + g_extern.file_state.zip_extract_mode++; break; case RGUI_SETTINGS_DEBUG_TEXT: if (action == RGUI_ACTION_START || action == RGUI_ACTION_LEFT) - g_console.fps_info_msg_enable = false; + g_extern.console.rmenu.state.msg_fps.enable = false; else if (action == RGUI_ACTION_RIGHT) - g_console.fps_info_msg_enable = true; + g_extern.console.rmenu.state.msg_fps.enable = true; break; case RGUI_SETTINGS_RESTART_EMULATOR: if (action == RGUI_ACTION_OK) { #ifdef GEKKO - snprintf(g_console.launch_app_on_exit, sizeof(g_console.launch_app_on_exit), "%s/boot.dol", default_paths.core_dir); + snprintf(g_extern.console.external_launch.launch_app, sizeof(g_extern.console.external_launch.launch_app), "%s/boot.dol", default_paths.core_dir); #endif rarch_settings_change(S_RETURN_TO_LAUNCHER); } @@ -764,7 +764,7 @@ static void rgui_settings_populate_entries(rgui_handle_t *rgui) { rgui_list_clear(rgui->folder_buf); - if (g_console.ingame_menu_enable) + if (g_extern.console.rmenu.state.ingame_menu.enable) { RGUI_MENU_ITEM("Save State", RGUI_SETTINGS_SAVESTATE_SAVE); RGUI_MENU_ITEM("Load State", RGUI_SETTINGS_SAVESTATE_LOAD); @@ -834,52 +834,44 @@ void rgui_viewport_iterate(rgui_handle_t *rgui, rgui_action_t action) case RGUI_ACTION_UP: if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) { - g_console.viewports.custom_vp.y -= 1; - g_console.viewports.custom_vp.height += 1; + g_extern.console.screen.viewports.custom_vp.y -= 1; + g_extern.console.screen.viewports.custom_vp.height += 1; } else - { - g_console.viewports.custom_vp.height -= 1; - } + g_extern.console.screen.viewports.custom_vp.height -= 1; driver.video->apply_state_changes(); break; case RGUI_ACTION_DOWN: if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) { - g_console.viewports.custom_vp.y += 1; - g_console.viewports.custom_vp.height -= 1; + g_extern.console.screen.viewports.custom_vp.y += 1; + g_extern.console.screen.viewports.custom_vp.height -= 1; } else - { - g_console.viewports.custom_vp.height += 1; - } + g_extern.console.screen.viewports.custom_vp.height += 1; driver.video->apply_state_changes(); break; case RGUI_ACTION_LEFT: if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) { - g_console.viewports.custom_vp.x -= 1; - g_console.viewports.custom_vp.width += 1; + g_extern.console.screen.viewports.custom_vp.x -= 1; + g_extern.console.screen.viewports.custom_vp.width += 1; } else - { - g_console.viewports.custom_vp.width -= 1; - } + g_extern.console.screen.viewports.custom_vp.width -= 1; driver.video->apply_state_changes(); break; case RGUI_ACTION_RIGHT: if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) { - g_console.viewports.custom_vp.x += 1; - g_console.viewports.custom_vp.width -= 1; + g_extern.console.screen.viewports.custom_vp.x += 1; + g_extern.console.screen.viewports.custom_vp.width -= 1; } else - { - g_console.viewports.custom_vp.width += 1; - } + g_extern.console.screen.viewports.custom_vp.width += 1; driver.video->apply_state_changes(); break; @@ -911,15 +903,15 @@ void rgui_viewport_iterate(rgui_handle_t *rgui, rgui_action_t action) #ifdef GEKKO if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) { - g_console.viewports.custom_vp.width += g_console.viewports.custom_vp.x; - g_console.viewports.custom_vp.height += g_console.viewports.custom_vp.y; - g_console.viewports.custom_vp.x = 0; - g_console.viewports.custom_vp.y = 0; + g_extern.console.screen.viewports.custom_vp.width += g_extern.console.screen.viewports.custom_vp.x; + g_extern.console.screen.viewports.custom_vp.height += g_extern.console.screen.viewports.custom_vp.y; + g_extern.console.screen.viewports.custom_vp.x = 0; + g_extern.console.screen.viewports.custom_vp.y = 0; } else { - g_console.viewports.custom_vp.width = gx->win_width - g_console.viewports.custom_vp.x; - g_console.viewports.custom_vp.height = gx->win_height - g_console.viewports.custom_vp.y; + g_extern.console.screen.viewports.custom_vp.width = gx->win_width - g_extern.console.screen.viewports.custom_vp.x; + g_extern.console.screen.viewports.custom_vp.height = gx->win_height - g_extern.console.screen.viewports.custom_vp.y; } #endif driver.video->apply_state_changes(); @@ -999,13 +991,11 @@ void rgui_settings_iterate(rgui_handle_t *rgui, rgui_action_t action) else if (type == RGUI_SETTINGS_CUSTOM_VIEWPORT && action == RGUI_ACTION_OK) { rgui_list_push(rgui->path_stack, "", type, rgui->directory_ptr); - g_console.aspect_ratio_index = ASPECT_RATIO_CUSTOM; - video_set_aspect_ratio_func(g_console.aspect_ratio_index); + g_settings.video.aspect_ratio_idx = ASPECT_RATIO_CUSTOM; + video_set_aspect_ratio_func(g_settings.video.aspect_ratio_idx); } else - { rgui_settings_toggle_setting(type, action, menu_type); - } break; case RGUI_ACTION_REFRESH: @@ -1135,7 +1125,7 @@ void rgui_iterate(rgui_handle_t *rgui, rgui_action_t action) else { snprintf(rgui->path_buf, sizeof(rgui->path_buf), "%s/%s", dir, path); - rarch_console_load_game_wrap(rgui->path_buf, g_console.zip_extract_mode, S_DELAY_1); + rarch_console_load_game_wrap(rgui->path_buf, g_extern.file_state.zip_extract_mode, S_DELAY_1); rgui->need_refresh = true; // in case of zip extract rgui->msg_force = true; } @@ -1173,7 +1163,7 @@ void rgui_iterate(rgui_handle_t *rgui, rgui_action_t action) // refresh values in case the stack changed rgui_list_back(rgui->path_stack, &dir, &menu_type, &directory_ptr); - if (rgui->need_refresh && (menu_type == RGUI_FILE_DIRECTORY || menu_type == RGUI_FILE_DEVICE || menu_type == RGUI_SETTINGS_CORE) && g_console.mode_switch == MODE_MENU) + if (rgui->need_refresh && (menu_type == RGUI_FILE_DIRECTORY || menu_type == RGUI_FILE_DEVICE || menu_type == RGUI_SETTINGS_CORE) && g_extern.console.rmenu.mode == MODE_MENU) { rgui->need_refresh = false; rgui_list_clear(rgui->folder_buf); diff --git a/console/rmenu/context/rmenu_ctx_ps3.c b/console/rmenu/context/rmenu_ctx_ps3.c index 2d684781c2..91e843974a 100644 --- a/console/rmenu/context/rmenu_ctx_ps3.c +++ b/console/rmenu/context/rmenu_ctx_ps3.c @@ -43,7 +43,7 @@ #define CURRENT_PATH_Y_POSITION 0.15f #define CURRENT_PATH_FONT_SIZE FONT_SIZE -#define FONT_SIZE (g_extern.console.font_size) +#define FONT_SIZE (g_extern.console.rmenu.font_size) #define NUM_ENTRY_PER_PAGE 15 diff --git a/console/rmenu/rmenu.c b/console/rmenu/rmenu.c index 8bb6d2a283..ff9846e241 100644 --- a/console/rmenu/rmenu.c +++ b/console/rmenu/rmenu.c @@ -152,8 +152,8 @@ static void populate_setting_item(unsigned i, item *current_item) #ifdef __CELLOS_LV2__ case SETTING_CHANGE_RESOLUTION: { - unsigned width = gfx_ctx_get_resolution_width(g_console.supported_resolutions[g_console.current_resolution_index]); - unsigned height = gfx_ctx_get_resolution_height(g_console.supported_resolutions[g_console.current_resolution_index]); + unsigned width = gfx_ctx_get_resolution_width(g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx]); + unsigned height = gfx_ctx_get_resolution_height(g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx]); snprintf(current_item->text, sizeof(current_item->text), "Resolution"); snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%dx%d", width, height); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Change the display resolution."); @@ -163,7 +163,7 @@ static void populate_setting_item(unsigned i, item *current_item) #if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL) case SETTING_SHADER_PRESETS: snprintf(current_item->text, sizeof(current_item->text), "Shader Presets (CGP)"); - fill_pathname_base(fname, g_console.cgp_path, sizeof(fname)); + fill_pathname_base(fname, g_extern.file_state.cgp_path, sizeof(fname)); snprintf(current_item->setting_text, sizeof(current_item->setting_text), fname); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Select a [CG Preset] script."); break; @@ -182,12 +182,12 @@ static void populate_setting_item(unsigned i, item *current_item) #endif case SETTING_FONT_SIZE: snprintf(current_item->text, sizeof(current_item->text), "Font Size"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%f", g_extern.console.font_size); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%f", g_extern.console.rmenu.font_size); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Increase or decrease the [Font Size]."); break; case SETTING_KEEP_ASPECT_RATIO: snprintf(current_item->text, sizeof(current_item->text), "Aspect Ratio"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), aspectratio_lut[g_console.aspect_ratio_index].name); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), aspectratio_lut[g_settings.video.aspect_ratio_idx].name); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Select an [Aspect Ratio]."); break; case SETTING_HW_TEXTURE_FILTER: @@ -209,46 +209,46 @@ static void populate_setting_item(unsigned i, item *current_item) break; case SETTING_SCALE_ENABLED: snprintf(current_item->text, sizeof(current_item->text), "Custom Scaling/Dual Shaders"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.fbo_enabled ? "ON" : "OFF"); - snprintf(current_item->comment, sizeof(current_item->comment), g_console.fbo_enabled ? "INFO - [Custom Scaling] is set to 'ON' - 2x shaders will look much\nbetter, and you can select a shader for [Shader #2]." : "INFO - [Custom Scaling] is set to 'OFF'."); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_settings.video.fbo.enable ? "ON" : "OFF"); + snprintf(current_item->comment, sizeof(current_item->comment), g_settings.video.fbo.enable ? "INFO - [Custom Scaling] is set to 'ON' - 2x shaders will look much\nbetter, and you can select a shader for [Shader #2]." : "INFO - [Custom Scaling] is set to 'OFF'."); break; case SETTING_SCALE_FACTOR: snprintf(current_item->text, sizeof(current_item->text), "Custom Scaling Factor"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%fx (X) / %fx (Y)", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); - snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Custom Scaling Factor] is set to: '%fx (X) / %fx (Y)'.", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%fx (X) / %fx (Y)", g_settings.video.fbo.scale_x, g_settings.video.fbo.scale_y); + snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Custom Scaling Factor] is set to: '%fx (X) / %fx (Y)'.", g_settings.video.fbo.scale_x, g_settings.video.fbo.scale_y); break; #endif #ifdef _XBOX1 case SETTING_FLICKER_FILTER: snprintf(current_item->text, sizeof(current_item->text), "Flicker Filter"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%d", g_console.flicker_filter); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%d", g_extern.console.screen.state.flicker_filter.enable); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Toggle the [Flicker Filter]."); break; case SETTING_SOFT_DISPLAY_FILTER: snprintf(current_item->text, sizeof(current_item->text), "Soft Display Filter"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.soft_display_filter_enable ? "ON" : "OFF"); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.screen.state.soft_filter.enable ? "ON" : "OFF"); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Toggle the [Soft Display Filter]."); break; #endif case SETTING_HW_OVERSCAN_AMOUNT: snprintf(current_item->text, sizeof(current_item->text), "Overscan"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%f", g_console.overscan_amount); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%f", g_extern.console.screen.overscan_amount); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Adjust or decrease [Overscan]. Set this to higher than 0.000\nif the screen doesn't fit on your TV/monitor."); break; case SETTING_THROTTLE_MODE: snprintf(current_item->text, sizeof(current_item->text), "Throttle Mode"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.throttle_enable ? "ON" : "OFF"); - snprintf(current_item->comment, sizeof(current_item->comment), g_console.throttle_enable ? "INFO - [Throttle Mode] is 'ON' - Vsync is enabled." : "INFO - [Throttle Mode] is 'OFF' - Vsync is disabled."); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.screen.state.throttle.enable ? "ON" : "OFF"); + snprintf(current_item->comment, sizeof(current_item->comment), g_extern.console.screen.state.throttle.enable ? "INFO - [Throttle Mode] is 'ON' - Vsync is enabled." : "INFO - [Throttle Mode] is 'OFF' - Vsync is disabled."); break; case SETTING_TRIPLE_BUFFERING: snprintf(current_item->text, sizeof(current_item->text), "Triple Buffering"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.triple_buffering_enable ? "ON" : "OFF"); - snprintf(current_item->comment, sizeof(current_item->comment), g_console.triple_buffering_enable ? "INFO - [Triple Buffering] is set to 'ON'." : "INFO - [Triple Buffering] is set to 'OFF'."); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.screen.state.triple_buffering.enable ? "ON" : "OFF"); + snprintf(current_item->comment, sizeof(current_item->comment), g_extern.console.screen.state.triple_buffering.enable ? "INFO - [Triple Buffering] is set to 'ON'." : "INFO - [Triple Buffering] is set to 'OFF'."); break; case SETTING_ENABLE_SCREENSHOTS: snprintf(current_item->text, sizeof(current_item->text), "Screenshot Option"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.screenshots_enable ? "ON" : "OFF"); - snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Screenshots feature is set to '%s'.", g_console.screenshots_enable ? "ON" : "OFF"); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.screen.state.screenshots.enable ? "ON" : "OFF"); + snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Screenshots feature is set to '%s'.", g_extern.console.screen.state.screenshots.enable ? "ON" : "OFF"); break; #if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL) case SETTING_APPLY_SHADER_PRESET_ON_STARTUP: @@ -264,7 +264,7 @@ static void populate_setting_item(unsigned i, item *current_item) break; case SETTING_SOUND_MODE: snprintf(current_item->text, sizeof(current_item->text), "Sound Output"); - switch(g_console.sound_mode) + switch(g_extern.console.sound.mode) { case SOUND_MODE_NORMAL: snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Sound Output] is set to 'Normal'."); @@ -306,12 +306,12 @@ static void populate_setting_item(unsigned i, item *current_item) /* emu-specific */ case SETTING_EMU_SHOW_DEBUG_INFO_MSG: snprintf(current_item->text, sizeof(current_item->text), "Debug info messages"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.fps_info_msg_enable ? "ON" : "OFF"); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.rmenu.state.msg_fps.enable ? "ON" : "OFF"); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Show onscreen debug messages."); break; case SETTING_EMU_SHOW_INFO_MSG: snprintf(current_item->text, sizeof(current_item->text), "Info messages"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.info_msg_enable ? "ON" : "OFF"); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.rmenu.state.msg_info.enable ? "ON" : "OFF"); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Show onscreen info messages in the menu."); break; case SETTING_EMU_REWIND_ENABLED: @@ -325,7 +325,7 @@ static void populate_setting_item(unsigned i, item *current_item) #ifdef HAVE_ZLIB case SETTING_ZIP_EXTRACT: snprintf(current_item->text, sizeof(current_item->text), "ZIP Extract Option"); - switch(g_extern.filebrowser_state.zip_extract_mode) + switch(g_extern.file_state.zip_extract_mode) { case ZIP_EXTRACT_TO_CURRENT_DIR: snprintf(current_item->setting_text, sizeof(current_item->setting_text), "Current dir"); @@ -364,7 +364,7 @@ static void populate_setting_item(unsigned i, item *current_item) #ifdef _XBOX1 case SETTING_EMU_AUDIO_SOUND_VOLUME_LEVEL: snprintf(current_item->text, sizeof(current_item->text), "Volume Level"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.sound_volume_level ? "Loud" : "Normal"); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.sound.volume_level ? "Loud" : "Normal"); if(g_extern.audio_data.mute) snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Volume Level] is set to 'Loud'"); else @@ -373,22 +373,22 @@ static void populate_setting_item(unsigned i, item *current_item) #endif case SETTING_ENABLE_CUSTOM_BGM: snprintf(current_item->text, sizeof(current_item->text), "Custom BGM Option"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.custom_bgm_enable ? "ON" : "OFF"); - snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Custom BGM] is set to '%s'.", g_console.custom_bgm_enable ? "ON" : "OFF"); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.sound.custom_bgm.enable ? "ON" : "OFF"); + snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Custom BGM] is set to '%s'.", g_extern.console.sound.custom_bgm.enable ? "ON" : "OFF"); break; case SETTING_PATH_DEFAULT_ROM_DIRECTORY: snprintf(current_item->text, sizeof(current_item->text), "Startup ROM Directory"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.default_rom_startup_dir); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.main_wrap.paths.default_rom_startup_dir); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Set the default [Startup ROM directory]. NOTE: You will have to\nrestart the emulator for this change to have any effect."); break; case SETTING_PATH_SAVESTATES_DIRECTORY: snprintf(current_item->text, sizeof(current_item->text), "Savestate Directory"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.default_savestate_dir); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.main_wrap.paths.default_savestate_dir); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Set the default path where all the savestate files will be saved to."); break; case SETTING_PATH_SRAM_DIRECTORY: snprintf(current_item->text, sizeof(current_item->text), "SRAM Directory"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.default_sram_dir); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.main_wrap.paths.default_sram_dir); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Set the default SRAM (SaveRAM) directory path. All the\nbattery backup saves will be stored in this directory."); break; #ifdef HAVE_XML @@ -405,18 +405,18 @@ static void populate_setting_item(unsigned i, item *current_item) break; case SETTING_ENABLE_SRAM_PATH: snprintf(current_item->text, sizeof(current_item->text), "Custom SRAM Dir Enable"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.default_sram_dir_enable ? "ON" : "OFF"); - snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Custom SRAM Dir Path] is set to '%s'.", g_console.default_sram_dir_enable ? "ON" : "OFF"); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.main_wrap.state.default_sram_dir.enable ? "ON" : "OFF"); + snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Custom SRAM Dir Path] is set to '%s'.", g_extern.console.main_wrap.state.default_sram_dir.enable ? "ON" : "OFF"); break; case SETTING_ENABLE_STATE_PATH: snprintf(current_item->text, sizeof(current_item->text), "Custom Savestate Dir Enable"); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.default_savestate_dir_enable ? "ON" : "OFF"); - snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Custom Savestate Dir Path] is set to '%s'.", g_console.default_savestate_dir_enable ? "ON" : "OFF"); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.console.main_wrap.state.default_savestate_dir.enable ? "ON" : "OFF"); + snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Custom Savestate Dir Path] is set to '%s'.", g_extern.console.main_wrap.state.default_savestate_dir.enable ? "ON" : "OFF"); break; case SETTING_CONTROLS_SCHEME: snprintf(current_item->text, sizeof(current_item->text), "Control Scheme Preset"); - snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Input scheme preset [%s] is selected.", g_console.input_cfg_path); - snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.input_cfg_path); + snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Input scheme preset [%s] is selected.", g_extern.file_state.input_cfg_path); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.file_state.input_cfg_path); break; case SETTING_CONTROLS_NUMBER: snprintf(current_item->text, sizeof(current_item->text), "Controller No"); @@ -684,7 +684,7 @@ static void select_file(menu *current_menu, uint64_t input) } break; case PRESET_CHOICE: - strlcpy(g_console.cgp_path, path, sizeof(g_console.cgp_path)); + strlcpy(g_extern.file_state.cgp_path, path, sizeof(g_extern.file_state.cgp_path)); context->apply_fbo_state_changes(FBO_DEINIT); #ifdef HAVE_OPENGL gl_cg_reinit(path); @@ -693,7 +693,7 @@ static void select_file(menu *current_menu, uint64_t input) break; #endif case INPUT_PRESET_CHOICE: - strlcpy(g_console.input_cfg_path, path, sizeof(g_console.input_cfg_path)); + strlcpy(g_extern.file_state.input_cfg_path, path, sizeof(g_extern.file_state.input_cfg_path)); config_read_keybinds(path); break; case BORDER_CHOICE: @@ -703,13 +703,13 @@ static void select_file(menu *current_menu, uint64_t input) if(set_libretro_core_as_launch) { - strlcpy(g_console.launch_app_on_exit, path, sizeof(g_console.launch_app_on_exit)); + strlcpy(g_extern.console.external_launch.launch_app, path, sizeof(g_extern.console.external_launch.launch_app)); set_libretro_core_as_launch = false; rarch_settings_change(S_RETURN_TO_LAUNCHER); } else { - if(g_console.info_msg_enable) + if(g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); } break; @@ -752,13 +752,13 @@ static void select_directory(menu *current_menu, uint64_t input) switch(current_menu->enum_id) { case PATH_SAVESTATES_DIR_CHOICE: - strlcpy(g_console.default_savestate_dir, path, sizeof(g_console.default_savestate_dir)); + strlcpy(g_extern.console.main_wrap.paths.default_savestate_dir, path, sizeof(g_extern.console.main_wrap.paths.default_savestate_dir)); break; case PATH_SRAM_DIR_CHOICE: - strlcpy(g_console.default_sram_dir, path, sizeof(g_console.default_sram_dir)); + strlcpy(g_extern.console.main_wrap.paths.default_sram_dir, path, sizeof(g_extern.console.main_wrap.paths.default_sram_dir)); break; case PATH_DEFAULT_ROM_DIR_CHOICE: - strlcpy(g_console.default_rom_startup_dir, path, sizeof(g_console.default_rom_startup_dir)); + strlcpy(g_extern.console.main_wrap.paths.default_rom_startup_dir, path, sizeof(g_extern.console.main_wrap.paths.default_rom_startup_dir)); break; #ifdef HAVE_XML case PATH_CHEATS_DIR_CHOICE: @@ -778,13 +778,13 @@ static void select_directory(menu *current_menu, uint64_t input) switch(current_menu->enum_id) { case PATH_SAVESTATES_DIR_CHOICE: - strlcpy(g_console.default_savestate_dir, path, sizeof(g_console.default_savestate_dir)); + strlcpy(g_extern.console.main_wrap.paths.default_savestate_dir, path, sizeof(g_extern.console.main_wrap.paths.default_savestate_dir)); break; case PATH_SRAM_DIR_CHOICE: - strlcpy(g_console.default_sram_dir, path, sizeof(g_console.default_sram_dir)); + strlcpy(g_extern.console.main_wrap.paths.default_sram_dir, path, sizeof(g_extern.console.main_wrap.paths.default_sram_dir)); break; case PATH_DEFAULT_ROM_DIR_CHOICE: - strlcpy(g_console.default_rom_startup_dir, path, sizeof(g_console.default_rom_startup_dir)); + strlcpy(g_extern.console.main_wrap.paths.default_rom_startup_dir, path, sizeof(g_extern.console.main_wrap.paths.default_rom_startup_dir)); break; #ifdef HAVE_XML case PATH_CHEATS_DIR_CHOICE: @@ -840,20 +840,20 @@ static void rarch_filename_input_and_save (unsigned filename_type) { bool filename_entered = false; char filename_tmp[256], filepath[PATH_MAX]; - oskutil_write_initial_message(&g_console.oskutil_handle, L"example"); - oskutil_write_message(&g_console.oskutil_handle, L"Enter filename for preset (with no file extension)"); + oskutil_write_initial_message(&g_extern.console.misc.oskutil_handle, L"example"); + oskutil_write_message(&g_extern.console.misc.oskutil_handle, L"Enter filename for preset (with no file extension)"); - oskutil_start(&g_console.oskutil_handle); + oskutil_start(&g_extern.console.misc.oskutil_handle); - while(OSK_IS_RUNNING(g_console.oskutil_handle)) + while(OSK_IS_RUNNING(g_extern.console.misc.oskutil_handle)) { context->clear(); context->swap_buffers(); } - if(g_console.oskutil_handle.text_can_be_fetched) + if(g_extern.console.misc.oskutil_handle.text_can_be_fetched) { - strlcpy(filename_tmp, OUTPUT_TEXT_STRING(g_console.oskutil_handle), sizeof(filename_tmp)); + strlcpy(filename_tmp, OUTPUT_TEXT_STRING(g_extern.console.misc.oskutil_handle), sizeof(filename_tmp)); switch(filename_type) { @@ -873,19 +873,19 @@ static void rarch_filename_input_and_save (unsigned filename_type) if(filename_entered) { char filetitle_tmp[256]; - oskutil_write_initial_message(&g_console.oskutil_handle, L"Example file title"); - oskutil_write_message(&g_console.oskutil_handle, L"Enter title for preset"); - oskutil_start(&g_console.oskutil_handle); + oskutil_write_initial_message(&g_extern.console.misc.oskutil_handle, L"Example file title"); + oskutil_write_message(&g_extern.console.misc.oskutil_handle, L"Enter title for preset"); + oskutil_start(&g_extern.console.misc.oskutil_handle); - while(OSK_IS_RUNNING(g_console.oskutil_handle)) + while(OSK_IS_RUNNING(g_extern.console.misc.oskutil_handle)) { /* OSK Util gets updated */ context->clear(); context->swap_buffers(); } - if(g_console.oskutil_handle.text_can_be_fetched) - snprintf(filetitle_tmp, sizeof(filetitle_tmp), "%s", OUTPUT_TEXT_STRING(g_console.oskutil_handle)); + if(g_extern.console.misc.oskutil_handle.text_can_be_fetched) + snprintf(filetitle_tmp, sizeof(filetitle_tmp), "%s", OUTPUT_TEXT_STRING(g_extern.console.misc.oskutil_handle)); else snprintf(filetitle_tmp, sizeof(filetitle_tmp), "%s", "Custom"); @@ -901,7 +901,7 @@ static void rarch_filename_input_and_save (unsigned filename_type) current_settings.filter_linear[0] = g_settings.video.smooth; current_settings.filter_linear[1] = g_settings.video.second_pass_smooth; current_settings.render_to_texture = true; - current_settings.fbo_scale = g_settings.video.fbo_scale_x; //fbo_scale_x and y are the same anyway + current_settings.fbo_scale = g_settings.video.fbo.scale_x; //fbo.scale_x and y are the same anyway gl_cg_save_cgp(filepath, ¤t_settings); } break; @@ -925,7 +925,7 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_ rarch_settings_change(S_RESOLUTION_PREVIOUS); if(input & (1 << RMENU_DEVICE_NAV_B)) { - if (g_console.supported_resolutions[g_console.current_resolution_index] == CELL_VIDEO_OUT_RESOLUTION_576) + if (g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx] == CELL_VIDEO_OUT_RESOLUTION_576) { if(gfx_ctx_check_resolution(CELL_VIDEO_OUT_RESOLUTION_576)) { @@ -962,14 +962,14 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_ case SETTING_SHADER_PRESETS: if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) { - if(g_console.emulator_initialized) + if(g_extern.console.emulator_initialized) { menu_stack_push(PRESET_CHOICE); filebrowser_set_root_and_ext(&tmpBrowser, EXT_CGP_PRESETS, default_paths.cgp_dir); } } if(input & (1 << RMENU_DEVICE_NAV_START)) - strlcpy(g_console.cgp_path, "", sizeof(g_console.cgp_path)); + strlcpy(g_extern.file_state.cgp_path, "", sizeof(g_extern.file_state.cgp_path)); break; case SETTING_SHADER: if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) @@ -1001,32 +1001,32 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_ case SETTING_FONT_SIZE: if(input & (1 << RMENU_DEVICE_NAV_LEFT)) { - if(g_extern.console.font_size > 0) - g_extern.console.font_size -= 0.01f; + if(g_extern.console.rmenu.font_size > 0) + g_extern.console.rmenu.font_size -= 0.01f; } if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) { - if((g_extern.console.font_size < 2.0f)) - g_extern.console.font_size += 0.01f; + if((g_extern.console.rmenu.font_size < 2.0f)) + g_extern.console.rmenu.font_size += 0.01f; } if(input & (1 << RMENU_DEVICE_NAV_START)) - g_extern.console.font_size = 1.0f; + g_extern.console.rmenu.font_size = 1.0f; break; case SETTING_KEEP_ASPECT_RATIO: if(input & (1 << RMENU_DEVICE_NAV_LEFT)) { rarch_settings_change(S_ASPECT_RATIO_DECREMENT); - context->set_aspect_ratio(g_console.aspect_ratio_index); + context->set_aspect_ratio(g_settings.video.aspect_ratio_idx); } if(input & (1 << RMENU_DEVICE_NAV_RIGHT)) { rarch_settings_change(S_ASPECT_RATIO_INCREMENT); - context->set_aspect_ratio(g_console.aspect_ratio_index); + context->set_aspect_ratio(g_settings.video.aspect_ratio_idx); } if(input & (1 << RMENU_DEVICE_NAV_START)) { rarch_settings_default(S_DEF_ASPECT_RATIO); - context->set_aspect_ratio(g_console.aspect_ratio_index); + context->set_aspect_ratio(g_settings.video.aspect_ratio_idx); } break; case SETTING_HW_TEXTURE_FILTER: @@ -1058,7 +1058,7 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_ if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) { rarch_settings_change(S_SCALE_ENABLED); - context->set_fbo_enable(g_console.fbo_enabled); + context->set_fbo_enable(g_settings.video.fbo.enable); } if(input & (1 << RMENU_DEVICE_NAV_START)) { @@ -1070,9 +1070,9 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_ case SETTING_SCALE_FACTOR: if(input & (1 << RMENU_DEVICE_NAV_LEFT)) { - if(g_console.fbo_enabled) + if(g_settings.video.fbo.enable) { - bool should_decrement = g_settings.video.fbo_scale_x > MIN_SCALING_FACTOR; + bool should_decrement = g_settings.video.fbo.scale_x > MIN_SCALING_FACTOR; if(should_decrement) { @@ -1083,9 +1083,9 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_ } if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) { - if(g_console.fbo_enabled) + if(g_settings.video.fbo.enable) { - bool should_increment = g_settings.video.fbo_scale_x < MAX_SCALING_FACTOR; + bool should_increment = g_settings.video.fbo.scale_x < MAX_SCALING_FACTOR; if(should_increment) { rarch_settings_change(S_SCALE_FACTOR_INCREMENT); @@ -1104,450 +1104,443 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_ #ifdef _XBOX1 case SETTING_FLICKER_FILTER: if(input & (1 << RMENU_DEVICE_NAV_LEFT)) - { - if(g_console.flicker_filter > 0) - g_console.flicker_filter--; - } - if(input & (1 << RMENU_DEVICE_NAV_RIGHT)) - { - if(g_console.flicker_filter < 5) - g_console.flicker_filter++; - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - g_console.flicker_filter = 0; - } + { + if(g_extern.console.screen.state.flicker_filter.value > 0) + g_extern.console.screen.state.flicker_filter.value--; + } + if(input & (1 << RMENU_DEVICE_NAV_RIGHT)) + { + if(g_extern.console.screen.state.flicker_filter.value < 5) + g_extern.console.screen.state.flicker_filter.value++; + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + g_extern.console.screen.state.flicker_filter.value = 0; break; case SETTING_SOFT_DISPLAY_FILTER: - if(input & (1 << RMENU_DEVICE_NAV_LEFT) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - g_console.soft_display_filter_enable = !g_console.soft_display_filter_enable; - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - g_console.soft_display_filter_enable = true; - } + if(input & (1 << RMENU_DEVICE_NAV_LEFT) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + g_extern.console.screen.state.soft_filter.enable = !g_extern.console.screen.soft_filter.enable; + if(input & (1 << RMENU_DEVICE_NAV_START)) + g_extern.console.screen.state.soft_filter.enable = true; break; #endif - case SETTING_HW_OVERSCAN_AMOUNT: - if(input & (1 << RMENU_DEVICE_NAV_LEFT)) - { - rarch_settings_change(S_OVERSCAN_DECREMENT); - gfx_ctx_set_overscan(); - } - if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - rarch_settings_change(S_OVERSCAN_INCREMENT); - gfx_ctx_set_overscan(); - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - rarch_settings_default(S_DEF_OVERSCAN); - gfx_ctx_set_overscan(); - } - break; - case SETTING_THROTTLE_MODE: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - rarch_settings_change(S_THROTTLE); - context->set_swap_interval(g_console.throttle_enable); - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - rarch_settings_default(S_DEF_THROTTLE); - context->set_swap_interval(g_console.throttle_enable); - } - break; - case SETTING_TRIPLE_BUFFERING: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - rarch_settings_change(S_TRIPLE_BUFFERING); - video_ptr.restart(); - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - bool old_buffer_input = g_console.triple_buffering_enable; - rarch_settings_default(S_DEF_TRIPLE_BUFFERING); + case SETTING_HW_OVERSCAN_AMOUNT: + if(input & (1 << RMENU_DEVICE_NAV_LEFT)) + { + rarch_settings_change(S_OVERSCAN_DECREMENT); + gfx_ctx_set_overscan(); + } + if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + rarch_settings_change(S_OVERSCAN_INCREMENT); + gfx_ctx_set_overscan(); + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + { + rarch_settings_default(S_DEF_OVERSCAN); + gfx_ctx_set_overscan(); + } + break; + case SETTING_THROTTLE_MODE: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + rarch_settings_change(S_THROTTLE); + context->set_swap_interval(g_extern.console.screen.state.throttle.enable); + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + { + rarch_settings_default(S_DEF_THROTTLE); + context->set_swap_interval(g_extern.console.screen.state.throttle.enable); + } + break; + case SETTING_TRIPLE_BUFFERING: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + rarch_settings_change(S_TRIPLE_BUFFERING); + video_ptr.restart(); + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + { + bool old_buffer_input = g_extern.console.screen.state.triple_buffering.enable; + rarch_settings_default(S_DEF_TRIPLE_BUFFERING); - if(!old_buffer_input) - video_ptr.restart(); - } - break; - case SETTING_ENABLE_SCREENSHOTS: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - g_console.screenshots_enable = !g_console.screenshots_enable; - context->screenshot_enable(g_console.screenshots_enable); - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - g_console.screenshots_enable = true; - context->screenshot_enable(g_console.screenshots_enable); - } - break; + if(!old_buffer_input) + video_ptr.restart(); + } + break; + case SETTING_ENABLE_SCREENSHOTS: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + g_extern.console.screen.state.screenshots.enable = !g_extern.console.screen.state.screenshots.enable; + context->screenshot_enable(g_extern.console.screen.state.screenshots.enable); + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + { + g_extern.console.screen.state.screenshots.enable = true; + context->screenshot_enable(g_extern.console.screen.state.screenshots.enable); + } + break; #if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL) - case SETTING_SAVE_SHADER_PRESET: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - rarch_filename_input_and_save(SHADER_PRESET_FILE); - break; - case SETTING_APPLY_SHADER_PRESET_ON_STARTUP: - break; + case SETTING_SAVE_SHADER_PRESET: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + rarch_filename_input_and_save(SHADER_PRESET_FILE); + break; + case SETTING_APPLY_SHADER_PRESET_ON_STARTUP: + break; #endif - case SETTING_DEFAULT_VIDEO_ALL: - break; - case SETTING_SOUND_MODE: - if(input & (1 << RMENU_DEVICE_NAV_LEFT)) - { - if(g_console.sound_mode != SOUND_MODE_NORMAL) - g_console.sound_mode--; - } - if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - if(g_console.sound_mode < (SOUND_MODE_LAST-1)) - g_console.sound_mode++; - } - if((input & (1 << RMENU_DEVICE_NAV_UP)) || (input & (1 << RMENU_DEVICE_NAV_DOWN))) - { + case SETTING_DEFAULT_VIDEO_ALL: + break; + case SETTING_SOUND_MODE: + if(input & (1 << RMENU_DEVICE_NAV_LEFT)) + { + if(g_extern.console.sound.mode != SOUND_MODE_NORMAL) + g_extern.console.sound.mode--; + } + if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + if(g_extern.console.sound.mode < (SOUND_MODE_LAST-1)) + g_extern.console.sound.mode++; + } + if((input & (1 << RMENU_DEVICE_NAV_UP)) || (input & (1 << RMENU_DEVICE_NAV_DOWN))) + { #ifdef HAVE_RSOUND - if(g_console.sound_mode != SOUND_MODE_RSOUND) - rarch_console_rsound_stop(); - else - rarch_console_rsound_start(g_settings.audio.device); + if(g_extern.console.sound.mode != SOUND_MODE_RSOUND) + rarch_console_rsound_stop(); + else + rarch_console_rsound_start(g_settings.audio.device); #endif - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - g_console.sound_mode = SOUND_MODE_NORMAL; + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + { + g_extern.console.sound.mode = SOUND_MODE_NORMAL; #ifdef HAVE_RSOUND - rarch_console_rsound_stop(); + rarch_console_rsound_stop(); #endif - } - break; + } + break; #ifdef HAVE_RSOUND - case SETTING_RSOUND_SERVER_IP_ADDRESS: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - oskutil_write_initial_message(&g_console.oskutil_handle, L"192.168.1.1"); - oskutil_write_message(&g_console.oskutil_handle, L"Enter IP address for the RSound Server."); - oskutil_start(&g_console.oskutil_handle); - while(OSK_IS_RUNNING(g_console.oskutil_handle)) - { - context->clear(); - context->swap_buffers(); - } + case SETTING_RSOUND_SERVER_IP_ADDRESS: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + oskutil_write_initial_message(&g_extern.console.misc.oskutil_handle, L"192.168.1.1"); + oskutil_write_message(&g_extern.console.misc.oskutil_handle, L"Enter IP address for the RSound Server."); + oskutil_start(&g_extern.console.misc.oskutil_handle); + while(OSK_IS_RUNNING(g_extern.console.misc.oskutil_handle)) + { + context->clear(); + context->swap_buffers(); + } - if(g_console.oskutil_handle.text_can_be_fetched) - strlcpy(g_settings.audio.device, OUTPUT_TEXT_STRING(g_console.oskutil_handle), sizeof(g_settings.audio.device)); - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - strlcpy(g_settings.audio.device, "0.0.0.0", sizeof(g_settings.audio.device)); - break; + if(g_extern.console.misc.oskutil_handle.text_can_be_fetched) + strlcpy(g_settings.audio.device, OUTPUT_TEXT_STRING(g_extern.console.misc.oskutil_handle), sizeof(g_settings.audio.device)); + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + strlcpy(g_settings.audio.device, "0.0.0.0", sizeof(g_settings.audio.device)); + break; #endif - case SETTING_DEFAULT_AUDIO_ALL: - break; - case SETTING_EMU_CURRENT_SAVE_STATE_SLOT: - if(input & (1 << RMENU_DEVICE_NAV_LEFT)) - rarch_settings_change(S_SAVESTATE_DECREMENT); - if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - rarch_settings_change(S_SAVESTATE_INCREMENT); + case SETTING_DEFAULT_AUDIO_ALL: + break; + case SETTING_EMU_CURRENT_SAVE_STATE_SLOT: + if(input & (1 << RMENU_DEVICE_NAV_LEFT)) + rarch_settings_change(S_SAVESTATE_DECREMENT); + if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + rarch_settings_change(S_SAVESTATE_INCREMENT); + if(input & (1 << RMENU_DEVICE_NAV_START)) + rarch_settings_default(S_DEF_SAVE_STATE); + break; + case SETTING_EMU_SHOW_DEBUG_INFO_MSG: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + g_extern.console.rmenu.state.msg_fps.enable = !g_extern.console.rmenu.state.msg_fps.enable; + if(input & (1 << RMENU_DEVICE_NAV_START)) + g_extern.console.rmenu.state.msg_fps.enable = false; + break; + case SETTING_EMU_SHOW_INFO_MSG: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + g_extern.console.rmenu.state.msg_info.enable = !g_extern.console.rmenu.state.msg_info.enable; + if(input & (1 << RMENU_DEVICE_NAV_START)) + g_extern.console.rmenu.state.msg_info.enable = true; + break; + case SETTING_EMU_REWIND_ENABLED: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + rarch_settings_change(S_REWIND); - if(input & (1 << RMENU_DEVICE_NAV_START)) - rarch_settings_default(S_DEF_SAVE_STATE); - break; - case SETTING_EMU_SHOW_DEBUG_INFO_MSG: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - g_console.fps_info_msg_enable = !g_console.fps_info_msg_enable; - if(input & (1 << RMENU_DEVICE_NAV_START)) - g_console.fps_info_msg_enable = false; - break; - case SETTING_EMU_SHOW_INFO_MSG: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - g_console.info_msg_enable = !g_console.info_msg_enable; - if(input & (1 << RMENU_DEVICE_NAV_START)) - g_console.info_msg_enable = true; - break; - case SETTING_EMU_REWIND_ENABLED: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - rarch_settings_change(S_REWIND); - - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - g_settings.rewind_enable = false; - break; + if(g_extern.console.rmenu.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + g_settings.rewind_enable = false; + break; #ifdef HAVE_ZLIB - case SETTING_ZIP_EXTRACT: - if((input & (1 << RMENU_DEVICE_NAV_LEFT))) - { - if(g_extern.filebrowser_state.zip_extract_mode > 0) - g_extern.filebrowser_state.zip_extract_mode--; - } - if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - if(g_extern.filebrowser_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR) - g_extern.filebrowser_state.zip_extract_mode++; - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - g_extern.filebrowser_state.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR; - break; + case SETTING_ZIP_EXTRACT: + if((input & (1 << RMENU_DEVICE_NAV_LEFT))) + { + if(g_extern.file_state.zip_extract_mode > 0) + g_extern.file_state.zip_extract_mode--; + } + if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + if(g_extern.file_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR) + g_extern.file_state.zip_extract_mode++; + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + g_extern.file_state.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR; + break; #endif - case SETTING_RARCH_DEFAULT_EMU: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - menu_stack_push(LIBRETRO_CHOICE); - filebrowser_set_root_and_ext(&tmpBrowser, EXT_EXECUTABLES, default_paths.core_dir); - set_libretro_core_as_launch = false; - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - } - break; - case SETTING_QUIT_RARCH: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - rarch_settings_change(S_QUIT_RARCH); - } - break; - case SETTING_EMU_AUDIO_MUTE: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - rarch_settings_change(S_AUDIO_MUTE); + case SETTING_RARCH_DEFAULT_EMU: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + menu_stack_push(LIBRETRO_CHOICE); + filebrowser_set_root_and_ext(&tmpBrowser, EXT_EXECUTABLES, default_paths.core_dir); + set_libretro_core_as_launch = false; + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + { + } + break; + case SETTING_QUIT_RARCH: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + rarch_settings_change(S_QUIT_RARCH); + } + break; + case SETTING_EMU_AUDIO_MUTE: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + rarch_settings_change(S_AUDIO_MUTE); - if(input & (1 << RMENU_DEVICE_NAV_START)) - rarch_settings_default(S_DEF_AUDIO_MUTE); - break; + if(input & (1 << RMENU_DEVICE_NAV_START)) + rarch_settings_default(S_DEF_AUDIO_MUTE); + break; #ifdef _XBOX1 case SETTING_EMU_AUDIO_SOUND_VOLUME_LEVEL: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - g_console.sound_volume_level = !g_console.sound_volume_level; - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); - } + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + g_extern.console.sound.volume_level = !g_extern.console.sound.volume_level; + if(g_extern.console.screen.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { - g_console.sound_volume_level = 0; - if(g_console.info_msg_enable) - rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); - } - break; + if(input & (1 << RMENU_DEVICE_NAV_START)) + { + g_extern.console.sound.volume_level = 0; + if(g_extern.console.screen.state.msg_info.enable) + rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); + } + break; #endif - case SETTING_ENABLE_CUSTOM_BGM: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { + case SETTING_ENABLE_CUSTOM_BGM: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { #if(CELL_SDK_VERSION > 0x340000) - g_console.custom_bgm_enable = !g_console.custom_bgm_enable; - if(g_console.custom_bgm_enable) - cellSysutilEnableBgmPlayback(); - else - cellSysutilDisableBgmPlayback(); + g_extern.console.sound.custom_bgm.enable = !g_extern.console.sound.custom_bgm.enable; + if(g_extern.console.sound.custom_bgm.enable) + cellSysutilEnableBgmPlayback(); + else + cellSysutilDisableBgmPlayback(); #endif - } - if(input & (1 << RMENU_DEVICE_NAV_START)) - { + } + if(input & (1 << RMENU_DEVICE_NAV_START)) + { #if(CELL_SDK_VERSION > 0x340000) - g_console.custom_bgm_enable = true; + g_extern.console.sound.custom_bgm.enable = true; #endif - } - break; - case SETTING_EMU_VIDEO_DEFAULT_ALL: - break; - case SETTING_EMU_AUDIO_DEFAULT_ALL: - break; - case SETTING_PATH_DEFAULT_ROM_DIRECTORY: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - menu_stack_push(PATH_DEFAULT_ROM_DIR_CHOICE); - filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.filesystem_root_dir); - } + } + break; + case SETTING_EMU_VIDEO_DEFAULT_ALL: + break; + case SETTING_EMU_AUDIO_DEFAULT_ALL: + break; + case SETTING_PATH_DEFAULT_ROM_DIRECTORY: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + menu_stack_push(PATH_DEFAULT_ROM_DIR_CHOICE); + filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.filesystem_root_dir); + } - if(input & (1 << RMENU_DEVICE_NAV_START)) - strlcpy(g_console.default_rom_startup_dir, default_paths.filesystem_root_dir, sizeof(g_console.default_rom_startup_dir)); - break; - case SETTING_PATH_SAVESTATES_DIRECTORY: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - menu_stack_push(PATH_SAVESTATES_DIR_CHOICE); - filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.filesystem_root_dir); - } + if(input & (1 << RMENU_DEVICE_NAV_START)) + strlcpy(g_extern.console.main_wrap.paths.default_rom_startup_dir, default_paths.filesystem_root_dir, sizeof(g_extern.console.main_wrap.paths.default_rom_startup_dir)); + break; + case SETTING_PATH_SAVESTATES_DIRECTORY: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + menu_stack_push(PATH_SAVESTATES_DIR_CHOICE); + filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.filesystem_root_dir); + } - if(input & (1 << RMENU_DEVICE_NAV_START)) - strlcpy(g_console.default_savestate_dir, default_paths.savestate_dir, sizeof(g_console.default_savestate_dir)); + if(input & (1 << RMENU_DEVICE_NAV_START)) + strlcpy(g_extern.console.main_wrap.paths.default_savestate_dir, default_paths.savestate_dir, sizeof(g_extern.console.main_wrap.paths.default_savestate_dir)); - break; - case SETTING_PATH_SRAM_DIRECTORY: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - menu_stack_push(PATH_SRAM_DIR_CHOICE); - filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.filesystem_root_dir); - } + break; + case SETTING_PATH_SRAM_DIRECTORY: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + menu_stack_push(PATH_SRAM_DIR_CHOICE); + filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.filesystem_root_dir); + } - if(input & (1 << RMENU_DEVICE_NAV_START)) - strlcpy(g_console.default_sram_dir, default_paths.sram_dir, sizeof(g_console.default_sram_dir)); - break; + if(input & (1 << RMENU_DEVICE_NAV_START)) + strlcpy(g_extern.console.main_wrap.paths.default_sram_dir, default_paths.sram_dir, sizeof(g_extern.console.main_wrap.paths.default_sram_dir)); + break; #ifdef HAVE_XML - case SETTING_PATH_CHEATS: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - menu_stack_push(PATH_CHEATS_DIR_CHOICE); - filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.filesystem_root_dir); - } + case SETTING_PATH_CHEATS: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + menu_stack_push(PATH_CHEATS_DIR_CHOICE); + filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.filesystem_root_dir); + } - if(input & (1 << RMENU_DEVICE_NAV_START)) - strlcpy(g_settings.cheat_database, default_paths.port_dir, sizeof(g_settings.cheat_database)); - break; + if(input & (1 << RMENU_DEVICE_NAV_START)) + strlcpy(g_settings.cheat_database, default_paths.port_dir, sizeof(g_settings.cheat_database)); + break; #endif - case SETTING_PATH_SYSTEM: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - menu_stack_push(PATH_SYSTEM_DIR_CHOICE); - filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.system_dir); - } + case SETTING_PATH_SYSTEM: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + menu_stack_push(PATH_SYSTEM_DIR_CHOICE); + filebrowser_set_root_and_ext(&tmpBrowser, "empty", default_paths.system_dir); + } - if(input & (1 << RMENU_DEVICE_NAV_START)) - strlcpy(g_settings.system_directory, default_paths.system_dir, sizeof(g_settings.system_directory)); - break; - case SETTING_ENABLE_SRAM_PATH: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT))) - g_console.default_sram_dir_enable = !g_console.default_sram_dir_enable; - if(input & (1 << RMENU_DEVICE_NAV_START)) - g_console.default_sram_dir_enable = true; - break; - case SETTING_ENABLE_STATE_PATH: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT))) - g_console.default_savestate_dir_enable = !g_console.default_savestate_dir_enable; - if(input & (1 << RMENU_DEVICE_NAV_START)) - g_console.default_savestate_dir_enable = true; - break; - case SETTING_PATH_DEFAULT_ALL: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_START))) - { - strlcpy(g_console.default_rom_startup_dir, "/", sizeof(g_console.default_rom_startup_dir)); - strlcpy(g_console.default_savestate_dir, default_paths.port_dir, sizeof(g_console.default_savestate_dir)); + if(input & (1 << RMENU_DEVICE_NAV_START)) + strlcpy(g_settings.system_directory, default_paths.system_dir, sizeof(g_settings.system_directory)); + break; + case SETTING_ENABLE_SRAM_PATH: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT))) + g_extern.console.main_wrap.state.default_sram_dir.enable = !g_extern.console.main_wrap.state.default_sram_dir.enable; + if(input & (1 << RMENU_DEVICE_NAV_START)) + g_extern.console.main_wrap.state.default_sram_dir.enable = true; + break; + case SETTING_ENABLE_STATE_PATH: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT))) + g_extern.console.main_wrap.state.default_savestate_dir.enable = !g_extern.console.main_wrap.state.default_savestate_dir.enable; + if(input & (1 << RMENU_DEVICE_NAV_START)) + g_extern.console.main_wrap.state.default_savestate_dir.enable = true; + break; + case SETTING_PATH_DEFAULT_ALL: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_START))) + { + strlcpy(g_extern.console.main_wrap.paths.default_rom_startup_dir, "/", sizeof(g_extern.console.main_wrap.paths.default_rom_startup_dir)); + strlcpy(g_extern.console.main_wrap.paths.default_savestate_dir, default_paths.port_dir, sizeof(g_extern.console.main_wrap.paths.default_savestate_dir)); #ifdef HAVE_XML - strlcpy(g_settings.cheat_database, default_paths.port_dir, sizeof(g_settings.cheat_database)); + strlcpy(g_settings.cheat_database, default_paths.port_dir, sizeof(g_settings.cheat_database)); #endif - strlcpy(g_console.default_sram_dir, "", sizeof(g_console.default_sram_dir)); - } - break; - case SETTING_CONTROLS_SCHEME: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_START))) - { - menu_stack_push(INPUT_PRESET_CHOICE); - filebrowser_set_root_and_ext(&tmpBrowser, EXT_INPUT_PRESETS, default_paths.input_presets_dir); - } - break; - case SETTING_CONTROLS_NUMBER: - if(input & (1 << RMENU_DEVICE_NAV_LEFT)) - { - if(currently_selected_controller_menu != 0) - currently_selected_controller_menu--; - } + strlcpy(g_extern.console.main_wrap.paths.default_sram_dir, "", sizeof(g_extern.console.main_wrap.paths.default_sram_dir)); + } + break; + case SETTING_CONTROLS_SCHEME: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_START))) + { + menu_stack_push(INPUT_PRESET_CHOICE); + filebrowser_set_root_and_ext(&tmpBrowser, EXT_INPUT_PRESETS, default_paths.input_presets_dir); + } + break; + case SETTING_CONTROLS_NUMBER: + if(input & (1 << RMENU_DEVICE_NAV_LEFT)) + { + if(currently_selected_controller_menu != 0) + currently_selected_controller_menu--; + } - if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - if (currently_selected_controller_menu < 6) - currently_selected_controller_menu++; - } + if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + if (currently_selected_controller_menu < 6) + currently_selected_controller_menu++; + } - if(input & (1 << RMENU_DEVICE_NAV_START)) - currently_selected_controller_menu = 0; - break; - case SETTING_DPAD_EMULATION: - if(input & (1 << RMENU_DEVICE_NAV_LEFT)) - { - switch(g_settings.input.dpad_emulation[currently_selected_controller_menu]) - { - case DPAD_EMULATION_NONE: - break; + if(input & (1 << RMENU_DEVICE_NAV_START)) + currently_selected_controller_menu = 0; + break; + case SETTING_DPAD_EMULATION: + if(input & (1 << RMENU_DEVICE_NAV_LEFT)) + { + switch(g_settings.input.dpad_emulation[currently_selected_controller_menu]) + { + case DPAD_EMULATION_NONE: + break; case DPAD_EMULATION_LSTICK: - input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_NONE, currently_selected_controller_menu); - break; + input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_NONE, currently_selected_controller_menu); + break; case DPAD_EMULATION_RSTICK: - input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu); - break; - } - } + input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu); + break; + } + } - if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) - { - switch(g_settings.input.dpad_emulation[currently_selected_controller_menu]) - { - case DPAD_EMULATION_NONE: - input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu); - break; + if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + switch(g_settings.input.dpad_emulation[currently_selected_controller_menu]) + { + case DPAD_EMULATION_NONE: + input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu); + break; case DPAD_EMULATION_LSTICK: - input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_RSTICK, currently_selected_controller_menu); - break; + input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_RSTICK, currently_selected_controller_menu); + break; case DPAD_EMULATION_RSTICK: - break; - } - } + break; + } + } - if(input & (1 << RMENU_DEVICE_NAV_START)) - input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_UP: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_UP, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_DOWN: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_DOWN, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_LEFT: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_LEFT, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_RIGHT: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_RIGHT, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_A: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_A, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_B: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_B, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_X: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_X, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_Y: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_Y, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_SELECT: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_SELECT, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_START: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_START, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_L, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_R, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L2: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_L2, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R2: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_R2, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L3: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_L3, input); - break; - case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R3: - set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_R3, input); - break; + if(input & (1 << RMENU_DEVICE_NAV_START)) + input_ptr.set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_UP: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_UP, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_DOWN: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_DOWN, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_LEFT: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_LEFT, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_RIGHT: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_RIGHT, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_A: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_A, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_B: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_B, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_X: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_X, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_Y: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_Y, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_SELECT: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_SELECT, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_START: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_START, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_L, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_R, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L2: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_L2, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R2: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_R2, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L3: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_L3, input); + break; + case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R3: + set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_R3, input); + break; #ifdef __CELLOS_LV2__ - case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_START))) - rarch_filename_input_and_save(INPUT_PRESET_FILE); - break; + case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_START))) + rarch_filename_input_and_save(INPUT_PRESET_FILE); + break; #endif - case SETTING_CONTROLS_DEFAULT_ALL: - if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_START))) - rarch_input_set_default_keybinds(currently_selected_controller_menu); - break; + case SETTING_CONTROLS_DEFAULT_ALL: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_START))) + rarch_input_set_default_keybinds(currently_selected_controller_menu); + break; } } @@ -1700,7 +1693,7 @@ static void menu_romselect_iterate(filebrowser_t *filebrowser, menu_romselect_ac if(filebrowser_get_current_path_isdir(filebrowser)) ret = filebrowser_iterate(filebrowser, FILEBROWSER_ACTION_OK); else - rarch_console_load_game_wrap(filebrowser_get_current_path(filebrowser), g_extern.filebrowser_state.zip_extract_mode, S_DELAY_45); + rarch_console_load_game_wrap(filebrowser_get_current_path(filebrowser), g_extern.file_state.zip_extract_mode, S_DELAY_45); break; case MENU_ROMSELECT_ACTION_GOTO_SETTINGS: menu_stack_push(GENERAL_VIDEO_MENU); @@ -1768,75 +1761,75 @@ static void ingame_menu_resize(menu *current_menu, uint64_t input) rmenu_default_positions_t default_pos; context->set_default_pos(&default_pos); - g_console.aspect_ratio_index = ASPECT_RATIO_CUSTOM; - context->set_aspect_ratio(g_console.aspect_ratio_index); + g_settings.video.aspect_ratio_idx = ASPECT_RATIO_CUSTOM; + context->set_aspect_ratio(g_settings.video.aspect_ratio_idx); if(input & (1 << RMENU_DEVICE_NAV_LEFT_ANALOG_L)) { #ifdef _XBOX - if(g_console.viewports.custom_vp.x >= 4) + if(g_extern.console.screen.viewports.custom_vp.x >= 4) #endif - g_console.viewports.custom_vp.x -= 4; + g_extern.console.screen.viewports.custom_vp.x -= 4; } else if(input & (1 << RMENU_DEVICE_NAV_LEFT) && (input & ~(1 << RMENU_DEVICE_NAV_LEFT_ANALOG_L))) { #ifdef _XBOX - if(g_console.viewports.custom_vp.x > 0) + if(g_extern.console.screen.viewports.custom_vp.x > 0) #endif - g_console.viewports.custom_vp.x -= 1; + g_extern.console.screen.viewports.custom_vp.x -= 1; } if(input & (1 << RMENU_DEVICE_NAV_RIGHT_ANALOG_L)) - g_console.viewports.custom_vp.x += 4; + g_extern.console.screen.viewports.custom_vp.x += 4; else if(input & (1 << RMENU_DEVICE_NAV_RIGHT) && (input & ~(1 << RMENU_DEVICE_NAV_RIGHT_ANALOG_L))) - g_console.viewports.custom_vp.x += 1; + g_extern.console.screen.viewports.custom_vp.x += 1; if(input & (1 << RMENU_DEVICE_NAV_UP_ANALOG_L)) - g_console.viewports.custom_vp.y += 4; + g_extern.console.screen.viewports.custom_vp.y += 4; else if(input & (1 << RMENU_DEVICE_NAV_UP) && (input & ~(1 << RMENU_DEVICE_NAV_UP_ANALOG_L))) - g_console.viewports.custom_vp.y += 1; + g_extern.console.screen.viewports.custom_vp.y += 1; if(input & (1 << RMENU_DEVICE_NAV_DOWN_ANALOG_L)) { #ifdef _XBOX - if(g_console.viewports.custom_vp.y >= 4) + if(g_extern.console.screen.viewports.custom_vp.y >= 4) #endif - g_console.viewports.custom_vp.y -= 4; + g_extern.console.screen.viewports.custom_vp.y -= 4; } else if(input & (1 << RMENU_DEVICE_NAV_DOWN) && (input & ~(1 << RMENU_DEVICE_NAV_DOWN_ANALOG_L))) { #ifdef _XBOX - if(g_console.viewports.custom_vp.y > 0) + if(g_extern.console.screen.viewports.custom_vp.y > 0) #endif - g_console.viewports.custom_vp.y -= 1; + g_extern.console.screen.viewports.custom_vp.y -= 1; } if(input & (1 << RMENU_DEVICE_NAV_LEFT_ANALOG_R)) - g_console.viewports.custom_vp.width -= 4; + g_extern.console.screen.viewports.custom_vp.width -= 4; else if(input & (1 << RMENU_DEVICE_NAV_L1) && (input && ~(1 << RMENU_DEVICE_NAV_LEFT_ANALOG_R))) - g_console.viewports.custom_vp.width -= 1; + g_extern.console.screen.viewports.custom_vp.width -= 1; if (input & (1 << RMENU_DEVICE_NAV_RIGHT_ANALOG_R)) - g_console.viewports.custom_vp.width += 4; + g_extern.console.screen.viewports.custom_vp.width += 4; else if(input & (1 << RMENU_DEVICE_NAV_R1) && (input & ~(1 << RMENU_DEVICE_NAV_RIGHT_ANALOG_R))) - g_console.viewports.custom_vp.width += 1; + g_extern.console.screen.viewports.custom_vp.width += 1; if(input & (1 << RMENU_DEVICE_NAV_UP_ANALOG_R)) - g_console.viewports.custom_vp.height += 4; + g_extern.console.screen.viewports.custom_vp.height += 4; else if(input & (1 << RMENU_DEVICE_NAV_L2) && (input & ~(1 << RMENU_DEVICE_NAV_UP_ANALOG_R))) - g_console.viewports.custom_vp.height += 1; + g_extern.console.screen.viewports.custom_vp.height += 1; if(input & (1 << RMENU_DEVICE_NAV_DOWN_ANALOG_R)) - g_console.viewports.custom_vp.height -= 4; + g_extern.console.screen.viewports.custom_vp.height -= 4; else if (input & (1 << RMENU_DEVICE_NAV_R2) && (input & ~(1 << RMENU_DEVICE_NAV_DOWN_ANALOG_R))) - g_console.viewports.custom_vp.height -= 1; + g_extern.console.screen.viewports.custom_vp.height -= 1; if (input & (1 << RMENU_DEVICE_NAV_X)) { - g_console.viewports.custom_vp.x = 0; - g_console.viewports.custom_vp.y = 0; - g_console.viewports.custom_vp.width = device_ptr->win_width; - g_console.viewports.custom_vp.height = device_ptr->win_height; + g_extern.console.screen.viewports.custom_vp.x = 0; + g_extern.console.screen.viewports.custom_vp.y = 0; + g_extern.console.screen.viewports.custom_vp.width = device_ptr->win_width; + g_extern.console.screen.viewports.custom_vp.height = device_ptr->win_height; } if (input & (1 << RMENU_DEVICE_NAV_A)) @@ -1856,10 +1849,10 @@ static void ingame_menu_resize(menu *current_menu, uint64_t input) char msg[256]; display_menubar(current_menu); - snprintf(viewport_x, sizeof(viewport_x), "Viewport X: #%d", g_console.viewports.custom_vp.x); - snprintf(viewport_y, sizeof(viewport_y), "Viewport Y: #%d", g_console.viewports.custom_vp.y); - snprintf(viewport_w, sizeof(viewport_w), "Viewport W: #%d", g_console.viewports.custom_vp.width); - snprintf(viewport_h, sizeof(viewport_h), "Viewport H: #%d", g_console.viewports.custom_vp.height); + snprintf(viewport_x, sizeof(viewport_x), "Viewport X: #%d", g_extern.console.screen.viewports.custom_vp.x); + snprintf(viewport_y, sizeof(viewport_y), "Viewport Y: #%d", g_extern.console.screen.viewports.custom_vp.y); + snprintf(viewport_w, sizeof(viewport_w), "Viewport W: #%d", g_extern.console.screen.viewports.custom_vp.width); + snprintf(viewport_h, sizeof(viewport_h), "Viewport H: #%d", g_extern.console.screen.viewports.custom_vp.height); context->render_msg(default_pos.x_position, default_pos.y_position, default_pos.font_size, GREEN, viewport_x); context->render_msg(default_pos.x_position, default_pos.y_position+(default_pos.y_position_increment*1), default_pos.font_size, GREEN, viewport_y); @@ -1922,7 +1915,7 @@ static void ingame_menu_screenshot(menu *current_menu, uint64_t input) { (void)current_menu; - if(g_extern.console.ingame_menu_enable) + if(g_extern.console.rmenu.state.ingame_menu.enable) { if(input & (1 << RMENU_DEVICE_NAV_A)) { @@ -1948,12 +1941,12 @@ static void ingame_menu(menu *current_menu, uint64_t input) for(int i = 0; i < MENU_ITEM_LAST; i++) menuitem_colors[i] = WHITE; - menuitem_colors[g_extern.console.ingame_menu_item] = RED; + menuitem_colors[g_extern.console.rmenu.ingame_menu.idx] = RED; if(input & (1 << RMENU_DEVICE_NAV_A)) rarch_settings_change(S_RETURN_TO_GAME); - switch(g_extern.console.ingame_menu_item) + switch(g_extern.console.rmenu.ingame_menu.idx) { case MENU_ITEM_LOAD_STATE: if(input & (1 << RMENU_DEVICE_NAV_B)) @@ -1994,19 +1987,19 @@ static void ingame_menu(menu *current_menu, uint64_t input) if(input & (1 << RMENU_DEVICE_NAV_LEFT)) { rarch_settings_change(S_ROTATION_DECREMENT); - video_ptr.set_rotation(NULL, g_console.screen_orientation); + video_ptr.set_rotation(NULL, g_extern.console.screen.orientation); } if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) { rarch_settings_change(S_ROTATION_INCREMENT); - video_ptr.set_rotation(NULL, g_console.screen_orientation); + video_ptr.set_rotation(NULL, g_extern.console.screen.orientation); } if(input & (1 << RMENU_DEVICE_NAV_START)) { rarch_settings_default(S_DEF_ROTATION); - video_ptr.set_rotation(NULL, g_console.screen_orientation); + video_ptr.set_rotation(NULL, g_extern.console.screen.orientation); } snprintf(comment, sizeof(comment), "Press [%s] to reset back to default values.", rarch_input_find_platform_key_label(1 << RETRO_DEVICE_ID_JOYPAD_START)); break; @@ -2019,8 +2012,8 @@ static void ingame_menu(menu *current_menu, uint64_t input) case MENU_ITEM_FRAME_ADVANCE: if((input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_R2)) || (input & (1 << RMENU_DEVICE_NAV_L2))) { - rarch_settings_change(S_FRAME_ADVANCE); - g_extern.console.ingame_menu_item = MENU_ITEM_FRAME_ADVANCE; + rarch_settings_change(S_FRAME_ADVANCE); + g_extern.console.rmenu.ingame_menu.idx = MENU_ITEM_FRAME_ADVANCE; } snprintf(comment, sizeof(comment), "Press [%s] to step one frame.", rarch_input_find_platform_key_label(1 << RETRO_DEVICE_ID_JOYPAD_B)); break; @@ -2069,8 +2062,8 @@ static void ingame_menu(menu *current_menu, uint64_t input) if(input & (1 << RMENU_DEVICE_NAV_B)) { RARCH_LOG("Boot Multiman: %s.\n", default_paths.multiman_self_file); - strlcpy(g_console.launch_app_on_exit, default_paths.multiman_self_file, - sizeof(g_console.launch_app_on_exit)); + strlcpy(g_extern.console.external_launch.launch_app, default_paths.multiman_self_file, + sizeof(g_extern.console.external_launch.launch_app)); rarch_settings_change(S_RETURN_TO_LAUNCHER); } snprintf(comment, sizeof(comment), "Press [%s] to quit RetroArch and return to multiMAN.", rarch_input_find_platform_key_label(1 << RETRO_DEVICE_ID_JOYPAD_B)); @@ -2086,18 +2079,18 @@ static void ingame_menu(menu *current_menu, uint64_t input) if(input & (1 << RMENU_DEVICE_NAV_UP)) { - if(g_extern.console.ingame_menu_item > 0) - g_extern.console.ingame_menu_item--; + if(g_extern.console.rmenu.ingame_menu.idx > 0) + g_extern.console.rmenu.ingame_menu.idx--; else - g_extern.console.ingame_menu_item = MENU_ITEM_LAST - 1; + g_extern.console.rmenu.ingame_menu.idx = MENU_ITEM_LAST - 1; } if(input & (1 << RMENU_DEVICE_NAV_DOWN)) { - if(g_extern.console.ingame_menu_item < (MENU_ITEM_LAST-1)) - g_extern.console.ingame_menu_item++; + if(g_extern.console.rmenu.ingame_menu.idx < (MENU_ITEM_LAST-1)) + g_extern.console.rmenu.ingame_menu.idx++; else - g_extern.console.ingame_menu_item = 0; + g_extern.console.rmenu.ingame_menu.idx = 0; } if((input & (1 << RMENU_DEVICE_NAV_L3)) && (input & (1 << RMENU_DEVICE_NAV_R3))) @@ -2114,7 +2107,7 @@ static void ingame_menu(menu *current_menu, uint64_t input) rarch_settings_create_menu_item_label(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); context->render_msg(default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_KEEP_ASPECT_RATIO)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_KEEP_ASPECT_RATIO), strw_buffer); - snprintf(strw_buffer, sizeof(strw_buffer), "Overscan: %f", g_console.overscan_amount); + snprintf(strw_buffer, sizeof(strw_buffer), "Overscan: %f", g_extern.console.screen.overscan_amount); context->render_msg(default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_OVERSCAN_AMOUNT)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_OVERSCAN_AMOUNT), strw_buffer); rarch_settings_create_menu_item_label(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); @@ -2149,7 +2142,7 @@ static void ingame_menu(menu *current_menu, uint64_t input) rmenu_position_t position = {0}; position.x = default_pos.x_position; - position.y = (default_pos.y_position+(default_pos.y_position_increment * g_extern.console.ingame_menu_item)); + position.y = (default_pos.y_position+(default_pos.y_position_increment * g_extern.console.rmenu.ingame_menu.idx)); context->render_selection_panel(&position); } @@ -2192,10 +2185,10 @@ void menu_loop(void) { DEVICE_CAST device_ptr = (DEVICE_CAST)driver.video_data; - g_extern.console.enable = true; + g_extern.console.rmenu.state.rmenu.enable = true; device_ptr->block_swap = true; - if(g_extern.console.ingame_menu_enable) + if(g_extern.console.rmenu.state.ingame_menu.enable) menu_stack_push(INGAME_MENU); context->init_textures(); @@ -2305,7 +2298,7 @@ void menu_loop(void) fb = &tmpBrowser; break; case INGAME_MENU: - if(g_extern.console.ingame_menu_enable) + if(g_extern.console.rmenu.state.ingame_menu.enable) ingame_menu(¤t_menu, trig_state); break; case INGAME_MENU_RESIZE: @@ -2332,37 +2325,37 @@ void menu_loop(void) if(IS_TIMER_EXPIRED(device_ptr)) { // if we want to force goto the emulation loop, skip this - if(g_extern.console.mode != MODE_EMULATION) + if(g_extern.console.rmenu.mode != MODE_EMULATION) { - if(g_extern.console.mode == MODE_EXIT) + if(g_extern.console.rmenu.mode == MODE_EXIT) { } // for ingame menu, we need a different precondition because menu_enable // can be set to false when going back from ingame menu to menu - else if(g_extern.console.ingame_menu_enable == true) + else if(g_extern.console.rmenu.state.ingame_menu.enable == true) { //we want to force exit when g_extern.console.mode is set to MODE_EXIT - if(g_extern.console.mode != MODE_EXIT) - g_extern.console.mode = (((old_state & (1 << RMENU_DEVICE_NAV_L3)) && (old_state & (1 << RMENU_DEVICE_NAV_R3)) && g_console.emulator_initialized)) ? MODE_EMULATION : MODE_MENU; + if(g_extern.console.rmenu.mode != MODE_EXIT) + g_extern.console.rmenu.mode = (((old_state & (1 << RMENU_DEVICE_NAV_L3)) && (old_state & (1 << RMENU_DEVICE_NAV_R3)) && g_extern.console.emulator_initialized)) ? MODE_EMULATION : MODE_MENU; } else { - g_extern.console.enable = !(((old_state & (1 << RMENU_DEVICE_NAV_L3)) && (old_state & (1 << RMENU_DEVICE_NAV_R3)) && g_console.emulator_initialized)); - g_extern.console.mode = g_extern.console.enable ? MODE_MENU : MODE_EMULATION; + g_extern.console.rmenu.state.rmenu.enable = !(((old_state & (1 << RMENU_DEVICE_NAV_L3)) && (old_state & (1 << RMENU_DEVICE_NAV_R3)) && g_extern.console.emulator_initialized)); + g_extern.console.rmenu.mode = g_extern.console.rmenu.state.rmenu.enable ? MODE_MENU : MODE_EMULATION; } } } // set a timer delay so that we don't instantly switch back to the menu when // press and holding L3 + R3 in the emulation loop (lasts for 30 frame ticks) - if(g_extern.console.mode == MODE_EMULATION && !g_extern.console.frame_advance_enable) + if(g_extern.console.rmenu.mode == MODE_EMULATION && !g_extern.console.screen.state.frame_advance.enable) { SET_TIMER_EXPIRATION(device_ptr, 30); } const char * message = msg_queue_pull(g_extern.msg_queue); - if (message && g_console.info_msg_enable) + if (message && g_extern.console.rmenu.state.msg_info.enable) { context->render_msg(default_pos.msg_queue_x_position, default_pos.msg_queue_y_position, default_pos.msg_queue_font_size, WHITE, message); } @@ -2373,14 +2366,14 @@ void menu_loop(void) { } else context->blend(false); - }while(g_extern.console.enable); + }while(g_extern.console.rmenu.state.rmenu.enable); context->free_textures(); - if(g_extern.console.ingame_menu_enable) + if(g_extern.console.rmenu.state.ingame_menu.enable) menu_stack_pop(); device_ptr->block_swap = false; - g_extern.console.ingame_menu_enable = false; + g_extern.console.rmenu.state.ingame_menu.enable = false; } diff --git a/general.h b/general.h index aa4121122e..0b28e2d2ed 100644 --- a/general.h +++ b/general.h @@ -92,15 +92,26 @@ struct settings bool crop_overscan; float aspect_ratio; bool aspect_ratio_auto; + unsigned aspect_ratio_idx; char cg_shader_path[PATH_MAX]; char bsnes_shader_path[PATH_MAX]; char filter_path[PATH_MAX]; enum rarch_shader_type shader_type; float refresh_rate; +#ifdef RARCH_CONSOLE + unsigned color_format; +#endif + bool render_to_texture; - float fbo_scale_x; - float fbo_scale_y; + + struct + { + float scale_x; + float scale_y; + bool enable; + } fbo; + char second_pass_shader[PATH_MAX]; bool second_pass_smooth; char shader_dir[PATH_MAX]; @@ -155,6 +166,7 @@ struct settings #ifdef RARCH_CONSOLE unsigned currently_selected_controller_no; unsigned dpad_emulation[MAX_PLAYERS]; + unsigned map_dpad_to_stick; unsigned device[MAX_PLAYERS]; #endif bool netplay_client_swap_input; @@ -188,73 +200,6 @@ struct settings bool stdin_cmd_enable; }; -// Settings and/or global state that is specific to a console-style implementation. -#ifdef RARCH_CONSOLE -typedef struct -{ - int x; - int y; - unsigned width; - unsigned height; -} rarch_viewport_t; - -struct console_settings -{ - bool custom_bgm_enable; - bool check_available_resolutions; - bool block_config_read; - bool default_sram_dir_enable; - bool default_savestate_dir_enable; - bool fbo_enabled; - bool fps_info_msg_enable; -#ifdef _XBOX1 - unsigned flicker_filter; - unsigned sound_volume_level; -#endif - bool soft_display_filter_enable; - bool initialize_rarch_enable; - bool info_msg_enable; - bool overscan_enable; - bool return_to_launcher; - bool screenshots_enable; - bool throttle_enable; - bool triple_buffering_enable; - float overscan_amount; - unsigned aspect_ratio_index; - struct - { - rarch_viewport_t custom_vp; - } viewports; - unsigned gamma_correction; - unsigned emulator_initialized; - unsigned external_launcher_support; - unsigned screen_orientation; - unsigned current_resolution_index; - unsigned current_resolution_id; - unsigned initial_resolution_id; - unsigned map_dpad_to_stick; - unsigned sound_mode; - uint32_t *supported_resolutions; - unsigned supported_resolutions_count; - unsigned control_timer_expiration_frame_count; - unsigned timer_expiration_frame_count; - unsigned input_loop; -#ifdef _XBOX - unsigned color_format; - DWORD volume_device_type; -#endif - char cgp_path[PATH_MAX]; - char input_cfg_path[PATH_MAX]; - char default_rom_startup_dir[PATH_MAX]; - char default_savestate_dir[PATH_MAX]; - char default_sram_dir[PATH_MAX]; - char launch_app_on_exit[PATH_MAX]; -#ifdef HAVE_OSKUTIL - oskutil_params oskutil_handle; -#endif -}; -#endif - enum rarch_game_type { RARCH_CART_NORMAL = 0, @@ -264,6 +209,34 @@ enum rarch_game_type RARCH_CART_SUFAMI }; +typedef struct +{ + bool enable; + unsigned value; +} rarch_boolean_state_t; + +typedef struct +{ + bool is_expired; + unsigned expire_frame; + unsigned current; +} rarch_frame_count_t; + +typedef struct +{ + unsigned idx; + unsigned id; +} rarch_resolution_t; + + +typedef struct +{ + int x; + int y; + unsigned width; + unsigned height; +} rarch_viewport_t; + // All run-time- / command line flag-related globals go here. struct global { @@ -465,26 +438,128 @@ struct global char sha256[64 + 1]; - /* FIXME: too much hassle ifndeffing this now for HAVE_RMENU */ + // Settings and/or global state that is specific to a console-style implementation. + struct { - bool menus_hd_enable; - bool frame_advance_enable; - bool ingame_menu_enable; - bool enable; - unsigned ingame_menu_item; - unsigned mode; - float font_size; + bool block_config_read; + bool initialize_rarch_enable; + unsigned emulator_initialized; + + struct + { + struct + { + unsigned idx; + } ingame_menu; + + + unsigned mode; + unsigned input_loop; + float font_size; + + struct + { + rarch_boolean_state_t msg_fps; + rarch_boolean_state_t msg_info; + rarch_boolean_state_t ingame_menu; + rarch_boolean_state_t rmenu; + rarch_boolean_state_t rmenu_hd; + } state; + } rmenu; + + struct + { + rarch_frame_count_t control_timer; + rarch_frame_count_t general_timer; + } timers; + + struct + { + bool enable; + char launch_app[PATH_MAX]; + unsigned support; + } external_launch; + + struct + { + struct + { + rarch_resolution_t current; + rarch_resolution_t initial; + uint32_t *list; + unsigned count; + bool check; + } resolutions; + + + struct + { + rarch_viewport_t custom_vp; + } viewports; + + unsigned orientation; + float overscan_amount; + unsigned gamma_correction; + + struct + { + rarch_boolean_state_t frame_advance; + rarch_boolean_state_t triple_buffering; + rarch_boolean_state_t overscan; + rarch_boolean_state_t flicker_filter; + rarch_boolean_state_t soft_filter; + rarch_boolean_state_t screenshots; + rarch_boolean_state_t throttle; + } state; + } screen; + + struct + { + rarch_boolean_state_t custom_bgm; + unsigned mode; +#ifdef _XBOX1 + unsigned volume_level; +#endif + } sound; + + struct + { + struct + { + char default_rom_startup_dir[PATH_MAX]; + char default_savestate_dir[PATH_MAX]; + char default_sram_dir[PATH_MAX]; + } paths; + + struct + { + rarch_boolean_state_t default_sram_dir; + rarch_boolean_state_t default_savestate_dir; + } state; + } main_wrap; + +#ifdef HAVE_OSKUTIL + struct + { + oskutil_params oskutil_handle; + } misc; +#endif } console; struct { char rom_path[PATH_MAX]; + char cgp_path[PATH_MAX]; + char input_cfg_path[PATH_MAX]; #ifdef HAVE_ZLIB unsigned zip_extract_mode; #endif - } filebrowser_state; +#ifdef _XBOX + DWORD volume_device_type; +#endif + } file_state; #ifdef HAVE_XML cheat_manager_t *cheat; @@ -527,9 +602,6 @@ void rarch_state_slot_decrease(void); // Public data structures extern struct settings g_settings; extern struct global g_extern; -#ifdef RARCH_CONSOLE -extern struct console_settings g_console; -#endif ///////// #include "retroarch_logger.h" diff --git a/gfx/context/ps3_ctx.c b/gfx/context/ps3_ctx.c index 40796849b3..a96355da90 100644 --- a/gfx/context/ps3_ctx.c +++ b/gfx/context/ps3_ctx.c @@ -84,7 +84,7 @@ static void gfx_ctx_get_available_resolutions (void) uint32_t resolution_count; uint16_t num_videomodes; - if (g_console.check_available_resolutions) + if (g_extern.console.screen.resolutions.check) return; defaultresolution = true; @@ -109,30 +109,30 @@ static void gfx_ctx_get_available_resolutions (void) resolution_count++; } - g_console.supported_resolutions = malloc(resolution_count * sizeof(uint32_t)); - g_console.supported_resolutions_count = 0; + g_extern.console.screen.resolutions.list = malloc(resolution_count * sizeof(uint32_t)); + g_extern.console.screen.resolutions.count = 0; for (unsigned i = 0; i < num_videomodes; i++) { if(gfx_ctx_check_resolution(videomode[i])) { - g_console.supported_resolutions[g_console.supported_resolutions_count++] = videomode[i]; - g_console.initial_resolution_id = videomode[i]; + g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.count++] = videomode[i]; + g_extern.console.screen.resolutions.initial.id = videomode[i]; - if (g_console.current_resolution_id == videomode[i]) + if (g_extern.console.screen.resolutions.current.id == videomode[i]) { defaultresolution = false; - g_console.current_resolution_index = g_console.supported_resolutions_count-1; + g_extern.console.screen.resolutions.current.idx = g_extern.console.screen.resolutions.count-1; } } } /* In case we didn't specify a resolution - make the last resolution that was added to the list (the highest resolution) the default resolution */ - if (g_console.current_resolution_id > num_videomodes || defaultresolution) - g_console.current_resolution_index = g_console.supported_resolutions_count - 1; + if (g_extern.console.screen.resolutions.current.id > num_videomodes || defaultresolution) + g_extern.console.screen.resolutions.current.idx = g_extern.console.screen.resolutions.count - 1; - g_console.check_available_resolutions = true; + g_extern.console.screen.resolutions.check = true; } static void gfx_ctx_set_swap_interval(unsigned interval) @@ -265,17 +265,17 @@ static bool gfx_ctx_init(void) params.depthFormat = GL_NONE; params.multisamplingMode = GL_MULTISAMPLING_NONE_SCE; - if (g_console.triple_buffering_enable) + if (g_extern.console.screen.state.triple_buffering.enable) { params.enable |= PSGL_DEVICE_PARAMETERS_BUFFERING_MODE; params.bufferingMode = PSGL_BUFFERING_MODE_TRIPLE; } - if (g_console.current_resolution_id) + if (g_extern.console.screen.resolutions.current.id) { params.enable |= PSGL_DEVICE_PARAMETERS_WIDTH_HEIGHT; - params.width = gfx_ctx_get_resolution_width(g_console.current_resolution_id); - params.height = gfx_ctx_get_resolution_height(g_console.current_resolution_id); + params.width = gfx_ctx_get_resolution_width(g_extern.console.screen.resolutions.current.id); + params.height = gfx_ctx_get_resolution_height(g_extern.console.screen.resolutions.current.id); } gl_device = psglCreateDeviceExtended(¶ms); diff --git a/gfx/context/xdk_ctx.c b/gfx/context/xdk_ctx.c index 12857a2bdc..1cc50b7b59 100644 --- a/gfx/context/xdk_ctx.c +++ b/gfx/context/xdk_ctx.c @@ -94,8 +94,8 @@ static void gfx_ctx_xdk_clear(void) { xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data; #ifdef _XBOX1 - unsigned flicker_filter = g_console.flicker_filter; - bool soft_filter_enable = g_console.soft_display_filter_enable; + unsigned flicker_filter = g_extern.console.screen.state.flicker_filter.value; + bool soft_filter_enable = g_extern.console.screen.state.soft_filter.enable; #endif device_ptr->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET, @@ -213,7 +213,7 @@ static bool gfx_ctx_xdk_init(void) // Safe mode d3d->d3dpp.BackBufferWidth = 640; d3d->d3dpp.BackBufferHeight = 480; - g_console.menus_hd_enable = false; + g_extern.console.rmenu.state.menus_hd.enable = false; // Only valid in PAL mode, not valid for HDTV modes! if(XGetVideoStandard() == XC_VIDEO_STANDARD_PAL_I) @@ -252,25 +252,25 @@ static bool gfx_ctx_xdk_init(void) { if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_480p) { - g_console.menus_hd_enable = false; + g_extern.console.rmenu.state.menus_hd.enable = false; d3d->d3dpp.BackBufferWidth = 640; d3d->d3dpp.BackBufferHeight = 480; d3d->d3dpp.Flags = D3DPRESENTFLAG_PROGRESSIVE; } - else if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_720p) - { - g_console.menus_hd_enable = true; - d3d->d3dpp.BackBufferWidth = 1280; - d3d->d3dpp.BackBufferHeight = 720; - d3d->d3dpp.Flags = D3DPRESENTFLAG_PROGRESSIVE; - } - else if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_1080i) - { - g_console.menus_hd_enable = true; - d3d->d3dpp.BackBufferWidth = 1920; - d3d->d3dpp.BackBufferHeight = 1080; - d3d->d3dpp.Flags = D3DPRESENTFLAG_INTERLACED; - } + else if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_720p) + { + g_extern.console.rmenu.state.menus_hd.enable = true; + d3d->d3dpp.BackBufferWidth = 1280; + d3d->d3dpp.BackBufferHeight = 720; + d3d->d3dpp.Flags = D3DPRESENTFLAG_PROGRESSIVE; + } + else if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_1080i) + { + g_extern.console.rmenu.state.menus_hd.enable = true; + d3d->d3dpp.BackBufferWidth = 1920; + d3d->d3dpp.BackBufferHeight = 1080; + d3d->d3dpp.Flags = D3DPRESENTFLAG_INTERLACED; + } } d3d->win_width = d3d->d3dpp.BackBufferWidth; @@ -345,19 +345,19 @@ static bool gfx_ctx_xdk_init(void) if(!d3d->video_mode.fIsWideScreen) d3d->d3dpp.Flags |= D3DPRESENTFLAG_NO_LETTERBOX; - g_console.menus_hd_enable = d3d->video_mode.fIsHiDef; + g_extern.console.rmenu.state.menus_hd.enable = d3d->video_mode.fIsHiDef; d3d->d3dpp.BackBufferWidth = d3d->video_mode.fIsHiDef ? 1280 : 640; d3d->d3dpp.BackBufferHeight = d3d->video_mode.fIsHiDef ? 720 : 480; - if(g_console.gamma_correction) + if(g_extern.console.screen.gamma_correction) { - d3d->d3dpp.BackBufferFormat = g_console.color_format ? (D3DFORMAT)MAKESRGBFMT(D3DFMT_A8R8G8B8) : (D3DFORMAT)MAKESRGBFMT(D3DFMT_LIN_A1R5G5B5); + d3d->d3dpp.BackBufferFormat = g_settings.video.color_format ? (D3DFORMAT)MAKESRGBFMT(D3DFMT_A8R8G8B8) : (D3DFORMAT)MAKESRGBFMT(D3DFMT_LIN_A1R5G5B5); d3d->d3dpp.FrontBufferFormat = (D3DFORMAT)MAKESRGBFMT(D3DFMT_LE_X8R8G8B8); } else { - d3d->d3dpp.BackBufferFormat = g_console.color_format ? D3DFMT_A8R8G8B8 : D3DFMT_LIN_A1R5G5B5; + d3d->d3dpp.BackBufferFormat = g_settings.video.color_format ? D3DFMT_A8R8G8B8 : D3DFMT_LIN_A1R5G5B5; d3d->d3dpp.FrontBufferFormat = D3DFMT_LE_X8R8G8B8; } d3d->d3dpp.MultiSampleQuality = 0; @@ -422,11 +422,11 @@ static bool gfx_ctx_xdk_init(void) vp.MaxZ = 1.0f; d3d->d3d_render_device->SetViewport(&vp); - if(g_console.viewports.custom_vp.width == 0) - g_console.viewports.custom_vp.width = vp.Width; + if(g_extern.console.screen.viewports.custom_vp.width == 0) + g_extern.console.screen.viewports.custom_vp.width = vp.Width; - if(g_console.viewports.custom_vp.height == 0) - g_console.viewports.custom_vp.height = vp.Height; + if(g_extern.console.screen.viewports.custom_vp.height == 0) + g_extern.console.screen.viewports.custom_vp.height = vp.Height; return true; } diff --git a/gfx/gl.c b/gfx/gl.c index 338280eb32..8041e37b07 100644 --- a/gfx/gl.c +++ b/gfx/gl.c @@ -531,8 +531,8 @@ void gl_init_fbo(gl_t *gl, unsigned width, unsigned height) if (!scale.valid) { - scale.scale_x = g_settings.video.fbo_scale_x; - scale.scale_y = g_settings.video.fbo_scale_y; + scale.scale_x = g_settings.video.fbo.scale_x; + scale.scale_y = g_settings.video.fbo.scale_y; scale.type_x = scale.type_y = RARCH_SCALE_INPUT; scale.valid = true; } @@ -576,11 +576,11 @@ void gl_init_fbo(gl_t *gl, unsigned width, unsigned height) void gl_set_projection(gl_t *gl, struct gl_ortho *ortho, bool allow_rotate) { #ifdef RARCH_CONSOLE - if (g_console.overscan_enable) + if (g_extern.console.screen.state.overscan.enable) { - ortho->left = -g_console.overscan_amount / 2; - ortho->right = 1 + g_console.overscan_amount / 2; - ortho->bottom = -g_console.overscan_amount / 2; + ortho->left = -g_extern.console.screen.overscan_amount / 2; + ortho->right = 1 + g_extern.console.screen.overscan_amount / 2; + ortho->bottom = -g_extern.console.screen.overscan_amount / 2; } #endif @@ -618,12 +618,12 @@ void gl_set_viewport(gl_t *gl, unsigned width, unsigned height, bool force_full, float delta; #ifdef RARCH_CONSOLE - if (g_console.aspect_ratio_index == ASPECT_RATIO_CUSTOM) + if (g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CUSTOM) { - x = g_console.viewports.custom_vp.x; - y = g_console.viewports.custom_vp.y; - width = g_console.viewports.custom_vp.width; - height = g_console.viewports.custom_vp.height; + x = g_extern.console.screen.viewports.custom_vp.x; + y = g_extern.console.screen.viewports.custom_vp.y; + width = g_extern.console.screen.viewports.custom_vp.width; + height = g_extern.console.screen.viewports.custom_vp.height; } else #endif @@ -1487,16 +1487,16 @@ static void gl_start(void) video_info.smooth = g_settings.video.smooth; video_info.input_scale = 2; video_info.fullscreen = true; - if (g_console.aspect_ratio_index == ASPECT_RATIO_CUSTOM) + if (g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CUSTOM) { - video_info.width = g_console.viewports.custom_vp.width; - video_info.height = g_console.viewports.custom_vp.height; + video_info.width = g_extern.console.screen.viewports.custom_vp.width; + video_info.height = g_extern.console.screen.viewports.custom_vp.height; } driver.video_data = gl_init(&video_info, NULL, NULL); gl_t *gl = (gl_t*)driver.video_data; - gl->ctx_driver->set_fbo(g_console.fbo_enabled); + gl->ctx_driver->set_fbo(g_settings.video.fbo.enable); gl->ctx_driver->get_available_resolutions(); if (gl->ctx_driver->menu_init) gl->ctx_driver->menu_init(); @@ -1504,7 +1504,7 @@ static void gl_start(void) #ifdef HAVE_FBO // FBO mode has to be enabled once even if FBO mode has to be // turned off - if (!g_console.fbo_enabled) + if (!g_settings.video.fbo.enable) { gl->ctx_driver->apply_fbo_state_changes(FBO_DEINIT); gl->ctx_driver->apply_fbo_state_changes(FBO_INIT); @@ -1563,12 +1563,12 @@ static void gl_set_aspect_ratio(void *data, unsigned aspectratio_index) (void)data; gl_t *gl = driver.video_data; - if (g_console.aspect_ratio_index == ASPECT_RATIO_AUTO) + if (g_settings.video.aspect_ratio_idx == ASPECT_RATIO_AUTO) rarch_set_auto_viewport(g_extern.frame_cache.width, g_extern.frame_cache.height); - else if(g_console.aspect_ratio_index == ASPECT_RATIO_CORE) + else if(g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CORE) rarch_set_core_viewport(); - g_settings.video.aspect_ratio = aspectratio_lut[g_console.aspect_ratio_index].value; + g_settings.video.aspect_ratio = aspectratio_lut[g_settings.video.aspect_ratio_idx].value; g_settings.video.force_aspect = false; gl->keep_aspect = true; gl->should_resize = true; diff --git a/gx/frontend/main.c b/gx/frontend/main.c index f17fdd5dad..6a25618de2 100644 --- a/gx/frontend/main.c +++ b/gx/frontend/main.c @@ -284,7 +284,7 @@ static void menu_loop(void) bool first_held = false; bool initial_held = true; - g_extern.console.enable = true; + g_extern.console.rmenu.state.rmenu.enable = true; gx->menu_render = true; do @@ -363,34 +363,34 @@ static void menu_loop(void) if(IS_TIMER_EXPIRED(gx)) { // if we want to force goto the emulation loop, skip this - if(g_extern.console.mode != MODE_EMULATION) + if(g_extern.console.rmenu.mode != MODE_EMULATION) { if(goto_menu_key_pressed) { - g_extern.console.enable = (goto_menu_key_pressed && g_console.emulator_initialized) ? false : true; - g_extern.console.mode = g_extern.console.enable ? MODE_MENU : MODE_EMULATION; + g_extern.console.rmenu.state.rmenu.enable = (goto_menu_key_pressed && g_extern.console.emulator_initialized) ? false : true; + g_extern.console.rmenu.mode = g_extern.console.rmenu.state.rmenu.enable ? MODE_MENU : MODE_EMULATION; } } } if(quit_key_pressed) { - g_extern.console.enable = false; - g_extern.console.mode = MODE_EXIT; + g_extern.console.rmenu.state.rmenu.enable = false; + g_extern.console.rmenu.mode = MODE_EXIT; } // set a timer delay so that we don't instantly switch back to the menu when // press and holding QUIT in the emulation loop (lasts for 30 frame ticks) - if(g_extern.console.mode == MODE_EMULATION) + if(g_extern.console.rmenu.mode == MODE_EMULATION) { SET_TIMER_EXPIRATION(gx, 30); } - }while(g_extern.console.enable); + }while(g_extern.console.rmenu.state.rmenu.enable); gx->menu_render = false; - g_extern.console.ingame_menu_enable = false; + g_extern.console.rmenu.state.ingame_menu.enable = false; } static void menu_init(void) @@ -399,7 +399,7 @@ static void menu_init(void) menu_framebuf, RGUI_WIDTH * sizeof(uint16_t), NULL /* _binary_console_font_bmp_start */, _binary_console_font_bin_start, folder_cb, NULL); - g_extern.console.mode = MODE_MENU; + g_extern.console.rmenu.mode = MODE_MENU; rgui_iterate(rgui, RGUI_ACTION_REFRESH); } @@ -548,10 +548,10 @@ int main(int argc, char *argv[]) if (argc > 2 && argv[1] != NULL && argv[2] != NULL) { char rom[PATH_MAX]; - g_console.external_launcher_support = EXTERN_LAUNCHER_CHANNEL; + g_extern.console.external_launch.support = EXTERN_LAUNCHER_CHANNEL; snprintf(rom, sizeof(rom), "%s%s", argv[1], argv[2]); - g_extern.filebrowser_state.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE; - rarch_console_load_game_wrap(rom, g_extern.filebrowser_state.zip_extract_mode, S_DELAY_1); + g_extern.file_state.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE; + rarch_console_load_game_wrap(rom, g_extern.file_state.zip_extract_mode, S_DELAY_1); rgui_iterate(rgui, RGUI_ACTION_MESSAGE); gx->menu_render = true; @@ -561,30 +561,30 @@ int main(int argc, char *argv[]) rarch_startup(default_paths.config_file); } else - g_console.external_launcher_support = EXTERN_LAUNCHER_SALAMANDER; + g_extern.console.external_launch.support = EXTERN_LAUNCHER_SALAMANDER; begin_loop: - if(g_extern.console.mode == MODE_EMULATION) + if(g_extern.console.rmenu.mode == MODE_EMULATION) { bool repeat = false; input_gx.poll(NULL); - video_set_aspect_ratio_func(g_console.aspect_ratio_index); + video_set_aspect_ratio_func(g_settings.video.aspect_ratio_idx); audio_start_func(); do{ repeat = rarch_main_iterate(); - }while(repeat && !g_extern.console.frame_advance_enable); + }while(repeat && !g_extern.console.screen.state.frame_advance.enable); audio_stop_func(); } - else if(g_extern.console.mode == MODE_MENU) + else if(g_extern.console.rmenu.mode == MODE_MENU) { menu_loop(); - if (g_extern.console.mode != MODE_EXIT) + if (g_extern.console.rmenu.mode != MODE_EXIT) rarch_startup(default_paths.config_file); } else @@ -595,7 +595,7 @@ begin_shutdown: rarch_config_save(default_paths.config_file); config_save_keybinds(input_path); - if(g_console.emulator_initialized) + if(g_extern.console.emulator_initialized) rarch_main_deinit(); input_gx.free(NULL); @@ -609,8 +609,8 @@ begin_shutdown: fclose(log_fp); #endif - if(g_console.return_to_launcher) - rarch_console_exec(g_console.launch_app_on_exit); + if(g_extern.console.external_launch.enable) + rarch_console_exec(g_extern.console.external_launch.launch_app); exit(0); } diff --git a/gx/gx_input.c b/gx/gx_input.c index f4cafe545c..0b02bcd83c 100644 --- a/gx/gx_input.c +++ b/gx/gx_input.c @@ -472,19 +472,19 @@ static bool gx_key_pressed(void *data, int key) ); uint64_t quit_rarch = pad_state[0] & GX_QUIT_KEY; bool retval = false; - g_console.menu_enable = ((quit_rarch || goto_menu_pressed) && IS_TIMER_EXPIRED(gx)); + g_extern.console.rmenu.state.rmenu.enable = ((quit_rarch || goto_menu_pressed) && IS_TIMER_EXPIRED(gx)); - if(g_console.menu_enable) + if(g_extern.console.rmenu.state.rmenu.enable) { - g_console.mode_switch = MODE_MENU; - g_console.ingame_menu_enable = true; + g_extern.console.rmenu.mode = MODE_MENU; + g_extern.console.rmenu.state.ingame_menu.enable = true; SET_TIMER_EXPIRATION(gx, 30); } if(quit_rarch) - g_console.mode_switch = MODE_EXIT; + g_extern.console.rmenu.mode = MODE_EXIT; - retval = g_console.menu_enable; + retval = g_extern.console.rmenu.state.rmenu.enable; return retval; } default: diff --git a/gx/gx_video.c b/gx/gx_video.c index 0ea658b83a..6fe6796190 100644 --- a/gx/gx_video.c +++ b/gx/gx_video.c @@ -251,12 +251,12 @@ void gx_set_aspect_ratio(void *data, unsigned aspectratio_idx) { gx_video_t *gx = (gx_video_t*)driver.video_data; - if (g_console.aspect_ratio_index == ASPECT_RATIO_AUTO) + if (g_settings.video.aspect_ratio_idx == ASPECT_RATIO_AUTO) rarch_set_auto_viewport(g_extern.frame_cache.width, g_extern.frame_cache.height); - else if(g_console.aspect_ratio_index == ASPECT_RATIO_CORE) + else if(g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CORE) rarch_set_core_viewport(); - g_settings.video.aspect_ratio = aspectratio_lut[g_console.aspect_ratio_index].value; + g_settings.video.aspect_ratio = aspectratio_lut[g_settings.video.aspect_ratio_idx].value; g_settings.video.force_aspect = false; gx->keep_aspect = true; gx->should_resize = true; @@ -603,9 +603,9 @@ static void gx_resize(gx_video_t *gx) unsigned width = gx->win_width, height = gx->win_height; #ifdef HW_RVL - VIDEO_SetTrapFilter(g_console.soft_display_filter_enable); + VIDEO_SetTrapFilter(g_extern.console.screen.state.soft_filter.enable); #endif - GX_SetDispCopyGamma(g_console.gamma_correction); + GX_SetDispCopyGamma(g_extern.console.screen.gamma_correction); if (gx->keep_aspect && gx_mode.efbHeight >= 480) // ingore this for custom resolutions { @@ -622,20 +622,20 @@ static void gx_resize(gx_video_t *gx) float delta; #ifdef RARCH_CONSOLE - if (g_console.aspect_ratio_index == ASPECT_RATIO_CUSTOM) + if (g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CUSTOM) { - if (!g_console.viewports.custom_vp.width || !g_console.viewports.custom_vp.height) + if (!g_extern.console.screen.viewports.custom_vp.width || !g_extern.console.screen.viewports.custom_vp.height) { - g_console.viewports.custom_vp.x = 0; - g_console.viewports.custom_vp.y = 0; - g_console.viewports.custom_vp.width = gx->win_width; - g_console.viewports.custom_vp.height = gx->win_height; + g_extern.console.screen.viewports.custom_vp.x = 0; + g_extern.console.screen.viewports.custom_vp.y = 0; + g_extern.console.screen.viewports.custom_vp.width = gx->win_width; + g_extern.console.screen.viewports.custom_vp.height = gx->win_height; } - x = g_console.viewports.custom_vp.x; - y = g_console.viewports.custom_vp.y; - width = g_console.viewports.custom_vp.width; - height = g_console.viewports.custom_vp.height; + x = g_extern.console.screen.viewports.custom_vp.x; + y = g_extern.console.screen.viewports.custom_vp.y; + width = g_extern.console.screen.viewports.custom_vp.width; + height = g_extern.console.screen.viewports.custom_vp.height; } else #endif @@ -664,12 +664,12 @@ static void gx_resize(gx_video_t *gx) Mtx44 m1, m2; float top = 1, bottom = -1, left = -1, right = 1; - if (g_console.overscan_enable) + if (g_extern.console.screen.state.overscan.enable) { - top -= g_console.overscan_amount / 2; - left += g_console.overscan_amount / 2; - right -= g_console.overscan_amount / 2; - bottom += g_console.overscan_amount / 2; + top -= g_extern.console.screen.overscan_amount / 2; + left += g_extern.console.screen.overscan_amount / 2; + right -= g_extern.console.screen.overscan_amount / 2; + bottom += g_extern.console.screen.overscan_amount / 2; } guOrtho(m1, top, bottom, left, right, 0, 1); unsigned degrees; @@ -839,7 +839,7 @@ static bool gx_frame(void *data, const void *frame, GX_DrawDone(); } - if (g_console.fps_info_msg_enable) + if (g_extern.console.rmenu.state.msg_fps.enable) { static char fps_txt[128]; char mem1_txt[128]; diff --git a/ps3/frontend/main.c b/ps3/frontend/main.c index 8672e71652..9a4a814d8c 100644 --- a/ps3/frontend/main.c +++ b/ps3/frontend/main.c @@ -70,7 +70,7 @@ static void callback_sysutil_exit(uint64_t status, uint64_t param, void *userdat (void) param; (void) userdata; #ifdef HAVE_OSKUTIL - oskutil_params *osk = &g_console.oskutil_handle; + oskutil_params *osk = &g_extern.console.misc.oskutil_handle; #endif gl_t *gl = driver.video_data; @@ -138,13 +138,13 @@ static void get_environment_settings(int argc, char *argv[]) if(path_file_exists(default_paths.multiman_self_file) && argc > 1 && path_file_exists(argv[1])) { - g_console.external_launcher_support = EXTERN_LAUNCHER_MULTIMAN; + g_extern.console.external_launch.support = EXTERN_LAUNCHER_MULTIMAN; RARCH_LOG("Started from multiMAN, auto-game start enabled.\n"); } else #endif { - g_console.external_launcher_support = EXTERN_LAUNCHER_SALAMANDER; + g_extern.console.external_launch.support = EXTERN_LAUNCHER_SALAMANDER; RARCH_WARN("Not started from multiMAN, auto-game start disabled.\n"); } @@ -177,7 +177,7 @@ static void get_environment_settings(int argc, char *argv[]) ret = cellGameContentPermit(contentInfoPath, default_paths.port_dir); #ifdef HAVE_MULTIMAN - if(g_console.external_launcher_support == EXTERN_LAUNCHER_MULTIMAN) + if(g_extern.console.external_launch.support == EXTERN_LAUNCHER_MULTIMAN) { snprintf(contentInfoPath, sizeof(contentInfoPath), "/dev_hdd0/game/%s", EMULATOR_CONTENT_DIR); snprintf(default_paths.port_dir, sizeof(default_paths.port_dir), "/dev_hdd0/game/%s/USRDIR", EMULATOR_CONTENT_DIR); @@ -294,7 +294,7 @@ int main(int argc, char *argv[]) input_ps3.post_init(); #if (CELL_SDK_VERSION > 0x340000) && !defined(__PSL1GHT__) - if (g_console.screenshots_enable) + if (g_extern.console.screen.state.screenshots.enable) { #ifdef HAVE_SYSMODULES cellSysmoduleLoadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT); @@ -309,7 +309,7 @@ int main(int argc, char *argv[]) #endif } #ifdef HAVE_SYSUTILS - if (g_console.custom_bgm_enable) + if (g_extern.console.sound.custom_bgm.enable) cellSysutilEnableBgmPlayback(); #endif #endif @@ -318,21 +318,21 @@ int main(int argc, char *argv[]) driver.video = &video_gl; #ifdef HAVE_OSKUTIL - oskutil_params *osk = &g_console.oskutil_handle; + oskutil_params *osk = &g_extern.console.misc.oskutil_handle; oskutil_init(osk, 0); #endif menu_init(); - switch(g_console.external_launcher_support) + switch(g_extern.console.external_launch.support) { case EXTERN_LAUNCHER_SALAMANDER: - g_extern.console.mode = MODE_MENU; + g_extern.console.rmenu.mode = MODE_MENU; break; #ifdef HAVE_MULTIMAN case EXTERN_LAUNCHER_MULTIMAN: RARCH_LOG("Started from multiMAN, will auto-start game.\n"); - strlcpy(g_extern.filebrowser_state.rom_path, argv[1], sizeof(g_extern.filebrowser_state.rom_path)); + strlcpy(g_extern.file_state.rom_path, argv[1], sizeof(g_extern.file_state.rom_path)); rarch_settings_change(S_START_RARCH); rarch_startup(default_paths.config_file); break; @@ -342,23 +342,23 @@ int main(int argc, char *argv[]) } begin_loop: - if(g_extern.console.mode == MODE_EMULATION) + if(g_extern.console.rmenu.mode == MODE_EMULATION) { bool repeat = false; input_ps3.poll(NULL); - driver.video->set_aspect_ratio(driver.video_data, g_console.aspect_ratio_index); + driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); do{ repeat = rarch_main_iterate(); - }while(repeat && !g_extern.console.frame_advance_enable); + }while(repeat && !g_extern.console.screen.state.frame_advance.enable); } - else if(g_extern.console.mode == MODE_MENU) + else if(g_extern.console.rmenu.mode == MODE_MENU) { menu_loop(); - if (g_extern.console.mode != MODE_EXIT) + if (g_extern.console.rmenu.mode != MODE_EXIT) rarch_startup(default_paths.config_file); } else @@ -369,7 +369,7 @@ begin_loop: begin_shutdown: rarch_config_save(default_paths.config_file); - if(g_console.emulator_initialized) + if(g_extern.console.emulator_initialized) rarch_main_deinit(); input_ps3.free(NULL); @@ -398,7 +398,7 @@ begin_shutdown: /* screenshot PRX */ #ifndef __PSL1GHT__ - if(g_console.screenshots_enable) + if(g_extern.console.screen.state.screenshots.enable) cellSysmoduleUnloadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT); #endif @@ -423,8 +423,8 @@ begin_shutdown: #endif #ifdef HAVE_RARCH_EXEC - if(g_console.return_to_launcher) - rarch_console_exec(g_console.launch_app_on_exit); + if(g_extern.console.external_launch.enable) + rarch_console_exec(g_extern.console.external_launch.launch_app); #endif return 1; diff --git a/ps3/ps3_audio.c b/ps3/ps3_audio.c index 7821a4bd84..0fcbd03b56 100644 --- a/ps3/ps3_audio.c +++ b/ps3/ps3_audio.c @@ -95,7 +95,7 @@ static void *ps3_audio_init(const char *device, unsigned rate, unsigned latency) params.numChannels = AUDIO_CHANNELS; params.numBlocks = AUDIO_BLOCKS; #ifdef HAVE_HEADSET - if(g_console.sound_mode == SOUND_MODE_HEADSET) + if(g_extern.console.sound.mode == SOUND_MODE_HEADSET) params.param_attrib = CELL_AUDIO_PORTATTR_OUT_SECONDARY; else #endif diff --git a/ps3/ps3_input.c b/ps3/ps3_input.c index 5c03743e2a..b891f1988c 100644 --- a/ps3/ps3_input.c +++ b/ps3/ps3_input.c @@ -443,11 +443,11 @@ static bool ps3_key_pressed(void *data, int key) case RARCH_STATE_SLOT_MINUS: return ((state[0] & PS3_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & PS3_GAMEPAD_R2)); case RARCH_FRAMEADVANCE: - if(g_extern.console.frame_advance_enable) + if(g_extern.console.screen.state.frame_advance.enable) { - g_extern.console.enable = true; - g_extern.console.ingame_menu_enable = true; - g_extern.console.mode = MODE_MENU; + 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; case RARCH_REWIND: @@ -459,17 +459,17 @@ static bool ps3_key_pressed(void *data, int key) uint32_t r3_pressed = state[0] & PS3_GAMEPAD_R3; uint32_t l3_pressed = state[0] & PS3_GAMEPAD_L3; bool retval = false; - g_extern.console.enable = (r3_pressed && l3_pressed && IS_TIMER_EXPIRED(gl)); - g_extern.console.ingame_menu_enable = r3_pressed && !l3_pressed; + g_extern.console.rmenu.state.rmenu.enable = (r3_pressed && l3_pressed && IS_TIMER_EXPIRED(gl)); + g_extern.console.rmenu.state.ingame_menu.enable = r3_pressed && !l3_pressed; - if(g_extern.console.enable || (g_extern.console.ingame_menu_enable && !g_extern.console.enable)) + if(g_extern.console.rmenu.state.rmenu.enable || (g_extern.console.rmenu.state.ingame_menu.enable && !g_extern.console.rmenu.state.rmenu.enable)) { - g_extern.console.mode = MODE_MENU; + g_extern.console.rmenu.mode = MODE_MENU; SET_TIMER_EXPIRATION(gl, 30); - retval = g_extern.console.enable; + retval = g_extern.console.rmenu.state.rmenu.enable; } - retval = g_extern.console.ingame_menu_enable ? g_extern.console.ingame_menu_enable : g_extern.console.enable; + retval = g_extern.console.rmenu.state.ingame_menu.enable ? g_extern.console.rmenu.state.ingame_menu.enable : g_extern.console.rmenu.state.rmenu.enable; return retval; } #endif diff --git a/retroarch.c b/retroarch.c index c4c3308b79..26f3c909d0 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2458,10 +2458,6 @@ void rarch_main_clear_state(void) free(g_extern.system.environment_split); memset(&g_extern, 0, sizeof(g_extern)); -#ifdef RARCH_CONSOLE - memset(&g_console, 0, sizeof(g_console)); -#endif - init_state(); } @@ -2618,7 +2614,7 @@ bool rarch_main_iterate(void) if (g_extern.system.shutdown) { #ifdef HAVE_RMENU - g_extern.console.mode = MODE_EXIT; + g_extern.console.rmenu.mode = MODE_EXIT; #endif return false; } diff --git a/settings.c b/settings.c index 1372cc13fa..19a23fdd21 100644 --- a/settings.c +++ b/settings.c @@ -29,9 +29,6 @@ struct settings g_settings; struct global g_extern; -#ifdef RARCH_CONSOLE -struct console_settings g_console; -#endif const char *config_get_default_audio(void) { @@ -173,8 +170,8 @@ void config_set_defaults(void) #if defined(HAVE_CG) || defined(HAVE_XML) g_settings.video.render_to_texture = render_to_texture; - g_settings.video.fbo_scale_x = fbo_scale_x; - g_settings.video.fbo_scale_y = fbo_scale_y; + g_settings.video.fbo.scale_x = fbo_scale_x; + g_settings.video.fbo.scale_y = fbo_scale_y; g_settings.video.second_pass_smooth = second_pass_smooth; #endif @@ -238,7 +235,7 @@ static void parse_config_file(void); void config_load(void) { #ifdef RARCH_CONSOLE - if (!g_console.block_config_read) + if (!g_extern.console.block_config_read) #endif { config_set_defaults(); @@ -388,8 +385,8 @@ bool config_load_file(const char *path) CONFIG_GET_PATH(video.bsnes_shader_path, "video_bsnes_shader"); CONFIG_GET_PATH(video.second_pass_shader, "video_second_pass_shader"); CONFIG_GET_BOOL(video.render_to_texture, "video_render_to_texture"); - CONFIG_GET_FLOAT(video.fbo_scale_x, "video_fbo_scale_x"); - CONFIG_GET_FLOAT(video.fbo_scale_y, "video_fbo_scale_y"); + CONFIG_GET_FLOAT(video.fbo.scale_x, "video_fbo_scale_x"); + CONFIG_GET_FLOAT(video.fbo.scale_y, "video_fbo_scale_y"); CONFIG_GET_BOOL(video.second_pass_smooth, "video_second_pass_smooth"); CONFIG_GET_BOOL(video.allow_rotate, "video_allow_rotate"); diff --git a/xdk/frontend/main.c b/xdk/frontend/main.c index 134919b7f3..bcb1756ed9 100644 --- a/xdk/frontend/main.c +++ b/xdk/frontend/main.c @@ -81,9 +81,9 @@ static void get_environment_settings (void) } else { - XContentQueryVolumeDeviceType("GAME",&g_console.volume_device_type, NULL); + XContentQueryVolumeDeviceType("GAME",&g_extern.file_state.volume_device_type, NULL); - switch(g_console.volume_device_type) + switch(g_extern.file_state.volume_device_type) { case XCONTENTDEVICETYPE_HDD: RARCH_LOG("RetroArch was launched from a content package on HDD.\n"); @@ -188,7 +188,7 @@ begin_loop: input_xinput.poll(NULL); - driver.video->set_aspect_ratio(driver.video_data, g_console.aspect_ratio_index); + driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); do{ repeat = rarch_main_iterate(); @@ -217,8 +217,8 @@ begin_shutdown: #endif input_xinput.free(NULL); - if(g_console.return_to_launcher) - rarch_console_exec(g_console.launch_app_on_exit); + if(g_extern.console.external_launch.enable) + rarch_console_exec(g_extern.console.external_launch.launch_app); return 0; } diff --git a/xdk/xdk_d3d.cpp b/xdk/xdk_d3d.cpp index 7e00429b3c..f104910cc6 100644 --- a/xdk/xdk_d3d.cpp +++ b/xdk/xdk_d3d.cpp @@ -397,13 +397,13 @@ static void xdk_d3d_set_viewport(bool force_full) float delta; // If the aspect ratios of screen and desired aspect ratio are sufficiently equal (floating point stuff), - if(g_console.aspect_ratio_index == ASPECT_RATIO_CUSTOM) + if(g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CUSTOM) { delta = (desired_aspect / device_aspect - 1.0) / 2.0 + 0.5; - m_viewport_x_temp = g_console.viewports.custom_vp.x; - m_viewport_y_temp = g_console.viewports.custom_vp.y; - m_viewport_width_temp = g_console.viewports.custom_vp.width; - m_viewport_height_temp = g_console.viewports.custom_vp.height; + m_viewport_x_temp = g_extern.console.screen.viewports.custom_vp.x; + m_viewport_y_temp = g_extern.console.screen.viewports.custom_vp.y; + m_viewport_width_temp = g_extern.console.screen.viewports.custom_vp.width; + m_viewport_height_temp = g_extern.console.screen.viewports.custom_vp.height; } else if (device_aspect > desired_aspect) { @@ -492,13 +492,13 @@ static void xdk_d3d_init_fbo(xdk_d3d_video_t *d3d) } d3d->d3d_render_device->CreateTexture(512 * g_settings.video.fbo_scale_x, 512 * g_settings.video.fbo_scale_y, - 1, 0, g_console.gamma_correction ? ( D3DFORMAT )MAKESRGBFMT( D3DFMT_A8R8G8B8 ) : D3DFMT_A8R8G8B8, + 1, 0, g_extern.console.screen.gamma_correction ? ( D3DFORMAT )MAKESRGBFMT( D3DFMT_A8R8G8B8 ) : D3DFMT_A8R8G8B8, 0, &d3d->lpTexture_ot , NULL ); d3d->d3d_render_device->CreateRenderTarget(512 * g_settings.video.fbo_scale_x, 512 * g_settings.video.fbo_scale_y, - g_console.gamma_correction ? ( D3DFORMAT )MAKESRGBFMT( D3DFMT_A8R8G8B8 ) : D3DFMT_A8R8G8B8, D3DMULTISAMPLE_NONE, + g_extern.console.screen.gamma_correction ? ( D3DFORMAT )MAKESRGBFMT( D3DFMT_A8R8G8B8 ) : D3DFMT_A8R8G8B8, D3DMULTISAMPLE_NONE, 0, 0, &d3d->lpSurface, NULL); d3d->lpTexture_ot_as16srgb = *d3d->lpTexture_ot; @@ -557,7 +557,7 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu xdk_d3d_init_fbo(d3d); #endif - xdk_d3d_set_rotation(d3d, g_console.screen_orientation); + xdk_d3d_set_rotation(d3d, g_extern.console.screen.orientation); #if defined(_XBOX1) /* load debug fonts */ @@ -592,11 +592,11 @@ static bool xdk_d3d_frame(void *data, const void *frame, #ifdef HAVE_FBO D3DSurface* pRenderTarget0; #endif - bool menu_enabled = g_console.menu_enable; + bool menu_enabled = g_extern.console.rmenu.state.rmenu.enable; #ifdef _XBOX1 - bool fps_enable = g_console.fps_info_msg_enable; - unsigned flicker_filter = g_console.flicker_filter; - bool soft_filter_enable = g_console.soft_display_filter_enable; + bool fps_enable = g_extern.console.rmenu.state.msg_fps.enable; + unsigned flicker_filter = g_extern.console.screen.state.flicker_filter.value; + bool soft_filter_enable = g_extern.console.screen.soft_filter.enable; #endif if (d3d->last_width != width || d3d->last_height != height) @@ -873,12 +873,12 @@ static void xdk_d3d_set_aspect_ratio(void *data, unsigned aspectratio_index) (void)data; xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data; - if(g_console.aspect_ratio_index == ASPECT_RATIO_AUTO) + if(g_settings.video.aspect_ratio_idx == ASPECT_RATIO_AUTO) rarch_set_auto_viewport(g_extern.frame_cache.width, g_extern.frame_cache.height); - else if(g_console.aspect_ratio_index == ASPECT_RATIO_CORE) + else if(g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CORE) rarch_set_core_viewport(); - g_settings.video.aspect_ratio = aspectratio_lut[g_console.aspect_ratio_index].value; + g_settings.video.aspect_ratio = aspectratio_lut[g_settings.video.aspect_ratio_idx].value; g_settings.video.force_aspect = false; d3d->should_resize = true; } diff --git a/xdk/xdk_xinput_input.c b/xdk/xdk_xinput_input.c index 0f7b7c04c4..de99fa075f 100644 --- a/xdk/xdk_xinput_input.c +++ b/xdk/xdk_xinput_input.c @@ -328,11 +328,11 @@ static bool xinput_input_key_pressed(void *data, int key) case RARCH_STATE_SLOT_MINUS: return ((state[0] & XINPUT1_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER)); case RARCH_FRAMEADVANCE: - if(g_console.frame_advance_enable) + if(g_extern.console.screen.state.frame_advance.enable) { - g_console.menu_enable = true; - g_console.ingame_menu_enable = true; - g_console.mode_switch = MODE_MENU; + g_extern.console.rmenu.state.rmenu.enable = true; + g_extern.console.rmenu.mode = MODE_MENU; + g_extern.console.screen.state.ingame_menu.enable = true; } return false; case RARCH_REWIND: @@ -343,16 +343,16 @@ static bool xinput_input_key_pressed(void *data, int key) uint32_t left_thumb_pressed = (state[0] & (1 << RETRO_DEVICE_ID_JOYPAD_L3)); uint32_t right_thumb_pressed = (state[0] & (1 << RETRO_DEVICE_ID_JOYPAD_R3)); - g_console.menu_enable = right_thumb_pressed && left_thumb_pressed && IS_TIMER_EXPIRED(d3d); - g_console.ingame_menu_enable = right_thumb_pressed && !left_thumb_pressed; + g_extern.console.rmenu.state.rmenu.enable = right_thumb_pressed && left_thumb_pressed && IS_TIMER_EXPIRED(d3d); + g_extern.console.screen.state.ingame_menu.enable = right_thumb_pressed && !left_thumb_pressed; - if(g_console.menu_enable || (g_console.ingame_menu_enable && !g_console.menu_enable)) + if(g_extern.console.rmenu.state.rmenu.enable || (g_extern.console.screen.ingame_menu.enable && !g_extern.console.rmenu.state.rmenu.enable)) { - g_console.mode_switch = MODE_MENU; + g_extern.console.rmenu.mode = MODE_MENU; SET_TIMER_EXPIRATION(d3d, 30); - retval = g_console.menu_enable; + retval = g_extern.console.rmenu.state.rmenu.enable; } - retval = g_console.ingame_menu_enable ? g_console.ingame_menu_enable : g_console.menu_enable; + retval = g_extern.console.screen.state.ingame_menu.enable ? g_extern.console.screen.state.ingame_menu.enable : g_extern.console.rmenu.state.rmenu.enable; } }