cue support wip
[libpicofe.git] / common / emu.c
index e4cce67..1bbdf35 100644 (file)
@@ -164,6 +164,9 @@ int emu_cdCheck(int *pregion)
        unsigned char buf[32];\r
        pm_file *cd_f;\r
        int type = 0, region = 4; // 1: Japan, 4: US, 8: Europe\r
+       char ext[5];\r
+\r
+       get_ext(romFileName, ext);\r
 \r
        cd_f = pm_open(romFileName);\r
        if (!cd_f) return 0; // let the upper level handle this\r
@@ -330,7 +333,7 @@ int emu_ReloadRom(void)
 \r
        // check for MegaCD image\r
        cd_state = emu_cdCheck(&cd_region);\r
-       if (cd_state > 0)\r
+       if (cd_state != CIT_NOT_CD)\r
        {\r
                PicoAHW |= PAHW_MCD;\r
                // valid CD image, check for BIOS..\r
@@ -405,8 +408,8 @@ int emu_ReloadRom(void)
        Pico.m.frame_count = 0;\r
 \r
        // insert CD if it was detected\r
-       if (cd_state > 0) {\r
-               ret = Insert_CD(romFileName, cd_state == 2);\r
+       if (cd_state != CIT_NOT_CD) {\r
+               ret = Insert_CD(romFileName, cd_state);\r
                if (ret != 0) {\r
                        sprintf(menuErrorMsg, "Insert_CD() failed, invalid CD image?");\r
                        lprintf("%s\n", menuErrorMsg);\r
@@ -572,6 +575,7 @@ int emu_ReadConfig(int game, int no_defaults)
        if (currentConfig.CPUclock < 10 || currentConfig.CPUclock > 4096) currentConfig.CPUclock = 200;\r
 #ifdef PSP\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
@@ -672,6 +676,12 @@ void emu_textOut16(int x, int y, const char *text)
        }\r
 }\r
 \r
+#ifdef PSP\r
+#define MAX_COMBO_KEY 23\r
+#else\r
+#define MAX_COMBO_KEY 31\r
+#endif\r
+\r
 void emu_findKeyBindCombos(void)\r
 {\r
        int act, u;\r
@@ -684,15 +694,15 @@ void emu_findKeyBindCombos(void)
                if (act == 16 || act == 17) continue; // player2 flag\r
                if (act > 17)\r
                {\r
-                       for (u = 0; u < 32; u++)\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 < 32; u++)\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 < 32; u++)\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
@@ -700,7 +710,7 @@ void emu_findKeyBindCombos(void)
                if (keyc > 1)\r
                {\r
                        // loop again and mark those keys and actions as combo\r
-                       for (u = 0; u < 32; u++)\r
+                       for (u = 0; u <= MAX_COMBO_KEY; u++)\r
                        {\r
                                if (currentConfig.KeyBinds[u] & (1 << act)) {\r
                                        kb_combo_keys |= 1 << u;\r