From 149abe8f85f24859b5c3542d7b59d9f53b45e147 Mon Sep 17 00:00:00 2001 From: NateXS Date: Mon, 16 Feb 2026 08:34:08 -0600 Subject: [PATCH] n3ds: Don't put audio thread in system core on Old 3DS systems --- src/thread/n3ds/SDL_systhread.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/thread/n3ds/SDL_systhread.c b/src/thread/n3ds/SDL_systhread.c index 5b0744f21e..a9a18ab8f7 100644 --- a/src/thread/n3ds/SDL_systhread.c +++ b/src/thread/n3ds/SDL_systhread.c @@ -42,7 +42,6 @@ static void ThreadEntry(void *arg) threadExit(0); } - bool SDL_SYS_CreateThread(SDL_Thread *thread, SDL_FunctionPointer pfnBeginThread, SDL_FunctionPointer pfnEndThread) @@ -53,9 +52,13 @@ bool SDL_SYS_CreateThread(SDL_Thread *thread, svcGetThreadPriority(&priority, CUR_THREAD_HANDLE); - // prefer putting audio thread on system core - if (thread->name && (SDL_strncmp(thread->name, "SDLAudioP", 9) == 0) && R_SUCCEEDED(APT_SetAppCpuTimeLimit(30))) { - cpu = 1; + // on New 3DS, prefer putting audio thread on system core + if (thread->name && (SDL_strncmp(thread->name, "SDLAudioP", 9) == 0)) { + bool new3ds = false; + APT_CheckNew3DS(&new3ds); + if (new3ds && R_SUCCEEDED(APT_SetAppCpuTimeLimit(30))) { + cpu = 1; + } } thread->handle = threadCreate(ThreadEntry,