psp mp3 implementation
[libpicofe.git] / common / emu.c
index 99fca49..117ec6d 100644 (file)
 #elif defined(__GIZ__)\r
  #include "../gizmondo/giz.h"\r
  #define SCREEN_WIDTH 321\r
- #define SCREEN_BUFFER giz_screen // ?\r
+ #define SCREEN_BUFFER giz_screen\r
+#elif defined(PSP)\r
+ #include "../psp/psp.h"\r
+ #define SCREEN_WIDTH 512\r
+ #define SCREEN_BUFFER psp_screen\r
 #endif\r
 \r
 char *PicoConfigFile = "picoconfig.bin";\r
@@ -281,7 +285,7 @@ int emu_ReloadRom(void)
                return 0;\r
        }\r
 \r
-       menu_romload_prepare(used_rom_name);\r
+       menu_romload_prepare(used_rom_name); // also CD load\r
 \r
        if(rom_data) {\r
                free(rom_data);\r
@@ -297,7 +301,6 @@ int emu_ReloadRom(void)
                return 0;\r
        }\r
        pm_close(rom);\r
-       menu_romload_end();\r
 \r
        // detect wrong files (Pico crashes on very small files), also see if ROM EP is good\r
        if(rom_size <= 0x200 || strncmp((char *)rom_data, "Pico", 4) == 0 ||\r
@@ -305,6 +308,7 @@ int emu_ReloadRom(void)
                if (rom_data) free(rom_data);\r
                rom_data = 0;\r
                sprintf(menuErrorMsg, "Not a ROM selected.");\r
+               menu_romload_end();\r
                return 0;\r
        }\r
 \r
@@ -317,6 +321,7 @@ int emu_ReloadRom(void)
        lprintf("PicoCartInsert(%p, %d);\n", rom_data, rom_size);\r
        if(PicoCartInsert(rom_data, rom_size)) {\r
                sprintf(menuErrorMsg, "Failed to load ROM.");\r
+               menu_romload_end();\r
                return 0;\r
        }\r
 \r
@@ -328,10 +333,13 @@ int emu_ReloadRom(void)
                if (ret != 0) {\r
                        sprintf(menuErrorMsg, "Insert_CD() failed, invalid CD image?");\r
                        lprintf("%s\n", menuErrorMsg);\r
+                       menu_romload_end();\r
                        return 0;\r
                }\r
        }\r
 \r
+       menu_romload_end();\r
+\r
        // emu_ReadConfig() might have messed currentConfig.lastRomFile\r
        strncpy(currentConfig.lastRomFile, romFileName, sizeof(currentConfig.lastRomFile)-1);\r
        currentConfig.lastRomFile[sizeof(currentConfig.lastRomFile)-1] = 0;\r
@@ -446,12 +454,13 @@ int emu_ReadConfig(int game, int no_defaults)
        if (currentConfig.CPUclock < 10 || currentConfig.CPUclock > 4096) currentConfig.CPUclock = 200;\r
        if (currentConfig.gamma < 10 || currentConfig.gamma > 300) currentConfig.gamma = 100;\r
        if (currentConfig.volume < 0 || currentConfig.volume > 99) currentConfig.volume = 50;\r
+#ifdef __GP2X__\r
        // if volume keys are unbound, bind them to volume control\r
        if (!currentConfig.KeyBinds[23] && !currentConfig.KeyBinds[22]) {\r
                currentConfig.KeyBinds[23] = 1<<29; // vol up\r
                currentConfig.KeyBinds[22] = 1<<30; // vol down\r
        }\r
-\r
+#endif\r
        if (bread > 0) config_slot_current = config_slot;\r
        return (bread > 0); // == sizeof(currentConfig));\r
 }\r
@@ -686,7 +695,8 @@ int emu_SaveLoadGame(int load, int sram)
 \r
        lprintf("saveLoad (%i, %i): %s\n", load, sram, saveFname);\r
 \r
-       if(sram) {\r
+       if (sram)\r
+       {\r
                FILE *sramFile;\r
                int sram_size;\r
                unsigned char *sram_data;\r
@@ -739,10 +749,11 @@ int emu_SaveLoadGame(int load, int sram)
        else\r
        {\r
                void *PmovFile = NULL;\r
-               if (strcmp(saveFname + strlen(saveFname) - 3, ".gz") == 0) {\r
+               if (strcmp(saveFname + strlen(saveFname) - 3, ".gz") == 0)\r
+               {\r
                        if( (PmovFile = gzopen(saveFname, load ? "rb" : "wb")) ) {\r
                                emu_setSaveStateCbs(1);\r
-                               if(!load) gzsetparams(PmovFile, 9, Z_DEFAULT_STRATEGY);\r
+                               if (!load) gzsetparams(PmovFile, 9, Z_DEFAULT_STRATEGY);\r
                        }\r
                }\r
                else\r