yet more random armv5 tweaks
[pcsx_rearmed.git] / frontend / main.c
index 13be9ac..0a9bed6 100644 (file)
 #include "common/input.h"
 #include "common/readpng.h"
 
+// don't include debug.h - it breaks ARM build (R1 redefined)
+void StartDebugger();
+void StopDebugger();
+
 int ready_to_go;
 unsigned long gpuDisp;
 char cfgfile_basename[MAXPATHLEN];
@@ -117,6 +121,9 @@ static void set_default_paths(void)
        strcpy(Config.Pad1, "builtin_pad");
        strcpy(Config.Pad2, "builtin_pad");
        strcpy(Config.Net, "Disabled");
+#if defined(__arm__) && !defined(__ARM_ARCH_7A__) /* XXX */
+       strcpy(Config.Gpu, "gpuPCSX4ALL.so");
+#endif
        Config.PsxAuto = 1;
 
        snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "." PATCHES_DIR);
@@ -149,8 +156,6 @@ void do_emu_action(void)
        emu_action_old = emu_action;
 
        switch (emu_action) {
-       case SACTION_NONE:
-               return;
        case SACTION_ENTER_MENU:
                menu_loop();
                return;
@@ -173,9 +178,14 @@ void do_emu_action(void)
                        state_slot = 9;
                goto do_state_slot;
        case SACTION_TOGGLE_FSKIP:
-               pl_rearmed_cbs.frameskip ^= 1;
-               snprintf(hud_msg, sizeof(hud_msg), "FRAMESKIP %s",
-                       pl_rearmed_cbs.frameskip ? "ON" : "OFF");
+               pl_rearmed_cbs.fskip_advice = 0;
+               pl_rearmed_cbs.frameskip++;
+               if (pl_rearmed_cbs.frameskip > 1)
+                       pl_rearmed_cbs.frameskip = -1;
+               snprintf(hud_msg, sizeof(hud_msg), "FRAMESKIP: %s",
+                       pl_rearmed_cbs.frameskip == -1 ? "AUTO" :
+                       pl_rearmed_cbs.frameskip == 0 ? "OFF" : "1" );
+               plugin_call_rearmed_cbs();
                break;
        case SACTION_SCREENSHOT:
                {
@@ -196,6 +206,8 @@ void do_emu_action(void)
                                snprintf(hud_msg, sizeof(hud_msg), "SCREENSHOT TAKEN");
                        break;
                }
+       default:
+               return;
        }
        hud_new_msg = 3;
        return;
@@ -204,6 +216,7 @@ do_state_slot:
        snprintf(hud_msg, sizeof(hud_msg), "STATE SLOT %d [%s]", state_slot,
                emu_check_state(state_slot) == 0 ? "USED" : "FREE");
        hud_new_msg = 3;
+       printf("* %s\n", hud_msg);
 }
 
 int main(int argc, char *argv[])
@@ -317,6 +330,7 @@ int main(int argc, char *argv[])
        //in_probe();
        plat_init();
        menu_init(); // loads config
+       pl_init();
 
        if (psxout)
                Config.PsxOut = 1;
@@ -476,7 +490,9 @@ int emu_save_state(int slot)
        if (ret != 0)
                return ret;
 
-       return SaveState(fname);
+       ret = SaveState(fname);
+       printf("* %s \"%s\" [%d]\n", ret == 0 ? "saved" : "failed to save", fname, slot);
+       return ret;
 }
 
 int emu_load_state(int slot)