SDL: n3ds: Don't put audio thread in system core on Old 3DS systems (8973d)

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,