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