From b94451a2b5a1dcf4ad8cec7ea1dad93133c6be38 Mon Sep 17 00:00:00 2001 From: theofficialgman <28281419+theofficialgman@users.noreply.github.com> Date: Sun, 7 Jan 2024 00:39:02 -0500 Subject: [PATCH] PPSSPP: latest release 1.16.6 build from source also add auto-updater work towards https://github.com/Botspot/pi-apps/issues/2160 --- .../updates/PPSSPP (PSP emulator).sh | 6 +++ apps/PPSSPP (PSP emulator)/credits | 2 +- apps/PPSSPP (PSP emulator)/description | 4 +- apps/PPSSPP (PSP emulator)/install | 40 +++++++++++++++++++ apps/PPSSPP (PSP emulator)/install-32 | 19 --------- apps/PPSSPP (PSP emulator)/install-64 | 18 --------- apps/PPSSPP (PSP emulator)/uninstall | 6 ++- 7 files changed, 53 insertions(+), 42 deletions(-) create mode 100755 .github/workflows/updates/PPSSPP (PSP emulator).sh create mode 100755 apps/PPSSPP (PSP emulator)/install delete mode 100755 apps/PPSSPP (PSP emulator)/install-32 delete mode 100755 apps/PPSSPP (PSP emulator)/install-64 diff --git a/.github/workflows/updates/PPSSPP (PSP emulator).sh b/.github/workflows/updates/PPSSPP (PSP emulator).sh new file mode 100755 index 0000000000..194acb49db --- /dev/null +++ b/.github/workflows/updates/PPSSPP (PSP emulator).sh @@ -0,0 +1,6 @@ +#!/bin/bash + +webVer=$(get_release_raw hrydgard/ppsspp) +all_url="https://github.com/hrydgard/ppsspp/tree/$webVer" + +source $GITHUB_WORKSPACE/.github/workflows/update_github_script.sh \ No newline at end of file diff --git a/apps/PPSSPP (PSP emulator)/credits b/apps/PPSSPP (PSP emulator)/credits index a627c7ecd5..3460872914 100644 --- a/apps/PPSSPP (PSP emulator)/credits +++ b/apps/PPSSPP (PSP emulator)/credits @@ -1 +1 @@ -Added to pi-apps by @ryanfortner (Github) +theofficialgman diff --git a/apps/PPSSPP (PSP emulator)/description b/apps/PPSSPP (PSP emulator)/description index 97fd58bace..84117651a4 100644 --- a/apps/PPSSPP (PSP emulator)/description +++ b/apps/PPSSPP (PSP emulator)/description @@ -1,4 +1,4 @@ A PSP emulator that can run PSP games in full HD and can upscale textures also. -To run: Menu > Games > PPSSPP -To run in a terminal: ~/ppsspp/PPSSPPSDL +To run: Menu > Games > PPSSPPSDL +To run in a terminal: PPSSPPSDL diff --git a/apps/PPSSPP (PSP emulator)/install b/apps/PPSSPP (PSP emulator)/install new file mode 100755 index 0000000000..94228ab8b2 --- /dev/null +++ b/apps/PPSSPP (PSP emulator)/install @@ -0,0 +1,40 @@ +#!/bin/bash + +version=v1.16.6 + +# remove deprecated files +rm -f ~/.local/share/applications/ppsspp.desktop ~/ppsspp + +cd /tmp || error "Could not move to /tmp folder" +install_packages build-essential cmake libgl1-mesa-dev libglew-dev libsdl2-dev libsdl2-ttf-dev libvulkan-dev libfontconfig1-dev libcurl4-openssl-dev || exit 1 +rm -rf ppsspp +git clone https://github.com/hrydgard/ppsspp.git --recurse-submodules --shallow-submodules --depth=1 -b "$version" || error "Failed to clone the repo" +cd ppsspp || error "Could not move to ppsspp folder" +mkdir build || error "Could not make build folder" +cd build || error "Could not move to build folder" +# vulkan does not work for some systems in SDL backend on Linux https://github.com/hrydgard/ppsspp/pull/13054 +# vulkan does not work at all in QT backend on Linux https://github.com/hrydgard/ppsspp/issues/11628 +# QT backend does not work with wayland https://github.com/hrydgard/ppsspp/issues/16254 +# GL cannot be used on QT backend on ARM32 due to QT5 being built with GLES and not GL on ARM32 +# SDL is not guaranteed to have Wayland support builtin, so check for the headers before enabling it +# changing to vulkan in the UI does nothing and OpenGL continues to be used +# enabling it causes no compilation issues and it can not be fully disabled (always shows in the UI) so keep it enabled +# disable system FFMPEG as recommended by upstream (can be incompatible with some custom HW decoders and newew FFMPEG versions) +# bundled FFMPEG requires minimum GLIBC 2.28 and is available for armv7l and armv8 +# architecture detection when kernel architecture does not match the userspace architecture is broken https://github.com/hrydgard/ppsspp/issues/18673 +if [ $arch == 32 ] && grep -q '\-lwayland' /usr/lib/arm-linux-gnueabihf/pkgconfig/sdl2.pc ;then + cmake .. -DUSING_QT_UI=OFF -DUSE_SYSTEM_FFMPEG=OFF -DUSING_GLES2=ON -DUSING_EGL=ON -DUSE_WAYLAND_WSI=ON -DFORCED_CPU=armv7l || error "cmake failed to configure the build" +elif [ $arch == 32 ];then + cmake .. -DUSING_QT_UI=OFF -DUSE_SYSTEM_FFMPEG=OFF -DUSING_GLES2=ON -DUSING_EGL=ON -DFORCED_CPU=armv7l || error "cmake failed to configure the build" +elif [ $arch == 64 ] && grep -q '\-lwayland' /usr/lib/aarch64-linux-gnu/pkgconfig/sdl2.pc ;then + cmake .. -DUSING_QT_UI=OFF -DUSE_SYSTEM_FFMPEG=OFF -DUSE_WAYLAND_WSI=ON || error "cmake failed to configure the build" +elif [ $arch == 64 ]; then + cmake .. -DUSING_QT_UI=OFF -DUSE_SYSTEM_FFMPEG=OFF -DUSE_WAYLAND_WSI=OFF || error "cmake failed to configure the build" +else + error "Failed to detect OS CPU architecture! Something is very wrong." +fi +make -j$(nproc) || error "Could not build ppsspp" +sudo make install || error "Could not install ppsspp" +# update timestamp of top level icon directory to signal icon cache to be refreshed +sudo touch /usr/local/share/icons/hicolor +rm -rf /tmp/ppsspp diff --git a/apps/PPSSPP (PSP emulator)/install-32 b/apps/PPSSPP (PSP emulator)/install-32 deleted file mode 100755 index d04a26439b..0000000000 --- a/apps/PPSSPP (PSP emulator)/install-32 +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# Get dependencies -install_packages libgl1-mesa-dev libsdl2-dev libvulkan-dev wget unzip || exit 1 -cd ~/ -rm -f ppsspp.zip -wget -O ppsspp.zip https://github.com/ryanfortner/ppsspp-rpi/releases/download/v1.12.3/ppsspp_1.12.3_armhf.zip || error "Failed to download zip!" -unzip ppsspp.zip || error "Failed to unzip PPSSPP!" -rm -f ppsspp.zip || error "Failed to remove zip!" - -# Desktop entry -echo "[Desktop Entry] -Version=1.0 -Type=Application -Name=PPSSPP -Comment=PSP emulator -Icon=$(dirname "$0")/icon-64.png -Exec=$HOME/ppsspp/PPSSPPSDL -Categories=Game;" > ~/.local/share/applications/ppsspp.desktop || error "Failed to create desktop entry!" - diff --git a/apps/PPSSPP (PSP emulator)/install-64 b/apps/PPSSPP (PSP emulator)/install-64 deleted file mode 100755 index f01dca361e..0000000000 --- a/apps/PPSSPP (PSP emulator)/install-64 +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Get dependencies -install_packages libgl1-mesa-dev libsdl2-dev libvulkan-dev wget unzip || exit 1 -cd ~/ -rm -f ppsspp.zip -wget -O ppsspp.zip https://github.com/ryanfortner/ppsspp-rpi/releases/download/v1.12.3/ppsspp_1.12.3_arm64.zip || error "Failed to download zip!" -unzip ppsspp.zip || error "Failed to unzip PPSSPP!" -rm -f ppsspp.zip || error "Failed to remove zip!" - -# Desktop entry -echo "[Desktop Entry] -Version=1.0 -Type=Application -Name=PPSSPP -Comment=PSP emulator -Icon=$(dirname "$0")/icon-64.png -Exec=$HOME/ppsspp/PPSSPPSDL -Categories=Game;" > ~/.local/share/applications/ppsspp.desktop || error "Failed to create desktop entry!" diff --git a/apps/PPSSPP (PSP emulator)/uninstall b/apps/PPSSPP (PSP emulator)/uninstall index 61f4a0193a..c02610ff5d 100755 --- a/apps/PPSSPP (PSP emulator)/uninstall +++ b/apps/PPSSPP (PSP emulator)/uninstall @@ -1,6 +1,8 @@ #!/bin/bash purge_packages || exit 1 -rm -f ~/.local/share/applications/ppsspp.desktop || error "Failed to remove desktop entry!" -rm -rf ~/ppsspp || error "Failed to remove install directory!" +# remove deprecated files +rm -f ~/.local/share/applications/ppsspp.desktop ~/ppsspp + +sudo rm -rf /usr/local/share/icons/hicolor/*/apps/ppsspp* /usr/local/share/mime/packages/ppsspp.xml /usr/local/share/applications/PPSSPPQt.desktop /usr/local/share/applications/PPSSPPSDL.desktop /usr/local/share/ppsspp /usr/local/bin/PPSSPPQt /usr/local/bin/PPSSPPSDL