diff --git a/es-configs/es_settings.xml b/es-configs/es_settings.xml index 08e3cc4c..bf0cf3c6 100644 --- a/es-configs/es_settings.xml +++ b/es-configs/es_settings.xml @@ -42,17 +42,17 @@ - - - + + + - + - - + + diff --git a/es-configs/tools-gamelist.xml b/es-configs/tools-gamelist.xml index 5d0c4b99..b1341252 100644 --- a/es-configs/tools-gamelist.xml +++ b/es-configs/tools-gamelist.xml @@ -63,4 +63,32 @@ 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 + + + ./theme-fix.sh + Theme fix + Clean some of the scraped data 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/global.sh b/global.sh new file mode 100755 index 00000000..280344a8 --- /dev/null +++ b/global.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# This file is containing some global function needed for the script such as the config file tools + +rd_conf="/app/retrodeck/retrodeck.cfg" + +conf_init() { + # initializing and reading the retrodeck config file + if [ ! -f $rd_conf ] + then # I have to initialize the variables as they cannot be red from an empty config file + touch $rd_conf + + # Variables to manage: adding a variable here means adding it to conf_write() + version="$(cat /app/retrodeck/version)" # version info taken from the version file + rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodeck + roms_folder="$rdhome/roms" # default roms folder location (intenral) + + else # i just read the variables + source $rd_conf + fi +} + +conf_write() { + # writes the variables in the retrodeck config file + + # TODO: this can be optimized with a while and a list of variables to check + if [ ! -z "$version" ] then #if the variable is not null then I update it + sed -i "s%version=.*%version=$version%" $rd_conf + fi + + if [ ! -z "$rdhome" ] then + sed -i "s%rdhome=.*%rdhome=$rdhome%" $rd_conf + fi + + if [ ! -z "$roms_folder" ] then + sed -i "s%rdhome=.*%rdhome=$roms_folder" $rd_conf + fi + +} \ No newline at end of file diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index 3bb17de5..0a7eb616 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -56,9 +56,10 @@ https://github.com/XargonWan/RetroDECK/releases/tag/0.5.5b
    -
  • New Theme!
  • +
  • Theme revamp!
  • Updated RetroArch and its cores from 1.10.2 to 1.10.3
  • Added a tool to clean up the scraped data in order to make it compatible with the new Art-Book, it's suggested to run it
  • +
  • New varialbes system: now some variables such as game folder location are saved in /app/retrodeck/retrodeck.cfg.

Known Issues:

@@ -123,9 +124,9 @@ 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.2b

Emulators:

diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index c8578868..b937b95c 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -79,7 +79,9 @@ modules: VERSION="0.5.0b-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 @@ -218,7 +220,7 @@ modules: sources: - type: git url: https://github.com/anthonycaccese/art-book-next-retropie.git - commit: 9c5312084bb4b906da5b610fd50bab2afe697cac + commit: 53ef4aa8a23ebac7c2c473d32b189d58533429ec # External manifests start @@ -1065,7 +1067,6 @@ modules: url: https://github.com/hrydgard/ppsspp.git tag: v1.12.3 commit: ce0a45cf0fcdd5bebf32208b9998f68dfc1107b7 - disable-submodules: true # Part of the PPSSPP Flathub Workaround x-checker-data: type: git tag-pattern: ^v([\d.]+)$ @@ -1073,6 +1074,7 @@ modules: # 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 @@ -1152,10 +1154,13 @@ modules: - mkdir -p ${FLATPAK_DEST}/retrodeck/tools/ - cp tools/* ${FLATPAK_DEST}/retrodeck/tools/ - mv -f es-configs/tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/ - + - cp retrodeck.sh /app/bin/retrodeck.sh - chmod +x /app/bin/retrodeck.sh + - cp global.sh /app/bin/global.sh + - chmod +x /app/bin/global.sh + # Desktop entry - cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop @@ -1174,4 +1179,4 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK.git - branch: cooker \ No newline at end of file + branch: cooker diff --git a/retrodeck.sh b/retrodeck.sh index c4e34e89..160f7f57 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -1,10 +1,15 @@ #!/bin/bash -lockfile="/var/config/retrodeck/.lock" # where the lockfile is located -version="$(cat /app/retrodeck/version)" # version info taken from the version file -rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodecck -emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs -sdcard="/run/media/mmcblk0p1" # Steam Deck SD default path +# Init default values, this may be overwritten by retrodeck.cfg as it sourced later with global.sh + +lockfile=lockfile="/var/config/retrodeck/.lock" # where the lockfile is located +emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs +sdcard="/run/media/mmcblk0p1" # Steam Deck SD default path +rd_conf="/app/retrodeck/retrodeck.cfg" # RetroDECK config file path +version="$(cat /app/retrodeck/version)" # version info taken from the version file +rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodeck + +source global.sh # We moved the lockfile in /var/config/retrodeck in order to solve issue #53 - Remove in a few versions if [ -f "$HOME/retrodeck/.lock" ] @@ -310,7 +315,8 @@ https://retrodeck.net exit ;; --version*|-v*) - cat /var/config/retrodeck/version + conf_init + echo $version exit ;; --reset-ra*) @@ -343,7 +349,9 @@ done if [ -f "$lockfile" ] && [ "$(cat "$lockfile")" != "$version" ]; then echo "Lockfile version is "$(cat "$lockfile")" but the actual version is $version" - post_update + conf_init # Initializing/reading the config file (sourced from global.sh) + post_update # Executing post update script + conf_write # Writing variables in the config file (sourced from global.sh) start_retrodeck exit 0 fi @@ -353,7 +361,9 @@ fi if [ ! -f "$lockfile" ]; then echo "Lockfile not found" - finit + conf_init # Initializing/reading the config file (sourced from global.sh) + finit # Executing First/Force init + conf_write # Writing variables in the config file (sourced from global.sh) exit 0 fi diff --git a/tools/start-citra.sh b/to-be-deleted/start-citra.sh similarity index 100% rename from tools/start-citra.sh rename to to-be-deleted/start-citra.sh diff --git a/tools/start-dolphin.sh b/to-be-deleted/start-dolphin.sh similarity index 100% rename from tools/start-dolphin.sh rename to to-be-deleted/start-dolphin.sh diff --git a/tools/start-melonds.sh b/to-be-deleted/start-melonds.sh similarity index 100% rename from tools/start-melonds.sh rename to to-be-deleted/start-melonds.sh diff --git a/tools/start-pcsx2.sh b/to-be-deleted/start-pcsx2.sh similarity index 100% rename from tools/start-pcsx2.sh rename to to-be-deleted/start-pcsx2.sh diff --git a/tools/start-ppsspp.sh b/to-be-deleted/start-ppsspp.sh similarity index 100% rename from tools/start-ppsspp.sh rename to to-be-deleted/start-ppsspp.sh diff --git a/tools/start-retroarch.sh b/to-be-deleted/start-retroarch.sh similarity index 100% rename from tools/start-retroarch.sh rename to to-be-deleted/start-retroarch.sh diff --git a/tools/start-rpcs3.sh b/to-be-deleted/start-rpcs3.sh similarity index 100% rename from tools/start-rpcs3.sh rename to to-be-deleted/start-rpcs3.sh diff --git a/tools/start-splore.sh b/to-be-deleted/start-splore.sh similarity index 100% rename from tools/start-splore.sh rename to to-be-deleted/start-splore.sh diff --git a/tools/start-yuzu.sh b/to-be-deleted/start-yuzu.sh similarity index 100% rename from tools/start-yuzu.sh rename to to-be-deleted/start-yuzu.sh diff --git a/tools/configure-emulators.sh b/tools/configure-emulators.sh new file mode 100644 index 00000000..f1722182 --- /dev/null +++ b/tools/configure-emulators.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?" +if [ $? == 1 ] #no +then + exit 0 +fi + +emulator="$(zenity --list \ +--title "RetroDECK" \ +--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ +--text="Which emulator do you want to configure?" \ +--hide-header \ +--column=emulator \ +"RetroArch" \ +"Citra" \ +"Dolphin" \ +"MelonDS" \ +"PCSX2" \ +"PPSSPP" \ +"RPCS3" \ +"Yuzu")" + +if [ $emulator == "RetroArch" ] +then + retroarch +elif [ $emulator == "Citra" ] +then + citra-qt +elif [ $emulator == "Dolphin" ] +then + dolphin-emu +elif [ $emulator == "MelonDS" ] +then + melonDS +elif [ $emulator == "PCSX2" ] +then + pcsx2 +elif [ $emulator == "PPSSPP" ] +then + PPSSPPSDL +elif [ $emulator == "RPCS3" ] +then + rpcs3 +elif [ $emulator == "Yuzu" ] +then + yuzu +fi \ No newline at end of file diff --git a/tools/move-roms.sh b/tools/move-roms.sh new file mode 100644 index 00000000..85b83fc8 --- /dev/null +++ b/tools/move-roms.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +source global.sh + +zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="Quit" --ok-label "Continue" --text="WARNING: this script is experimental\nplease be sure to backup your data before continuing.\n\nDo you want to continue?" +if [ $? == 1 ] #cancel +then + exit 0 +fi + +conf_init + +zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="Cancel" --ok-label "Browse" --text="The roms folder is now: $roms_folder\nplease select the new location.\nA retrodeck/roms folder will be created starting from the directory that you selected." +if [ $? == 1 ] #cancel +then + exit 0 +fi + +new_roms_path="$(zenity --file-selection --title="Choose a new roms folder location" --directory)"/retrodeck/roms + +zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Should I move the roms from\n\n$roms_folder\n\nto\n\n$new_roms_path?" +if [ $? == 0 ] #yes +then + mkdir -p $new_roms_path + mv -f $roms_folder $new_roms_path + rm -f /var/config/emulationstation/ROMs + ln -s $new_roms_path /var/config/emulationstation/ROMs + rm -f $roms_folder + zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="Done\nYour roms are now located in:\n\n$roms_folder\n\nPress OK to continue." + $roms_folder=$new_roms_path # Updating variable + conf_write # Writing variables in the config file (sourced from global.sh) +fi diff --git a/tools/overlays.sh b/tools/overlays.sh new file mode 100644 index 00000000..d483a20e --- /dev/null +++ b/tools/overlays.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +border="$(zenity --list \ +--title "RetroDECK" \ +--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ +--text="Select the borders type" \ +--hide-header \ +--column=Border \ +"None" \ +"Light" \ +"Dark")" + +if [ $border == "None" ] +then + return +elif [ $border == "Light" ] +then + return +elif [ $border == "Dark" ] +then + return +fi + +shader="$(zenity --list \ +--title "RetroDECK" \ +--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ +--text="Select the shader type" \ +--hide-header \ +--column=Border \ +"None" \ +"Retro")" + +if [ $shader == "None" ] +then + return +elif [ $shader == "Retro" ] +then + return +fi \ No newline at end of file diff --git a/tools/theme-fix.sh b/tools/theme-fix.sh new file mode 100644 index 00000000..66c71254 --- /dev/null +++ b/tools/theme-fix.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +zenity \ +--icon-name=net.retrodeck.retrodeck \ +--question \ +--no-wrap \ +--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ +--title "RetroDECK" \ +--ok-label "Yes" \ +--cancel-label "No" \ +--text="This tool is will clean some unuseful scraped data in order to beautify the theme.\nDo you want to delete and fix it?" + +if [ $? == 0 ] #yes - Internal +then + find ~/retrodeck/.downloaded_media -name miximages -type d -print0|xargs -0 rm -rfv -- + find ~/retrodeck/.downloaded_media -name 3dboxes -type d -print0|xargs -0 rm -rfv -- + find ~/retrodeck/.downloaded_media -name titlescreens -type d -print0|xargs -0 rm -rfv -- + find ~/retrodeck/.downloaded_media -name backcovers -type d -print0|xargs -0 rm -rfv -- + find ~/retrodeck/.downloaded_media -namephysicalmedia -type d -print0|xargs -0 rm -rfv -- + find ~/retrodeck/.downloaded_media -namescreenshots -type d -print0|xargs -0 rm -rfv -- + rm -rf ~/retrodeck/.downloaded_media/thumbnails + ln -s ~/retrodeck/.downloaded_media/covers ~/retrodeck/.downloaded_media/thumbnails +fi + +zenity \ +--icon-name=net.retrodeck.retrodeck \ +--info \ +--no-wrap \ +--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ +--title "RetroDECK" \ +--text="Scraped data is now cleaned and fixed, please restart RetroDECK to reload the games list." \ No newline at end of file