From: Justin Weiss Date: Thu, 3 Oct 2019 00:49:12 +0000 (-0700) Subject: 3DS: Schedule threads on the default core X-Git-Tag: r24l~694^2 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e237fbf62ef226bd5c5be317c6b837cb7515a150;hp=e989dfc6d5e44b0c61c481399e40833ffce6942a;p=pcsx_rearmed.git 3DS: Schedule threads on the default core When creating a thread, pcsx was scheduling threads on core 1, which is the system core. This is usually prevented by the system. Instead, it should schedule threads on the default core, as suggested by 3dbrew: https://www.3dbrew.org/wiki/Multi-threading > Games usually create threads using -2. In the future, we may be able to schedule threads on core 2 on New 3DS only, if we find it gives better performance. This was preventing the CDDA thread from starting, which was preventing CD Audio from playing. --- diff --git a/frontend/3ds/pthread.h b/frontend/3ds/pthread.h index 2c2bf6b1..42de161f 100644 --- a/frontend/3ds/pthread.h +++ b/frontend/3ds/pthread.h @@ -25,7 +25,7 @@ static inline int pthread_create(pthread_t *thread, svcCreateThread(&thread->handle, start_routine, arg, (uint32_t*)((uint32_t)thread->stack + CTR_PTHREAD_STACK_SIZE), - 0x25, 1); + 0x25, -2); return 1; }