vita: disable drc thread
authornotaz <notasas@gmail.com>
Wed, 18 Dec 2024 23:18:26 +0000 (01:18 +0200)
committernotaz <notasas@gmail.com>
Wed, 18 Dec 2024 23:18:26 +0000 (01:18 +0200)
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
libpcsxcore/new_dynarec/emu_if.c

index 7ef285d..18b4dee 100644 (file)
@@ -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
 
index 5042bf5..a9122c8 100644 (file)
@@ -24,9 +24,6 @@
 #include "../../frontend/libretro-rthreads.h"
 #include "features/features_cpu.h"
 #include "retro_timers.h"
-#ifdef VITA
-#include <psp2/kernel/sysmem.h>
-#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)
        {