Merge pull request #555 from XargonWan/feat/vita3k

Adding the first stage of Vita3K
This commit is contained in:
XargonWan 2023-10-14 23:54:18 +02:00 committed by GitHub
commit 979fe2c961
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 227 additions and 50 deletions

View file

@ -70,6 +70,9 @@ jobs:
continue-on-error: true continue-on-error: true
# Sometimes flatpak download fails, in this case it tries a second time # 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)" - name: "Build flatpak: download only (retry)"
if: steps.flatpak-download.outcome == 'failure' if: steps.flatpak-download.outcome == 'failure'
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"

View file

@ -1,12 +1,12 @@
# The proper format for this file is # The proper format for this file is
# ACTION^PLACEHOLDERTEXT^URL^REPO(Optional) # ACTION^PLACEHOLDERTEXT^URL^REPO(Optional)
# hash^DOOMSHAPLACEHOLDER^https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip # 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^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^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^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip
hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282full.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^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 latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
outside_info^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid outside_info^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
branch^THISBRANCH branch^THISBRANCH

View file

@ -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

View file

@ -19,3 +19,6 @@ how-to-install-Duckstation-textures.txt^$texture_packs_folder/Duckstation
# customs # customs
how-to-install-custom-emulators.txt^$rdhome/customs how-to-install-custom-emulators.txt^$rdhome/customs
# emulators
how-to-install-psvita-games.txt^$roms_folder/psvita

View file

@ -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:
[]
...

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<user id="00" name="RetroDECK">
<avatar>/app/retrodeck/retrodeck.png</avatar>
<sort-apps-list type="4" state="1" />
<theme use-background="true">
<content-id>default</content-id>
</theme>
<start-screen type="default">
<path></path>
</start-screen>
<backgrounds />
</user>

View file

@ -1337,7 +1337,7 @@
<platform>psp</platform> <platform>psp</platform>
<theme>psp</theme> <theme>psp</theme>
</system> </system>
<!--
<system> <system>
<name>psvita</name> <name>psvita</name>
<fullname>Sony PlayStation Vita</fullname> <fullname>Sony PlayStation Vita</fullname>
@ -1347,7 +1347,7 @@
<platform>psvita</platform> <platform>psvita</platform>
<theme>psvita</theme> <theme>psvita</theme>
</system> </system>
-->
<system> <system>
<name>psx</name> <name>psx</name>
<fullname>Sony PlayStation</fullname> <fullname>Sony PlayStation</fullname>

View file

@ -667,6 +667,41 @@ prepare_emulator() {
fi fi
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 # Update presets for all emulators after any reset or move
if [[ ! "$emulator" == "retrodeck" ]]; then if [[ ! "$emulator" == "retrodeck" ]]; then
build_retrodeck_current_presets build_retrodeck_current_presets

View file

@ -1261,6 +1261,30 @@ modules:
# Ryujinx - END # 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 # External manifests end
- name: retrodeck - name: retrodeck

View file

@ -128,27 +128,3 @@
# sha256: bc4d7076106d7aa59c3a3ea22b83c553e5fa1a897815831adcf18cc13d729e15 # sha256: bc4d7076106d7aa59c3a3ea22b83c553e5fa1a897815831adcf18cc13d729e15
# Ryujinx Appimage - END # 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

View file

@ -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"]
}

BIN
res/retrodeck.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -35,6 +35,7 @@ source /app/libexec/global.sh
# - Primehack # - Primehack
# - RPCS3 # - RPCS3
# - Ryujinx # - Ryujinx
# - Vita3K
# - XEMU # - XEMU
# - Yuzu # - Yuzu
# - Tools # - Tools
@ -441,6 +442,7 @@ configurator_open_emulator_dialog() {
"Primehack" "Open the Metroid Prime emulator Primehack" \ "Primehack" "Open the Metroid Prime emulator Primehack" \
"RPCS3" "Open the PS3 emulator RPCS3" \ "RPCS3" "Open the PS3 emulator RPCS3" \
"Ryujinx" "Open the Switch emulator Ryujinx" \ "Ryujinx" "Open the Switch emulator Ryujinx" \
"Vita3K" "Open the PSVita emulator Vita3K" \
"XEMU" "Open the Xbox emulator XEMU" \ "XEMU" "Open the Xbox emulator XEMU" \
"Yuzu" "Open the Switch emulator Yuzu") "Yuzu" "Open the Switch emulator Yuzu")
@ -490,6 +492,10 @@ configurator_open_emulator_dialog() {
ryujinx-wrapper ryujinx-wrapper
;; ;;
"Vita3K" )
Vita3K
;;
"XEMU" ) "XEMU" )
xemu xemu
;; ;;