standalone: load per-game config from cmd line too
[pcsx_rearmed.git] / frontend / main.c
index 1d00835..05e4d55 100644 (file)
@@ -23,6 +23,7 @@
 #include "plat.h"
 #include "../libpcsxcore/misc.h"
 #include "../libpcsxcore/cheat.h"
+#include "../libpcsxcore/sio.h"
 #include "../libpcsxcore/new_dynarec/new_dynarec.h"
 #include "../plugins/cdrcimg/cdrcimg.h"
 #include "../plugins/dfsound/spu_config.h"
@@ -435,6 +436,49 @@ static void log_wrong_cpu(void)
 #endif // DO_CPU_CHECKS
 }
 
+#define MKSTR2(x) #x
+#define MKSTR(x) MKSTR2(x)
+static const char *get_build_info(void)
+{
+       return " ("
+#ifdef __VERSION__
+               "cc " __VERSION__ " "
+#endif
+#if defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 8
+               "64bit "
+#elif defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 4
+               "32bit "
+#endif
+#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+               "be "
+#endif
+#if defined(__PIC__) || defined(__pic__)
+               "pic "
+#endif
+#if defined(__aarch64__)
+               "arm64"
+#elif defined(__arm__)
+               "arm"
+#endif
+#ifdef __ARM_ARCH
+               "v" MKSTR(__ARM_ARCH) " "
+#endif
+#if defined(__AVX__)
+               "avx "
+#elif defined(__SSSE3__)
+               "ssse3 "
+#elif defined(__ARM_NEON) || defined(__ARM_NEON__)
+               "neon "
+#endif
+#if defined(LIGHTREC)
+               "lightrec "
+#elif !defined(DRC_DISABLE)
+               "ari64 "
+#endif
+               "gpu=" MKSTR(BUILTIN_GPU)
+               ")";
+}
+
 int emu_core_preinit(void)
 {
        // what is the name of the config file?
@@ -464,7 +508,7 @@ int emu_core_preinit(void)
 
 int emu_core_init(void)
 {
-       SysPrintf("Starting PCSX-ReARMed " REV "\n");
+       SysPrintf("Starting PCSX-ReARMed " REV "%s\n", get_build_info());
 
 #ifndef NO_FRONTEND
        check_profile();
@@ -666,6 +710,8 @@ int main(int argc, char *argv[])
        }
 
        if (ready_to_go) {
+               if (menu_load_config(1) != 0)
+                       menu_load_config(0);
                menu_prepare_emu();
 
                // If a state has been specified, then load that
@@ -703,8 +749,8 @@ static void toggle_fast_forward(int force_off)
 {
        static int fast_forward;
        static int normal_g_opts;
-       static int normal_frameskip;
        static int normal_enhancement_enable;
+       //static int normal_frameskip;
 
        if (force_off && !fast_forward)
                return;
@@ -712,16 +758,16 @@ static void toggle_fast_forward(int force_off)
        fast_forward = !fast_forward;
        if (fast_forward) {
                normal_g_opts = g_opts;
-               normal_frameskip = pl_rearmed_cbs.frameskip;
+               //normal_frameskip = pl_rearmed_cbs.frameskip;
                normal_enhancement_enable =
                        pl_rearmed_cbs.gpu_neon.enhancement_enable;
 
                g_opts |= OPT_NO_FRAMELIM;
-               pl_rearmed_cbs.frameskip = 3;
+               // pl_rearmed_cbs.frameskip = 3; // too broken
                pl_rearmed_cbs.gpu_neon.enhancement_enable = 0;
        } else {
                g_opts = normal_g_opts;
-               pl_rearmed_cbs.frameskip = normal_frameskip;
+               //pl_rearmed_cbs.frameskip = normal_frameskip;
                pl_rearmed_cbs.gpu_neon.enhancement_enable =
                        normal_enhancement_enable;
 
@@ -736,7 +782,7 @@ static void toggle_fast_forward(int force_off)
 static void SignalExit(int sig) {
        // only to restore framebuffer/resolution on some devices
        plat_finish();
-       exit(1);
+       _exit(1);
 }
 #endif