diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml index 7821f03e..f3352edc 100644 --- a/.github/workflows/main-selfhosted.yml +++ b/.github/workflows/main-selfhosted.yml @@ -39,7 +39,7 @@ jobs: git submodule update sudo apt install -y flatpak flatpak-builder p7zip-full flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13 + flatpak install --user -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13 # for main remember to change ${HOME} into ${GITHUB_WORKSPACE} - name: Build flatpak diff --git a/es-configs/es_settings.xml b/es-configs/es_settings.xml index d5469399..08e3cc4c 100644 --- a/es-configs/es_settings.xml +++ b/es-configs/es_settings.xml @@ -27,7 +27,7 @@ - + @@ -42,14 +42,14 @@ - - + + - + @@ -118,4 +118,4 @@ - + \ No newline at end of file diff --git a/es-configs/tools-gamelist.xml b/es-configs/tools-gamelist.xml index 9221a5a3..5d0c4b99 100644 --- a/es-configs/tools-gamelist.xml +++ b/es-configs/tools-gamelist.xml @@ -63,32 +63,4 @@ true true - - ./move-roms.sh - Move roms folder - Move roms folder from internal to external and vice versa. - true - true - - - ./overlays.sh - Overlays configuration - Configure or disable borders and shaders. - true - true - - - ./clean-miximages.sh - Clean MixImages - Clean the MixImages in order to beautify the new theme. This is needed if you got scraped data since v0.4.2 or earlier. - true - true - - - ./configure-emulators.sh - Configure Emulators - Choose an emulator to configure. - true - true - \ No newline at end of file diff --git a/flathub-pr.sh b/flathub-pr.sh index 7699fad2..032dd05a 100755 --- a/flathub-pr.sh +++ b/flathub-pr.sh @@ -11,52 +11,61 @@ git submodule update # these must be included in the exclusion list as they must be redownloaded #sync -rav --progress --exclude={'res/screenshots/','shared-modules/','rd-submodules/retroarch','.git/','docs','retrodeck-flatpak/','retrodeck-flatpak-cooker/','.flatpak-builder/'} ~/RetroDECK/ ~/flathub/ -sync -rav --progress { \ -'overlays', \ -'rd-submodules', \ -'flathub.json', \ -'LICENSE', \ -'net.retrodeck.retrodeck.appdata.xml', \ -'net.retrodeck.retrodeck.desktop', \ -'net.retrodeck.retrodeck.yml', \ -'README.md', \ -} ~/flathub/ - cd ~/flathub -git rm -r * -# NOTE: be careful to remove the REAL (linked) submodules only -rm -rf shared-modules -rm -rf rd-submodules/retroarch +git rm -rf * +git clean -fxd # restroing git index -# rebuilding submodules -git config -f .gitmodules --get-regexp '^submodule\..*\.path$' | - while read path_key path - do - url_key=$(echo $path_key | sed 's/\.path/.url/'); - branch_key=$(echo $path_key | sed 's/\.path/.branch/'); - # If the url_key doesn't yet exist then backup up the existing - # directory if necessary and add the submodule - if [ ! $(git config --get "$url_key") ]; then - if [ -d "$path" ] && [ ! $(git config --get "$url_key") ]; then - mv "$path" "$path""_backup_""$(date +'%Y%m%d%H%M%S')"; - fi; - url=$(git config -f .gitmodules --get "$url_key"); - # If a branch is specified then use that one, otherwise - # default to master - branch=$(git config -f .gitmodules --get "$branch_key"); - if [ ! "$branch" ]; then branch="master"; fi; - git submodule add -f -b "$branch" "$url" "$path"; - fi; - done; +cd ~/RetroDECK +cp -rf \ +'rd-submodules' \ +'flathub.json' \ +'LICENSE' \ +'net.retrodeck.retrodeck.appdata.xml' \ +'net.retrodeck.retrodeck.desktop' \ +'net.retrodeck.retrodeck.yml' \ +'README.md' \ +~/flathub/ +cd ~/flathub -# In case the submodule exists in .git/config but the url is out of date +# #rebuilding submodules +# git config -f .gitmodules --get-regexp '^submodule\..*\.path$' | +# while read path_key path +# do +# url_key=$(echo $path_key | sed 's/\.path/.url/'); +# branch_key=$(echo $path_key | sed 's/\.path/.branch/'); +# # If the url_key doesn't yet exist then backup up the existing +# # directory if necessary and add the submodule +# if [ ! $(git config --get "$url_key") ]; then +# if [ -d "$path" ] && [ ! $(git config --get "$url_key") ]; then +# mv "$path" "$path""_backup_""$(date +'%Y%m%d%H%M%S')"; +# fi; +# url=$(git config -f .gitmodules --get "$url_key"); +# # If a branch is specified then use that one, otherwise +# # default to master +# branch=$(git config -f .gitmodules --get "$branch_key"); +# if [ ! "$branch" ]; then branch="master"; fi; +# git submodule add -f -b "$branch" "$url" "$path"; +# fi; +# done; -git submodule sync; +# # In case the submodule exists in .git/config but the url is out of date +# git submodule sync -# Now actually pull all the modules. I used to use this... -git submodule foreach --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'; +# # Now actually pull all the modules. I used to use this... +# git submodule foreach --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'; -git submodule update +rm -rf .git/modules/* +# Adding the real submodules, please update this every time a submodule is added +git rm -rf shared-modules +git submodule add https://github.com/flathub/shared-modules.git shared-modules + +git rm -rf rd-submodules/retroarch +git submodule add https://github.com/flathub/org.libretro.RetroArch.git rd-submodules/retroarch + +# unbinds all submodules +git submodule deinit -f . +# checkout again +git submodule update --init --recursive git add * git commit -m "Updating flathub" git push origin RetroDECK \ No newline at end of file diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index 9dc3596c..bca1fc9a 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -14,19 +14,19 @@ - https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true + https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true - https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen02.png?raw=true + https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen02.png?raw=true - https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen03.png?raw=true + https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen03.png?raw=true - https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen04.png?raw=true + https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen04.png?raw=true - https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.png?raw=true + https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.png?raw=true @@ -36,11 +36,45 @@

Powered by EmulationStation Desktop Edition, which uses RetroArch and other standalone emulators to allow you to import and play your favorite retro (and even not-so-retro) games in a tidy environment without flooding your Steam library. No other software is needed as everything it's already included!

+

+ NOTE: Albeit RetroDECK could possibily work on every distro, it's supported only on Steam Deck.

GPL-3.0 CC0-1.0 + + https://github.com/XargonWan/RetroDECK/releases/tag/0.4.2b + +

Emulators:

+
    +
  • Updated all the emulators at the latest available version.
  • +
  • DOLPHIN (SA): Fixed a bug where Dolphin couldn't be properly configured. If it's still misconfigured please run `flatpak run net.retrodeck.retrodeck --reset-sa` in order to reset all the standalone emulators, including Dolphin.
  • +
  • CITRA (SA): Reconfigured controls and hotkeys.
  • +
  • MELONDS (SA): Reconfigured controls.
  • +
  • GAMBATTE (LIBRETRO): Added GB colorization.
  • +
  • RETROARCH (LIBRETRO): Tweaked some configs and fixed some overlapping hotkeys (FPS was same as Show Menu action).
  • +
+ +

Backend:

+
    +
  • Removed some broken tools that will be reintroduced once fixed, including the roms moving tool.
  • +
  • Updated ES-DE configs (es_find_rules, es_settings, es_systems).
  • +
  • Manifest trimmend and general code cleanup.
  • +
+ +

Known Issues:

+
    +
  • PCSX2: due to its limitation, the standalone PCSX2 doesn't have any way to set the hotkeys, so no save and load state, no quit button. In order to quit press: STEAM -> PCSX2 -> (X) CLOSE WINDOW, be aware that the state is not automatically saved
  • +
  • Due to a Steam limitation, external controllers and keyboard seems not to be working, expecially in the desktop mode
  • +
+ +

IMPORTANT NOTE: + At the moment the emulator configs are reset during every update, this was made because every version they may bring new configurations, please back them up if you did some manual configs. +

+
+
+ https://github.com/XargonWan/RetroDECK/releases/tag/0.4.1b @@ -175,7 +209,7 @@
  • Tweaked RetroArch configs
  • Added tool for relocating ROMs location from/to internal to/from external
  • Added PCSX2 and Yuzu emulators (but not yet integrated in ES-DE)
  • -
  • Created cooker channel, more info in Discord and on https://github.com/XargonWan/RetroDECK-cooker
  • +
  • Created cooker channel, more info in Discord and on RetroDECK-cooker on GitHub
  • Cooker will auto build when a change is pushed/PRed
  • Same as above with main
  • @@ -211,4 +245,4 @@
    - + \ No newline at end of file diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 8d5ebd5c..4dca818a 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -79,7 +79,9 @@ modules: VERSION="cooker" if [[ $VERSION == "cooker" ]]; then - VERSION=$(git describe --tags | tr - .) + # Disabled until I figure it out + # VERSION=$(git describe --tags | tr - .) + VERSION="cooker-"$(date +%d%m%y.%H%M) fi echo $VERSION >> ${FLATPAK_DEST}/retrodeck/version cat ${FLATPAK_DEST}/retrodeck/version @@ -200,7 +202,7 @@ modules: sources: - type: git url: https://gitlab.com/es-de/emulationstation-de - branch: 8b0a5c63367e46b95f124f5aba70abcaa3ff888a + branch: 5a76fef25ffc659f098ee65215281c51a63c3198 - type: shell commands: - sed -i 's/QUIT EMULATIONSTATION/QUIT RETRODECK/g' es-app/src/guis/GuiMenu.cpp @@ -622,6 +624,63 @@ modules: url: https://github.com/PCSX2/pcsx2.git tag: v1.7.2889 commit: a6649b2d6b558806fbe7cbaf6296014e3c5c192e + # PCSX2 Flathub Workaround - START + # This workaround disables the PCSX2 libraries (disable-submodules: true) and install them separately + # This is only to make it buildable by the flathub builder as normaly it seems not to be needed + disable-submodules: true + - type: git + dest: "3rdparty/xz/xz" + url: https://github.com/PCSX2/xz.git + commit: 3d566cd519017eee1a400e7961ff14058dfaf33c + - type: git + dest: "3rdparty/gtest" + url: https://github.com/google/googletest.git + commit: e2239ee6043f73722e7aa812a459f54a28552929 + - type: git + dest: "3rdparty/fmt/fmt" + url: https://github.com/fmtlib/fmt.git + commit: b6f4ceaed0a0a24ccf575fab6c56dd50ccf6f1a9 + - type: git + dest: "3rdparty/libchdr/libchdr" + url: https://github.com/rtissera/libchdr.git + commit: 5de1a59019815ccdbba0fe07c71b31406d023248 + - type: git + dest: "3rdparty/wil" + url: https://github.com/microsoft/wil.git + commit: 3018875eaa4f8e3d86cf2da97fd577bae59f3aec + - type: git + dest: "3rdparty/cubeb/cubeb" + url: https://github.com/mozilla/cubeb.git + commit: 773f16b7ea308392c05be3e290163d1f636e6024 + - type: git + dest: "3rdparty/rapidyaml/rapidyaml" + url: https://github.com/biojppm/rapidyaml.git + commit: 213b201d264139cd1b887790197e08850af628e3 + - type: git + dest: "3rdparty/imgui/imgui" + url: https://github.com/ocornut/imgui.git + commit: 60bea052a92cbb4a93b221002fdf04f0da3698e1 + - type: git + dest: "3rdparty/glslang/glslang" + url: https://github.com/KhronosGroup/glslang.git + commit: c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5 + - type: git + dest: "3rdparty/vulkan-headers" + url: https://github.com/KhronosGroup/Vulkan-Headers.git + commit: 52a76fd0a693708eb8c25bd0ab7a1008091f64d4 + - type: git + dest: "3rdparty/sdl2/SDL" + url: https://github.com/libsdl-org/SDL.git + commit: 53dea9830964eee8b5c2a7ee0a65d6e268dc78a1 + - type: git + dest: "3rdparty/libzip/libzip" + url: https://github.com/nih-at/libzip.git + commit: bdc03ab23b703fcc516436d6ebcbfb6ac4484033 + - type: git + dest: "3rdparty/zstd/zstd" + url: https://github.com/facebook/zstd.git + commit: e47e674cd09583ff0503f0f6defd6d23d8b718d3 + # PCSX2 Flathub Workaround - END # PCSX2 - END @@ -1011,7 +1070,65 @@ modules: x-checker-data: type: git tag-pattern: "^v([\\d.]+)$" - + # PPSSPP Flathub Workaround - START + # This workaround disables the PPSSPP libraries (disable-submodules: true) and install them separately + # This is only to make it buildable by the flathub builder as normaly it seems not to be needed + disable-submodules: true + - type: git + dest: SDL/macOS + commit: f19a1d54b8a5af6cc378ea307e0ec676922eb4cc + url: https://github.com/hrydgard/ppsspp-mac-sdl + - type: git + dest: assets/debugger + commit: 36ad6b19b22de2075a01a4f0c765e3ef514dc38f + url: https://github.com/unknownbrackets/ppsspp-debugger.git + - type: git + dest: dx9sdk + commit: 7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93 + url: https://github.com/hrydgard/minidx9.git + - type: git + dest: ext/SPIRV-Cross + commit: 9acb9ec31f5a8ef80ea6b994bb77be787b08d3d1 + url: https://github.com/KhronosGroup/SPIRV-Cross.git + - type: git + dest: ext/armips + commit: 7885552b208493a6a0f21663770c446c3ba65576 + url: https://github.com/Kingcom/armips.git + - type: git + dest: ext/discord-rpc + commit: 963aa9f3e5ce81a4682c6ca3d136cddda614db33 + url: https://github.com/discordapp/discord-rpc.git + - type: git + dest: ext/glslang + commit: dc11adde23c455a24e13dd54de9b4ede8bdd7db8 + url: https://github.com/hrydgard/glslang.git + - type: git + dest: ext/miniupnp + commit: 3a87be33e797ba947b2b2a5f8d087f6c3ff4d93e + url: https://github.com/hrydgard/miniupnp.git + - type: git + dest: ext/native/tools/prebuilt + commit: cbea79dc8fef4d9210e2bac7e7b9b5ff3388197a + url: https://github.com/hrydgard/ppsspp-freetype.git + - type: git + dest: ext/rapidjson + commit: 73063f5002612c6bf64fe24f851cd5cc0d83eef9 + disable-submodules: true + url: https://github.com/Tencent/rapidjson.git + - type: git + dest: ext/zstd + commit: a488ba114ec17ea1054b9057c26a046fc122b3b6 + url: https://github.com/facebook/zstd.git + - type: git + dest: ffmpeg + commit: 3ad7ddb9eb2af898dce8c4b5e9a28b77b3f7ddd7 + url: https://github.com/hrydgard/ppsspp-ffmpeg.git + - type: git + dest: pspautotests + commit: 682a4303aba63a50c91ae0fa6928c9dac8ca9b92 + url: https://github.com/hrydgard/pspautotests.git + # PPSSPP Flathub Workaround - END + # PPSSPP - END # External manifests end @@ -1048,7 +1165,7 @@ modules: # TODO: group the configs per-emu and optimize the following cps, like already done with Dolphin. Please not that some files may be renamed, check retrodeck.sh to know how (and fix it after the edit) # Configuring emulators: - - mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs/ + - mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs/Dolphin # RetroArch - cp emu-configs/retroarch* ${FLATPAK_DEST}/retrodeck/emu-configs/ # Dolphin @@ -1067,7 +1184,7 @@ modules: - cp emu-configs/config.yml ${FLATPAK_DEST}/retrodeck/emu-configs/ # Overlays - - cp -r overlays ${FLATPAK_DEST}/retrodeck/overlays + #- cp -r overlays ${FLATPAK_DEST}/retrodeck/overlays Disabled in 0.4.2b as it will be introduced in 0.5.0b # Placing appdata - mkdir -p ${FLATPAK_DEST}/share/appdata @@ -1076,4 +1193,4 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK.git - branch: cooker \ No newline at end of file + branch: main \ No newline at end of file diff --git a/retrodeck.sh b/retrodeck.sh index bd22bd7b..7089303b 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -16,7 +16,7 @@ dir_prep() { real="$1" symlink="$2" - echo -e "\nDIR PREP: Moving $symlink in $real" #DEBUG + echo -e "\n[DIR PREP]\nMoving $symlink in $real" #DEBUG # if the dest dir exists we want to backup it if [ -d "$symlink" ]; @@ -46,16 +46,7 @@ dir_prep() { rm -rf "$symlink.old" fi - #DEBUG - previous_dir=$PWD - cd $real - cd .. - echo "We are in $PWD" #DEBUG - ls -ln - cd $previous_dir - #DEBUG - - echo $symlink is now $real + echo -e "$symlink is now $real\n" } cfg_init() { @@ -89,9 +80,14 @@ tools_init() { standalones_init() { # This script is configuring the standalone emulators with the default files present in emuconfigs folder + echo "----------------------" echo "Initializing standalone emulators" + echo "----------------------" # Yuzu + echo "----------------------" + echo "Initializing YUZU" + echo "----------------------" # removing dead symlinks as they were present in a past version if [ -d $rdhome/bios/switch ]; then find $rdhome/bios/switch -xtype l -exec rm {} \; @@ -102,34 +98,46 @@ standalones_init() { dir_prep "$rdhome/bios/switch/registered" "/var/data/yuzu/nand/system/Contents/registered" # configuring Yuzu mkdir -pv /var/config/yuzu/ - cp -fv $emuconfigs/yuzu-qt-config.ini /var/config/yuzu/qt-config.ini + cp -fvr $emuconfigs/yuzu-qt-config.ini /var/config/yuzu/qt-config.ini sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini dir_prep "$rdhome/screenshots" "/var/data/yuzu/screenshots" # Dolphin + echo "----------------------" + echo "Initializing DOLPHIN" + echo "----------------------" mkdir -pv /var/config/dolphin-emu/ - cp -fv $emuconfigs/Dolphin/* /var/config/dolphin-emu/ + cp -fvr "$emuconfigs/Dolphin/"* /var/config/dolphin-emu/ dir_prep "$rdhome/saves" "/var/data/dolphin-emu/GBA/Saves" - dir_prep "$rdhome/saves" "/var/data/dolphin-emu/Wii" + dir_prep "$rdhome/saves" "/var/data/dolphin-emu/Wii" # pcsx2 + echo "----------------------" + echo "Initializing PCSX2" + echo "----------------------" mkdir -pv /var/config/PCSX2/inis/ - cp -fv $emuconfigs/PCSX2_ui.ini /var/config/PCSX2/inis/ + cp -fvr $emuconfigs/PCSX2_ui.ini /var/config/PCSX2/inis/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini - cp -fv $emuconfigs/GS.ini /var/config/PCSX2/inis/ - cp -fv $emuconfigs/PCSX2_vm.ini /var/config/PCSX2/inis/ + cp -fvr $emuconfigs/GS.ini /var/config/PCSX2/inis/ + cp -fvr $emuconfigs/PCSX2_vm.ini /var/config/PCSX2/inis/ dir_prep "$rdhome/states" "/var/config/PCSX2/sstates" dir_prep "$rdhome/screenshots" "/var/config/PCSX2/snaps" dir_prep "$rdhome/.logs" "/var/config/PCSX2/logs" # MelonDS + echo "----------------------" + echo "Initializing MELONDS" + echo "----------------------" mkdir -pv /var/config/melonDS/ dir_prep "$rdhome/bios" "/var/config/melonDS/bios" - cp -fv $emuconfigs/melonDS.ini /var/config/melonDS/ + cp -fvr $emuconfigs/melonDS.ini /var/config/melonDS/ # Replace ~/retrodeck with $rdhome as ~ cannot be understood by MelonDS sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/melonDS/melonDS.ini # CITRA + echo "----------------------" + echo "Initializing CITRA" + echo "----------------------" mkdir -pv /var/config/citra-emu/ cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini @@ -138,8 +146,11 @@ standalones_init() { #sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini # RPCS3 + echo "----------------------" + echo "Initializing RPCS3" + echo "----------------------" mkdir -pv /var/config/rpcs3/ - cp -fv $emuconfigs/config.yml /var/config/rpcs3/ + cp -fvr $emuconfigs/config.yml /var/config/rpcs3/ # PICO-8 # Moved PICO-8 stuff in the finit as only it knows here roms folders is