X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Fmain.c;h=f59eed3f21da526afcba253e8482dabde23e6de1;hb=5b5680983b7b3dde95acfe42f58e748d9f7fe1cb;hp=d846d3ce47d197dd534af14e9990fddde8371f8f;hpb=2d724e28a974472f4d24dc71f8cd489fbcd27869;p=pcsx_rearmed.git diff --git a/frontend/main.c b/frontend/main.c index d846d3ce..f59eed3f 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -29,6 +29,14 @@ #include "arm_features.h" #include "revision.h" +#if defined(__has_builtin) +#define DO_CPU_CHECKS __has_builtin(__builtin_cpu_init) +#elif defined(__x86_64__) || defined(__i386__) +#define DO_CPU_CHECKS 1 +#else +#define DO_CPU_CHECKS 0 +#endif + #ifndef NO_FRONTEND #include "libpicofe/input.h" #include "libpicofe/plat.h" @@ -121,28 +129,30 @@ static void set_default_paths(void) void emu_set_default_config(void) { // try to set sane config on which most games work - Config.Xa = Config.Cdda = Config.Sio = - Config.icache_emulation = Config.SpuIrq = Config.RCntFix = Config.VSyncWA = 0; + Config.Xa = Config.Cdda = 0; + Config.icache_emulation = 0; Config.PsxAuto = 1; - - pl_rearmed_cbs.thread_rendering = 0; + Config.cycle_multiplier = CYCLE_MULT_DEFAULT; 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_unai.ilace_force = 0; - pl_rearmed_cbs.gpu_unai.pixel_skip = 1; +#if 0 + 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; +#else pl_rearmed_cbs.gpu_unai.lighting = 1; - pl_rearmed_cbs.gpu_unai.fast_lighting = 1; pl_rearmed_cbs.gpu_unai.blending = 1; - pl_rearmed_cbs.gpu_unai.dithering = 0; - // old gpu_unai config +#endif 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.scale_hires = 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; @@ -161,7 +171,6 @@ void emu_set_default_config(void) #endif #endif new_dynarec_hacks = 0; - cycle_multiplier = 200; in_type[0] = PSE_PAD_TYPE_STANDARD; in_type[1] = PSE_PAD_TYPE_STANDARD; @@ -411,6 +420,24 @@ void emu_on_new_cd(int show_hud_msg) } } +static void log_wrong_cpu(void) +{ +#if DO_CPU_CHECKS + __builtin_cpu_init(); + #define CHECK_CPU(name) if (!__builtin_cpu_supports(name)) \ + SysPrintf("ERROR: compiled for " name ", which is unsupported by the CPU\n") +#ifdef __SSE2__ + CHECK_CPU("sse2"); +#endif +#ifdef __SSSE3__ + CHECK_CPU("ssse3"); +#endif +#ifdef __SSE4_1__ + CHECK_CPU("sse4.1"); +#endif +#endif // DO_CPU_CHECKS +} + int emu_core_preinit(void) { // what is the name of the config file? @@ -425,6 +452,8 @@ int emu_core_preinit(void) #endif emuLog = stdout; + log_wrong_cpu(); + SetIsoFile(NULL); memset(&Config, 0, sizeof(Config));