From 7164a2187c66fce3598cc1022c0e94c5ef5286e8 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 18 Apr 2024 15:34:17 +0900 Subject: [PATCH 01/54] SRM: adding Steam ROM Manager --- net.retrodeck.retrodeck.yml | 45 ++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 3ae6508c..079b7487 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -4,7 +4,7 @@ runtime-version: "6.5" sdk: org.kde.Sdk sdk-extensions: - org.freedesktop.Sdk.Extension.llvm16 # Needed for RPCS3 (llvm17 actually) - - org.freedesktop.Sdk.Extension.rust-stable # Needed for BoilR + - org.electronjs.Electron2.BaseApp # Needed for Steam ROM Manager command: retrodeck.sh finish-args: @@ -49,6 +49,7 @@ cleanup: - /bin/zstd* - /lib/pkg-config - /share/doc + - /share/gtk-doc # Steam ROM Manager - /share/man - /src - '*.a' @@ -449,6 +450,48 @@ modules: # External manifests start + # Steam ROM Manager - START + + - name: zypak + sources: + - type: git + url: https://github.com/refi64/zypak + tag: v2022.03 + commit: 8424c6bcf909ca2031ebc6537d324bb64772266e + + - name: steam-rom-manager + buildsystem: simple + env: + IN_FLATPAK: 1 + build-commands: + - install -D run.sh ${FLATPAK_DEST}/bin/steam-rom-manager + - cp /usr/bin/ar ${FLATPAK_DEST}/bin + - ar x srm.deb + - tar xf data.tar.xz + - mv "opt/Steam ROM Manager" "${FLATPAK_DEST}/srm" + - rm -rf "usr/share/icons/hicolor/1024x1024" + - cd usr; find share/icons/hicolor -type f -exec install -Dm644 "{}" + "${FLATPAK_DEST}/{}" \; + - rm -r srm.deb control.tar.* data.tar.xz debian-binary usr opt + sources: + - type: script + dest-filename: run.sh + commands: + - ${FLATPAK_DEST}/bin/zypak-wrapper.sh ${FLATPAK_DEST}/srm/steam-rom-manager + - type: file + dest-filename: srm.deb + url: https://github.com/SteamGridDB/steam-rom-manager/releases/download/v2.4.19/steam-rom-manager_2.4.19_amd64.deb + sha256: aa4f121d50612801c30b9365e05cb92a3b4a9c402974fee2b88652de8d731b0e + x-checker-data: + type: json + url: https://api.github.com/repos/SteamGridDB/steam-rom-manager/releases/latest + url-query: >- + .assets[] | select(.name=="steam-rom-manager_" + $version + + "_amd64.deb") | .browser_download_url + version-query: .tag_name | sub("^v"; "") + + # Steam ROM Manager - END + # RetroArch - START # https://github.com/flathub/org.libretro.RetroArch From c1b9fc3813842a7b045fb59e53ba4e699dfed459 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 18 Apr 2024 15:40:22 +0900 Subject: [PATCH 02/54] SRM: adding electron base --- net.retrodeck.retrodeck.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 079b7487..e54de2b3 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -2,9 +2,10 @@ app-id: net.retrodeck.retrodeck runtime: org.kde.Platform runtime-version: "6.5" sdk: org.kde.Sdk +base: org.electronjs.Electron2.BaseApp # Needed for Steam ROM Manager +base-version: "22.08" sdk-extensions: - org.freedesktop.Sdk.Extension.llvm16 # Needed for RPCS3 (llvm17 actually) - - org.electronjs.Electron2.BaseApp # Needed for Steam ROM Manager command: retrodeck.sh finish-args: From 74158eb8a3ba581d4cd50f8fa9fbf293867b528b Mon Sep 17 00:00:00 2001 From: Lx32 Date: Thu, 18 Apr 2024 17:55:16 +0200 Subject: [PATCH 03/54] Fixed SRM Fixed launching script of SRM --- net.retrodeck.retrodeck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index e54de2b3..780b0ee2 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -478,7 +478,7 @@ modules: - type: script dest-filename: run.sh commands: - - ${FLATPAK_DEST}/bin/zypak-wrapper.sh ${FLATPAK_DEST}/srm/steam-rom-manager + - /app/bin/zypak-wrapper.sh /app/srm/steam-rom-manager - type: file dest-filename: srm.deb url: https://github.com/SteamGridDB/steam-rom-manager/releases/download/v2.4.19/steam-rom-manager_2.4.19_amd64.deb From 34d337201d8ef208d9e46050f7125ae8d6482efa Mon Sep 17 00:00:00 2001 From: Lx32 Date: Fri, 19 Apr 2024 18:41:57 +0200 Subject: [PATCH 04/54] Updated for srm --- functions/steam-sync/steam-sync.py | 82 +++++++----------------------- 1 file changed, 19 insertions(+), 63 deletions(-) diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index 11b078b2..1ba3410a 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -272,8 +272,7 @@ exit_file="/tmp/retrodeck_steam_sync_exit" rdhome="" roms_folder="" -def create_shortcut_new(games): - changes=0 +def create_shortcut_new_new(games): old_games=os.listdir(rdhome+"/.sync/") for game in games: @@ -282,34 +281,11 @@ def create_shortcut_new(games): old_games[i]=0 except ValueError: print(game[0]+" is a new game!") - changes=1 - path=rdhome+"/.sync/"+game[0] + path=rdhome+"/.sync/"+game[0]+".sh" print("Go to path: "+path) - if not os.path.exists(path): - os.makedirs(path) - fl=open(path+"/goggame-0.info","w") - fl.write('{\n') - fl.write(' "buildId": "",\n') - fl.write(' "clientId": "",\n') - fl.write(' "gameId": "",\n') - fl.write(' "name": "'+game[0]+'",\n') - fl.write(' "playTasks": [\n') - fl.write(' {\n') - fl.write(' "category": "launcher",\n') - fl.write(' "isPrimary": true,\n') - fl.write(' "languages": [\n') - fl.write(' "en-US"\n') - fl.write(' ],\n') - fl.write(' "name": "'+game[0]+'",\n') - fl.write(' "path": "launch.sh",\n') - fl.write(' "type": "FileTask"\n') - fl.write(' }\n') - fl.write(' ]\n') - fl.write('}\n') - fl.close() - fl=open(path+"/launch.sh","w") + fl=open(path,"w") fl.write("#!/bin/bash\n\n") fl.write('if test "$(whereis flatpak)" = "flatpak:"\n') fl.write("then\n") @@ -319,18 +295,16 @@ def create_shortcut_new(games): fl.write("fi\n") fl.close() - st=os.stat(path+"/launch.sh") - os.chmod(path+"/launch.sh", st.st_mode | 0o0111) + st=os.stat(path) + os.chmod(path, st.st_mode | 0o0111) print("Start removing") print(old_games) for game in old_games: if game: - shutil.rmtree(rdhome+"/.sync/"+game) - changes=1 + os.remove(rdhome+"/.sync/"+game) - if changes: - os.system("boilr --no-ui") + os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager add") def addToSteam(systems): games=[] @@ -382,7 +356,7 @@ def addToSteam(systems): games.append([name,alt_command_list[altemulator]+" '"+roms_folder+"/"+system+path[1:]+"'"]) print(alt_command_list[altemulator]+" '"+roms_folder+"/"+system+path[1:]+"'") if not games==[]: - create_shortcut_new(games) + create_shortcut_new_new(games) def start_config(): global rdhome @@ -410,47 +384,29 @@ def start_config(): if not os.path.exists(rdhome+"/.sync/"): os.makedirs(rdhome+"/.sync/") - boilr_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/boilr/config.toml") - if os.path.isfile(boilr_path): - with open(boilr_path,"r") as f: + os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager list") + srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json") + if os.path.isfile(srm_path): + with open(srm_path,"r") as f: data=f.read() - data=re.sub("\"games_folder.*","games_folder = "+rdhome+"/.sync/\"",data) - with open(boilr_path,"w") as f: + data=re.sub("\"steamDirectory.*","\"steamDirectory\" : \""+os.path.expanduser("~/.steam/steam")+"\",",data) + data=re.sub("\"romDirectory.*","\"romDirectory\" : \""+rdhome+"/.sync/\",",data) + with open(srm_path,"w") as f: f.write(data) else: - print("Error! BoilR config not initialized.") + print("Error! Steam Rom Manager config not initialized.") + exit(1) if __name__=="__main__": start_config() - - new_hash={} - for system in os.listdir(rdhome+"/gamelists/"): - new_hash[system]=hashlib.md5(open(rdhome+"/gamelists/"+system+"/gamelist.xml","rb").read()).hexdigest() + exit(1) running=True while running: - time.sleep(30) - systems=[] - - for system in os.listdir(rdhome+"/gamelists/"): - if not system in systems: - if system in new_hash.keys(): - old_hash=new_hash[system] - new_hash[system]=hashlib.md5(open(rdhome+"/gamelists/"+system+"/gamelist.xml","rb").read()).hexdigest() - if not new_hash[system] == old_hash: - print("System {} changed!".format(system)) - systems.append(system) - else: - print("System {} not changed!".format(system)) - else: - new_hash[system]=hashlib.md5(open(rdhome+"/gamelists/"+system+"/gamelist.xml","rb").read()).hexdigest() - print("System {} added!".format(system)) - systems.append(system) - if os.path.isfile(exit_file): running=False os.remove(exit_file) - addToSteam(systems) + addToSteam(os.listdir(rdhome+"/gamelists/")) print("Finish!") From cd7da1294d070542f5f607ebe6f9714324c9e6dd Mon Sep 17 00:00:00 2001 From: Lx32 Date: Fri, 19 Apr 2024 18:42:53 +0200 Subject: [PATCH 05/54] Standard config for srm --- functions/steam-sync/userConfigurations.json | 81 ++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 functions/steam-sync/userConfigurations.json diff --git a/functions/steam-sync/userConfigurations.json b/functions/steam-sync/userConfigurations.json new file mode 100644 index 00000000..2315846d --- /dev/null +++ b/functions/steam-sync/userConfigurations.json @@ -0,0 +1,81 @@ +[ + { + "parserType": "Glob", + "configTitle": "Shortcuts", + "steamDirectory": "", + "steamCategory": "${RetroDECK}", + "romDirectory": "", + "executableArgs": "", + "executableModifier": "\"${exePath}\"", + "startInDirectory": "", + "titleModifier": "${fuzzyTitle}", + "fetchControllerTemplatesButton": null, + "removeControllersButton": null, + "imageProviders": [ + "SteamGridDB" + ], + "onlineImageQueries": "${${fuzzyTitle}}", + "imagePool": "${fuzzyTitle}", + "userAccounts": { + "specifiedAccounts": "" + }, + "executable": { + "path": "", + "shortcutPassthrough": false, + "appendArgsToExecutable": true + }, + "parserInputs": { + "glob": "${title}@(.sh)" + }, + "titleFromVariable": { + "limitToGroups": "", + "caseInsensitiveVariables": false, + "skipFileIfVariableWasNotFound": false, + "tryToMatchTitle": false + }, + "fuzzyMatch": { + "replaceDiacritics": true, + "removeCharacters": true, + "removeBrackets": true + }, + "controllers": { + "ps4": null, + "ps5": null, + "xbox360": null, + "xboxone": null, + "switch_joycon_left": null, + "switch_joycon_right": null, + "switch_pro": null, + "neptune": null + }, + "imageProviderAPIs": { + "SteamGridDB": { + "nsfw": false, + "humor": false, + "styles": [], + "stylesHero": [], + "stylesLogo": [], + "stylesIcon": [], + "imageMotionTypes": [ + "static" + ] + } + }, + "defaultImage": { + "tall": "", + "long": "", + "hero": "", + "logo": "", + "icon": "" + }, + "localImages": { + "tall": "", + "long": "", + "hero": "", + "logo": "", + "icon": "" + }, + "parserId": "171345715969886866", + "version": 15 + } +] From 2c59cc18cdde723563759a9b3c1a6598e11768c8 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Fri, 19 Apr 2024 19:04:42 +0200 Subject: [PATCH 06/54] Update with srm in place of boilr --- functions/prepare_component.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index a47e5fd2..3f9ce804 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -821,16 +821,17 @@ prepare_component() { sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON fi - if [[ "$component" =~ ^(boilr|BOILR|all)$ ]]; then + if [[ "$component" =~ ^(steam rom manager|STEAM ROM MANAGER|all)$ ]]; then log i "----------------------" - log i "Prepearing BOILR" + log i "Prepearing STEAM ROM MANAGER" log i "----------------------" - create_dir "/var/config/boilr" - cp -fvr "/app/libexec/steam-sync/config.toml" "/var/config/boilr" + create_dir "/var/config/steam-rom-manager" + create_dir "/var/config/steam-rom-manager/userData" + cp -fvr "/app/libexec/steam-sync/userConfigurations.json" "/var/config/steam-rom-manager/userData" fi - if [[ ! "$component" =~ ^(retrodeck|es-de|ES-DE|retroarch|RetroArch|citra|citra-emu|Citra|cemu|Cemu|dolphin|dolphin-emu|Dolphin|duckstation|Duckstation|melonds|melonDS|MelonDS|pcsx2|PCSX2|pico8|pico-8|ppsspp|PPSSPP|primehack|Primehack|rpcs3|RPCS3|ryujinx|Ryujinx|yuzu|Yuzu|xemu|XEMU|vita3k|Vita3K|mame|MAME|gzdoom|GZDOOM|boilr|BOILR|)$ ]]; then + if [[ ! "$component" =~ ^(retrodeck|es-de|ES-DE|retroarch|RetroArch|citra|citra-emu|Citra|cemu|Cemu|dolphin|dolphin-emu|Dolphin|duckstation|Duckstation|melonds|melonDS|MelonDS|pcsx2|PCSX2|pico8|pico-8|ppsspp|PPSSPP|primehack|Primehack|rpcs3|RPCS3|ryujinx|Ryujinx|yuzu|Yuzu|xemu|XEMU|vita3k|Vita3K|mame|MAME|gzdoom|GZDOOM|steam rom manager|STEAM ROM MANAGER|)$ ]]; then log e "Supplied component $component not found, not resetting" fi From 884a16b06f2d24ab0ffd58c5d08f3ec0a44540bd Mon Sep 17 00:00:00 2001 From: Lx32 Date: Fri, 19 Apr 2024 19:05:54 +0200 Subject: [PATCH 07/54] Update with srm in place of boilr --- tools/configurator.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/configurator.sh b/tools/configurator.sh index e00747f5..ea63de25 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -1194,13 +1194,13 @@ configurator_reset_dialog() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --text="Which component do you want to reset to default?" \ --column="Component" --column="Action" \ - "BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \ + "Steam Rom Manager" "Reset SRM that manages the sync and scraping toward Steam library" \ "ES-DE" "Reset the ES-DE frontend" \ ) # TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU" case $component_to_reset in - "BoilR" | "ES-DE" ) # TODO: GyroDSU + "Steam Rom Manager" | "ES-DE" ) # TODO: GyroDSU if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset $component_to_reset to default settings?\n\nThis process cannot be undone.") == "true" ]]; then prepare_component "reset" "$component_to_reset" "configurator" configurator_process_complete_dialog "resetting $component_to_reset" From 52845b9b4477b2af02aed8f1311d97e9e0a5637c Mon Sep 17 00:00:00 2001 From: Lx32 Date: Fri, 19 Apr 2024 19:06:58 +0200 Subject: [PATCH 08/54] Added steam-sync option --- emu-configs/defaults/retrodeck/retrodeck.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg index 4056cc07..b7fa8bc4 100644 --- a/emu-configs/defaults/retrodeck/retrodeck.cfg +++ b/emu-configs/defaults/retrodeck/retrodeck.cfg @@ -30,6 +30,7 @@ default_user= developer_options=false kiroi_ponzu=false akai_ponzu=false +steam_sync=false [cheevos] duckstation=false From fb1fcbc81b4e213e1bf3be1b16a1a0117b294af4 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sat, 20 Apr 2024 21:27:40 +0900 Subject: [PATCH 09/54] PREPARE_COMPONENTS: removing spaces from steam rom manager --- functions/prepare_component.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index abf00ecb..6214f9c3 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -822,7 +822,7 @@ prepare_component() { sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON fi - if [[ "$component" =~ ^(steam rom manager|all)$ ]]; then + if [[ "$component" =~ ^(steam_rom_manager|all)$ ]]; then log i "----------------------" log i "Prepearing STEAM ROM MANAGER" log i "----------------------" @@ -832,7 +832,7 @@ prepare_component() { cp -fvr "/app/libexec/steam-sync/userConfigurations.json" "/var/config/steam-rom-manager/userData" fi - if [[ ! "$component" =~ ^(retrodeck|es-de|retroarch|citra|citra-emu|cemu|dolphin|dolphin-emu|duckstation|melonds|melonDS|pcsx2|pico8|pico-8|ppsspp|primehack|rpcs3|ryujinx|yuzu|xemu|vita3k|mame|gzdoom|steam rom manager|)$ ]]; then + if [[ ! "$component" =~ ^(retrodeck|es-de|retroarch|citra|citra-emu|cemu|dolphin|dolphin-emu|duckstation|melonds|melonDS|pcsx2|pico8|pico-8|ppsspp|primehack|rpcs3|ryujinx|yuzu|xemu|vita3k|mame|gzdoom|steam_rom_manager|)$ ]]; then log e "Supplied component $component not found, not resetting" fi From 2843e69038e223a980f8bb2f23a213d73edf44ed Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sat, 20 Apr 2024 21:39:53 +0900 Subject: [PATCH 10/54] SRM: adding it ot reset cli, boilr cleanup --- net.retrodeck.retrodeck.yml | 2 +- retrodeck.sh | 4 ++-- tools/configurator.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 9fd44b22..bbe250db 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -31,7 +31,7 @@ finish-args: - --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.retrodeck # XEMU - Fixes issues with openSUSE systems, QEMU_AUDIO_DRV is defined as "pa" causing xemu to not launch - --unset-env=QEMU_AUDIO_DRV - # BoilR + # Steam Rom Manager - --filesystem=xdg-data/Steam:rw #Steam (flatpak) - --filesystem=~/.steam:rw # Steam (Non-flatpak) - --filesystem=~/.var/app/com.valvesoftware.Steam:rw # Steam (Flatpak) diff --git a/retrodeck.sh b/retrodeck.sh index 03974e92..dc16dcdc 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -56,10 +56,10 @@ https://retrodeck.net ;; --reset-component*) echo "You are about to reset one or more RetroDECK components or emulators." - echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, ryujinx, xemu, vita3k, mame, boilr, all" + echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, ryujinx, steam_rom_manager, xemu, vita3k, mame, all" read -p "Please enter the component you would like to reset: " component component=$(echo "$component" | tr '[:upper:]' '[:lower:]') - if [[ "$component" =~ ^(es-de|retroarch|cemu|dolphin|duckstation|gzdoom|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|rpcs3|xemu|all)$ ]]; then + if [[ "$component" =~ ^(es-de|retroarch|cemu|dolphin|duckstation|gzdoom|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|steam_rom_manager|rpcs3|xemu|all)$ ]]; then read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response if [[ $response == [yY] ]]; then prepare_component "reset" "$component" "cli" diff --git a/tools/configurator.sh b/tools/configurator.sh index ea63de25..c5f3c07e 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -1310,7 +1310,7 @@ configurator_add_steam() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - RetroDECK Steam Syncronization" \ - --text="Steam syncronization is current disabled. Do you want to enable it?\n\nAll the games marked as favorites will be syncronized with Steam thanks to BoilR.\nRemember to restart Steam each time to see the changes.\n" + --text="Steam syncronization is current disabled. Do you want to enable it?\n\nAll the games marked as favorites will be syncronized with Steam Rom Manager.\nRemember to restart Steam each time to see the changes.\n" if [ $? == 0 ] then From ecd6cb15b3b9556b51becb882dbf81b99816d7ce Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sat, 20 Apr 2024 21:44:10 +0900 Subject: [PATCH 11/54] SRM: boilr cleanup [skip ci] --- functions/steam-sync/config.toml | 61 -------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 functions/steam-sync/config.toml diff --git a/functions/steam-sync/config.toml b/functions/steam-sync/config.toml deleted file mode 100644 index 0bdd0e25..00000000 --- a/functions/steam-sync/config.toml +++ /dev/null @@ -1,61 +0,0 @@ -debug = false -config_version = 1 -blacklisted_games = [] -boilr_tag = "retrodeck" - -[steamgrid_db] -enabled = true -prefer_animated = false -banned_images = [] -only_download_boilr_images = false -allow_nsfw = false - -[steam] -create_collections = false -optimize_for_big_picture = false -stop_steam = false -start_steam = false - -[bottles] -enabled = false - -[epic_games] -enabled = false -safe_launch = [] - -[flatpak] -enabled = false - -[gog] -enabled = false -create_symlinks = true - -[heroic] -enabled = false -launch_games_through_heroic = [] -default_launch_through_heroic = true - -[itch] -enabled = false -create_symlinks = true - -[legendary] -enabled = false - -[lutris] -enabled = false -executable = "lutris" -flatpak = true -flatpak_image = "net.lutris.Lutris" -installed = true - -[origin] -enabled = false - -[uplay] -enabled = false - -[minigalaxy] -enabled = true -create_symlinks = false -games_folder = "/var/config/boilr/sync/" From 8bc061f91cdcc2629772c2b0ef6389c0f8ace169 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Sun, 21 Apr 2024 15:22:44 +0200 Subject: [PATCH 12/54] Update and fixed script --- functions/steam-sync/steam-sync.py | 31 +++++++++++------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index 1ba3410a..b2ebf90c 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -273,7 +273,7 @@ rdhome="" roms_folder="" def create_shortcut_new_new(games): - old_games=os.listdir(rdhome+"/.sync/") + old_games=os.listdir(rdhome+"/.sync/").copy() for game in games: try: @@ -386,27 +386,18 @@ def start_config(): os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager list") srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json") - if os.path.isfile(srm_path): - with open(srm_path,"r") as f: - data=f.read() - data=re.sub("\"steamDirectory.*","\"steamDirectory\" : \""+os.path.expanduser("~/.steam/steam")+"\",",data) - data=re.sub("\"romDirectory.*","\"romDirectory\" : \""+rdhome+"/.sync/\",",data) - with open(srm_path,"w") as f: - f.write(data) - else: - print("Error! Steam Rom Manager config not initialized.") - exit(1) + if not os.path.isfile(srm_path): + print("Steam Rom Manager configuration not initialized! Initializing now.") + shutil.copyfile("/app/libexec/steam-sync/userConfigurations.json", srm_path) + + with open(srm_path,"r") as f: + data=f.read() + data=re.sub("\"steamDirectory.*","\"steamDirectory\" : \""+os.path.expanduser("~/.steam/steam")+"\",",data) + data=re.sub("\"romDirectory.*","\"romDirectory\" : \""+rdhome+"/.sync/\",",data) + with open(srm_path,"w") as f: + f.write(data) if __name__=="__main__": start_config() - exit(1) - - running=True - - while running: - if os.path.isfile(exit_file): - running=False - os.remove(exit_file) - addToSteam(os.listdir(rdhome+"/gamelists/")) print("Finish!") From c38233aecb38bd2f736dc55c424782cf2386107a Mon Sep 17 00:00:00 2001 From: Lx32 Date: Sun, 21 Apr 2024 15:23:37 +0200 Subject: [PATCH 13/54] Modified steam sync works --- retrodeck.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index dc16dcdc..15881a0d 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -191,12 +191,8 @@ fi # Normal Startup -if [[ $steam_sync == "true" ]]; then - python3 /app/libexec/steam-sync/steam-sync.py & -fi - start_retrodeck if [[ $steam_sync == "true" ]]; then - touch /tmp/retrodeck_steam_sync_exit + python3 /app/libexec/steam-sync/steam-sync.py fi From c910621cff334263d580bc50bf18183d05d95647 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Sun, 21 Apr 2024 15:32:22 +0200 Subject: [PATCH 14/54] Update configurator.sh --- tools/configurator.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/configurator.sh b/tools/configurator.sh index c5f3c07e..67a99440 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -1326,13 +1326,12 @@ enable_steam_sync() { zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - RetroDECK Steam Syncronization" \ - --text="Steam syncronization enabled, restart RetroDECK to get effect." + --text="Steam syncronization enabled." configurator_welcome_dialog } disable_steam_sync() { set_setting_value $rd_conf "steam_sync" "false" retrodeck "options" - touch /tmp/retrodeck_steam_sync_exit configurator_welcome_dialog } From dd132dd945ef4eb4e5cc147825c6d8eb0c6d65bb Mon Sep 17 00:00:00 2001 From: XargonWan Date: Mon, 22 Apr 2024 13:40:16 +0900 Subject: [PATCH 15/54] STEAM_SYNC: fixing gameslist location --- functions/steam-sync/steam-sync.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index b2ebf90c..3c49619c 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -311,7 +311,7 @@ def addToSteam(systems): for system in systems: print("Start parsing system: {}".format(system)) - f=open(rdhome+"/gamelists/"+system+"/gamelist.xml","r") + f=open(rdhome+"/ES-DE/gamelists/"+system+"/gamelist.xml","r") f.readline() parser=ET.XMLParser() parser.feed(b'') From 0a810e4f8e24ce2bb5ad45db54f3b5933fbf39c6 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Mon, 22 Apr 2024 22:42:37 +0900 Subject: [PATCH 16/54] SRM: fixed path, whoops --- functions/steam-sync/steam-sync.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index 3c49619c..7f74243c 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -399,5 +399,5 @@ def start_config(): if __name__=="__main__": start_config() - addToSteam(os.listdir(rdhome+"/gamelists/")) - print("Finish!") + addToSteam(os.listdir(rdhome+"/ES-DE/gamelists/")) + print("Finished!") From 46668df052901f61017d47b5b4005e5e1a6fe3f6 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Wed, 8 May 2024 23:25:00 +0200 Subject: [PATCH 17/54] Added file for resetting the configuration --- functions/steam-sync/resetsync.py | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 functions/steam-sync/resetsync.py diff --git a/functions/steam-sync/resetsync.py b/functions/steam-sync/resetsync.py new file mode 100644 index 00000000..6e9eecd6 --- /dev/null +++ b/functions/steam-sync/resetsync.py @@ -0,0 +1,34 @@ +import os +import shutil +import re + +def resetfun(rdhome): + if not os.path.exists(rdhome+"/.sync/"): + os.makedirs(rdhome+"/.sync/") + + os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager list") + srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json") + if not os.path.isfile(srm_path): + print("Steam Rom Manager configuration not initialized! Initializing now.") + shutil.copyfile("/app/libexec/steam-sync/userConfigurations.json", srm_path) + + with open(srm_path,"r") as f: + data=f.read() + data=re.sub("\"steamDirectory.*","\"steamDirectory\" : \""+os.path.expanduser("~/.steam/steam")+"\",",data) + data=re.sub("\"romDirectory.*","\"romDirectory\" : \""+rdhome+"/.sync/\",",data) + with open(srm_path,"w") as f: + f.write(data) + +if __name__=="__main__": + rdhome="" + + print("Open RetroDECK config file: {}".format(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg"))) + + fl=open(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg"),"r") + lines=fl.readlines() + for line in lines: + if "rdhome" in line: + rdhome=line[7:-1] + fl.close() + + resetfun(rdhome) From 4b93767cae8c057f4db18f58aab0c8f03f003bc9 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Wed, 8 May 2024 23:26:12 +0200 Subject: [PATCH 18/54] Modified with external reset function --- functions/steam-sync/steam-sync.py | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index 7f74243c..98dd6198 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -11,6 +11,8 @@ import hashlib import xml.etree.ElementTree as ET +from resetsync import resetfun + command_list_default={ "3do": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/opera_libretro.so", "amiga": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", @@ -364,9 +366,6 @@ def start_config(): global command_list_default global alt_command_list - if os.path.isfile(exit_file): - os.remove(exit_file) - print("Open RetroDECK config file: {}".format(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg"))) fl=open(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg"),"r") @@ -381,21 +380,10 @@ def start_config(): command_list_default["pico8"]=command_list_default["pico8"].replace("{GAMEDIR}",roms_folder+"/pico8") alt_command_list["PICO-8 Splore (Standalone)"]=alt_command_list["PICO-8 Splore (Standalone)"].replace("{GAMEDIR}",roms_folder+"/pico8") - if not os.path.exists(rdhome+"/.sync/"): - os.makedirs(rdhome+"/.sync/") - - os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager list") srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json") if not os.path.isfile(srm_path): print("Steam Rom Manager configuration not initialized! Initializing now.") - shutil.copyfile("/app/libexec/steam-sync/userConfigurations.json", srm_path) - - with open(srm_path,"r") as f: - data=f.read() - data=re.sub("\"steamDirectory.*","\"steamDirectory\" : \""+os.path.expanduser("~/.steam/steam")+"\",",data) - data=re.sub("\"romDirectory.*","\"romDirectory\" : \""+rdhome+"/.sync/\",",data) - with open(srm_path,"w") as f: - f.write(data) + resetfun(rdhome) if __name__=="__main__": start_config() From f23d07ddea7ddfbcc62398a23f1694d9304df2fd Mon Sep 17 00:00:00 2001 From: Lx32 Date: Wed, 8 May 2024 23:27:05 +0200 Subject: [PATCH 19/54] Modified with external reset function --- functions/prepare_component.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 6214f9c3..78d5cee3 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -826,10 +826,8 @@ prepare_component() { log i "----------------------" log i "Prepearing STEAM ROM MANAGER" log i "----------------------" - - create_dir "/var/config/steam-rom-manager" - create_dir "/var/config/steam-rom-manager/userData" - cp -fvr "/app/libexec/steam-sync/userConfigurations.json" "/var/config/steam-rom-manager/userData" + + python3 /app/libexec/steam-sync/resetsync.py fi if [[ ! "$component" =~ ^(retrodeck|es-de|retroarch|citra|citra-emu|cemu|dolphin|dolphin-emu|duckstation|melonds|melonDS|pcsx2|pico8|pico-8|ppsspp|primehack|rpcs3|ryujinx|yuzu|xemu|vita3k|mame|gzdoom|steam_rom_manager|)$ ]]; then From 49ad2c71c31beeb8ace6b7b2c8399e45903ad812 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Wed, 8 May 2024 23:27:45 +0200 Subject: [PATCH 20/54] Added msgbox during fav sync --- retrodeck.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/retrodeck.sh b/retrodeck.sh index e1b00938..8a8e8e6d 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -194,5 +194,16 @@ fi start_retrodeck if [[ $steam_sync == "true" ]]; then + ( python3 /app/libexec/steam-sync/steam-sync.py + ) | + zenity --progress \ + --title="Synching with Steam" \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --text="Synching favorite game with Steam, please wait." \ + --percentage=25 \ + --pulsate \ + --auto-close \ + --auto-kill + fi From 74c681fbe7d2764609de81600b908e698ddb4e63 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 12 May 2024 08:12:25 +0200 Subject: [PATCH 21/54] STEAM_SYNC: fixed some texts --- retrodeck.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 407035c5..92ccd025 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -192,9 +192,9 @@ if [[ $steam_sync == "true" ]]; then python3 /app/libexec/steam-sync/steam-sync.py ) | zenity --progress \ - --title="Synching with Steam" \ + --title="Syncing with Steam" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --text="Synching favorite game with Steam, please wait." \ + --text="Syncing favorite games with Steam, please wait." \ --percentage=25 \ --pulsate \ --auto-close \ From 864afe504074b8d09c7cfcdfcda797e52aa19e5c Mon Sep 17 00:00:00 2001 From: Lx32 Date: Mon, 29 Jul 2024 22:03:29 +0200 Subject: [PATCH 22/54] Modified if for remove everything if no favorite games --- functions/steam-sync/steam-sync.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index 98dd6198..84e89a88 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -357,8 +357,7 @@ def addToSteam(systems): else: games.append([name,alt_command_list[altemulator]+" '"+roms_folder+"/"+system+path[1:]+"'"]) print(alt_command_list[altemulator]+" '"+roms_folder+"/"+system+path[1:]+"'") - if not games==[]: - create_shortcut_new_new(games) + create_shortcut_new_new(games) def start_config(): global rdhome From 91bf85d7d54baac88cc6df4ffea60056770868ab Mon Sep 17 00:00:00 2001 From: Lx32 Date: Tue, 27 Aug 2024 21:54:26 +0200 Subject: [PATCH 23/54] Fixed removing the games when no favs --- functions/steam-sync/steam-sync.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index 84e89a88..e7fd8a88 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -275,11 +275,12 @@ rdhome="" roms_folder="" def create_shortcut_new_new(games): + ignore_game=rdhome+"/.sync/IGNORE.sh" old_games=os.listdir(rdhome+"/.sync/").copy() for game in games: try: - i=old_games.index(game[0]) + i=old_games.index(game[0]+".sh") old_games[i]=0 except ValueError: print(game[0]+" is a new game!") @@ -306,7 +307,16 @@ def create_shortcut_new_new(games): if game: os.remove(rdhome+"/.sync/"+game) - os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager add") + dir=os.listdir(rdhome+"/.sync/") + if len(dir)==0: + print("No game found, removing all") + fl=open(ignore_game,"w") + fl.close() + os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager remove") + os.remove(ignore_game) + else: + print("Adding the games") + os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager add") def addToSteam(systems): games=[] From 648fae3968bcb2538ff158fcd49ba4b35bda26c5 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Wed, 28 Aug 2024 13:38:05 +0900 Subject: [PATCH 24/54] STEAM_ROM_MANAGER: added to features.json --- config/retrodeck/reference_lists/features.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/retrodeck/reference_lists/features.json b/config/retrodeck/reference_lists/features.json index 576fc38c..e1ba9f10 100644 --- a/config/retrodeck/reference_lists/features.json +++ b/config/retrodeck/reference_lists/features.json @@ -1105,6 +1105,11 @@ "description": "ES-DE Emulation Frontend", "name": "ES-DE", "launch": "es-de" + }, + "steam_rom_manager": { + "description": "Steam ROM Manager (used to sync RetroDECK favorites with Steam)", + "name": "Steam ROM Manager", + "launch": "steam-rom-manager" } } } From 555068ff95866043498c74dd1809c121e8483d94 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Wed, 28 Aug 2024 13:38:37 +0900 Subject: [PATCH 25/54] STEAM_ROM_MANAGER: casing names descriptions --- functions/prepare_component.sh | 2 +- functions/steam-sync/resetsync.py | 2 +- functions/steam-sync/steam-sync.py | 2 +- net.retrodeck.retrodeck.yml | 2 +- tools/configurator.sh | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 576e979c..31f63eb7 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -83,7 +83,7 @@ prepare_component() { if [[ "$component" =~ ^(steam_rom_manager|all)$ ]]; then component_found="true" log i "----------------------" - log i "Prepearing STEAM ROM MANAGER" + log i "Prepearing Steam ROM Manager" log i "----------------------" python3 /app/libexec/steam-sync/resetsync.py diff --git a/functions/steam-sync/resetsync.py b/functions/steam-sync/resetsync.py index 6e9eecd6..632d846d 100644 --- a/functions/steam-sync/resetsync.py +++ b/functions/steam-sync/resetsync.py @@ -9,7 +9,7 @@ def resetfun(rdhome): os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager list") srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json") if not os.path.isfile(srm_path): - print("Steam Rom Manager configuration not initialized! Initializing now.") + print("Steam ROM Manager configuration not initialized! Initializing now.") shutil.copyfile("/app/libexec/steam-sync/userConfigurations.json", srm_path) with open(srm_path,"r") as f: diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index e7fd8a88..1e5b45e8 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -391,7 +391,7 @@ def start_config(): srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json") if not os.path.isfile(srm_path): - print("Steam Rom Manager configuration not initialized! Initializing now.") + print("Steam ROM Manager configuration not initialized! Initializing now.") resetfun(rdhome) if __name__=="__main__": diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 02f0515b..a8fb4ec6 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -31,7 +31,7 @@ finish-args: - --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.retrodeck # XEMU - Fixes issues with openSUSE systems, QEMU_AUDIO_DRV is defined as "pa" causing xemu to not launch - --unset-env=QEMU_AUDIO_DRV - # Steam Rom Manager + # Steam ROM Manager - --filesystem=xdg-data/Steam:rw #Steam (flatpak) - --filesystem=~/.steam:rw # Steam (Non-flatpak) - --filesystem=~/.var/app/com.valvesoftware.Steam:rw # Steam (Flatpak) diff --git a/tools/configurator.sh b/tools/configurator.sh index 6656aa1c..a4775360 100755 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -1152,13 +1152,13 @@ configurator_reset_dialog() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --text="Which component do you want to reset to default settings?" \ --column="Component" --column="Action" \ - "Steam Rom Manager" "Reset SRM that manages the sync and scraping toward Steam library" \ + "Steam ROM Manager" "Reset SRM that manages the sync and scraping toward Steam library" \ "ES-DE" "Reset the ES-DE frontend" \ ) # TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU" case $component_to_reset in - "Steam Rom Manager" | "ES-DE" ) # TODO: GyroDSU + "Steam ROM Manager" | "ES-DE" ) # TODO: GyroDSU if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset $component_to_reset to default settings?\n\nThis process cannot be undone.") == "true" ]]; then prepare_component "reset" "$component_to_reset" "configurator" configurator_process_complete_dialog "resetting $component_to_reset" @@ -1268,7 +1268,7 @@ configurator_add_steam() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - RetroDECK Steam Syncronization" \ - --text="Steam syncronization is currently disabled. Do you want to enable it?\n\nAll the games marked as favorites will be syncronized with Steam Rom Manager.\nRemember to restart Steam each time to see the changes.\n" + --text="Steam syncronization is currently disabled. Do you want to enable it?\n\nAll the games marked as favorites will be syncronized with Steam ROM Manager.\nRemember to restart Steam each time to see the changes.\n" if [ $? == 0 ] then From bf2fa76c27c3c9c3ca3613ff95ca9c29b3826436 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Wed, 28 Aug 2024 17:59:43 +0200 Subject: [PATCH 26/54] Fixed some error --- functions/steam-sync/steam-sync.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py index 1e5b45e8..4ce79e4c 100644 --- a/functions/steam-sync/steam-sync.py +++ b/functions/steam-sync/steam-sync.py @@ -49,6 +49,7 @@ command_list_default={ "dreamcast": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", "easyrpg": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so", "famicom": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", +"flash": "TODO: I have to catch how it works", #TODO "fba": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so", "fbneo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so", "fds": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", @@ -394,6 +395,9 @@ def start_config(): print("Steam ROM Manager configuration not initialized! Initializing now.") resetfun(rdhome) + if not os.path.exists(rdhome+"/.sync/"): + os.makedirs(rdhome+"/.sync/") + if __name__=="__main__": start_config() addToSteam(os.listdir(rdhome+"/ES-DE/gamelists/")) From 04919fdf7f95ef33176d2da727d9286dd470709a Mon Sep 17 00:00:00 2001 From: Lx32 Date: Wed, 28 Aug 2024 18:00:08 +0200 Subject: [PATCH 27/54] Moved away the creation of .sync folder --- functions/steam-sync/resetsync.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/functions/steam-sync/resetsync.py b/functions/steam-sync/resetsync.py index 632d846d..91055517 100644 --- a/functions/steam-sync/resetsync.py +++ b/functions/steam-sync/resetsync.py @@ -3,9 +3,6 @@ import shutil import re def resetfun(rdhome): - if not os.path.exists(rdhome+"/.sync/"): - os.makedirs(rdhome+"/.sync/") - os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager list") srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json") if not os.path.isfile(srm_path): From d355e56e65348a153d89944c83c56d9f5704b77d Mon Sep 17 00:00:00 2001 From: Lx32 Date: Tue, 3 Sep 2024 22:15:21 +0200 Subject: [PATCH 28/54] Uploaded standard exception --- functions/steam-sync/userExceptions.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 functions/steam-sync/userExceptions.json diff --git a/functions/steam-sync/userExceptions.json b/functions/steam-sync/userExceptions.json new file mode 100644 index 00000000..221f012b --- /dev/null +++ b/functions/steam-sync/userExceptions.json @@ -0,0 +1,12 @@ +{ + "exceptionsVersion": 1, + "titles": { + "IGNORE": { + "newTitle": "", + "searchTitle": "", + "commandLineArguments": "", + "exclude": true, + "excludeArtwork": false + } + } +} From 78fe802e4e21a762c003be9c22a043a5ba484481 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Tue, 3 Sep 2024 22:16:07 +0200 Subject: [PATCH 29/54] Added reset userExceptions --- functions/steam-sync/resetsync.py | 1 + 1 file changed, 1 insertion(+) diff --git a/functions/steam-sync/resetsync.py b/functions/steam-sync/resetsync.py index 91055517..80e01acc 100644 --- a/functions/steam-sync/resetsync.py +++ b/functions/steam-sync/resetsync.py @@ -8,6 +8,7 @@ def resetfun(rdhome): if not os.path.isfile(srm_path): print("Steam ROM Manager configuration not initialized! Initializing now.") shutil.copyfile("/app/libexec/steam-sync/userConfigurations.json", srm_path) + shutil.copyfile("/app/libexec/steam-sync/userExceptions.json", srm_path) with open(srm_path,"r") as f: data=f.read() From 939bac2bf472bc9acfc55419790a496b0df4c2d3 Mon Sep 17 00:00:00 2001 From: Lx32 Date: Tue, 3 Sep 2024 22:19:24 +0200 Subject: [PATCH 30/54] Revert missing entrypoint --- tools/configurator.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/configurator.sh b/tools/configurator.sh index a4775360..d0762fb2 100755 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -156,6 +156,10 @@ configurator_welcome_dialog() { configurator_about_retrodeck_dialog ;; + "Sync with Steam" ) + configurator_add_steam + ;; + "Developer Options" ) log i "Configurator: opening \"$choice\" menu" configurator_generic_dialog "RetroDECK Configurator - Developer Options" "The following features and options are potentially VERY DANGEROUS for your RetroDECK install!\n\nThey should be considered the bleeding-edge of upcoming RetroDECK features, and never used when you have important saves/states/roms that are not backed up!\n\nYOU HAVE BEEN WARNED!" From 87564fb7b56c5b8eb16100319b788bee2a7c297c Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 11:44:54 +0900 Subject: [PATCH 31/54] STEAM_SYNC_SH: checkpoint, addToSteam is working --- functions/other_functions.sh | 6 +- functions/steam-sync/steam-sync.sh | 417 +++++++++++++++++++++++++++++ 2 files changed, 422 insertions(+), 1 deletion(-) create mode 100644 functions/steam-sync/steam-sync.sh diff --git a/functions/other_functions.sh b/functions/other_functions.sh index 281b40ec..461da3c5 100644 --- a/functions/other_functions.sh +++ b/functions/other_functions.sh @@ -892,7 +892,11 @@ start_retrodeck() { # if steam sync is on do the magic if [[ $steam_sync == "true" ]]; then ( - python3 /app/libexec/steam-sync/steam-sync.py + #python3 /app/libexec/steam-sync/steam-sync.py #TODO: clean me + source /app/libexec/steam-sync/steam-sync.sh + start_config + addToSteam "$(ls "$rdhome/ES-DE/gamelists/")" + log "i" "Finished syncing with Steam" ) | zenity --progress \ --title="Syncing with Steam" \ diff --git a/functions/steam-sync/steam-sync.sh b/functions/steam-sync/steam-sync.sh new file mode 100644 index 00000000..cfa7d17b --- /dev/null +++ b/functions/steam-sync/steam-sync.sh @@ -0,0 +1,417 @@ +#!/bin/bash + +# Associative arrays for command lists +# TODO: make them dynamic by readin es_config and features.json +declare -A command_list_default=( +"[3do"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/opera_libretro.so", +"[amiga"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", +"[amiga1200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", +"[amiga600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", +"[amigacd32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", +"[amstradcpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so", +"[arcade"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[arduboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/arduous_libretro.so", +"[astrocde"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[atari2600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so", +"[atari5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so", +"[atari7800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prosystem_libretro.so", +"[atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so", +"[atarijaguar"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so", +"[atarijaguarcd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so", +"[atarilynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so", +"[atarist"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/hatari_libretro.so", +"[atarixe"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so", +"[atomiswave"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", +"[c64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so", +"[cavestory"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nxengine_libretro.so", +"[cdimono1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so", +"[cdtv"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", +"[chailove"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/chailove_libretro.so", +"[channelf"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freechaf_libretro.so", +"[colecovision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", +"[cps"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[cps1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[cps2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[cps3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[doom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so", +"[dos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so", +"[dreamcast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", +"[easyrpg"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so", +"[famicom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", +"[flash": "TODO: I have to catch how it works", #TODO +"[fba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so", +"[fbneo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so", +"[fds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", +"[gameandwatch"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so", +"[gamegear"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[gb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so", +"[gba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so", +"[gbc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so", +"[genesis"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[gx4000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so", +"[intellivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freeintv_libretro.so", +"[j2me"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/squirreljme_libretro.so", +"[lcdgames"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so", +"[lutro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/lutro_libretro.so", +"[mame"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[mastersystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[megacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[megacdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[megadrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[megaduck"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameduck_libretro.so", +"[mess"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mess2015_libretro.so", +"[model2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[moto"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so", +"[msx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", +"[msx1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", +"[msx2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", +"[msxturbor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", +"[multivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so", +"[n64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so", +"[n64dd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so", +"[naomi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", +"[naomigd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", +"[nds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so", +"[neogeo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so", +"[neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so", +"[neogeocdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so", +"[nes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", +"[ngp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so", +"[ngpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so", +"[odyssey2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so", +"[palm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mu_libretro.so", +"[pc88"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quasi88_libretro.so", +"[pc98"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so", +"[pcengine"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", +"[pcenginecd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", +"[pcfx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pcfx_libretro.so", +"[pokemini"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pokemini_libretro.so", +"[psx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so", +"[quake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so", +"[satellaview"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", +"[saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so", +"[saturnjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so", +"[scummvm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/scummvm_libretro.so", +"[sega32x"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so", +"[sega32xjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so", +"[sega32xna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so", +"[segacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[sfc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", +"[sg-1000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[sgb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so", +"[snes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", +"[snesna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", +"[spectravideo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", +"[sufami"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", +"[supergrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so", +"[supervision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/potator_libretro.so", +"[tg16"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", +"[tg-cd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", +"[tic80"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tic80_libretro.so", +"[to8"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so", +"[uzebox"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/uzem_libretro.so", +"[vectrex"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vecx_libretro.so", +"[vic20"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xvic_libretro.so", +"[videopac"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so", +"[virtualboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_vb_libretro.so", +"[wasm4"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/wasm4_libretro.so", +"[wonderswan"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so", +"[wonderswancolor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so", +"[x1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/x1_libretro.so", +"[x68000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/px68k_libretro.so", +"[zx81"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/81_libretro.so", +"[zxspectrum"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fuse_libretro.so", +"[switch"]="flatpak run --command=/var/data/ponzu/Yuzu/bin/yuzu net.retrodeck.retrodeck -f -g", +"[n3ds"]="flatpak run --command=/var/data/ponzu/Citra/bin/citra-qt net.retrodeck.retrodeck", +"[ps2"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch", +"[wiiu"]="flatpak run --command=Cemu-wrapper net.retrodeck.retrodeck -g", +"[gc"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e", +"[wii"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e", +"[xbox"]="flatpak run --command=xemu net.retrodeck.retrodeck -dvd_path", +"[ps3"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui", +"[psp"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck", +"[pico8"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" +) + +declare -A alt_command_list=( +"[PUAE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", +"[Caprice32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so", +"[MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[Stella"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so", +"[a5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so", +"[Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so", +"[Handy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so", +"[VICE x64sc Accurate"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so", +"[SAME CDi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so", +"[blueMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", +"[MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", +"[PrBoom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so", +"[DOSBox-Pure"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so", +"[Mesen"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", +"[Genesis Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", +"[Gamebatte"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so", +"[mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so", +"[ParaLLEI N64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so", +"[DeSmuME"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so", +"[NeoCD"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so", +"[Beetle NeoPop"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so", +"[Neko Project II Kai"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so", +"[Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", +"[Swanstation"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so", +"[TyrQuake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so", +"[Beetle Saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so", +"[Snes 9x - Current"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", +"[Beetle SuperGrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so", +"[Yuzu (Standalone)"]="flatpak run --command=yuzu net.retrodeck.retrodeck -f -g", +"[Citra (Standalone)"]="flatpak run --command=citra net.retrodeck.retrodeck", +"[PCSX2 (Standalone)"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch", +"[Dolphin (Standalone)"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e", +"[RPCS3 Directory (Standalone)"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui", +"[PPSSPP (Standalone)"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck", +"[PICO-8 (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run", +"[PUAE 2021"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae2021_libretro.so", +"[CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so", +"[CPCemu (Standalone)": "NYI", #NYI +"[MAME 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2010_libretro.so", +"[MAME 2003-Plus"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2003_plus_libretro.so", +"[MAME 2000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2000_libretro.so", +"[MAME (Standalone)": "NYI", #NYI +"[FinalBurn Neo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so", +"[FinalBurn Neo (Standalone)": "NYI", #NYI +"[FB Alpha 2012"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so", +"[Flycast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", +"[Flycast (Standalone)": "NYI", #NYI +"[Kronos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so", +"[Supermodel (Standalone)": "NYI", #NYI +"[Supermodel [Fullscreen] (Standalone)": "NYI", #NYI +"[Shortcut or script": "TODO: I have to catch how it works", #TODO +"[Atari800 (Standalone)": "NYI", #NYI +"[Stella 2014"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so", +"[Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so", +"[Beetle Lynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_lynx_libretro.so", +"[VICE x64 Fast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64_libretro.so", +"[VICE x64 SuperCPU"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xscpu64_libretro.so", +"[VICE x128"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x128_libretro.so", +"[Frodo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/frodo_libretro.so", +"[CDi 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cdi2015_libretro.so", +"[Gearcoleco"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearcoleco_libretro.so", +"[FB Alpha 2012 CPS-1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps1_libretro.so", +"[FB Alpha 2012 CPS-2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps2_libretro.so", +"[FB Alpha 2012 CPS-3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps3_libretro.so", +"[Boom 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro.so", +"[Boom 3 xp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so", +"[DOSBox-Core"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so", +"[DOSBox-SVN"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so", +"[Keep ES-DE running": "TODO: I have to catch how it works", #TODO +"[AppImage (Suspend ES-DE)": "TODO: I have to catch how it works", #TODO +"[AppImage (Keep ES-DE running)": "TODO: I have to catch how it works", #TODO +"[Nestopia UE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so", +"[FCEUmm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so", +"[QuickNES"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so", +"[Genesis Plus GX Wide"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_wide_libretro.so", +"[Gearsystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so", +"[SMS Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/smsplus_libretro.so", +"[SameBoy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameboy_libretro.so", +"[Gearboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearboy_libretro.so", +"[TGB Dual"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tgbdual_libretro.so", +"[Mesen-S"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so", +"[VBA-M"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vbam_libretro.so", +"[bsnes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_libretro.so", +"[mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so", +"[VBA Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vba_next_libretro.so", +"[gpSP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gpsp_libretro.so", +"[Dolphin"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dolphin_libretro.so", +"[PrimeHack (Standalone)"]="flatpak run --command=primehack-wrapper net.retrodeck.retrodeck -b -e", +"[PicoDrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so", +"[BlastEm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/blastem_libretro.so", +"[CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so", +"[fMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fmsx_libretro.so", +"[Citra"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra_libretro.so", +"[Citra 2018"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra2018_libretro.so", +"[Mupen64Plus-Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so", +"[DeSmuME 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume2015_libretro.so", +"[melonDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/melonds_libretro.so", +"[melonDS (Standalone)"]="flatpak run --command=melonDS net.retrodeck.retrodeck", +"[FinalBurn Neo neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck --subsystem neocd -L /var/config/retroarch/cores/fbneo_libretro.so", +"[RACE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/race_libretro.so", +"[Neko Project II"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so", +"[Beetle PCE FAST"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so", +"[PICO-8 Splore (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore", +"[AppImage": "TODO: I have to catch how it works", #TODO +"[LRPS2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so", +"[PCSX2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so", +"[RPCS3 Shortcut (Standalone)": "TODO: I have to catch how it works", #TODO +"[PPSSPP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so", +"[Beetle PSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so", +"[Beetle PSX HW"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so", +"[PCSX ReARMed"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx_rearmed_libretro.so", +"[DuckStation (Standalone)"]="flatpak run --command=duckstation-qt net.retrodeck.retrodeck -batch", +"[vitaQuake 2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2_libretro.so", +"[vitaQuake 2 [Rogue]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-rogue_libretro.so", +"[vitaQuake 2 [Xatrix]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-xatrix_libretro.so", +"[vitaQuake 2 [Zaero]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-zaero_libretro.so", +"[vitaQuake 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake3_libretro.so", +"[YabaSanshiro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabasanshiro_libretro.so", +"[Yabause"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabause_libretro.so", +"[Snes9x 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x2010_libretro.so", +"[bsnes-hd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_hd_beta_libretro.so", +"[bsnes-mercury Accuracy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_mercury_accuracy_libretro.so", +"[Beetle Supafaust"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supafaust_libretro.so", +"[Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +) + +exit_file="/tmp/retrodeck_steam_sync_exit" +rdhome="" +roms_folder="" + +# Create shortcut function +create_shortcut() { + log "d" "Entering the function create_shortcut" + + local games=("$@") + local ignore_game="$rdhome/.sync/IGNORE.sh" + + if [ ! -d "$rdhome/.sync/" ]; then + mkdir -p "$rdhome/.sync/" + log "d" ".sync directory created" + fi + + local old_games=($(ls "$rdhome/.sync/")) + + for game in "${games[@]}"; do + # Extract the game name (first field) and command (rest of the fields) + local game_name=$(echo "$game" | awk '{print $1}') + local game_command=$(echo "$game" | sed "s/$game_name //") + + # Sanitize the game name by removing only problematic characters for filenames (preserve most characters) + local sanitized_name=$(echo "$game_name" | sed 's/[^a-zA-Z0-9._-]/_/g') + local path="$rdhome/.sync/${sanitized_name}.sh" + log "d" "Creating shortcut at path: $path" + + # Properly format the game command without extra backslashes + local clean_command=$(echo "$game_command" | sed 's/\\//g') + + # Populate the .sync script with the correct command + echo "#!/bin/bash" > "$path" + echo "" >> "$path" + echo 'if test "$(whereis flatpak)" = "flatpak:"' >> "$path" + echo "then" >> "$path" + echo " flatpak-spawn --host $clean_command" >> "$path" + echo "else" >> "$path" + echo " $clean_command" >> "$path" + echo "fi" >> "$path" + + chmod +x "$path" + done + + log "i" "Start removing old games" + for old_game in "${old_games[@]}"; do + log "d" "Removing old game shortcut: $old_game" + rm "$rdhome/.sync/$old_game" + done + + if [ -z "$(ls -A $rdhome/.sync/)" ]; then + log "e" "No games found in .sync directory, removing all" + touch "$ignore_game" + /app/bin/zypak-wrapper /app/srm/steam-rom-manager remove + rm "$ignore_game" + else + log "i" "Adding games to Steam via Steam ROM Manager" + /app/bin/zypak-wrapper /app/srm/steam-rom-manager add + fi +} + +# Add games to Steam function +addToSteam() { + log "i" "Starting Steam Sync" + + # Build the systems array from space-separated systems + local systems_string="arcade doom dos dreamcast flash gb gba gbc Library mame n3ds n64 nds nes portmaster ps2 psp psvita psx scummvm switch wii wiiu" + IFS=' ' read -r -a systems <<< "$systems_string" + + local games=() + + for system in "${systems[@]}"; do + log "d" "Steam Sync: parsing system: $system" + + local gamelist="$rdhome/ES-DE/gamelists/$system/gamelist.xml" + if [ ! -f "$gamelist" ]; then + log "w" "Steam Sync: game list not found for system: $system, skipping" + continue + fi + + # Extract all elements that are marked as favorite="true" + game_blocks=$(xmllint --recover --xpath '//game[favorite="true"]' "$gamelist" 2>/dev/null) + log "d" "Extracted favorite game blocks:\n\n$game_blocks\n\n" + + if [ -z "$game_blocks" ]; then + log "w" "No favorite games found in $gamelist" + continue + fi + + # Split the game_blocks into an array, where each element is a full block + IFS=$'\n' read -r -d '' -a game_array <<< "$(echo "$game_blocks" | xmllint --recover --format - | sed -n '//,/<\/game>/p' | tr '\n' ' ')" + + # Iterate over each full block in the array + for game_block in "${game_array[@]}"; do + log "d" "Processing game block:\n$game_block" + + # Extract the game's name and path from the full game block + local name=$(echo "$game_block" | xmllint --xpath 'string(//game/name)' - 2>/dev/null) + local path=$(echo "$game_block" | xmllint --xpath 'string(//game/path)' - 2>/dev/null) + + # Escape the name and path to handle special characters + local escaped_name=$(printf '%q' "$name") + local escaped_path=$(printf '%q' "$path") + + # Log the extracted values + log "d" "Escaped name: $escaped_name" + log "d" "Escaped path: $escaped_path" + + # Ensure the extracted name and path are valid + if [ -n "$escaped_name" ] && [ -n "$escaped_path" ]; then + # Check for an alternative emulator if it exists + local emulator=$(echo "$game_block" | xmllint --xpath 'string(//game/altemulator)' - 2>/dev/null) + if [ -z "$emulator" ]; then + games+=("$escaped_name ${command_list_default[$system]} '$roms_folder/$system/$escaped_path'") + else + games+=("$escaped_name ${alt_command_list[$emulator]} '$roms_folder/$system/$escaped_path'") + fi + log "d" "Steam Sync: found favorite game: $escaped_name" + else + log "w" "Steam Sync: failed to find valid name or path for favorite game" + fi + done + done + + create_shortcut "${games[@]}" +} + +# Start configuration function +start_config() { + log "i" "Initializing Steam Sync" + + if [ ! -f "$rd_conf" ]; then + log "e" "Config file not found" + exit 1 + fi + + while IFS= read -r line; do + if [[ $line == rdhome=* ]]; then + rdhome="${line#rdhome=}" + elif [[ $line == roms_folder=* ]]; then + roms_folder="${line#roms_folder=}" + fi + done < "$rd_conf" + + local srm_path="$HOME/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json" + if [ ! -f "$srm_path" ]; then + log "e" "Steam ROM Manager configuration not initialized! Initializing now." + resetfun "$rdhome" + fi + + if [ ! -d "$rdhome/.sync/" ]; then + mkdir -p "$rdhome/.sync/" + log "d" ".sync directory created" + fi +} \ No newline at end of file From 2bc6d89d48e371310e2de2b70c2a88abe5a3634f Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 12:05:28 +0900 Subject: [PATCH 32/54] STEAM_SYNC_SH: fixed bad launcher filename generation --- functions/steam-sync/steam-sync.sh | 87 +++++++++++++++++------------- 1 file changed, 50 insertions(+), 37 deletions(-) diff --git a/functions/steam-sync/steam-sync.sh b/functions/steam-sync/steam-sync.sh index cfa7d17b..f1c20182 100644 --- a/functions/steam-sync/steam-sync.sh +++ b/functions/steam-sync/steam-sync.sh @@ -278,38 +278,55 @@ create_shortcut() { local old_games=($(ls "$rdhome/.sync/")) - for game in "${games[@]}"; do - # Extract the game name (first field) and command (rest of the fields) - local game_name=$(echo "$game" | awk '{print $1}') - local game_command=$(echo "$game" | sed "s/$game_name //") - - # Sanitize the game name by removing only problematic characters for filenames (preserve most characters) - local sanitized_name=$(echo "$game_name" | sed 's/[^a-zA-Z0-9._-]/_/g') - local path="$rdhome/.sync/${sanitized_name}.sh" - log "d" "Creating shortcut at path: $path" - - # Properly format the game command without extra backslashes - local clean_command=$(echo "$game_command" | sed 's/\\//g') - - # Populate the .sync script with the correct command - echo "#!/bin/bash" > "$path" - echo "" >> "$path" - echo 'if test "$(whereis flatpak)" = "flatpak:"' >> "$path" - echo "then" >> "$path" - echo " flatpak-spawn --host $clean_command" >> "$path" - echo "else" >> "$path" - echo " $clean_command" >> "$path" - echo "fi" >> "$path" - - chmod +x "$path" - done - log "i" "Start removing old games" for old_game in "${old_games[@]}"; do log "d" "Removing old game shortcut: $old_game" rm "$rdhome/.sync/$old_game" done + for game in "${games[@]}"; do + + log d "Extracted: $game" + + # Extract the game name (everything before the first path part, i.e., excluding paths and other arguments) + local game_name=$(echo "$game" | sed -n "s/^\([^']*\)'\([^']*\)'$/\1/p" | xargs) + + # Extract the command part (everything after the game name) + local file_path=$(echo "$game" | sed -n "s/^\([^']*\)'\(.*\)'/\2/p") + + # Sanitize the game name for the filename: replace special characters with underscores + local sanitized_name=$(echo "$game_name" | sed -e 's/[^A-Za-z0-9._\[\]()-]/_/g') + + log d "File Path: $file_path" + log d "Game Name: $game_name" + log d "Sanitized Name: $sanitized_name" + + # If the filename is too long, shorten it + if [ ${#sanitized_name} -gt 100 ]; then + sanitized_name=$(echo "$sanitized_name" | cut -c 1-100) + fi + + #TODO: FIXME, this part is wrong, I need to fix it + + local launcher="$rdhome/.sync/${sanitized_name}.sh" + log "d" "Creating shortcut at path: $launcher" + + # Escape the command properly by removing unnecessary backslashes + local clean_command=$(echo "$game_command" | sed 's/\\//g') + + # Populate the .sync script with the correct command + echo "#!/bin/bash" > "$launcher" + echo "" >> "$launcher" + echo 'if test "$(whereis flatpak)" = "flatpak:"' >> "$launcher" + echo "then" >> "$launcher" + echo " flatpak-spawn --host $clean_command" >> "$launcher" + echo "else" >> "$launcher" + echo " $clean_command" >> "$launcher" + echo "fi" >> "$launcher" + + chmod +x "$launcher" + done + if [ -z "$(ls -A $rdhome/.sync/)" ]; then log "e" "No games found in .sync directory, removing all" touch "$ignore_game" @@ -321,6 +338,7 @@ create_shortcut() { fi } +# TODO: FIXME the path is returned with an unwanted ./ ---> '/home/jay/retrodeck/roms/wii/./Tales of Symphonia - Dawn of the New World [RT4PAF].wbfs' # Add games to Steam function addToSteam() { log "i" "Starting Steam Sync" @@ -360,24 +378,19 @@ addToSteam() { local name=$(echo "$game_block" | xmllint --xpath 'string(//game/name)' - 2>/dev/null) local path=$(echo "$game_block" | xmllint --xpath 'string(//game/path)' - 2>/dev/null) - # Escape the name and path to handle special characters - local escaped_name=$(printf '%q' "$name") - local escaped_path=$(printf '%q' "$path") - - # Log the extracted values - log "d" "Escaped name: $escaped_name" - log "d" "Escaped path: $escaped_path" + log "d" "Game name: $name" + log "d" "Game path: $launcher" # Ensure the extracted name and path are valid - if [ -n "$escaped_name" ] && [ -n "$escaped_path" ]; then + if [ -n "$name" ] && [ -n "$launcher" ]; then # Check for an alternative emulator if it exists local emulator=$(echo "$game_block" | xmllint --xpath 'string(//game/altemulator)' - 2>/dev/null) if [ -z "$emulator" ]; then - games+=("$escaped_name ${command_list_default[$system]} '$roms_folder/$system/$escaped_path'") + games+=("$name ${command_list_default[$system]} '$roms_folder/$system/$launcher'") else - games+=("$escaped_name ${alt_command_list[$emulator]} '$roms_folder/$system/$escaped_path'") + games+=("$name ${alt_command_list[$emulator]} '$roms_folder/$system/$launcher'") fi - log "d" "Steam Sync: found favorite game: $escaped_name" + log "d" "Steam Sync: found favorite game: $name" else log "w" "Steam Sync: failed to find valid name or path for favorite game" fi From 9a24f04546b736f96232d678ae40e40f5776fbe7 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 14:54:21 +0900 Subject: [PATCH 33/54] STEAM_SYNC_SH: fixed game names, unified in a single function, code cleanup --- functions/steam-sync/steam-sync.sh | 202 +++++++++-------------------- 1 file changed, 62 insertions(+), 140 deletions(-) diff --git a/functions/steam-sync/steam-sync.sh b/functions/steam-sync/steam-sync.sh index f1c20182..4707443b 100644 --- a/functions/steam-sync/steam-sync.sh +++ b/functions/steam-sync/steam-sync.sh @@ -260,171 +260,93 @@ declare -A alt_command_list=( "[Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" ) -exit_file="/tmp/retrodeck_steam_sync_exit" -rdhome="" -roms_folder="" - -# Create shortcut function -create_shortcut() { - log "d" "Entering the function create_shortcut" - - local games=("$@") - local ignore_game="$rdhome/.sync/IGNORE.sh" - - if [ ! -d "$rdhome/.sync/" ]; then - mkdir -p "$rdhome/.sync/" - log "d" ".sync directory created" - fi - - local old_games=($(ls "$rdhome/.sync/")) - - log "i" "Start removing old games" - for old_game in "${old_games[@]}"; do - log "d" "Removing old game shortcut: $old_game" - rm "$rdhome/.sync/$old_game" - done - - for game in "${games[@]}"; do - - log d "Extracted: $game" - - # Extract the game name (everything before the first path part, i.e., excluding paths and other arguments) - local game_name=$(echo "$game" | sed -n "s/^\([^']*\)'\([^']*\)'$/\1/p" | xargs) - - # Extract the command part (everything after the game name) - local file_path=$(echo "$game" | sed -n "s/^\([^']*\)'\(.*\)'/\2/p") - - # Sanitize the game name for the filename: replace special characters with underscores - local sanitized_name=$(echo "$game_name" | sed -e 's/[^A-Za-z0-9._\[\]()-]/_/g') - - log d "File Path: $file_path" - log d "Game Name: $game_name" - log d "Sanitized Name: $sanitized_name" - - # If the filename is too long, shorten it - if [ ${#sanitized_name} -gt 100 ]; then - sanitized_name=$(echo "$sanitized_name" | cut -c 1-100) - fi - - #TODO: FIXME, this part is wrong, I need to fix it - - local launcher="$rdhome/.sync/${sanitized_name}.sh" - log "d" "Creating shortcut at path: $launcher" - - # Escape the command properly by removing unnecessary backslashes - local clean_command=$(echo "$game_command" | sed 's/\\//g') - - # Populate the .sync script with the correct command - echo "#!/bin/bash" > "$launcher" - echo "" >> "$launcher" - echo 'if test "$(whereis flatpak)" = "flatpak:"' >> "$launcher" - echo "then" >> "$launcher" - echo " flatpak-spawn --host $clean_command" >> "$launcher" - echo "else" >> "$launcher" - echo " $clean_command" >> "$launcher" - echo "fi" >> "$launcher" - - chmod +x "$launcher" - done - - if [ -z "$(ls -A $rdhome/.sync/)" ]; then - log "e" "No games found in .sync directory, removing all" - touch "$ignore_game" - /app/bin/zypak-wrapper /app/srm/steam-rom-manager remove - rm "$ignore_game" - else - log "i" "Adding games to Steam via Steam ROM Manager" - /app/bin/zypak-wrapper /app/srm/steam-rom-manager add - fi -} - -# TODO: FIXME the path is returned with an unwanted ./ ---> '/home/jay/retrodeck/roms/wii/./Tales of Symphonia - Dawn of the New World [RT4PAF].wbfs' # Add games to Steam function addToSteam() { log "i" "Starting Steam Sync" + local srm_path="/var/config/steam-rom-manager/userData/userConfigurations.json" + if [ ! -f "$srm_path" ]; then + log "e" "Steam ROM Manager configuration not initialized! Initializing now." + # TODO: do a prepare_component here + resetfun "$rdhome" + fi + # Build the systems array from space-separated systems - local systems_string="arcade doom dos dreamcast flash gb gba gbc Library mame n3ds n64 nds nes portmaster ps2 psp psvita psx scummvm switch wii wiiu" + local systems_string=$(jq -r '.system | keys[]' "$features" | paste -sd' ') IFS=' ' read -r -a systems <<< "$systems_string" local games=() for system in "${systems[@]}"; do - log "d" "Steam Sync: parsing system: $system" local gamelist="$rdhome/ES-DE/gamelists/$system/gamelist.xml" - if [ ! -f "$gamelist" ]; then - log "w" "Steam Sync: game list not found for system: $system, skipping" - continue - fi + + if [ -f "$gamelist" ]; then # Extract all elements that are marked as favorite="true" game_blocks=$(xmllint --recover --xpath '//game[favorite="true"]' "$gamelist" 2>/dev/null) - log "d" "Extracted favorite game blocks:\n\n$game_blocks\n\n" - - if [ -z "$game_blocks" ]; then - log "w" "No favorite games found in $gamelist" - continue - fi + log d "Extracted favorite game blocks:\n\n$game_blocks\n\n" # Split the game_blocks into an array, where each element is a full block IFS=$'\n' read -r -d '' -a game_array <<< "$(echo "$game_blocks" | xmllint --recover --format - | sed -n '//,/<\/game>/p' | tr '\n' ' ')" # Iterate over each full block in the array for game_block in "${game_array[@]}"; do - log "d" "Processing game block:\n$game_block" + log "d" "Processing game block:\n$game_block" - # Extract the game's name and path from the full game block - local name=$(echo "$game_block" | xmllint --xpath 'string(//game/name)' - 2>/dev/null) - local path=$(echo "$game_block" | xmllint --xpath 'string(//game/path)' - 2>/dev/null) + # Extract the game's name and path from the full game block + local name=$(echo "$game_block" | xmllint --xpath 'string(//game/name)' - 2>/dev/null) + local path=$(echo "$game_block" | xmllint --xpath 'string(//game/path)' - 2>/dev/null | sed 's|^\./||') # removing the ./ - log "d" "Game name: $name" - log "d" "Game path: $launcher" + log "d" "Game name: $name" + log "d" "Game path: $path" - # Ensure the extracted name and path are valid - if [ -n "$name" ] && [ -n "$launcher" ]; then - # Check for an alternative emulator if it exists - local emulator=$(echo "$game_block" | xmllint --xpath 'string(//game/altemulator)' - 2>/dev/null) - if [ -z "$emulator" ]; then - games+=("$name ${command_list_default[$system]} '$roms_folder/$system/$launcher'") - else - games+=("$name ${alt_command_list[$emulator]} '$roms_folder/$system/$launcher'") - fi - log "d" "Steam Sync: found favorite game: $name" - else - log "w" "Steam Sync: failed to find valid name or path for favorite game" - fi + # Ensure the extracted name and path are valid + if [ -n "$name" ] && [ -n "$path" ]; then + # Check for an alternative emulator if it exists + local emulator=$(echo "$game_block" | xmllint --xpath 'string(//game/altemulator)' - 2>/dev/null) + if [ -z "$emulator" ]; then + games+=("$name ${command_list_default[$system]} '$roms_folder/$system/$path'") + else + games+=("$name ${alt_command_list[$emulator]} '$roms_folder/$system/$path'") + fi + log "d" "Steam Sync: found favorite game: $name" + else + log "w" "Steam Sync: failed to find valid name or path for favorite game" + fi + + # Sanitize the game name for the filename: replace special characters with underscores + local sanitized_name=$(echo "$name" | sed -e 's/^A-Za-z0-9._-/ /g') + local sanitized_name=$(echo "$sanitized_name" | sed -e 's/:/-/g') + local sanitized_name=$(echo "$sanitized_name" | sed -e 's/ / - /g') + local sanitized_name=$(echo "$sanitized_name" | sed -e 's/ / /g') + log d "File Path: $path" + log d "Game Name: $name" + + # If the filename is too long, shorten it + if [ ${#sanitized_name} -gt 100 ]; then + sanitized_name=$(echo "$sanitized_name" | cut -c 1-100) + fi + + log d "Sanitized Name: $sanitized_name" + + #TODO: FIXME, this part is wrong, I need to fix it + + local launcher="$rdhome/.sync/${sanitized_name}.sh" + log "d" "Creating shortcut at path: $launcher" + + # TODO: game_command is empty at the moment + # Escape the command properly by removing unnecessary backslashes + local clean_command=$(echo "$game_command" | sed 's/\\//g') + + # Populate the .sync script with the correct command + echo -e '#!/bin/bash\n' > "$launcher" + echo "flatpak run --command=$clean_command" >> "$launcher" + + chmod +x "$launcher" done - done - - create_shortcut "${games[@]}" -} - -# Start configuration function -start_config() { - log "i" "Initializing Steam Sync" - - if [ ! -f "$rd_conf" ]; then - log "e" "Config file not found" - exit 1 fi + done - while IFS= read -r line; do - if [[ $line == rdhome=* ]]; then - rdhome="${line#rdhome=}" - elif [[ $line == roms_folder=* ]]; then - roms_folder="${line#roms_folder=}" - fi - done < "$rd_conf" - - local srm_path="$HOME/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json" - if [ ! -f "$srm_path" ]; then - log "e" "Steam ROM Manager configuration not initialized! Initializing now." - resetfun "$rdhome" - fi - - if [ ! -d "$rdhome/.sync/" ]; then - mkdir -p "$rdhome/.sync/" - log "d" ".sync directory created" - fi + log i "Steam Sync: completed" } \ No newline at end of file From 6bd82c4b7e07c3a1c597306628decbc836fabf38 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 15:05:00 +0900 Subject: [PATCH 34/54] STEAM_SYNC_SH: removed deprecated commands [skip ci] --- functions/other_functions.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/functions/other_functions.sh b/functions/other_functions.sh index 461da3c5..7eb800f8 100644 --- a/functions/other_functions.sh +++ b/functions/other_functions.sh @@ -894,9 +894,7 @@ start_retrodeck() { ( #python3 /app/libexec/steam-sync/steam-sync.py #TODO: clean me source /app/libexec/steam-sync/steam-sync.sh - start_config addToSteam "$(ls "$rdhome/ES-DE/gamelists/")" - log "i" "Finished syncing with Steam" ) | zenity --progress \ --title="Syncing with Steam" \ From 61ecec25fc205f4eb2a0da5655b64bed8f3f527c Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 16:53:42 +0900 Subject: [PATCH 35/54] STEAM_SYNC_SH: fixed launcher with correct command [skip ci] --- functions/steam-sync/steam-sync.sh | 517 +++++++++++++++-------------- 1 file changed, 260 insertions(+), 257 deletions(-) diff --git a/functions/steam-sync/steam-sync.sh b/functions/steam-sync/steam-sync.sh index 4707443b..b8a68968 100644 --- a/functions/steam-sync/steam-sync.sh +++ b/functions/steam-sync/steam-sync.sh @@ -3,261 +3,261 @@ # Associative arrays for command lists # TODO: make them dynamic by readin es_config and features.json declare -A command_list_default=( -"[3do"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/opera_libretro.so", -"[amiga"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", -"[amiga1200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", -"[amiga600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", -"[amigacd32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", -"[amstradcpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so", -"[arcade"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[arduboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/arduous_libretro.so", -"[astrocde"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[atari2600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so", -"[atari5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so", -"[atari7800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prosystem_libretro.so", -"[atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so", -"[atarijaguar"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so", -"[atarijaguarcd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so", -"[atarilynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so", -"[atarist"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/hatari_libretro.so", -"[atarixe"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so", -"[atomiswave"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", -"[c64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so", -"[cavestory"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nxengine_libretro.so", -"[cdimono1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so", -"[cdtv"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", -"[chailove"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/chailove_libretro.so", -"[channelf"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freechaf_libretro.so", -"[colecovision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", -"[cps"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[cps1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[cps2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[cps3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[doom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so", -"[dos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so", -"[dreamcast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", -"[easyrpg"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so", -"[famicom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", -"[flash": "TODO: I have to catch how it works", #TODO -"[fba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so", -"[fbneo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so", -"[fds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", -"[gameandwatch"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so", -"[gamegear"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[gb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so", -"[gba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so", -"[gbc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so", -"[genesis"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[gx4000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so", -"[intellivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freeintv_libretro.so", -"[j2me"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/squirreljme_libretro.so", -"[lcdgames"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so", -"[lutro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/lutro_libretro.so", -"[mame"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[mastersystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[megacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[megacdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[megadrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[megaduck"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameduck_libretro.so", -"[mess"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mess2015_libretro.so", -"[model2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[moto"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so", -"[msx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", -"[msx1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", -"[msx2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", -"[msxturbor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", -"[multivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so", -"[n64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so", -"[n64dd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so", -"[naomi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", -"[naomigd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", -"[nds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so", -"[neogeo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so", -"[neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so", -"[neogeocdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so", -"[nes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", -"[ngp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so", -"[ngpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so", -"[odyssey2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so", -"[palm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mu_libretro.so", -"[pc88"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quasi88_libretro.so", -"[pc98"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so", -"[pcengine"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", -"[pcenginecd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", -"[pcfx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pcfx_libretro.so", -"[pokemini"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pokemini_libretro.so", -"[psx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so", -"[quake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so", -"[satellaview"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", -"[saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so", -"[saturnjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so", -"[scummvm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/scummvm_libretro.so", -"[sega32x"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so", -"[sega32xjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so", -"[sega32xna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so", -"[segacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[sfc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", -"[sg-1000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[sgb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so", -"[snes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", -"[snesna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", -"[spectravideo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", -"[sufami"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", -"[supergrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so", -"[supervision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/potator_libretro.so", -"[tg16"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", -"[tg-cd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", -"[tic80"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tic80_libretro.so", -"[to8"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so", -"[uzebox"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/uzem_libretro.so", -"[vectrex"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vecx_libretro.so", -"[vic20"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xvic_libretro.so", -"[videopac"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so", -"[virtualboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_vb_libretro.so", -"[wasm4"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/wasm4_libretro.so", -"[wonderswan"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so", -"[wonderswancolor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so", -"[x1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/x1_libretro.so", -"[x68000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/px68k_libretro.so", -"[zx81"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/81_libretro.so", -"[zxspectrum"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fuse_libretro.so", -"[switch"]="flatpak run --command=/var/data/ponzu/Yuzu/bin/yuzu net.retrodeck.retrodeck -f -g", -"[n3ds"]="flatpak run --command=/var/data/ponzu/Citra/bin/citra-qt net.retrodeck.retrodeck", -"[ps2"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch", -"[wiiu"]="flatpak run --command=Cemu-wrapper net.retrodeck.retrodeck -g", -"[gc"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e", -"[wii"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e", -"[xbox"]="flatpak run --command=xemu net.retrodeck.retrodeck -dvd_path", -"[ps3"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui", -"[psp"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck", -"[pico8"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" +["3do"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/opera_libretro.so" +["amiga"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +["amiga1200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +["amiga600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +["amigacd32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +["amstradcpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" +["arcade"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["arduboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/arduous_libretro.so" +["astrocde"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["atari2600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so" +["atari5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so" +["atari7800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prosystem_libretro.so" +["atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" +["atarijaguar"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so" +["atarijaguarcd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so" +["atarilynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so" +["atarist"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/hatari_libretro.so" +["atarixe"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" +["atomiswave"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +["c64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so" +["cavestory"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nxengine_libretro.so" +["cdimono1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so" +["cdtv"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +["chailove"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/chailove_libretro.so" +["channelf"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freechaf_libretro.so" +["colecovision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +["cps"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["cps1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["cps2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["cps3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["doom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so" +["dos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so" +["dreamcast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +["easyrpg"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so" +["famicom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" +["flash"]="TODO: I have to catch how it works", #TOD +["fba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so" +["fbneo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" +["fds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" +["gameandwatch"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so" +["gamegear"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["gb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" +["gba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" +["gbc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" +["genesis"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["gx4000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" +["intellivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freeintv_libretro.so" +["j2me"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/squirreljme_libretro.so" +["lcdgames"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so" +["lutro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/lutro_libretro.so" +["mame"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["mastersystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["megacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["megacdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["megadrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["megaduck"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameduck_libretro.so" +["mess"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mess2015_libretro.so" +["model2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["moto"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so" +["msx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +["msx1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +["msx2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +["msxturbor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +["multivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so" +["n64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so" +["n64dd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so" +["naomi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +["naomigd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +["nds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so" +["neogeo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" +["neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" +["neogeocdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" +["nes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" +["ngp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" +["ngpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" +["odyssey2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so" +["palm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mu_libretro.so" +["pc88"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quasi88_libretro.so" +["pc98"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so" +["pcengine"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +["pcenginecd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +["pcfx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pcfx_libretro.so" +["pokemini"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pokemini_libretro.so" +["psx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so" +["quake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so" +["satellaview"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +["saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" +["saturnjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" +["scummvm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/scummvm_libretro.so" +["sega32x"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" +["sega32xjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" +["sega32xna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" +["segacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["sfc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +["sg-1000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["sgb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so" +["snes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +["snesna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +["spectravideo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +["sufami"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +["supergrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so" +["supervision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/potator_libretro.so" +["tg16"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +["tg-cd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +["tic80"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tic80_libretro.so" +["to8"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so" +["uzebox"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/uzem_libretro.so" +["vectrex"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vecx_libretro.so" +["vic20"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xvic_libretro.so" +["videopac"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so" +["virtualboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_vb_libretro.so" +["wasm4"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/wasm4_libretro.so" +["wonderswan"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so" +["wonderswancolor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so" +["x1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/x1_libretro.so" +["x68000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/px68k_libretro.so" +["zx81"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/81_libretro.so" +["zxspectrum"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fuse_libretro.so" +["switch"]="flatpak run --command=/var/data/ponzu/Yuzu/bin/yuzu net.retrodeck.retrodeck -f -g" +["n3ds"]="flatpak run --command=/var/data/ponzu/Citra/bin/citra-qt net.retrodeck.retrodeck" +["ps2"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch" +["wiiu"]="flatpak run --command=Cemu-wrapper net.retrodeck.retrodeck -g" +["gc"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" +["wii"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" +["xbox"]="flatpak run --command=xemu net.retrodeck.retrodeck -dvd_path" +["ps3"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui" +["psp"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck" +["pico8"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" ) declare -A alt_command_list=( -"[PUAE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so", -"[Caprice32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so", -"[MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[Stella"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so", -"[a5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so", -"[Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so", -"[Handy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so", -"[VICE x64sc Accurate"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so", -"[SAME CDi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so", -"[blueMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so", -"[MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so", -"[PrBoom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so", -"[DOSBox-Pure"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so", -"[Mesen"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so", -"[Genesis Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so", -"[Gamebatte"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so", -"[mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so", -"[ParaLLEI N64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so", -"[DeSmuME"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so", -"[NeoCD"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so", -"[Beetle NeoPop"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so", -"[Neko Project II Kai"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so", -"[Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so", -"[Swanstation"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so", -"[TyrQuake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so", -"[Beetle Saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so", -"[Snes 9x - Current"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so", -"[Beetle SuperGrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so", -"[Yuzu (Standalone)"]="flatpak run --command=yuzu net.retrodeck.retrodeck -f -g", -"[Citra (Standalone)"]="flatpak run --command=citra net.retrodeck.retrodeck", -"[PCSX2 (Standalone)"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch", -"[Dolphin (Standalone)"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e", -"[RPCS3 Directory (Standalone)"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui", -"[PPSSPP (Standalone)"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck", -"[PICO-8 (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run", -"[PUAE 2021"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae2021_libretro.so", -"[CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so", -"[CPCemu (Standalone)": "NYI", #NYI -"[MAME 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2010_libretro.so", -"[MAME 2003-Plus"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2003_plus_libretro.so", -"[MAME 2000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2000_libretro.so", -"[MAME (Standalone)": "NYI", #NYI -"[FinalBurn Neo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so", -"[FinalBurn Neo (Standalone)": "NYI", #NYI -"[FB Alpha 2012"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so", -"[Flycast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so", -"[Flycast (Standalone)": "NYI", #NYI -"[Kronos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so", -"[Supermodel (Standalone)": "NYI", #NYI -"[Supermodel [Fullscreen] (Standalone)": "NYI", #NYI -"[Shortcut or script": "TODO: I have to catch how it works", #TODO -"[Atari800 (Standalone)": "NYI", #NYI -"[Stella 2014"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so", -"[Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so", -"[Beetle Lynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_lynx_libretro.so", -"[VICE x64 Fast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64_libretro.so", -"[VICE x64 SuperCPU"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xscpu64_libretro.so", -"[VICE x128"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x128_libretro.so", -"[Frodo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/frodo_libretro.so", -"[CDi 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cdi2015_libretro.so", -"[Gearcoleco"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearcoleco_libretro.so", -"[FB Alpha 2012 CPS-1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps1_libretro.so", -"[FB Alpha 2012 CPS-2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps2_libretro.so", -"[FB Alpha 2012 CPS-3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps3_libretro.so", -"[Boom 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro.so", -"[Boom 3 xp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so", -"[DOSBox-Core"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so", -"[DOSBox-SVN"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so", -"[Keep ES-DE running": "TODO: I have to catch how it works", #TODO -"[AppImage (Suspend ES-DE)": "TODO: I have to catch how it works", #TODO -"[AppImage (Keep ES-DE running)": "TODO: I have to catch how it works", #TODO -"[Nestopia UE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so", -"[FCEUmm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so", -"[QuickNES"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so", -"[Genesis Plus GX Wide"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_wide_libretro.so", -"[Gearsystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so", -"[SMS Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/smsplus_libretro.so", -"[SameBoy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameboy_libretro.so", -"[Gearboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearboy_libretro.so", -"[TGB Dual"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tgbdual_libretro.so", -"[Mesen-S"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so", -"[VBA-M"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vbam_libretro.so", -"[bsnes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_libretro.so", -"[mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so", -"[VBA Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vba_next_libretro.so", -"[gpSP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gpsp_libretro.so", -"[Dolphin"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dolphin_libretro.so", -"[PrimeHack (Standalone)"]="flatpak run --command=primehack-wrapper net.retrodeck.retrodeck -b -e", -"[PicoDrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so", -"[BlastEm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/blastem_libretro.so", -"[CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so", -"[fMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fmsx_libretro.so", -"[Citra"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra_libretro.so", -"[Citra 2018"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra2018_libretro.so", -"[Mupen64Plus-Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so", -"[DeSmuME 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume2015_libretro.so", -"[melonDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/melonds_libretro.so", -"[melonDS (Standalone)"]="flatpak run --command=melonDS net.retrodeck.retrodeck", -"[FinalBurn Neo neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck --subsystem neocd -L /var/config/retroarch/cores/fbneo_libretro.so", -"[RACE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/race_libretro.so", -"[Neko Project II"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so", -"[Beetle PCE FAST"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so", -"[PICO-8 Splore (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore", -"[AppImage": "TODO: I have to catch how it works", #TODO -"[LRPS2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so", -"[PCSX2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so", -"[RPCS3 Shortcut (Standalone)": "TODO: I have to catch how it works", #TODO -"[PPSSPP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so", -"[Beetle PSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so", -"[Beetle PSX HW"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so", -"[PCSX ReARMed"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx_rearmed_libretro.so", -"[DuckStation (Standalone)"]="flatpak run --command=duckstation-qt net.retrodeck.retrodeck -batch", -"[vitaQuake 2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2_libretro.so", -"[vitaQuake 2 [Rogue]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-rogue_libretro.so", -"[vitaQuake 2 [Xatrix]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-xatrix_libretro.so", -"[vitaQuake 2 [Zaero]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-zaero_libretro.so", -"[vitaQuake 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake3_libretro.so", -"[YabaSanshiro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabasanshiro_libretro.so", -"[Yabause"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabause_libretro.so", -"[Snes9x 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x2010_libretro.so", -"[bsnes-hd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_hd_beta_libretro.so", -"[bsnes-mercury Accuracy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_mercury_accuracy_libretro.so", -"[Beetle Supafaust"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supafaust_libretro.so", -"[Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +["PUAE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +["Caprice32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" +["MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["Stella"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so" +["a5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so" +["Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" +["Handy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so" +["VICE x64sc Accurate"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so" +["SAME CDi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so" +["blueMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +["MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +["PrBoom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so" +["DOSBox-Pure"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so" +["Mesen"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" +["Genesis Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +["Gamebatte"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" +["mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" +["ParaLLEI N64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so" +["DeSmuME"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so" +["NeoCD"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" +["Beetle NeoPop"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" +["Neko Project II Kai"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so" +["Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +["Swanstation"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so" +["TyrQuake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so" +["Beetle Saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" +["Snes 9x - Current"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +["Beetle SuperGrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so" +["Yuzu (Standalone)"]="flatpak run --command=yuzu net.retrodeck.retrodeck -f -g" +["Citra (Standalone)"]="flatpak run --command=citra net.retrodeck.retrodeck" +["PCSX2 (Standalone)"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch" +["Dolphin (Standalone)"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" +["RPCS3 Directory (Standalone)"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui" +["PPSSPP (Standalone)"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck" +["PICO-8 (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" +["PUAE 2021"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae2021_libretro.so" +["CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so" +["CPCemu (Standalone)"]= "NYI", #NYI +["MAME 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2010_libretro.so" +["MAME 2003-Plus"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2003_plus_libretro.so" +["MAME 2000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2000_libretro.so" +["MAME (Standalone)"]= "NYI", #NYI +["FinalBurn Neo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" +["FinalBurn Neo (Standalone)"]= "NYI", #NYI +["FB Alpha 2012"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so" +["Flycast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +["Flycast (Standalone)"]= "NYI", #NYI +["Kronos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so" +["Supermodel (Standalone)"]= "NYI", #NYI +["Supermodel [Fullscreen] (Standalone)"]= "NYI", #NYI +["Shortcut or script"]= "TODO: I have to catch how it works", #TODO +["Atari800 (Standalone)"]= "NYI", #NYI +["Stella 2014"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so" +["Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" +["Beetle Lynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_lynx_libretro.so" +["VICE x64 Fast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64_libretro.so" +["VICE x64 SuperCPU"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xscpu64_libretro.so" +["VICE x128"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x128_libretro.so" +["Frodo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/frodo_libretro.so" +["CDi 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cdi2015_libretro.so" +["Gearcoleco"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearcoleco_libretro.so" +["FB Alpha 2012 CPS-1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps1_libretro.so" +["FB Alpha 2012 CPS-2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps2_libretro.so" +["FB Alpha 2012 CPS-3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps3_libretro.so" +["Boom 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro.so" +["Boom 3 xp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so" +["DOSBox-Core"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so" +["DOSBox-SVN"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so" +["Keep ES-DE running"]= "TODO: I have to catch how it works", #TODO +["AppImage (Suspend ES-DE)"]= "TODO: I have to catch how it works", #TODO +["AppImage (Keep ES-DE running)"]= "TODO: I have to catch how it works", #TODO +["Nestopia UE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so" +["FCEUmm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so" +["QuickNES"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so" +["Genesis Plus GX Wide"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_wide_libretro.so" +["Gearsystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so" +["SMS Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/smsplus_libretro.so" +["SameBoy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameboy_libretro.so" +["Gearboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearboy_libretro.so" +["TGB Dual"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tgbdual_libretro.so" +["Mesen-S"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so" +["VBA-M"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vbam_libretro.so" +["bsnes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_libretro.so" +["mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" +["VBA Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vba_next_libretro.so" +["gpSP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gpsp_libretro.so" +["Dolphin"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dolphin_libretro.so" +["PrimeHack (Standalone)"]="flatpak run --command=primehack-wrapper net.retrodeck.retrodeck -b -e" +["PicoDrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" +["BlastEm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/blastem_libretro.so" +["CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so" +["fMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fmsx_libretro.so" +["Citra"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra_libretro.so" +["Citra 2018"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra2018_libretro.so" +["Mupen64Plus-Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so" +["DeSmuME 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume2015_libretro.so" +["melonDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/melonds_libretro.so" +["melonDS (Standalone)"]="flatpak run --command=melonDS net.retrodeck.retrodeck" +["FinalBurn Neo neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck --subsystem neocd -L /var/config/retroarch/cores/fbneo_libretro.so" +["RACE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/race_libretro.so" +["Neko Project II"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so" +["Beetle PCE FAST"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so" +["PICO-8 Splore (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore" +["AppImage"]= "TODO: I have to catch how it works", #TODO +["LRPS2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" +["PCSX2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" +["RPCS3 Shortcut (Standalone)"]= "TODO: I have to catch how it works", #TODO +["PPSSPP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so" +["Beetle PSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so" +["Beetle PSX HW"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so" +["PCSX ReARMed"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx_rearmed_libretro.so" +["DuckStation (Standalone)"]="flatpak run --command=duckstation-qt net.retrodeck.retrodeck -batch" +["vitaQuake 2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2_libretro.so" +["vitaQuake 2 [Rogue]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-rogue_libretro.so" +["vitaQuake 2 [Xatrix]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-xatrix_libretro.so" +["vitaQuake 2 [Zaero]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-zaero_libretro.so" +["vitaQuake 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake3_libretro.so" +["YabaSanshiro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabasanshiro_libretro.so" +["Yabause"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabause_libretro.so" +["Snes9x 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x2010_libretro.so" +["bsnes-hd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_hd_beta_libretro.so" +["bsnes-mercury Accuracy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_mercury_accuracy_libretro.so" +["Beetle Supafaust"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supafaust_libretro.so" +["Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" ) # Add games to Steam function @@ -333,15 +333,18 @@ addToSteam() { #TODO: FIXME, this part is wrong, I need to fix it local launcher="$rdhome/.sync/${sanitized_name}.sh" - log "d" "Creating shortcut at path: $launcher" + log d "Creating shortcut at path: $launcher" - # TODO: game_command is empty at the moment - # Escape the command properly by removing unnecessary backslashes - local clean_command=$(echo "$game_command" | sed 's/\\//g') + if [[ -v command_list_default[$system] ]]; then + command="${command_list_default[$system]}" + else + log e "$system is not included in the commands array." + continue + fi # Populate the .sync script with the correct command echo -e '#!/bin/bash\n' > "$launcher" - echo "flatpak run --command=$clean_command" >> "$launcher" + echo "$command \"$path\"" >> "$launcher" chmod +x "$launcher" done From ff4205632d0d848cb992a58b203dd39f22e01662 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 21:03:33 +0900 Subject: [PATCH 36/54] STEAM_SYNC_SH: added prepare_component [skip ci] --- .../steam-rom-manager}/userConfigurations.json | 0 .../steam-rom-manager}/userExceptions.json | 0 functions/prepare_component.sh | 10 +++++++++- 3 files changed, 9 insertions(+), 1 deletion(-) rename {functions/steam-sync => config/steam-rom-manager}/userConfigurations.json (100%) rename {functions/steam-sync => config/steam-rom-manager}/userExceptions.json (100%) diff --git a/functions/steam-sync/userConfigurations.json b/config/steam-rom-manager/userConfigurations.json similarity index 100% rename from functions/steam-sync/userConfigurations.json rename to config/steam-rom-manager/userConfigurations.json diff --git a/functions/steam-sync/userExceptions.json b/config/steam-rom-manager/userExceptions.json similarity index 100% rename from functions/steam-sync/userExceptions.json rename to config/steam-rom-manager/userExceptions.json diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 31f63eb7..ab590bd5 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -86,7 +86,15 @@ prepare_component() { log i "Prepearing Steam ROM Manager" log i "----------------------" - python3 /app/libexec/steam-sync/resetsync.py + local srm_path="/var/config/steam-rom-manager/userData" + create_dir -d $srm_path + cp -fv "$config/steam-rom-manager/"*.json $srm_path + steam-rom-manager list + + log i "Updating steamDirectory and romDirectory lines in $srm_path/userConfigurations.json" + jq --arg steamDir "$HOME/.steam/steam" --arg romDir "$rdhome/.sync" \ + '.[0].steamDirectory = $steamDir | .[0].romDirectory = $romDir' \ + "$srm_path/userConfigurations.json" > tmpfile && mv tmpfile "$srm_path/userConfigurations.json" fi if [[ "$component" =~ ^(retroarch|all)$ ]]; then From 8809e338f760aa18b6c7985f23d7b3bcf15e5d76 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 21:07:47 +0900 Subject: [PATCH 37/54] STEAM_SYNC_SH: code cleanup [skip ci] --- functions/post_update.sh | 1 + functions/prepare_component.sh | 2 +- functions/{steam-sync => }/steam-sync.sh | 6 +++++ functions/steam-sync/resetsync.py | 32 ------------------------ 4 files changed, 8 insertions(+), 33 deletions(-) rename functions/{steam-sync => }/steam-sync.sh (99%) delete mode 100644 functions/steam-sync/resetsync.py diff --git a/functions/post_update.sh b/functions/post_update.sh index d7176aec..edb7ba3e 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -434,6 +434,7 @@ post_update() { set_setting_value "$raconf" "libretro_info_path" "/var/config/retroarch/cores" "retroarch" prepare_component "reset" "ruffle" + prepare_component "reset" "steam-rom-manager" update_rd_conf # TODO: check this diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index ab590bd5..7ccf42c1 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -89,7 +89,7 @@ prepare_component() { local srm_path="/var/config/steam-rom-manager/userData" create_dir -d $srm_path cp -fv "$config/steam-rom-manager/"*.json $srm_path - steam-rom-manager list + #steam-rom-manager list #TODO: what is this for? log i "Updating steamDirectory and romDirectory lines in $srm_path/userConfigurations.json" jq --arg steamDir "$HOME/.steam/steam" --arg romDir "$rdhome/.sync" \ diff --git a/functions/steam-sync/steam-sync.sh b/functions/steam-sync.sh similarity index 99% rename from functions/steam-sync/steam-sync.sh rename to functions/steam-sync.sh index b8a68968..d0235349 100644 --- a/functions/steam-sync/steam-sync.sh +++ b/functions/steam-sync.sh @@ -347,9 +347,15 @@ addToSteam() { echo "$command \"$path\"" >> "$launcher" chmod +x "$launcher" + + zypak-wrapper steam-rom-manager add "$launcher" done fi done log i "Steam Sync: completed" +} + +remove_from_steam { + echo "TBD" } \ No newline at end of file diff --git a/functions/steam-sync/resetsync.py b/functions/steam-sync/resetsync.py deleted file mode 100644 index 80e01acc..00000000 --- a/functions/steam-sync/resetsync.py +++ /dev/null @@ -1,32 +0,0 @@ -import os -import shutil -import re - -def resetfun(rdhome): - os.system("/app/bin/zypak-wrapper /app/srm/steam-rom-manager list") - srm_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/steam-rom-manager/userData/userConfigurations.json") - if not os.path.isfile(srm_path): - print("Steam ROM Manager configuration not initialized! Initializing now.") - shutil.copyfile("/app/libexec/steam-sync/userConfigurations.json", srm_path) - shutil.copyfile("/app/libexec/steam-sync/userExceptions.json", srm_path) - - with open(srm_path,"r") as f: - data=f.read() - data=re.sub("\"steamDirectory.*","\"steamDirectory\" : \""+os.path.expanduser("~/.steam/steam")+"\",",data) - data=re.sub("\"romDirectory.*","\"romDirectory\" : \""+rdhome+"/.sync/\",",data) - with open(srm_path,"w") as f: - f.write(data) - -if __name__=="__main__": - rdhome="" - - print("Open RetroDECK config file: {}".format(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg"))) - - fl=open(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg"),"r") - lines=fl.readlines() - for line in lines: - if "rdhome" in line: - rdhome=line[7:-1] - fl.close() - - resetfun(rdhome) From 4993dbf93b9018f59ba7beb6078c3478235c9c38 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 21:11:12 +0900 Subject: [PATCH 38/54] STEAM_SYNC_SH: moved it on retrodeck quit instead of retrodeck start [skip ci] --- functions/other_functions.sh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/functions/other_functions.sh b/functions/other_functions.sh index 7eb800f8..887ffb9d 100644 --- a/functions/other_functions.sh +++ b/functions/other_functions.sh @@ -882,17 +882,10 @@ quit_retrodeck() { pkill -f "es-de" log i "Shutting down RetroDECK's framework" pkill -f "retrodeck" - log i "See you next time" -} -start_retrodeck() { - splash_screen # Check if today has a surprise splashscreen and load it if so - ponzu - - # if steam sync is on do the magic + # if steam sync is on do the magic if [[ $steam_sync == "true" ]]; then ( - #python3 /app/libexec/steam-sync/steam-sync.py #TODO: clean me source /app/libexec/steam-sync/steam-sync.sh addToSteam "$(ls "$rdhome/ES-DE/gamelists/")" ) | @@ -905,7 +898,13 @@ start_retrodeck() { --auto-close \ --auto-kill fi + + log i "See you next time" +} +start_retrodeck() { + splash_screen # Check if today has a surprise splashscreen and load it if so + ponzu log i "Starting RetroDECK v$version" es-de } From 27e5b237bf35eb3a496cdb148365476b0f2d7f37 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 21:45:48 +0900 Subject: [PATCH 39/54] STEAM_SYNC_SH: updated userConfigurations.json [skip ci] --- .../steam-rom-manager/userConfigurations.json | 76 +++++++++++++------ 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/config/steam-rom-manager/userConfigurations.json b/config/steam-rom-manager/userConfigurations.json index 2315846d..150a5b8a 100644 --- a/config/steam-rom-manager/userConfigurations.json +++ b/config/steam-rom-manager/userConfigurations.json @@ -1,9 +1,9 @@ [ { "parserType": "Glob", - "configTitle": "Shortcuts", + "configTitle": "RetroDECK", "steamDirectory": "", - "steamCategory": "${RetroDECK}", + "steamCategory": "RetroDECK", "romDirectory": "", "executableArgs": "", "executableModifier": "\"${exePath}\"", @@ -17,7 +17,7 @@ "onlineImageQueries": "${${fuzzyTitle}}", "imagePool": "${fuzzyTitle}", "userAccounts": { - "specifiedAccounts": "" + "specifiedAccounts": null }, "executable": { "path": "", @@ -39,14 +39,46 @@ "removeBrackets": true }, "controllers": { - "ps4": null, - "ps5": null, - "xbox360": null, - "xboxone": null, - "switch_joycon_left": null, - "switch_joycon_right": null, - "switch_pro": null, - "neptune": null + "ps4": { + "title": "RetroDECK Controller", + "mappingId": "RetroDECK_controller_ps4.vdf", + "profileType": "template" + }, + "ps5": { + "title": "RetroDECK Controller", + "mappingId": "RetroDECK_controller_ps5.vdf", + "profileType": "template" + }, + "xbox360": { + "title": "RetroDECK Controller", + "mappingId": "RetroDECK_controller_xbox360_simple.vdf", + "profileType": "template" + }, + "xboxone": { + "title": "RetroDECK Controller", + "mappingId": "RetroDECK_controller_xboxone_simple.vdf", + "profileType": "template" + }, + "switch_joycon_left": { + "title": "Controller", + "mappingId": "controller_switch_joycon_left_gamepad_joystick.vdf", + "profileType": "template" + }, + "switch_joycon_right": { + "title": "Controller", + "mappingId": "controller_switch_joycon_right_gamepad_joystick.vdf", + "profileType": "template" + }, + "switch_pro": { + "title": "RetroDECK Controller", + "mappingId": "RetroDECK_controller_switchpro.vdf", + "profileType": "template" + }, + "neptune": { + "title": "RetroDECK Controller", + "mappingId": "RetroDECK_controller_steamdeck_neptune_full.vdf", + "profileType": "template" + } }, "imageProviderAPIs": { "SteamGridDB": { @@ -62,20 +94,20 @@ } }, "defaultImage": { - "tall": "", - "long": "", - "hero": "", - "logo": "", - "icon": "" + "tall": null, + "long": null, + "hero": null, + "logo": null, + "icon": null }, "localImages": { - "tall": "", - "long": "", - "hero": "", - "logo": "", - "icon": "" + "tall": null, + "long": null, + "hero": null, + "logo": null, + "icon": null }, - "parserId": "171345715969886866", + "parserId": "1725539138664815", "version": 15 } ] From 8bdd08cd7464aa7778005a6219255fdcdc6c4ba2 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 5 Sep 2024 22:28:10 +0900 Subject: [PATCH 40/54] STEAM_SYNC_SH: code cleanup --- config/retrodeck/reference_lists/features.json | 2 +- functions/prepare_component.sh | 3 +-- functions/steam-sync.sh | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/config/retrodeck/reference_lists/features.json b/config/retrodeck/reference_lists/features.json index e1ba9f10..90c9fabc 100644 --- a/config/retrodeck/reference_lists/features.json +++ b/config/retrodeck/reference_lists/features.json @@ -1106,7 +1106,7 @@ "name": "ES-DE", "launch": "es-de" }, - "steam_rom_manager": { + "steam-rom-manager": { "description": "Steam ROM Manager (used to sync RetroDECK favorites with Steam)", "name": "Steam ROM Manager", "launch": "steam-rom-manager" diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 7ccf42c1..05c127bb 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -80,7 +80,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(steam_rom_manager|all)$ ]]; then + if [[ "$component" =~ ^(steam-rom-manager|all)$ ]]; then component_found="true" log i "----------------------" log i "Prepearing Steam ROM Manager" @@ -89,7 +89,6 @@ prepare_component() { local srm_path="/var/config/steam-rom-manager/userData" create_dir -d $srm_path cp -fv "$config/steam-rom-manager/"*.json $srm_path - #steam-rom-manager list #TODO: what is this for? log i "Updating steamDirectory and romDirectory lines in $srm_path/userConfigurations.json" jq --arg steamDir "$HOME/.steam/steam" --arg romDir "$rdhome/.sync" \ diff --git a/functions/steam-sync.sh b/functions/steam-sync.sh index d0235349..e7dbdad7 100644 --- a/functions/steam-sync.sh +++ b/functions/steam-sync.sh @@ -348,7 +348,7 @@ addToSteam() { chmod +x "$launcher" - zypak-wrapper steam-rom-manager add "$launcher" + /app/bin/zypak-wrapper.sh steam-rom-manager add "$launcher" done fi done From 27eea88560b6e5496692cb2a2c30c4d700b8c47d Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 08:42:56 +0900 Subject: [PATCH 41/54] Triggering build From 0d4e8e02c71ec2d6a5984fcd4e27aecc30143c42 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 08:56:59 +0900 Subject: [PATCH 42/54] STEAM_SYNC: globalized steamsync_folder variable --- functions/global.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/functions/global.sh b/functions/global.sh index b0a62c0f..e89a4934 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -52,6 +52,7 @@ git_organization_name="RetroDECK" cooker_repository_name="Cooker" # The name of the cooker repository under RetroDECK organization main_repository_name="RetroDECK" # The name of the main repository under RetroDECK organization features="$config/retrodeck/reference_lists/features.json" # A file where all the RetroDECK and component capabilities are kept for querying +steamsync_folder="$rdhome/.sync" # The folder where the favorite launchers are saved in order to be synced to Steam # Godot data transfer temp files From f64a64953df9c303d16f915ad0f94d6ec23994c0 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 08:57:36 +0900 Subject: [PATCH 43/54] STEAM_SYNC: standardized script name --- functions/other_functions.sh | 2 +- functions/{steam-sync.sh => steam_sync.sh} | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) rename functions/{steam-sync.sh => steam_sync.sh} (99%) diff --git a/functions/other_functions.sh b/functions/other_functions.sh index 887ffb9d..d32f8322 100644 --- a/functions/other_functions.sh +++ b/functions/other_functions.sh @@ -886,7 +886,7 @@ quit_retrodeck() { # if steam sync is on do the magic if [[ $steam_sync == "true" ]]; then ( - source /app/libexec/steam-sync/steam-sync.sh + source /app/libexec/steam_sync.sh addToSteam "$(ls "$rdhome/ES-DE/gamelists/")" ) | zenity --progress \ diff --git a/functions/steam-sync.sh b/functions/steam_sync.sh similarity index 99% rename from functions/steam-sync.sh rename to functions/steam_sync.sh index e7dbdad7..fb327a34 100644 --- a/functions/steam-sync.sh +++ b/functions/steam_sync.sh @@ -328,11 +328,9 @@ addToSteam() { sanitized_name=$(echo "$sanitized_name" | cut -c 1-100) fi - log d "Sanitized Name: $sanitized_name" + log d "Sanitized Name: $sanitized_name" - #TODO: FIXME, this part is wrong, I need to fix it - - local launcher="$rdhome/.sync/${sanitized_name}.sh" + local launcher="$steamsync_folder/${sanitized_name}.sh" log d "Creating shortcut at path: $launcher" if [[ -v command_list_default[$system] ]]; then @@ -356,6 +354,6 @@ addToSteam() { log i "Steam Sync: completed" } -remove_from_steam { +remove_from_steam() { echo "TBD" } \ No newline at end of file From 6ef17a93fcaa21c5c16ec3fe79b3a17db7fd7a19 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 09:01:58 +0900 Subject: [PATCH 44/54] STEAM_SYNC: fixing array --- functions/steam_sync.sh | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/functions/steam_sync.sh b/functions/steam_sync.sh index fb327a34..c6b952de 100644 --- a/functions/steam_sync.sh +++ b/functions/steam_sync.sh @@ -38,7 +38,7 @@ declare -A command_list_default=( ["dreamcast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" ["easyrpg"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so" ["famicom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" -["flash"]="TODO: I have to catch how it works", #TOD +["flash"]="TODO: I have to catch how it works" #TODO ["fba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so" ["fbneo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" ["fds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" @@ -171,21 +171,21 @@ declare -A alt_command_list=( ["PICO-8 (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" ["PUAE 2021"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae2021_libretro.so" ["CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so" -["CPCemu (Standalone)"]= "NYI", #NYI +["CPCemu (Standalone)"]="NYI" #NYI ["MAME 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2010_libretro.so" ["MAME 2003-Plus"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2003_plus_libretro.so" ["MAME 2000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2000_libretro.so" -["MAME (Standalone)"]= "NYI", #NYI +["MAME (Standalone)"]="NYI" #NYI ["FinalBurn Neo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" -["FinalBurn Neo (Standalone)"]= "NYI", #NYI +["FinalBurn Neo (Standalone)"]="NYI" #NYI ["FB Alpha 2012"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so" ["Flycast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" -["Flycast (Standalone)"]= "NYI", #NYI +["Flycast (Standalone)"]="NYI" #NYI ["Kronos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so" -["Supermodel (Standalone)"]= "NYI", #NYI -["Supermodel [Fullscreen] (Standalone)"]= "NYI", #NYI -["Shortcut or script"]= "TODO: I have to catch how it works", #TODO -["Atari800 (Standalone)"]= "NYI", #NYI +["Supermodel (Standalone)"]="NYI" #NYI +["Supermodel [Fullscreen] (Standalone)"]="NYI" #NYI +["Shortcut or script"]= "TODO: I have to catch how it works" #TODO +["Atari800 (Standalone)"]="NYI" #NYI ["Stella 2014"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so" ["Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" ["Beetle Lynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_lynx_libretro.so" @@ -202,9 +202,9 @@ declare -A alt_command_list=( ["Boom 3 xp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so" ["DOSBox-Core"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so" ["DOSBox-SVN"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so" -["Keep ES-DE running"]= "TODO: I have to catch how it works", #TODO -["AppImage (Suspend ES-DE)"]= "TODO: I have to catch how it works", #TODO -["AppImage (Keep ES-DE running)"]= "TODO: I have to catch how it works", #TODO +["Keep ES-DE running"]= "TODO: I have to catch how it works" #TODO +["AppImage (Suspend ES-DE)"]= "TODO: I have to catch how it works" #TODO +["AppImage (Keep ES-DE running)"]= "TODO: I have to catch how it works" #TODO ["Nestopia UE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so" ["FCEUmm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so" ["QuickNES"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so" @@ -237,10 +237,10 @@ declare -A alt_command_list=( ["Neko Project II"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so" ["Beetle PCE FAST"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so" ["PICO-8 Splore (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore" -["AppImage"]= "TODO: I have to catch how it works", #TODO +["AppImage"]= "TODO: I have to catch how it works" #TODO ["LRPS2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" ["PCSX2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" -["RPCS3 Shortcut (Standalone)"]= "TODO: I have to catch how it works", #TODO +["RPCS3 Shortcut (Standalone)"]= "TODO: I have to catch how it works" #TODO ["PPSSPP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so" ["Beetle PSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so" ["Beetle PSX HW"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so" From ed49e718cf6d6420480a895b07c9d118f6936ef7 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 09:05:12 +0900 Subject: [PATCH 45/54] STEAM_SYNC: fixing array -part2 --- functions/steam_sync.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/functions/steam_sync.sh b/functions/steam_sync.sh index c6b952de..dd381383 100644 --- a/functions/steam_sync.sh +++ b/functions/steam_sync.sh @@ -184,7 +184,7 @@ declare -A alt_command_list=( ["Kronos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so" ["Supermodel (Standalone)"]="NYI" #NYI ["Supermodel [Fullscreen] (Standalone)"]="NYI" #NYI -["Shortcut or script"]= "TODO: I have to catch how it works" #TODO +["Shortcut or script"]="TODO: I have to catch how it works" #TODO ["Atari800 (Standalone)"]="NYI" #NYI ["Stella 2014"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so" ["Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" @@ -202,9 +202,9 @@ declare -A alt_command_list=( ["Boom 3 xp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so" ["DOSBox-Core"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so" ["DOSBox-SVN"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so" -["Keep ES-DE running"]= "TODO: I have to catch how it works" #TODO -["AppImage (Suspend ES-DE)"]= "TODO: I have to catch how it works" #TODO -["AppImage (Keep ES-DE running)"]= "TODO: I have to catch how it works" #TODO +["Keep ES-DE running"]="TODO: I have to catch how it works" #TODO +["AppImage (Suspend ES-DE)"]="TODO: I have to catch how it works" #TODO +["AppImage (Keep ES-DE running)"]="TODO: I have to catch how it works" #TODO ["Nestopia UE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so" ["FCEUmm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so" ["QuickNES"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so" @@ -237,10 +237,10 @@ declare -A alt_command_list=( ["Neko Project II"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so" ["Beetle PCE FAST"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so" ["PICO-8 Splore (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore" -["AppImage"]= "TODO: I have to catch how it works" #TODO +["AppImage"]="TODO: I have to catch how it works" #TODO ["LRPS2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" ["PCSX2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" -["RPCS3 Shortcut (Standalone)"]= "TODO: I have to catch how it works" #TODO +["RPCS3 Shortcut (Standalone)"]="TODO: I have to catch how it works" #TODO ["PPSSPP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so" ["Beetle PSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so" ["Beetle PSX HW"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so" From d8072c9e853b104ca9a16d13df9b023a4397e89f Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 09:11:00 +0900 Subject: [PATCH 46/54] POST_UPDATE: enhanced for steam_rom_manager --- functions/post_update.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/functions/post_update.sh b/functions/post_update.sh index edb7ba3e..a9f6249b 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -434,8 +434,10 @@ post_update() { set_setting_value "$raconf" "libretro_info_path" "/var/config/retroarch/cores" "retroarch" prepare_component "reset" "ruffle" - prepare_component "reset" "steam-rom-manager" + + log d "Steam Rom Manager was added, we need to prepare it" update_rd_conf + prepare_component "reset" "steam-rom-manager" # TODO: check this # rm /var/config/emulationstation/.emulationstation # remving the old symlink to .emulationstation as it might be not needed anymore From 8395b2c2000291594384094e037c47456ec026ef Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 10:30:35 +0900 Subject: [PATCH 47/54] STEAM_SYNC: this variable is not correct here --- functions/global.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/functions/global.sh b/functions/global.sh index e89a4934..b0a62c0f 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -52,7 +52,6 @@ git_organization_name="RetroDECK" cooker_repository_name="Cooker" # The name of the cooker repository under RetroDECK organization main_repository_name="RetroDECK" # The name of the main repository under RetroDECK organization features="$config/retrodeck/reference_lists/features.json" # A file where all the RetroDECK and component capabilities are kept for querying -steamsync_folder="$rdhome/.sync" # The folder where the favorite launchers are saved in order to be synced to Steam # Godot data transfer temp files From f10306411111abf1b4747f5ce1e32c59068f473d Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 10:31:16 +0900 Subject: [PATCH 48/54] STEAM_SYNC: fixing configuration --- .../steam-rom-manager/userConfigurations.json | 10 +++---- config/steam-rom-manager/userSettings.json | 30 +++++++++++++++++++ functions/prepare_component.sh | 7 ++--- 3 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 config/steam-rom-manager/userSettings.json diff --git a/config/steam-rom-manager/userConfigurations.json b/config/steam-rom-manager/userConfigurations.json index 150a5b8a..94243acf 100644 --- a/config/steam-rom-manager/userConfigurations.json +++ b/config/steam-rom-manager/userConfigurations.json @@ -2,22 +2,20 @@ { "parserType": "Glob", "configTitle": "RetroDECK", - "steamDirectory": "", + "steamDirectory": "${steamdirglobal}", "steamCategory": "RetroDECK", - "romDirectory": "", + "romDirectory": "${romsdirglobal}", "executableArgs": "", "executableModifier": "\"${exePath}\"", "startInDirectory": "", "titleModifier": "${fuzzyTitle}", - "fetchControllerTemplatesButton": null, - "removeControllersButton": null, "imageProviders": [ "SteamGridDB" ], "onlineImageQueries": "${${fuzzyTitle}}", "imagePool": "${fuzzyTitle}", "userAccounts": { - "specifiedAccounts": null + "specifiedAccounts": "" }, "executable": { "path": "", @@ -25,7 +23,7 @@ "appendArgsToExecutable": true }, "parserInputs": { - "glob": "${title}@(.sh)" + "glob": "${title}.sh" }, "titleFromVariable": { "limitToGroups": "", diff --git a/config/steam-rom-manager/userSettings.json b/config/steam-rom-manager/userSettings.json new file mode 100644 index 00000000..0eeebea6 --- /dev/null +++ b/config/steam-rom-manager/userSettings.json @@ -0,0 +1,30 @@ +{ + "fuzzyMatcher": { + "verbose": false, + "filterProviders": true + }, + "environmentVariables": { + "steamDirectory": "", + "userAccounts": "${steamlogin}", + "romsDirectory": "", + "retroarchPath": "", + "raCoresDirectory": "", + "localImagesDirectory": "" + }, + "previewSettings": { + "retrieveCurrentSteamImages": true, + "deleteDisabledShortcuts": false, + "imageZoomPercentage": 30, + "preload": false + }, + "enabledProviders": [ + "SteamGridDB" + ], + "batchDownloadSize": 50, + "language": "en-US", + "theme": "Deck", + "offlineMode": false, + "navigationWidth": 0, + "clearLogOnTest": false, + "version": 6 +} diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 05c127bb..d2cec976 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -90,10 +90,9 @@ prepare_component() { create_dir -d $srm_path cp -fv "$config/steam-rom-manager/"*.json $srm_path - log i "Updating steamDirectory and romDirectory lines in $srm_path/userConfigurations.json" - jq --arg steamDir "$HOME/.steam/steam" --arg romDir "$rdhome/.sync" \ - '.[0].steamDirectory = $steamDir | .[0].romDirectory = $romDir' \ - "$srm_path/userConfigurations.json" > tmpfile && mv tmpfile "$srm_path/userConfigurations.json" + log i "Updating steamDirectory and romDirectory lines in $srm_path/userSettings.json" + jq '.environmentVariables.steamDirectory = "'$HOME'/.steam/steam"' $srm_path/userSettings.json" > tmp.json && mv tmp.json $srm_path/userSettings.json" + jq '.environmentVariables.romsDirectory = "'$rdhome'/.sync"' $srm_path/userSettings.json > tmp.json && mv tmp.json $srm_path/userSettings.json fi if [[ "$component" =~ ^(retroarch|all)$ ]]; then From 31dbca315d8fe28d54c15477c658496d74277c0e Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 10:31:52 +0900 Subject: [PATCH 49/54] STEAM_SYNC: adding more sanitized games cases --- functions/steam_sync.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/functions/steam_sync.sh b/functions/steam_sync.sh index dd381383..ab0b0cef 100644 --- a/functions/steam_sync.sh +++ b/functions/steam_sync.sh @@ -261,9 +261,12 @@ declare -A alt_command_list=( ) # Add games to Steam function -addToSteam() { +add_to_steam() { log "i" "Starting Steam Sync" + steamsync_folder="$rdhome/.sync" + create_dir $steamsync_folder + local srm_path="/var/config/steam-rom-manager/userData/userConfigurations.json" if [ ! -f "$srm_path" ]; then log "e" "Steam ROM Manager configuration not initialized! Initializing now." @@ -317,7 +320,8 @@ addToSteam() { # Sanitize the game name for the filename: replace special characters with underscores local sanitized_name=$(echo "$name" | sed -e 's/^A-Za-z0-9._-/ /g') - local sanitized_name=$(echo "$sanitized_name" | sed -e 's/:/-/g') + local sanitized_name=$(echo "$sanitized_name" | sed -e 's/:/ -/g') + local sanitized_name=$(echo "$sanitized_name" | sed -e 's/&/and/g') local sanitized_name=$(echo "$sanitized_name" | sed -e 's/ / - /g') local sanitized_name=$(echo "$sanitized_name" | sed -e 's/ / /g') log d "File Path: $path" @@ -345,12 +349,10 @@ addToSteam() { echo "$command \"$path\"" >> "$launcher" chmod +x "$launcher" - - /app/bin/zypak-wrapper.sh steam-rom-manager add "$launcher" done fi done - + steam-rom-manager add log i "Steam Sync: completed" } From ef58758101b88bb10771746620b96be3c1b2e012 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 10:32:33 +0900 Subject: [PATCH 50/54] STEAM_SYNC: fix framwork was shutting down before steam_sync --- functions/other_functions.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/functions/other_functions.sh b/functions/other_functions.sh index d32f8322..99b6f05d 100644 --- a/functions/other_functions.sh +++ b/functions/other_functions.sh @@ -880,14 +880,12 @@ release_selector() { quit_retrodeck() { log i "Quitting ES-DE" pkill -f "es-de" - log i "Shutting down RetroDECK's framework" - pkill -f "retrodeck" - # if steam sync is on do the magic + # if steam sync is on do the magic if [[ $steam_sync == "true" ]]; then ( source /app/libexec/steam_sync.sh - addToSteam "$(ls "$rdhome/ES-DE/gamelists/")" + add_to_steam "$(ls "$rdhome/ES-DE/gamelists/")" ) | zenity --progress \ --title="Syncing with Steam" \ @@ -898,6 +896,8 @@ quit_retrodeck() { --auto-close \ --auto-kill fi + log i "Shutting down RetroDECK's framework" + pkill -f "retrodeck" log i "See you next time" } From a27ccd800b9a229343d4f257285e9d0e57f2ec07 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 11:16:56 +0900 Subject: [PATCH 51/54] MANIFEST: fixed SRM wrapper to accept args --- net.retrodeck.retrodeck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index a8fb4ec6..1cca3504 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -176,7 +176,7 @@ modules: - type: script dest-filename: run.sh commands: - - /app/bin/zypak-wrapper.sh /app/srm/steam-rom-manager + - /app/bin/zypak-wrapper.sh /app/srm/steam-rom-manager "${@}" - type: file dest-filename: srm.deb url: https://github.com/SteamGridDB/steam-rom-manager/releases/download/v2.4.19/steam-rom-manager_2.4.19_amd64.deb From 56b775421caf0abf9c13c056c6585cc5e8b2f068 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 11:17:24 +0900 Subject: [PATCH 52/54] STEAM_SYNC: fixing SRM preparation --- functions/prepare_component.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index d2cec976..ba7d0242 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -86,13 +86,14 @@ prepare_component() { log i "Prepearing Steam ROM Manager" log i "----------------------" - local srm_path="/var/config/steam-rom-manager/userData" - create_dir -d $srm_path - cp -fv "$config/steam-rom-manager/"*.json $srm_path + local srm_userdata="/var/config/steam-rom-manager/userData" + create_dir -d "/var/config/steam-rom-manager" + create_dir -d "$srm_userdata" + cp -fv "$config/steam-rom-manager/"*.json $srm_userdata - log i "Updating steamDirectory and romDirectory lines in $srm_path/userSettings.json" - jq '.environmentVariables.steamDirectory = "'$HOME'/.steam/steam"' $srm_path/userSettings.json" > tmp.json && mv tmp.json $srm_path/userSettings.json" - jq '.environmentVariables.romsDirectory = "'$rdhome'/.sync"' $srm_path/userSettings.json > tmp.json && mv tmp.json $srm_path/userSettings.json + log i "Updating steamDirectory and romDirectory lines in $srm_userdata/userSettings.json" + jq '.environmentVariables.steamDirectory = "'$HOME'/.steam/steam"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json" + jq '.environmentVariables.romsDirectory = "'$rdhome'/.sync"' "$srm_userdata/userSettings.json" > "$srm_userdata/tmp.json" && mv -f "$srm_userdata/tmp.json" "$srm_userdata/userSettings.json" fi if [[ "$component" =~ ^(retroarch|all)$ ]]; then From 9fef51fb654af62d06c624aa221fbd33dd553c76 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 12:33:08 +0900 Subject: [PATCH 53/54] STEAM_SYNC: using run_game to build the launchers --- functions/steam_sync.sh | 538 ++++++++++++++++++++-------------------- 1 file changed, 269 insertions(+), 269 deletions(-) diff --git a/functions/steam_sync.sh b/functions/steam_sync.sh index ab0b0cef..990fb037 100644 --- a/functions/steam_sync.sh +++ b/functions/steam_sync.sh @@ -2,263 +2,263 @@ # Associative arrays for command lists # TODO: make them dynamic by readin es_config and features.json -declare -A command_list_default=( -["3do"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/opera_libretro.so" -["amiga"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" -["amiga1200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" -["amiga600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" -["amigacd32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" -["amstradcpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" -["arcade"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["arduboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/arduous_libretro.so" -["astrocde"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["atari2600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so" -["atari5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so" -["atari7800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prosystem_libretro.so" -["atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" -["atarijaguar"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so" -["atarijaguarcd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so" -["atarilynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so" -["atarist"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/hatari_libretro.so" -["atarixe"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" -["atomiswave"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" -["c64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so" -["cavestory"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nxengine_libretro.so" -["cdimono1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so" -["cdtv"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" -["chailove"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/chailove_libretro.so" -["channelf"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freechaf_libretro.so" -["colecovision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" -["cps"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["cps1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["cps2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["cps3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["doom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so" -["dos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so" -["dreamcast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" -["easyrpg"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so" -["famicom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" -["flash"]="TODO: I have to catch how it works" #TODO -["fba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so" -["fbneo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" -["fds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" -["gameandwatch"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so" -["gamegear"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["gb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" -["gba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" -["gbc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" -["genesis"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["gx4000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" -["intellivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freeintv_libretro.so" -["j2me"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/squirreljme_libretro.so" -["lcdgames"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so" -["lutro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/lutro_libretro.so" -["mame"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["mastersystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["megacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["megacdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["megadrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["megaduck"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameduck_libretro.so" -["mess"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mess2015_libretro.so" -["model2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["moto"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so" -["msx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" -["msx1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" -["msx2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" -["msxturbor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" -["multivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so" -["n64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so" -["n64dd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so" -["naomi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" -["naomigd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" -["nds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so" -["neogeo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" -["neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" -["neogeocdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" -["nes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" -["ngp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" -["ngpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" -["odyssey2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so" -["palm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mu_libretro.so" -["pc88"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quasi88_libretro.so" -["pc98"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so" -["pcengine"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" -["pcenginecd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" -["pcfx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pcfx_libretro.so" -["pokemini"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pokemini_libretro.so" -["psx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so" -["quake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so" -["satellaview"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" -["saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" -["saturnjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" -["scummvm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/scummvm_libretro.so" -["sega32x"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" -["sega32xjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" -["sega32xna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" -["segacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["sfc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" -["sg-1000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["sgb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so" -["snes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" -["snesna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" -["spectravideo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" -["sufami"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" -["supergrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so" -["supervision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/potator_libretro.so" -["tg16"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" -["tg-cd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" -["tic80"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tic80_libretro.so" -["to8"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so" -["uzebox"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/uzem_libretro.so" -["vectrex"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vecx_libretro.so" -["vic20"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xvic_libretro.so" -["videopac"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so" -["virtualboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_vb_libretro.so" -["wasm4"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/wasm4_libretro.so" -["wonderswan"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so" -["wonderswancolor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so" -["x1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/x1_libretro.so" -["x68000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/px68k_libretro.so" -["zx81"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/81_libretro.so" -["zxspectrum"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fuse_libretro.so" -["switch"]="flatpak run --command=/var/data/ponzu/Yuzu/bin/yuzu net.retrodeck.retrodeck -f -g" -["n3ds"]="flatpak run --command=/var/data/ponzu/Citra/bin/citra-qt net.retrodeck.retrodeck" -["ps2"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch" -["wiiu"]="flatpak run --command=Cemu-wrapper net.retrodeck.retrodeck -g" -["gc"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" -["wii"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" -["xbox"]="flatpak run --command=xemu net.retrodeck.retrodeck -dvd_path" -["ps3"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui" -["psp"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck" -["pico8"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" -) +# declare -A command_list_default=( +# ["3do"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/opera_libretro.so" +# ["amiga"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +# ["amiga1200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +# ["amiga600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +# ["amigacd32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +# ["amstradcpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" +# ["arcade"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["arduboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/arduous_libretro.so" +# ["astrocde"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["atari2600"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so" +# ["atari5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so" +# ["atari7800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prosystem_libretro.so" +# ["atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" +# ["atarijaguar"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so" +# ["atarijaguarcd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so" +# ["atarilynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so" +# ["atarist"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/hatari_libretro.so" +# ["atarixe"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" +# ["atomiswave"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +# ["c64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so" +# ["cavestory"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nxengine_libretro.so" +# ["cdimono1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so" +# ["cdtv"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +# ["chailove"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/chailove_libretro.so" +# ["channelf"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freechaf_libretro.so" +# ["colecovision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +# ["cps"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["cps1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["cps2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["cps3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["doom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so" +# ["dos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so" +# ["dreamcast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +# ["easyrpg"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so" +# ["famicom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" +# ["flash"]="TODO: I have to catch how it works" #TODO +# ["fba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so" +# ["fbneo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" +# ["fds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" +# ["gameandwatch"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so" +# ["gamegear"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["gb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" +# ["gba"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" +# ["gbc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" +# ["genesis"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["gx4000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" +# ["intellivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freeintv_libretro.so" +# ["j2me"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/squirreljme_libretro.so" +# ["lcdgames"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so" +# ["lutro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/lutro_libretro.so" +# ["mame"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["mastersystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["megacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["megacdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["megadrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["megaduck"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameduck_libretro.so" +# ["mess"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mess2015_libretro.so" +# ["model2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["moto"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so" +# ["msx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +# ["msx1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +# ["msx2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +# ["msxturbor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +# ["multivision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so" +# ["n64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so" +# ["n64dd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so" +# ["naomi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +# ["naomigd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +# ["nds"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so" +# ["neogeo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" +# ["neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" +# ["neogeocdjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" +# ["nes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" +# ["ngp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" +# ["ngpc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" +# ["odyssey2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so" +# ["palm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mu_libretro.so" +# ["pc88"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quasi88_libretro.so" +# ["pc98"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so" +# ["pcengine"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +# ["pcenginecd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +# ["pcfx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pcfx_libretro.so" +# ["pokemini"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pokemini_libretro.so" +# ["psx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so" +# ["quake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so" +# ["satellaview"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +# ["saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" +# ["saturnjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" +# ["scummvm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/scummvm_libretro.so" +# ["sega32x"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" +# ["sega32xjp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" +# ["sega32xna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" +# ["segacd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["sfc"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +# ["sg-1000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["sgb"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so" +# ["snes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +# ["snesna"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +# ["spectravideo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +# ["sufami"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +# ["supergrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so" +# ["supervision"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/potator_libretro.so" +# ["tg16"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +# ["tg-cd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +# ["tic80"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tic80_libretro.so" +# ["to8"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so" +# ["uzebox"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/uzem_libretro.so" +# ["vectrex"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vecx_libretro.so" +# ["vic20"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xvic_libretro.so" +# ["videopac"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so" +# ["virtualboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_vb_libretro.so" +# ["wasm4"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/wasm4_libretro.so" +# ["wonderswan"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so" +# ["wonderswancolor"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so" +# ["x1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/x1_libretro.so" +# ["x68000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/px68k_libretro.so" +# ["zx81"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/81_libretro.so" +# ["zxspectrum"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fuse_libretro.so" +# ["switch"]="flatpak run --command=/var/data/ponzu/Yuzu/bin/yuzu net.retrodeck.retrodeck -f -g" +# ["n3ds"]="flatpak run --command=/var/data/ponzu/Citra/bin/citra-qt net.retrodeck.retrodeck" +# ["ps2"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch" +# ["wiiu"]="flatpak run --command=Cemu-wrapper net.retrodeck.retrodeck -g" +# ["gc"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" +# ["wii"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" +# ["xbox"]="flatpak run --command=xemu net.retrodeck.retrodeck -dvd_path" +# ["ps3"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui" +# ["psp"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck" +# ["pico8"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" +# ) -declare -A alt_command_list=( -["PUAE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" -["Caprice32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" -["MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["Stella"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so" -["a5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so" -["Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" -["Handy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so" -["VICE x64sc Accurate"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so" -["SAME CDi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so" -["blueMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" -["MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" -["PrBoom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so" -["DOSBox-Pure"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so" -["Mesen"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" -["Genesis Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" -["Gamebatte"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" -["mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" -["ParaLLEI N64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so" -["DeSmuME"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so" -["NeoCD"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" -["Beetle NeoPop"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" -["Neko Project II Kai"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so" -["Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" -["Swanstation"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so" -["TyrQuake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so" -["Beetle Saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" -["Snes 9x - Current"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" -["Beetle SuperGrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so" -["Yuzu (Standalone)"]="flatpak run --command=yuzu net.retrodeck.retrodeck -f -g" -["Citra (Standalone)"]="flatpak run --command=citra net.retrodeck.retrodeck" -["PCSX2 (Standalone)"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch" -["Dolphin (Standalone)"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" -["RPCS3 Directory (Standalone)"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui" -["PPSSPP (Standalone)"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck" -["PICO-8 (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" -["PUAE 2021"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae2021_libretro.so" -["CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so" -["CPCemu (Standalone)"]="NYI" #NYI -["MAME 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2010_libretro.so" -["MAME 2003-Plus"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2003_plus_libretro.so" -["MAME 2000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2000_libretro.so" -["MAME (Standalone)"]="NYI" #NYI -["FinalBurn Neo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" -["FinalBurn Neo (Standalone)"]="NYI" #NYI -["FB Alpha 2012"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so" -["Flycast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" -["Flycast (Standalone)"]="NYI" #NYI -["Kronos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so" -["Supermodel (Standalone)"]="NYI" #NYI -["Supermodel [Fullscreen] (Standalone)"]="NYI" #NYI -["Shortcut or script"]="TODO: I have to catch how it works" #TODO -["Atari800 (Standalone)"]="NYI" #NYI -["Stella 2014"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so" -["Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" -["Beetle Lynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_lynx_libretro.so" -["VICE x64 Fast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64_libretro.so" -["VICE x64 SuperCPU"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xscpu64_libretro.so" -["VICE x128"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x128_libretro.so" -["Frodo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/frodo_libretro.so" -["CDi 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cdi2015_libretro.so" -["Gearcoleco"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearcoleco_libretro.so" -["FB Alpha 2012 CPS-1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps1_libretro.so" -["FB Alpha 2012 CPS-2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps2_libretro.so" -["FB Alpha 2012 CPS-3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps3_libretro.so" -["Boom 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro.so" -["Boom 3 xp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so" -["DOSBox-Core"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so" -["DOSBox-SVN"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so" -["Keep ES-DE running"]="TODO: I have to catch how it works" #TODO -["AppImage (Suspend ES-DE)"]="TODO: I have to catch how it works" #TODO -["AppImage (Keep ES-DE running)"]="TODO: I have to catch how it works" #TODO -["Nestopia UE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so" -["FCEUmm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so" -["QuickNES"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so" -["Genesis Plus GX Wide"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_wide_libretro.so" -["Gearsystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so" -["SMS Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/smsplus_libretro.so" -["SameBoy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameboy_libretro.so" -["Gearboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearboy_libretro.so" -["TGB Dual"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tgbdual_libretro.so" -["Mesen-S"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so" -["VBA-M"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vbam_libretro.so" -["bsnes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_libretro.so" -["mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" -["VBA Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vba_next_libretro.so" -["gpSP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gpsp_libretro.so" -["Dolphin"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dolphin_libretro.so" -["PrimeHack (Standalone)"]="flatpak run --command=primehack-wrapper net.retrodeck.retrodeck -b -e" -["PicoDrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" -["BlastEm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/blastem_libretro.so" -["CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so" -["fMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fmsx_libretro.so" -["Citra"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra_libretro.so" -["Citra 2018"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra2018_libretro.so" -["Mupen64Plus-Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so" -["DeSmuME 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume2015_libretro.so" -["melonDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/melonds_libretro.so" -["melonDS (Standalone)"]="flatpak run --command=melonDS net.retrodeck.retrodeck" -["FinalBurn Neo neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck --subsystem neocd -L /var/config/retroarch/cores/fbneo_libretro.so" -["RACE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/race_libretro.so" -["Neko Project II"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so" -["Beetle PCE FAST"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so" -["PICO-8 Splore (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore" -["AppImage"]="TODO: I have to catch how it works" #TODO -["LRPS2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" -["PCSX2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" -["RPCS3 Shortcut (Standalone)"]="TODO: I have to catch how it works" #TODO -["PPSSPP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so" -["Beetle PSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so" -["Beetle PSX HW"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so" -["PCSX ReARMed"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx_rearmed_libretro.so" -["DuckStation (Standalone)"]="flatpak run --command=duckstation-qt net.retrodeck.retrodeck -batch" -["vitaQuake 2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2_libretro.so" -["vitaQuake 2 [Rogue]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-rogue_libretro.so" -["vitaQuake 2 [Xatrix]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-xatrix_libretro.so" -["vitaQuake 2 [Zaero]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-zaero_libretro.so" -["vitaQuake 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake3_libretro.so" -["YabaSanshiro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabasanshiro_libretro.so" -["Yabause"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabause_libretro.so" -["Snes9x 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x2010_libretro.so" -["bsnes-hd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_hd_beta_libretro.so" -["bsnes-mercury Accuracy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_mercury_accuracy_libretro.so" -["Beetle Supafaust"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supafaust_libretro.so" -["Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" -) +# declare -A alt_command_list=( +# ["PUAE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so" +# ["Caprice32"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so" +# ["MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["Stella"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so" +# ["a5200"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so" +# ["Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" +# ["Handy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so" +# ["VICE x64sc Accurate"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so" +# ["SAME CDi"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so" +# ["blueMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so" +# ["MAME - CURRENT"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so" +# ["PrBoom"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so" +# ["DOSBox-Pure"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so" +# ["Mesen"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so" +# ["Genesis Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so" +# ["Gamebatte"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so" +# ["mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" +# ["ParaLLEI N64"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so" +# ["DeSmuME"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so" +# ["NeoCD"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so" +# ["Beetle NeoPop"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so" +# ["Neko Project II Kai"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so" +# ["Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +# ["Swanstation"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so" +# ["TyrQuake"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so" +# ["Beetle Saturn"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so" +# ["Snes 9x - Current"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so" +# ["Beetle SuperGrafx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so" +# ["Yuzu (Standalone)"]="flatpak run --command=yuzu net.retrodeck.retrodeck -f -g" +# ["Citra (Standalone)"]="flatpak run --command=citra net.retrodeck.retrodeck" +# ["PCSX2 (Standalone)"]="flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch" +# ["Dolphin (Standalone)"]="flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e" +# ["RPCS3 Directory (Standalone)"]="flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui" +# ["PPSSPP (Standalone)"]="flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck" +# ["PICO-8 (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run" +# ["PUAE 2021"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae2021_libretro.so" +# ["CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so" +# ["CPCemu (Standalone)"]="NYI" #NYI +# ["MAME 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2010_libretro.so" +# ["MAME 2003-Plus"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2003_plus_libretro.so" +# ["MAME 2000"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2000_libretro.so" +# ["MAME (Standalone)"]="NYI" #NYI +# ["FinalBurn Neo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so" +# ["FinalBurn Neo (Standalone)"]="NYI" #NYI +# ["FB Alpha 2012"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so" +# ["Flycast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so" +# ["Flycast (Standalone)"]="NYI" #NYI +# ["Kronos"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so" +# ["Supermodel (Standalone)"]="NYI" #NYI +# ["Supermodel [Fullscreen] (Standalone)"]="NYI" #NYI +# ["Shortcut or script"]="TODO: I have to catch how it works" #TODO +# ["Atari800 (Standalone)"]="NYI" #NYI +# ["Stella 2014"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so" +# ["Atari800"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so" +# ["Beetle Lynx"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_lynx_libretro.so" +# ["VICE x64 Fast"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64_libretro.so" +# ["VICE x64 SuperCPU"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xscpu64_libretro.so" +# ["VICE x128"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x128_libretro.so" +# ["Frodo"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/frodo_libretro.so" +# ["CDi 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cdi2015_libretro.so" +# ["Gearcoleco"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearcoleco_libretro.so" +# ["FB Alpha 2012 CPS-1"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps1_libretro.so" +# ["FB Alpha 2012 CPS-2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps2_libretro.so" +# ["FB Alpha 2012 CPS-3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps3_libretro.so" +# ["Boom 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro.so" +# ["Boom 3 xp"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so" +# ["DOSBox-Core"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so" +# ["DOSBox-SVN"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so" +# ["Keep ES-DE running"]="TODO: I have to catch how it works" #TODO +# ["AppImage (Suspend ES-DE)"]="TODO: I have to catch how it works" #TODO +# ["AppImage (Keep ES-DE running)"]="TODO: I have to catch how it works" #TODO +# ["Nestopia UE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so" +# ["FCEUmm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so" +# ["QuickNES"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so" +# ["Genesis Plus GX Wide"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_wide_libretro.so" +# ["Gearsystem"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so" +# ["SMS Plus GX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/smsplus_libretro.so" +# ["SameBoy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameboy_libretro.so" +# ["Gearboy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearboy_libretro.so" +# ["TGB Dual"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tgbdual_libretro.so" +# ["Mesen-S"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so" +# ["VBA-M"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vbam_libretro.so" +# ["bsnes"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_libretro.so" +# ["mGBA"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so" +# ["VBA Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vba_next_libretro.so" +# ["gpSP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gpsp_libretro.so" +# ["Dolphin"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dolphin_libretro.so" +# ["PrimeHack (Standalone)"]="flatpak run --command=primehack-wrapper net.retrodeck.retrodeck -b -e" +# ["PicoDrive"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so" +# ["BlastEm"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/blastem_libretro.so" +# ["CrocoDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so" +# ["fMSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fmsx_libretro.so" +# ["Citra"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra_libretro.so" +# ["Citra 2018"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra2018_libretro.so" +# ["Mupen64Plus-Next"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so" +# ["DeSmuME 2015"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume2015_libretro.so" +# ["melonDS"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/melonds_libretro.so" +# ["melonDS (Standalone)"]="flatpak run --command=melonDS net.retrodeck.retrodeck" +# ["FinalBurn Neo neogeocd"]="flatpak run --command=retroarch net.retrodeck.retrodeck --subsystem neocd -L /var/config/retroarch/cores/fbneo_libretro.so" +# ["RACE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/race_libretro.so" +# ["Neko Project II"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so" +# ["Beetle PCE FAST"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so" +# ["PICO-8 Splore (Standalone)"]="flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore" +# ["AppImage"]="TODO: I have to catch how it works" #TODO +# ["LRPS2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" +# ["PCSX2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so" +# ["RPCS3 Shortcut (Standalone)"]="TODO: I have to catch how it works" #TODO +# ["PPSSPP"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so" +# ["Beetle PSX"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so" +# ["Beetle PSX HW"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so" +# ["PCSX ReARMed"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx_rearmed_libretro.so" +# ["DuckStation (Standalone)"]="flatpak run --command=duckstation-qt net.retrodeck.retrodeck -batch" +# ["vitaQuake 2"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2_libretro.so" +# ["vitaQuake 2 [Rogue]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-rogue_libretro.so" +# ["vitaQuake 2 [Xatrix]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-xatrix_libretro.so" +# ["vitaQuake 2 [Zaero]"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-zaero_libretro.so" +# ["vitaQuake 3"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake3_libretro.so" +# ["YabaSanshiro"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabasanshiro_libretro.so" +# ["Yabause"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabause_libretro.so" +# ["Snes9x 2010"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x2010_libretro.so" +# ["bsnes-hd"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_hd_beta_libretro.so" +# ["bsnes-mercury Accuracy"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_mercury_accuracy_libretro.so" +# ["Beetle Supafaust"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supafaust_libretro.so" +# ["Beetle PCE"]="flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so" +# ) # Add games to Steam function add_to_steam() { @@ -307,12 +307,12 @@ add_to_steam() { # Ensure the extracted name and path are valid if [ -n "$name" ] && [ -n "$path" ]; then # Check for an alternative emulator if it exists - local emulator=$(echo "$game_block" | xmllint --xpath 'string(//game/altemulator)' - 2>/dev/null) - if [ -z "$emulator" ]; then - games+=("$name ${command_list_default[$system]} '$roms_folder/$system/$path'") - else - games+=("$name ${alt_command_list[$emulator]} '$roms_folder/$system/$path'") - fi + # local emulator=$(echo "$game_block" | xmllint --xpath 'string(//game/altemulator)' - 2>/dev/null) + # if [ -z "$emulator" ]; then + # games+=("$name ${command_list_default[$system]} '$roms_folder/$system/$path'") + # else + # games+=("$name ${alt_command_list[$emulator]} '$roms_folder/$system/$path'") + # fi log "d" "Steam Sync: found favorite game: $name" else log "w" "Steam Sync: failed to find valid name or path for favorite game" @@ -337,16 +337,16 @@ add_to_steam() { local launcher="$steamsync_folder/${sanitized_name}.sh" log d "Creating shortcut at path: $launcher" - if [[ -v command_list_default[$system] ]]; then - command="${command_list_default[$system]}" - else - log e "$system is not included in the commands array." - continue - fi + # if [[ -v command_list_default[$system] ]]; then + # command="${command_list_default[$system]}" + # else + # log e "$system is not included in the commands array." + # continue + # fi # Populate the .sync script with the correct command echo -e '#!/bin/bash\n' > "$launcher" - echo "$command \"$path\"" >> "$launcher" + echo "flatpak run net.retrodeck.retrodeck --run \"$path\"" >> "$launcher" chmod +x "$launcher" done From ac103fe9f02fcf7745d0997516003198a396b72e Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sun, 8 Sep 2024 13:31:50 +0900 Subject: [PATCH 54/54] STEAM_SYNC: added system to run_game be sure --- functions/steam_sync.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/steam_sync.sh b/functions/steam_sync.sh index 990fb037..8835e0fb 100644 --- a/functions/steam_sync.sh +++ b/functions/steam_sync.sh @@ -346,7 +346,7 @@ add_to_steam() { # Populate the .sync script with the correct command echo -e '#!/bin/bash\n' > "$launcher" - echo "flatpak run net.retrodeck.retrodeck --run \"$path\"" >> "$launcher" + echo "flatpak run net.retrodeck.retrodeck --run \"$roms_folder/$system/$path\" $system" >> "$launcher" chmod +x "$launcher" done