From 8973dfd9cccc5256721c0c1648a84b45d578d1d9 Mon Sep 17 00:00:00 2001
From: NateXS <[EMAIL REDACTED]>
Date: Mon, 16 Feb 2026 08:34:08 -0600
Subject: [PATCH] n3ds: Don't put audio thread in system core on Old 3DS
systems
(cherry picked from commit 149abe8f85f24859b5c3542d7b59d9f53b45e147)
---
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 5b0744f21e848..a9a18ab8f70a7 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,