font data implemented
[libpicofe.git] / gp2x / emu.c
index 56c83ff..1c81c87 100644 (file)
@@ -764,6 +764,12 @@ static int check_save_file(void)
        return 0;\r
 }\r
 \r
+static void emu_state_cb(const char *str)\r
+{\r
+       clearArea(0);\r
+       blit("", str);\r
+}\r
+\r
 static void RunEvents(unsigned int which)\r
 {\r
        if(which & 0x1800) { // save or load (but not both)\r
@@ -778,7 +784,10 @@ static void RunEvents(unsigned int which)
                }\r
                if (do_it) {\r
                        osd_text(4, 232, (which & 0x1000) ? "LOADING GAME" : "SAVING GAME");\r
+                       PicoStateProgressCB = emu_state_cb;\r
+                       gp2x_memcpy_all_buffers(gp2x_screen, 0, 320*240*2);\r
                        emu_SaveLoadGame((which & 0x1000) >> 12, 0);\r
+                       PicoStateProgressCB = NULL;\r
                }\r
 \r
                reset_timing = 1;\r
@@ -1232,6 +1241,7 @@ if (Pico.m.frame_count == 31563) {
        // if in 16bit mode, generate 8it image for menu background\r
        if (!(PicoOpt&0x10) && (currentConfig.EmuOpt&0x80)) {\r
                PicoOpt |= 0x10;\r
+               if (!(Pico.video.reg[12]&1)) clearArea(1);\r
                PicoFrameFull();\r
                vidCpyM2((unsigned char *)gp2x_screen+320*8, framebuff+328*8);\r
                vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
@@ -1263,20 +1273,11 @@ size_t gzWrite2(void *p, size_t _size, size_t _n, void *file)
 }\r
 \r
 \r
-static void emu_state_cb(const char *str)\r
-{\r
-       clearArea(0);\r
-       blit("", str);\r
-}\r
-\r
 int emu_SaveLoadGame(int load, int sram)\r
 {\r
        int ret = 0;\r
        char saveFname[512];\r
 \r
-       PicoStateProgressCB = emu_state_cb;\r
-       gp2x_memcpy_all_buffers(gp2x_screen, 0, 320*240*2);\r
-\r
        // make save filename\r
        romfname_ext(saveFname, "");\r
        if(sram) strcat(saveFname, (PicoMCD&1) ? ".brm" : ".srm");\r