gp2x+wiz binary support, wiz code wip
[libpicofe.git] / common / emu.c
index b03f8f8..5f18dd0 100644 (file)
@@ -5,7 +5,6 @@
 \r
 #include <stdio.h>\r
 #include <stdlib.h>\r
-#include <ctype.h> // tolower\r
 #ifndef NO_SYNC\r
 #include <unistd.h>\r
 #endif\r
@@ -15,7 +14,6 @@
 #include "fonts.h"\r
 #include "lprintf.h"\r
 #include "config.h"\r
-#include "common.h"\r
 #include "plat.h"\r
 \r
 #include <pico/pico_int.h>\r
@@ -36,7 +34,6 @@ currentConfig_t currentConfig, defaultConfig;
 char noticeMsg[64] = { 0, };\r
 int state_slot = 0;\r
 int config_slot = 0, config_slot_current = 0;\r
-int kb_combo_keys = 0, kb_combo_acts = 0;      // keys and actions which need button combos\r
 int pico_inp_mode = 0;\r
 int engineState = PGS_Menu;\r
 \r
@@ -49,12 +46,13 @@ unsigned char *movie_data = NULL;
 static int movie_size = 0;\r
 \r
 \r
-// utilities\r
+/* don't use tolower() for easy old glibc binary compatibility */\r
 static void strlwr_(char *string)\r
 {\r
        char *p;\r
        for (p = string; *p; p++)\r
-               *p = (char)tolower(*p);\r
+               if ('A' <= *p && *p <= 'Z')\r
+                       *p += 'a' - 'A';\r
 }\r
 \r
 static int try_rfn_cut(char *fname)\r
@@ -623,23 +621,21 @@ int emu_ReadConfig(int game, int no_defaults)
                }\r
        }\r
 \r
+       plat_validate_config();\r
+\r
        // some sanity checks\r
-       if (currentConfig.CPUclock < 10 || currentConfig.CPUclock > 4096) currentConfig.CPUclock = 200;\r
 #ifdef PSP\r
+       /* TODO: mv to plat_validate_config() */\r
+       if (currentConfig.CPUclock < 10 || currentConfig.CPUclock > 4096) currentConfig.CPUclock = 200;\r
        if (currentConfig.gamma < -4 || currentConfig.gamma >  16) currentConfig.gamma = 0;\r
        if (currentConfig.gamma2 < 0 || currentConfig.gamma2 > 2)  currentConfig.gamma2 = 0;\r
-#else\r
-       if (currentConfig.gamma < 10 || currentConfig.gamma > 300) currentConfig.gamma = 100;\r
 #endif\r
-       if (currentConfig.volume < 0 || currentConfig.volume > 99) currentConfig.volume = 50;\r
-#ifdef __GP2X__\r
-       // if volume keys are unbound, bind them to volume control\r
-       if (!currentConfig.KeyBinds[23] && !currentConfig.KeyBinds[22]) {\r
-               currentConfig.KeyBinds[23] = 1<<29; // vol up\r
-               currentConfig.KeyBinds[22] = 1<<30; // vol down\r
-       }\r
-#endif\r
-       if (ret == 0) config_slot_current = config_slot;\r
+       if (currentConfig.volume < 0 || currentConfig.volume > 99)\r
+               currentConfig.volume = 50;\r
+\r
+       if (ret == 0)\r
+               config_slot_current = config_slot;\r
+\r
        return (ret == 0);\r
 }\r
 \r
@@ -715,54 +711,6 @@ mk_text_out(emu_textOut16, unsigned short, 0xffff)
 \r
 #undef mk_text_out\r
 \r
-#ifdef PSP\r
-#define MAX_COMBO_KEY 23\r
-#else\r
-#define MAX_COMBO_KEY 31\r
-#endif\r
-\r
-// FIXME\r
-void emu_findKeyBindCombos(void)\r
-{\r
-       int act, u;\r
-\r
-       // find out which keys and actions are combos\r
-       kb_combo_keys = kb_combo_acts = 0;\r
-       for (act = 0; act < 32; act++)\r
-       {\r
-               int keyc = 0, keyc2 = 0;\r
-               if (act == 16 || act == 17) continue; // player2 flag\r
-               if (act > 17)\r
-               {\r
-                       for (u = 0; u <= MAX_COMBO_KEY; u++)\r
-                               if (currentConfig.KeyBinds[u] & (1 << act)) keyc++;\r
-               }\r
-               else\r
-               {\r
-                       for (u = 0; u <= MAX_COMBO_KEY; u++)\r
-                               if ((currentConfig.KeyBinds[u] & 0x30000) == 0 && // pl. 1\r
-                                       (currentConfig.KeyBinds[u] & (1 << act))) keyc++;\r
-                       for (u = 0; u <= MAX_COMBO_KEY; u++)\r
-                               if ((currentConfig.KeyBinds[u] & 0x30000) == 1 && // pl. 2\r
-                                       (currentConfig.KeyBinds[u] & (1 << act))) keyc2++;\r
-                       if (keyc2 > keyc) keyc = keyc2;\r
-               }\r
-               if (keyc > 1)\r
-               {\r
-                       // loop again and mark those keys and actions as combo\r
-                       for (u = 0; u <= MAX_COMBO_KEY; u++)\r
-                       {\r
-                               if (currentConfig.KeyBinds[u] & (1 << act)) {\r
-                                       kb_combo_keys |= 1 << u;\r
-                                       kb_combo_acts |= 1 << act;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-\r
-       // printf("combo keys/acts: %08x %08x\n", kb_combo_keys, kb_combo_acts);\r
-}\r
-\r
 \r
 void emu_updateMovie(void)\r
 {\r