UIQ3 bugfixes, SVP drc indirect jumps, stuff
authornotaz <notasas@gmail.com>
Sun, 24 Aug 2008 09:33:12 +0000 (09:33 +0000)
committernotaz <notasas@gmail.com>
Sun, 24 Aug 2008 09:33:12 +0000 (09:33 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@572 be3aeb3a-fb24-0410-a615-afba39da0efa

base_readme.txt
common/config.c
common/emu.c
gp2x/emu.c
linux/port_config.h
pandora/emu.c
psp/emu.c

index c0969bf..abd6a10 100644 (file)
@@ -402,7 +402,7 @@ test your BIOS.
 The Sega/Mega CD unit had two blinking LEDs (red and green) on it. This option\r
 will display them on top-left corner of the screen.\r
 \r
-@@2. "CDDA audio (using mp3s)"\r
+@@2. "CDDA audio"\r
 This option enables CD audio playback.\r
 \r
 @@2. "PCM audio"\r
@@ -497,6 +497,7 @@ both buttons for that action to happen).
 There is also option to enable 6 button pad (will allow you to configure XYZ\r
 keys), and an option to set turbo rate (in Hz) for turbo buttons.\r
 #endif\r
+#ifndef UIQ\r
 \r
 \r
 Cheat support\r
@@ -535,6 +536,7 @@ PATCH FILE: Sonic 2.bin.pat
 \r
 Put the file into your ROMs directory. Then load the .pat file as you would\r
 a ROM. Then Cheat Menu Option should appear in main menu.\r
+#endif\r
 \r
 \r
 What is emulated?\r
index f8fe5d0..a621893 100644 (file)
@@ -6,7 +6,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#ifdef UIQ3
+#ifdef __EPOC32__
 #include <unistd.h>
 #endif
 #include "config.h"
index 7dbac50..eaabe08 100644 (file)
@@ -44,9 +44,11 @@ extern void menu_romload_end(void);
 \r
 \r
 // utilities\r
-static void strlwr_(charstring)\r
+static void strlwr_(char *string)\r
 {\r
-       while ( (*string++ = (char)tolower(*string)) );\r
+       char *p;\r
+       for (p = string; *p; p++)\r
+               *p = (char)tolower(*p);\r
 }\r
 \r
 static int try_rfn_cut(char *fname)\r
@@ -345,6 +347,7 @@ int emu_ReloadRom(char *rom_fname)
                        return 0;\r
                }\r
                get_ext(rom_fname, ext);\r
+               lprintf("gmv loaded for %s\n", rom_fname);\r
        }\r
        else if (!strcmp(ext, ".pat"))\r
        {\r
@@ -407,7 +410,9 @@ int emu_ReloadRom(char *rom_fname)
        rom_loaded = 0;\r
 \r
        if ( (ret = PicoCartLoad(rom, &rom_data, &rom_size)) ) {\r
-               sprintf(menuErrorMsg, "PicoCartLoad() failed.");\r
+               if      (ret == 2) sprintf(menuErrorMsg, "Out of memory");\r
+               else if (ret == 3) sprintf(menuErrorMsg, "Read failed");\r
+               else               sprintf(menuErrorMsg, "PicoCartLoad() failed.");\r
                lprintf("%s\n", menuErrorMsg);\r
                goto fail2;\r
        }\r
@@ -774,13 +779,13 @@ void emu_updateMovie(void)
        } else {\r
                // MXYZ SACB RLDU\r
                PicoPad[0] = ~movie_data[offs]   & 0x8f; // ! SCBA RLDU\r
-               if(!(movie_data[offs]   & 0x10)) PicoPad[0] |= 0x40; // A\r
-               if(!(movie_data[offs]   & 0x20)) PicoPad[0] |= 0x10; // B\r
-               if(!(movie_data[offs]   & 0x40)) PicoPad[0] |= 0x20; // A\r
+               if(!(movie_data[offs]   & 0x10)) PicoPad[0] |= 0x40; // C\r
+               if(!(movie_data[offs]   & 0x20)) PicoPad[0] |= 0x10; // A\r
+               if(!(movie_data[offs]   & 0x40)) PicoPad[0] |= 0x20; // B\r
                PicoPad[1] = ~movie_data[offs+1] & 0x8f; // ! SCBA RLDU\r
-               if(!(movie_data[offs+1] & 0x10)) PicoPad[1] |= 0x40; // A\r
-               if(!(movie_data[offs+1] & 0x20)) PicoPad[1] |= 0x10; // B\r
-               if(!(movie_data[offs+1] & 0x40)) PicoPad[1] |= 0x20; // A\r
+               if(!(movie_data[offs+1] & 0x10)) PicoPad[1] |= 0x40; // C\r
+               if(!(movie_data[offs+1] & 0x20)) PicoPad[1] |= 0x10; // A\r
+               if(!(movie_data[offs+1] & 0x40)) PicoPad[1] |= 0x20; // B\r
                PicoPad[0] |= (~movie_data[offs+2] & 0x0A) << 8; // ! MZYX\r
                if(!(movie_data[offs+2] & 0x01)) PicoPad[0] |= 0x0400; // X\r
                if(!(movie_data[offs+2] & 0x04)) PicoPad[0] |= 0x0100; // Z\r
index c225f18..dc78521 100644 (file)
@@ -283,7 +283,7 @@ static void blit(const char *fps, const char *notice)
                // 8bit accurate renderer\r
                if (Pico.m.dirtyPal)\r
                {\r
-                       int pallen = 0x40;\r
+                       int pallen = 0xc0;\r
                        Pico.m.dirtyPal = 0;\r
                        if (Pico.video.reg[0xC]&8) // shadow/hilight mode\r
                        {\r
@@ -293,21 +293,14 @@ static void blit(const char *fps, const char *notice)
                                memcpy32(localPal+0xc0, localPal+0x40, 0x40);\r
                                pallen = 0x100;\r
                        }\r
-                       else if (rendstatus & PDRAW_ACC_SPRITES) {\r
-                               vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
-                               memcpy32(localPal+0x40, localPal, 0x40);\r
-                               memcpy32(localPal+0x80, localPal, 0x40);\r
-                               memcpy32(localPal+0xc0, localPal, 0x40);\r
-                               pallen = 0x100;\r
-                       }\r
                        else if (rendstatus & PDRAW_SONIC_MODE) { // mid-frame palette changes\r
                                vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
                                vidConvCpyRGB32(localPal+0x40, HighPal, 0x40);\r
                                vidConvCpyRGB32(localPal+0x80, HighPal+0x40, 0x40);\r
-                               pallen = 0xc0;\r
                        }\r
                        else {\r
                                vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
+                               memcpy32(localPal+0x80, localPal, 0x40); // for spr prio mess\r
                        }\r
                        if (pallen > 0xc0) {\r
                                localPal[0xc0] = 0x0000c000;\r
index 87bbe4b..b781da7 100644 (file)
 //#define dprintf(f,...) printf("%05i:%03i: " f "\n",Pico.m.frame_count,Pico.m.scanline,##__VA_ARGS__)
 #define dprintf(x...)
 
+// platform
+#define PLAT_MAX_KEYS 32
+#define PLAT_HAVE_JOY 1
+#define PATH_SEP      "/"
+#define PATH_SEP_C    '/'
+
 #endif //PORT_CONFIG_H
 
index 2d873df..0c6935b 100644 (file)
@@ -350,7 +350,7 @@ static void blit(const char *fps, const char *notice)
                // 8bit accurate renderer\r
                if (Pico.m.dirtyPal)\r
                {\r
-                       int pallen = 0x40;\r
+                       int pallen = 0xc0;\r
                        Pico.m.dirtyPal = 0;\r
                        if (Pico.video.reg[0xC]&8) // shadow/hilight mode\r
                        {\r
@@ -360,13 +360,6 @@ static void blit(const char *fps, const char *notice)
                                memcpy32(localPal+0xc0, localPal+0x40, 0x40);\r
                                pallen = 0x100;\r
                        }\r
-                       else if (rendstatus & PDRAW_ACC_SPRITES) {\r
-                               vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
-                               memcpy32(localPal+0x40, localPal, 0x40);\r
-                               memcpy32(localPal+0x80, localPal, 0x40);\r
-                               memcpy32(localPal+0xc0, localPal, 0x40);\r
-                               pallen = 0x100;\r
-                       }\r
                        else if (rendstatus & PDRAW_SONIC_MODE) { // mid-frame palette changes\r
                                vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
                                vidConvCpyRGB32(localPal+0x40, HighPal, 0x40);\r
@@ -375,6 +368,7 @@ static void blit(const char *fps, const char *notice)
                        }\r
                        else {\r
                                vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
+                               memcpy32(localPal+0x80, localPal, 0x40);\r
                        }\r
                        if (pallen > 0xc0) {\r
                                localPal[0xc0] = 0x0000c000;\r
index d3e6317..5c87355 100644 (file)
--- a/psp/emu.c
+++ b/psp/emu.c
@@ -263,7 +263,7 @@ static void do_pal_update(int allow_sh, int allow_as)
                localPal[0xe0] = 0;
                localPal[0xf0] = 0x001f;
        }
-       else if (allow_as && (rendstatus & PDRAW_ACC_SPRITES))
+       else if (allow_as && (rendstatus & PDRAW_SPR_LO_ON_HI))
        {
                memcpy32((int *)dpal+0x80/2, (void *)localPal, 0x40*2/4);
        }
@@ -290,7 +290,7 @@ static void EmuScanPrepare(void)
 
        if (Pico.m.dirtyPal)
                do_pal_update(1, 1);
-       if ((rendstatus & PDRAW_ACC_SPRITES) && !(Pico.video.reg[0xC]&8))
+       if ((rendstatus & PDRAW_SPR_LO_ON_HI) && !(Pico.video.reg[0xC]&8))
             amips_clut_f = amips_clut_6bit;
        else amips_clut_f = amips_clut;
 }