cdrom: change pause timing again
[pcsx_rearmed.git] / frontend / main.c
index 092a844..ce7eca6 100644 (file)
@@ -23,6 +23,8 @@
 #include "plat.h"
 #include "../libpcsxcore/misc.h"
 #include "../libpcsxcore/cheat.h"
+#include "../libpcsxcore/sio.h"
+#include "../libpcsxcore/database.h"
 #include "../libpcsxcore/new_dynarec/new_dynarec.h"
 #include "../plugins/cdrcimg/cdrcimg.h"
 #include "../plugins/dfsound/spu_config.h"
@@ -134,21 +136,22 @@ void emu_set_default_config(void)
        Config.PsxAuto = 1;
        Config.cycle_multiplier = CYCLE_MULT_DEFAULT;
        Config.GpuListWalking = -1;
+       Config.FractionalFramerate = -1;
 
        pl_rearmed_cbs.gpu_neon.allow_interlace = 2; // auto
        pl_rearmed_cbs.gpu_neon.enhancement_enable =
        pl_rearmed_cbs.gpu_neon.enhancement_no_main = 0;
        pl_rearmed_cbs.gpu_peops.iUseDither = 0;
        pl_rearmed_cbs.gpu_peops.dwActFixes = 1<<7;
-       pl_rearmed_cbs.gpu_senquack.ilace_force = 0;
-       pl_rearmed_cbs.gpu_senquack.pixel_skip = 0;
-       pl_rearmed_cbs.gpu_senquack.lighting = 1;
-       pl_rearmed_cbs.gpu_senquack.fast_lighting = 0;
-       pl_rearmed_cbs.gpu_senquack.blending = 1;
-       pl_rearmed_cbs.gpu_senquack.dithering = 0;
-       pl_rearmed_cbs.gpu_unai.abe_hack =
-       pl_rearmed_cbs.gpu_unai.no_light =
-       pl_rearmed_cbs.gpu_unai.no_blend = 0;
+       pl_rearmed_cbs.gpu_unai.ilace_force = 0;
+       pl_rearmed_cbs.gpu_unai.pixel_skip = 0;
+       pl_rearmed_cbs.gpu_unai.lighting = 1;
+       pl_rearmed_cbs.gpu_unai.fast_lighting = 0;
+       pl_rearmed_cbs.gpu_unai.blending = 1;
+       pl_rearmed_cbs.gpu_unai.dithering = 0;
+       pl_rearmed_cbs.gpu_unai_old.abe_hack =
+       pl_rearmed_cbs.gpu_unai_old.no_light =
+       pl_rearmed_cbs.gpu_unai_old.no_blend = 0;
        memset(&pl_rearmed_cbs.gpu_peopsgl, 0, sizeof(pl_rearmed_cbs.gpu_peopsgl));
        pl_rearmed_cbs.gpu_peopsgl.iVRamSize = 64;
        pl_rearmed_cbs.gpu_peopsgl.iTexGarbageCollection = 1;
@@ -286,6 +289,10 @@ do_state_slot:
                                SysMessage("GPU_open returned %d", ret);
                }
                return;
+       case SACTION_ANALOG_TOGGLE:
+               ret = padToggleAnalog(0);
+               snprintf(hud_msg, sizeof(hud_msg), "ANALOG %s", ret ? "ON" : "OFF");
+               break;
 #endif
        default:
                return;
@@ -412,7 +419,11 @@ void emu_on_new_cd(int show_hud_msg)
        }
 
        if (show_hud_msg) {
-               snprintf(hud_msg, sizeof(hud_msg), BOOT_MSG);
+               if (check_unsatisfied_libcrypt())
+                       snprintf(hud_msg, sizeof(hud_msg),
+                               "LibCrypt protected game with missing SBI detected");
+               else
+                       snprintf(hud_msg, sizeof(hud_msg), BOOT_MSG);
                hud_new_msg = 3;
        }
 }
@@ -435,6 +446,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 +518,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();
@@ -541,6 +595,7 @@ int main(int argc, char *argv[])
 {
        char file[MAXPATHLEN] = "";
        char path[MAXPATHLEN];
+       char isofilename[MAXPATHLEN];
        const char *cdfile = NULL;
        const char *loadst_f = NULL;
        int psxout = 0;
@@ -559,8 +614,6 @@ int main(int argc, char *argv[])
                        SysPrintf("Using config file %s.\n", cfgfile_basename);
                }
                else if (!strcmp(argv[i], "-cdfile")) {
-                       char isofilename[MAXPATHLEN];
-
                        if (i+1 >= argc) break;
                        strncpy(isofilename, argv[++i], MAXPATHLEN);
                        if (isofilename[0] != '/') {
@@ -666,6 +719,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