Merge branch 'feat/pipeline-test' into cooker-0.8.0b

This commit is contained in:
XargonWan 2023-09-29 10:37:55 +02:00
commit 99c26f5780
12 changed files with 178 additions and 1607 deletions

View file

@ -4,6 +4,7 @@ on:
push:
branches:
- cooker*
- feat*
paths:
- '.github/workflows/**'
- 'automation_tools/**'
@ -51,8 +52,8 @@ jobs:
echo "buildid=$result" >> $GITHUB_ENV
echo "VersionID is $result"
- name: Run pre-build automation tasks
run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh"
# - name: Run pre-build automation tasks
# run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh"
- name: "Adding flatpak portal for automated updates (cooker only)"
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh"
@ -63,18 +64,18 @@ jobs:
- name: "[DEBUG] Outputting manifest"
run: cat net.retrodeck.retrodeck.yml
- name: "Build flatpak: download only"
id: "flatpak-download"
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
continue-on-error: true
# - name: "Build flatpak: download only"
# id: "flatpak-download"
# run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
# continue-on-error: true
# Sometimes flatpak download fails, in this case it tries a second time
- name: "Build flatpak: download only (retry)"
if: steps.flatpak-download.outcome == 'failure'
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.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"
- name: Build flatpak
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
# - name: Build flatpak
# run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
- name: Create Artifact for flathub
run: |
@ -84,8 +85,8 @@ jobs:
mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
continue-on-error: true
- name: Create Bundle
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
# - name: Create Bundle
# run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
- name: Set environment variable with current branch name
run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
@ -101,13 +102,27 @@ jobs:
id: commits
continue-on-error: true
- name: Get branch name
id: branch_name
run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's|refs/heads/||')" >> $GITHUB_ENV
# if it's a feature branch it will not marked as "latest" cooker version
- name: "Set makeLatest (cooker only)"
run: |
if [[ "$BRANCH_NAME" == 'feat/'* ]]; then
echo "MAKE_LATEST=false" >> $GITHUB_ENV
else
echo "MAKE_LATEST=true" >> $GITHUB_ENV
fi
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
tag: "${{ env.GITHUB_REF_SLUG }}-${{ env.buildid }}"
tag: "${{env.BRANCH_NAME}}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK/tree/${{env.BRANCH_NAME}}).
## Commits since last release
${{ steps.commits.outputs.commits }}
@ -119,7 +134,7 @@ jobs:
artifacts: "RetroDECK-cooker.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
makeLatest: true
makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK-cooker
continue-on-error: true

5
.gitmodules vendored
View file

@ -3,4 +3,7 @@
url = https://github.com/flathub/org.libretro.RetroArch
[submodule "rd-submodules/shared-modules"]
path = rd-submodules/shared-modules
url = https://github.com/flathub/shared-modules.git
url = https://github.com/flathub/shared-modules.git
[submodule "rd-submodules/ryujinx"]
path = rd-submodules/ryujinx
url = https://github.com/flathub/org.ryujinx.Ryujinx

View file

@ -12,5 +12,6 @@ ppsspp^PPSSPP (Sony PSP Standalone Emulator)
primehack^Primehack (Metroid Prime Standalone Emulator)
psx_ra^Sony Playstation (RetroArch Core)
retroarch^RetroArch (Multi-emulator Frontend)
ryujinx^Ryujinx (Nintendo Switch Standalone Emulator)
snes^Nintendo Super Nintendo
yuzu^Yuzu (Nintendo Switch Standalone Emulator)

View file

@ -1,14 +1,17 @@
{
"version": 42,
"version": 48,
"enable_file_log": true,
"backend_threading": "Auto",
"res_scale": 1,
"res_scale_custom": 1,
"max_anisotropy": -1,
"aspect_ratio": "Fixed16x9",
"anti_aliasing": "None",
"scaling_filter": "Bilinear",
"scaling_filter_level": 80,
"graphics_shaders_dump_path": "",
"logging_enable_debug": false,
"logging_enable_stub": true,
"logging_enable_stub": false,
"logging_enable_info": true,
"logging_enable_warn": true,
"logging_enable_error": true,
@ -21,20 +24,21 @@
"system_region": "Europe",
"system_time_zone": "UTC",
"system_time_offset": 0,
"docked_mode": true,
"docked_mode": false,
"enable_discord_integration": true,
"check_updates_on_start": true,
"show_confirm_exit": true,
"hide_cursor_on_idle": false,
"check_updates_on_start": false,
"show_confirm_exit": false,
"hide_cursor": 2,
"enable_vsync": true,
"enable_shader_cache": true,
"enable_texture_recompression": false,
"enable_macro_hle": true,
"enable_color_space_passthrough": false,
"enable_ptc": true,
"enable_internet_access": false,
"enable_fs_integrity_checks": true,
"fs_global_access_log_mode": 0,
"audio_backend": "SDL2",
"audio_backend": "OpenAl",
"audio_volume": 1,
"memory_manager_mode": "HostMappedUnsafe",
"expand_ram": false,
@ -58,6 +62,21 @@
"game_dirs": [
"RETRODECKHOMEDIR/roms/switch"
],
"shown_file_types": {
"nsp": true,
"pfs0": true,
"xci": true,
"nca": true,
"nro": true,
"nso": true
},
"window_startup": {
"window_size_width": 1280,
"window_size_height": 800,
"window_position_x": 0,
"window_position_y": 0,
"window_maximized": true
},
"language_code": "en_US",
"enable_custom_theme": false,
"custom_theme_path": "",
@ -67,12 +86,12 @@
"grid_size": 2,
"application_sort": 0,
"is_ascending_order": true,
"start_fullscreen": false,
"start_fullscreen": true,
"show_console": true,
"enable_keyboard": false,
"enable_mouse": false,
"hotkeys": {
"toggle_vsync": "Tab",
"toggle_vsync": "F1",
"screenshot": "F8",
"show_ui": "F4",
"pause": "F5",
@ -104,12 +123,12 @@
"deadzone_right": 0,
"range_left": 1,
"range_right": 1,
"trigger_threshold": 0,
"trigger_threshold": 0.5,
"motion": {
"motion_backend": "GamepadDriver",
"sensitivity": 100,
"gyro_deadzone": 1,
"enable_motion": false
"enable_motion": true
},
"rumble": {
"strong_rumble": 1,
@ -133,18 +152,20 @@
"button_zr": "RightTrigger",
"button_sl": "Unbound",
"button_sr": "Unbound",
"button_x": "X",
"button_x": "Y",
"button_b": "A",
"button_y": "Y",
"button_y": "X",
"button_a": "B"
},
"version": 1,
"backend": "GamepadSDL2",
"id": "0-f6790003-28de-0000-ff11-000001000000",
"controller_type": "JoyconPair",
"player_index": "Player1"
"controller_type": "Handheld",
"player_index": "Handheld"
}
],
"graphics_backend": "Vulkan",
"preferred_gpu": "0x1002_0x163F"
}
"preferred_gpu": "0x1002_0x163F",
"multiplayer_lan_interface_id": "0",
"use_hypervisor": true
}

View file

@ -604,21 +604,16 @@
<emulator name="RYUJINX">
<!-- Nintendo Switch emulator Ryujinx -->
<rule type="systempath">
<entry>Ryujinx</entry>
<entry>Ryujinx.Ava</entry>
<entry>Ryujinx.sh</entry>
<entry>org.ryujinx.Ryujinx</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.ryujinx.Ryujinx</entry>
<entry>~/.local/share/flatpak/exports/bin/org.ryujinx.Ryujinx</entry>
<entry>~/Applications/publish/Ryujinx</entry>
<entry>~/.local/share/applications/publish/Ryujinx</entry>
<entry>~/.local/bin/publish/Ryujinx</entry>
<entry>~/bin/publish/Ryujinx</entry>
<entry>~/Applications/publish/Ryujinx.Ava</entry>
<entry>~/.local/share/applications/publish/Ryujinx.Ava</entry>
<entry>~/.local/bin/publish/Ryujinx.Ava</entry>
<entry>~/bin/publish/Ryujinx.Ava</entry>
<entry>~/Applications/publish/Ryujinx.sh</entry>
<entry>~/.local/share/applications/publish/Ryujinx.sh</entry>
<entry>~/.local/bin/publish/Ryujinx.sh</entry>
<entry>~/bin/publish/Ryujinx.sh</entry>
</rule>
</emulator>
<emulator name="SAMEBOY">
@ -858,4 +853,4 @@
<entry>~/bin/ZEsarUX/zesarux</entry>
</rule>
</emulator>
</ruleList>
</ruleList>

View file

@ -1656,7 +1656,7 @@
<path>%ROMPATH%/switch</path>
<extension>.nca .NCA .nro .NRO .nso .NSO .nsp .NSP .xci .XCI</extension>
<command label="Yuzu (Standalone)">%INJECT%=%BASENAME%.esprefix %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

@ -539,32 +539,32 @@ prepare_emulator() {
fi
fi
# if [[ "$emulator" =~ ^(ryujunx|Ryujinx|all)$ ]]; then
# if [[ "$action" == "reset" ]]; then # Run reset-only commands
# echo "------------------------"
# echo "Initializing RYUJINX"
# echo "------------------------"
# if [[ $multi_user_mode == "true" ]]; then
# rm -rf "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
# mkdir -p "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system"
# cp -fv $emuconfigs/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
# sed -i 's#/home/deck/retrodeck#'$rdhome'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json"
# dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "/var/config/Ryujinx"
# else
# # removing config directory to wipe legacy files
# rm -rf /var/config/Ryujinx
# mkdir -p /var/config/Ryujinx/system
# cp -fv $emuconfigs/ryujinx/* /var/config/Ryujinx
# sed -i 's#/home/deck/retrodeck#'$rdhome'#g' "$ryujinxconf"
# fi
# fi
# if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
# dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system"
# fi
# if [[ "$action" == "postmove" ]]; then # Run only post-move commands
# sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf" # This is an unfortunate one-off because set_setting_value does not currently support JSON
# fi
# fi
if [[ "$emulator" =~ ^(ryujunx|Ryujinx|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "------------------------"
echo "Initializing RYUJINX"
echo "------------------------"
if [[ $multi_user_mode == "true" ]]; then
rm -rf "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
mkdir -p "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system"
cp -fv $emuconfigs/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "/var/config/Ryujinx"
else
# removing config directory to wipe legacy files
rm -rf /var/config/Ryujinx
mkdir -p /var/config/Ryujinx/system
cp -fv $emuconfigs/ryujinx/* /var/config/Ryujinx
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' "$ryujinxconf"
fi
fi
if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system"
fi
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf" # This is an unfortunate one-off because set_setting_value does not currently support JSON
fi
fi
if [[ "$emulator" =~ ^(xemu|XEMU|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands

View file

@ -1199,6 +1199,68 @@ modules:
# Cemu - END
# Ryujinx - START
# https://github.com/flathub/org.ryujinx.Ryujinx
- 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.1014
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;" src/Ryujinx.Common/ReleaseInformation.cs
sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" src/Ryujinx.Common/ReleaseInformation.cs
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" src/Ryujinx.Common/ReleaseInformation.cs
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" src/Ryujinx.Common/ReleaseInformation.cs
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" src/Ryujinx.Common/ReleaseInformation.cs
mkdir -p /app/bin
dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded src/Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants="DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR" /p:RuntimeFrameworkVersion=$RUNTIME_FRAMEWORK_VERSION --self-contained --source nuget-sources
if [ $? -ne 0 ]; then
exit 1;
fi;
cp -r --remove-destination /run/build/Ryujinx/src/Ryujinx/bin/Release/net7.0/$RUNTIME/publish/* /app/bin/
chmod +x /app/bin/Ryujinx.sh
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
install -Dm644 distribution/misc/Logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg
sources:
- type: archive
only-arches:
- x86_64
dest: dotnet-sdk
url: https://dotnetcli.azureedge.net/dotnet/Sdk/7.0.401/dotnet-sdk-7.0.401-linux-x64.tar.gz
sha256: 4634fa4da7ae4e3dadb83e320a87fb26f0cb12a7ca02bf9f10e6c3c1c91d645c
x-checker-data:
type: rotating-url
url: https://aka.ms/dotnet/7.0/dotnet-sdk-linux-x64.tar.gz
pattern: https://dotnetcli.azureedge.net/dotnet/Sdk/^([\d\.a-z-]+)$/dotnet-sdk-^([\d\.a-z-]+)$-linux-x64.tar.gz
- rd-submodules/ryujinx/nuget_sources.json
- type: git
url: https://github.com/Ryujinx/Ryujinx.git
commit: 7ccff037e87f82f3461f3e1422235e29800eaa2f
- type: file
path: rd-submodules/ryujinx/ryujinx-wrapper
# Ryujinx - END
# External manifests end
- name: retrodeck

1
rd-submodules/ryujinx Submodule

@ -0,0 +1 @@
Subproject commit ff79306a50b484ce992d02a23e091d79fcde4cac

File diff suppressed because it is too large Load diff

View file

@ -1,7 +0,0 @@
#!/bin/sh
for i in {0..9}; do
test -S $XDG_RUNTIME_DIR/discord-ipc-$i || ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
done
env DOTNET_EnableAlternateStackCheck=1 Ryujinx "$@"

View file

@ -34,6 +34,7 @@ source /app/libexec/global.sh
# - PPSSPP
# - Primehack
# - RPCS3
# - Ryujinx
# - XEMU
# - Yuzu
# - Tools
@ -74,6 +75,7 @@ source /app/libexec/global.sh
# - Reset PPSSPP
# - Reset Primehack
# - Reset RPCS3
# - Reset Ryujinx
# - Reset XEMU
# - Reset Yuzu
# - Reset All Emulators
@ -431,8 +433,9 @@ configurator_open_emulator_dialog() {
"PPSSPP" "Open the PSP emulator PPSSPP" \
"Primehack" "Open the Metroid Prime emulator Primehack" \
"RPCS3" "Open the PS3 emulator RPCS3" \
"Ryujinx" "Open the Switch emulator Ryujinx" \
"XEMU" "Open the Xbox emulator XEMU" \
"Yuzu" "Open the Switch emulator Yuzu" )
"Yuzu" "Open the Switch emulator Yuzu")
case $emulator in
@ -476,6 +479,10 @@ configurator_open_emulator_dialog() {
rpcs3
;;
"Ryujinx" )
ryujinx-wrapper
;;
"XEMU" )
xemu
;;
@ -977,6 +984,7 @@ configurator_reset_dialog() {
"PPSSPP" "Reset the PSP emulator PPSSPP to default settings" \
"Primehack" "Reset the Metroid Prime emulator Primehack to default settings" \
"RPCS3" "Reset the PS3 emulator RPCS3 to default settings" \
"Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \
"XEMU" "Reset the XBOX emulator XEMU to default settings" \
"Yuzu" "Reset the Switch emulator Yuzu to default settings" )