From 249281366ec1b58286252503f5c2db8c68b8ac12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 20 Mar 2025 23:10:21 +0100 Subject: [PATCH] Use the new sceAtrac implementation by default Inverts/renames the setting to allow going back to the old sceAtrac implementation, to work around any compatibility issue. Note that we can never delete the old implementation, old savestates will still use it - can't convert an existing session. --- Core/Config.cpp | 2 +- Core/Config.h | 2 +- Core/HLE/sceAtrac.cpp | 2 +- UI/EmuScreen.cpp | 4 ---- UI/GameSettingsScreen.cpp | 2 +- UI/TabbedDialogScreen.cpp | 1 + headless/Headless.cpp | 8 ++++---- test.py | 2 +- 8 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Core/Config.cpp b/Core/Config.cpp index d5d73a3b5e..71011cda2d 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -792,7 +792,7 @@ static const ConfigSetting soundSettings[] = { ConfigSetting("AutoAudioDevice", &g_Config.bAutoAudioDevice, true, CfgFlag::DEFAULT), ConfigSetting("AudioMixWithOthers", &g_Config.bAudioMixWithOthers, true, CfgFlag::DEFAULT), ConfigSetting("AudioRespectSilentMode", &g_Config.bAudioRespectSilentMode, false, CfgFlag::DEFAULT), - ConfigSetting("UseExperimentalAtrac", &g_Config.bUseExperimentalAtrac, false, CfgFlag::DEFAULT), + ConfigSetting("UseOldAtrac", &g_Config.bUseOldAtrac, false, CfgFlag::DEFAULT), }; static bool DefaultShowTouchControls() { diff --git a/Core/Config.h b/Core/Config.h index 8e26bb3fae..d765da3abc 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -298,7 +298,7 @@ public: bool bExtraAudioBuffering; // For bluetooth std::string sAudioDevice; bool bAutoAudioDevice; - bool bUseExperimentalAtrac; + bool bUseOldAtrac; // iOS only for now bool bAudioMixWithOthers; diff --git a/Core/HLE/sceAtrac.cpp b/Core/HLE/sceAtrac.cpp index 242eb8f508..de0faf4ec3 100644 --- a/Core/HLE/sceAtrac.cpp +++ b/Core/HLE/sceAtrac.cpp @@ -216,7 +216,7 @@ static AtracBase *getAtrac(int atracID) { static int AllocAndRegisterAtrac(int codecType) { for (int i = 0; i < g_atracMaxContexts; ++i) { if (atracContextTypes[i] == codecType && atracContexts[i] == 0) { - if (g_Config.bUseExperimentalAtrac && g_atracBSS != 0) { + if (!g_Config.bUseOldAtrac && g_atracBSS != 0) { atracContexts[i] = new Atrac2(GetAtracContextAddress(i), codecType); } else { atracContexts[i] = new Atrac(i, codecType); diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index fd4af66cdb..289cf5b7e6 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -416,10 +416,6 @@ void EmuScreen::bootComplete() { } #endif - if (g_Config.bUseExperimentalAtrac) { - g_OSD.Show(OSDType::MESSAGE_WARNING, dev->T("Use experimental sceAtrac")); - } - #if !PPSSPP_PLATFORM(UWP) if (GetGPUBackend() == GPUBackend::OPENGL) { const char *renderer = gl_extensions.model; diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index c2a97d526f..ce94fe7dcd 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -1902,7 +1902,7 @@ void DeveloperToolsScreen::CreateViews() { cpuTests->SetEnabled(TestsAvailable()); #endif - list->Add(new CheckBox(&g_Config.bUseExperimentalAtrac, dev->T("Use experimental sceAtrac"))); + list->Add(new CheckBox(&g_Config.bUseOldAtrac, dev->T("Use the old sceAtrac implementation"))); AddOverlayList(list, screenManager()); diff --git a/UI/TabbedDialogScreen.cpp b/UI/TabbedDialogScreen.cpp index 500af266d8..134ffb965f 100644 --- a/UI/TabbedDialogScreen.cpp +++ b/UI/TabbedDialogScreen.cpp @@ -54,6 +54,7 @@ void TabbedUIDialogScreenWithGameBackground::CreateViews() { tabHolder_->AddBack(this); root_->Add(tabHolder_); } + tabHolder_->SetTag(tag()); // take the tag from the screen. root_->SetDefaultFocusView(tabHolder_); settingTabContents_.clear(); diff --git a/headless/Headless.cpp b/headless/Headless.cpp index 863d84ffc0..4cf7235f3b 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -351,7 +351,7 @@ int main(int argc, const char* argv[]) GPUCore gpuCore = GPUCORE_SOFTWARE; CPUCore cpuCore = CPUCore::JIT; int debuggerPort = -1; - bool newAtrac = false; + bool oldAtrac = false; bool outputDebugStringLog = false; std::vector testFilenames; @@ -392,8 +392,8 @@ int main(int argc, const char* argv[]) testOptions.bench = true; else if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--verbose")) testOptions.verbose = true; - else if (!strcmp(argv[i], "--new-atrac")) - newAtrac = true; + else if (!strcmp(argv[i], "--old-atrac")) + oldAtrac = true; else if (!strncmp(argv[i], "--graphics=", strlen("--graphics=")) && strlen(argv[i]) > strlen("--graphics=")) { const char *gpuName = argv[i] + strlen("--graphics="); @@ -533,7 +533,7 @@ int main(int argc, const char* argv[]) g_Config.iGameVolume = VOLUMEHI_FULL; g_Config.iReverbVolume = VOLUMEHI_FULL; g_Config.internalDataDirectory.clear(); - g_Config.bUseExperimentalAtrac = newAtrac; + g_Config.bUseOldAtrac = oldAtrac; Path exePath = File::GetExeDirectory(); g_Config.flash0Directory = exePath / "assets/flash0"; diff --git a/test.py b/test.py index abd2a68c9f..164ad8c356 100755 --- a/test.py +++ b/test.py @@ -553,7 +553,7 @@ def run_tests(test_list, args): if len(test_filenames): # TODO: Maybe --compare should detect --graphics? - cmdline = [PPSSPP_EXE, '--root', TEST_ROOT + '../', '--compare', '--new-atrac', '--timeout=' + str(TIMEOUT), '@-'] + cmdline = [PPSSPP_EXE, '--root', TEST_ROOT + '../', '--compare', '--timeout=' + str(TIMEOUT), '@-'] cmdline.extend([i for i in args if i not in ['-g', '-m', '-b']]) c = Command(cmdline, '\n'.join(test_filenames))