drc: only override default cycle_multiplier
authornotaz <notasas@gmail.com>
Wed, 24 Nov 2021 20:52:53 +0000 (22:52 +0200)
committernotaz <notasas@gmail.com>
Wed, 24 Nov 2021 20:52:53 +0000 (22:52 +0200)
To let the user tune if they want. Also iS multiplier in db
was still too small for HLE mode.

frontend/menu.c
libpcsxcore/database.c
libpcsxcore/new_dynarec/new_dynarec.c
libpcsxcore/new_dynarec/new_dynarec.h

index fbcda2d..f5d035a 100644 (file)
@@ -102,7 +102,7 @@ int soft_scaling, analog_deadzone; // for Caanoo
 int soft_filter;
 
 #ifndef HAVE_PRE_ARMV7
 int soft_filter;
 
 #ifndef HAVE_PRE_ARMV7
-#define DEFAULT_PSX_CLOCK 57
+#define DEFAULT_PSX_CLOCK (10000 / CYCLE_MULT_DEFAULT)
 #define DEFAULT_PSX_CLOCK_S "57"
 #else
 #define DEFAULT_PSX_CLOCK 50
 #define DEFAULT_PSX_CLOCK_S "57"
 #else
 #define DEFAULT_PSX_CLOCK 50
index 108ccc6..4d4439a 100644 (file)
@@ -40,7 +40,7 @@ void Apply_Hacks_Cdrom()
        /* Internal Section is fussy about timings */
        if (strcmp(CdromId, "SLPS01868") == 0)
        {
        /* Internal Section is fussy about timings */
        if (strcmp(CdromId, "SLPS01868") == 0)
        {
-               cycle_multiplier_override = 200;
+               cycle_multiplier_override = 202;
                new_dynarec_hacks_pergame |= NDHACK_OVERRIDE_CYCLE_M;
        }
 }
                new_dynarec_hacks_pergame |= NDHACK_OVERRIDE_CYCLE_M;
        }
 }
index a8fdf47..f6ea299 100644 (file)
@@ -465,13 +465,13 @@ static void do_clear_cache(void)
 
 #define NO_CYCLE_PENALTY_THR 12
 
 
 #define NO_CYCLE_PENALTY_THR 12
 
-int cycle_multiplier; // 100 for 1.0
+int cycle_multiplier = CYCLE_MULT_DEFAULT; // 100 for 1.0
 int cycle_multiplier_override;
 int cycle_multiplier_old;
 
 static int CLOCK_ADJUST(int x)
 {
 int cycle_multiplier_override;
 int cycle_multiplier_old;
 
 static int CLOCK_ADJUST(int x)
 {
-  int m = cycle_multiplier_override
+  int m = cycle_multiplier_override && cycle_multiplier == CYCLE_MULT_DEFAULT
         ? cycle_multiplier_override : cycle_multiplier;
   int s=(x>>31)|1;
   return (x * m + s * 50) / 100;
         ? cycle_multiplier_override : cycle_multiplier;
   int s=(x>>31)|1;
   return (x * m + s * 50) / 100;
index b9a3c67..f146469 100644 (file)
@@ -4,6 +4,8 @@ extern int pcaddr;
 extern int pending_exception;
 extern int stop;
 extern int new_dynarec_did_compile;
 extern int pending_exception;
 extern int stop;
 extern int new_dynarec_did_compile;
+
+#define CYCLE_MULT_DEFAULT 175
 extern int cycle_multiplier; // 100 for 1.0
 extern int cycle_multiplier_override;
 extern int cycle_multiplier_old;
 extern int cycle_multiplier; // 100 for 1.0
 extern int cycle_multiplier_override;
 extern int cycle_multiplier_old;