(RARCH_CONSOLE) rmenu.mode is now set with bitmasked values so

as to allow more state management options
This commit is contained in:
twinaphex 2013-01-10 08:46:46 +01:00
parent 6548800152
commit 6ad5d46781
15 changed files with 106 additions and 107 deletions

View File

@ -68,10 +68,11 @@ enum {
enum enum
{ {
MODE_EMULATION = 0, MODE_EMULATION = 1 << 0,
MODE_INIT, MODE_LOAD_GAME = 1 << 1,
MODE_MENU, MODE_INIT = 1 << 2,
MODE_EXIT MODE_MENU = 1 << 3,
MODE_EXIT = 1 << 4,
}; };
enum enum

View File

@ -209,44 +209,31 @@ int rarch_extract_zipfile(const char *zip_path, char *first_file, size_t first_f
#endif #endif
void rarch_console_load_game_wrap(const char *path, unsigned extract_zip_mode, unsigned delay) void rarch_console_load_game_wrap(const char *path, unsigned extract_zip_mode)
{ {
const char *game_to_load;
char first_file_inzip[PATH_MAX];
struct retro_system_info info;
bool extract_zip_cond = false;
bool extract_zip_and_load_game_cond = false;
bool load_game = !extract_zip_cond;
retro_get_system_info(&info);
#ifdef HAVE_ZLIB #ifdef HAVE_ZLIB
extract_zip_cond = (strstr(path, ".zip") || strstr(path, ".ZIP")) if ((strstr(path, ".zip") || strstr(path, ".ZIP"))
&& !info.block_extract; && !g_extern.system.block_extract)
if(extract_zip_cond)
{ {
rarch_extract_zipfile(path, first_file_inzip, sizeof(first_file_inzip), extract_zip_mode); char first_file[PATH_MAX];
first_file[0] = '\0';
rarch_extract_zipfile(path, first_file, sizeof(first_file), extract_zip_mode);
if(g_extern.console.rmenu.state.msg_info.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);
if(g_extern.file_state.zip_extract_mode == ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE)
{
snprintf(g_extern.fullpath, sizeof(g_extern.fullpath), first_file);
goto do_init;
}
else
return;
} }
extract_zip_and_load_game_cond = (extract_zip_cond &&
g_extern.file_state.zip_extract_mode == ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE);
load_game = (extract_zip_and_load_game_cond) || (!extract_zip_cond);
if(extract_zip_and_load_game_cond)
game_to_load = first_file_inzip;
else else
#endif #endif
game_to_load = path; snprintf(g_extern.fullpath, sizeof(g_extern.fullpath), path);
if(load_game) do_init:
{ g_extern.console.rmenu.mode |= (1ULL << MODE_LOAD_GAME);
snprintf(g_extern.fullpath, sizeof(g_extern.fullpath), game_to_load);
rarch_settings_change(S_START_RARCH);
if(g_extern.console.rmenu.state.msg_info.enable)
rarch_settings_msg(S_MSG_LOADING_ROM, delay);
}
} }

View File

@ -26,6 +26,6 @@ enum
}; };
#endif #endif
void rarch_console_load_game_wrap(const char *path, unsigned extract_zip_mode, unsigned delay); void rarch_console_load_game_wrap(const char *path, unsigned extract_zip_mode);
#endif #endif

View File

@ -52,7 +52,7 @@ void rarch_settings_change(unsigned setting)
break; break;
case S_FRAME_ADVANCE: case S_FRAME_ADVANCE:
g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE); g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE);
g_extern.console.rmenu.mode = MODE_EMULATION; g_extern.console.rmenu.mode = (1ULL << 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;
@ -88,20 +88,20 @@ void rarch_settings_change(unsigned setting)
break; break;
case S_QUIT: case S_QUIT:
g_extern.console.rmenu.state.ingame_menu.enable = false; g_extern.console.rmenu.state.ingame_menu.enable = false;
g_extern.console.rmenu.mode = MODE_EXIT; g_extern.console.rmenu.mode = (1ULL << MODE_EXIT);
break; break;
case S_QUIT_RARCH: case S_QUIT_RARCH:
g_extern.console.rmenu.mode = MODE_EXIT; g_extern.console.rmenu.mode = (1ULL << MODE_EXIT);
break; break;
case S_RETURN_TO_GAME: case S_RETURN_TO_GAME:
g_extern.console.rmenu.mode = MODE_EMULATION; g_extern.console.rmenu.mode = (1ULL << MODE_EMULATION);
break; break;
case S_RETURN_TO_LAUNCHER: case S_RETURN_TO_LAUNCHER:
g_extern.console.external_launch.enable = true; g_extern.console.external_launch.enable = true;
g_extern.console.rmenu.mode = MODE_EXIT; g_extern.console.rmenu.mode = (1ULL << MODE_EXIT);
break; break;
case S_RETURN_TO_MENU: case S_RETURN_TO_MENU:
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
break; break;
case S_ROTATION_DECREMENT: case S_ROTATION_DECREMENT:
if(g_extern.console.screen.orientation > 0) if(g_extern.console.screen.orientation > 0)
@ -112,7 +112,7 @@ void rarch_settings_change(unsigned setting)
g_extern.console.screen.orientation++; g_extern.console.screen.orientation++;
break; break;
case S_START_RARCH: case S_START_RARCH:
g_extern.console.rmenu.mode = MODE_INIT; g_extern.console.rmenu.mode = (1ULL << MODE_INIT);
break; break;
case S_REWIND: case S_REWIND:
g_settings.rewind_enable = !g_settings.rewind_enable; g_settings.rewind_enable = !g_settings.rewind_enable;

View File

@ -268,7 +268,7 @@ int main(int argc, char *argv[])
system_process_args(argc, argv); system_process_args(argc, argv);
begin_loop: begin_loop:
if(g_extern.console.rmenu.mode == MODE_EMULATION) if(g_extern.console.rmenu.mode & (1ULL << MODE_EMULATION))
{ {
driver.input->poll(NULL); driver.input->poll(NULL);
driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
@ -276,7 +276,7 @@ begin_loop:
while(rarch_main_iterate()); while(rarch_main_iterate());
audio_stop_func(); audio_stop_func();
} }
else if (g_extern.console.rmenu.mode == MODE_INIT) else if (g_extern.console.rmenu.mode & (1ULL << MODE_INIT))
{ {
if(g_extern.main_is_init) if(g_extern.main_is_init)
rarch_main_deinit(); rarch_main_deinit();
@ -295,16 +295,16 @@ begin_loop:
if (init_ret == 0) if (init_ret == 0)
{ {
RARCH_LOG("rarch_main_init succeeded.\n"); RARCH_LOG("rarch_main_init succeeded.\n");
g_extern.console.rmenu.mode = MODE_EMULATION; g_extern.console.rmenu.mode = (1ULL << MODE_EMULATION);
} }
else else
{ {
RARCH_ERR("rarch_main_init failed.\n"); RARCH_ERR("rarch_main_init failed.\n");
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
rarch_settings_msg(S_MSG_ROM_LOADING_ERROR, S_DELAY_180); rarch_settings_msg(S_MSG_ROM_LOADING_ERROR, S_DELAY_180);
} }
} }
else if(g_extern.console.rmenu.mode == MODE_MENU) else if(g_extern.console.rmenu.mode & (1ULL << MODE_MENU))
while(rmenu_iterate()); while(rmenu_iterate());
else else
goto begin_shutdown; goto begin_shutdown;

View File

@ -361,7 +361,9 @@ 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_extern.console.rmenu.mode == MODE_MENU && !rgui->msg_force) if (rgui->need_refresh &&
(g_extern.console.rmenu.mode & (1ULL << 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 ?
@ -1193,7 +1195,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_extern.file_state.zip_extract_mode, S_DELAY_1); rarch_console_load_game_wrap(rgui->path_buf, g_extern.file_state.zip_extract_mode);
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;
} }
@ -1231,7 +1233,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_extern.console.rmenu.mode == 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 & (1ULL << MODE_MENU)))
{ {
rgui->need_refresh = false; rgui->need_refresh = false;
rgui_list_clear(rgui->folder_buf); rgui_list_clear(rgui->folder_buf);

View File

@ -1799,7 +1799,7 @@ int select_rom(void *data, void *state)
rarch_settings_msg(S_MSG_DIR_LOADING_ERROR, S_DELAY_180); rarch_settings_msg(S_MSG_DIR_LOADING_ERROR, S_DELAY_180);
} }
else else
rarch_console_load_game_wrap(filebrowser_get_current_path(filebrowser), g_extern.file_state.zip_extract_mode, S_DELAY_45); rarch_console_load_game_wrap(filebrowser_get_current_path(filebrowser), g_extern.file_state.zip_extract_mode);
} }
else if (input & (1ULL << RMENU_DEVICE_NAV_L1)) else if (input & (1ULL << RMENU_DEVICE_NAV_L1))
{ {
@ -2340,20 +2340,21 @@ void rmenu_input_process(void *data, void *state)
(void)data; (void)data;
rmenu_state_t *rstate = (rmenu_state_t*)state; rmenu_state_t *rstate = (rmenu_state_t*)state;
if (g_extern.console.rmenu.mode & (1ULL << MODE_LOAD_GAME))
{
if(g_extern.console.rmenu.state.msg_info.enable)
rarch_settings_msg(S_MSG_LOADING_ROM, 100);
g_extern.console.rmenu.mode = (1ULL << MODE_INIT);
}
if (!(g_extern.frame_count < g_extern.delay_timer[0])) if (!(g_extern.frame_count < g_extern.delay_timer[0]))
{ {
bool rmenu_enable = (((rstate->old_state & (1ULL << RMENU_DEVICE_NAV_L3)) && (rstate->old_state & (1ULL << RMENU_DEVICE_NAV_R3)) && g_extern.main_is_init)); bool rmenu_enable = (((rstate->old_state & (1ULL << RMENU_DEVICE_NAV_L3)) && (rstate->old_state & (1ULL << RMENU_DEVICE_NAV_R3)) && g_extern.main_is_init));
switch(g_extern.console.rmenu.mode) if (g_extern.console.rmenu.mode & (1ULL << MODE_MENU))
{ if (rmenu_enable)
case MODE_EXIT: g_extern.console.rmenu.mode = (1ULL << MODE_EMULATION);
case MODE_INIT:
case MODE_EMULATION:
break;
default:
g_extern.console.rmenu.mode = rmenu_enable ? MODE_EMULATION : MODE_MENU;
break;
}
} }
} }
@ -2467,9 +2468,6 @@ bool rmenu_iterate(void)
if(current_menu.input_process) if(current_menu.input_process)
current_menu.input_process(&current_menu, &rmenu_state); current_menu.input_process(&current_menu, &rmenu_state);
if(g_extern.console.rmenu.mode != MODE_MENU || repeat == 0)
goto deinit;
msg = msg_queue_pull(g_extern.msg_queue); msg = msg_queue_pull(g_extern.msg_queue);
if (msg && g_extern.console.rmenu.state.msg_info.enable) if (msg && g_extern.console.rmenu.state.msg_info.enable)
@ -2484,12 +2482,17 @@ bool rmenu_iterate(void)
frame_count = 0; frame_count = 0;
device_ptr->ctx_driver->check_window(&quit, &resize, &width, &height, frame_count); device_ptr->ctx_driver->check_window(&quit, &resize, &width, &height, frame_count);
if (quit)
g_extern.console.rmenu.mode = MODE_EXIT;
if (g_extern.draw_menu) if (g_extern.draw_menu)
device_ptr->ctx_driver->set_blend(false); device_ptr->ctx_driver->set_blend(false);
if (quit)
g_extern.console.rmenu.mode = (1ULL << MODE_EXIT);
if((!(g_extern.console.rmenu.mode & (1ULL << MODE_MENU))
&& !(g_extern.console.rmenu.mode & (1ULL << MODE_LOAD_GAME))) ||
repeat == 0)
goto deinit;
return true; return true;
deinit: deinit:

View File

@ -156,7 +156,7 @@ void menu_init(void)
menu_framebuf, RGUI_WIDTH * sizeof(uint16_t), menu_framebuf, RGUI_WIDTH * sizeof(uint16_t),
NULL /* _binary_console_font_bmp_start */, bitmap_bin, folder_cb, NULL); NULL /* _binary_console_font_bmp_start */, bitmap_bin, folder_cb, NULL);
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
rgui_iterate(rgui, RGUI_ACTION_REFRESH); rgui_iterate(rgui, RGUI_ACTION_REFRESH);
} }
@ -235,24 +235,26 @@ bool rmenu_iterate(void)
old_input_state = input_state; old_input_state = input_state;
if (g_extern.console.rmenu.mode & (1ULL << MODE_LOAD_GAME))
{
if(g_extern.console.rmenu.state.msg_info.enable)
rarch_settings_msg(S_MSG_LOADING_ROM, 100);
if (g_extern.fullpath)
g_extern.console.rmenu.mode = (1ULL << MODE_INIT);
}
if (!(g_extern.frame_count < g_extern.delay_timer[0])) if (!(g_extern.frame_count < g_extern.delay_timer[0]))
{ {
bool rmenu_enable = ((trigger_state & (1ULL << GX_DEVICE_NAV_MENU)) && g_extern.main_is_init); bool rmenu_enable = ((trigger_state & (1ULL << GX_DEVICE_NAV_MENU)) && g_extern.main_is_init);
bool quit_key_pressed = (trigger_state & (1ULL << GX_DEVICE_NAV_QUIT)); bool quit_key_pressed = (trigger_state & (1ULL << GX_DEVICE_NAV_QUIT));
switch(g_extern.console.rmenu.mode) if (g_extern.console.rmenu.mode & (1ULL << MODE_MENU))
{ g_extern.console.rmenu.mode = quit_key_pressed ? (1ULL << MODE_EXIT) : rmenu_enable ? (1ULL << MODE_EMULATION) : (1ULL << MODE_MENU);
case MODE_EXIT:
case MODE_INIT:
case MODE_EMULATION:
break;
default:
g_extern.console.rmenu.mode = quit_key_pressed ? MODE_EXIT : rmenu_enable ? MODE_EMULATION : MODE_MENU;
break;
}
} }
if (g_extern.console.rmenu.mode != MODE_MENU) if(!(g_extern.console.rmenu.mode & (1ULL << MODE_MENU))
&& !(g_extern.console.rmenu.mode & (1ULL << MODE_LOAD_GAME)))
goto deinit; goto deinit;
return true; return true;

View File

@ -179,7 +179,7 @@ HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
if(path_file_exists(browser->current_dir.list->elems[index].data)) if(path_file_exists(browser->current_dir.list->elems[index].data))
{ {
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), str_buffer); snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), str_buffer);
rarch_console_load_game_wrap(path, g_extern.file_state.zip_extract_mode, S_DELAY_45); rarch_console_load_game_wrap(path, g_extern.file_state.zip_extract_mode);
} }
else if(browser->current_dir.list->elems[index].attr.b) else if(browser->current_dir.list->elems[index].attr.b)
{ {
@ -1116,7 +1116,7 @@ void menu_init (void)
browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, g_extern.system.valid_extensions); browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, g_extern.system.valid_extensions);
tmp_browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, ""); tmp_browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, "");
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
} }
void menu_free (void) void menu_free (void)
@ -1182,24 +1182,25 @@ bool rmenu_iterate(void)
XINPUT_STATE state; XINPUT_STATE state;
XInputGetState(0, &state); XInputGetState(0, &state);
if (g_extern.console.rmenu.mode & (1ULL << MODE_LOAD_GAME))
{
if(g_extern.console.rmenu.state.msg_info.enable)
rarch_settings_msg(S_MSG_LOADING_ROM, 100);
if (g_extern.fullpath)
g_extern.console.rmenu.mode = (1ULL << MODE_INIT);
}
if (!(g_extern.frame_count < g_extern.delay_timer[0])) if (!(g_extern.frame_count < g_extern.delay_timer[0]))
{ {
bool rmenu_enable = ((state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) bool rmenu_enable = ((state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB)
&& (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) && (g_extern.main_is_init)); && (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) && (g_extern.main_is_init));
switch(g_extern.console.rmenu.mode)
{ if (g_extern.console.rmenu.mode & (1ULL << MODE_MENU))
case MODE_EXIT: if (rmenu_enable)
case MODE_INIT: g_extern.console.rmenu.mode = (1ULL << MODE_EMULATION);
case MODE_EMULATION:
break;
case MODE_MENU:
default:
if (rmenu_enable)
g_extern.console.rmenu.mode = MODE_EMULATION;
break;
}
} }
rarch_render_cached_frame(); rarch_render_cached_frame();
@ -1219,9 +1220,6 @@ bool rmenu_iterate(void)
break; break;
} }
if(g_extern.console.rmenu.mode != MODE_MENU)
goto deinit;
msg = msg_queue_pull(g_extern.msg_queue); msg = msg_queue_pull(g_extern.msg_queue);
if (msg) if (msg)
@ -1229,6 +1227,10 @@ bool rmenu_iterate(void)
device_ptr->ctx_driver->swap_buffers(); device_ptr->ctx_driver->swap_buffers();
if(!(g_extern.console.rmenu.mode & (1ULL << MODE_MENU))
&& !(g_extern.console.rmenu.mode & (1ULL << MODE_LOAD_GAME)))
goto deinit;
return true; return true;
deinit: deinit:

View File

@ -375,14 +375,14 @@ static void system_process_args(int argc, char *argv[])
g_extern.console.external_launch.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.file_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.file_state.zip_extract_mode, S_DELAY_1); rarch_console_load_game_wrap(rom, g_extern.file_state.zip_extract_mode);
rgui_iterate(rgui, RGUI_ACTION_MESSAGE); rgui_iterate(rgui, RGUI_ACTION_MESSAGE);
g_extern.draw_menu = true; g_extern.draw_menu = true;
rarch_render_cached_frame(); rarch_render_cached_frame();
g_extern.draw_menu = false; g_extern.draw_menu = false;
g_extern.console.rmenu.mode = MODE_INIT; g_extern.console.rmenu.mode = (1ULL << MODE_INIT);
} }
else else
g_extern.console.external_launch.support = EXTERN_LAUNCHER_SALAMANDER; g_extern.console.external_launch.support = EXTERN_LAUNCHER_SALAMANDER;

View File

@ -387,7 +387,7 @@ static void system_process_args(int argc, char *argv[])
switch(g_extern.console.external_launch.support) switch(g_extern.console.external_launch.support)
{ {
case EXTERN_LAUNCHER_SALAMANDER: case EXTERN_LAUNCHER_SALAMANDER:
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
break; break;
#ifdef HAVE_MULTIMAN #ifdef HAVE_MULTIMAN
case EXTERN_LAUNCHER_MULTIMAN: case EXTERN_LAUNCHER_MULTIMAN:

View File

@ -94,7 +94,7 @@ static int setup_callback(void)
void menu_init (void) void menu_init (void)
{ {
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
} }
bool rmenu_iterate(void) bool rmenu_iterate(void)
@ -102,8 +102,8 @@ bool rmenu_iterate(void)
char game_rom[256]; char game_rom[256];
snprintf(game_rom, sizeof(game_rom), "%s%s", default_paths.port_dir, "dkc.sfc"); snprintf(game_rom, sizeof(game_rom), "%s%s", default_paths.port_dir, "dkc.sfc");
RARCH_LOG("game ROM: %s\n", game_rom); RARCH_LOG("game ROM: %s\n", game_rom);
rarch_console_load_game_wrap(game_rom, 0, 0); rarch_console_load_game_wrap(game_rom, 0);
g_extern.console.rmenu.mode = MODE_EMULATION; g_extern.console.rmenu.mode = (1ULL << MODE_INIT);
return false; return false;
} }

View File

@ -318,6 +318,7 @@ struct global
unsigned performance_level; unsigned performance_level;
enum retro_pixel_format pix_fmt; enum retro_pixel_format pix_fmt;
bool block_extract;
bool force_nonblock; bool force_nonblock;
const char *input_desc_btn[MAX_PLAYERS][RARCH_FIRST_CUSTOM_BIND]; const char *input_desc_btn[MAX_PLAYERS][RARCH_FIRST_CUSTOM_BIND];

View File

@ -2606,6 +2606,7 @@ void rarch_init_system_info(void)
info->library_name, info->library_version); info->library_name, info->library_version);
strlcpy(g_extern.system.valid_extensions, info->valid_extensions ? info->valid_extensions : DEFAULT_EXT, strlcpy(g_extern.system.valid_extensions, info->valid_extensions ? info->valid_extensions : DEFAULT_EXT,
sizeof(g_extern.system.valid_extensions)); sizeof(g_extern.system.valid_extensions));
g_extern.system.block_extract = info->block_extract;
} }
static void init_system_av_info(void) static void init_system_av_info(void)
@ -2781,7 +2782,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.rmenu.mode = MODE_EXIT; g_extern.console.rmenu.mode = (1ULL << MODE_EXIT);
#endif #endif
return false; return false;
} }
@ -2796,7 +2797,7 @@ bool rarch_main_iterate(void)
if (rmenu_enable || (g_extern.console.rmenu.state.ingame_menu.enable && !rmenu_enable)) if (rmenu_enable || (g_extern.console.rmenu.state.ingame_menu.enable && !rmenu_enable))
{ {
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
g_extern.delay_timer[0] = g_extern.frame_count + 30; g_extern.delay_timer[0] = g_extern.frame_count + 30;
} }
#endif #endif
@ -2848,7 +2849,7 @@ bool rarch_main_iterate(void)
{ {
g_extern.lifecycle_state &= ~(1ULL << RARCH_FRAMEADVANCE); g_extern.lifecycle_state &= ~(1ULL << RARCH_FRAMEADVANCE);
g_extern.console.rmenu.state.ingame_menu.enable = true; g_extern.console.rmenu.state.ingame_menu.enable = true;
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
return false; return false;
} }
#endif #endif

View File

@ -294,7 +294,7 @@ void config_set_defaults(void)
g_extern.audio_data.mute = 0; g_extern.audio_data.mute = 0;
g_extern.verbose = true; g_extern.verbose = true;
g_extern.console.rmenu.mode = MODE_MENU; g_extern.console.rmenu.mode = (1ULL << MODE_MENU);
g_extern.console.rmenu.font_size = 1.0f; g_extern.console.rmenu.font_size = 1.0f;
g_extern.console.sound.mode = SOUND_MODE_NORMAL; g_extern.console.sound.mode = SOUND_MODE_NORMAL;
g_extern.console.screen.viewports.custom_vp.width = 0; g_extern.console.screen.viewports.custom_vp.width = 0;