#define REVISION "0"
static const char *rom_exts[] = {
- "zip", "bin", "smd", "gen",
- "iso", "cso", "cue", NULL
+ "zip",
+ "bin", "smd", "gen",
+ "iso", "cso", "cue",
+ "32x",
+ "sms",
+ NULL
};
// rrrr rggg gggb bbbb
{
if (is_rom_loaded)
{
+ int w = g_screen_width, h = g_screen_height;
+ short *src, *dst;
+
+ if (w > g_menuscreen_w)
+ w = g_menuscreen_w;
+ if (h > g_menuscreen_h)
+ h = g_menuscreen_h;
+ src = (short *)g_menubg_src_ptr;
+ dst = (short *)g_menubg_ptr +
+ (g_menuscreen_h / 2 - h / 2) * g_menuscreen_w +
+ (g_menuscreen_w / 2 - w / 2);
+
// darken the active framebuffer
- menu_darken_bg(g_menubg_ptr, g_menubg_src_ptr, g_menuscreen_w * g_menuscreen_h, 1);
+ for (; h > 0; dst += g_menuscreen_w, src += g_screen_width, h--)
+ menu_darken_bg(dst, src, w, 1);
}
else
{
// ------------ gfx options menu ------------
+static const char *men_dummy[] = { NULL };
+
static menu_entry e_menu_gfx_options[] =
{
- mee_enum("Renderer", MA_OPT_RENDERER, currentConfig.renderer, renderer_names),
+ mee_enum("Video output mode", MA_OPT_VOUT_MODE, plat_target.vout_method, men_dummy),
+ mee_enum("Renderer", MA_OPT_RENDERER, currentConfig.renderer, renderer_names),
MENU_OPTIONS_GFX
mee_end,
};
" Lordus, Exophase, Rokas,\n"
" Nemesis, Tasco Deluxe";
-static const char *romsel_run(void)
-{
- const char *ret;
- char *sel_name;
-
- sel_name = malloc(sizeof(rom_fname_loaded));
- if (sel_name == NULL)
- return NULL;
- strcpy(sel_name, rom_fname_loaded);
-
- ret = menu_loop_romsel(sel_name, sizeof(rom_fname_loaded), rom_exts, NULL);
- free(sel_name);
- return ret;
-}
-
static int main_menu_handler(int id, int keys)
{
const char *ret_name;
}
break;
case MA_MAIN_LOAD_ROM:
- ret_name = romsel_run();
+ rom_fname_reload = NULL;
+ ret_name = menu_loop_romsel(rom_fname_loaded,
+ sizeof(rom_fname_loaded), rom_exts, NULL);
if (ret_name != NULL) {
lprintf("selected file: %s\n", ret_name);
+ rom_fname_reload = ret_name;
engineState = PGS_ReloadRom;
return 1;
}
}
in_set_config_int(0, IN_CFG_BLOCKING, 0);
+ plat_video_menu_leave();
}
// --------- CD tray close menu ----------
{
const char *ret_name;
- ret_name = romsel_run();
+ rom_fname_reload = NULL;
+ ret_name = menu_loop_romsel(rom_fname_loaded,
+ sizeof(rom_fname_loaded), rom_exts, NULL);
if (ret_name == NULL)
return 0;
+ rom_fname_reload = ret_name;
engineState = PGS_RestartRun;
return emu_swap_cd(ret_name);
}
while (in_menu_wait_any(NULL, 50) & (PBTN_MENU|PBTN_MOK|PBTN_MBACK));
in_set_config_int(0, IN_CFG_BLOCKING, 0);
+ plat_video_menu_leave();
return ret;
}
void menu_init(void)
{
+ int i;
+
menu_init_base();
+
+ i = me_id2offset(e_menu_gfx_options, MA_OPT_VOUT_MODE);
+ e_menu_gfx_options[i].data = plat_target.vout_methods;
+ me_enable(e_menu_gfx_options, MA_OPT_VOUT_MODE,
+ plat_target.vout_methods != NULL);
}