summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/emulators.scm131
-rw-r--r--gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch358
3 files changed, 490 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 8bb56010c2..dbeec8be3c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1350,6 +1350,7 @@ dist_patch_DATA = \
%D%/packages/patches/pam-mount-luks2-support.patch \
%D%/packages/patches/pango-skip-libthai-test.patch \
%D%/packages/patches/pciutils-hurd-configure.patch \
+ %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/sdl-pango-api_additions.patch \
%D%/packages/patches/sdl-pango-blit_overflow.patch \
%D%/packages/patches/sdl-pango-fillrect_crash.patch \
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index ae8bf18255..8b39517e3f 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1839,3 +1839,134 @@ performance, features, and ease of use.")
"Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator
framework based on QEMU.")
(license license:gpl2+))))
+
+(define-public ppsspp
+ (package
+ (name "ppsspp")
+ (version "1.10")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hrydgard/ppsspp.git")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "02yx1w0ygclnmdl0imsvgj24lkzi55wvxkf47q617j0jgrqhy8yl"))
+ (file-name (git-file-name name version))
+ (patches
+ (search-patches "ppsspp-disable-upgrade-and-gold.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ ;; Unbundle sources.
+ (substitute* (list "Common/Vulkan/VulkanContext.cpp"
+ "ext/native/thin3d/vulkan_utils.cpp"
+ "GPU/Common/ShaderCommon.cpp"
+ "GPU/Common/ShaderTranslation.cpp"
+ "SDL/SDLMain.cpp")
+ (("ext/glslang/") "")
+ (("ext/SPIRV-Cross/") "spirv_cross/"))
+ ;; Patch CMakeLists.
+ (substitute* "CMakeLists.txt"
+ (("include_directories\\(ext/glslang\\)") "")
+ (("spirv-cross-glsl" all)
+ (string-append all
+ " spirv-cross-core spirv-cross-cpp"
+ " spirv-cross-reflect spirv-cross-util")))
+ (substitute* "ext/CMakeLists.txt"
+ (("add_subdirectory\\(glslang\\)") "")
+ (("add_subdirectory\\(SPIRV-Cross-build\\)") ""))
+ (delete-file-recursively "ext/cmake")
+ (substitute* "git-version.cmake"
+ (("unknown") ,version))))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python)))
+ (inputs
+ `(("ffmpeg" ,ffmpeg)
+ ("glew" ,glew)
+ ("glslang" ,glslang)
+ ("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("sdl2" ,sdl2)
+ ("snappy" ,snappy)
+ ("spirv-cross" ,spirv-cross)
+ ("zlib" ,zlib)
+ ;; TODO: unbundle builds.
+ ("armips-source" ,(package-source armips))
+ ("lang"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hrydgard/ppsspp-lang.git")
+ (commit "d184ba2b607a03435be579406b816c90add334e6")))
+ (sha256
+ (base32 "0s003x6247nx09qd6a1jz1l2hsk5d6k1zmh8mg3m6hjjhvbvd9j9"))))
+ ("tests"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hrydgard/pspautotests.git")
+ (commit "328b839c7243e7f733f9eae88d059485e3d808e7")))
+ (sha256
+ (base32 "1gj1kr5ijxrqwvz7c41phskjr70ndp8iz0gr8c3xxsd8p9z5gdvm"))))))
+ (arguments
+ `(#:out-of-source? #f
+ #:configure-flags (list "-DUSE_DISCORD=OFF"
+ "-DUSE_SYSTEM_FFMPEG=ON"
+ ;; For testing.
+ "-DUNITTEST=ON" "-DHEADLESS=ON")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'add-external-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; TODO: unbundle builds. Not only should we not copy these
+ ;; sources in, we should also remove as much from "ext/" as we
+ ;; can.
+ (copy-recursively (assoc-ref inputs "armips-source")
+ "ext/armips")
+ ;; Some tests are externalised, so we add them here.
+ (copy-recursively (assoc-ref inputs "tests")
+ "pspautotests")
+ ;; i18n is externalised, so we add it here.
+ (copy-recursively (assoc-ref inputs "lang")
+ "assets/lang")
+ #t))
+ (replace 'check
+ (lambda _
+ (for-each
+ (lambda (t) (invoke "./unitTest" t))
+ '("Arm64Emitter" "ArmEmitter" "X64Emitter" "VertexJit" "Asin"
+ "SinCos" "VFPUSinCos" "MathUtil" "Parsers" "Jit"
+ "MatrixTranspose" "ParseLBN" "QuickTexHash" "CLZ" "MemMap"))
+ (invoke "python3" "test.py" "-g")
+ #t))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin/ppsspp (string-append out "/bin/ppsspp"))
+ (share (string-append out "/share/ppsspp")))
+ (copy-recursively "icons/hicolor"
+ (string-append out "/share/icons/hicolor"))
+ (install-file "PPSSPPSDL" share)
+ (copy-recursively "assets" (string-append share "/assets"))
+
+ (make-desktop-entry-file
+ (string-append out "/share/applications/ppsspp.desktop")
+ #:name "PPSSPP"
+ #:exec (string-append share "/PPSSPPSDL")
+ #:icon "ppsspp")
+ (mkdir-p (string-append out "/bin"))
+ (with-output-to-file bin/ppsspp
+ (lambda ()
+ (format #t "#!~a~%exec ~a/PPSSPPSDL \"$@\""
+ (which "sh") share)))
+ (chmod bin/ppsspp #o755)
+ #t))))))
+ (home-page "https://www.ppsspp.org/")
+ (synopsis "PSP emulator")
+ (description
+ "PPSSPP is a ``high-level'' emulator simulating the PSP operating
+system.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch b/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch
new file mode 100644
index 0000000000..9503ab6f31
--- /dev/null
+++ b/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch
@@ -0,0 +1,358 @@
+From 951f2269f67d618d376656db831796c119f4f6b3 Mon Sep 17 00:00:00 2001
+From: Leo Prikler <leo.prikler@student.tugraz.at>
+Date: Fri, 26 Jun 2020 18:20:04 +0200
+Subject: [PATCH] ppsspp: disable upgrade and gold
+
+---
+ Core/Config.cpp | 11 -------
+ Core/Config.h | 2 --
+ Qt/QtMain.cpp | 6 ----
+ SDL/SDLMain.cpp | 6 ----
+ UI/DevScreens.cpp | 3 --
+ UI/GameSettingsScreen.cpp | 1 -
+ UI/MainScreen.cpp | 63 +------------------------------------
+ UI/MiscScreens.cpp | 31 ++----------------
+ UWP/PPSSPP_UWPMain.cpp | 6 ----
+ Windows/MainWindowMenu.cpp | 2 +-
+ Windows/main.cpp | 6 ----
+ android/jni/app-android.cpp | 6 ----
+ 12 files changed, 5 insertions(+), 138 deletions(-)
+
+diff --git a/Core/Config.cpp b/Core/Config.cpp
+index 214aeb433..04e3b151d 100644
+--- a/Core/Config.cpp
++++ b/Core/Config.cpp
+@@ -428,7 +428,6 @@ static ConfigSetting generalSettings[] = {
+ ConfigSetting("IgnoreBadMemAccess", &g_Config.bIgnoreBadMemAccess, true, true),
+ ConfigSetting("CurrentDirectory", &g_Config.currentDirectory, ""),
+ ConfigSetting("ShowDebuggerOnLoad", &g_Config.bShowDebuggerOnLoad, false),
+- ConfigSetting("CheckForNewVersion", &g_Config.bCheckForNewVersion, true),
+ ConfigSetting("Language", &g_Config.sLanguageIni, &DefaultLangRegion),
+ ConfigSetting("ForceLagSync2", &g_Config.bForceLagSync, false, true, true),
+ ConfigSetting("DiscordPresence", &g_Config.bDiscordPresence, true, true, false), // Or maybe it makes sense to have it per-game? Race conditions abound...
+@@ -1229,16 +1228,6 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
+ upgradeMessage = "";
+ }
+
+- // Check for new version on every 10 runs.
+- // Sometimes the download may not be finished when the main screen shows (if the user dismisses the
+- // splash screen quickly), but then we'll just show the notification next time instead, we store the
+- // upgrade number in the ini.
+- if (iRunCount % 10 == 0 && bCheckForNewVersion) {
+- std::shared_ptr<http::Download> dl = g_DownloadManager.StartDownloadWithCallback(
+- "http://www.ppsspp.org/version.json", "", &DownloadCompletedCallback);
+- dl->SetHidden(true);
+- }
+-
+ INFO_LOG(LOADER, "Loading controller config: %s", controllerIniFilename_.c_str());
+ bSaveSettings = true;
+
+diff --git a/Core/Config.h b/Core/Config.h
+index 084eacc94..e7134cab5 100644
+--- a/Core/Config.h
++++ b/Core/Config.h
+@@ -99,7 +99,6 @@ struct Config {
+ bool bIgnoreBadMemAccess;
+ bool bFastMemory;
+ int iCpuCore;
+- bool bCheckForNewVersion;
+ bool bForceLagSync;
+ bool bFuncReplacements;
+ bool bHideSlowWarnings;
+@@ -521,4 +520,3 @@ std::string CreateRandMAC();
+ // TODO: Find a better place for this.
+ extern http::Downloader g_DownloadManager;
+ extern Config g_Config;
+-
+diff --git a/Qt/QtMain.cpp b/Qt/QtMain.cpp
+index 7713b6587..1d92d1175 100644
+--- a/Qt/QtMain.cpp
++++ b/Qt/QtMain.cpp
+@@ -194,12 +194,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+ return true;
+ case SYSPROP_HAS_FILE_BROWSER:
+ return true;
+- case SYSPROP_APP_GOLD:
+-#ifdef GOLD
+- return true;
+-#else
+- return false;
+-#endif
+ default:
+ return false;
+ }
+diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
+index 52028d087..d8697d210 100644
+--- a/SDL/SDLMain.cpp
++++ b/SDL/SDLMain.cpp
+@@ -356,12 +356,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+ switch (prop) {
+ case SYSPROP_HAS_BACK_BUTTON:
+ return true;
+- case SYSPROP_APP_GOLD:
+-#ifdef GOLD
+- return true;
+-#else
+- return false;
+-#endif
+ default:
+ return false;
+ }
+diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp
+index f146d099e..625ee124c 100644
+--- a/UI/DevScreens.cpp
++++ b/UI/DevScreens.cpp
+@@ -603,9 +603,6 @@ void SystemInfoScreen::CreateViews() {
+ #ifdef _M_SSE
+ buildConfig->Add(new InfoItem("_M_SSE", StringFromFormat("0x%x", _M_SSE)));
+ #endif
+- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
+- buildConfig->Add(new InfoItem("GOLD", ""));
+- }
+
+ ViewGroup *cpuExtensionsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT));
+ cpuExtensionsScroll->SetTag("DevSystemInfoCPUExt");
+diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp
+index 8202870c7..81112f822 100644
+--- a/UI/GameSettingsScreen.cpp
++++ b/UI/GameSettingsScreen.cpp
+@@ -796,7 +796,6 @@ void GameSettingsScreen::CreateViews() {
+ }
+ #endif
+
+- systemSettings->Add(new CheckBox(&g_Config.bCheckForNewVersion, sy->T("VersionCheck", "Check for new versions of PPSSPP")));
+ const std::string bgPng = GetSysDirectory(DIRECTORY_SYSTEM) + "background.png";
+ const std::string bgJpg = GetSysDirectory(DIRECTORY_SYSTEM) + "background.jpg";
+ if (File::Exists(bgPng) || File::Exists(bgJpg)) {
+diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp
+index 43535913d..36834020d 100644
+--- a/UI/MainScreen.cpp
++++ b/UI/MainScreen.cpp
+@@ -1054,11 +1054,7 @@ void MainScreen::CreateViews() {
+ sprintf(versionString, "%s", PPSSPP_GIT_VERSION);
+ rightColumnItems->SetSpacing(0.0f);
+ LinearLayout *logos = new LinearLayout(ORIENT_HORIZONTAL);
+- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
+- logos->Add(new ImageView(ImageID("I_ICONGOLD"), IS_DEFAULT, new AnchorLayoutParams(64, 64, 10, 10, NONE, NONE, false)));
+- } else {
+- logos->Add(new ImageView(ImageID("I_ICON"), IS_DEFAULT, new AnchorLayoutParams(64, 64, 10, 10, NONE, NONE, false)));
+- }
++ logos->Add(new ImageView(ImageID("I_ICON"), IS_DEFAULT, new AnchorLayoutParams(64, 64, 10, 10, NONE, NONE, false)));
+ logos->Add(new ImageView(ImageID("I_LOGO"), IS_DEFAULT, new LinearLayoutParams(Margins(-12, 0, 0, 0))));
+ rightColumnItems->Add(logos);
+ TextView *ver = rightColumnItems->Add(new TextView(versionString, new LinearLayoutParams(Margins(70, -6, 0, 0))));
+@@ -1070,11 +1066,6 @@ void MainScreen::CreateViews() {
+ rightColumnItems->Add(new Choice(mm->T("Game Settings", "Settings")))->OnClick.Handle(this, &MainScreen::OnGameSettings);
+ rightColumnItems->Add(new Choice(mm->T("Credits")))->OnClick.Handle(this, &MainScreen::OnCredits);
+ rightColumnItems->Add(new Choice(mm->T("www.ppsspp.org")))->OnClick.Handle(this, &MainScreen::OnPPSSPPOrg);
+- if (!System_GetPropertyBool(SYSPROP_APP_GOLD)) {
+- Choice *gold = rightColumnItems->Add(new Choice(mm->T("Buy PPSSPP Gold")));
+- gold->OnClick.Handle(this, &MainScreen::OnSupport);
+- gold->SetIcon(ImageID("I_ICONGOLD"));
+- }
+
+ #if !PPSSPP_PLATFORM(UWP)
+ // Having an exit button is against UWP guidelines.
+@@ -1099,28 +1090,6 @@ void MainScreen::CreateViews() {
+ } else if (tabHolder_->GetVisibility() != V_GONE) {
+ root_->SetDefaultFocusView(tabHolder_);
+ }
+-
+- auto u = GetI18NCategory("Upgrade");
+-
+- upgradeBar_ = 0;
+- if (!g_Config.upgradeMessage.empty()) {
+- upgradeBar_ = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT));
+-
+- UI::Margins textMargins(10, 5);
+- UI::Margins buttonMargins(0, 0);
+- UI::Drawable solid(0xFFbd9939);
+- upgradeBar_->SetBG(solid);
+- upgradeBar_->Add(new TextView(u->T("New version of PPSSPP available") + std::string(": ") + g_Config.upgradeVersion, new LinearLayoutParams(1.0f, textMargins)));
+- upgradeBar_->Add(new Button(u->T("Download"), new LinearLayoutParams(buttonMargins)))->OnClick.Handle(this, &MainScreen::OnDownloadUpgrade);
+- upgradeBar_->Add(new Button(u->T("Dismiss"), new LinearLayoutParams(buttonMargins)))->OnClick.Handle(this, &MainScreen::OnDismissUpgrade);
+-
+- // Slip in under root_
+- LinearLayout *newRoot = new LinearLayout(ORIENT_VERTICAL);
+- newRoot->Add(root_);
+- newRoot->Add(upgradeBar_);
+- root_->ReplaceLayoutParams(new LinearLayoutParams(1.0));
+- root_ = newRoot;
+- }
+ }
+
+ UI::EventReturn MainScreen::OnAllowStorage(UI::EventParams &e) {
+@@ -1128,27 +1097,6 @@ UI::EventReturn MainScreen::OnAllowStorage(UI::EventParams &e) {
+ return UI::EVENT_DONE;
+ }
+
+-UI::EventReturn MainScreen::OnDownloadUpgrade(UI::EventParams &e) {
+-#if PPSSPP_PLATFORM(ANDROID)
+- // Go to app store
+- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
+- LaunchBrowser("market://details?id=org.ppsspp.ppssppgold");
+- } else {
+- LaunchBrowser("market://details?id=org.ppsspp.ppsspp");
+- }
+-#else
+- // Go directly to ppsspp.org and let the user sort it out
+- LaunchBrowser("https://www.ppsspp.org/downloads.html");
+-#endif
+- return UI::EVENT_DONE;
+-}
+-
+-UI::EventReturn MainScreen::OnDismissUpgrade(UI::EventParams &e) {
+- g_Config.DismissUpgrade();
+- upgradeBar_->SetVisibility(UI::V_GONE);
+- return UI::EVENT_DONE;
+-}
+-
+ void MainScreen::sendMessage(const char *message, const char *value) {
+ // Always call the base class method first to handle the most common messages.
+ UIScreenWithBackground::sendMessage(message, value);
+@@ -1319,15 +1267,6 @@ UI::EventReturn MainScreen::OnCredits(UI::EventParams &e) {
+ return UI::EVENT_DONE;
+ }
+
+-UI::EventReturn MainScreen::OnSupport(UI::EventParams &e) {
+-#ifdef __ANDROID__
+- LaunchBrowser("market://details?id=org.ppsspp.ppssppgold");
+-#else
+- LaunchBrowser("https://central.ppsspp.org/buygold");
+-#endif
+- return UI::EVENT_DONE;
+-}
+-
+ UI::EventReturn MainScreen::OnPPSSPPOrg(UI::EventParams &e) {
+ LaunchBrowser("https://www.ppsspp.org");
+ return UI::EVENT_DONE;
+diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp
+index a6542c65d..f5f101594 100644
+--- a/UI/MiscScreens.cpp
++++ b/UI/MiscScreens.cpp
+@@ -498,11 +498,7 @@ void LogoScreen::render() {
+ char temp[256];
+ // Manually formatting UTF-8 is fun. \xXX doesn't work everywhere.
+ snprintf(temp, sizeof(temp), "%s Henrik Rydg%c%crd", cr->T("created", "Created by"), 0xC3, 0xA5);
+- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
+- dc.Draw()->DrawImage(ImageID("I_ICONGOLD"), bounds.centerX() - 120, bounds.centerY() - 30, 1.2f, textColor, ALIGN_CENTER);
+- } else {
+- dc.Draw()->DrawImage(ImageID("I_ICON"), bounds.centerX() - 120, bounds.centerY() - 30, 1.2f, textColor, ALIGN_CENTER);
+- }
++ dc.Draw()->DrawImage(ImageID("I_ICON"), bounds.centerX() - 120, bounds.centerY() - 30, 1.2f, textColor, ALIGN_CENTER);
+ dc.Draw()->DrawImage(ImageID("I_LOGO"), bounds.centerX() + 40, bounds.centerY() - 30, 1.5f, textColor, ALIGN_CENTER);
+ //dc.Draw()->DrawTextShadow(UBUNTU48, "PPSSPP", xres / 2, yres / 2 - 30, textColor, ALIGN_CENTER);
+ dc.SetFontScale(1.0f, 1.0f);
+@@ -538,10 +534,6 @@ void CreditsScreen::CreateViews() {
+ // Really need to redo this whole layout with some linear layouts...
+
+ int rightYOffset = 0;
+- if (!System_GetPropertyBool(SYSPROP_APP_GOLD)) {
+- root_->Add(new Button(cr->T("Buy Gold"), new AnchorLayoutParams(260, 64, NONE, NONE, 10, 84, false)))->OnClick.Handle(this, &CreditsScreen::OnSupport);
+- rightYOffset = 74;
+- }
+ root_->Add(new Button(cr->T("PPSSPP Forums"), new AnchorLayoutParams(260, 64, 10, NONE, NONE, 158, false)))->OnClick.Handle(this, &CreditsScreen::OnForums);
+ root_->Add(new Button(cr->T("Discord"), new AnchorLayoutParams(260, 64, 10, NONE, NONE, 232, false)))->OnClick.Handle(this, &CreditsScreen::OnDiscord);
+ root_->Add(new Button("www.ppsspp.org", new AnchorLayoutParams(260, 64, 10, NONE, NONE, 10, false)))->OnClick.Handle(this, &CreditsScreen::OnPPSSPPOrg);
+@@ -550,20 +542,7 @@ void CreditsScreen::CreateViews() {
+ #if PPSSPP_PLATFORM(ANDROID) || PPSSPP_PLATFORM(IOS)
+ root_->Add(new Button(cr->T("Share PPSSPP"), new AnchorLayoutParams(260, 64, NONE, NONE, 10, rightYOffset + 158, false)))->OnClick.Handle(this, &CreditsScreen::OnShare);
+ #endif
+- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
+- root_->Add(new ImageView(ImageID("I_ICONGOLD"), IS_DEFAULT, new AnchorLayoutParams(100, 64, 10, 10, NONE, NONE, false)));
+- } else {
+- root_->Add(new ImageView(ImageID("I_ICON"), IS_DEFAULT, new AnchorLayoutParams(100, 64, 10, 10, NONE, NONE, false)));
+- }
+-}
+-
+-UI::EventReturn CreditsScreen::OnSupport(UI::EventParams &e) {
+-#ifdef __ANDROID__
+- LaunchBrowser("market://details?id=org.ppsspp.ppssppgold");
+-#else
+- LaunchBrowser("https://central.ppsspp.org/buygold");
+-#endif
+- return UI::EVENT_DONE;
++ root_->Add(new ImageView(ImageID("I_ICON"), IS_DEFAULT, new AnchorLayoutParams(100, 64, 10, 10, NONE, NONE, false)));
+ }
+
+ UI::EventReturn CreditsScreen::OnTwitter(UI::EventParams &e) {
+@@ -747,11 +726,7 @@ void CreditsScreen::render() {
+
+ // TODO: This is kinda ugly, done on every frame...
+ char temp[256];
+- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
+- snprintf(temp, sizeof(temp), "PPSSPP Gold %s", PPSSPP_GIT_VERSION);
+- } else {
+- snprintf(temp, sizeof(temp), "PPSSPP %s", PPSSPP_GIT_VERSION);
+- }
++ snprintf(temp, sizeof(temp), "PPSSPP %s", PPSSPP_GIT_VERSION);
+ credits[0] = (const char *)temp;
+
+ UIContext &dc = *screenManager()->getUIContext();
+diff --git a/UWP/PPSSPP_UWPMain.cpp b/UWP/PPSSPP_UWPMain.cpp
+index 24f3b964d..1d66ba7ee 100644
+--- a/UWP/PPSSPP_UWPMain.cpp
++++ b/UWP/PPSSPP_UWPMain.cpp
+@@ -399,12 +399,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+ return false;
+ case SYSPROP_HAS_BACK_BUTTON:
+ return true;
+- case SYSPROP_APP_GOLD:
+-#ifdef GOLD
+- return true;
+-#else
+- return false;
+-#endif
+ default:
+ return false;
+ }
+diff --git a/Windows/MainWindowMenu.cpp b/Windows/MainWindowMenu.cpp
+index b5e1bb0eb..71b29b48a 100644
+--- a/Windows/MainWindowMenu.cpp
++++ b/Windows/MainWindowMenu.cpp
+@@ -1377,7 +1377,7 @@ namespace MainWindow {
+ {
+ W32Util::CenterWindow(hDlg);
+ HWND versionBox = GetDlgItem(hDlg, IDC_VERSION);
+- std::string windowText = System_GetPropertyBool(SYSPROP_APP_GOLD) ? "PPSSPP Gold " : "PPSSPP ";
++ std::string windowText = "PPSSPP ";
+ windowText.append(PPSSPP_GIT_VERSION);
+ SetWindowText(versionBox, ConvertUTF8ToWString(windowText).c_str());
+ }
+diff --git a/Windows/main.cpp b/Windows/main.cpp
+index 3795597e2..fd98d0453 100644
+--- a/Windows/main.cpp
++++ b/Windows/main.cpp
+@@ -268,12 +268,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+ return true;
+ case SYSPROP_HAS_BACK_BUTTON:
+ return true;
+- case SYSPROP_APP_GOLD:
+-#ifdef GOLD
+- return true;
+-#else
+- return false;
+-#endif
+ default:
+ return false;
+ }
+diff --git a/android/jni/app-android.cpp b/android/jni/app-android.cpp
+index 086371085..0a340c0ae 100644
+--- a/android/jni/app-android.cpp
++++ b/android/jni/app-android.cpp
+@@ -372,12 +372,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+ return true;
+ case SYSPROP_HAS_IMAGE_BROWSER:
+ return true;
+- case SYSPROP_APP_GOLD:
+-#ifdef GOLD
+- return true;
+-#else
+- return false;
+-#endif
+ default:
+ return false;
+ }
+--
+2.26.2
+