UIQ3 update, some makefile unification, rm old configs, stuff
[libpicofe.git] / psp / main.c
index d970f8a..e0698d5 100644 (file)
@@ -52,13 +52,13 @@ int pico_main(void)
 #ifndef GPROF
                                menu_loop();
 #else
-                               strcpy(romFileName, lastRomFile);
+                               strcpy(romFileName, loadedRomFName);
                                engineState = PGS_ReloadRom;
 #endif
                                break;
 
                        case PGS_ReloadRom:
-                               if (emu_ReloadRom()) {
+                               if (emu_ReloadRom(romFileName)) {
                                        engineState = PGS_Running;
                                        if (mp3_last_error != 0)
                                                engineState = PGS_Menu; // send to menu to display mp3 error
@@ -69,11 +69,15 @@ int pico_main(void)
                                break;
 
                        case PGS_Suspending:
-                               while (engineState == PGS_Suspending || engineState == PGS_SuspendAck) {
-                                       if (engineState == PGS_Suspending)
-                                               engineState = PGS_SuspendAck;
+                               while (engineState == PGS_Suspending)
                                        psp_wait_suspend();
-                               }
+                               break;
+
+                       case PGS_SuspendWake:
+                               psp_unhandled_suspend = 0;
+                               psp_resume_suspend();
+                               emu_HandleResume();
+                               engineState = engineStateSuspend;
                                break;
 
                        case PGS_RestartRun:
@@ -81,8 +85,10 @@ int pico_main(void)
 
                        case PGS_Running:
                                if (psp_unhandled_suspend) {
+                                       psp_unhandled_suspend = 0;
                                        psp_resume_suspend();
                                        emu_HandleResume();
+                                       break;
                                }
                                emu_Loop();
 #ifdef GPROF