readme and textfilter updated for uiq3
authornotaz <notasas@gmail.com>
Thu, 21 Aug 2008 13:26:49 +0000 (13:26 +0000)
committernotaz <notasas@gmail.com>
Thu, 21 Aug 2008 13:26:49 +0000 (13:26 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@571 be3aeb3a-fb24-0410-a615-afba39da0efa

platform/base_readme.txt
tools/textfilter.c

index 6f8551b..c0969bf 100644 (file)
@@ -36,7 +36,6 @@ How to make it run
 Copy PicoDrive.gpe, pico940_v3.bin and mmuhack.o to any place in your filesystem\r
 (all 3 files must be in the same directory) and run PicoDrive.gpe.\r
 Then load a ROM and enjoy! ROMs can be in .smd or .bin format and can be zipped.\r
-\r
 #endif\r
 #ifdef GIZ\r
 First make sure you have homebrew-enabled Service Pack installed. Then copy\r
@@ -45,7 +44,6 @@ be in the same directory) and run PicoDrive.exe using the launcher of your choic
 (some of them might require renaming PicoDrive.exe to Autorun.exe, placing it in\r
 the root of SD, etc). Then load a ROM and enjoy! ROMs can be placed anywhere, can\r
 be in .smd or .bin format and can be zipped (one ROM per zip).\r
-\r
 #endif\r
 #ifdef PSP\r
 If you are running a custom firmware, just copy the whole PicoDrive directory to\r
@@ -53,8 +51,13 @@ If you are running a custom firmware, just copy the whole PicoDrive directory to
 which one GAME* directory to use).\r
 \r
 If you are on 1.5, there is a separate KXploited version for it.\r
-\r
 #endif\r
+#ifdef UIQ\r
+Copy SIS and some ROMs to any directory in your memory stick, and install the SIS.\r
+Then load a ROM and enjoy! ROMs can be in .smd or .bin format and can be zipped.\r
+#endif\r
+#ifndef UIQ\r
+\r
 Note that this emulator may require some tweaking of configuration settings to run\r
 some games well. For Genesis/MegaDrive, if you have any problems (game does not\r
 boot, sound is glitchy, broken graphics), try to:\r
@@ -67,13 +70,19 @@ boot, sound is glitchy, broken graphics), try to:
 Some games may need to be reset after adjusting settings.\r
 \r
 For possible Sega/Mega CD problems, see "Other important stuff" section below.\r
+#endif\r
 \r
 \r
 How to run Sega/Mega CD games\r
 -----------------------------\r
 \r
-To play any game, you need BIOS files. These files must be copied to the same\r
-directory as mentioned PicoDrive files. Files can be named as follows:\r
+To play any game, you need BIOS files. These files must be copied to\r
+#ifdef UIQ\r
+D:\other\PicoDrive\ directory.\r
+#else\r
+the same directory as mentioned PicoDrive files.\r
+#endif\r
+Files can be named as follows:\r
 \r
 US: us_scd1_9210.bin us_scd2_9306.bin SegaCDBIOS9303.bin\r
 EU: eu_mcd1_9210.bin eu_mcd2_9303.bin eu_mcd2_9306.bin\r
@@ -125,7 +134,11 @@ Other important stuff
 ---------------------\r
 \r
 * If your Genesis/MD game has graphical glitches, this is most likely because\r
+#ifndef UIQ\r
   "accurate renderer" is not enabled (see options).\r
+#else\r
+  "Fast renderer (inaccurate)" is enabled. Try disabling it.\r
+#endif\r
 * Sega/Mega CD: If the game hangs after Sega logo, you may need to enable\r
   "better sync" and/or "Scale/Rot. fx" options, found in "Sega/Mega CD options"\r
   submenu, and then reset the game. Some other games may also require\r
@@ -167,6 +180,9 @@ Other important stuff
 Configuration\r
 -------------\r
 \r
+#ifdef UIQ\r
+#include "config.txt"\r
+#else\r
 @@0. "Renderer"\r
 #ifdef GP2X\r
 8bit fast:\r
@@ -480,6 +496,7 @@ both buttons for that action to happen).
 \r
 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
 \r
 \r
 Cheat support\r
@@ -656,6 +673,7 @@ Changelog
   * Fixed a crash when uncompressed savestate is loaded.\r
   * Fixed an idle loop detection related hanging problem.\r
   * PSP: fixed another palette related regression.\r
+  * UIQ3: updated frontend for the latest emu core.\r
 \r
 1.51a\r
   * Fixed a sync problem between main and sub 68k. Should fix the hanging\r
index 212555b..bcac838 100644 (file)
@@ -1,11 +1,13 @@
 #include <stdio.h>
 #include <string.h>
+#include <ctype.h>
 
 
 static int check_defines(const char **defs, int defcount, char *tdef)
 {
        int i, len;
 
+       while (isspace(*tdef)) tdef++;
        len = strlen(tdef);
        for (i = 0; i < len; i++)
                if (tdef[i] == ' ' || tdef[i] == '\r' || tdef[i] == '\n') break;
@@ -43,7 +45,7 @@ int main(int argc, char *argv[])
 {
        char buff[1024];
        FILE *fi, *fo;
-       int skip_mode = 0, ifdef_level = 0, line = 0;
+       int skip_mode = 0, ifdef_level = 0, skip_level = 0, line = 0;
 
        if (argc < 3)
        {
@@ -77,20 +79,25 @@ int main(int argc, char *argv[])
                        /* control char */
                        if (strncmp(buff, "#ifdef ", 7) == 0)
                        {
-                               if (!check_defines((void *) &argv[3], argc-3, buff + 7)) skip_mode = 1;
                                ifdef_level++;
+                               if (!skip_mode && !check_defines((void *) &argv[3], argc-3, buff + 7))
+                                       skip_mode = 1, skip_level = ifdef_level;
                        }
                        else if (strncmp(buff, "#ifndef ", 8) == 0)
                        {
-                               if ( check_defines((void *) &argv[3], argc-3, buff + 7)) skip_mode = 1;
                                ifdef_level++;
+                               if (!skip_mode &&  check_defines((void *) &argv[3], argc-3, buff + 8))
+                                       skip_mode = 1, skip_level = ifdef_level;
                        }
                        else if (strncmp(buff, "#else", 5) == 0)
                        {
-                               skip_mode ^= 1;
+                               if (!skip_mode || skip_level == ifdef_level)
+                                       skip_mode ^= 1, skip_level = ifdef_level;
                        }
                        else if (strncmp(buff, "#endif", 6) == 0)
                        {
+                               if (skip_level == ifdef_level)
+                                       skip_mode = 0;
                                ifdef_level--;
                                if (ifdef_level == 0) skip_mode = 0;
                                if (ifdef_level < 0)
@@ -99,6 +106,29 @@ int main(int argc, char *argv[])
                                        ifdef_level = 0;
                                }
                        }
+                       else if (strncmp(buff, "#include ", 9) == 0)
+                       {
+                               char *pe, *p = buff + 9;
+                               FILE *ftmp;
+                               if (skip_mode) continue;
+                               while (*p && (*p == ' ' || *p == '\"')) p++;
+                               for (pe = p + strlen(p) - 1; pe > p; pe--)
+                                       if (isspace(*pe) || *pe == '\"') *pe = 0;
+                                       else break;
+                               ftmp = fopen(p, "r");
+                               if (ftmp == NULL) {
+                                       printf("%i: error: failed to include \"%s\"\n", line, p);
+                                       return 1;
+                               }
+                               while (!feof(ftmp))
+                               {
+                                       fgs = fgets(buff, sizeof(buff), ftmp);
+                                       if (fgs == NULL) break;
+                                       fputs(buff, fo);
+                               }
+                               fclose(ftmp);
+                               continue;
+                       }
 
                        /* skip line */
                        continue;