mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-25 23:45:39 +00:00
Merge pull request #555 from XargonWan/feat/vita3k
Adding the first stage of Vita3K
This commit is contained in:
commit
979fe2c961
3
.github/workflows/cooker-selfhosted.yml
vendored
3
.github/workflows/cooker-selfhosted.yml
vendored
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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
|
||||||
|
|
121
emu-configs/vita3k/config.yml
Normal file
121
emu-configs/vita3k/config.yml
Normal 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:
|
||||||
|
[]
|
||||||
|
...
|
12
emu-configs/vita3k/ux0/user/00/user.xml
Normal file
12
emu-configs/vita3k/ux0/user/00/user.xml
Normal 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>
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
|
@ -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"]
|
|
||||||
}
|
|
Binary file not shown.
BIN
res/retrodeck.png
Executable file
BIN
res/retrodeck.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
|
@ -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
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Reference in a new issue