From 740f88527792c1445e83bc2f4c788819181de11a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 3 Apr 2025 21:13:39 +0200 Subject: [PATCH] Add an escape route from DisableHLE for headless (testing). May later be turned into developer settings, too. --- Core/Config.h | 1 + Core/HLE/HLE.cpp | 2 ++ headless/Headless.cpp | 2 ++ 3 files changed, 5 insertions(+) diff --git a/Core/Config.h b/Core/Config.h index ca2d958678..4936f2cdb6 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -140,6 +140,7 @@ public: int iAskForExitConfirmationAfterSeconds; int iUIScaleFactor; // In 8ths of powers of two. int iDisableHLE; + int iForceEnableHLE; // This is the opposite of DisableHLE but can force on HLE even when we've made it permanently off. Only used in tests, not hooked up to the ini file yet. int iScreenRotation; // The rotation angle of the PPSSPP UI. Only supported on Android and possibly other mobile platforms. int iInternalScreenRotation; // The internal screen rotation angle. Useful for vertical SHMUPs and similar. diff --git a/Core/HLE/HLE.cpp b/Core/HLE/HLE.cpp index 4f6b185181..569b5585df 100644 --- a/Core/HLE/HLE.cpp +++ b/Core/HLE/HLE.cpp @@ -201,6 +201,8 @@ static DisableHLEFlags GetDisableHLEFlags() { if (PSP_CoreParameter().compat.flags().DisableHLESceFont) { flags |= DisableHLEFlags::sceFont; } + + flags &= ~(DisableHLEFlags)g_Config.iForceEnableHLE; return flags; } diff --git a/headless/Headless.cpp b/headless/Headless.cpp index 6320a057c4..40b57e9877 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -1,3 +1,4 @@ + // Headless version of PPSSPP, for testing using http://code.google.com/p/pspautotests/ . // See headless.txt. // To build on non-windows systems, just run CMake in the SDL directory, it will build both a normal ppsspp and the headless version. @@ -537,6 +538,7 @@ int main(int argc, const char* argv[]) g_Config.iReverbVolume = VOLUMEHI_FULL; g_Config.internalDataDirectory.clear(); g_Config.bUseOldAtrac = oldAtrac; + g_Config.iForceEnableHLE = 0xFFFFFFFF; // Run all modules as HLE. We don't have anything to load in this context. Path exePath = File::GetExeDirectory(); g_Config.flash0Directory = exePath / "assets/flash0";