From: notaz Date: Sun, 25 Nov 2007 13:39:05 +0000 (+0000) Subject: some minor adjustments X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=426ecc582f3f6f3d04f7b7ae25b548be7178c4fd;p=libpicofe.git some minor adjustments git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@304 be3aeb3a-fb24-0410-a615-afba39da0efa --- diff --git a/base_readme.txt b/base_readme.txt index 97334e0..ab4174a 100644 --- a/base_readme.txt +++ b/base_readme.txt @@ -636,10 +636,12 @@ Changelog 1.35b * PSP: mp3 code should no longer fail on 1.5 firmware. + PSP: added gamma adjustment option. - + Added .cso format support. Useful for non-FMV games. + + Added .cso ISO format support. Useful for non-FMV games. + * It is now possile to force a region after the ROM is loaded. * Fixed a sram bug in memhandlers (fixes Shining in the Darkness saves). * PSP: fixed another bug in memhanlers, which crashed the emu for some games - (like NBA Jam). + (like NBA Jam and NHL 9x). + * Some other small tweaks I forgot about. 1.35a * PSP: fixed a bug which prevented to load any ROMs after testing the BIOS. diff --git a/common/lprintf.h b/common/lprintf.h index e917547..1d30472 100644 --- a/common/lprintf.h +++ b/common/lprintf.h @@ -2,8 +2,7 @@ #include #define lprintf printf #elif defined(PSP) - extern void lprintf_f(const char *fmt, ...); - #define lprintf lprintf_f + extern void lprintf(const char *fmt, ...); #else #include "giz.h" #endif diff --git a/gp2x/menu.c b/gp2x/menu.c index 7acfa53..afac0bb 100644 --- a/gp2x/menu.c +++ b/gp2x/menu.c @@ -1250,6 +1250,10 @@ static void menu_options_save(void) PicoOpt = currentConfig.PicoOpt; PsndRate = currentConfig.PsndRate; PicoRegionOverride = currentConfig.PicoRegion; + if (PicoRegionOverride) { + // force setting possibly changed.. + Pico.m.pal = (PicoRegionOverride == 2 || PicoRegionOverride == 8) ? 1 : 0; + } if (!(PicoOpt & 0x20)) { // unbind XYZ MODE, just in case unbind_action(0xf00, -1, -1); diff --git a/psp/emu.h b/psp/emu.h index affd540..7a3dbb1 100644 --- a/psp/emu.h +++ b/psp/emu.h @@ -14,6 +14,7 @@ enum TPicoGameState { PGS_ReloadRom, PGS_Menu, PGS_RestartRun, + PGS_Suspending, }; extern char romFileName[]; diff --git a/psp/main.c b/psp/main.c index befc427..dbe20b7 100644 --- a/psp/main.c +++ b/psp/main.c @@ -65,6 +65,10 @@ int pico_main(void) } break; + case PGS_Suspending: + psp_wait_suspend(); + break; + case PGS_RestartRun: engineState = PGS_Running; diff --git a/psp/menu.c b/psp/menu.c index fc44446..bc7c875 100644 --- a/psp/menu.c +++ b/psp/menu.c @@ -1394,6 +1394,10 @@ static void menu_options_save(void) PicoOpt = currentConfig.PicoOpt; PsndRate = currentConfig.PsndRate; PicoRegionOverride = currentConfig.PicoRegion; + if (PicoRegionOverride) { + // force setting possibly changed.. + Pico.m.pal = (PicoRegionOverride == 2 || PicoRegionOverride == 8) ? 1 : 0; + } if (!(PicoOpt & 0x20)) { // unbind XYZ MODE, just in case unbind_action(0xf00); diff --git a/psp/psp.c b/psp/psp.c index c507e5d..cdf26ae 100644 --- a/psp/psp.c +++ b/psp/psp.c @@ -70,12 +70,21 @@ static int exit_callback(int arg1, int arg2, void *common) /* Power Callback */ static int power_callback(int unknown, int pwrflags, void *common) { + static int old_state = PGS_Menu; + + lprintf("power_callback: flags: 0x%08X\n", pwrflags); + /* check for power switch and suspending as one is manual and the other automatic */ - if (pwrflags & PSP_POWER_CB_POWER_SWITCH || pwrflags & PSP_POWER_CB_SUSPENDING) + if (pwrflags & PSP_POWER_CB_POWER_SWITCH || pwrflags & PSP_POWER_CB_SUSPENDING || pwrflags & PSP_POWER_CB_STANDBY) { - lprintf("power_callback: flags: 0x%08X: suspending\n", pwrflags); - engineState = PGS_Menu; + if (engineState != PGS_Suspending) { + old_state = engineState; + engineState = PGS_Suspending; + } } + else if (pwrflags & PSP_POWER_CB_RESUME_COMPLETE) + engineState = old_state; + //sceDisplayWaitVblankStart(); return 0; } @@ -238,6 +247,12 @@ char *psp_get_status_line(void) return buff; } +void psp_wait_suspend(void) +{ + // probably should do something smarter here? + sceDisplayWaitVblankStart(); +} + /* alt logging */ #define LOG_FILE "log.txt" @@ -251,7 +266,7 @@ typedef struct _log_entry static log_entry *le_root = NULL; #endif -void lprintf_f(const char *fmt, ...) +void lprintf(const char *fmt, ...) { va_list vl; diff --git a/psp/psp.h b/psp/psp.h index d4a3d0e..d94d3ec 100644 --- a/psp/psp.h +++ b/psp/psp.h @@ -43,6 +43,8 @@ int psp_set_cpu_clock(int clock); char *psp_get_status_line(void); +void psp_wait_suspend(void); + /* shorter btn names */ #define BTN_UP PSP_CTRL_UP #define BTN_LEFT PSP_CTRL_LEFT