savestates works
[libpicofe.git] / gp2x / emu.c
index 17e7028..633a780 100644 (file)
@@ -1264,7 +1264,6 @@ size_t gzWrite2(void *p, size_t _size, size_t _n, void *file)
        return gzwrite(file, p, _n);\r
 }\r
 \r
-typedef unsigned int (*STATE_SL_FUNC)(void *, unsigned int, unsigned int, void *);\r
 \r
 int emu_SaveLoadGame(int load, int sram)\r
 {\r
@@ -1326,6 +1325,7 @@ int emu_SaveLoadGame(int load, int sram)
                                areaRead  = gzRead2;\r
                                areaWrite = gzWrite2;\r
                                areaEof   = (areaeof *) gzeof;\r
+                               areaSeek  = (areaseek *) gzseek;\r
                                if(!load) gzsetparams(PmovFile, 9, Z_DEFAULT_STRATEGY);\r
                        } else\r
                                saveFname[strlen(saveFname)-3] = 0;\r
@@ -1335,18 +1335,23 @@ int emu_SaveLoadGame(int load, int sram)
                                areaRead  = (arearw *) fread;\r
                                areaWrite = (arearw *) fwrite;\r
                                areaEof   = (areaeof *) feof;\r
+                               areaSeek  = (areaseek *) fseek;\r
                        }\r
                }\r
                if(PmovFile) {\r
-                       PmovState(load ? 6 : 5, PmovFile);\r
-                       strcpy(noticeMsg, load ? "GAME LOADED  " : "GAME SAVED   ");\r
+                       ret = PmovState(load ? 6 : 5, PmovFile);\r
                        if(areaRead == gzRead2)\r
                                 gzclose(PmovFile);\r
                        else fclose ((FILE *) PmovFile);\r
                        PmovFile = 0;\r
                        if (!load) sync();\r
                        else Pico.m.dirtyPal=1;\r
-               } else {\r
+               }\r
+               else    ret = -1;\r
+               if (!ret)\r
+                       strcpy(noticeMsg, load ? "GAME LOADED  " : "GAME SAVED   ");\r
+               else\r
+               {\r
                        strcpy(noticeMsg, load ? "LOAD FAILED  " : "SAVE FAILED  ");\r
                        ret = -1;\r
                }\r