diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml index 3bfc2c23..1171a8b7 100644 --- a/.github/workflows/cooker-selfhosted.yml +++ b/.github/workflows/cooker-selfhosted.yml @@ -70,6 +70,9 @@ jobs: continue-on-error: true # Sometimes flatpak download fails, in this case it tries a second time + - name: Run pre-build automation tasks (retry) + if: steps.flatpak-download.outcome == 'failure' + run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" - name: "Build flatpak: download only (retry)" if: steps.flatpak-download.outcome == 'failure' run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" diff --git a/automation_tools/automation_task_list.cfg b/automation_tools/automation_task_list.cfg index ebf7d98f..09a15943 100644 --- a/automation_tools/automation_task_list.cfg +++ b/automation_tools/automation_task_list.cfg @@ -1,12 +1,12 @@ # The proper format for this file is # ACTION^PLACEHOLDERTEXT^URL^REPO(Optional) # hash^DOOMSHAPLACEHOLDER^https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip -hash^VITASHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip hash^DUCKSTATIONSHAPLACEHOLDER^https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage hash^SAMEDUCKSHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip hash^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip hash^XEMUHDDHASHPLACEHOLDER^https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip +hash^VITA3KSHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main outside_info^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid branch^THISBRANCH diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt new file mode 100644 index 00000000..aae12260 --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt @@ -0,0 +1,19 @@ +Please note that the PSVita support is still experimental, and for the way Vita3K is working the automation is limited. +In order to install a PSVita games is needed to: + +- Install a game opening the Vita3K emulator via Configurator, the supported formats are pkg, zip, vpk. +- Upon installation the zRIF may be asked, it's different for each game, you can find it via web search. +- Install DLCs and patches in the same way. +- Create an empty file in roms/psvita/gamename.psvita, please mind the .psvita extension. For example: roms/psvita/WipEout 2048 (EU).psvita. +- Edit the empty file adding the game Title ID (more below). +- The game should appear in the game list after RetroDECK is re-opened. + +How to find a title ID +It can be found inside the Vita3K GUI in the Title ID column, or found via web search. +For example the game WipEout 2048 (EU) has an ID that is PCSF00007. +So simply add PCSF00007 to the WipEout 2048 (EU).psvita file and the setup for this game is complete. + +Related wiki article can be found here: +-- + +The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg index 6700e277..8a3b9744 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg @@ -19,3 +19,6 @@ how-to-install-Duckstation-textures.txt^$texture_packs_folder/Duckstation # customs how-to-install-custom-emulators.txt^$rdhome/customs + +# emulators +how-to-install-psvita-games.txt^$roms_folder/psvita diff --git a/emu-configs/vita3k/config.yml b/emu-configs/vita3k/config.yml new file mode 100644 index 00000000..6e1b12dd --- /dev/null +++ b/emu-configs/vita3k/config.yml @@ -0,0 +1,121 @@ +--- +initial-setup: true +gdbstub: false +log-active-shaders: false +log-uniforms: false +log-compat-warn: false +validation-layer: true +pstv-mode: false +show-mode: false +demo-mode: false +show-gui: false +show-info-bar: false +apps-list-grid: false +display-system-apps: true +stretch_the_display_area: false +show-live-area-screen: true +icon-size: 64 +archive-log: false +backend-renderer: OpenGL +gpu-idx: 0 +high-accuracy: true +resolution-multiplier: 1 +disable-surface-sync: true +screen-filter: Bilinear +v-sync: true +anisotropic-filtering: 1 +texture-cache: true +show-compile-shaders: true +hashless-texture-cache: false +boot-apps-full-screen: true +audio-backend: SDL +ngs-enable: true +sys-button: 1 +sys-lang: 1 +sys-date-format: 2 +sys-time-format: 0 +cpu-pool-size: 10 +modules-mode: 0 +delay-background: 4 +delay-start: 10 +background-alpha: 0.300000012 +log-level: 0 +cpu-backend: Dynarmic +cpu-opt: true +pref-path: RETRODECKHOMEDIR/bios/Vita3K/Vita3K/ +discord-rich-presence: true +wait-for-debugger: false +color-surface-debug: false +show-touchpad-cursor: true +performance-overlay: false +perfomance-overlay-detail: 0 +perfomance-overlay-position: 0 +keyboard-button-select: 229 +keyboard-button-start: 40 +keyboard-button-up: 82 +keyboard-button-right: 79 +keyboard-button-down: 81 +keyboard-button-left: 80 +keyboard-button-l1: 20 +keyboard-button-r1: 8 +keyboard-button-l2: 24 +keyboard-button-r2: 18 +keyboard-button-l3: 9 +keyboard-button-r3: 11 +keyboard-button-triangle: 25 +keyboard-button-circle: 6 +keyboard-button-cross: 27 +keyboard-button-square: 29 +keyboard-leftstick-left: 4 +keyboard-leftstick-right: 7 +keyboard-leftstick-up: 26 +keyboard-leftstick-down: 22 +keyboard-rightstick-left: 13 +keyboard-rightstick-right: 15 +keyboard-rightstick-up: 12 +keyboard-rightstick-down: 14 +keyboard-button-psbutton: 19 +keyboard-gui-toggle-gui: 10 +keyboard-gui-fullscreen: 68 +keyboard-gui-toggle-touch: 23 +user-id: 00 +user-auto-connect: true +dump-textures: false +display-info-message: true +show-welcome: false +asia-font-support: false +shader-cache: true +spirv-shader: false +current-ime-lang: 4 +psn-status: 0 +http-enable: true +http-timeout-attempts: 50 +http-timeout-sleep-ms: 100 +http-read-end-attempts: 10 +http-read-end-sleep-ms: 250 +tracy-primitive-impl: false +controller-binds: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 +controller-led-color: + [] +lle-modules: + [] +ime-langs: + - 4 +tracy-advanced-profiling-modules: + [] +... \ No newline at end of file diff --git a/emu-configs/vita3k/ux0/user/00/user.xml b/emu-configs/vita3k/ux0/user/00/user.xml new file mode 100644 index 00000000..03849f03 --- /dev/null +++ b/emu-configs/vita3k/ux0/user/00/user.xml @@ -0,0 +1,12 @@ + + + /app/retrodeck/retrodeck.png + + + default + + + + + + \ No newline at end of file diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index b9da6c2e..31f064bc 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -1337,7 +1337,7 @@ psp psp - + psx Sony PlayStation diff --git a/functions/prepare_emulator.sh b/functions/prepare_emulator.sh index 0f880fe3..e4fdfe82 100644 --- a/functions/prepare_emulator.sh +++ b/functions/prepare_emulator.sh @@ -667,6 +667,41 @@ prepare_emulator() { fi fi + if [[ "$emulator" =~ ^(vita3k|Vita3K|all)$ ]]; then + # TODO: do a proper script + # This is just a placeholder script to test the emulator's flow + echo "----------------------" + echo "Initializing Vita3K" + echo "----------------------" + + # extracting the emulator + # NOTE: the emulator is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K + rm -rf "/var/data/Vita3K" + mkdir -p "/var/data/Vita3K" + unzip "/app/retrodeck/vita3k.zip" -d "/var/data/Vita3K" + chmod +x "/var/data/Vita3K/Vita3K" + rm -f "/var/data/Vita3K/update-vita3k.sh" + + # copying config file + cp -fvr "$emuconfigs/vita3k/config.yml" "/var/data/Vita3K" + # TODO: this step is to be done properly: Replacing RETRODECKHOMEDIR placeholder + sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "/var/data/Vita3K/config.yml" + + # copying vita user config + cp -fvr "$emuconfigs/vita3k/ux0" "$bios_folder/Vita3K/Vita3K" + + # prep saves folder + dir_prep "$saves_folder/psvita/vita3k" "$bios_folder/Vita3K/Vita3K/ux0/user/00/savedata" + + # Installing firmware + # TODO: at the moment this is here instead of a tool because it seems like it cannot run without Firmware + curl "http://dus01.psv.update.playstation.net/update/psv/image/2022_0209/rel_f2c7b12fe85496ec88a0391b514d6e3b/PSVUPDAT.PUP" -po /tmp/PSVUPDAT.PUP + curl "http://dus01.psp2.update.playstation.net/update/psp2/image/2019_0924/sd_8b5f60b56c3da8365b973dba570c53a5/PSP2UPDAT.PUP?dest=us" -po /tmp/PSP2UPDAT.PUP + Vita3K --firmware /tmp/PSVUPDAT.PUP + Vita3K --firmware /tmp/PSP2UPDAT.PUP + + fi + # Update presets for all emulators after any reset or move if [[ ! "$emulator" == "retrodeck" ]]; then build_retrodeck_current_presets diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 14c2428a..731e9dcf 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -1261,6 +1261,30 @@ modules: # Ryujinx - END + # Vita3K - START + # Vita3K is writing some files in its own directory + # So that is placed in /var/data/Vita3K and not in the readonly filesystem + # This module is just fetching the file so it will be unique for this build + + - name: vita3k + buildsystem: simple + build-commands: + # Creating an empty symlink that will point to Vita3K binary + - ln -s /var/data/Vita3K/Vita3K ${FLATPAK_DEST}/bin/Vita3K + # Copying the user icon + - mkdir -p ${FLATPAK_DEST}/retrodeck + - cp retrodeck.png ${FLATPAK_DEST}/retrodeck + # preparing the vita3k zip for later + - mv ubuntu-latest.zip ${FLATPAK_DEST}/retrodeck/vita3k.zip + sources: + - type: file + url: https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip + sha256: VITA3KSHAPLACEHOLDER + - type: file + path: res/retrodeck.png + + # Vita3K - END + # External manifests end - name: retrodeck diff --git a/old/removed-modules.yml b/old/removed-modules.yml index 968982ed..6489959f 100644 --- a/old/removed-modules.yml +++ b/old/removed-modules.yml @@ -127,28 +127,4 @@ # url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.685/ryujinx-1.1.685-linux_x64.tar.gz # sha256: bc4d7076106d7aa59c3a3ea22b83c553e5fa1a897815831adcf18cc13d729e15 - # Ryujinx Appimage - END - - # Vita3K - START - # Very broken, disabled - # NOTE: this is a continuos release, it's provided but not supported - # to update this module: - # wget https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip -O rd-submodules/vita3k/vita3k-14-01-23.zip - # sha256sum rd-submodules/vita3k/vita3k*.zip - # change url and sha - # check the branch in the url - - # - name: Vita3K - # buildsystem: simple - # build-commands: - # - | - # mkdir -p ${FLATPAK_DEST}/vita3k - # cp -r * ${FLATPAK_DEST}/vita3k - # chmod +x ${FLATPAK_DEST}/vita3k/Vita3K - # ln -s ${FLATPAK_DEST}/vita3k/Vita3K /app/bin/Vita3K - # sources: - # - type: archive - # url: https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip - # sha256: VITASHAPLACEHOLDER - - # Vita3K - END \ No newline at end of file + # Ryujinx Appimage - END \ No newline at end of file diff --git a/rd-submodules/SDL2-no-libdecor.json b/rd-submodules/SDL2-no-libdecor.json deleted file mode 100644 index f101d4b0..00000000 --- a/rd-submodules/SDL2-no-libdecor.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "SDL2", - "buildsystem": "autotools", - "config-opts": ["--disable-static"], - "sources": [ - { - "type": "archive", - "url": "https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.26.3.tar.gz", - "sha256": "af0ff86e4a268bc12c915a0ea19ea1a16419ab1426d92bad5f4e26eb31583967" - } - ], - "cleanup": [ "/bin/sdl2-config", - "/include", - "/lib/libSDL2.la", - "/lib/libSDL2main.a", - "/lib/libSDL2main.la", - "/lib/libSDL2_test.a", - "/lib/libSDL2_test.la", - "/lib/cmake", - "/share/aclocal", - "/lib/pkgconfig"] -} diff --git a/rd-submodules/vita3k/vita3k-14-01-23.zip b/rd-submodules/vita3k/vita3k-14-01-23.zip deleted file mode 100644 index 4cd7532e..00000000 Binary files a/rd-submodules/vita3k/vita3k-14-01-23.zip and /dev/null differ diff --git a/res/retrodeck.png b/res/retrodeck.png new file mode 100755 index 00000000..d16329c3 Binary files /dev/null and b/res/retrodeck.png differ diff --git a/tools/configurator.sh b/tools/configurator.sh index 52813c3e..5e826176 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -35,6 +35,7 @@ source /app/libexec/global.sh # - Primehack # - RPCS3 # - Ryujinx +# - Vita3K # - XEMU # - Yuzu # - Tools @@ -441,6 +442,7 @@ configurator_open_emulator_dialog() { "Primehack" "Open the Metroid Prime emulator Primehack" \ "RPCS3" "Open the PS3 emulator RPCS3" \ "Ryujinx" "Open the Switch emulator Ryujinx" \ + "Vita3K" "Open the PSVita emulator Vita3K" \ "XEMU" "Open the Xbox emulator XEMU" \ "Yuzu" "Open the Switch emulator Yuzu") @@ -490,6 +492,10 @@ configurator_open_emulator_dialog() { ryujinx-wrapper ;; + "Vita3K" ) + Vita3K + ;; + "XEMU" ) xemu ;;