X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fmenu.c;h=9ddbe3762d7010963f816e03b8fd65c9db900305;hp=cfa3284830f9027ee20a56cb3ce646b647313deb;hb=c3341ffd2f06fadeca07b74279070c334b8d8cc1;hpb=35d3fd2efb47352edf794255da3e4745f6bd0a0d diff --git a/frontend/menu.c b/frontend/menu.c index cfa32848..9ddbe376 100644 --- a/frontend/menu.c +++ b/frontend/menu.c @@ -1,5 +1,5 @@ /* - * (C) Gražvydas "notaz" Ignotas, 2010-2013 + * (C) Gražvydas "notaz" Ignotas, 2010-2015 * * This work is licensed under the terms of any of these licenses * (at your option): @@ -75,6 +75,7 @@ typedef enum MA_OPT_SAVECFG, MA_OPT_SAVECFG_GAME, MA_OPT_CPU_CLOCKS, + MA_OPT_SPU_THREAD, MA_OPT_DISP_OPTS, MA_OPT_VARSCALER, MA_OPT_VARSCALER_C, @@ -93,6 +94,7 @@ static char last_selected_fname[MAXPATHLEN]; static int config_save_counter, region, in_type_sel1, in_type_sel2; static int psx_clock; static int memcard1_sel = -1, memcard2_sel = -1; +extern int g_autostateld_opt; int g_opts, g_scaler, g_gamma = 100; int scanlines, scanline_level = 20; int soft_scaling, analog_deadzone; // for Caanoo @@ -416,6 +418,7 @@ static const struct { CE_INTVAL(analog_deadzone), CE_INTVAL(memcard1_sel), CE_INTVAL(memcard2_sel), + CE_INTVAL(g_autostateld_opt), CE_INTVAL_N("adev0_is_nublike", in_adev_is_nublike[0]), CE_INTVAL_N("adev1_is_nublike", in_adev_is_nublike[1]), CE_INTVAL_V(frameskip, 3), @@ -442,6 +445,7 @@ static const struct { CE_INTVAL(spu_config.iXAPitch), CE_INTVAL(spu_config.iUseInterpolation), CE_INTVAL(spu_config.iTempo), + CE_INTVAL(spu_config.iUseThread), CE_INTVAL(config_save_counter), CE_INTVAL(in_evdev_allow_abs_only), CE_INTVAL(volume_boost), @@ -899,8 +903,6 @@ static void get_line(char *d, size_t size, const char *s) len = size - 1; strncpy(d, s, len); d[len] = 0; - - mystrip(d); } static void keys_write_all(FILE *f) @@ -1007,7 +1009,10 @@ static void keys_load_all(const char *cfg) while (p != NULL && (p = strstr(p, "binddev = ")) != NULL) { p += 10; + // don't strip 'dev' because there are weird devices + // with names with space at the end get_line(dev, sizeof(dev), p); + dev_id = in_config_parse_dev(dev); if (dev_id < 0) { printf("input: can't handle dev: %s\n", dev); @@ -1602,6 +1607,11 @@ static menu_entry e_menu_options[] = mee_onoff ("Show FPS", 0, g_opts, OPT_SHOWFPS), mee_enum ("Region", 0, region, men_region), mee_range ("CPU clock", MA_OPT_CPU_CLOCKS, cpu_clock, 20, 5000), +#ifdef C64X_DSP + mee_onoff ("Use C64x DSP for sound", MA_OPT_SPU_THREAD, spu_config.iUseThread, 1), +#else + mee_onoff ("Threaded SPU", MA_OPT_SPU_THREAD, spu_config.iUseThread, 1), +#endif mee_handler_id("[Display]", MA_OPT_DISP_OPTS, menu_loop_gfx_options), mee_handler ("[BIOS/Plugins]", menu_loop_plugin_options), mee_handler ("[Advanced]", menu_loop_adv_options), @@ -1614,10 +1624,9 @@ static menu_entry e_menu_options[] = static int menu_loop_options(int id, int keys) { static int sel = 0; - int i; - i = me_id2offset(e_menu_options, MA_OPT_CPU_CLOCKS); - e_menu_options[i].enabled = cpu_clock_st > 0 ? 1 : 0; + me_enable(e_menu_options, MA_OPT_CPU_CLOCKS, cpu_clock_st > 0); + me_enable(e_menu_options, MA_OPT_SPU_THREAD, spu_config.iThreadAvail); me_enable(e_menu_options, MA_OPT_SAVECFG_GAME, ready_to_go && CdromId[0]); me_loop(e_menu_options, &sel); @@ -1926,7 +1935,7 @@ static const char credits_text[] = "PCSX4ALL plugin by PCSX4ALL team\n" " Chui, Franxis, Unai\n\n" "integration, optimization and\n" - " frontend (C) 2010-2012 notaz\n"; + " frontend (C) 2010-2015 notaz\n"; static int reset_game(void) { @@ -2007,6 +2016,8 @@ static int run_exe(void) static int run_cd_image(const char *fname) { + int autoload_state = g_autostateld_opt; + ready_to_go = 0; reload_plugins(fname); @@ -2032,6 +2043,28 @@ static int run_cd_image(const char *fname) emu_on_new_cd(1); ready_to_go = 1; + if (autoload_state) { + unsigned int newest = 0; + int time, slot, newest_slot = -1; + + for (slot = 0; slot < 10; slot++) { + if (emu_check_save_file(slot, &time)) { + if ((unsigned int)time > newest) { + newest = time; + newest_slot = slot; + } + } + } + + if (newest_slot >= 0) { + lprintf("autoload slot %d\n", newest_slot); + emu_load_state(newest_slot); + } + else { + lprintf("no save to autoload.\n"); + } + } + return 0; }