X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Fmain.c;h=11bc4ed472e911a614ac1f4e3cd344f42f111720;hb=da65071fd7ceac663bb951b13da2563d7b16431d;hp=3440e3886cf64ec312e5951e771d0a942c8e194f;hpb=d5aeda23720ba9374312f8d387f299024fedb7e6;p=pcsx_rearmed.git diff --git a/frontend/main.c b/frontend/main.c index 3440e388..11bc4ed4 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -11,7 +11,7 @@ #include #include #include -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(NO_DYLIB) #include #endif @@ -133,6 +133,7 @@ void emu_set_default_config(void) Config.icache_emulation = 0; Config.PsxAuto = 1; Config.cycle_multiplier = CYCLE_MULT_DEFAULT; + Config.GpuListWalking = -1; pl_rearmed_cbs.gpu_neon.allow_interlace = 2; // auto pl_rearmed_cbs.gpu_neon.enhancement_enable = @@ -157,16 +158,19 @@ void emu_set_default_config(void) spu_config.iXAPitch = 0; spu_config.iVolume = 768; spu_config.iTempo = 0; - spu_config.iUseThread = 1; // no effect if only 1 core is detected -#ifdef HAVE_PRE_ARMV7 /* XXX GPH hack */ + // may cause issues, no effect if only 1 core is detected + spu_config.iUseThread = 0; +#if defined(HAVE_PRE_ARMV7) && !defined(_3DS) /* XXX GPH hack */ spu_config.iUseReverb = 0; spu_config.iUseInterpolation = 0; +#ifndef HAVE_LIBRETRO spu_config.iTempo = 1; +#endif #endif new_dynarec_hacks = 0; - in_type1 = PSE_PAD_TYPE_STANDARD; - in_type2 = PSE_PAD_TYPE_STANDARD; + in_type[0] = PSE_PAD_TYPE_STANDARD; + in_type[1] = PSE_PAD_TYPE_STANDARD; } void do_emu_action(void) @@ -313,7 +317,7 @@ static int cdidcmp(const char *id1, const char *id2) static void parse_cwcheat(void) { - char line[256], buf[64], name[64], *p; + char line[256], buf[256], name[256], *p; int newcheat = 1; u32 a, v; FILE *f; @@ -483,7 +487,7 @@ int emu_core_init(void) void emu_core_ask_exit(void) { - stop = 1; + stop++; g_emu_want_quit = 1; } @@ -755,10 +759,10 @@ void SysReset() { // reset can run code, timing must be set pl_timing_prepare(Config.PsxType); - EmuReset(); - // hmh core forgets this CDR_stop(); + + EmuReset(); GPU_updateLace = real_lace; g_emu_resetting = 0; @@ -806,7 +810,7 @@ int emu_save_state(int slot) return ret; ret = SaveState(fname); -#ifdef HAVE_PRE_ARMV7 /* XXX GPH hack */ +#if defined(HAVE_PRE_ARMV7) && !defined(_3DS) && !defined(__SWITCH__) /* XXX GPH hack */ sync(); #endif SysPrintf("* %s \"%s\" [%d]\n", @@ -828,6 +832,7 @@ int emu_load_state(int slot) return LoadState(fname); } +#ifndef HAVE_LIBRETRO #ifndef ANDROID void SysPrintf(const char *fmt, ...) { @@ -852,6 +857,7 @@ void SysPrintf(const char *fmt, ...) { } #endif +#endif /* HAVE_LIBRETRO */ void SysMessage(const char *fmt, ...) { va_list list; @@ -883,8 +889,6 @@ static int _OpenPlugins(void) { signal(SIGPIPE, SignalExit); #endif - GPU_clearDynarec(clearDynarec); - ret = CDR_open(); if (ret < 0) { SysMessage(_("Error opening CD-ROM plugin!")); return -1; } ret = SPU_open(); @@ -901,14 +905,15 @@ static int _OpenPlugins(void) { if (Config.UseNet && !NetOpened) { netInfo info; - char path[MAXPATHLEN]; + char path[MAXPATHLEN * 2]; char dotdir[MAXPATHLEN]; MAKE_PATH(dotdir, "/.pcsx/plugins/", NULL); strcpy(info.EmuName, "PCSX"); - strncpy(info.CdromID, CdromId, 9); - strncpy(info.CdromLabel, CdromLabel, 9); + memcpy(info.CdromID, CdromId, 9); /* no \0 trailing character? */ + memcpy(info.CdromLabel, CdromLabel, 9); + info.CdromLabel[9] = '\0'; info.psxMem = psxM; info.GPU_showScreenPic = GPU_showScreenPic; info.GPU_displayText = GPU_displayText; @@ -1020,7 +1025,7 @@ void *SysLoadLibrary(const char *lib) { return (void *)(uintptr_t)(PLUGIN_DL_BASE + builtin_plugin_ids[i]); } -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(NO_DYLIB) ret = dlopen(lib, RTLD_NOW); if (ret == NULL) SysMessage("dlopen: %s", dlerror()); @@ -1037,7 +1042,7 @@ void *SysLoadSym(void *lib, const char *sym) { if (PLUGIN_DL_BASE <= plugid && plugid < PLUGIN_DL_BASE + ARRAY_SIZE(builtin_plugins)) return plugin_link(plugid - PLUGIN_DL_BASE, sym); -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(NO_DYLIB) return dlsym(lib, sym); #else return NULL; @@ -1045,7 +1050,9 @@ void *SysLoadSym(void *lib, const char *sym) { } const char *SysLibError() { -#ifndef _WIN32 +#if defined(NO_DYLIB) + return NULL; +#elif !defined(_WIN32) return dlerror(); #else return "not supported"; @@ -1058,8 +1065,7 @@ void SysCloseLibrary(void *lib) { if (PLUGIN_DL_BASE <= plugid && plugid < PLUGIN_DL_BASE + ARRAY_SIZE(builtin_plugins)) return; -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(NO_DYLIB) dlclose(lib); #endif } -