diff --git a/packages/emulators/standalone/ppsspp-sa/package.mk b/packages/emulators/standalone/ppsspp-sa/package.mk index 222c589f6..c394c7bbe 100644 --- a/packages/emulators/standalone/ppsspp-sa/package.mk +++ b/packages/emulators/standalone/ppsspp-sa/package.mk @@ -4,6 +4,9 @@ PKG_NAME="ppsspp-sa" PKG_REV="1" PKG_ARCH="any" +PKG_SITE="https://github.com/hrydgard/ppsspp" +PKG_URL="${PKG_SITE}.git" +PKG_VERSION="4a92275" PKG_LICENSE="GPLv2" PKG_DEPENDS_TARGET="toolchain ffmpeg libzip SDL2 zlib zip" PKG_SHORTDESC="PPSSPPDL" @@ -12,18 +15,14 @@ GET_HANDLER_SUPPORT="git" PKG_PATCH_DIRS+="${DEVICE}" -case ${DEVICE} in - RK35*) - PKG_VERSION="40386bca08d33c2d6584d6e7da4efee9bfeb3f96" - PKG_SITE="https://github.com/hrydgard/ppsspp" - PKG_URL="${PKG_SITE}.git" - ;; - *) - PKG_VERSION="be83355" - PKG_SITE="https://github.com/hrydgard/ppsspp" - PKG_URL="${PKG_SITE}.git" - ;; -esac +#case ${DEVICE} in +# RK35*) +# PKG_VERSION="40386bca08d33c2d6584d6e7da4efee9bfeb3f96" +# ;; +# *) +# PKG_VERSION="4a92275" +# ;; +#esac PKG_CMAKE_OPTS_TARGET=" -DUSE_SYSTEM_FFMPEG=OFF \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/packages/emulators/standalone/ppsspp-sa/patches/001-exit-to-jelos.patch b/packages/emulators/standalone/ppsspp-sa/patches/001-exit-to-jelos.patch deleted file mode 100644 index c0ec52e62..000000000 --- a/packages/emulators/standalone/ppsspp-sa/patches/001-exit-to-jelos.patch +++ /dev/null @@ -1,55 +0,0 @@ -MRFIXIT: Add the option to exit the emulator completely from the pause screen -Fewtarius: Update for 351ELEC ---- a/UI/PauseScreen.h -+++ b/UI/PauseScreen.h -@@ -40,6 +40,7 @@ - private: - UI::EventReturn OnGameSettings(UI::EventParams &e); - UI::EventReturn OnExitToMenu(UI::EventParams &e); -+ UI::EventReturn OnExitToBatocera(UI::EventParams &e); - UI::EventReturn OnReportFeedback(UI::EventParams &e); - - UI::EventReturn OnRewind(UI::EventParams &e); ---- a/UI/PauseScreen.cpp -+++ b/UI/PauseScreen.cpp -@@ -386,6 +386,8 @@ - rightColumnItems->Add(new Choice(mm->T("Exit")))->OnClick.Handle(this, &GamePauseScreen::OnExitToMenu); - } else { - rightColumnItems->Add(new Choice(pa->T("Exit to menu")))->OnClick.Handle(this, &GamePauseScreen::OnExitToMenu); -+ rightColumnItems->Add(new Spacer(25.0)); -+ rightColumnItems->Add(new Choice(pa->T("Exit to JELOS")))->OnClick.Handle(this, &GamePauseScreen::OnExitToBatocera); - } - } - -@@ -437,6 +439,31 @@ - return UI::EVENT_DONE; - } - -+UI::EventReturn GamePauseScreen::OnExitToBatocera(UI::EventParams &e) { -+ if (g_Config.bPauseMenuExitsEmulator) { -+ System_SendMessage("finish", ""); -+ } else { -+ TriggerFinish(DR_OK); -+ } -+ -+ System_SendMessage("event", "exitprogram"); -+ -+ // Request the framework to exit cleanly. -+ System_SendMessage("finish", ""); -+ -+ // However, let's make sure the config was saved, since it may not have been. -+ g_Config.Save("MainScreen::OnExit"); -+ -+#ifdef __ANDROID__ -+#ifdef ANDROID_NDK_PROFILER -+ moncleanup(); -+#endif -+#endif -+ -+ UpdateUIState(UISTATE_EXIT); -+ return UI::EVENT_DONE; -+} -+ - UI::EventReturn GamePauseScreen::OnReportFeedback(UI::EventParams &e) { - screenManager()->push(new ReportScreen(gamePath_)); - return UI::EVENT_DONE; diff --git a/packages/emulators/standalone/ppsspp-sa/patches/002-fullscreen_drm.patch b/packages/emulators/standalone/ppsspp-sa/patches/002-fullscreen_drm.patch index 0319dcdb2..6676f145e 100644 --- a/packages/emulators/standalone/ppsspp-sa/patches/002-fullscreen_drm.patch +++ b/packages/emulators/standalone/ppsspp-sa/patches/002-fullscreen_drm.patch @@ -1,13 +1,14 @@ -diff -rupN PPSSPPSDL.orig/SDL/SDLMain.cpp PPSSPPSDL/SDL/SDLMain.cpp ---- PPSSPPSDL.orig/SDL/SDLMain.cpp 2022-12-10 09:06:22.351896562 -0500 -+++ PPSSPPSDL/SDL/SDLMain.cpp 2022-12-10 09:07:31.488519195 -0500 -@@ -460,11 +460,11 @@ void ToggleFullScreenIfFlagSet(SDL_Windo +diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp +index d81157d83..28db181b4 100644 +--- a/SDL/SDLMain.cpp ++++ b/SDL/SDLMain.cpp +@@ -539,11 +539,11 @@ void UpdateWindowState(SDL_Window *window) { Uint32 window_flags = SDL_GetWindowFlags(window); - if (g_ToggleFullScreenType == -1) { + if (g_windowState.toggleFullScreenType == -1) { - window_flags ^= SDL_WINDOW_FULLSCREEN_DESKTOP; + window_flags ^= SDL_WINDOW_FULLSCREEN; - } else if (g_ToggleFullScreenType == 1) { + } else if (g_windowState.toggleFullScreenType == 1) { - window_flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; + window_flags |= SDL_WINDOW_FULLSCREEN; } else { @@ -16,7 +17,7 @@ diff -rupN PPSSPPSDL.orig/SDL/SDLMain.cpp PPSSPPSDL/SDL/SDLMain.cpp } SDL_SetWindowFullscreen(window, window_flags); } -@@ -570,7 +570,7 @@ int main(int argc, char *argv[]) { +@@ -654,7 +654,7 @@ int main(int argc, char *argv[]) { Uint32 mode = 0; for (int i = 1; i < argc; i++) { if (!strcmp(argv[i],"--fullscreen")) { @@ -25,7 +26,7 @@ diff -rupN PPSSPPSDL.orig/SDL/SDLMain.cpp PPSSPPSDL/SDL/SDLMain.cpp g_Config.iForceFullScreen = 1; } else if (set_xres == -2) set_xres = parseInt(argv[i]); -@@ -643,19 +643,19 @@ int main(int argc, char *argv[]) { +@@ -727,19 +727,19 @@ int main(int argc, char *argv[]) { // Force fullscreen if the resolution is too low to run windowed. if (g_DesktopWidth < 480 * 2 && g_DesktopHeight < 272 * 2) { @@ -45,10 +46,10 @@ diff -rupN PPSSPPSDL.orig/SDL/SDLMain.cpp PPSSPPSDL/SDL/SDLMain.cpp - if (mode & SDL_WINDOW_FULLSCREEN_DESKTOP) { + if (mode & SDL_WINDOW_FULLSCREEN) { - pixel_xres = g_DesktopWidth; - pixel_yres = g_DesktopHeight; + g_display.pixel_xres = g_DesktopWidth; + g_display.pixel_yres = g_DesktopHeight; if (g_Config.iForceFullScreen == -1) -@@ -726,7 +726,7 @@ int main(int argc, char *argv[]) { +@@ -807,7 +807,7 @@ int main(int argc, char *argv[]) { // Use the setting from the config when initing the window. if (g_Config.UseFullScreen()) diff --git a/packages/emulators/standalone/ppsspp-sa/patches/003-disable-mouse.patch b/packages/emulators/standalone/ppsspp-sa/patches/003-disable-mouse.patch index d03b3dbe4..cfb056c47 100644 --- a/packages/emulators/standalone/ppsspp-sa/patches/003-disable-mouse.patch +++ b/packages/emulators/standalone/ppsspp-sa/patches/003-disable-mouse.patch @@ -1,20 +1,11 @@ -diff -rupN PPSSPPSDL.orig/SDL/SDLMain.cpp PPSSPPSDL/SDL/SDLMain.cpp ---- PPSSPPSDL.orig/SDL/SDLMain.cpp 2022-06-06 07:03:21.558185006 -0400 -+++ PPSSPPSDL/SDL/SDLMain.cpp 2022-06-06 07:29:43.562901323 -0400 -@@ -781,9 +781,7 @@ int main(int argc, char *argv[]) { - printf("Init from thread error: '%s'\n", error_message.c_str()); - } - --#ifdef MOBILE_DEVICE - SDL_ShowCursor(SDL_DISABLE); --#endif - - if (!useEmuThread) { - NativeInitGraphics(graphicsContext); -@@ -874,12 +872,7 @@ int main(int argc, char *argv[]) { - g_Config.iForceFullScreen = -1; +diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp +index d81157d83..3eaf5af42 100644 +--- a/SDL/SDLMain.cpp ++++ b/SDL/SDLMain.cpp +@@ -996,12 +996,7 @@ int main(int argc, char *argv[]) { + g_Config.iWindowWidth = new_width; + g_Config.iWindowHeight = new_height; } - - // Hide/Show cursor correctly toggling fullscreen - if (lastUIState == UISTATE_INGAME && fullscreen && !g_Config.bShowTouchControls) { - SDL_ShowCursor(SDL_DISABLE); @@ -25,7 +16,7 @@ diff -rupN PPSSPPSDL.orig/SDL/SDLMain.cpp PPSSPPSDL/SDL/SDLMain.cpp break; } -@@ -1142,10 +1135,7 @@ int main(int argc, char *argv[]) { +@@ -1295,10 +1290,7 @@ int main(int argc, char *argv[]) { #if !defined(MOBILE_DEVICE) if (lastUIState != GetUIState()) { lastUIState = GetUIState(); diff --git a/packages/emulators/standalone/ppsspp-sa/patches/AMD64/004-no-vulkan-logspam.patch b/packages/emulators/standalone/ppsspp-sa/patches/AMD64/004-no-vulkan-logspam.patch deleted file mode 100644 index 3c155c6cc..000000000 --- a/packages/emulators/standalone/ppsspp-sa/patches/AMD64/004-no-vulkan-logspam.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 335788a932b56149a3204aeda6c885c9136ea4aa Mon Sep 17 00:00:00 2001 -From: "Unknown W. Brackets" -Date: Thu, 16 Feb 2023 19:34:44 -0800 -Subject: [PATCH] Vulkan: Remove logspam. - ---- - Common/GPU/Vulkan/VulkanContext.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/Common/GPU/Vulkan/VulkanContext.cpp b/Common/GPU/Vulkan/VulkanContext.cpp -index 23b0f8adb036..676860285219 100644 ---- a/Common/GPU/Vulkan/VulkanContext.cpp -+++ b/Common/GPU/Vulkan/VulkanContext.cpp -@@ -1663,7 +1663,6 @@ void VulkanDeleteList::PerformDeletes(VulkanContext *vulkan, VmaAllocator alloca - } - imagesWithAllocs_.clear(); - for (auto &imageView : imageViews_) { -- INFO_LOG(G3D, "deleting imageview %p", imageView); - vkDestroyImageView(device, imageView, nullptr); - } - imageViews_.clear(); diff --git a/packages/emulators/standalone/ppsspp-sa/scripts/start_ppsspp.sh b/packages/emulators/standalone/ppsspp-sa/scripts/start_ppsspp.sh index f5853a2b8..360e88d24 100755 --- a/packages/emulators/standalone/ppsspp-sa/scripts/start_ppsspp.sh +++ b/packages/emulators/standalone/ppsspp-sa/scripts/start_ppsspp.sh @@ -19,4 +19,4 @@ fi ARG=${1//[\\]/} export SDL_AUDIODRIVER=alsa -${EMUPERF} ppsspp "${ARG}" +${EMUPERF} ppsspp --pause-menu-exit "${ARG}"