(RARCH_CONSOLE) g_console struct removed now - console settings

now a part of g_extern and also compiled in for PC - will use
this for RMenu
This commit is contained in:
twinaphex 2012-10-15 06:24:39 +02:00
parent 11b9f039b2
commit 174c7d9d98
27 changed files with 1234 additions and 1205 deletions

View File

@ -160,7 +160,7 @@ HRESULT CRetroArchFileBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled
GetChildById(L"XuiBtnGameDir", &m_dir_game); GetChildById(L"XuiBtnGameDir", &m_dir_game);
GetChildById(L"XuiBtnCacheDir", &m_dir_cache); 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); uint64_t action = (1 << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); 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) 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); uint64_t action = (1 << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); 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); uint64_t action = (1 << RMENU_DEVICE_NAV_B);
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle); 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); rarch_settings_msg(S_MSG_CACHE_PARTITION, S_DELAY_180);
} }
#endif #endif
@ -379,15 +379,15 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
GetChildById(L"XuiBackButton", &m_back); 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_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_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_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD"); 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_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); 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, 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_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)); 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_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)); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER_2, sizeof(strw_buffer));
m_settingslist.SetText(SETTING_SHADER_2, 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)); 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); rarch_settings_change(S_REWIND);
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); 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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_EMU_SHOW_INFO_MSG: case SETTING_EMU_SHOW_INFO_MSG:
g_console.info_msg_enable = !g_console.info_msg_enable; 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_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: 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");
break; break;
case SETTING_EMU_MENUS: case SETTING_EMU_MENUS:
g_console.menus_hd_enable = !g_console.menus_hd_enable; g_extern.console.rmenu.state.menus_hd.enable = !g_extern.console.rmenu.state.menus_hd.enable;
m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD"); m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.menus_hd.enable ? L"Menus: HD" : L"Menus: SD");
break; break;
case SETTING_GAMMA_CORRECTION_ENABLED: case SETTING_GAMMA_CORRECTION_ENABLED:
g_console.gamma_correction = g_console.gamma_correction ? 0 : 1; g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1;
m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: 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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_COLOR_FORMAT: case SETTING_COLOR_FORMAT:
g_console.color_format = !g_console.color_format; g_settings.video.color_format = !g_settings.video.color_format;
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");
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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_SHADER: case SETTING_SHADER:
set_shader = 1; 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) if (hr < 0)
RARCH_ERR("Failed to load scene.\n"); RARCH_ERR("Failed to load scene.\n");
hCur = app.hShaderBrowser; 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); rarch_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180);
NavigateForward(app.hShaderBrowser); NavigateForward(app.hShaderBrowser);
break; break;
case SETTING_SHADER_2: case SETTING_SHADER_2:
set_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) if (hr < 0)
RARCH_ERR("Failed to load scene.\n"); RARCH_ERR("Failed to load scene.\n");
hCur = app.hShaderBrowser; 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); rarch_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180);
NavigateForward(app.hShaderBrowser); 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"); 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; break;
case SETTING_SCALE_ENABLED: case SETTING_SCALE_ENABLED:
g_console.fbo_enabled = !g_console.fbo_enabled; g_settings.video.fbo.enable = !g_settings.video.fbo.enable;
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");
context->set_fbo_enable(g_console.fbo_enabled); context->set_fbo_enable(g_settings.video.fbo.enable);
break; break;
case SETTING_ZIP_EXTRACT: case SETTING_ZIP_EXTRACT:
if(g_extern.filebrowser_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR) 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: case XUI_CONTROL_NAVIGATE_LEFT:
switch(current_index) switch(current_index)
{ {
case SETTING_EMU_REWIND_ENABLED: case SETTING_EMU_REWIND_ENABLED:
rarch_settings_change(S_REWIND); rarch_settings_change(S_REWIND);
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); 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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_EMU_SHOW_INFO_MSG: case SETTING_EMU_SHOW_INFO_MSG:
g_console.info_msg_enable = !g_console.info_msg_enable; 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_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: 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");
break; break;
case SETTING_EMU_MENUS: case SETTING_EMU_MENUS:
g_console.menus_hd_enable = !g_console.menus_hd_enable; g_extern.console.rmenu.state.menus_hd_enable = !g_extern.console.rmenu.state.menus_hd_enable;
m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD"); m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.menus_hd.enable ? L"Menus: HD" : L"Menus: SD");
break; break;
case SETTING_GAMMA_CORRECTION_ENABLED: case SETTING_GAMMA_CORRECTION_ENABLED:
g_console.gamma_correction = g_console.gamma_correction ? 0 : 1; g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1;
m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: 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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_COLOR_FORMAT: case SETTING_COLOR_FORMAT:
g_console.color_format = !g_console.color_format; g_settings.video.color_format = !g_settings.video.color_format;
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");
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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_SCALE_FACTOR: case SETTING_SCALE_FACTOR:
if(vid->fbo_enabled) if(vid->fbo_enabled)
@ -541,12 +541,12 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer); m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer);
} }
} }
break; break;
case SETTING_ZIP_EXTRACT: case SETTING_ZIP_EXTRACT:
if(g_extern.filebrowser_state.zip_extract_mode) if(g_extern.filebrowser_state.zip_extract_mode)
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)); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer));
m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer); m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer);
break; break;
case SETTING_HW_TEXTURE_FILTER: case SETTING_HW_TEXTURE_FILTER:
g_settings.video.smooth = !g_settings.video.smooth; 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"); 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; break;
case SETTING_SCALE_ENABLED: case SETTING_SCALE_ENABLED:
g_console.fbo_enabled = !g_console.fbo_enabled; g_settings.video.fbo.enable = !g_settings.video.fbo.enable;
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");
context->set_fbo_enable(g_console.fbo_enabled); context->set_fbo_enable(g_settings.video.fbo.enable);
break; break;
default: default:
break; break;
@ -569,50 +569,50 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
switch(current_index) switch(current_index)
{ {
case SETTING_EMU_SHOW_INFO_MSG: case SETTING_EMU_SHOW_INFO_MSG:
g_console.info_msg_enable = !g_console.info_msg_enable; 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_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: 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");
break; break;
case SETTING_EMU_MENUS: case SETTING_EMU_MENUS:
g_console.menus_hd_enable = !g_console.menus_hd_enable; g_extern.console.rmenu.state.menus_hd.enable = !g_extern.console.rmenu.state.menus_hd.enable;
m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD"); m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.menus_hd.enable ? L"Menus: HD" : L"Menus: SD");
break; break;
case SETTING_GAMMA_CORRECTION_ENABLED: case SETTING_GAMMA_CORRECTION_ENABLED:
g_console.gamma_correction = g_console.gamma_correction ? 0 : 1; g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1;
m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: 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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_COLOR_FORMAT: case SETTING_COLOR_FORMAT:
g_console.color_format = !g_console.color_format; g_settings.video.color_format = !g_settings.video.color_format;
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");
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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_EMU_REWIND_ENABLED: case SETTING_EMU_REWIND_ENABLED:
rarch_settings_change(S_REWIND); rarch_settings_change(S_REWIND);
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); 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); rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break; break;
case SETTING_SCALE_FACTOR: case SETTING_SCALE_FACTOR:
if(vid->fbo_enabled) if(vid->fbo_enabled)
{ {
if((g_settings.video.fbo_scale_x < MAX_SCALING_FACTOR)) if((g_settings.video.fbo_scale_x < MAX_SCALING_FACTOR))
{ {
rarch_settings_change(S_SCALE_FACTOR_INCREMENT); rarch_settings_change(S_SCALE_FACTOR_INCREMENT);
//xdk360_gfx_init_fbo(vid); //xdk360_gfx_init_fbo(vid);
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer));
m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer); m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer);
} }
} }
break; break;
case SETTING_ZIP_EXTRACT: case SETTING_ZIP_EXTRACT:
if(g_extern.filebrowser_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR) if(g_extern.filebrowser_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR)
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)); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer));
m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer); m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer);
break; break;
case SETTING_HW_TEXTURE_FILTER: case SETTING_HW_TEXTURE_FILTER:
g_settings.video.smooth = !g_settings.video.smooth; 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"); 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"); 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; break;
case SETTING_SCALE_ENABLED: case SETTING_SCALE_ENABLED:
g_console.fbo_enabled = !g_console.fbo_enabled; g_settings.video.fbo.enable = !g_settings.video.fbo.enable;
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");
context->set_fbo_enable(g_console.fbo_enabled); context->set_fbo_enable(g_settings.video.fbo.enable);
break;
default:
break; break;
default:
break;
} }
break; break;
case XUI_CONTROL_NAVIGATE_UP: case XUI_CONTROL_NAVIGATE_UP:
@ -701,7 +701,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
rarch_settings_change(S_ROTATION_DECREMENT); rarch_settings_change(S_ROTATION_DECREMENT);
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, 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; break;
default: default:
break; break;
@ -726,7 +726,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
rarch_settings_change(S_ROTATION_INCREMENT); rarch_settings_change(S_ROTATION_INCREMENT);
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, 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; break;
default: default:
break; break;
@ -739,7 +739,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
if(aspectratio_changed) 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)); 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); m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer);
} }
@ -773,14 +773,14 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
switch(current_index) switch(current_index)
{ {
case MENU_ITEM_LOAD_STATE: case MENU_ITEM_LOAD_STATE:
if (g_console.emulator_initialized) if (g_extern.console.emulator_initialized)
{ {
rarch_load_state(); rarch_load_state();
rarch_settings_change(S_RETURN_TO_GAME); rarch_settings_change(S_RETURN_TO_GAME);
} }
break; break;
case MENU_ITEM_SAVE_STATE: case MENU_ITEM_SAVE_STATE:
if (g_console.emulator_initialized) if (g_extern.console.emulator_initialized)
{ {
rarch_save_state(); rarch_save_state();
rarch_settings_change(S_RETURN_TO_GAME); rarch_settings_change(S_RETURN_TO_GAME);
@ -788,43 +788,43 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
break; break;
case MENU_ITEM_KEEP_ASPECT_RATIO: case MENU_ITEM_KEEP_ASPECT_RATIO:
rarch_settings_default(S_DEF_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)); 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); m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer);
break; break;
case MENU_ITEM_OVERSCAN_AMOUNT: 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); rarch_settings_msg(S_MSG_NOT_IMPLEMENTED, S_DELAY_180);
break; break;
case MENU_ITEM_ORIENTATION: case MENU_ITEM_ORIENTATION:
rarch_settings_default(S_DEF_ROTATION); rarch_settings_default(S_DEF_ROTATION);
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, 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; break;
case MENU_ITEM_RESIZE_MODE: 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); rarch_settings_msg(S_MSG_RESIZE_SCREEN, S_DELAY_270);
break; break;
case MENU_ITEM_FRAME_ADVANCE: case MENU_ITEM_FRAME_ADVANCE:
if (g_console.emulator_initialized) if (g_extern.console.emulator_initialized)
rarch_settings_change(S_FRAME_ADVANCE); rarch_settings_change(S_FRAME_ADVANCE);
break; break;
case MENU_ITEM_SCREENSHOT_MODE: case MENU_ITEM_SCREENSHOT_MODE:
if (g_console.info_msg_enable) if (g_extern.console.rmenu.state.msg_info.enable)
gfx_ctx_xdk_screenshot_dump(NULL); gfx_ctx_xdk_screenshot_dump(NULL);
break; break;
case MENU_ITEM_RESET: case MENU_ITEM_RESET:
if (g_console.emulator_initialized) if (g_extern.console.emulator_initialized)
{ {
rarch_settings_change(S_RETURN_TO_GAME); rarch_settings_change(S_RETURN_TO_GAME);
rarch_game_reset(); rarch_game_reset();
} }
break; break;
case MENU_ITEM_RETURN_TO_GAME: case MENU_ITEM_RETURN_TO_GAME:
if (g_console.emulator_initialized) if (g_extern.console.emulator_initialized)
rarch_settings_change(S_RETURN_TO_GAME); rarch_settings_change(S_RETURN_TO_GAME);
break; break;
case MENU_ITEM_QUIT_RARCH: 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)); 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)) 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); rarch_settings_change(S_RETURN_TO_LAUNCHER);
} }
else if(tmp_browser->current_dir.list->elems[index].attr.b) 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)); rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_RARCH_VERSION, sizeof(strw_buffer));
m_title.SetText(strw_buffer); m_title.SetText(strw_buffer);
g_console.input_loop = INPUT_LOOP_NONE; g_extern.console.input_loop = INPUT_LOOP_NONE;
return 0; 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; 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; HRESULT hr;
if ( hObjPressed == m_filebrowser ) 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); hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_filebrowser.xur", NULL, &app.hFileBrowser);
if (hr < 0) if (hr < 0)
@ -1001,7 +1001,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
hCur = app.hControlsMenu; 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); rarch_settings_msg(S_MSG_CHANGE_CONTROLS, S_DELAY_180);
NavigateForward(app.hControlsMenu); NavigateForward(app.hControlsMenu);
@ -1016,7 +1016,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
} }
hCur = app.hCoreBrowser; 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); rarch_settings_msg(S_MSG_SELECT_LIBRETRO_CORE, S_DELAY_180);
NavigateForward(app.hCoreBrowser); NavigateForward(app.hCoreBrowser);
@ -1046,7 +1046,7 @@ void menu_init (void)
xdk_d3d_video_t *vid = (xdk_d3d_video_t*)driver.video_data; 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); 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)); browser = (filebrowser_t*)malloc(1 * sizeof(filebrowser_t));
tmp_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) void menu_free (void)
@ -1102,34 +1102,34 @@ static void ingame_menu_resize (void)
XInputGetState(0, &state); XInputGetState(0, &state);
if(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT || state.Gamepad.sThumbLX < -DEADZONE) 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) 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) 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) 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) 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) 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) 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) 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) if (state.Gamepad.wButtons & XINPUT_GAMEPAD_Y)
{ {
g_console.viewports.custom_vp.x = 0; g_extern.console.screen.viewports.custom_vp.x = 0;
g_console.viewports.custom_vp.y = 0; g_extern.console.screen.viewports.custom_vp.y = 0;
g_console.viewports.custom_vp.width = 1280; //FIXME: hardcoded g_extern.console.screen.viewports.custom_vp.width = 1280; //FIXME: hardcoded
g_console.viewports.custom_vp.height = 720; //FIXME: hardcoded g_extern.console.screen.viewports.custom_vp.height = 720; //FIXME: hardcoded
} }
if(state.Gamepad.wButtons & XINPUT_GAMEPAD_B) 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) void menu_loop(void)
@ -1137,15 +1137,15 @@ void menu_loop(void)
HRESULT hr; HRESULT hr;
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data; 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; d3d->block_swap = true;
g_console.input_loop = INPUT_LOOP_MENU; g_extern.console.rmenu.input_loop = INPUT_LOOP_MENU;
do do
{ {
if(g_console.emulator_initialized) if(g_extern.console.emulator_initialized)
rarch_render_cached_frame(); rarch_render_cached_frame();
else else
{ {
@ -1156,13 +1156,13 @@ void menu_loop(void)
XINPUT_STATE state; XINPUT_STATE state;
XInputGetState(0, &state); XInputGetState(0, &state);
g_console.menu_enable = !((state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) g_extern.console.rmenu.state.rmenu.enable = !((state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB)
&& (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) && (g_console.emulator_initialized) && (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) && (g_extern.console.emulator_initialized)
&& IS_TIMER_EXPIRED(d3d)); && 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: case INPUT_LOOP_FILEBROWSER:
/* /*
@ -1188,7 +1188,7 @@ void menu_loop(void)
hr = app.Render(); /* Render XUI */ hr = app.Render(); /* Render XUI */
hr = XuiTimersRun(); /* Update XUI timers */ 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); SET_TIMER_EXPIRATION(d3d, 30);
} }
@ -1202,9 +1202,9 @@ void menu_loop(void)
} }
context->swap_buffers(); context->swap_buffers();
}while(g_console.menu_enable); }while(g_extern.console.rmenu.state.rmenu.enable);
d3d->block_swap = false; d3d->block_swap = false;
g_console.ingame_menu_enable = false; g_extern.console.rmenu.state.ingame_menu.enable = false;
} }

View File

@ -354,7 +354,7 @@ static void *dsound_init(const char *device, unsigned rate, unsigned latency)
IDirectSoundBuffer_SetVolume(ds->dsb, DSBVOLUME_MAX); IDirectSoundBuffer_SetVolume(ds->dsb, DSBVOLUME_MAX);
#ifdef _XBOX #ifdef _XBOX
if(g_console.sound_volume_level == 1) if(g_extern.console.sound.volume_level == 1)
{ {
dsmb.dwMixBinCount = 8; dsmb.dwMixBinCount = 8;
dsmb.lpMixBinVolumePairs = dsmbvp; dsmb.lpMixBinVolumePairs = dsmbvp;

View File

@ -63,12 +63,5 @@
#define CONFIG_GET_STRING_EXTERN(var, key) CONFIG_GET_STRING_BASE(conf, g_extern, var, key) #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) #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 #endif

View File

@ -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"); CONFIG_GET_STRING(video.cg_shader_path, "video_cg_shader");
#ifdef HAVE_FBO #ifdef HAVE_FBO
CONFIG_GET_STRING(video.second_pass_shader, "video_second_pass_shader"); 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_x, "video_fbo_scale_x");
CONFIG_GET_FLOAT(video.fbo_scale_y, "video_fbo_scale_y"); 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.render_to_texture, "video_render_to_texture");
CONFIG_GET_BOOL(video.second_pass_smooth, "video_second_pass_smooth"); CONFIG_GET_BOOL(video.second_pass_smooth, "video_second_pass_smooth");
#endif #endif
CONFIG_GET_BOOL(video.smooth, "video_smooth"); 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_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_FLOAT(video.aspect_ratio, "video_aspect_ratio");
CONFIG_GET_STRING(audio.device, "audio_device"); CONFIG_GET_STRING(audio.device, "audio_device");
CONFIG_GET_BOOL(audio.rate_control, "audio_rate_control"); 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); CONFIG_GET_INT(input.device[i], cfg);
} }
// g_console // g_extern
CONFIG_GET_STRING_EXTERN(console.main_wrap.paths.default_rom_startup_dir, "default_rom_startup_dir");
#ifdef HAVE_FBO CONFIG_GET_BOOL_EXTERN(console.screen.gamma_correction, "gamma_correction");
CONFIG_GET_BOOL_CONSOLE(fbo_enabled, "fbo_enabled"); 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 #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 #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 #endif
#ifdef _XBOX360 #ifdef _XBOX360
CONFIG_GET_INT_CONSOLE(color_format, "color_format"); CONFIG_GET_INT(video.color_format, "color_format");
#endif #endif
CONFIG_GET_BOOL_CONSOLE(gamma_correction, "gamma_correction"); CONFIG_GET_INT_EXTERN(console.screen.resolutions.current.id, "current_resolution_id");
#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(state_slot, "state_slot"); CONFIG_GET_INT_EXTERN(state_slot, "state_slot");
CONFIG_GET_INT_EXTERN(audio_data.mute, "audio_mute"); 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) 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_string(conf, "video_cg_shader", g_settings.video.cg_shader_path);
config_set_float(conf, "video_aspect_ratio", g_settings.video.aspect_ratio); config_set_float(conf, "video_aspect_ratio", g_settings.video.aspect_ratio);
#ifdef HAVE_FBO #ifdef HAVE_FBO
config_set_float(conf, "video_fbo_scale_x", g_settings.video.fbo_scale_x); 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_y", g_settings.video.fbo.scale_y);
config_set_string(conf, "video_second_pass_shader", g_settings.video.second_pass_shader); 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_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, "video_second_pass_smooth", g_settings.video.second_pass_smooth);
config_set_bool(conf, "fbo_enabled", g_settings.video.fbo.enable);
#endif #endif
config_set_bool(conf, "video_smooth", g_settings.video.smooth); config_set_bool(conf, "video_smooth", g_settings.video.smooth);
config_set_bool(conf, "video_vsync", g_settings.video.vsync); 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_string(conf, "audio_device", g_settings.audio.device);
config_set_bool(conf, "audio_rate_control", g_settings.audio.rate_control); 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); 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]); config_set_int(conf, cfg, g_settings.input.device[i]);
} }
#ifdef RARCH_CONSOLE config_set_bool(conf, "overscan_enable", g_extern.console.screen.state.overscan.enable);
config_set_bool(conf, "fbo_enabled", g_console.fbo_enabled); config_set_bool(conf, "screenshots_enable", g_extern.console.screen.state.screenshots.enable);
#ifdef __CELLOS_LV2__ config_set_bool(conf, "gamma_correction", g_extern.console.screen.gamma_correction);
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);
#ifdef _XBOX1 #ifdef _XBOX1
config_set_int(conf, "flicker_filter", g_console.flicker_filter); config_set_int(conf, "flicker_filter", g_extern.console.screen.state.flicker_filter.value);
config_set_int(conf, "sound_volume_level", g_console.sound_volume_level); config_set_int(conf, "sound_volume_level", g_extern.console.sound.volume_level);
#endif #endif
config_set_bool(conf, "throttle_enable", g_console.throttle_enable); config_set_bool(conf, "throttle_enable", g_extern.console.screen.state.throttle.enable);
config_set_bool(conf, "triple_buffering_enable", g_console.triple_buffering_enable); config_set_bool(conf, "triple_buffering_enable", g_extern.console.screen.state.triple_buffering.enable);
config_set_bool(conf, "info_msg_enable", g_console.info_msg_enable); config_set_bool(conf, "info_msg_enable", g_extern.console.rmenu.state.msg_info.enable);
config_set_int(conf, "sound_mode", g_console.sound_mode); config_set_int(conf, "current_resolution_id", g_extern.console.screen.resolutions.current.id);
config_set_int(conf, "aspect_ratio_index", g_console.aspect_ratio_index); config_set_int(conf, "custom_viewport_width", g_extern.console.screen.viewports.custom_vp.width);
config_set_int(conf, "current_resolution_id", g_console.current_resolution_id); config_set_int(conf, "custom_viewport_height", g_extern.console.screen.viewports.custom_vp.height);
config_set_int(conf, "custom_viewport_width", g_console.viewports.custom_vp.width); config_set_int(conf, "custom_viewport_x", g_extern.console.screen.viewports.custom_vp.x);
config_set_int(conf, "custom_viewport_height", g_console.viewports.custom_vp.height); config_set_int(conf, "custom_viewport_y", g_extern.console.screen.viewports.custom_vp.y);
config_set_int(conf, "custom_viewport_x", g_console.viewports.custom_vp.x); config_set_string(conf, "default_rom_startup_dir", g_extern.console.main_wrap.paths.default_rom_startup_dir);
config_set_int(conf, "custom_viewport_y", g_console.viewports.custom_vp.y); config_set_float(conf, "menu_font_size", g_extern.console.rmenu.font_size);
config_set_int(conf, "screen_orientation", g_console.screen_orientation); config_set_float(conf, "overscan_amount", g_extern.console.screen.overscan_amount);
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);
#ifdef HAVE_ZLIB #ifdef HAVE_ZLIB
config_set_int(conf, "zip_extract_mode", g_extern.filebrowser_state.zip_extract_mode); config_set_int(conf, "zip_extract_mode", g_extern.file_state.zip_extract_mode);
#endif
#endif #endif
// g_extern // 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, "state_slot", g_extern.state_slot);
config_set_int(conf, "audio_mute", g_extern.audio_data.mute); 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)) if (!config_file_write(conf, conf_name))
RARCH_ERR("Failed to write config file to \"%s\". Check permissions.\n", conf_name); RARCH_ERR("Failed to write config file to \"%s\". Check permissions.\n", conf_name);

View File

@ -83,18 +83,18 @@ bool rarch_startup (const char * config_path)
{ {
bool retval = false; 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(); rarch_main_deinit();
struct rarch_main_wrap args = {0}; struct rarch_main_wrap args = {0};
args.verbose = g_extern.verbose; args.verbose = g_extern.verbose;
args.config_path = config_path; args.config_path = config_path;
args.sram_path = g_console.default_sram_dir_enable ? g_console.default_sram_dir : NULL, 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_console.default_savestate_dir_enable ? g_console.default_savestate_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.filebrowser_state.rom_path; args.rom_path = g_extern.file_state.rom_path;
#ifdef HAVE_DYLIB #ifdef HAVE_DYLIB
args.libretro_path = g_settings.libretro; args.libretro_path = g_settings.libretro;
#endif #endif
@ -104,15 +104,15 @@ bool rarch_startup (const char * config_path)
if(init_ret == 0) if(init_ret == 0)
{ {
g_console.emulator_initialized = 1; g_extern.console.emulator_initialized = 1;
g_console.initialize_rarch_enable = 0; g_extern.console.initialize_rarch_enable = 0;
retval = true; retval = true;
} }
else else
{ {
//failed to load the ROM for whatever reason //failed to load the ROM for whatever reason
g_console.emulator_initialized = 0; g_extern.console.emulator_initialized = 0;
g_extern.console.mode = MODE_MENU; g_extern.console.rmenu.mode = MODE_MENU;
rarch_settings_msg(S_MSG_ROM_LOADING_ERROR, S_DELAY_180); rarch_settings_msg(S_MSG_ROM_LOADING_ERROR, S_DELAY_180);
} }
} }

View File

@ -34,7 +34,7 @@
static void rarch_console_load_game(const char *path) 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); 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)); 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); 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); rarch_settings_msg(S_MSG_EXTRACTED_ZIPFILE, S_DELAY_180);
} }
extract_zip_and_load_game_cond = (extract_zip_cond && 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); load_game = (extract_zip_and_load_game_cond) || (!extract_zip_cond);
if(extract_zip_and_load_game_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); 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); rarch_settings_msg(S_MSG_LOADING_ROM, delay);
} }
} }

View File

@ -27,12 +27,12 @@ void rarch_settings_change(unsigned setting)
switch(setting) switch(setting)
{ {
case S_ASPECT_RATIO_DECREMENT: case S_ASPECT_RATIO_DECREMENT:
if(g_console.aspect_ratio_index > 0) if(g_settings.video.aspect_ratio_idx > 0)
g_console.aspect_ratio_index--; g_settings.video.aspect_ratio_idx--;
break; break;
case S_ASPECT_RATIO_INCREMENT: case S_ASPECT_RATIO_INCREMENT:
if(g_console.aspect_ratio_index < LAST_ASPECT_RATIO) if(g_settings.video.aspect_ratio_idx < LAST_ASPECT_RATIO)
g_console.aspect_ratio_index++; g_settings.video.aspect_ratio_idx++;
break; break;
case S_AUDIO_MUTE: case S_AUDIO_MUTE:
g_extern.audio_data.mute = !g_extern.audio_data.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; g_settings.audio.rate_control = true;
break; break;
case S_FRAME_ADVANCE: case S_FRAME_ADVANCE:
g_extern.console.frame_advance_enable = true; g_extern.console.screen.state.frame_advance.enable = true;
g_extern.console.enable = false; g_extern.console.rmenu.state.rmenu.enable = false;
g_extern.console.mode = MODE_EMULATION; g_extern.console.rmenu.mode = MODE_EMULATION;
break; break;
case S_HW_TEXTURE_FILTER: case S_HW_TEXTURE_FILTER:
g_settings.video.smooth = !g_settings.video.smooth; 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; g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth;
break; break;
case S_OVERSCAN_DECREMENT: case S_OVERSCAN_DECREMENT:
g_console.overscan_amount -= 0.01f; g_extern.console.screen.overscan_amount -= 0.01f;
g_console.overscan_enable = true; g_extern.console.screen.state.overscan.enable = true;
if(g_console.overscan_amount == 0.0f) if(g_extern.console.screen.overscan_amount == 0.0f)
g_console.overscan_enable = false; g_extern.console.screen.state.overscan.enable = false;
break; break;
case S_OVERSCAN_INCREMENT: case S_OVERSCAN_INCREMENT:
g_console.overscan_amount += 0.01f; g_extern.console.screen.overscan_amount += 0.01f;
g_console.overscan_enable = true; g_extern.console.screen.state.overscan.enable = true;
if(g_console.overscan_amount == 0.0f) if(g_extern.console.screen.overscan_amount == 0.0f)
g_console.overscan_enable = 0; g_extern.console.screen.state.overscan.enable = 0;
break; break;
case S_RESOLUTION_PREVIOUS: case S_RESOLUTION_PREVIOUS:
if (g_console.current_resolution_index) if (g_extern.console.screen.resolutions.current.idx)
{ {
g_console.current_resolution_index--; g_extern.console.screen.resolutions.current.idx--;
g_console.current_resolution_id = g_console.supported_resolutions[g_console.current_resolution_index]; g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx];
} }
break; break;
case S_RESOLUTION_NEXT: 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_extern.console.screen.resolutions.current.idx++;
g_console.current_resolution_id = g_console.supported_resolutions[g_console.current_resolution_index]; g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx];
} }
break; break;
case S_QUIT: case S_QUIT:
g_extern.console.enable = false; g_extern.console.rmenu.state.rmenu.enable = false;
g_extern.console.ingame_menu_enable = false; g_extern.console.rmenu.state.ingame_menu.enable = false;
g_extern.console.mode = MODE_EXIT; g_extern.console.rmenu.mode = MODE_EXIT;
break; break;
case S_QUIT_RARCH: case S_QUIT_RARCH:
g_extern.console.enable = false; g_extern.console.rmenu.state.rmenu.enable = false;
g_console.initialize_rarch_enable = false; g_extern.console.initialize_rarch_enable = false;
g_extern.console.mode = MODE_EXIT; g_extern.console.rmenu.mode = MODE_EXIT;
break; break;
case S_RETURN_TO_GAME: case S_RETURN_TO_GAME:
g_extern.console.frame_advance_enable = false; g_extern.console.screen.state.frame_advance.enable = false;
g_extern.console.enable = false; g_extern.console.rmenu.state.rmenu.enable = false;
g_extern.console.mode = MODE_EMULATION; g_extern.console.rmenu.mode = MODE_EMULATION;
break; break;
case S_RETURN_TO_LAUNCHER: case S_RETURN_TO_LAUNCHER:
g_console.return_to_launcher = true; g_extern.console.external_launch.enable = true;
g_extern.console.enable = false; g_extern.console.rmenu.state.rmenu.enable = false;
g_console.initialize_rarch_enable = false; g_extern.console.initialize_rarch_enable = false;
g_extern.console.mode = MODE_EXIT; g_extern.console.rmenu.mode = MODE_EXIT;
break; break;
case S_RETURN_TO_MENU: case S_RETURN_TO_MENU:
g_extern.console.enable = false; g_extern.console.rmenu.state.rmenu.enable = false;
g_extern.console.ingame_menu_item = 0; g_extern.console.rmenu.ingame_menu.idx = 0;
g_extern.console.mode = MODE_MENU; g_extern.console.rmenu.mode = MODE_MENU;
break; break;
case S_ROTATION_DECREMENT: case S_ROTATION_DECREMENT:
if(g_console.screen_orientation > 0) if(g_extern.console.screen.orientation > 0)
g_console.screen_orientation--; g_extern.console.screen.orientation--;
break; break;
case S_ROTATION_INCREMENT: case S_ROTATION_INCREMENT:
if(g_console.screen_orientation < LAST_ORIENTATION) if(g_extern.console.screen.orientation < LAST_ORIENTATION)
g_console.screen_orientation++; g_extern.console.screen.orientation++;
break; break;
case S_START_RARCH: case S_START_RARCH:
g_extern.console.enable = false; g_extern.console.rmenu.state.rmenu.enable = false;
g_console.initialize_rarch_enable = 1; g_extern.console.initialize_rarch_enable = 1;
g_extern.console.mode = MODE_EMULATION; g_extern.console.rmenu.mode = MODE_EMULATION;
break; break;
case S_REWIND: case S_REWIND:
g_settings.rewind_enable = !g_settings.rewind_enable; g_settings.rewind_enable = !g_settings.rewind_enable;
@ -137,22 +137,24 @@ void rarch_settings_change(unsigned setting)
g_extern.state_slot++; g_extern.state_slot++;
break; break;
case S_SCALE_ENABLED: case S_SCALE_ENABLED:
g_console.fbo_enabled = !g_console.fbo_enabled; g_settings.video.fbo.enable = !g_settings.video.fbo.enable;
break; break;
case S_SCALE_FACTOR_DECREMENT: case S_SCALE_FACTOR_DECREMENT:
g_settings.video.fbo_scale_x -= 1.0f; g_settings.video.fbo.scale_x -= 1.0f;
g_settings.video.fbo_scale_y -= 1.0f; g_settings.video.fbo.scale_y -= 1.0f;
break; break;
case S_SCALE_FACTOR_INCREMENT: case S_SCALE_FACTOR_INCREMENT:
g_settings.video.fbo_scale_x += 1.0f; g_settings.video.fbo.scale_x += 1.0f;
g_settings.video.fbo_scale_y += 1.0f; g_settings.video.fbo.scale_y += 1.0f;
break; break;
case S_THROTTLE: case S_THROTTLE:
if(!g_extern.system.force_nonblock) 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; break;
case S_TRIPLE_BUFFERING: 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; break;
} }
} }
@ -162,7 +164,7 @@ void rarch_settings_default(unsigned setting)
switch(setting) switch(setting)
{ {
case S_DEF_ASPECT_RATIO: 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; break;
case S_DEF_AUDIO_MUTE: case S_DEF_AUDIO_MUTE:
g_extern.audio_data.mute = false; g_extern.audio_data.mute = false;
@ -183,30 +185,30 @@ void rarch_settings_default(unsigned setting)
g_settings.video.second_pass_smooth = 1; g_settings.video.second_pass_smooth = 1;
break; break;
case S_DEF_OVERSCAN: case S_DEF_OVERSCAN:
g_console.overscan_amount = 0.0f; g_extern.console.screen.overscan_amount = 0.0f;
g_console.overscan_enable = false; g_extern.console.screen.state.overscan.enable = false;
break; break;
case S_DEF_ROTATION: case S_DEF_ROTATION:
g_console.screen_orientation = ORIENTATION_NORMAL; g_extern.console.screen.orientation = ORIENTATION_NORMAL;
break; break;
case S_DEF_THROTTLE: case S_DEF_THROTTLE:
if(!g_extern.system.force_nonblock) if(!g_extern.system.force_nonblock)
g_console.throttle_enable = true; g_extern.console.screen.state.throttle.enable = true;
break; break;
case S_DEF_TRIPLE_BUFFERING: case S_DEF_TRIPLE_BUFFERING:
g_console.triple_buffering_enable = true; g_extern.console.screen.state.triple_buffering.enable = true;
break; break;
case S_DEF_SAVE_STATE: case S_DEF_SAVE_STATE:
g_extern.state_slot = 0; g_extern.state_slot = 0;
break; break;
case S_DEF_SCALE_ENABLED: case S_DEF_SCALE_ENABLED:
g_console.fbo_enabled = true; g_settings.video.fbo.enable = true;
g_settings.video.fbo_scale_x = 2.0f; g_settings.video.fbo.scale_x = 2.0f;
g_settings.video.fbo_scale_y = 2.0f; g_settings.video.fbo.scale_y = 2.0f;
break; break;
case S_DEF_SCALE_FACTOR: case S_DEF_SCALE_FACTOR:
g_settings.video.fbo_scale_x = 2.0f; g_settings.video.fbo.scale_x = 2.0f;
g_settings.video.fbo_scale_y = 2.0f; g_settings.video.fbo.scale_y = 2.0f;
break; 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."); 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; break;
case S_MSG_EXTRACTED_ZIPFILE: 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: case ZIP_EXTRACT_TO_CURRENT_DIR:
snprintf(str, sizeof(str), "INFO - ZIP file successfully extracted to current directory."); 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; break;
case S_MSG_LOADING_ROM: 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); snprintf(str, sizeof(str), "INFO - Loading %s...", tmp);
break; break;
case S_MSG_DIR_LOADING_ERROR: 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) switch (setting)
{ {
case S_LBL_ASPECT_RATIO: 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; break;
case S_LBL_SHADER: case S_LBL_SHADER:
snprintf(str, size, "Shader #1: %s", g_settings.video.cg_shader_path); 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); snprintf(str, size, "RetroArch %s", PACKAGE_VERSION);
break; break;
case S_LBL_SCALE_FACTOR: 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; break;
case S_LBL_ROTATION: 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; break;
case S_LBL_LOAD_STATE_SLOT: case S_LBL_LOAD_STATE_SLOT:
snprintf(str, size, "Load State #%d", g_extern.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: case S_LBL_ZIP_EXTRACT:
{ {
char msg[128]; 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: case ZIP_EXTRACT_TO_CURRENT_DIR:
snprintf(msg, sizeof(msg), "Current dir"); snprintf(msg, sizeof(msg), "Current dir");
@ -353,8 +355,8 @@ void rarch_settings_set_default(void)
#endif #endif
#ifdef HAVE_FBO #ifdef HAVE_FBO
g_settings.video.fbo_scale_x = 2.0f; g_settings.video.fbo.scale_x = 2.0f;
g_settings.video.fbo_scale_y = 2.0f; g_settings.video.fbo.scale_y = 2.0f;
#endif #endif
#ifdef GEKKO #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_x = 0.05f;
g_settings.video.msg_pos_y = 0.90f; g_settings.video.msg_pos_y = 0.90f;
g_settings.video.aspect_ratio = -1.0f; 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 #ifdef _XBOX360
g_console.color_format = 0; g_settings.video.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;
#endif #endif
// g_extern // 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.state_slot = 0;
g_extern.audio_data.mute = 0; g_extern.audio_data.mute = 0;
g_extern.verbose = true; 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
} }

View File

@ -82,7 +82,7 @@ void rarch_set_auto_viewport(unsigned width, unsigned height)
void rarch_set_core_viewport() void rarch_set_core_viewport()
{ {
if (!g_console.emulator_initialized) if (!g_extern.console.emulator_initialized)
return; return;
// fallback to 1:1 pixel ratio if none provided // 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"); RARCH_WARN("Shader support is not implemented for this build.\n");
#endif #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); rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180);
} }
#endif #endif

View File

@ -17,9 +17,9 @@
#ifndef RARCH_CONSOLE_VIDEO_H__ #ifndef RARCH_CONSOLE_VIDEO_H__
#define 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 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) #define MIN_SCALING_FACTOR (1.0f)

View File

@ -310,7 +310,7 @@ static void render_messagebox(rgui_handle_t *rgui, const char *message)
static void render_text(rgui_handle_t *rgui) 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; return;
size_t begin = rgui->directory_ptr >= TERM_HEIGHT / 2 ? size_t begin = rgui->directory_ptr >= TERM_HEIGHT / 2 ?
@ -377,7 +377,7 @@ static void render_text(rgui_handle_t *rgui)
break; break;
#ifdef HW_RVL #ifdef HW_RVL
case RGUI_SETTINGS_VIDEO_SOFT_FILTER: 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; break;
#endif #endif
#ifdef GEKKO #ifdef GEKKO
@ -386,13 +386,13 @@ static void render_text(rgui_handle_t *rgui)
break; break;
#endif #endif
case RGUI_SETTINGS_VIDEO_GAMMA: 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; break;
case RGUI_SETTINGS_VIDEO_ASPECT_RATIO: 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; break;
case RGUI_SETTINGS_VIDEO_OVERSCAN: 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; break;
case RGUI_SETTINGS_VIDEO_ROTATION: 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); snprintf(type_str, sizeof(type_str), "%.3f", g_settings.audio.rate_control_delta);
break; break;
case RGUI_SETTINGS_ZIP_EXTRACT: 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: case ZIP_EXTRACT_TO_CURRENT_DIR:
snprintf(type_str, sizeof(type_str), "Current"); snprintf(type_str, sizeof(type_str), "Current");
@ -422,7 +422,7 @@ static void render_text(rgui_handle_t *rgui)
} }
break; break;
case RGUI_SETTINGS_DEBUG_TEXT: 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; break;
case RGUI_SETTINGS_CUSTOM_VIEWPORT: case RGUI_SETTINGS_CUSTOM_VIEWPORT:
case RGUI_SETTINGS_CORE: 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 #ifdef HW_RVL
case RGUI_SETTINGS_VIDEO_SOFT_FILTER: 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(); driver.video->apply_state_changes();
} }
break; break;
@ -594,22 +594,22 @@ static void rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t
case RGUI_SETTINGS_VIDEO_GAMMA: case RGUI_SETTINGS_VIDEO_GAMMA:
if (action == RGUI_ACTION_START) if (action == RGUI_ACTION_START)
{ {
g_console.gamma_correction = 0; g_extern.console.screen.gamma_correction = 0;
driver.video->apply_state_changes(); driver.video->apply_state_changes();
} }
else if (action == RGUI_ACTION_LEFT) 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(); driver.video->apply_state_changes();
} }
} }
else if (action == RGUI_ACTION_RIGHT) 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(); 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); rarch_settings_change(S_ASPECT_RATIO_DECREMENT);
else if (action == RGUI_ACTION_RIGHT) else if (action == RGUI_ACTION_RIGHT)
rarch_settings_change(S_ASPECT_RATIO_INCREMENT); 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; break;
case RGUI_SETTINGS_VIDEO_ROTATION: case RGUI_SETTINGS_VIDEO_ROTATION:
if (action == RGUI_ACTION_START) if (action == RGUI_ACTION_START)
{ {
rarch_settings_default(S_DEF_AUDIO_CONTROL_RATE); 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) else if (action == RGUI_ACTION_LEFT)
{ {
rarch_settings_change(S_ROTATION_DECREMENT); 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) else if (action == RGUI_ACTION_RIGHT)
{ {
rarch_settings_change(S_ROTATION_INCREMENT); rarch_settings_change(S_ROTATION_INCREMENT);
video_set_rotation_func(g_console.screen_orientation); video_set_rotation_func(g_extern.console.screen.orientation);
} }
break; break;
case RGUI_SETTINGS_VIDEO_OVERSCAN: case RGUI_SETTINGS_VIDEO_OVERSCAN:
@ -673,23 +673,23 @@ static void rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t
break; break;
case RGUI_SETTINGS_ZIP_EXTRACT: case RGUI_SETTINGS_ZIP_EXTRACT:
if (action == RGUI_ACTION_START) if (action == RGUI_ACTION_START)
g_console.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR; g_extern.file_state.zip_extract_mode = ZIP_EXTRACT_TO_CURRENT_DIR;
else if (action == RGUI_ACTION_LEFT && g_console.zip_extract_mode > 0) else if (action == RGUI_ACTION_LEFT && g_extern.file_state.zip_extract_mode > 0)
g_console.zip_extract_mode--; g_extern.file_state.zip_extract_mode--;
else if (action == RGUI_ACTION_RIGHT && g_console.zip_extract_mode < LAST_ZIP_EXTRACT) else if (action == RGUI_ACTION_RIGHT && g_extern.file_state.zip_extract_mode < LAST_ZIP_EXTRACT)
g_console.zip_extract_mode++; g_extern.file_state.zip_extract_mode++;
break; break;
case RGUI_SETTINGS_DEBUG_TEXT: case RGUI_SETTINGS_DEBUG_TEXT:
if (action == RGUI_ACTION_START || action == RGUI_ACTION_LEFT) 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) else if (action == RGUI_ACTION_RIGHT)
g_console.fps_info_msg_enable = true; g_extern.console.rmenu.state.msg_fps.enable = true;
break; break;
case RGUI_SETTINGS_RESTART_EMULATOR: case RGUI_SETTINGS_RESTART_EMULATOR:
if (action == RGUI_ACTION_OK) if (action == RGUI_ACTION_OK)
{ {
#ifdef GEKKO #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 #endif
rarch_settings_change(S_RETURN_TO_LAUNCHER); 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); 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("Save State", RGUI_SETTINGS_SAVESTATE_SAVE);
RGUI_MENU_ITEM("Load State", RGUI_SETTINGS_SAVESTATE_LOAD); 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: case RGUI_ACTION_UP:
if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT)
{ {
g_console.viewports.custom_vp.y -= 1; g_extern.console.screen.viewports.custom_vp.y -= 1;
g_console.viewports.custom_vp.height += 1; g_extern.console.screen.viewports.custom_vp.height += 1;
} }
else else
{ g_extern.console.screen.viewports.custom_vp.height -= 1;
g_console.viewports.custom_vp.height -= 1;
}
driver.video->apply_state_changes(); driver.video->apply_state_changes();
break; break;
case RGUI_ACTION_DOWN: case RGUI_ACTION_DOWN:
if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT)
{ {
g_console.viewports.custom_vp.y += 1; g_extern.console.screen.viewports.custom_vp.y += 1;
g_console.viewports.custom_vp.height -= 1; g_extern.console.screen.viewports.custom_vp.height -= 1;
} }
else else
{ g_extern.console.screen.viewports.custom_vp.height += 1;
g_console.viewports.custom_vp.height += 1;
}
driver.video->apply_state_changes(); driver.video->apply_state_changes();
break; break;
case RGUI_ACTION_LEFT: case RGUI_ACTION_LEFT:
if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT)
{ {
g_console.viewports.custom_vp.x -= 1; g_extern.console.screen.viewports.custom_vp.x -= 1;
g_console.viewports.custom_vp.width += 1; g_extern.console.screen.viewports.custom_vp.width += 1;
} }
else else
{ g_extern.console.screen.viewports.custom_vp.width -= 1;
g_console.viewports.custom_vp.width -= 1;
}
driver.video->apply_state_changes(); driver.video->apply_state_changes();
break; break;
case RGUI_ACTION_RIGHT: case RGUI_ACTION_RIGHT:
if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT)
{ {
g_console.viewports.custom_vp.x += 1; g_extern.console.screen.viewports.custom_vp.x += 1;
g_console.viewports.custom_vp.width -= 1; g_extern.console.screen.viewports.custom_vp.width -= 1;
} }
else else
{ g_extern.console.screen.viewports.custom_vp.width += 1;
g_console.viewports.custom_vp.width += 1;
}
driver.video->apply_state_changes(); driver.video->apply_state_changes();
break; break;
@ -911,15 +903,15 @@ void rgui_viewport_iterate(rgui_handle_t *rgui, rgui_action_t action)
#ifdef GEKKO #ifdef GEKKO
if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT)
{ {
g_console.viewports.custom_vp.width += g_console.viewports.custom_vp.x; g_extern.console.screen.viewports.custom_vp.width += g_extern.console.screen.viewports.custom_vp.x;
g_console.viewports.custom_vp.height += g_console.viewports.custom_vp.y; g_extern.console.screen.viewports.custom_vp.height += g_extern.console.screen.viewports.custom_vp.y;
g_console.viewports.custom_vp.x = 0; g_extern.console.screen.viewports.custom_vp.x = 0;
g_console.viewports.custom_vp.y = 0; g_extern.console.screen.viewports.custom_vp.y = 0;
} }
else else
{ {
g_console.viewports.custom_vp.width = gx->win_width - g_console.viewports.custom_vp.x; g_extern.console.screen.viewports.custom_vp.width = gx->win_width - g_extern.console.screen.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.height = gx->win_height - g_extern.console.screen.viewports.custom_vp.y;
} }
#endif #endif
driver.video->apply_state_changes(); 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) else if (type == RGUI_SETTINGS_CUSTOM_VIEWPORT && action == RGUI_ACTION_OK)
{ {
rgui_list_push(rgui->path_stack, "", type, rgui->directory_ptr); rgui_list_push(rgui->path_stack, "", type, rgui->directory_ptr);
g_console.aspect_ratio_index = ASPECT_RATIO_CUSTOM; g_settings.video.aspect_ratio_idx = ASPECT_RATIO_CUSTOM;
video_set_aspect_ratio_func(g_console.aspect_ratio_index); video_set_aspect_ratio_func(g_settings.video.aspect_ratio_idx);
} }
else else
{
rgui_settings_toggle_setting(type, action, menu_type); rgui_settings_toggle_setting(type, action, menu_type);
}
break; break;
case RGUI_ACTION_REFRESH: case RGUI_ACTION_REFRESH:
@ -1135,7 +1125,7 @@ void rgui_iterate(rgui_handle_t *rgui, rgui_action_t action)
else else
{ {
snprintf(rgui->path_buf, sizeof(rgui->path_buf), "%s/%s", dir, path); 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->need_refresh = true; // in case of zip extract
rgui->msg_force = true; 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 // refresh values in case the stack changed
rgui_list_back(rgui->path_stack, &dir, &menu_type, &directory_ptr); 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->need_refresh = false;
rgui_list_clear(rgui->folder_buf); rgui_list_clear(rgui->folder_buf);

View File

@ -43,7 +43,7 @@
#define CURRENT_PATH_Y_POSITION 0.15f #define CURRENT_PATH_Y_POSITION 0.15f
#define CURRENT_PATH_FONT_SIZE FONT_SIZE #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 #define NUM_ENTRY_PER_PAGE 15

File diff suppressed because it is too large Load Diff

234
general.h
View File

@ -92,15 +92,26 @@ struct settings
bool crop_overscan; bool crop_overscan;
float aspect_ratio; float aspect_ratio;
bool aspect_ratio_auto; bool aspect_ratio_auto;
unsigned aspect_ratio_idx;
char cg_shader_path[PATH_MAX]; char cg_shader_path[PATH_MAX];
char bsnes_shader_path[PATH_MAX]; char bsnes_shader_path[PATH_MAX];
char filter_path[PATH_MAX]; char filter_path[PATH_MAX];
enum rarch_shader_type shader_type; enum rarch_shader_type shader_type;
float refresh_rate; float refresh_rate;
#ifdef RARCH_CONSOLE
unsigned color_format;
#endif
bool render_to_texture; 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]; char second_pass_shader[PATH_MAX];
bool second_pass_smooth; bool second_pass_smooth;
char shader_dir[PATH_MAX]; char shader_dir[PATH_MAX];
@ -155,6 +166,7 @@ struct settings
#ifdef RARCH_CONSOLE #ifdef RARCH_CONSOLE
unsigned currently_selected_controller_no; unsigned currently_selected_controller_no;
unsigned dpad_emulation[MAX_PLAYERS]; unsigned dpad_emulation[MAX_PLAYERS];
unsigned map_dpad_to_stick;
unsigned device[MAX_PLAYERS]; unsigned device[MAX_PLAYERS];
#endif #endif
bool netplay_client_swap_input; bool netplay_client_swap_input;
@ -188,73 +200,6 @@ struct settings
bool stdin_cmd_enable; 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 enum rarch_game_type
{ {
RARCH_CART_NORMAL = 0, RARCH_CART_NORMAL = 0,
@ -264,6 +209,34 @@ enum rarch_game_type
RARCH_CART_SUFAMI 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. // All run-time- / command line flag-related globals go here.
struct global struct global
{ {
@ -465,26 +438,128 @@ struct global
char sha256[64 + 1]; 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 struct
{ {
bool menus_hd_enable; bool block_config_read;
bool frame_advance_enable; bool initialize_rarch_enable;
bool ingame_menu_enable; unsigned emulator_initialized;
bool enable;
unsigned ingame_menu_item; struct
unsigned mode; {
float font_size; 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; } console;
struct struct
{ {
char rom_path[PATH_MAX]; char rom_path[PATH_MAX];
char cgp_path[PATH_MAX];
char input_cfg_path[PATH_MAX];
#ifdef HAVE_ZLIB #ifdef HAVE_ZLIB
unsigned zip_extract_mode; unsigned zip_extract_mode;
#endif #endif
} filebrowser_state; #ifdef _XBOX
DWORD volume_device_type;
#endif
} file_state;
#ifdef HAVE_XML #ifdef HAVE_XML
cheat_manager_t *cheat; cheat_manager_t *cheat;
@ -527,9 +602,6 @@ void rarch_state_slot_decrease(void);
// Public data structures // Public data structures
extern struct settings g_settings; extern struct settings g_settings;
extern struct global g_extern; extern struct global g_extern;
#ifdef RARCH_CONSOLE
extern struct console_settings g_console;
#endif
///////// /////////
#include "retroarch_logger.h" #include "retroarch_logger.h"

View File

@ -84,7 +84,7 @@ static void gfx_ctx_get_available_resolutions (void)
uint32_t resolution_count; uint32_t resolution_count;
uint16_t num_videomodes; uint16_t num_videomodes;
if (g_console.check_available_resolutions) if (g_extern.console.screen.resolutions.check)
return; return;
defaultresolution = true; defaultresolution = true;
@ -109,30 +109,30 @@ static void gfx_ctx_get_available_resolutions (void)
resolution_count++; resolution_count++;
} }
g_console.supported_resolutions = malloc(resolution_count * sizeof(uint32_t)); g_extern.console.screen.resolutions.list = malloc(resolution_count * sizeof(uint32_t));
g_console.supported_resolutions_count = 0; g_extern.console.screen.resolutions.count = 0;
for (unsigned i = 0; i < num_videomodes; i++) for (unsigned i = 0; i < num_videomodes; i++)
{ {
if(gfx_ctx_check_resolution(videomode[i])) if(gfx_ctx_check_resolution(videomode[i]))
{ {
g_console.supported_resolutions[g_console.supported_resolutions_count++] = videomode[i]; g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.count++] = videomode[i];
g_console.initial_resolution_id = 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; 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 /* In case we didn't specify a resolution - make the last resolution
that was added to the list (the highest resolution) the default resolution */ that was added to the list (the highest resolution) the default resolution */
if (g_console.current_resolution_id > num_videomodes || defaultresolution) if (g_extern.console.screen.resolutions.current.id > num_videomodes || defaultresolution)
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;
g_console.check_available_resolutions = true; g_extern.console.screen.resolutions.check = true;
} }
static void gfx_ctx_set_swap_interval(unsigned interval) static void gfx_ctx_set_swap_interval(unsigned interval)
@ -265,17 +265,17 @@ static bool gfx_ctx_init(void)
params.depthFormat = GL_NONE; params.depthFormat = GL_NONE;
params.multisamplingMode = GL_MULTISAMPLING_NONE_SCE; 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.enable |= PSGL_DEVICE_PARAMETERS_BUFFERING_MODE;
params.bufferingMode = PSGL_BUFFERING_MODE_TRIPLE; 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.enable |= PSGL_DEVICE_PARAMETERS_WIDTH_HEIGHT;
params.width = gfx_ctx_get_resolution_width(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_console.current_resolution_id); params.height = gfx_ctx_get_resolution_height(g_extern.console.screen.resolutions.current.id);
} }
gl_device = psglCreateDeviceExtended(&params); gl_device = psglCreateDeviceExtended(&params);

View File

@ -94,8 +94,8 @@ static void gfx_ctx_xdk_clear(void)
{ {
xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data; xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data;
#ifdef _XBOX1 #ifdef _XBOX1
unsigned flicker_filter = g_console.flicker_filter; unsigned flicker_filter = g_extern.console.screen.state.flicker_filter.value;
bool soft_filter_enable = g_console.soft_display_filter_enable; bool soft_filter_enable = g_extern.console.screen.state.soft_filter.enable;
#endif #endif
device_ptr->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET, device_ptr->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET,
@ -213,7 +213,7 @@ static bool gfx_ctx_xdk_init(void)
// Safe mode // Safe mode
d3d->d3dpp.BackBufferWidth = 640; d3d->d3dpp.BackBufferWidth = 640;
d3d->d3dpp.BackBufferHeight = 480; 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! // Only valid in PAL mode, not valid for HDTV modes!
if(XGetVideoStandard() == XC_VIDEO_STANDARD_PAL_I) 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) 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.BackBufferWidth = 640;
d3d->d3dpp.BackBufferHeight = 480; d3d->d3dpp.BackBufferHeight = 480;
d3d->d3dpp.Flags = D3DPRESENTFLAG_PROGRESSIVE; d3d->d3dpp.Flags = D3DPRESENTFLAG_PROGRESSIVE;
} }
else if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_720p) else if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_720p)
{ {
g_console.menus_hd_enable = true; g_extern.console.rmenu.state.menus_hd.enable = true;
d3d->d3dpp.BackBufferWidth = 1280; d3d->d3dpp.BackBufferWidth = 1280;
d3d->d3dpp.BackBufferHeight = 720; d3d->d3dpp.BackBufferHeight = 720;
d3d->d3dpp.Flags = D3DPRESENTFLAG_PROGRESSIVE; d3d->d3dpp.Flags = D3DPRESENTFLAG_PROGRESSIVE;
} }
else if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_1080i) else if(d3d->video_mode & XC_VIDEO_FLAGS_HDTV_1080i)
{ {
g_console.menus_hd_enable = true; g_extern.console.rmenu.state.menus_hd.enable = true;
d3d->d3dpp.BackBufferWidth = 1920; d3d->d3dpp.BackBufferWidth = 1920;
d3d->d3dpp.BackBufferHeight = 1080; d3d->d3dpp.BackBufferHeight = 1080;
d3d->d3dpp.Flags = D3DPRESENTFLAG_INTERLACED; d3d->d3dpp.Flags = D3DPRESENTFLAG_INTERLACED;
} }
} }
d3d->win_width = d3d->d3dpp.BackBufferWidth; d3d->win_width = d3d->d3dpp.BackBufferWidth;
@ -345,19 +345,19 @@ static bool gfx_ctx_xdk_init(void)
if(!d3d->video_mode.fIsWideScreen) if(!d3d->video_mode.fIsWideScreen)
d3d->d3dpp.Flags |= D3DPRESENTFLAG_NO_LETTERBOX; 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.BackBufferWidth = d3d->video_mode.fIsHiDef ? 1280 : 640;
d3d->d3dpp.BackBufferHeight = d3d->video_mode.fIsHiDef ? 720 : 480; 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); d3d->d3dpp.FrontBufferFormat = (D3DFORMAT)MAKESRGBFMT(D3DFMT_LE_X8R8G8B8);
} }
else 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.FrontBufferFormat = D3DFMT_LE_X8R8G8B8;
} }
d3d->d3dpp.MultiSampleQuality = 0; d3d->d3dpp.MultiSampleQuality = 0;
@ -422,11 +422,11 @@ static bool gfx_ctx_xdk_init(void)
vp.MaxZ = 1.0f; vp.MaxZ = 1.0f;
d3d->d3d_render_device->SetViewport(&vp); d3d->d3d_render_device->SetViewport(&vp);
if(g_console.viewports.custom_vp.width == 0) if(g_extern.console.screen.viewports.custom_vp.width == 0)
g_console.viewports.custom_vp.width = vp.Width; g_extern.console.screen.viewports.custom_vp.width = vp.Width;
if(g_console.viewports.custom_vp.height == 0) if(g_extern.console.screen.viewports.custom_vp.height == 0)
g_console.viewports.custom_vp.height = vp.Height; g_extern.console.screen.viewports.custom_vp.height = vp.Height;
return true; return true;
} }

View File

@ -531,8 +531,8 @@ void gl_init_fbo(gl_t *gl, unsigned width, unsigned height)
if (!scale.valid) if (!scale.valid)
{ {
scale.scale_x = g_settings.video.fbo_scale_x; scale.scale_x = g_settings.video.fbo.scale_x;
scale.scale_y = g_settings.video.fbo_scale_y; scale.scale_y = g_settings.video.fbo.scale_y;
scale.type_x = scale.type_y = RARCH_SCALE_INPUT; scale.type_x = scale.type_y = RARCH_SCALE_INPUT;
scale.valid = true; 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) void gl_set_projection(gl_t *gl, struct gl_ortho *ortho, bool allow_rotate)
{ {
#ifdef RARCH_CONSOLE #ifdef RARCH_CONSOLE
if (g_console.overscan_enable) if (g_extern.console.screen.state.overscan.enable)
{ {
ortho->left = -g_console.overscan_amount / 2; ortho->left = -g_extern.console.screen.overscan_amount / 2;
ortho->right = 1 + g_console.overscan_amount / 2; ortho->right = 1 + g_extern.console.screen.overscan_amount / 2;
ortho->bottom = -g_console.overscan_amount / 2; ortho->bottom = -g_extern.console.screen.overscan_amount / 2;
} }
#endif #endif
@ -618,12 +618,12 @@ void gl_set_viewport(gl_t *gl, unsigned width, unsigned height, bool force_full,
float delta; float delta;
#ifdef RARCH_CONSOLE #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; x = g_extern.console.screen.viewports.custom_vp.x;
y = g_console.viewports.custom_vp.y; y = g_extern.console.screen.viewports.custom_vp.y;
width = g_console.viewports.custom_vp.width; width = g_extern.console.screen.viewports.custom_vp.width;
height = g_console.viewports.custom_vp.height; height = g_extern.console.screen.viewports.custom_vp.height;
} }
else else
#endif #endif
@ -1487,16 +1487,16 @@ static void gl_start(void)
video_info.smooth = g_settings.video.smooth; video_info.smooth = g_settings.video.smooth;
video_info.input_scale = 2; video_info.input_scale = 2;
video_info.fullscreen = true; 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.width = g_extern.console.screen.viewports.custom_vp.width;
video_info.height = g_console.viewports.custom_vp.height; video_info.height = g_extern.console.screen.viewports.custom_vp.height;
} }
driver.video_data = gl_init(&video_info, NULL, NULL); driver.video_data = gl_init(&video_info, NULL, NULL);
gl_t *gl = (gl_t*)driver.video_data; 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(); gl->ctx_driver->get_available_resolutions();
if (gl->ctx_driver->menu_init) if (gl->ctx_driver->menu_init)
gl->ctx_driver->menu_init(); gl->ctx_driver->menu_init();
@ -1504,7 +1504,7 @@ static void gl_start(void)
#ifdef HAVE_FBO #ifdef HAVE_FBO
// FBO mode has to be enabled once even if FBO mode has to be // FBO mode has to be enabled once even if FBO mode has to be
// turned off // 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_DEINIT);
gl->ctx_driver->apply_fbo_state_changes(FBO_INIT); 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; (void)data;
gl_t *gl = driver.video_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); 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(); 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; g_settings.video.force_aspect = false;
gl->keep_aspect = true; gl->keep_aspect = true;
gl->should_resize = true; gl->should_resize = true;

View File

@ -284,7 +284,7 @@ static void menu_loop(void)
bool first_held = false; bool first_held = false;
bool initial_held = true; bool initial_held = true;
g_extern.console.enable = true; g_extern.console.rmenu.state.rmenu.enable = true;
gx->menu_render = true; gx->menu_render = true;
do do
@ -363,34 +363,34 @@ static void menu_loop(void)
if(IS_TIMER_EXPIRED(gx)) if(IS_TIMER_EXPIRED(gx))
{ {
// if we want to force goto the emulation loop, skip this // 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) if(goto_menu_key_pressed)
{ {
g_extern.console.enable = (goto_menu_key_pressed && g_console.emulator_initialized) ? false : true; g_extern.console.rmenu.state.rmenu.enable = (goto_menu_key_pressed && g_extern.console.emulator_initialized) ? false : true;
g_extern.console.mode = g_extern.console.enable ? MODE_MENU : MODE_EMULATION; g_extern.console.rmenu.mode = g_extern.console.rmenu.state.rmenu.enable ? MODE_MENU : MODE_EMULATION;
} }
} }
} }
if(quit_key_pressed) if(quit_key_pressed)
{ {
g_extern.console.enable = false; g_extern.console.rmenu.state.rmenu.enable = false;
g_extern.console.mode = MODE_EXIT; g_extern.console.rmenu.mode = MODE_EXIT;
} }
// set a timer delay so that we don't instantly switch back to the menu when // 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) // 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); SET_TIMER_EXPIRATION(gx, 30);
} }
}while(g_extern.console.enable); }while(g_extern.console.rmenu.state.rmenu.enable);
gx->menu_render = false; 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) static void menu_init(void)
@ -399,7 +399,7 @@ static void menu_init(void)
menu_framebuf, RGUI_WIDTH * sizeof(uint16_t), menu_framebuf, RGUI_WIDTH * sizeof(uint16_t),
NULL /* _binary_console_font_bmp_start */, _binary_console_font_bin_start, folder_cb, NULL); 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); 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) if (argc > 2 && argv[1] != NULL && argv[2] != NULL)
{ {
char rom[PATH_MAX]; 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]); 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; g_extern.file_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); rarch_console_load_game_wrap(rom, g_extern.file_state.zip_extract_mode, S_DELAY_1);
rgui_iterate(rgui, RGUI_ACTION_MESSAGE); rgui_iterate(rgui, RGUI_ACTION_MESSAGE);
gx->menu_render = true; gx->menu_render = true;
@ -561,30 +561,30 @@ int main(int argc, char *argv[])
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
} }
else else
g_console.external_launcher_support = EXTERN_LAUNCHER_SALAMANDER; g_extern.console.external_launch.support = EXTERN_LAUNCHER_SALAMANDER;
begin_loop: begin_loop:
if(g_extern.console.mode == MODE_EMULATION) if(g_extern.console.rmenu.mode == MODE_EMULATION)
{ {
bool repeat = false; bool repeat = false;
input_gx.poll(NULL); 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(); audio_start_func();
do{ do{
repeat = rarch_main_iterate(); 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(); audio_stop_func();
} }
else if(g_extern.console.mode == MODE_MENU) else if(g_extern.console.rmenu.mode == MODE_MENU)
{ {
menu_loop(); menu_loop();
if (g_extern.console.mode != MODE_EXIT) if (g_extern.console.rmenu.mode != MODE_EXIT)
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
} }
else else
@ -595,7 +595,7 @@ begin_shutdown:
rarch_config_save(default_paths.config_file); rarch_config_save(default_paths.config_file);
config_save_keybinds(input_path); config_save_keybinds(input_path);
if(g_console.emulator_initialized) if(g_extern.console.emulator_initialized)
rarch_main_deinit(); rarch_main_deinit();
input_gx.free(NULL); input_gx.free(NULL);
@ -609,8 +609,8 @@ begin_shutdown:
fclose(log_fp); fclose(log_fp);
#endif #endif
if(g_console.return_to_launcher) if(g_extern.console.external_launch.enable)
rarch_console_exec(g_console.launch_app_on_exit); rarch_console_exec(g_extern.console.external_launch.launch_app);
exit(0); exit(0);
} }

View File

@ -472,19 +472,19 @@ static bool gx_key_pressed(void *data, int key)
); );
uint64_t quit_rarch = pad_state[0] & GX_QUIT_KEY; uint64_t quit_rarch = pad_state[0] & GX_QUIT_KEY;
bool retval = false; 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_extern.console.rmenu.mode = MODE_MENU;
g_console.ingame_menu_enable = true; g_extern.console.rmenu.state.ingame_menu.enable = true;
SET_TIMER_EXPIRATION(gx, 30); SET_TIMER_EXPIRATION(gx, 30);
} }
if(quit_rarch) 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; return retval;
} }
default: default:

View File

@ -251,12 +251,12 @@ void gx_set_aspect_ratio(void *data, unsigned aspectratio_idx)
{ {
gx_video_t *gx = (gx_video_t*)driver.video_data; 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); 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(); 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; g_settings.video.force_aspect = false;
gx->keep_aspect = true; gx->keep_aspect = true;
gx->should_resize = 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; unsigned width = gx->win_width, height = gx->win_height;
#ifdef HW_RVL #ifdef HW_RVL
VIDEO_SetTrapFilter(g_console.soft_display_filter_enable); VIDEO_SetTrapFilter(g_extern.console.screen.state.soft_filter.enable);
#endif #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 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; float delta;
#ifdef RARCH_CONSOLE #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_extern.console.screen.viewports.custom_vp.x = 0;
g_console.viewports.custom_vp.y = 0; g_extern.console.screen.viewports.custom_vp.y = 0;
g_console.viewports.custom_vp.width = gx->win_width; g_extern.console.screen.viewports.custom_vp.width = gx->win_width;
g_console.viewports.custom_vp.height = gx->win_height; g_extern.console.screen.viewports.custom_vp.height = gx->win_height;
} }
x = g_console.viewports.custom_vp.x; x = g_extern.console.screen.viewports.custom_vp.x;
y = g_console.viewports.custom_vp.y; y = g_extern.console.screen.viewports.custom_vp.y;
width = g_console.viewports.custom_vp.width; width = g_extern.console.screen.viewports.custom_vp.width;
height = g_console.viewports.custom_vp.height; height = g_extern.console.screen.viewports.custom_vp.height;
} }
else else
#endif #endif
@ -664,12 +664,12 @@ static void gx_resize(gx_video_t *gx)
Mtx44 m1, m2; Mtx44 m1, m2;
float top = 1, bottom = -1, left = -1, right = 1; 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; top -= g_extern.console.screen.overscan_amount / 2;
left += g_console.overscan_amount / 2; left += g_extern.console.screen.overscan_amount / 2;
right -= g_console.overscan_amount / 2; right -= g_extern.console.screen.overscan_amount / 2;
bottom += g_console.overscan_amount / 2; bottom += g_extern.console.screen.overscan_amount / 2;
} }
guOrtho(m1, top, bottom, left, right, 0, 1); guOrtho(m1, top, bottom, left, right, 0, 1);
unsigned degrees; unsigned degrees;
@ -839,7 +839,7 @@ static bool gx_frame(void *data, const void *frame,
GX_DrawDone(); GX_DrawDone();
} }
if (g_console.fps_info_msg_enable) if (g_extern.console.rmenu.state.msg_fps.enable)
{ {
static char fps_txt[128]; static char fps_txt[128];
char mem1_txt[128]; char mem1_txt[128];

View File

@ -70,7 +70,7 @@ static void callback_sysutil_exit(uint64_t status, uint64_t param, void *userdat
(void) param; (void) param;
(void) userdata; (void) userdata;
#ifdef HAVE_OSKUTIL #ifdef HAVE_OSKUTIL
oskutil_params *osk = &g_console.oskutil_handle; oskutil_params *osk = &g_extern.console.misc.oskutil_handle;
#endif #endif
gl_t *gl = driver.video_data; 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])) 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"); RARCH_LOG("Started from multiMAN, auto-game start enabled.\n");
} }
else else
#endif #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"); 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); ret = cellGameContentPermit(contentInfoPath, default_paths.port_dir);
#ifdef HAVE_MULTIMAN #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(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); 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(); input_ps3.post_init();
#if (CELL_SDK_VERSION > 0x340000) && !defined(__PSL1GHT__) #if (CELL_SDK_VERSION > 0x340000) && !defined(__PSL1GHT__)
if (g_console.screenshots_enable) if (g_extern.console.screen.state.screenshots.enable)
{ {
#ifdef HAVE_SYSMODULES #ifdef HAVE_SYSMODULES
cellSysmoduleLoadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT); cellSysmoduleLoadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT);
@ -309,7 +309,7 @@ int main(int argc, char *argv[])
#endif #endif
} }
#ifdef HAVE_SYSUTILS #ifdef HAVE_SYSUTILS
if (g_console.custom_bgm_enable) if (g_extern.console.sound.custom_bgm.enable)
cellSysutilEnableBgmPlayback(); cellSysutilEnableBgmPlayback();
#endif #endif
#endif #endif
@ -318,21 +318,21 @@ int main(int argc, char *argv[])
driver.video = &video_gl; driver.video = &video_gl;
#ifdef HAVE_OSKUTIL #ifdef HAVE_OSKUTIL
oskutil_params *osk = &g_console.oskutil_handle; oskutil_params *osk = &g_extern.console.misc.oskutil_handle;
oskutil_init(osk, 0); oskutil_init(osk, 0);
#endif #endif
menu_init(); menu_init();
switch(g_console.external_launcher_support) switch(g_extern.console.external_launch.support)
{ {
case EXTERN_LAUNCHER_SALAMANDER: case EXTERN_LAUNCHER_SALAMANDER:
g_extern.console.mode = MODE_MENU; g_extern.console.rmenu.mode = MODE_MENU;
break; break;
#ifdef HAVE_MULTIMAN #ifdef HAVE_MULTIMAN
case EXTERN_LAUNCHER_MULTIMAN: case EXTERN_LAUNCHER_MULTIMAN:
RARCH_LOG("Started from multiMAN, will auto-start game.\n"); 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_settings_change(S_START_RARCH);
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
break; break;
@ -342,23 +342,23 @@ int main(int argc, char *argv[])
} }
begin_loop: begin_loop:
if(g_extern.console.mode == MODE_EMULATION) if(g_extern.console.rmenu.mode == MODE_EMULATION)
{ {
bool repeat = false; bool repeat = false;
input_ps3.poll(NULL); 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{ do{
repeat = rarch_main_iterate(); 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(); menu_loop();
if (g_extern.console.mode != MODE_EXIT) if (g_extern.console.rmenu.mode != MODE_EXIT)
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
} }
else else
@ -369,7 +369,7 @@ begin_loop:
begin_shutdown: begin_shutdown:
rarch_config_save(default_paths.config_file); rarch_config_save(default_paths.config_file);
if(g_console.emulator_initialized) if(g_extern.console.emulator_initialized)
rarch_main_deinit(); rarch_main_deinit();
input_ps3.free(NULL); input_ps3.free(NULL);
@ -398,7 +398,7 @@ begin_shutdown:
/* screenshot PRX */ /* screenshot PRX */
#ifndef __PSL1GHT__ #ifndef __PSL1GHT__
if(g_console.screenshots_enable) if(g_extern.console.screen.state.screenshots.enable)
cellSysmoduleUnloadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT); cellSysmoduleUnloadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT);
#endif #endif
@ -423,8 +423,8 @@ begin_shutdown:
#endif #endif
#ifdef HAVE_RARCH_EXEC #ifdef HAVE_RARCH_EXEC
if(g_console.return_to_launcher) if(g_extern.console.external_launch.enable)
rarch_console_exec(g_console.launch_app_on_exit); rarch_console_exec(g_extern.console.external_launch.launch_app);
#endif #endif
return 1; return 1;

View File

@ -95,7 +95,7 @@ static void *ps3_audio_init(const char *device, unsigned rate, unsigned latency)
params.numChannels = AUDIO_CHANNELS; params.numChannels = AUDIO_CHANNELS;
params.numBlocks = AUDIO_BLOCKS; params.numBlocks = AUDIO_BLOCKS;
#ifdef HAVE_HEADSET #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; params.param_attrib = CELL_AUDIO_PORTATTR_OUT_SECONDARY;
else else
#endif #endif

View File

@ -443,11 +443,11 @@ static bool ps3_key_pressed(void *data, int key)
case RARCH_STATE_SLOT_MINUS: case RARCH_STATE_SLOT_MINUS:
return ((state[0] & PS3_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & PS3_GAMEPAD_R2)); return ((state[0] & PS3_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & PS3_GAMEPAD_R2));
case RARCH_FRAMEADVANCE: 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.rmenu.state.rmenu.enable = true;
g_extern.console.ingame_menu_enable = true; g_extern.console.rmenu.state.ingame_menu.enable = true;
g_extern.console.mode = MODE_MENU; g_extern.console.rmenu.mode = MODE_MENU;
} }
return false; return false;
case RARCH_REWIND: 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 r3_pressed = state[0] & PS3_GAMEPAD_R3;
uint32_t l3_pressed = state[0] & PS3_GAMEPAD_L3; uint32_t l3_pressed = state[0] & PS3_GAMEPAD_L3;
bool retval = false; bool retval = false;
g_extern.console.enable = (r3_pressed && l3_pressed && IS_TIMER_EXPIRED(gl)); g_extern.console.rmenu.state.rmenu.enable = (r3_pressed && l3_pressed && IS_TIMER_EXPIRED(gl));
g_extern.console.ingame_menu_enable = r3_pressed && !l3_pressed; 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); 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; return retval;
} }
#endif #endif

View File

@ -2458,10 +2458,6 @@ void rarch_main_clear_state(void)
free(g_extern.system.environment_split); free(g_extern.system.environment_split);
memset(&g_extern, 0, sizeof(g_extern)); memset(&g_extern, 0, sizeof(g_extern));
#ifdef RARCH_CONSOLE
memset(&g_console, 0, sizeof(g_console));
#endif
init_state(); init_state();
} }
@ -2618,7 +2614,7 @@ bool rarch_main_iterate(void)
if (g_extern.system.shutdown) if (g_extern.system.shutdown)
{ {
#ifdef HAVE_RMENU #ifdef HAVE_RMENU
g_extern.console.mode = MODE_EXIT; g_extern.console.rmenu.mode = MODE_EXIT;
#endif #endif
return false; return false;
} }

View File

@ -29,9 +29,6 @@
struct settings g_settings; struct settings g_settings;
struct global g_extern; struct global g_extern;
#ifdef RARCH_CONSOLE
struct console_settings g_console;
#endif
const char *config_get_default_audio(void) const char *config_get_default_audio(void)
{ {
@ -173,8 +170,8 @@ void config_set_defaults(void)
#if defined(HAVE_CG) || defined(HAVE_XML) #if defined(HAVE_CG) || defined(HAVE_XML)
g_settings.video.render_to_texture = render_to_texture; g_settings.video.render_to_texture = render_to_texture;
g_settings.video.fbo_scale_x = fbo_scale_x; g_settings.video.fbo.scale_x = fbo_scale_x;
g_settings.video.fbo_scale_y = fbo_scale_y; g_settings.video.fbo.scale_y = fbo_scale_y;
g_settings.video.second_pass_smooth = second_pass_smooth; g_settings.video.second_pass_smooth = second_pass_smooth;
#endif #endif
@ -238,7 +235,7 @@ static void parse_config_file(void);
void config_load(void) void config_load(void)
{ {
#ifdef RARCH_CONSOLE #ifdef RARCH_CONSOLE
if (!g_console.block_config_read) if (!g_extern.console.block_config_read)
#endif #endif
{ {
config_set_defaults(); 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.bsnes_shader_path, "video_bsnes_shader");
CONFIG_GET_PATH(video.second_pass_shader, "video_second_pass_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_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_x, "video_fbo_scale_x");
CONFIG_GET_FLOAT(video.fbo_scale_y, "video_fbo_scale_y"); 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.second_pass_smooth, "video_second_pass_smooth");
CONFIG_GET_BOOL(video.allow_rotate, "video_allow_rotate"); CONFIG_GET_BOOL(video.allow_rotate, "video_allow_rotate");

View File

@ -81,9 +81,9 @@ static void get_environment_settings (void)
} }
else 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: case XCONTENTDEVICETYPE_HDD:
RARCH_LOG("RetroArch was launched from a content package on HDD.\n"); RARCH_LOG("RetroArch was launched from a content package on HDD.\n");
@ -188,7 +188,7 @@ begin_loop:
input_xinput.poll(NULL); 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{ do{
repeat = rarch_main_iterate(); repeat = rarch_main_iterate();
@ -217,8 +217,8 @@ begin_shutdown:
#endif #endif
input_xinput.free(NULL); input_xinput.free(NULL);
if(g_console.return_to_launcher) if(g_extern.console.external_launch.enable)
rarch_console_exec(g_console.launch_app_on_exit); rarch_console_exec(g_extern.console.external_launch.launch_app);
return 0; return 0;
} }

View File

@ -397,13 +397,13 @@ static void xdk_d3d_set_viewport(bool force_full)
float delta; float delta;
// If the aspect ratios of screen and desired aspect ratio are sufficiently equal (floating point stuff), // 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; delta = (desired_aspect / device_aspect - 1.0) / 2.0 + 0.5;
m_viewport_x_temp = g_console.viewports.custom_vp.x; m_viewport_x_temp = g_extern.console.screen.viewports.custom_vp.x;
m_viewport_y_temp = g_console.viewports.custom_vp.y; m_viewport_y_temp = g_extern.console.screen.viewports.custom_vp.y;
m_viewport_width_temp = g_console.viewports.custom_vp.width; m_viewport_width_temp = g_extern.console.screen.viewports.custom_vp.width;
m_viewport_height_temp = g_console.viewports.custom_vp.height; m_viewport_height_temp = g_extern.console.screen.viewports.custom_vp.height;
} }
else if (device_aspect > desired_aspect) 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, 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 0, &d3d->lpTexture_ot
, NULL , NULL
); );
d3d->d3d_render_device->CreateRenderTarget(512 * g_settings.video.fbo_scale_x, 512 * g_settings.video.fbo_scale_y, 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); 0, 0, &d3d->lpSurface, NULL);
d3d->lpTexture_ot_as16srgb = *d3d->lpTexture_ot; 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); xdk_d3d_init_fbo(d3d);
#endif #endif
xdk_d3d_set_rotation(d3d, g_console.screen_orientation); xdk_d3d_set_rotation(d3d, g_extern.console.screen.orientation);
#if defined(_XBOX1) #if defined(_XBOX1)
/* load debug fonts */ /* load debug fonts */
@ -592,11 +592,11 @@ static bool xdk_d3d_frame(void *data, const void *frame,
#ifdef HAVE_FBO #ifdef HAVE_FBO
D3DSurface* pRenderTarget0; D3DSurface* pRenderTarget0;
#endif #endif
bool menu_enabled = g_console.menu_enable; bool menu_enabled = g_extern.console.rmenu.state.rmenu.enable;
#ifdef _XBOX1 #ifdef _XBOX1
bool fps_enable = g_console.fps_info_msg_enable; bool fps_enable = g_extern.console.rmenu.state.msg_fps.enable;
unsigned flicker_filter = g_console.flicker_filter; unsigned flicker_filter = g_extern.console.screen.state.flicker_filter.value;
bool soft_filter_enable = g_console.soft_display_filter_enable; bool soft_filter_enable = g_extern.console.screen.soft_filter.enable;
#endif #endif
if (d3d->last_width != width || d3d->last_height != height) 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; (void)data;
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_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); 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(); 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; g_settings.video.force_aspect = false;
d3d->should_resize = true; d3d->should_resize = true;
} }

View File

@ -328,11 +328,11 @@ static bool xinput_input_key_pressed(void *data, int key)
case RARCH_STATE_SLOT_MINUS: case RARCH_STATE_SLOT_MINUS:
return ((state[0] & XINPUT1_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER)); return ((state[0] & XINPUT1_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER));
case RARCH_FRAMEADVANCE: case RARCH_FRAMEADVANCE:
if(g_console.frame_advance_enable) if(g_extern.console.screen.state.frame_advance.enable)
{ {
g_console.menu_enable = true; g_extern.console.rmenu.state.rmenu.enable = true;
g_console.ingame_menu_enable = true; g_extern.console.rmenu.mode = MODE_MENU;
g_console.mode_switch = MODE_MENU; g_extern.console.screen.state.ingame_menu.enable = true;
} }
return false; return false;
case RARCH_REWIND: 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 left_thumb_pressed = (state[0] & (1 << RETRO_DEVICE_ID_JOYPAD_L3));
uint32_t right_thumb_pressed = (state[0] & (1 << RETRO_DEVICE_ID_JOYPAD_R3)); 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_extern.console.rmenu.state.rmenu.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.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); 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;
} }
} }