From 076df971efc5672c6d3b73597ac2c02dbd2e07da Mon Sep 17 00:00:00 2001 From: notaz Date: Thu, 19 Dec 2024 01:18:26 +0200 Subject: [PATCH] vita: disable drc thread tc writes from a thread cause data abort, and sceKernelOpenVMDomain() returns 80010058 which https://wiki.henkaku.xyz/vita/SceSblSsMgr mentions as SCE_ERROR_ERRNO_ENOSYS, aka "Invalid system call number"? --- Makefile.libretro | 1 + libpcsxcore/new_dynarec/emu_if.c | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Makefile.libretro b/Makefile.libretro index 7ef285d5..18b4deeb 100644 --- a/Makefile.libretro +++ b/Makefile.libretro @@ -347,6 +347,7 @@ else ifeq ($(platform), vita) PARTIAL_LINKING = 1 NO_MMAP := 1 NO_POSIX_MEMALIGN := 1 + NDRC_THREAD := 0 # can't write to tc from thread HAVE_PHYSICAL_CDROM = 0 EXTRA_EXTERN_SYMS += _newlib_vm_size_user diff --git a/libpcsxcore/new_dynarec/emu_if.c b/libpcsxcore/new_dynarec/emu_if.c index 5042bf58..a9122c81 100644 --- a/libpcsxcore/new_dynarec/emu_if.c +++ b/libpcsxcore/new_dynarec/emu_if.c @@ -24,9 +24,6 @@ #include "../../frontend/libretro-rthreads.h" #include "features/features_cpu.h" #include "retro_timers.h" -#ifdef VITA -#include -#endif #endif #ifdef _3DS #include <3ds_utils.h> @@ -449,10 +446,6 @@ static void ari64_compile_thread(void *unused) void *target; u32 addr; -#ifdef VITA - int ret = sceKernelOpenVMDomain(); - if (ret) SysPrintf("thread: sceKernelOpenVMDomain: %x\n", ret); -#endif slock_lock(ndrc_g.thread.lock); while (!ndrc_g.thread.exit) { -- 2.39.5