RetroDECK v0.6.1b

This commit is contained in:
XargonWan 2023-01-10 13:16:53 +00:00
commit 17bb4b6b2f
8 changed files with 149 additions and 103 deletions

View file

@ -74,7 +74,7 @@ jobs:
artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
prerelease: true
#prerelease: true
draft: false
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK-cooker

View file

@ -1375,7 +1375,7 @@
<path>%ROMPATH%/switch</path>
<extension>.nca .NCA .nro .NRO .nso .NSO .nsp .NSP .xci .XCI .7z .7Z .zip .ZIP</extension>
<command label="Yuzu (Standalone)">%EMULATOR_YUZU% -f -g %ROM%</command>
<command label="Ryujinx (Standalone)">%EMULATOR_RYUJINX% %ROM%</command>
<!--<command label="Ryujinx (Standalone)">%EMULATOR_RYUJINX% %ROM%</command>-->
<platform>switch</platform>
<theme>switch</theme>
</system>

View file

@ -565,6 +565,22 @@ dolphin_init() {
dir_prep "$rdhome/saves/wii/dolphin" "/var/data/dolphin-emu/Wii"
}
primehack_init() {
echo "----------------------"
echo "Initializing Primehack"
echo "----------------------"
mkdir -pv /var/config/primehack/
cp -fvr "$emuconfigs/primehack/"* /var/config/primehack/
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/primehack/Dolphin.ini
dir_prep "$rdhome/saves/gc/primehack/EUR" "/var/data/primehack/GC/EUR"
dir_prep "$rdhome/saves/gc/primehack/USA" "/var/data/primehack/GC/USA"
dir_prep "$rdhome/saves/gc/primehack/JAP" "/var/data/primehack/GC/JAP"
dir_prep "$rdhome/screenshots" "/var/data/primehack/ScreenShots"
dir_prep "$rdhome/states" "/var/data/primehack/StateSaves"
mkdir -pv /var/data/primehack/Wii/
dir_prep "$rdhome/saves/wii/primehack" "/var/data/primehack/Wii"
}
pcsx2_init() {
echo "----------------------"
echo "Initializing PCSX2"
@ -670,17 +686,17 @@ standalones_init() {
echo "------------------------------------"
echo "Initializing standalone emulators"
echo "------------------------------------"
yuzu_init
citra_init
dolphin_init
duckstation_init
melonds_init
pcsx2_init
ppssppsdl_init
primehack_init
rpcs3_init
xemu_init
duckstation_init
ryujinx_init
xemu_init
yuzu_init
}
emulators_post_move() {
@ -713,6 +729,15 @@ emulators_post_move() {
dir_prep "$rdhome/states" "/var/data/dolphin-emu/StateSaves"
dir_prep "$rdhome/saves/wii/dolphin" "/var/data/dolphin-emu/Wii/"
# Primehack section
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/primehack/Dolphin.ini
dir_prep "$rdhome/saves/gc/primehack/EUR" "/var/data/primehack/GC/EUR"
dir_prep "$rdhome/saves/gc/primehack/USA" "/var/data/primehack/GC/USA"
dir_prep "$rdhome/saves/gc/primehack/JAP" "/var/data/primehack/GC/JAP"
dir_prep "$rdhome/screenshots" "/var/data/primehack/ScreenShots"
dir_prep "$rdhome/states" "/var/data/primehack/StateSaves"
dir_prep "$rdhome/saves/wii/primehack" "/var/data/primehack/Wii/"
# PCSX2 section
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2.ini

View file

@ -104,12 +104,12 @@ else
echo "Loading it"
source "$rd_conf"
# Update SD card path if changed from SteamOS update
if [[ ! -d $sdcard && "$(ls -A /run/media/deck/)" ]]; then
prev_sd_path=$sdcard
configurator_generic_dialog "The SD card was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the SD card.\n\nIf you are not using an SD card, please click \"Cancel\"."
new_sd_path=$(browse "SD Card Location")
sed -i 's#'$prev_sd_path'#'$new_sd_path'#g' $rd_conf
# Verify rdhome is where it is supposed to be.
if [[ ! -d $rdhome ]]; then
prev_home_path=$rdhome
configurator_generic_dialog "The RetroDECK data folder was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the \"retrodeck\" folder."
new_home_path=$(browse "RetroDECK folder location")
sed -i 's#'$prev_home_path'#'$new_home_path'#g' $rd_conf
source "$rd_conf"
emulators_post_move
fi

View file

@ -69,6 +69,19 @@
<releases>
<release version="0.6.1b" date="2022-12-30">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.6.1b</url>
<description>
<ul>
<li>Removed Ryjuinx as it was broken (sorry)</li>
<li>Yuzu updated to mainline-1301</li>
<li>Added missing Primehack config and Configurator options</li>
<li>Resized configurator windows</li>
<li>Fixed a bug where the retrodeck folder was having a symlink creation issue after migration</li>
</ul>
</description>
</release>
<release version="0.6.0b" date="2022-12-24">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.6.0b</url>
<description>

View file

@ -78,7 +78,7 @@ modules:
- |
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
VERSION="0.6.0b"
VERSION="0.6.1b"
if [[ $VERSION == *"cooker"* ]];
then
VERSION="$VERSION-[$(git rev-parse --short HEAD)]"
@ -470,8 +470,8 @@ modules:
- ln -s "${FLATPAK_DEST}/yuzu/usr/bin/yuzu" "${FLATPAK_DEST}/bin/yuzu"
sources:
- type: file
url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1271/yuzu-mainline-20221215-15a33b3cd.AppImage
sha256: 61173b9b61dc548242beea4c61447781435c0ee7fd62d69313df566a3eece452
url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1301/yuzu-mainline-20230109-8c9f71e76.AppImage
sha256: 8dc52ddc8547b92d08cf450ce32c2f400049b7df98475a42be5012660c76743d
# Yuzu - END
@ -945,6 +945,70 @@ modules:
# Cemu - END
# Ryujinx - START
# https://github.com/flathub/org.ryujinx.Ryujinx
#
# THIS MUST BE AT THE END OF THE MANIFEST OR THE BINARY WILL GET CORRUPTED
#
# - name: Ryujinx
# buildsystem: simple
# build-options:
# no-debuginfo: true
# no-debuginfo-compression: true
# strip: false
# arch:
# x86_64:
# env:
# RUNTIME: linux-x64
# env:
# PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
# DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
# RYUJINX_VERSION: 1.1.500
# RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub
# RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx
# RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master
# build-commands:
# - |
# export PATH=$PATH:/run/build/Ryujinx/dotnet-sdk
# export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD)
# export RUNTIME_FRAMEWORK_VERSION=$(find nuget-sources -name 'microsoft.netcore.app.host.linux-x64.*' | grep -oP '(\d.\d.\d+.nupkg)' | grep -oP '(\d.\d.\d+)')
# sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" Ryujinx.Common/ReleaseInformations.cs
# sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" Ryujinx.Common/ReleaseInformations.cs
# sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" Ryujinx.Common/ReleaseInformations.cs
# sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" Ryujinx.Common/ReleaseInformations.cs
# sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" Ryujinx.Common/ReleaseInformations.cs
# mkdir -p /app/bin
# dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants=DISABLE_UPDATER /p:RuntimeFrameworkVersion=$RUNTIME_FRAMEWORK_VERSION --self-contained --source nuget-sources
# if [ $? -ne 0 ]; then
# exit 1;
# fi;
# cp -r --remove-destination /run/build/Ryujinx/Ryujinx/bin/Release/net7.0/$RUNTIME/publish/* /app/bin/
# mkdir -p /app/lib/ffmpeg
# ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so
# install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper
# sources:
# - type: git
# url: https://github.com/Ryujinx/Ryujinx.git
# commit: 2b23463daa01226c5569d8e61d1d0959570354cf
# - type: archive
# only-arches:
# - x86_64
# dest: dotnet-sdk
# url: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/7.0.101/dotnet-sdk-7.0.101-linux-x64.tar.gz
# sha256: 454e2da3d02c74c2f6d2446c94fd9075f8db80ff6c9b9d41d5e470683e16a1d5
# x-checker-data:
# type: html
# url: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/7.0/latest.version
# version-pattern: ^([\d\.a-z-]+)$
# url-template: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$version/dotnet-sdk-$version-linux-x64.tar.gz
# - rd-submodules/ryujinx/nuget_sources.json
# - type: file
# path: rd-submodules/ryujinx/ryujinx-wrapper
# Ryujinx - END
# External manifests end
- name: retrodeck
@ -1000,67 +1064,3 @@ modules:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
branch: main
# Ryujinx - START
# https://github.com/flathub/org.ryujinx.Ryujinx
#
# THIS MUST BE AT THE END OF THE MANIFEST OR THE BINARY WILL GET CORRUPTED
#
- name: Ryujinx
buildsystem: simple
build-options:
no-debuginfo: true
no-debuginfo-compression: true
strip: false
arch:
x86_64:
env:
RUNTIME: linux-x64
env:
PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
RYUJINX_VERSION: 1.1.405
RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub
RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx
RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master
build-commands:
- |
export PATH=$PATH:/run/build/Ryujinx/dotnet-sdk
export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD)
export RUNTIME_FRAMEWORK_VERSION=$(find nuget-sources -name 'microsoft.netcore.app.host.linux-x64.*' | grep -oP '(\d.\d.\d+.nupkg)' | grep -oP '(\d.\d.\d+)')
sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" Ryujinx.Common/ReleaseInformations.cs
sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" Ryujinx.Common/ReleaseInformations.cs
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" Ryujinx.Common/ReleaseInformations.cs
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" Ryujinx.Common/ReleaseInformations.cs
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" Ryujinx.Common/ReleaseInformations.cs
mkdir -p /app/bin
dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants=DISABLE_UPDATER /p:RuntimeFrameworkVersion=$RUNTIME_FRAMEWORK_VERSION --self-contained --source nuget-sources
if [ $? -ne 0 ]; then
exit 1;
fi;
cp -r --remove-destination /run/build/Ryujinx/Ryujinx/bin/Release/net7.0/$RUNTIME/publish/* /app/bin/
mkdir -p /app/lib/ffmpeg
ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so
install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper
sources:
- type: git
url: https://github.com/Ryujinx/Ryujinx.git
commit: 458452279cee03bfe1bbf2c3daf3fc9722b03a74
- type: archive
only-arches:
- x86_64
dest: dotnet-sdk
url: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/7.0.100/dotnet-sdk-7.0.100-linux-x64.tar.gz
sha256: 5d4a58eeca1a4ab095b55e6486b1278147b0ab121ce883b2bcde3d3626c9a81c
x-checker-data:
type: html
url: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/7.0/latest.version
version-pattern: ^([\d\.a-z-]+)$
url-template: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$version/dotnet-sdk-$version-linux-x64.tar.gz
- rd-submodules/ryujinx/nuget_sources.json
- type: file
path: rd-submodules/ryujinx/ryujinx-wrapper
# Ryujinx - END

View file

@ -83,11 +83,6 @@ else
finit # Executing First/Force init
fi
# Check if SD card path has changed from SteamOS update
if [[ ! -d $sd_card && "$(ls -A /run/media/deck/)" ]]; then
configurator_generic_dialog "The ROMs folder was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the "
fi
# Normal Startup
start_retrodeck

View file

@ -23,16 +23,17 @@ source /app/libexec/functions.sh # uncomment for flatpak testing
# - Reset RetroDECK
# - Reset RetroArch
# - Reset Specific Standalone Emulator
# - Reset Yuzu
# - Reset Dolphin
# - Reset PCSX2
# - Reset MelonDS
# - Reset Citra
# - Reset Dolphin
# - Reset Duckstation
# - Reset MelonDS
# - Reset PCSX2
# - Reset PPSSPP
# - Reset Primehack
# - Reset RPCS3
# - Reset Ryujinx
# - Reset XEMU
# - Reset PPSSPP
# - Reset Duckstation
# - Reset Yuzu
# - Reset All Standalone Emulators
# - Reset Tools
# - Reset All
@ -43,7 +44,7 @@ source /app/libexec/functions.sh # uncomment for flatpak testing
configurator_reset_dialog() {
choice=$(zenity --list --title="RetroDECK Configurator Utility - Reset Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Reset RetroArch" "Reset RetroArch to default settings" \
"Reset Specific Standalone" "Reset only one specific standalone emulator to default settings" \
@ -61,7 +62,7 @@ configurator_reset_dialog() {
"Reset Specific Standalone" )
emulator_to_reset=$(zenity --list \
--title "RetroDECK Configurator Utility - Reset Specific Standalone Emulator" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator do you want to reset to default?" \
--hide-header \
--column=emulator \
@ -72,6 +73,7 @@ configurator_reset_dialog() {
"MelonDS" \
"PCSX2" \
"PPSSPP" \
"Primehack" \
"RPCS3" \
"Ryujinx" \
"XEMU" \
@ -114,6 +116,11 @@ configurator_reset_dialog() {
configurator_process_complete_dialog "resetting $emulator_to_reset"
;;
"Primehack" )
primehack_init
configurator_process_complete_dialog "resetting $emulator_to_reset"
;;
"RPCS3" )
rpcs3_init
configurator_process_complete_dialog "resetting $emulator_to_reset"
@ -169,7 +176,7 @@ configurator_reset_dialog() {
configurator_retroachivement_dialog() {
login=$(zenity --forms --title="RetroDECK Configurator Utility - RetroArch RetroAchievements Login" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Enter your RetroAchievements Account details.\n\nBe aware that this tool cannot verify your login details and currently only supports logging in with RetroArch.\nFor registration and more info visit\nhttps://retroachievements.org/\n" \
--separator="=SEP=" \
--add-entry="Username" \
@ -204,7 +211,7 @@ configurator_power_user_changes_dialog() {
if [ $? == 0 ]; then # OK button clicked
emulator=$(zenity --list \
--title "RetroDECK Configurator Utility - Power User Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator do you want to configure?" \
--hide-header \
--column=emulator \
@ -216,6 +223,7 @@ configurator_power_user_changes_dialog() {
"PCSX2-QT" \
"PCSX2-Legacy" \
"PPSSPP" \
"Primehack" \
"RPCS3" \
"Ryujinx" \
"XEMU" \
@ -255,6 +263,10 @@ configurator_power_user_changes_dialog() {
PPSSPPSDL
;;
"Primehack" )
primehack-wrapper
;;
"RPCS3" )
rpcs3
;;
@ -313,7 +325,7 @@ configurator_retroarch_rewind_dialog() {
configurator_retroarch_options_dialog() {
choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroArch Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Change Rewind Setting" "Enable or disable the Rewind function in RetroArch" )
@ -332,7 +344,7 @@ configurator_retroarch_options_dialog() {
configurator_options_dialog() {
choice=$(zenity --list --title="RetroDECK Configurator Utility - Change Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Change RetroArch Settings" "Change settings specific to RetroArch" \
"Power User Changes" "Make changes directly in an emulator" )
@ -403,6 +415,7 @@ configurator_move_dialog() {
if [[ -L "$HOME/retrodeck/roms" ]]; then # Check for ROMs symlink user may have created
unlink "$HOME/retrodeck/roms"
fi
unlink $HOME/retrodeck # Remove symlink for $rdhome
(
dir_prep "$sdcard/retrodeck" "$rdhome"
@ -417,7 +430,7 @@ configurator_move_dialog() {
fi
if [[ ! -L "$HOME/retrodeck" ]]; then # Always link back to original directory
ln -svf "$sdcard/retrodeck" "$HOME/retrodeck"
ln -svf "$sdcard/retrodeck" "$HOME"
fi
rdhome="$sdcard/retrodeck"
@ -452,6 +465,10 @@ configurator_move_dialog() {
if [[ -L $rdhome/roms ]]; then # Check for ROMs symlink user may have created
unlink $rdhome/roms
fi
if [[ -L $rdhome && ! $rdhome == "$HOME/retrodeck" ]]; then # Clean up extraneus symlinks from previous moves
unlink $rdhome
fi
unlink $HOME/retrodeck # Remove symlink for $rdhome if the previous location was not internal
(
dir_prep "$custom_dest/retrodeck" "$rdhome"
@ -461,12 +478,8 @@ configurator_move_dialog() {
--title "RetroDECK Configurator Utility - Move in Progress" \
--text="Moving directory $rdhome to new location of $custom_dest/retrodeck, please wait."
if [[ -L $rdhome && ! $rdhome == "$HOME/retrodeck" ]]; then # Clean up extraneus symlinks from previous moves
unlink $rdhome
fi
if [[ ! -L "$HOME/retrodeck" ]]; then
ln -svf "$custom_dest/retrodeck" "$HOME/retrodeck"
ln -svf "$custom_dest/retrodeck" "$HOME"
fi
rdhome="$custom_dest/retrodeck"
@ -514,7 +527,7 @@ configurator_welcome_dialog() {
setting_value=
choice=$(zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Move Files" "Move files between internal/SD card or to custom locations" \
"Change Options" "Adjust how RetroDECK behaves" \