#include "config.h"
+// XXX: don't care but maybe fix it someday
+#if defined(__GNUC__) && __GNUC__ >= 8
+#pragma GCC diagnostic ignored "-Wformat-truncation"
+#pragma GCC diagnostic ignored "-Wformat-overflow"
+#pragma GCC diagnostic ignored "-Wstringop-truncation"
+#endif
+// devkitpro has uint32_t as long, unfortunately
+#ifdef _3DS
+#pragma GCC diagnostic ignored "-Wformat"
+#endif
+
// System includes
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <ctype.h>
+#ifndef __SWITCH__
#include <sys/types.h>
+#endif
#include <assert.h>
// Define types
void __Log(char *fmt, ...);
+#define CYCLE_MULT_DEFAULT 175
+
typedef struct {
char Gpu[MAXPATHLEN];
char Spu[MAXPATHLEN];
char Pad1[MAXPATHLEN];
char Pad2[MAXPATHLEN];
char Net[MAXPATHLEN];
- char Sio1[MAXPATHLEN];
+ char Sio1[MAXPATHLEN];
char Mcd1[MAXPATHLEN];
char Mcd2[MAXPATHLEN];
char Bios[MAXPATHLEN];
char PluginsDir[MAXPATHLEN];
char PatchesDir[MAXPATHLEN];
boolean Xa;
- boolean Sio;
boolean Mdec;
boolean PsxAuto;
boolean Cdda;
+ boolean AsyncCD;
+ boolean CHD_Precache; /* loads disk image into memory, works with CHD only. */
boolean HLE;
+ boolean SlowBoot;
boolean Debug;
boolean PsxOut;
- boolean SpuIrq;
- boolean RCntFix;
boolean UseNet;
- boolean VSyncWA;
- boolean CdrReschedule;
+ boolean icache_emulation;
+ boolean DisableStalls;
+ boolean PreciseExceptions;
+ int GpuListWalking;
+ int cycle_multiplier; // 100 for 1.0
+ int cycle_multiplier_override;
u8 Cpu; // CPU_DYNAREC or CPU_INTERPRETER
u8 PsxType; // PSX_TYPE_NTSC or PSX_TYPE_PAL
-#ifdef _WIN32
- char Lang[256];
-#endif
+ struct {
+ boolean cdr_read_timing;
+ boolean gpu_slow_list_walking;
+ boolean gpu_busy;
+ boolean gpu_centering;
+ boolean dualshock_init_analog;
+ boolean gpu_timing1024;
+ } hacks;
} PcsxConfig;
extern PcsxConfig Config;
if (Mode == 0) SaveFuncs.read(f, ptr, size); \
}
-// Make the timing events trigger faster as we are currently assuming everything
-// takes one cycle, which is not the case on real hardware.
-// FIXME: Count the proper cycle and get rid of this
-#define BIAS 2
#define PSXCLK 33868800 /* 33.8688 MHz */
enum {