summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-06-05 23:16:07 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-06-06 02:38:29 -0400
commita18079288f8b26b32e1388350f5d55240b1a6381 (patch)
treeb5d9b1c3b922b2c4fab9aae524d211b4b24bedcc /gnu/packages
parent6a0d0c3c473d51d113d0c4efd7ed85d542f45c09 (diff)
downloadguix-patches-a18079288f8b26b32e1388350f5d55240b1a6381.tar
guix-patches-a18079288f8b26b32e1388350f5d55240b1a6381.tar.gz
gnu: ppsspp: Update to 1.11.3-1.69fa207.
This fixes the build with ffmpeg 4.4. * gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch: Rebase patch. * gnu/packages/emulators.scm (ppsspp): Update to 1.11.3-1.69fa207. [source]: Adjust origin snippet to unbundle the newly added zstd library.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/emulators.scm396
-rw-r--r--gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch148
2 files changed, 289 insertions, 255 deletions
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 716d1174ad..c25a45b785 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -15,6 +15,7 @@
;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com>
;;; Copyright © 2021 Felipe Balbi <balbi@kernel.org>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2134,200 +2135,211 @@ framework based on QEMU.")
(license license:gpl2+))))
(define-public ppsspp
- (package
- (name "ppsspp")
- (version "1.11.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/hrydgard/ppsspp")
- (commit (string-append "v" version))))
- (sha256
- (base32 "1dpxnwvl6jq7z67lbjws4lqc1bxc31xi6ddlmg5n3aig008yi2fp"))
- (file-name (git-file-name name version))
- (patches
- (search-patches "ppsspp-disable-upgrade-and-gold.patch"))
- (modules '((guix build utils)))
- (snippet
- `(begin
- ;; The following is quite a heavy-handed way of unbundling PPSSPP.
- ;; There are still a number of external sources, that we don't
- ;; remove here. Some may be packaged, others are not.
- ;; First, we patch existing sources to include the right headers.
- (substitute* (append (find-files "Common" ".*\\.(h|cpp)")
- (find-files "Core" ".*\\.(h|cpp)")
- (find-files "GPU" ".*\\.(h|cpp)")
- (find-files "SDL" ".*\\.(h|cpp)")
- (find-files "UI" ".*\\.(h|cpp)"))
- ;; These headers are all hard-coded in the original source.
- (("ext/cityhash/") "")
- (("ext/glslang/glslang/") "glslang/")
- (("ext/glslang/") "glslang/")
- (("ext/miniupnp/") "")
- (("ext/SPIRV-Cross/") "spirv_cross/")
- (("ext/vulkan/") "vulkan/")
- (("ext/xxhash.h") "xxhash.h")
- ;; These definitions do not actually exist in the Vulkan headers,
- ;; but PPSSPP defines them in ext/vulkan.
- (("VK_FORMAT_BEGIN_RANGE") "VK_FORMAT_UNDEFINED")
- (("VK_FORMAT_END_RANGE") "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"))
- ;; Next, we patch CMakeLists.
- (substitute* "CMakeLists.txt"
- ;; Drop unnecessary includes and targets.
- (("include_directories\\(ext/glslang\\)") "")
- (("include_directories\\(ext/xxhash\\)") "")
- (("include_directories\\(ext/cityhash\\)") "")
- (("set_target_properties\\(cityhash .*\\)") "")
- ;; Fix linking to GLEW.
- (("TARGET Ext::GLEW") "true")
- (("target_link_libraries\\(native Ext::GLEW\\)")
- "find_package(GLEW)\ntarget_link_libraries(native GLEW::GLEW)")
- (("Ext::Snappy") "snappy")
- ;; Don't search for cityhash/xxhash, we already have them.
- (("add_library\\((city|xx)hash STATIC") "if()\nendif(")
- (("ext/xxhash\\.[ch]") "")
- (("ext/cityhash/.*\\.(cpp|h)") "")
- (("if\\(USE_MINIUPNPC\\)" all)
- (string-append all "
+ ;; Use a recent commit as fixes for ffmpeg 4.4 haven't been released as of
+ ;; 1.11.3.
+ (let ((commit "69fa20744958aef8da9ca052ba7675fdc1636e46")
+ (revision "1"))
+ (package
+ (name "ppsspp")
+ (version (git-version "1.11.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hrydgard/ppsspp")
+ (commit commit)))
+ (sha256
+ (base32 "0r8w4hllhn6zsfxlajxw3sn3f8vsri45srr4mdwsffzcb4hvl0cr"))
+ (file-name (git-file-name name version))
+ (patches
+ (search-patches "ppsspp-disable-upgrade-and-gold.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ ;; The following is quite a heavy-handed way of unbundling PPSSPP.
+ ;; There are still a number of external sources, that we don't
+ ;; remove here. Some may be packaged, others are not.
+ ;; First, we patch existing sources to include the right headers.
+ (substitute* (append (find-files "Common" ".*\\.(h|cpp)")
+ (find-files "Core" ".*\\.(h|cpp)")
+ (find-files "GPU" ".*\\.(h|cpp)")
+ (find-files "SDL" ".*\\.(h|cpp)")
+ (find-files "UI" ".*\\.(h|cpp)"))
+ ;; These headers are all hard-coded in the original source.
+ (("ext/cityhash/") "")
+ (("ext/glslang/glslang/") "glslang/")
+ (("ext/glslang/") "glslang/")
+ (("ext/miniupnp/") "")
+ (("ext/SPIRV-Cross/") "spirv_cross/")
+ (("ext/vulkan/") "vulkan/")
+ (("ext/xxhash.h") "xxhash.h")
+ ;; These definitions do not actually exist in the Vulkan headers,
+ ;; but PPSSPP defines them in ext/vulkan.
+ (("VK_FORMAT_BEGIN_RANGE") "VK_FORMAT_UNDEFINED")
+ (("VK_FORMAT_END_RANGE") "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"))
+ ;; Next, we patch CMakeLists.
+ (substitute* "CMakeLists.txt"
+ ;; Drop unnecessary includes and targets.
+ (("include_directories\\(ext/glslang\\)") "")
+ (("include_directories\\(ext/xxhash\\)") "")
+ (("include_directories\\(ext/cityhash\\)") "")
+ (("include_directories\\(ext/zstd.*") "")
+ (("libzstd_static") "zstd")
+ (("set_target_properties\\(cityhash .*\\)") "")
+ ;; Fix linking to GLEW.
+ (("TARGET Ext::GLEW") "true")
+ (("target_link_libraries\\(native Ext::GLEW\\)")
+ "find_package(GLEW)\ntarget_link_libraries(native GLEW::GLEW)")
+ (("Ext::Snappy") "snappy")
+ ;; Don't search for cityhash/xxhash, we already have them.
+ (("add_library\\((city|xx)hash STATIC") "if()\nendif(")
+ (("ext/xxhash\\.[ch]") "")
+ (("ext/cityhash/.*\\.(cpp|h)") "")
+ (("if\\(USE_MINIUPNPC\\)" all)
+ (string-append all "
find_package(miniupnpc)
target_link_libraries(${CoreLibName} miniupnpc ${LDLIBS})
elseif(FALSE)"))
- ;; Link all of spirv-cross.
- (("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\\(glew\\)") "")
- (("add_subdirectory\\(glslang( [A-Z_]*)*\\)") "")
- (("add_subdirectory\\(snappy\\)") "")
- (("add_subdirectory\\(SPIRV-Cross-build\\)") ""))
- ;; Finally, we can delete the bundled sources.
- (for-each delete-file-recursively
- '("MoltenVK"
- "ext/cmake"
- "ext/glew"
- "ext/glslang" "ext/glslang-build"
- "ext/miniupnp" "ext/miniupnp-build"
- "ext/native"
- "ext/snappy"
- "ext/SPIRV-Cross" "ext/SPIRV-Cross-build"
- "ext/vulkan"
- "ext/xxhash.c"
- "ext/xxhash.h"
- "ext/zlib"))
- ;; Since we are not including git as an input, PPSSPP is confused
- ;; about its version. Let's fix that here.
- (substitute* "git-version.cmake"
- (("unknown") ,version))))))
- (build-system cmake-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("python" ,python)))
- (inputs
- `(("cityhash" ,cityhash)
- ("ffmpeg" ,ffmpeg)
- ("glew" ,glew)
- ("glslang" ,glslang)
- ("libpng" ,libpng)
- ("libzip" ,libzip)
- ("mesa" ,mesa)
- ("miniupnpc" ,miniupnpc)
- ("sdl2" ,sdl2)
- ("snappy" ,snappy)
- ("spirv-cross" ,spirv-cross)
- ("vulkan-headers" ,vulkan-headers)
- ("vulkan-loader" ,vulkan-loader)
- ("xxhash" ,xxhash)
- ("zlib" ,zlib)
- ;; TODO: unbundle armips.
- ("armips-source" ,(package-source armips))
- ("lang"
- ,(let ((commit "6bd5b4bc983917ea8402f73c726b46e36f3de0b4"))
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/hrydgard/ppsspp-lang")
- (commit commit)))
- (sha256
- (base32 "08npr3a4xskf85gnlxidl4ksc3rhc7m5rgnj7vsbjvhvw5ap02qx"))
- (file-name (git-file-name "ppsspp-lang" commit)))))
- ("tests"
- ,(let ((commit "1047400eaec6bcbdb2a64d326375ef6a6617c4ac"))
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/hrydgard/pspautotests")
- (commit commit)))
- (sha256
- (base32 "0nxv1lskcr8zbg6nrfai21mxsw0n5vaqhbsa41c3cxfyx5c4w2pg"))
- (file-name (git-file-name "pspautotests" commit)))))))
- (arguments
- `(#:out-of-source? #f
- #:configure-flags (list "-DUSE_DISCORD=OFF"
- "-DUSE_SYSTEM_FFMPEG=ON"
- "-DUSE_SYSTEM_LIBZIP=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 armips.
- (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))
- (add-after 'unpack 'fix-unittest-build
- (lambda _
- (substitute* "CMakeLists.txt"
- (("unittest/TestVertexJit.cpp" all)
- (string-append all " unittest/TestShaderGenerators.cpp")))
- (substitute* "unittest/TestVertexJit.cpp"
- (("#include \"unittest/UnitTest.h\"" all)
- (string-append all "\n#include <cmath>")))
- #t))
- (replace 'check
- (lambda _
- (for-each
- (lambda (t) (invoke "./unitTest" t))
- '("Arm64Emitter" "ArmEmitter" "X64Emitter" "VertexJit" "Asin"
- "SinCos" #|"VFPUSinCos" SIGSEGV|# "MathUtil" "Parsers" "Jit"
- "MatrixTranspose" "ParseLBN" "QuickTexHash" "CLZ"
- #|"ShaderGenerators"|#))
- (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"))
+ ;; Link all of spirv-cross.
+ (("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\\(glew.*") "")
+ (("add_subdirectory\\(glslang.*") "")
+ (("add_subdirectory\\(snappy.*") "")
+ (("add_subdirectory\\(SPIRV-Cross-build.*") "")
+ (("add_subdirectory\\(zstd.*") ""))
+ ;; Finally, we can delete the bundled sources.
+ (for-each delete-file-recursively
+ '("MoltenVK"
+ "ext/cmake"
+ "ext/glew"
+ "ext/glslang" "ext/glslang-build"
+ "ext/miniupnp" "ext/miniupnp-build"
+ "ext/native"
+ "ext/snappy"
+ "ext/SPIRV-Cross" "ext/SPIRV-Cross-build"
+ "ext/vulkan"
+ "ext/xxhash.c"
+ "ext/xxhash.h"
+ "ext/zlib"
+ "ext/zstd"))
+ ;; Since we are not including git as an input, PPSSPP is confused
+ ;; about its version. Let's fix that here.
+ (substitute* "git-version.cmake"
+ (("unknown") ,version))))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python)))
+ (inputs
+ `(("cityhash" ,cityhash)
+ ;; ppsspp doesn't yet build with ffmpeg 4.4 (see:
+ ("ffmpeg" ,ffmpeg)
+ ("glew" ,glew)
+ ("glslang" ,glslang)
+ ("libpng" ,libpng)
+ ("libzip" ,libzip)
+ ("mesa" ,mesa)
+ ("miniupnpc" ,miniupnpc)
+ ("sdl2" ,sdl2)
+ ("snappy" ,snappy)
+ ("spirv-cross" ,spirv-cross)
+ ("vulkan-headers" ,vulkan-headers)
+ ("vulkan-loader" ,vulkan-loader)
+ ("xxhash" ,xxhash)
+ ("zlib" ,zlib)
+ ("zstd" ,zstd "lib")
+; ("zstd" ,zstd "static")
+ ;; TODO: unbundle armips.
+ ("armips-source" ,(package-source armips))
+ ("lang"
+ ,(let ((commit "6bd5b4bc983917ea8402f73c726b46e36f3de0b4"))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hrydgard/ppsspp-lang")
+ (commit commit)))
+ (sha256
+ (base32 "08npr3a4xskf85gnlxidl4ksc3rhc7m5rgnj7vsbjvhvw5ap02qx"))
+ (file-name (git-file-name "ppsspp-lang" commit)))))
+ ("tests"
+ ,(let ((commit "1047400eaec6bcbdb2a64d326375ef6a6617c4ac"))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hrydgard/pspautotests")
+ (commit commit)))
+ (sha256
+ (base32 "0nxv1lskcr8zbg6nrfai21mxsw0n5vaqhbsa41c3cxfyx5c4w2pg"))
+ (file-name (git-file-name "pspautotests" commit)))))))
+ (arguments
+ `(#:out-of-source? #f
+ #:configure-flags (list "-DUSE_DISCORD=OFF"
+ "-DUSE_SYSTEM_FFMPEG=ON"
+ "-DUSE_SYSTEM_LIBZIP=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 armips.
+ (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))
+ (add-after 'unpack 'fix-unittest-build
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("unittest/TestVertexJit.cpp" all)
+ (string-append all " unittest/TestShaderGenerators.cpp")))
+ (substitute* "unittest/TestVertexJit.cpp"
+ (("#include \"unittest/UnitTest.h\"" all)
+ (string-append all "\n#include <cmath>")))
+ #t))
+ (replace 'check
+ (lambda _
+ (for-each
+ (lambda (t) (invoke "./unitTest" t))
+ '("Arm64Emitter" "ArmEmitter" "X64Emitter" "VertexJit" "Asin"
+ "SinCos" #|"VFPUSinCos" SIGSEGV|# "MathUtil" "Parsers" "Jit"
+ "MatrixTranspose" "ParseLBN" "QuickTexHash" "CLZ"
+ #|"ShaderGenerators"|#))
+ (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
+ (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+)))
+ (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
index 760ab97568..155ba35efd 100644
--- a/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch
+++ b/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch
@@ -1,28 +1,32 @@
-From 0c57874ebb5982154da127ae338f9190b1581804 Mon Sep 17 00:00:00 2001
+From 942730ce7148cd54a30d4a606ce71a2654c8a2e0 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
+Date: Sat, 5 Jun 2021 22:47:00 -0400
+Subject: [PATCH] ppsspp: Remove upgrade code and gold support.
+Original patch from Leo Prikler.
+Rebased on master (commit 69fa20744958aef8da9ca052ba7675fdc1636e46) by
+Maxim Cournoyer.
---
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/GameSettingsScreen.cpp | 2 --
UI/MainScreen.cpp | 70 +------------------------------------
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(+), 145 deletions(-)
+ ios/main.mm | 6 ----
+ 13 files changed, 5 insertions(+), 152 deletions(-)
diff --git a/Core/Config.cpp b/Core/Config.cpp
-index 1c53e8e57..2fa74a6b8 100644
+index 74be99d75..b14aa22c7 100644
--- a/Core/Config.cpp
+++ b/Core/Config.cpp
-@@ -439,7 +439,6 @@ static ConfigSetting generalSettings[] = {
+@@ -467,7 +467,6 @@ static ConfigSetting generalSettings[] = {
ConfigSetting("IgnoreBadMemAccess", &g_Config.bIgnoreBadMemAccess, true, true),
ConfigSetting("CurrentDirectory", &g_Config.currentDirectory, ""),
ConfigSetting("ShowDebuggerOnLoad", &g_Config.bShowDebuggerOnLoad, false),
@@ -30,7 +34,7 @@ index 1c53e8e57..2fa74a6b8 100644
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...
-@@ -1293,16 +1292,6 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
+@@ -1323,16 +1322,6 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
upgradeMessage = "";
}
@@ -40,7 +44,7 @@ index 1c53e8e57..2fa74a6b8 100644
- // 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);
+- "http://www.ppsspp.org/version.json", Path(), &DownloadCompletedCallback);
- dl->SetHidden(true);
- }
-
@@ -48,10 +52,10 @@ index 1c53e8e57..2fa74a6b8 100644
bSaveSettings = true;
diff --git a/Core/Config.h b/Core/Config.h
-index 13bce8a36..70d6c8aaf 100644
+index 79323eefc..d47bec0c7 100644
--- a/Core/Config.h
+++ b/Core/Config.h
-@@ -101,7 +101,6 @@ struct Config {
+@@ -103,7 +103,6 @@ struct Config {
bool bFastMemory;
int iCpuCore;
@@ -59,16 +63,16 @@ index 13bce8a36..70d6c8aaf 100644
bool bForceLagSync;
bool bFuncReplacements;
bool bHideSlowWarnings;
-@@ -540,4 +539,3 @@ std::string CreateRandMAC();
+@@ -542,4 +541,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 5be0cefa0..b11cb1c64 100644
+index b642f7442..a880d7c94 100644
--- a/Qt/QtMain.cpp
+++ b/Qt/QtMain.cpp
-@@ -218,12 +218,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+@@ -219,12 +219,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
case SYSPROP_HAS_FILE_BROWSER:
case SYSPROP_HAS_FOLDER_BROWSER:
return true;
@@ -78,14 +82,14 @@ index 5be0cefa0..b11cb1c64 100644
-#else
- return false;
-#endif
+ case SYSPROP_CAN_JIT:
+ return true;
default:
- return false;
- }
diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
-index 98b56fe91..6af0fcb1a 100644
+index f0f74f979..f963f36e9 100644
--- a/SDL/SDLMain.cpp
+++ b/SDL/SDLMain.cpp
-@@ -380,12 +380,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+@@ -381,12 +381,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
switch (prop) {
case SYSPROP_HAS_BACK_BUTTON:
return true;
@@ -95,14 +99,14 @@ index 98b56fe91..6af0fcb1a 100644
-#else
- return false;
-#endif
+ case SYSPROP_CAN_JIT:
+ return true;
default:
- return false;
- }
diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp
-index 8daac5bc8..c0c09ce79 100644
+index 29baf2f2e..926692363 100644
--- a/UI/DevScreens.cpp
+++ b/UI/DevScreens.cpp
-@@ -605,9 +605,6 @@ void SystemInfoScreen::CreateViews() {
+@@ -635,9 +635,6 @@ void SystemInfoScreen::CreateViews() {
#ifdef _M_SSE
buildConfig->Add(new InfoItem("_M_SSE", StringFromFormat("0x%x", _M_SSE)));
#endif
@@ -113,35 +117,36 @@ index 8daac5bc8..c0c09ce79 100644
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 2f1e157ee..38c586b06 100644
+index 393e33cd9..d07d00d45 100644
--- a/UI/GameSettingsScreen.cpp
+++ b/UI/GameSettingsScreen.cpp
-@@ -914,7 +914,6 @@ void GameSettingsScreen::CreateViews() {
+@@ -922,8 +922,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)) {
+-
+ systemSettings->Add(new Choice(sy->T("Restore Default Settings")))->OnClick.Handle(this, &GameSettingsScreen::OnRestoreDefaultSettings);
+ systemSettings->Add(new CheckBox(&g_Config.bEnableStateUndo, sy->T("Savestate slot backups")));
+ static const char *autoLoadSaveStateChoices[] = { "Off", "Oldest Save", "Newest Save", "Slot 1", "Slot 2", "Slot 3", "Slot 4", "Slot 5" };
diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp
-index ca870ab8f..84cde88ac 100644
+index f88509276..51b21b640 100644
--- a/UI/MainScreen.cpp
+++ b/UI/MainScreen.cpp
-@@ -1064,11 +1064,7 @@ void MainScreen::CreateViews() {
+@@ -1080,11 +1080,7 @@ void MainScreen::CreateViews() {
sprintf(versionString, "%s", PPSSPP_GIT_VERSION);
rightColumnItems->SetSpacing(0.0f);
AnchorLayout *logos = new AnchorLayout(new AnchorLayoutParams(FILL_PARENT, 60.0f, false));
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
-- logos->Add(new ImageView(ImageID("I_ICONGOLD"), IS_DEFAULT, new AnchorLayoutParams(64, 64, 0, 0, NONE, NONE, false)));
+- logos->Add(new ImageView(ImageID("I_ICONGOLD"), "", IS_DEFAULT, new AnchorLayoutParams(64, 64, 0, 0, NONE, NONE, false)));
- } else {
-- logos->Add(new ImageView(ImageID("I_ICON"), IS_DEFAULT, new AnchorLayoutParams(64, 64, 0, 0, NONE, NONE, false)));
+- logos->Add(new ImageView(ImageID("I_ICON"), "", IS_DEFAULT, new AnchorLayoutParams(64, 64, 0, 0, NONE, NONE, false)));
- }
-+ logos->Add(new ImageView(ImageID("I_ICON"), IS_DEFAULT, new AnchorLayoutParams(64, 64, 0, 0, NONE, NONE, false)));
- logos->Add(new ImageView(ImageID("I_LOGO"), IS_DEFAULT, new AnchorLayoutParams(180, 64, 64, -5.0f, NONE, NONE, false)));
++ logos->Add(new ImageView(ImageID("I_ICON"), "", IS_DEFAULT, new AnchorLayoutParams(64, 64, 0, 0, NONE, NONE, false)));
+ logos->Add(new ImageView(ImageID("I_LOGO"), "PPSSPP", IS_DEFAULT, new AnchorLayoutParams(180, 64, 64, -5.0f, NONE, NONE, false)));
#if !defined(MOBILE_DEVICE)
-@@ -1089,11 +1085,6 @@ void MainScreen::CreateViews() {
+@@ -1107,11 +1103,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);
@@ -153,7 +158,7 @@ index ca870ab8f..84cde88ac 100644
#if !PPSSPP_PLATFORM(UWP)
// Having an exit button is against UWP guidelines.
-@@ -1118,32 +1109,6 @@ void MainScreen::CreateViews() {
+@@ -1136,32 +1127,6 @@ void MainScreen::CreateViews() {
} else if (tabHolder_->GetVisibility() != V_GONE) {
root_->SetDefaultFocusView(tabHolder_);
}
@@ -186,7 +191,7 @@ index ca870ab8f..84cde88ac 100644
}
UI::EventReturn MainScreen::OnAllowStorage(UI::EventParams &e) {
-@@ -1151,30 +1116,6 @@ UI::EventReturn MainScreen::OnAllowStorage(UI::EventParams &e) {
+@@ -1169,30 +1134,6 @@ UI::EventReturn MainScreen::OnAllowStorage(UI::EventParams &e) {
return UI::EVENT_DONE;
}
@@ -217,7 +222,7 @@ index ca870ab8f..84cde88ac 100644
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);
-@@ -1390,15 +1331,6 @@ UI::EventReturn MainScreen::OnCredits(UI::EventParams &e) {
+@@ -1396,15 +1337,6 @@ UI::EventReturn MainScreen::OnCredits(UI::EventParams &e) {
return UI::EVENT_DONE;
}
@@ -234,10 +239,10 @@ index ca870ab8f..84cde88ac 100644
LaunchBrowser("https://www.ppsspp.org");
return UI::EVENT_DONE;
diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp
-index a7284654b..2413d6c89 100644
+index 901a5fb09..9d067aee6 100644
--- a/UI/MiscScreens.cpp
+++ b/UI/MiscScreens.cpp
-@@ -539,11 +539,7 @@ void LogoScreen::render() {
+@@ -661,11 +661,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);
@@ -248,9 +253,9 @@ index a7284654b..2413d6c89 100644
- }
+ 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.Draw()->DrawTextShadow(UBUNTU48, "PPSSPP", bounds.w / 2, bounds.h / 2 - 30, textColor, ALIGN_CENTER);
dc.SetFontScale(1.0f, 1.0f);
-@@ -579,10 +575,6 @@ void CreditsScreen::CreateViews() {
+@@ -701,10 +697,6 @@ void CreditsScreen::CreateViews() {
// Really need to redo this whole layout with some linear layouts...
int rightYOffset = 0;
@@ -261,14 +266,14 @@ index a7284654b..2413d6c89 100644
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);
-@@ -591,20 +583,7 @@ void CreditsScreen::CreateViews() {
+@@ -713,20 +705,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)));
+- 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)));
+- root_->Add(new ImageView(ImageID("I_ICON"), "", IS_DEFAULT, new AnchorLayoutParams(100, 64, 10, 10, NONE, NONE, false)));
- }
-}
-
@@ -279,11 +284,11 @@ index a7284654b..2413d6c89 100644
- 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)));
++ 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) {
-@@ -794,11 +773,7 @@ void CreditsScreen::render() {
+@@ -916,11 +895,7 @@ void CreditsScreen::render() {
// TODO: This is kinda ugly, done on every frame...
char temp[256];
@@ -297,10 +302,10 @@ index a7284654b..2413d6c89 100644
UIContext &dc = *screenManager()->getUIContext();
diff --git a/UWP/PPSSPP_UWPMain.cpp b/UWP/PPSSPP_UWPMain.cpp
-index 0ba7fac4b..d1b687c47 100644
+index 29afda806..b7028fc0c 100644
--- a/UWP/PPSSPP_UWPMain.cpp
+++ b/UWP/PPSSPP_UWPMain.cpp
-@@ -433,12 +433,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+@@ -426,12 +426,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
return false;
case SYSPROP_HAS_BACK_BUTTON:
return true;
@@ -310,14 +315,14 @@ index 0ba7fac4b..d1b687c47 100644
-#else
- return false;
-#endif
+ case SYSPROP_CAN_JIT:
+ return true;
default:
- return false;
- }
diff --git a/Windows/MainWindowMenu.cpp b/Windows/MainWindowMenu.cpp
-index 979a60ecb..a57927544 100644
+index c0d790e06..e8de4f956 100644
--- a/Windows/MainWindowMenu.cpp
+++ b/Windows/MainWindowMenu.cpp
-@@ -1393,7 +1393,7 @@ namespace MainWindow {
+@@ -1395,7 +1395,7 @@ namespace MainWindow {
{
W32Util::CenterWindow(hDlg);
HWND versionBox = GetDlgItem(hDlg, IDC_VERSION);
@@ -327,10 +332,10 @@ index 979a60ecb..a57927544 100644
SetWindowText(versionBox, ConvertUTF8ToWString(windowText).c_str());
}
diff --git a/Windows/main.cpp b/Windows/main.cpp
-index 4d948cfe5..e609cc1e0 100644
+index ecfe18fa4..3261151d2 100644
--- a/Windows/main.cpp
+++ b/Windows/main.cpp
-@@ -301,12 +301,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+@@ -304,12 +304,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
return true;
case SYSPROP_HAS_BACK_BUTTON:
return true;
@@ -340,26 +345,43 @@ index 4d948cfe5..e609cc1e0 100644
-#else
- return false;
-#endif
+ case SYSPROP_CAN_JIT:
+ return true;
default:
- return false;
- }
diff --git a/android/jni/app-android.cpp b/android/jni/app-android.cpp
-index 10fdf97e5..736b1fa66 100644
+index 2fad16224..8ed6dd9cd 100644
--- a/android/jni/app-android.cpp
+++ b/android/jni/app-android.cpp
-@@ -437,12 +437,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+@@ -490,12 +490,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
case SYSPROP_HAS_FOLDER_BROWSER:
// Uses OPEN_DOCUMENT_TREE to let you select a folder.
- return androidVersion >= 21;
+ return androidVersion >= 21; // when ACTION_OPEN_DOCUMENT_TREE was added
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
- default:
- return false;
- }
+ case SYSPROP_CAN_JIT:
+ return true;
+ case SYSPROP_ANDROID_SCOPED_STORAGE:
+diff --git a/ios/main.mm b/ios/main.mm
+index e53b7c7ab..fe69647ed 100644
+--- a/ios/main.mm
++++ b/ios/main.mm
+@@ -148,12 +148,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
+ switch (prop) {
+ case SYSPROP_HAS_BACK_BUTTON:
+ return false;
+- case SYSPROP_APP_GOLD:
+-#ifdef GOLD
+- return true;
+-#else
+- return false;
+-#endif
+ case SYSPROP_CAN_JIT:
+ return g_jitAvailable;
+
--
-2.30.1
+2.31.1