X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=drivers%2Fcommon%2Fmenu.c;h=4184b2e913707fb888f42fbdaf82ebe414bc66d7;hp=607afb1d18157636d6cddc78fa4ebb1e636d383f;hb=88e59df3676d6f36fd52e30f32624f49c7b0a355;hpb=7a93887006449450b8fbffab3d54c3e271094c79 diff --git a/drivers/common/menu.c b/drivers/common/menu.c index 607afb1..4184b2e 100644 --- a/drivers/common/menu.c +++ b/drivers/common/menu.c @@ -57,6 +57,9 @@ typedef enum MA_OPT_GG, MA_OPT_SHOWFPS, MA_OPT_FSKIP, + MA_OPT_SWFILTER, + MA_OPT_HWFILTER, + MA_OPT_SCALING, MA_OPT_RENDERER, MA_OPT_SOUNDON, MA_OPT_SOUNDRATE, @@ -426,6 +429,8 @@ static int menu_loop_fceu_options(int id, int keys) // -------------- options -------------- static const char *men_frameskip[] = { "Auto", "0", "1", "2", "3", "4", NULL }; +static const char *men_swfilter[] = { "none", "Scale2x", "Eagle2x", NULL }; +static const char *men_scaling[] = { "1x", "proportional", "4:3 scaled", "fullscreen", NULL }; static const char *men_rates[] = { "8000", "11025", "16000", "22050", "44100", NULL }; static const int men_rates_i[] = { 8000 , 11025 , 16000 , 22050 , 44100 }; static const char *men_region[] = { "Auto", "NTSC", "PAL", NULL }; @@ -441,7 +446,7 @@ static int frameskip_i; static void config_commit(void) { Settings.sound_rate = men_rates_i[sndrate_i]; - soundvol = sndon ? 0 : 50; + soundvol = sndon ? 50 : 0; Settings.turbo_rate_add = (turbo_i * 2 << 24) / 60 + 1; Settings.frameskip = frameskip_i - 1; @@ -451,8 +456,11 @@ static void config_commit(void) static menu_entry e_menu_options[] = { - mee_onoff ("Show FPS", MA_OPT_SHOWFPS, Settings.showfps, 1), +// mee_onoff ("Show FPS", MA_OPT_SHOWFPS, Settings.showfps, 1), mee_enum ("Frameskip", MA_OPT_FSKIP, frameskip_i, men_frameskip), + mee_enum ("Softwere filter", MA_OPT_SWFILTER, Settings.sw_filter, men_swfilter), + mee_enum ("Hardware filter", MA_OPT_HWFILTER, Settings.hw_filter, NULL), + mee_enum ("Scaling", MA_OPT_SCALING, Settings.scaling, men_scaling), mee_onoff_h ("Accurate renderer (slow)",MA_OPT_RENDERER, Settings.accurate_mode, 1, h_renderer), mee_onoff ("Enable sound", MA_OPT_SOUNDON, sndon, 1), mee_enum ("Sound Rate", MA_OPT_SOUNDRATE, sndrate_i, men_rates), @@ -460,7 +468,7 @@ static menu_entry e_menu_options[] = mee_range ("Turbo rate (Hz)", MA_OPT_TURBO, turbo_i, 1, 30), mee_enum ("Confirm savestate", MA_OPT_SSTATE, Settings.sstate_confirm, men_sstate), mee_range ("Save slot", MA_OPT_SSLOT, CurrentState, 0, 9), - mee_range ("Gamma correction", MA_OPT_GAMMA, Settings.gamma, 0, 300), +// mee_range ("Gamma correction", MA_OPT_GAMMA, Settings.gamma, 0, 300), mee_handler ("[FCE Ultra options]", menu_loop_fceu_options), mee_cust_nosave("Save global config", MA_OPT_SAVECFG, mh_savecfg, mgn_saveloadcfg), mee_cust_nosave("Save cfg for loaded game",MA_OPT_SAVECFG_GAME, mh_savecfg, mgn_saveloadcfg), @@ -473,6 +481,10 @@ static int menu_loop_options(int id, int keys) int oldrate; int i; + i = me_id2offset(e_menu_options, MA_OPT_HWFILTER); + e_menu_options[i].data = plat_target.filters; + me_enable(e_menu_options, MA_OPT_HWFILTER, plat_target.filters != NULL); + oldrate = Settings.sound_rate; for (i = 0; i < array_size(men_rates_i); i++) { if (Settings.sound_rate == men_rates_i[i]) { @@ -503,7 +515,8 @@ static const char credits_text[] = " - Credits -\n" "Bero: FCE\n" "Xodnizel: FCE Ultra\n" - "FCA author: 6502 core\n"; + "FCA author: 6502 core\n" + "M-HT: NEON scalers\n"; static void draw_frame_credits(void) { @@ -602,11 +615,12 @@ int menu_loop(void) me_enable(e_menu_main, MA_MAIN_CHEATS, fceugi && cheats); plat_video_menu_enter(fceugi != NULL); + memcpy(g_menubg_ptr, g_menubg_src_ptr, g_menuscreen_w * g_menuscreen_h * 2); in_set_config_int(0, IN_CFG_BLOCKING, 1); do { me_loop_d(e_menu_main, &sel, NULL, NULL); - } while (!fceugi); + } while (!fceugi && menu_loop_ret == 0); /* wait until menu, ok, back is released */ while (in_menu_wait_any(NULL, 50) & (PBTN_MENU|PBTN_MOK|PBTN_MBACK))