updated EEPROM code, gmv fixed
authornotaz <notasas@gmail.com>
Sun, 16 Sep 2007 15:44:18 +0000 (15:44 +0000)
committernotaz <notasas@gmail.com>
Sun, 16 Sep 2007 15:44:18 +0000 (15:44 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@249 be3aeb3a-fb24-0410-a615-afba39da0efa

gp2x/Makefile
gp2x/emu.c
gp2x/port_config.h
linux/port_config.h

index c6f9fe9..1458a34 100644 (file)
@@ -32,7 +32,12 @@ use_cyclone = 1
 endif\r
 \r
 DEFINC = -I../.. -I. -DARM -D__GP2X__ -D_UNZIP_SUPPORT # -DBENCHMARK\r
-COPT_COMMON = -static -Wall -O2 -ftracer -fstrength-reduce -fomit-frame-pointer -fstrict-aliasing -ffast-math -Winline\r
+COPT_COMMON = -static -Wall -Winline\r
+ifeq ($(DEBUG),)\r
+COPT_COMMON += -O2 -ftracer -fstrength-reduce -fomit-frame-pointer -fstrict-aliasing -ffast-math\r
+else\r
+COPT_COMMON += -ggdb\r
+endif\r
 ifeq "$(profile)" "1"\r
 COPT_COMMON += -fprofile-generate\r
 endif\r
index adb10a3..3096edd 100644 (file)
@@ -26,6 +26,7 @@
 #include <Pico/Patch.h>\r
 #include <zlib/zlib.h>\r
 \r
+//#define PFRAMES\r
 \r
 #ifdef BENCHMARK\r
 #define OSD_FPS_X 220\r
@@ -348,11 +349,11 @@ int emu_ReloadRom(void)
        }\r
 \r
        // additional movie stuff\r
-       if(movie_data) {\r
+       if (movie_data) {\r
                if(movie_data[0x14] == '6')\r
                     PicoOpt |=  0x20; // 6 button pad\r
                else PicoOpt &= ~0x20;\r
-               PicoOpt |= 0x40; // accurate timing\r
+               PicoOpt |= 0x10040; // accurate timing, no VDP fifo timing\r
                if(movie_data[0xF] >= 'A') {\r
                        if(movie_data[0x16] & 0x80) {\r
                                PicoRegionOverride = 8;\r
@@ -367,6 +368,7 @@ int emu_ReloadRom(void)
        }\r
        else\r
        {\r
+               PicoOpt &= ~0x10000;\r
                if(Pico.m.pal) {\r
                        strcpy(noticeMsg, "PAL SYSTEM / 50 FPS");\r
                } else {\r
@@ -1185,17 +1187,18 @@ void emu_Loop(void)
        // prepare sound stuff\r
        if(currentConfig.EmuOpt & 4) {\r
                int snd_excess_add;\r
-               if(PsndRate != PsndRate_old || (PicoOpt&0x20b) != (PicoOpt_old&0x20b) || Pico.m.pal != pal_old || crashed_940) {\r
+               if (PsndRate != PsndRate_old || (PicoOpt&0x20b) != (PicoOpt_old&0x20b) || Pico.m.pal != pal_old ||\r
+                               ((PicoOpt&0x200) && crashed_940)) {\r
                        /* if 940 is turned off, we need it to be put back to sleep */\r
                        if (!(PicoOpt&0x200) && ((PicoOpt^PicoOpt_old)&0x200)) {\r
                                Reset940(1, 2);\r
                                Pause940(1);\r
                        }\r
-                       sound_rerate(1);\r
+                       sound_rerate(Pico.m.frame_count ? 1 : 0);\r
                }\r
-               //excess_samples = PsndRate - PsndLen*target_fps;\r
                snd_excess_add = ((PsndRate - PsndLen*target_fps)<<16) / target_fps;\r
-               printf("starting audio: %i len: %i (ex: %04x) stereo: %i, pal: %i\n", PsndRate, PsndLen, snd_excess_add, (PicoOpt&8)>>3, Pico.m.pal);\r
+               printf("starting audio: %i len: %i (ex: %04x) stereo: %i, pal: %i\n",\r
+                       PsndRate, PsndLen, snd_excess_add, (PicoOpt&8)>>3, Pico.m.pal);\r
                gp2x_start_sound(PsndRate, 16, (PicoOpt&8)>>3);\r
                gp2x_sound_volume(currentConfig.volume, currentConfig.volume);\r
                PicoWriteSound = updateSound;\r
@@ -1307,6 +1310,9 @@ void emu_Loop(void)
                                if (frames_shown > frames_done) frames_shown = frames_done;\r
                        }\r
                }\r
+#ifdef PFRAMES\r
+               sprintf(fpsbuff, "%i", Pico.m.frame_count);\r
+#endif\r
 \r
                lim_time = (frames_done+1) * target_frametime + vsync_offset;\r
                if(currentConfig.Frameskip >= 0) { // frameskip enabled\r
@@ -1571,7 +1577,7 @@ int emu_SaveLoadGame(int load, int sram)
                        }\r
                } else {\r
                        sram_size = SRam.end-SRam.start+1;\r
-                       if(SRam.reg_back & 4) sram_size=0x2000;\r
+                       if(Pico.m.sram_reg & 4) sram_size=0x2000;\r
                        sram_data = SRam.data;\r
                }\r
                if (!sram_data) return 0; // SRam forcefully disabled for this game\r
index 7bfe247..02a3706 100644 (file)
@@ -13,7 +13,7 @@
 #define CAN_HANDLE_240_LINES   1\r
 \r
 // logging emu events\r
-#define EL_LOGMASK 0 // (EL_STATUS|EL_ANOMALY) // xffff\r
+#define EL_LOGMASK 0 // (EL_STATUS|EL_ANOMALY|EL_UIO) // xffff\r
 \r
 //#define dprintf(f,...) printf("%05i:%03i: " f "\n",Pico.m.frame_count,Pico.m.scanline,##__VA_ARGS__)\r
 #define dprintf(x...)\r
index 2e0eb54..0d439c4 100644 (file)
@@ -13,7 +13,7 @@
 // pico.c
 #define CAN_HANDLE_240_LINES   1
 
-#define EL_LOGMASK (EL_ANOMALY|EL_STATUS|EL_VDPDMA|EL_ASVDP|EL_SR) // |EL_BUSREQ|EL_Z80BNK)
+#define EL_LOGMASK (EL_ANOMALY|EL_STATUS|EL_SRAMIO|EL_EEPROM) // EL_VDPDMA|EL_ASVDP|EL_SR) // |EL_BUSREQ|EL_Z80BNK)
 
 //#define dprintf(f,...) printf("%05i:%03i: " f "\n",Pico.m.frame_count,Pico.m.scanline,##__VA_ARGS__)
 #define dprintf(x...)