some minor adjustments
authornotaz <notasas@gmail.com>
Sun, 25 Nov 2007 13:39:05 +0000 (13:39 +0000)
committernotaz <notasas@gmail.com>
Sun, 25 Nov 2007 13:39:05 +0000 (13:39 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@304 be3aeb3a-fb24-0410-a615-afba39da0efa

base_readme.txt
common/lprintf.h
gp2x/menu.c
psp/emu.h
psp/main.c
psp/menu.c
psp/psp.c
psp/psp.h

index 97334e0..ab4174a 100644 (file)
@@ -636,10 +636,12 @@ Changelog
 1.35b\r
   * PSP: mp3 code should no longer fail on 1.5 firmware.\r
   + PSP: added gamma adjustment option.\r
-  + Added .cso format support. Useful for non-FMV games.\r
+  + Added .cso ISO format support. Useful for non-FMV games.\r
+  * It is now possile to force a region after the ROM is loaded.\r
   * Fixed a sram bug in memhandlers (fixes Shining in the Darkness saves).\r
   * PSP: fixed another bug in memhanlers, which crashed the emu for some games\r
-    (like NBA Jam).\r
+    (like NBA Jam and NHL 9x).\r
+  * Some other small tweaks I forgot about.\r
 \r
 1.35a\r
   * PSP: fixed a bug which prevented to load any ROMs after testing the BIOS.\r
index e917547..1d30472 100644 (file)
@@ -2,8 +2,7 @@
  #include <stdio.h>
  #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
index 7acfa53..afac0bb 100644 (file)
@@ -1250,6 +1250,10 @@ static void menu_options_save(void)
        PicoOpt = currentConfig.PicoOpt;\r
        PsndRate = currentConfig.PsndRate;\r
        PicoRegionOverride = currentConfig.PicoRegion;\r
+       if (PicoRegionOverride) {\r
+               // force setting possibly changed..\r
+               Pico.m.pal = (PicoRegionOverride == 2 || PicoRegionOverride == 8) ? 1 : 0;\r
+       }\r
        if (!(PicoOpt & 0x20)) {\r
                // unbind XYZ MODE, just in case\r
                unbind_action(0xf00, -1, -1);\r
index affd540..7a3dbb1 100644 (file)
--- 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[];
index befc427..dbe20b7 100644 (file)
@@ -65,6 +65,10 @@ int pico_main(void)
                                }
                                break;
 
+                       case PGS_Suspending:
+                               psp_wait_suspend();
+                               break;
+
                        case PGS_RestartRun:
                                engineState = PGS_Running;
 
index fc44446..bc7c875 100644 (file)
@@ -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);
index c507e5d..cdf26ae 100644 (file)
--- 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;
 
index d4a3d0e..d94d3ec 100644 (file)
--- 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