diff --git a/.gitmodules b/.gitmodules index 9d6f4fb6..03419e80 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ -[submodule "shared-modules"] - path = shared-modules - url = https://github.com/flathub/shared-modules.git [submodule "rd-submodules/retroarch"] path = rd-submodules/retroarch - url = https://github.com/flathub/org.libretro.RetroArch.git + 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 diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index 3acbbfe4..63acdcc9 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -1037,16 +1037,14 @@ pcfx - pico8 - PICO-8 Fantasy Console - Lexaloffle - 2015 - console - %ROMPATH%/pico8 - .p8 .P8 .png .PNG - %EMULATOR_PICO-8% -desktop ~/retrodeck/screenshots -windowed 0 -root_path %ROMPATH%/pico8 -run %ROM% - pico8 - pico8 + pico8 + PICO-8 Fantasy Console + %ROMPATH%/pico8 + .p8 .P8 .png .PNG + %EMULATOR_PICO-8% -desktop_path ~/retrodeck/screenshots -root_path %GAMEDIR% -run %ROM% + %EMULATOR_PICO-8% -desktop_path ~/retrodeck/screenshots -root_path %GAMEDIR% -splore + pico8 + pico8 pokemini diff --git a/flathub-pull.sh b/flathub-pull.sh deleted file mode 100755 index 6374cc0c..00000000 --- a/flathub-pull.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -mkdir backup -mv net.retrodeck.retrodeck.yml backup -mv net.retrodeck.retrodeck.appdata.xml backup -wget https://raw.githubusercontent.com/flathub/net.retrodeck.retrodeck/master/net.retrodeck.retrodeck.yml -wget https://raw.githubusercontent.com/flathub/net.retrodeck.retrodeck/master/net.retrodeck.retrodeck.appdata.xml -git add net.retrodeck.retrodeck.yml -git add net.retrodeck.retrodeck.appdata.xml -git commit -m "Pulled from flathub" \ No newline at end of file diff --git a/flathub-push.sh b/flathub-push.sh deleted file mode 100755 index f417c6b6..00000000 --- a/flathub-push.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -# EDITABLES: -#rd_branch="main" -rd_branch="cooker" -#gits_folder=~/gits -gits_folder="/home/public-folder/gits" # without last / - -# NON-EDITABLES -branch="$rd_branch-"$(date +%d%m%y.%H%M) - -cd $gits_folder -rm -rf flathub -git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub -cd $gits_folder/RetroDECK -git checkout $rd_branch -git submodule init -git submodule update -# NOTE: the only linked submodules are: rd-submodules/retroarch -# 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/ - -cd $gits_folder/flathub -git checkout -b $branch -git rm -rf * -git clean -fxd # restroing git index - -# Copying only a few files as the others are cloned by git in retrodeck.sh -cd $gits_folder/RetroDECK -cp -rf \ -'rd-submodules' \ -'flathub.json' \ -'LICENSE' \ -'net.retrodeck.retrodeck.appdata.xml' \ -'net.retrodeck.retrodeck.desktop' \ -'net.retrodeck.retrodeck.yml' \ -'README.md' \ -$gits_folder/flathub/ -cd $gits_folder/flathub - -# #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; - -# # 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)'; - -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 "Updated flathub/net.retrodeck.retrodeck from RetroDECK/$rd_branch" -git push origin $branch \ No newline at end of file diff --git a/force-update-submodules.sh b/force-update-submodules.sh new file mode 100644 index 00000000..57d3df5f --- /dev/null +++ b/force-update-submodules.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +git submodule deinit --all +rm rd-submodules/retroarch +git rm -rf --cached rd-submodules/retroarch +rm -rf .git/modules/rd-submodules/retroarch +rm -rf shared-modules +git rm -rf --cached shared-modules +rm -rf .git/modules/shared-modules + +git submodule init +git submodule add https://github.com/flathub/shared-modules.git +git submodule add https://github.com/flathub/org.libretro.RetroArch rd-submodules/retroarch + +git submodule update --remote --merge --recursive \ No newline at end of file diff --git a/functions.sh b/functions.sh index 6cd4df46..147308bf 100644 --- a/functions.sh +++ b/functions.sh @@ -1319,10 +1319,8 @@ finit() { mkdir -pv $saves_folder mkdir -pv $states_folder mkdir -pv $rdhome/screenshots - mkdir -pv $rdhome/bios/pico8 - mkdir -pv $logs_folder - mkdir -pv $mods_folder - mkdir -pv $texture_packs_folder + mkdir -pv $rdhome/.logs + # XMLSTARLET HERE cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml @@ -1331,7 +1329,9 @@ finit() { dir_prep "$themes_folder" "/var/config/emulationstation/.emulationstation/themes" # PICO-8 - dir_prep "$roms_folder/pico8" "$rdhome/bios/pico8/bbs/carts" #this is the folder where pico-8 is saving the carts + dir_prep "$bios_folder/pico-8" "~/.lexaloffle/pico-8" # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed + dir_prep "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway) + dir_prep "$bios_folder/pico-8/cdata" "$saves_folder/pico-8" # PICO-8 saves folder ( ra_init diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index 8fca452a..7fda3cbb 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -69,25 +69,25 @@ - + https://github.com/XargonWan/RetroDECK/releases/tag/0.6.2b
    -
  • Implemented proper Primehack preconfiguration / purge stale configs
  • -
  • Added Xbox and Nintendo-layout controller profiles to Primehack
  • -
  • Stop resetting all configs after update (see post_update.sh)
  • -
  • Add CHD compression to CLI and Configurator
  • -
  • Add common BIOS file check tool to Configurator
  • -
  • Reworked CLI arguments
  • -
  • Updated shipped Duckstation config
  • -
  • Removed deprecated/disabled tool files
  • -
  • Made emulator resets more robust by purging config folders to clear legacy files
  • -
  • Add troubleshooting tool for checking structure of multi-file games in Configurator
  • -
  • Updated patching engine to accommodate "batch patches"
  • -
  • Implemented expanding retrodeck.cfg on update
  • -
  • Reworked Configurator menu flow
  • -
  • Set power_user variable so Configurator warning is only shown once
  • -
  • Implemented a basic framework for easter egg splash screens
  • +
  • Persistent configurations when updating RetroDECK, this means your custom configurations should be saved across future versions. (We also laid groundwork for dynamic persistent configurations, more on that in a future update. This is the reason why it has taken quite long to fix this).
  • +
  • Added Primehack controller profiles for both Xbox and Nintendo button layouts
  • +
  • Added a warning when running RetroDECK in desktop mode, as not all controls will work properly.
  • +
  • Added CLI for CHD compression (chdman) of single games
  • +
  • Reworked CLI commands and added safety y/n confirmations for the reset arguments.
  • +
  • New structure for more easy access to various tools
  • +
  • The power user prompt only needs to be answered once
  • +
  • Added tool to do CHD compression (chdman) of single games (multi-game batch compression coming in a future update)
  • +
  • Added tool to check for common BIOS files
  • +
  • Added tool to check for common multi-file game structure issues
  • +
  • Fixed Primehack initial configuration as it was broken (will automatically reset the emulator just this once)
  • +
  • Fixed Duckstation initial configuration as it was broken (will require user-performed reset just this once)
  • +
  • Fixed a bug that made the Dolphin RetroArch core not working properly (the standalone version of Dolphin always worked and is the default)
  • +
  • Various backend fixes
  • +
  • Updated all Emulators, RetroArch and libreretro cores. (PLEASE NOTE! ES-DE was not updated to version 2.0, this will be done in the next version of RetroDECK as we need more time to work on the new theme format).
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index ec47ff41..0dbeeb51 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -58,7 +58,7 @@ cleanup-commands: modules: - - shared-modules/libusb/libusb.json + - rd-submodules/shared-modules/libusb/libusb.json # This module is used to define the RetroDECK version # If the version is set as cooker it will automatically generate the version tag based on the date @@ -311,7 +311,7 @@ modules: sources: - type: git url: https://github.com/libretro/RetroArch.git - commit: ad89b0c655fc1d25adfcdf40268e95c5d0391111 + commit: 938ab716bd290b0f469068500966a834b5782929 - type: file path: rd-submodules/retroarch/retroarch.cfg post-install: @@ -328,20 +328,20 @@ modules: modules: - rd-submodules/retroarch/modules/libpng/libpng-1.6.35.json - rd-submodules/retroarch/modules/nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013.json - - shared-modules/SDL/SDL-1.2.15.json - - shared-modules/SDL/SDL_image-1.2.12.json - - shared-modules/SDL/SDL_mixer-1.2.12.json - - shared-modules/SDL/SDL_net-1.2.8.json - - shared-modules/SDL/SDL_ttf-2.0.11.json - #- shared-modules/libusb/libusb.json moved outside + - rd-submodules/shared-modules/SDL/SDL-1.2.15.json + - rd-submodules/shared-modules/SDL/SDL_image-1.2.12.json + - rd-submodules/shared-modules/SDL/SDL_mixer-1.2.12.json + - rd-submodules/shared-modules/SDL/SDL_net-1.2.8.json + - rd-submodules/shared-modules/SDL/SDL_ttf-2.0.11.json + #- rd-submodules/shared-modules/libusb/libusb.json moved outside # certificate glu issue - #- shared-modules/gudev/gudev.json + #- rd-submodules/shared-modules/gudev/gudev.json - rd-submodules/retroarch/modules/libbz2/libbz2-1.0.8.json - rd-submodules/retroarch/modules/xrandr/xrandr-1.5.1.json - rd-submodules/retroarch/modules/libaio/libaio-0.3.112.json # certificate issue, check libglu module for more info - #- shared-modules/glu/glu-9.json - - shared-modules/libdecor/libdecor-0.1.1.json + #- rd-submodules/shared-modules/glu/glu-9.json + - rd-submodules/shared-modules/libdecor/libdecor-0.1.1.json - name: retroarch-filers-video subdir: gfx/video_filters make-install-args: @@ -349,7 +349,7 @@ modules: sources: - type: git url: https://github.com/libretro/RetroArch.git - commit: ad89b0c655fc1d25adfcdf40268e95c5d0391111 + commit: 938ab716bd290b0f469068500966a834b5782929 - name: retroarch-filers-audio subdir: libretro-common/audio/dsp_filters make-install-args: @@ -357,7 +357,7 @@ modules: sources: - type: git url: https://github.com/libretro/RetroArch.git - commit: ad89b0c655fc1d25adfcdf40268e95c5d0391111 + commit: 938ab716bd290b0f469068500966a834b5782929 - name: retroarch-assets make-install-args: - PREFIX=${FLATPAK_DEST} @@ -371,21 +371,21 @@ modules: sources: - type: git url: https://github.com/libretro/libretro-database.git - commit: 183babc61f6a7aa6077e663bb2a8bb91d11d6874 + commit: 6a8d65d2bc1b7ffa7accb882e80c0a77b931bcc6 - name: libretro-core-info make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/libretro-core-info.git - commit: 3d9b20d3711c8c2827246e3b48a503973192f080 + commit: eb7e3ff064c3fdaae46b89c9da9f49e15a8e9c2b - name: retroarch-joypad-autoconfig make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/retroarch-joypad-autoconfig.git - commit: dc625d5623a0e5c6999f372c99548676f9851691 + commit: 8ec6304a14bd37cf927ebe7555a274ac4fefeb69 - name: common-shaders make-install-args: - PREFIX=${FLATPAK_DEST} @@ -399,14 +399,14 @@ modules: sources: - type: git url: https://github.com/libretro/slang-shaders.git - commit: feb1fcaee0fe5294b9885fdcc87cb16f0bac06be + commit: 8b35477a934739b1db193f22e7057754e7a87381 - name: glsl-shaders make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/glsl-shaders.git - commit: 66cd3917c3cde8c96b5492bca00c95e3e17b44b9 + commit: 799aa9e4d567db0874111d2aed9c9b9058a19641 - name: common-overlays make-install-args: - PREFIX=${FLATPAK_DEST} @@ -425,8 +425,8 @@ modules: - mv ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ sources: - type: archive - url: https://buildbot.libretro.com/stable/1.14.0/linux/x86_64/RetroArch_cores.7z - sha256: 59369f1ef18cdc302c38bcb270d71989cef665d71f3156a1f07486122713d030 + url: https://buildbot.libretro.com/stable/1.15.0/linux/x86_64/RetroArch_cores.7z + sha256: 1fdec5c2cbabea4f194ede4a1fb0dd1d17e14e64bf7ef705e3ad763592411073 # PPSSPP - START # https://github.com/flathub/org.ppsspp.PPSSPP @@ -495,14 +495,16 @@ 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-1343/yuzu-mainline-20230217-b795f3bc1.AppImage - sha256: 47eb1ec3e4d7368d0eef832a7b9c378fd6a0fbaebfd7af7768d6edaf8b35f8a5 + url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1369/yuzu-mainline-20230312-54c359d1e.AppImage + sha256: 219874f72ea09856c8f1349d7bf744ecbd2823a469bd29f036b386924f5c5a97 # Yuzu - END # CITRA - START # https://github.com/flathub/org.citra_emu.citra + - rd-submodules/shared-modules/SDL2/SDL2-with-libdecor.json + - name: citra buildsystem: cmake-ninja builddir: true @@ -527,8 +529,8 @@ modules: sources: - type: archive url: >- - https://github.com/citra-emu/citra-nightly/releases/download/nightly-1844/citra-unified-source-20230217-cda3584.tar.xz - sha256: 9e0c5fcf503f5d0dbe95cc6de68c4b3c9148c07e2df892b85cc99ada8963c14e + https://github.com/citra-emu/citra-nightly/releases/download/nightly-1854/citra-unified-source-20230312-2cbf6fb.tar.xz + sha256: 018cb7dce3aa29a548a6e4cbad65d97babd98d2cdd1a4848a7c95c117f92fdf5 x-checker-data: type: json url: https://api.github.com/repos/citra-emu/citra-nightly/releases/latest @@ -557,8 +559,8 @@ modules: - ln -s "${FLATPAK_DEST}/pcsx2-qt/usr/bin/pcsx2-qt" "${FLATPAK_DEST}/bin/pcsx2-qt" sources: - type: file - url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.4108/pcsx2-v1.7.4108-linux-AppImage-64bit-Qt.AppImage - sha256: 31dab12f7f7d0c4a7122011c0f86f5acfe9a9018cece66b4333d230154c8b910 + url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.4225/pcsx2-v1.7.4225-linux-AppImage-64bit-Qt.AppImage + sha256: e8ed326851941b212193c2bd193ca87efdcc70c18971f45749273a32893fec68 # PCSX2 - END @@ -780,8 +782,8 @@ modules: # https://github.com/flathub/net.rpcs3.RPCS3 # glu issue, check libglu module for more info - #- shared-modules/glu/glu-9.json - - shared-modules/glew/glew.json + #- rd-submodules/shared-modules/glu/glu-9.json + - rd-submodules/shared-modules/glew/glew.json - name: rpcs3 buildsystem: cmake-ninja @@ -822,7 +824,7 @@ modules: sources: - type: git url: https://github.com/RPCS3/rpcs3.git - commit: 6b556a5206fa68e4801fca124bfc3874440e4e17 + commit: cf5346c263111760752cabb94767c07c501207c4 - type: git url: https://github.com/intel/ittapi.git commit: 2de8a23f6130036dcd4d1b78d05df3187951d298 @@ -854,8 +856,8 @@ modules: - install -D primehack-wrapper /app/bin/primehack-wrapper sources: - type: git - url: https://github.com/TheDrifter363/primehack.git - commit: 6295c695307a67f11ee202b05cbdd7b5c1edae5c + url: https://github.com/shiiion/dolphin.git + commit: efb99ebfd20b1bc16ea3e51fec409c91e354d8c2 # detects whether dolphin is running in a flatpak sandbox # and makes it use xdg directories if it is. # prevents dolphin from attempting to write conf files diff --git a/post_update.sh b/post_update.sh index 0d9948f6..038ae2c3 100644 --- a/post_update.sh +++ b/post_update.sh @@ -18,12 +18,18 @@ post_update() { # In version 0.6.2b, the following changes were made that required config file updates/reset: # - Primehack preconfiguration completely redone. "Stop emulation" hotkey set to Start+Select, Xbox and Nintendo keymap profiles were created, Xbox set as default. # - Duckstation save and state locations were dir_prep'd to the rdhome/save and /state folders, which was not previously done. Much safer now! - + # - Fix PICO-8 folder structure. ROM and save folders are now sane and binary files will go into ~/retrodeck/bios/pico-8/ + rm -rf /var/config/primehack # Purge old Primehack config files. Saves are safe as they are linked into /var/data/primehack. primehack_init dir_prep "$rdhome/saves/duckstation" "/var/data/duckstation/memcards" dir_prep "$rdhome/states/duckstation" "/var/data/duckstation/savestates" + + mv "$bios_folder/pico8" "$bios_folder/pico8_olddata" # Move legacy (and incorrect / non-functional ) PICO-8 location for future cleanup / less confusion + dir_prep "$bios_folder/pico-8" "~/.lexaloffle/pico-8" # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed + dir_prep "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway) + dir_prep "$bios_folder/pico-8/cdata" "$saves_folder/pico-8" # PICO-8 saves folder fi if [[ $prev_version -le "070" ]]; then # In version 0.7.0b, the following changes were made that required config file updates/reset or other changes to the filesystem: diff --git a/rd-submodules/SDL2-no-libdecor.json b/rd-submodules/SDL2-no-libdecor.json new file mode 100644 index 00000000..f101d4b0 --- /dev/null +++ b/rd-submodules/SDL2-no-libdecor.json @@ -0,0 +1,22 @@ +{ + "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"] +} diff --git a/shared-modules b/rd-submodules/shared-modules similarity index 100% rename from shared-modules rename to rd-submodules/shared-modules