From 39c07caf6ce9ec6d673124740ee8501b8f5097fd Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 11:00:00 +0100 Subject: [PATCH 01/82] azahar [skip ci] --- azahar/assets/rd_config/qt-config.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azahar/assets/rd_config/qt-config.ini b/azahar/assets/rd_config/qt-config.ini index 4e84b974..eab505bd 100644 --- a/azahar/assets/rd_config/qt-config.ini +++ b/azahar/assets/rd_config/qt-config.ini @@ -632,7 +632,7 @@ Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=Ctrl+R Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=false Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context=1 Shortcuts\Main%20Window\Rotate%20Screens%20Upright\Context\default=true -Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=Ctrl+L +Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=Alt+Y Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq\default=false Shortcuts\Main%20Window\Save%20to%20Oldest%20Non-Quicksave%20Slot\Context=1 Shortcuts\Main%20Window\Save%20to%20Oldest%20Non-Quicksave%20Slot\Context\default=true @@ -672,7 +672,7 @@ Shortcuts\Main%20Window\Toggle%20Per-Application%20Speed\KeySeq= Shortcuts\Main%20Window\Toggle%20Per-Application%20Speed\KeySeq\default=false Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context=1 Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context\default=true -Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq= +Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=Ctrl+L Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq\default=false Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1 Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true From 94c206f18244c19c1695b7adb595e38375029309 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 13:29:14 +0100 Subject: [PATCH 02/82] mudlet [skip ci] --- archive_later/mudlet/component_launcher.sh | 2 +- archive_later/mudlet/component_recipe.json | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/archive_later/mudlet/component_launcher.sh b/archive_later/mudlet/component_launcher.sh index 191a7620..6b6817d0 100755 --- a/archive_later/mudlet/component_launcher.sh +++ b/archive_later/mudlet/component_launcher.sh @@ -14,4 +14,4 @@ log d "Library path is: $LD_LIBRARY_PATH" log d "AppDir is: $component_path" # NOTE: AppRun is not working for Mudlet -exec "$component_path/bin/mudlet" "$@" +exec "$component_path/mudlet" "$@" diff --git a/archive_later/mudlet/component_recipe.json b/archive_later/mudlet/component_recipe.json index f3debdd2..285318d2 100755 --- a/archive_later/mudlet/component_recipe.json +++ b/archive_later/mudlet/component_recipe.json @@ -9,7 +9,7 @@ { "type": "file", "source": "mudlet", - "dest": "bin" + "dest": "$COMPONENT_ARTIFACT_ROOT" }, { "type": "dir", @@ -41,6 +41,11 @@ "dest": "component_version", "contents": "$SOURCE_VERSION" }, + { + "type": "create", + "dest": "portable.txt", + "contents": "" + }, { "type": "file", "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", @@ -129,7 +134,7 @@ }, { "library": "libqt5keychain.so.1", - "source": "shared-libs", + "source": "lib", "dest": "shared-libs" }, { @@ -175,4 +180,4 @@ ] } ] -} +} \ No newline at end of file From c563462e58898a461c6504036f90dc75ec27c11c Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 13:52:20 +0100 Subject: [PATCH 03/82] mudlet prep tmp [skip ci] --- archive_later/mudlet/component_prepare.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/archive_later/mudlet/component_prepare.sh b/archive_later/mudlet/component_prepare.sh index 41f85661..966e32ac 100755 --- a/archive_later/mudlet/component_prepare.sh +++ b/archive_later/mudlet/component_prepare.sh @@ -11,4 +11,6 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands create_dir "$XDG_CONFIG_HOME/mudlet" dir_prep "$saves_path/muds/profiles" "$XDG_CONFIG_HOME/mudlet/portable/profiles" + dir_prep "$mods_path/mudlet/plugins" "$$XDG_CONFIG_HOME/mudlet/plugins/" + fi From 41634eb56cd46ee4f819ab15ce40437d37e58d20 Mon Sep 17 00:00:00 2001 From: IceNine451 Date: Sat, 24 Jan 2026 08:15:04 -0500 Subject: [PATCH 04/82] Azahar post-update setting changes --- azahar/component_update.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/azahar/component_update.sh b/azahar/component_update.sh index d6f43ce0..f5e21c93 100644 --- a/azahar/component_update.sh +++ b/azahar/component_update.sh @@ -34,3 +34,9 @@ if [[ $(check_version_is_older_than "$version_being_updated" "0.10.2b") == "true log i "0.10.2b Upgrade - Reset: Azahar" prepare_component "reset" "azahar" fi + +if [[ $(check_version_is_older_than "$version_being_updated" "0.10.3b") == "true" ]]; then + log i "0.10.3b Upgrade - Reset: Azahar" + set_setting_value "$azahar_qtconfig" "Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq" "Alt+Y" "azahar" "UI" + set_setting_value "$azahar_qtconfig" "hortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq" "Ctrl+L" "azahar" "UI" +fi \ No newline at end of file From cfd7c000974e295bad1b0d392e65dc8fcbe9daf6 Mon Sep 17 00:00:00 2001 From: IceNine451 Date: Sat, 24 Jan 2026 08:16:10 -0500 Subject: [PATCH 05/82] Add proper sections to Azahar reset and postmove setting changes [skip ci] --- azahar/component_prepare.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/azahar/component_prepare.sh b/azahar/component_prepare.sh index ee8f8c32..a7c2fae7 100755 --- a/azahar/component_prepare.sh +++ b/azahar/component_prepare.sh @@ -18,11 +18,11 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands cp -fT "$component_config/qt-config.ini" "$azahar_config_path/qt-config.ini" - set_setting_value "$azahar_qtconfig" "use_custom_storage" "true" "azahar" - set_setting_value "$azahar_qtconfig" "nand_directory" "$saves_path/n3ds/azahar/nand/" "azahar" - set_setting_value "$azahar_qtconfig" "sdmc_directory" "$saves_path/n3ds/azahar/sdmc/" "azahar" - set_setting_value "$azahar_qtconfig" "Paths\gamedirs\3\path" "$roms_path/n3ds" "azahar" - set_setting_value "$azahar_qtconfig" "Paths\screenshotPath" "$screenshots_path/Azahar" "azahar" + set_setting_value "$azahar_qtconfig" "use_custom_storage" "true" "azahar" "Data%20Storage" + set_setting_value "$azahar_qtconfig" "nand_directory" "$saves_path/n3ds/azahar/nand/" "azahar" "Data%20Storage" + set_setting_value "$azahar_qtconfig" "sdmc_directory" "$saves_path/n3ds/azahar/sdmc/" "azahar" "Data%20Storage" + set_setting_value "$azahar_qtconfig" "Paths\gamedirs\3\path" "$roms_path/n3ds" "azahar" "UI" + set_setting_value "$azahar_qtconfig" "Paths\screenshotPath" "$screenshots_path/Azahar" "azahar" "UI" dir_prep "$mods_path/Azahar/mods" "$azahar_mods_path" dir_prep "$texture_packs_path/Azahar/textures" "$azahar_textures_path" @@ -36,11 +36,11 @@ if [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets log i "Post-moving $component_name" log i "----------------------" - set_setting_value "$azahar_qtconfig" "use_custom_storage" "true" "azahar" - set_setting_value "$azahar_qtconfig" "nand_directory" "$saves_path/n3ds/azahar/nand/" "azahar" - set_setting_value "$azahar_qtconfig" "sdmc_directory" "$saves_path/n3ds/azahar/sdmc/" "azahar" - set_setting_value "$azahar_qtconfig" "Paths\gamedirs\3\path" "$roms_path/n3ds" "azahar" - set_setting_value "$azahar_qtconfig" "Paths\screenshotPath" "$screenshots_path/Azahar" "azahar" + set_setting_value "$azahar_qtconfig" "use_custom_storage" "true" "azahar" "Data%20Storage" + set_setting_value "$azahar_qtconfig" "nand_directory" "$saves_path/n3ds/azahar/nand/" "azahar" "Data%20Storage" + set_setting_value "$azahar_qtconfig" "sdmc_directory" "$saves_path/n3ds/azahar/sdmc/" "azahar" "Data%20Storage" + set_setting_value "$azahar_qtconfig" "Paths\gamedirs\3\path" "$roms_path/n3ds" "azahar" "UI" + set_setting_value "$azahar_qtconfig" "Paths\screenshotPath" "$screenshots_path/Azahar" "azahar" "UI" dir_prep "$mods_path/Azahar/mods" "$azahar_mods_path" dir_prep "$texture_packs_path/Azahar/textures" "$azahar_textures_path" From d4f7fd56bc3be8aa3edaa535ed89c8bbbe5a81d6 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 14:38:32 +0100 Subject: [PATCH 06/82] moved eden recipe layout [skip] --- archive_later/eden/component_recipe.json | 28 ++++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/archive_later/eden/component_recipe.json b/archive_later/eden/component_recipe.json index 1ea8e69d..365e1c8f 100755 --- a/archive_later/eden/component_recipe.json +++ b/archive_later/eden/component_recipe.json @@ -93,57 +93,57 @@ "dest": "shared-libs" }, { - "library": "libSPIRV-Tools-opt.so", - "source": "lib", + "library": "libQt6DBus.so.6", + "runtime_name": "org.kde.Platform", + "runtime_version": "6.10", "dest": "shared-libs" }, { - "library": "libSPIRV-Tools.so", + "library": "libboost_filesystem.so.1.89.0", "source": "lib", "dest": "shared-libs" }, { - "library": "libSPIRV-Tools-link.so", + "library": "libfmt.so.12", "source": "lib", "dest": "shared-libs" }, { - "library": "libQt6DBus.so.6", - "runtime_name": "org.kde.Platform", - "runtime_version": "6.10", + "library": "libmbedtls.so.21", + "source": "lib", "dest": "shared-libs" }, { - "library": "libmbedtls.so.21", + "library": "libSPIRV-Tools-opt.so", "source": "lib", "dest": "shared-libs" }, { - "library": "libmbedx509.so.7", + "library": "libSPIRV-Tools.so", "source": "lib", "dest": "shared-libs" }, { - "library": "libmbedcrypto.so.16", + "library": "libSPIRV-Tools-link.so", "source": "lib", "dest": "shared-libs" }, { - "library": "libenet.so.7", + "library": "libmbedx509.so.7", "source": "lib", "dest": "shared-libs" }, { - "library": "libboost_filesystem.so.1.89.0", + "library": "libmbedcrypto.so.16", "source": "lib", "dest": "shared-libs" }, { - "library": "libfmt.so.12", + "library": "libenet.so.7", "source": "lib", "dest": "shared-libs" } ] } ] -} +} \ No newline at end of file From 5f032e25309c0e2445a4e8df77200a0b85fa0853 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 14:52:00 +0100 Subject: [PATCH 07/82] eka temp recipe [skip ci] --- archive_later/eka2l1/component_recipe.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/archive_later/eka2l1/component_recipe.json b/archive_later/eka2l1/component_recipe.json index b9fb76cf..e1f0f448 100755 --- a/archive_later/eka2l1/component_recipe.json +++ b/archive_later/eka2l1/component_recipe.json @@ -83,6 +83,12 @@ "runtime_version": "5.15", "dest": "shared-libs" }, + { + "library": "libicui18n.so.67", + "runtime_name": "org.freedesktop.Platform", + "runtime_version": "20.08", + "dest": "shared-libs" + }, { "library": "libbz2.so.1.0", "source": "usr/lib", @@ -93,6 +99,11 @@ "runtime_name": "org.kde.Platform", "runtime_version": "5.15", "dest": "shared-libs" + }, + { + "library": "libcrypto.so.1.1", + "source": "usr/lib", + "dest": "shared-libs" } ] } From 3abbac1e8c5671a3dd4b24214240974489b9892e Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 15:02:31 +0100 Subject: [PATCH 08/82] garg recipe [skip ci] --- archive_later/gargoyle/component_recipe.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/archive_later/gargoyle/component_recipe.json b/archive_later/gargoyle/component_recipe.json index 6d64c7c0..1e969aed 100755 --- a/archive_later/gargoyle/component_recipe.json +++ b/archive_later/gargoyle/component_recipe.json @@ -81,6 +81,12 @@ "runtime_name": "org.kde.Platform", "runtime_version": "5.15-25.08", "dest": "shared-libs" + }, + { + "library": "libQt5DBus.so.5", + "runtime_name": "org.kde.Platform", + "runtime_version": "$DESIRED_QT5_RUNTIME_VERSION", + "dest": "shared-libs" }, { "library": "libgarglk.so", From 3cb6332c905f54a3999e0ddf361c0191032e9550 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 15:03:08 +0100 Subject: [PATCH 09/82] garg recipe [skip ci] --- archive_later/gargoyle/component_recipe.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/archive_later/gargoyle/component_recipe.json b/archive_later/gargoyle/component_recipe.json index 1e969aed..63e92093 100755 --- a/archive_later/gargoyle/component_recipe.json +++ b/archive_later/gargoyle/component_recipe.json @@ -82,7 +82,7 @@ "runtime_version": "5.15-25.08", "dest": "shared-libs" }, - { + { "library": "libQt5DBus.so.5", "runtime_name": "org.kde.Platform", "runtime_version": "$DESIRED_QT5_RUNTIME_VERSION", @@ -96,4 +96,4 @@ ] } ] -} +} \ No newline at end of file From 6a38f49bcdfd45e5dd79c4884581cc30b809fa0b Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 15:07:51 +0100 Subject: [PATCH 10/82] kegs [skip ci] --- archive_later/kegs/component_recipe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/kegs/component_recipe.json b/archive_later/kegs/component_recipe.json index 5c95a1f3..d3a12b8d 100755 --- a/archive_later/kegs/component_recipe.json +++ b/archive_later/kegs/component_recipe.json @@ -9,7 +9,7 @@ { "type": "dir", "source": "kegs.1.38", - "dest": "bin" + "dest": "$COMPONENT_ARTIFACT_ROOT" }, { "type": "create", From 3a1bc420c714ec6a189cd52fbe3a120a79cfcc31 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 15:29:48 +0100 Subject: [PATCH 11/82] raze fixes [skip ci] --- archive_later/raze/component_recipe.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/archive_later/raze/component_recipe.json b/archive_later/raze/component_recipe.json index 31c3ba5a..368b2d74 100755 --- a/archive_later/raze/component_recipe.json +++ b/archive_later/raze/component_recipe.json @@ -3,7 +3,7 @@ { "source_url": "org.zdoom.Raze", "source_type": "flatpak_id", - "version": "RAZE_DESIRED_VERSION", + "version": "$RAZE_DESIRED_VERSION", "dest": "user", "extraction_type": "flatpak", "assets": [ @@ -15,7 +15,7 @@ { "type": "file", "source": "share/raze/raze.pk3", - "dest": "" + "dest": "$COMPONENT_ARTIFACT_ROOT" }, { "type": "dir", From f88bb881c98e5873d07f6f136ac7affde400276f Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 15:36:36 +0100 Subject: [PATCH 12/82] shad [skip ci] --- archive_later/shadps4/component_launcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/shadps4/component_launcher.sh b/archive_later/shadps4/component_launcher.sh index 4483a573..f621f66d 100755 --- a/archive_later/shadps4/component_launcher.sh +++ b/archive_later/shadps4/component_launcher.sh @@ -15,4 +15,4 @@ log d "Library Path: $LD_LIBRARY_PATH" log d "QT Plugin Path: $QT_PLUGIN_PATH" log d "QT QPA Platform Plugin Path is: $QT_QPA_PLATFORM_PLUGIN_PATH" -exec "$component_path/bin/shadps4" "$@" +exec "$component_path/bin/shadPS4QtLauncher" "$@" From d076739a3191d4a085625605599ac34b99bde4d5 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 15:49:55 +0100 Subject: [PATCH 13/82] uz tiny fix [skip ci] --- archive_later/uzdoom/component_recipe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/uzdoom/component_recipe.json b/archive_later/uzdoom/component_recipe.json index 5e654047..c1ccef2e 100644 --- a/archive_later/uzdoom/component_recipe.json +++ b/archive_later/uzdoom/component_recipe.json @@ -1,7 +1,7 @@ { "uzdoom": [ { - "source_url": "https://github.com/UZDoom/UZDoom/releases/download/{VERSION}/Linux-UZDoom-*.AppImage ", + "source_url": "https://github.com/UZDoom/UZDoom/releases/download/{VERSION}/Linux-UZDoom-*.AppImage", "source_type": "github_release", "version": "$UZDOOM_DESIRED_VERSION", "extraction_type": "appimage", From e5c123eec284798cfca0fec2d3dc92cd8b41e362 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 15:56:27 +0100 Subject: [PATCH 14/82] vpx [skip ci] --- archive_later/vpinballx/component_recipe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/vpinballx/component_recipe.json b/archive_later/vpinballx/component_recipe.json index 10b961b6..3a773240 100755 --- a/archive_later/vpinballx/component_recipe.json +++ b/archive_later/vpinballx/component_recipe.json @@ -56,7 +56,7 @@ { "type": "file", "source": "VPinballX_BGFX", - "dest": "bin/VPinballX_BGFX" + "dest": "$COMPONENT_ARTIFACT_ROOT" }, { "type": "dir", From d82e531cf8b655135183faf3f675c087f4e27a83 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 24 Jan 2026 17:21:29 +0100 Subject: [PATCH 15/82] template component files [skip ci] --- .../commanderx16/component_functions.sh | 1 + .../commanderx16/component_launcher.sh | 15 ++++++ .../commanderx16/component_manifest.json | 11 ++++ .../commanderx16/component_prepare.sh | 11 ++++ .../commanderx16/component_recipe.json | 54 +++++++++++++++++++ .../commanderx16/component_update.sh | 6 +++ archive_later/ecwolf/component_functions.sh | 1 + archive_later/ecwolf/component_launcher.sh | 15 ++++++ archive_later/ecwolf/component_manifest.json | 11 ++++ archive_later/ecwolf/component_prepare.sh | 11 ++++ archive_later/ecwolf/component_recipe.json | 54 +++++++++++++++++++ archive_later/ecwolf/component_update.sh | 6 +++ archive_later/fs-uea/component_functions.sh | 1 + archive_later/fs-uea/component_launcher.sh | 15 ++++++ archive_later/fs-uea/component_manifest.json | 11 ++++ archive_later/fs-uea/component_prepare.sh | 11 ++++ archive_later/fs-uea/component_recipe.json | 54 +++++++++++++++++++ archive_later/fs-uea/component_update.sh | 6 +++ archive_later/gametank/component_functions.sh | 1 + archive_later/gametank/component_launcher.sh | 15 ++++++ .../gametank/component_manifest.json | 11 ++++ archive_later/gametank/component_prepare.sh | 11 ++++ archive_later/gametank/component_recipe.json | 54 +++++++++++++++++++ archive_later/gametank/component_update.sh | 6 +++ archive_later/linapple/component_functions.sh | 1 + archive_later/linapple/component_launcher.sh | 15 ++++++ .../linapple/component_manifest.json | 11 ++++ archive_later/linapple/component_prepare.sh | 11 ++++ archive_later/linapple/component_recipe.json | 54 +++++++++++++++++++ archive_later/linapple/component_update.sh | 6 +++ .../mb-microvision/component_functions.sh | 1 + .../mb-microvision/component_launcher.sh | 15 ++++++ .../mb-microvision/component_manifest.json | 11 ++++ .../mb-microvision/component_prepare.sh | 11 ++++ .../mb-microvision/component_recipe.json | 54 +++++++++++++++++++ .../mb-microvision/component_update.sh | 6 +++ archive_later/mednafen/component_functions.sh | 1 + archive_later/mednafen/component_launcher.sh | 15 ++++++ .../mednafen/component_manifest.json | 11 ++++ archive_later/mednafen/component_prepare.sh | 11 ++++ archive_later/mednafen/component_recipe.json | 54 +++++++++++++++++++ archive_later/mednafen/component_update.sh | 6 +++ .../oricutron/component_functions.sh | 1 + archive_later/oricutron/component_launcher.sh | 15 ++++++ .../oricutron/component_manifest.json | 11 ++++ archive_later/oricutron/component_prepare.sh | 11 ++++ archive_later/oricutron/component_recipe.json | 54 +++++++++++++++++++ archive_later/oricutron/component_update.sh | 6 +++ archive_later/sdl2trs/component_functions.sh | 1 + archive_later/sdl2trs/component_launcher.sh | 15 ++++++ archive_later/sdl2trs/component_manifest.json | 11 ++++ archive_later/sdl2trs/component_prepare.sh | 11 ++++ archive_later/sdl2trs/component_recipe.json | 54 +++++++++++++++++++ archive_later/sdl2trs/component_update.sh | 6 +++ archive_later/zesarux/component_functions.sh | 1 + archive_later/zesarux/component_launcher.sh | 15 ++++++ archive_later/zesarux/component_manifest.json | 11 ++++ archive_later/zesarux/component_prepare.sh | 11 ++++ archive_later/zesarux/component_recipe.json | 54 +++++++++++++++++++ archive_later/zesarux/component_update.sh | 6 +++ 60 files changed, 980 insertions(+) create mode 100755 archive_later/commanderx16/component_functions.sh create mode 100755 archive_later/commanderx16/component_launcher.sh create mode 100644 archive_later/commanderx16/component_manifest.json create mode 100755 archive_later/commanderx16/component_prepare.sh create mode 100755 archive_later/commanderx16/component_recipe.json create mode 100644 archive_later/commanderx16/component_update.sh create mode 100755 archive_later/ecwolf/component_functions.sh create mode 100755 archive_later/ecwolf/component_launcher.sh create mode 100644 archive_later/ecwolf/component_manifest.json create mode 100755 archive_later/ecwolf/component_prepare.sh create mode 100755 archive_later/ecwolf/component_recipe.json create mode 100644 archive_later/ecwolf/component_update.sh create mode 100755 archive_later/fs-uea/component_functions.sh create mode 100755 archive_later/fs-uea/component_launcher.sh create mode 100644 archive_later/fs-uea/component_manifest.json create mode 100755 archive_later/fs-uea/component_prepare.sh create mode 100755 archive_later/fs-uea/component_recipe.json create mode 100644 archive_later/fs-uea/component_update.sh create mode 100755 archive_later/gametank/component_functions.sh create mode 100755 archive_later/gametank/component_launcher.sh create mode 100644 archive_later/gametank/component_manifest.json create mode 100755 archive_later/gametank/component_prepare.sh create mode 100755 archive_later/gametank/component_recipe.json create mode 100644 archive_later/gametank/component_update.sh create mode 100755 archive_later/linapple/component_functions.sh create mode 100755 archive_later/linapple/component_launcher.sh create mode 100644 archive_later/linapple/component_manifest.json create mode 100755 archive_later/linapple/component_prepare.sh create mode 100755 archive_later/linapple/component_recipe.json create mode 100644 archive_later/linapple/component_update.sh create mode 100755 archive_later/mb-microvision/component_functions.sh create mode 100755 archive_later/mb-microvision/component_launcher.sh create mode 100644 archive_later/mb-microvision/component_manifest.json create mode 100755 archive_later/mb-microvision/component_prepare.sh create mode 100755 archive_later/mb-microvision/component_recipe.json create mode 100644 archive_later/mb-microvision/component_update.sh create mode 100755 archive_later/mednafen/component_functions.sh create mode 100755 archive_later/mednafen/component_launcher.sh create mode 100644 archive_later/mednafen/component_manifest.json create mode 100755 archive_later/mednafen/component_prepare.sh create mode 100755 archive_later/mednafen/component_recipe.json create mode 100644 archive_later/mednafen/component_update.sh create mode 100755 archive_later/oricutron/component_functions.sh create mode 100755 archive_later/oricutron/component_launcher.sh create mode 100644 archive_later/oricutron/component_manifest.json create mode 100755 archive_later/oricutron/component_prepare.sh create mode 100755 archive_later/oricutron/component_recipe.json create mode 100644 archive_later/oricutron/component_update.sh create mode 100755 archive_later/sdl2trs/component_functions.sh create mode 100755 archive_later/sdl2trs/component_launcher.sh create mode 100644 archive_later/sdl2trs/component_manifest.json create mode 100755 archive_later/sdl2trs/component_prepare.sh create mode 100755 archive_later/sdl2trs/component_recipe.json create mode 100644 archive_later/sdl2trs/component_update.sh create mode 100755 archive_later/zesarux/component_functions.sh create mode 100755 archive_later/zesarux/component_launcher.sh create mode 100644 archive_later/zesarux/component_manifest.json create mode 100755 archive_later/zesarux/component_prepare.sh create mode 100755 archive_later/zesarux/component_recipe.json create mode 100644 archive_later/zesarux/component_update.sh diff --git a/archive_later/commanderx16/component_functions.sh b/archive_later/commanderx16/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/commanderx16/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/commanderx16/component_launcher.sh b/archive_later/commanderx16/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/commanderx16/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/commanderx16/component_manifest.json b/archive_later/commanderx16/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/commanderx16/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/commanderx16/component_prepare.sh b/archive_later/commanderx16/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/commanderx16/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/commanderx16/component_recipe.json b/archive_later/commanderx16/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/commanderx16/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/commanderx16/component_update.sh b/archive_later/commanderx16/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/commanderx16/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/ecwolf/component_functions.sh b/archive_later/ecwolf/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/ecwolf/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/ecwolf/component_launcher.sh b/archive_later/ecwolf/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/ecwolf/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/ecwolf/component_manifest.json b/archive_later/ecwolf/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/ecwolf/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/ecwolf/component_prepare.sh b/archive_later/ecwolf/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/ecwolf/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/ecwolf/component_recipe.json b/archive_later/ecwolf/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/ecwolf/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/ecwolf/component_update.sh b/archive_later/ecwolf/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/ecwolf/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/fs-uea/component_functions.sh b/archive_later/fs-uea/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/fs-uea/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/fs-uea/component_launcher.sh b/archive_later/fs-uea/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/fs-uea/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/fs-uea/component_manifest.json b/archive_later/fs-uea/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/fs-uea/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/fs-uea/component_prepare.sh b/archive_later/fs-uea/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/fs-uea/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/fs-uea/component_recipe.json b/archive_later/fs-uea/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/fs-uea/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/fs-uea/component_update.sh b/archive_later/fs-uea/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/fs-uea/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/gametank/component_functions.sh b/archive_later/gametank/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/gametank/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/gametank/component_launcher.sh b/archive_later/gametank/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/gametank/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/gametank/component_manifest.json b/archive_later/gametank/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/gametank/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/gametank/component_prepare.sh b/archive_later/gametank/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/gametank/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/gametank/component_recipe.json b/archive_later/gametank/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/gametank/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/gametank/component_update.sh b/archive_later/gametank/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/gametank/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/linapple/component_functions.sh b/archive_later/linapple/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/linapple/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/linapple/component_launcher.sh b/archive_later/linapple/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/linapple/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/linapple/component_manifest.json b/archive_later/linapple/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/linapple/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/linapple/component_prepare.sh b/archive_later/linapple/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/linapple/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/linapple/component_recipe.json b/archive_later/linapple/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/linapple/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/linapple/component_update.sh b/archive_later/linapple/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/linapple/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/mb-microvision/component_functions.sh b/archive_later/mb-microvision/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/mb-microvision/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/mb-microvision/component_launcher.sh b/archive_later/mb-microvision/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/mb-microvision/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/mb-microvision/component_manifest.json b/archive_later/mb-microvision/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/mb-microvision/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/mb-microvision/component_prepare.sh b/archive_later/mb-microvision/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/mb-microvision/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/mb-microvision/component_recipe.json b/archive_later/mb-microvision/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/mb-microvision/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/mb-microvision/component_update.sh b/archive_later/mb-microvision/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/mb-microvision/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/mednafen/component_functions.sh b/archive_later/mednafen/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/mednafen/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/mednafen/component_launcher.sh b/archive_later/mednafen/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/mednafen/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/mednafen/component_manifest.json b/archive_later/mednafen/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/mednafen/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/mednafen/component_prepare.sh b/archive_later/mednafen/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/mednafen/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/mednafen/component_recipe.json b/archive_later/mednafen/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/mednafen/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/mednafen/component_update.sh b/archive_later/mednafen/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/mednafen/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/oricutron/component_functions.sh b/archive_later/oricutron/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/oricutron/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/oricutron/component_launcher.sh b/archive_later/oricutron/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/oricutron/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/oricutron/component_manifest.json b/archive_later/oricutron/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/oricutron/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/oricutron/component_prepare.sh b/archive_later/oricutron/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/oricutron/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/oricutron/component_recipe.json b/archive_later/oricutron/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/oricutron/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/oricutron/component_update.sh b/archive_later/oricutron/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/oricutron/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/sdl2trs/component_functions.sh b/archive_later/sdl2trs/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/sdl2trs/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/sdl2trs/component_launcher.sh b/archive_later/sdl2trs/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/sdl2trs/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/sdl2trs/component_manifest.json b/archive_later/sdl2trs/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/sdl2trs/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/sdl2trs/component_prepare.sh b/archive_later/sdl2trs/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/sdl2trs/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/sdl2trs/component_recipe.json b/archive_later/sdl2trs/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/sdl2trs/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/sdl2trs/component_update.sh b/archive_later/sdl2trs/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/sdl2trs/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/zesarux/component_functions.sh b/archive_later/zesarux/component_functions.sh new file mode 100755 index 00000000..a9bf588e --- /dev/null +++ b/archive_later/zesarux/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/archive_later/zesarux/component_launcher.sh b/archive_later/zesarux/component_launcher.sh new file mode 100755 index 00000000..3deebfbf --- /dev/null +++ b/archive_later/zesarux/component_launcher.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +# Launch +exec "$component_path/" "$@" diff --git a/archive_later/zesarux/component_manifest.json b/archive_later/zesarux/component_manifest.json new file mode 100644 index 00000000..53e1a758 --- /dev/null +++ b/archive_later/zesarux/component_manifest.json @@ -0,0 +1,11 @@ +{ + "component-name": { + "name": "shortname", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "description": "Desc", + "component_type": "Type", + "system_friendly_name": "Long Name" + } +} diff --git a/archive_later/zesarux/component_prepare.sh b/archive_later/zesarux/component_prepare.sh new file mode 100755 index 00000000..750dc113 --- /dev/null +++ b/archive_later/zesarux/component_prepare.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" +fi diff --git a/archive_later/zesarux/component_recipe.json b/archive_later/zesarux/component_recipe.json new file mode 100755 index 00000000..068f8e2d --- /dev/null +++ b/archive_later/zesarux/component_recipe.json @@ -0,0 +1,54 @@ +{ + "delta-patcher": [ + { + "source_url": "", + "source_type": "", + "version": "latest", + "dest": "user", + "extraction_type": "", + "assets": [ + { + "type": "dir", + "source": "bin", + "dest": "bin" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ], + "libs": [] + } + ] +} \ No newline at end of file diff --git a/archive_later/zesarux/component_update.sh b/archive_later/zesarux/component_update.sh new file mode 100644 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/zesarux/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + From f22439889861ed1fae7a938d72bb265f9f675a92 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 07:00:08 +0100 Subject: [PATCH 16/82] metainfo pass [skip ci] --- archive_later/commanderx16/component_manifest.json | 10 +++++----- archive_later/ecwolf/component_manifest.json | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/archive_later/commanderx16/component_manifest.json b/archive_later/commanderx16/component_manifest.json index 53e1a758..62d3810c 100644 --- a/archive_later/commanderx16/component_manifest.json +++ b/archive_later/commanderx16/component_manifest.json @@ -1,11 +1,11 @@ { - "component-name": { + "commander-x16": { "name": "shortname", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", + "url_webpage": "https://www.commanderx16.com/", "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" + "description": "Commander X16 is a X16 emulator.", + "component_type": "Emulator", + "system_friendly_name": "Commander X16" } } diff --git a/archive_later/ecwolf/component_manifest.json b/archive_later/ecwolf/component_manifest.json index 53e1a758..ac7eaecd 100644 --- a/archive_later/ecwolf/component_manifest.json +++ b/archive_later/ecwolf/component_manifest.json @@ -1,11 +1,11 @@ { - "component-name": { - "name": "shortname", + "ecwolf": { + "name": "ECWolf", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", + "url_webpage": "https://maniacsvault.net/ecwolf/", + "url_source": "https://github.com/ECWolfEngine/ECWolf", + "description": "ECWolf is a Wolfenstein 3D engine based of Wolf4SDL", + "component_type": "Engine", "system_friendly_name": "Long Name" } } From a0d15fb171464d813d63a2aff48bce96ae302fc1 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 07:10:00 +0100 Subject: [PATCH 17/82] metainfo pass [skip ci] --- .../commanderx16/component_manifest.json | 5 ++-- archive_later/ecwolf/component_manifest.json | 5 ++-- archive_later/fs-uea/component_manifest.json | 29 ++++++++++++++----- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/archive_later/commanderx16/component_manifest.json b/archive_later/commanderx16/component_manifest.json index 62d3810c..f2d18715 100644 --- a/archive_later/commanderx16/component_manifest.json +++ b/archive_later/commanderx16/component_manifest.json @@ -1,11 +1,12 @@ { "commander-x16": { - "name": "shortname", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "name": "commander-x16", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/commander-x16/commander-x16-guide/", "url_webpage": "https://www.commanderx16.com/", "url_source": "https://github.com/marco-calautti/DeltaPatcher", "description": "Commander X16 is a X16 emulator.", "component_type": "Emulator", + "system": "cx16", "system_friendly_name": "Commander X16" } } diff --git a/archive_later/ecwolf/component_manifest.json b/archive_later/ecwolf/component_manifest.json index ac7eaecd..5258f8fc 100644 --- a/archive_later/ecwolf/component_manifest.json +++ b/archive_later/ecwolf/component_manifest.json @@ -1,11 +1,12 @@ { "ecwolf": { "name": "ECWolf", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_engine_guides/ecwolf/ecwolf-guide/", "url_webpage": "https://maniacsvault.net/ecwolf/", "url_source": "https://github.com/ECWolfEngine/ECWolf", "description": "ECWolf is a Wolfenstein 3D engine based of Wolf4SDL", "component_type": "Engine", - "system_friendly_name": "Long Name" + "system": "wolf", + "system_friendly_name": "ECWolf" } } diff --git a/archive_later/fs-uea/component_manifest.json b/archive_later/fs-uea/component_manifest.json index 53e1a758..62cb99cf 100644 --- a/archive_later/fs-uea/component_manifest.json +++ b/archive_later/fs-uea/component_manifest.json @@ -1,11 +1,24 @@ { - "component-name": { - "name": "shortname", + "fs-uae": { + "name": "fs-uae", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" + "url_webpage": "https://fs-uae.net/", + "url_source": "https://github.com/FrodeSolheim/fs-uae", + "description": "FS-UAE is a Amiga Emulator", + "component_type": "Emulator", + "system_friendly_name": [ + "Amiga", + "Amiga 1200", + "Amiga 600", + "Amiga CD32", + "Commodore CDTV" + ], + "system": [ + "amiga", + "amiga1200", + "amiga600", + "amigacd32", + "cdtv" + ] } -} +} \ No newline at end of file From 08226ad2ce6f93f8368740b92ac8ec925e63530b Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 07:21:29 +0100 Subject: [PATCH 18/82] metadata [skip ci] --- archive_later/fs-uea/component_manifest.json | 2 +- archive_later/gametank/component_manifest.json | 17 +++++++++-------- archive_later/gargoyle/component_manifest.json | 6 +++--- archive_later/linapple/component_manifest.json | 11 ----------- .../linapple/component_functions.sh | 0 .../linapple/component_launcher.sh | 0 archive_old/linapple/component_manifest.json | 12 ++++++++++++ .../linapple/component_prepare.sh | 0 .../linapple/component_recipe.json | 0 .../linapple/component_update.sh | 0 10 files changed, 25 insertions(+), 23 deletions(-) delete mode 100644 archive_later/linapple/component_manifest.json rename {archive_later => archive_old}/linapple/component_functions.sh (100%) rename {archive_later => archive_old}/linapple/component_launcher.sh (100%) create mode 100644 archive_old/linapple/component_manifest.json rename {archive_later => archive_old}/linapple/component_prepare.sh (100%) rename {archive_later => archive_old}/linapple/component_recipe.json (100%) rename {archive_later => archive_old}/linapple/component_update.sh (100%) diff --git a/archive_later/fs-uea/component_manifest.json b/archive_later/fs-uea/component_manifest.json index 62cb99cf..2e4ce4d2 100644 --- a/archive_later/fs-uea/component_manifest.json +++ b/archive_later/fs-uea/component_manifest.json @@ -1,7 +1,7 @@ { "fs-uae": { "name": "fs-uae", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/fs-uae/fs-uae-guide/", "url_webpage": "https://fs-uae.net/", "url_source": "https://github.com/FrodeSolheim/fs-uae", "description": "FS-UAE is a Amiga Emulator", diff --git a/archive_later/gametank/component_manifest.json b/archive_later/gametank/component_manifest.json index 53e1a758..d9d9e262 100644 --- a/archive_later/gametank/component_manifest.json +++ b/archive_later/gametank/component_manifest.json @@ -1,11 +1,12 @@ { - "component-name": { - "name": "shortname", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" + "gametank": { + "name": "gametank", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/gametank/gametank-guide/", + "url_webpage": "https://github.com/clydeshaffer/GameTankEmulator", + "url_source": "https://github.com/clydeshaffer/GameTankEmulator", + "description": "GameTank is a GameTank 8-bit Emulator", + "component_type": "Emulator", + "system_friendly_name": "GameTank 8-bit Emulator", + "system": "gametank" } } diff --git a/archive_later/gargoyle/component_manifest.json b/archive_later/gargoyle/component_manifest.json index ec187d5d..61736f83 100644 --- a/archive_later/gargoyle/component_manifest.json +++ b/archive_later/gargoyle/component_manifest.json @@ -4,9 +4,9 @@ "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/gargoyle/gargoyle-guide/.", "url_webpage": "https://ccxvii.net/gargoyle/", "url_source": "https://github.com/garglk/garglk/", - "description": "Gargoyle is a IF player and emulator supporting: Z‑Machine, TADS, Hugo, Glulx and more.", + "description": "Gargoyle is a IF player and emulator supporting: Z-Machine, TADS, Hugo, Glulx and more.", "component_type": "Emulator", - "system_friendly_name": "Interactive Fiction Player", - "system": "gargoyle" + "system_friendly_name": "Gargoyle Interactive Fiction Player", + "system": "zmachine" } } \ No newline at end of file diff --git a/archive_later/linapple/component_manifest.json b/archive_later/linapple/component_manifest.json deleted file mode 100644 index 53e1a758..00000000 --- a/archive_later/linapple/component_manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "component-name": { - "name": "shortname", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" - } -} diff --git a/archive_later/linapple/component_functions.sh b/archive_old/linapple/component_functions.sh similarity index 100% rename from archive_later/linapple/component_functions.sh rename to archive_old/linapple/component_functions.sh diff --git a/archive_later/linapple/component_launcher.sh b/archive_old/linapple/component_launcher.sh similarity index 100% rename from archive_later/linapple/component_launcher.sh rename to archive_old/linapple/component_launcher.sh diff --git a/archive_old/linapple/component_manifest.json b/archive_old/linapple/component_manifest.json new file mode 100644 index 00000000..1d258962 --- /dev/null +++ b/archive_old/linapple/component_manifest.json @@ -0,0 +1,12 @@ +{ + "linapple": { + "name": "linapple", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/gametank/gametank-guide/", + "url_webpage": "https://sourceforge.net/projects/linapple/", + "url_source": "https://linapple.sourceforge.net/", + "description": "LinApple is a Apple 2 / 2E Emulator", + "component_type": "Emulator", + "system_friendly_name": "LinApple a Apple 2 / 2E Emulator", + "system": "apple2" + } +} diff --git a/archive_later/linapple/component_prepare.sh b/archive_old/linapple/component_prepare.sh similarity index 100% rename from archive_later/linapple/component_prepare.sh rename to archive_old/linapple/component_prepare.sh diff --git a/archive_later/linapple/component_recipe.json b/archive_old/linapple/component_recipe.json similarity index 100% rename from archive_later/linapple/component_recipe.json rename to archive_old/linapple/component_recipe.json diff --git a/archive_later/linapple/component_update.sh b/archive_old/linapple/component_update.sh similarity index 100% rename from archive_later/linapple/component_update.sh rename to archive_old/linapple/component_update.sh From cbfd74e161d67d270de467131c1f06c51186456b Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 07:49:34 +0100 Subject: [PATCH 19/82] metadata [skip ci] --- .../commanderx16/component_manifest.json | 2 +- archive_later/fs-uea/component_manifest.json | 2 +- .../mb-microvision/component_manifest.json | 18 +++++++++--------- .../mednafen/component_manifest.json | 19 ++++++++++--------- .../oricutron/component_manifest.json | 19 ++++++++++--------- archive_later/scummvm/component_manifest.json | 2 +- archive_later/sdl2trs/component_manifest.json | 19 ++++++++++--------- archive_later/tsugaru/component_manifest.json | 2 +- archive_later/zesarux/component_manifest.json | 18 +++++++++--------- archive_old/linapple/component_manifest.json | 2 +- 10 files changed, 53 insertions(+), 50 deletions(-) diff --git a/archive_later/commanderx16/component_manifest.json b/archive_later/commanderx16/component_manifest.json index f2d18715..9bbd7d2f 100644 --- a/archive_later/commanderx16/component_manifest.json +++ b/archive_later/commanderx16/component_manifest.json @@ -1,6 +1,6 @@ { "commander-x16": { - "name": "commander-x16", + "name": "Commander X16", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/commander-x16/commander-x16-guide/", "url_webpage": "https://www.commanderx16.com/", "url_source": "https://github.com/marco-calautti/DeltaPatcher", diff --git a/archive_later/fs-uea/component_manifest.json b/archive_later/fs-uea/component_manifest.json index 2e4ce4d2..a6e6bac7 100644 --- a/archive_later/fs-uea/component_manifest.json +++ b/archive_later/fs-uea/component_manifest.json @@ -1,6 +1,6 @@ { "fs-uae": { - "name": "fs-uae", + "name": "FS-UAE", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/fs-uae/fs-uae-guide/", "url_webpage": "https://fs-uae.net/", "url_source": "https://github.com/FrodeSolheim/fs-uae", diff --git a/archive_later/mb-microvision/component_manifest.json b/archive_later/mb-microvision/component_manifest.json index 53e1a758..9ca4a562 100644 --- a/archive_later/mb-microvision/component_manifest.json +++ b/archive_later/mb-microvision/component_manifest.json @@ -1,11 +1,11 @@ { - "component-name": { - "name": "shortname", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" + "mvem": { + "name": "MVEM", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/mvem/mvem-guide/", + "url_source": "https://www.raphkoster.com/2017/05/07/microvision-emulator-release/", + "description": "MVEM is a Microvision Emulator.", + "component_type": "Emulator", + "system_friendly_name": "Microvision", + "system": "microvision" } -} +} \ No newline at end of file diff --git a/archive_later/mednafen/component_manifest.json b/archive_later/mednafen/component_manifest.json index 53e1a758..53242c19 100644 --- a/archive_later/mednafen/component_manifest.json +++ b/archive_later/mednafen/component_manifest.json @@ -1,11 +1,12 @@ { - "component-name": { - "name": "shortname", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" + "mednafen": { + "name": "Mednafen", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/mednafen/mednafen-guide/", + "url_webpage": "https://mednafen.github.io/", + "url_source": "https://mednafen.github.io/", + "system": "mednafen", + "component_type": "Multi-Emulator", + "description": "Mednafen is a multi-emulator.", + "system_friendly_name": "Multiple Retro Systems" } -} +} \ No newline at end of file diff --git a/archive_later/oricutron/component_manifest.json b/archive_later/oricutron/component_manifest.json index 53e1a758..5663c321 100644 --- a/archive_later/oricutron/component_manifest.json +++ b/archive_later/oricutron/component_manifest.json @@ -1,11 +1,12 @@ { - "component-name": { - "name": "shortname", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" + "oricutron": { + "name": "Oricutron", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/oricutron/oricutron-guide/", + "url_webpage": "https://www.petergordon.org.uk/oricutron/", + "url_source": "https://github.com/pete-gordon/oricutron", + "system": "oric", + "component_type": "Emulator", + "description": "Oricutron is a Oric-1/Atmos/Telestrat/Pravetz 8D Emulator", + "system_friendly_name": "Oric" } -} +} \ No newline at end of file diff --git a/archive_later/scummvm/component_manifest.json b/archive_later/scummvm/component_manifest.json index 28d05160..c9027a01 100644 --- a/archive_later/scummvm/component_manifest.json +++ b/archive_later/scummvm/component_manifest.json @@ -5,7 +5,7 @@ "url_webpage": "https://ruffle.rs/", "url_source": "https://www.scummvm.org/", "component_type": "Engine", - "description": "ScummVM is an engine that allows you to play: classic graphic point-and-click adventure games, text adventure games, and RPGs.", + "description": "ScummVM is an engine for point-and-click adventure, text adventure, RPG games.", "system_friendly_name": "ScummVM", "system": "scummvm", "compatible_presets": { diff --git a/archive_later/sdl2trs/component_manifest.json b/archive_later/sdl2trs/component_manifest.json index 53e1a758..bc133dff 100644 --- a/archive_later/sdl2trs/component_manifest.json +++ b/archive_later/sdl2trs/component_manifest.json @@ -1,11 +1,12 @@ { - "component-name": { - "name": "shortname", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" + "sdl2trs": { + "name": "SDL2TRS", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/sdl2trs/sdl2trs-guide/", + "url_webpage": "https://gitlab.com/jengun/sdltrs", + "url_source": "https://gitlab.com/jengun/sdltrs", + "system": "trs-80", + "component_type": "Emulator", + "description": "SDL2TRS is a Tandy TRS-80 Model I/III/4/4P (trs-80) Emulator", + "system_friendly_name": "trs-80" } -} +} \ No newline at end of file diff --git a/archive_later/tsugaru/component_manifest.json b/archive_later/tsugaru/component_manifest.json index c33dde22..5aaf2e49 100644 --- a/archive_later/tsugaru/component_manifest.json +++ b/archive_later/tsugaru/component_manifest.json @@ -3,7 +3,7 @@ "name": "Tsugaru", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/tsugaru/tsugaru-guide/", "url_source": "https://github.com/captainys/TOWNSEMU", - "description": "FM TOWNS / Marty Emulator - Tsugaru", + "description": "Tsugaru is a FM TOWNS / Marty Emulator", "system_friendly_name": "FM TOWNS / Marty", "component_type": "Emulator", "system": "fmtowns" diff --git a/archive_later/zesarux/component_manifest.json b/archive_later/zesarux/component_manifest.json index 53e1a758..ec77b084 100644 --- a/archive_later/zesarux/component_manifest.json +++ b/archive_later/zesarux/component_manifest.json @@ -1,11 +1,11 @@ { - "component-name": { - "name": "shortname", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_tool_guides/delta-patcher/delta-patcher-guide/", - "url_webpage": "https://github.com/marco-calautti/DeltaPatcher", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Desc", - "component_type": "Type", - "system_friendly_name": "Long Name" + "zesarux": { + "name": "ZEsarUX", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/zesarux/zesarux-guide/", + "url_source": "https://github.com/chernandezba/zesarux", + "description": "ZEsarUX is a ZX Second Emulator", + "system_friendly_name": "ZX Second", + "component_type": "Emulator", + "system": "zxnext" } -} +} \ No newline at end of file diff --git a/archive_old/linapple/component_manifest.json b/archive_old/linapple/component_manifest.json index 1d258962..91a3ab3f 100644 --- a/archive_old/linapple/component_manifest.json +++ b/archive_old/linapple/component_manifest.json @@ -3,7 +3,7 @@ "name": "linapple", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/gametank/gametank-guide/", "url_webpage": "https://sourceforge.net/projects/linapple/", - "url_source": "https://linapple.sourceforge.net/", + "url_source": "https://github.com/linappleii/linapple", "description": "LinApple is a Apple 2 / 2E Emulator", "component_type": "Emulator", "system_friendly_name": "LinApple a Apple 2 / 2E Emulator", From 1be454584fce2396751546854ce6dc01b76d7dc9 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 09:35:42 +0100 Subject: [PATCH 20/82] metadata [skip ci] --- archive_later/zesarux/component_manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/archive_later/zesarux/component_manifest.json b/archive_later/zesarux/component_manifest.json index ec77b084..a561faac 100644 --- a/archive_later/zesarux/component_manifest.json +++ b/archive_later/zesarux/component_manifest.json @@ -3,8 +3,8 @@ "name": "ZEsarUX", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/zesarux/zesarux-guide/", "url_source": "https://github.com/chernandezba/zesarux", - "description": "ZEsarUX is a ZX Second Emulator", - "system_friendly_name": "ZX Second", + "description": "ZEsarUX is a ZX Spectrum Next Emulator", + "system_friendly_name": "ZX Spectrum Next", "component_type": "Emulator", "system": "zxnext" } From bb594d496085a34e353873db109b211011f5dbcc Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 09:42:29 +0100 Subject: [PATCH 21/82] initial recipes [skip ci] --- archive_later/zesarux/component_recipe.json | 30 ++++++++++----------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/archive_later/zesarux/component_recipe.json b/archive_later/zesarux/component_recipe.json index 068f8e2d..13f99cd3 100755 --- a/archive_later/zesarux/component_recipe.json +++ b/archive_later/zesarux/component_recipe.json @@ -1,21 +1,20 @@ { - "delta-patcher": [ - { - "source_url": "", - "source_type": "", - "version": "latest", - "dest": "user", - "extraction_type": "", + "zesarux": [ + { + "source_url": "https://github.com/chernandezba/zesarux/releases/download/{VERSION}/*_ubuntu22_x86_64.tar.gz", + "source_type": "github_release", + "version": "$ZESARUX_DESIRED_VERSION", + "extraction_type": "archive", "assets": [ - { - "type": "dir", - "source": "bin", - "dest": "bin" - }, { "type": "create", "dest": "component_version", - "contents": "$SOURCE_VERSION" + "contents": "$FRAMEWORK_DESIRED_VERSION" + }, + { + "type": "dir", + "source": "$REPO_ROOT/$COMPONENT_NAME/rd_config", + "dest": "rd_config" }, { "type": "file", @@ -47,8 +46,7 @@ "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", "dest": "$COMPONENT_ARTIFACT_ROOT" } - ], - "libs": [] + ] } ] -} \ No newline at end of file +} From 684123ddbe81ae548523b46c8d7bdbf45bc2ea64 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 09:45:38 +0100 Subject: [PATCH 22/82] initial recipes [skip ci] --- archive_later/zesarux/component_recipe.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/archive_later/zesarux/component_recipe.json b/archive_later/zesarux/component_recipe.json index 13f99cd3..999c81db 100755 --- a/archive_later/zesarux/component_recipe.json +++ b/archive_later/zesarux/component_recipe.json @@ -1,6 +1,6 @@ { "zesarux": [ - { + { "source_url": "https://github.com/chernandezba/zesarux/releases/download/{VERSION}/*_ubuntu22_x86_64.tar.gz", "source_type": "github_release", "version": "$ZESARUX_DESIRED_VERSION", @@ -46,7 +46,14 @@ "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", "dest": "$COMPONENT_ARTIFACT_ROOT" } + ], + "libs": [ + { + "library": "libSDL-1.2.so.0", + "source": "", + "dest": "shared-libs" + } ] } ] -} +} \ No newline at end of file From 8c26521e28934ad6273694425d021eec9b8cb757 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 09:56:52 +0100 Subject: [PATCH 23/82] initial recipes [skip ci] --- .../component_functions.sh | 0 .../component_launcher.sh | 0 .../component_manifest.json | 0 .../component_prepare.sh | 0 .../component_recipe.json | 21 +++++-------------- .../component_update.sh | 0 .../component_functions.sh | 0 .../{sdl2trs => sdltrs}/component_launcher.sh | 0 .../component_manifest.json | 6 +++--- .../{sdl2trs => sdltrs}/component_prepare.sh | 0 .../{sdl2trs => sdltrs}/component_recipe.json | 21 +++++++++++++------ .../{sdl2trs => sdltrs}/component_update.sh | 0 archive_later/zesarux/component_launcher.sh | 2 +- 13 files changed, 24 insertions(+), 26 deletions(-) rename archive_later/{mb-microvision => mvem}/component_functions.sh (100%) rename archive_later/{mb-microvision => mvem}/component_launcher.sh (100%) rename archive_later/{mb-microvision => mvem}/component_manifest.json (100%) rename archive_later/{mb-microvision => mvem}/component_prepare.sh (100%) rename archive_later/{mb-microvision => mvem}/component_recipe.json (73%) rename archive_later/{mb-microvision => mvem}/component_update.sh (100%) rename archive_later/{sdl2trs => sdltrs}/component_functions.sh (100%) rename archive_later/{sdl2trs => sdltrs}/component_launcher.sh (100%) rename archive_later/{sdl2trs => sdltrs}/component_manifest.json (72%) rename archive_later/{sdl2trs => sdltrs}/component_prepare.sh (100%) rename archive_later/{sdl2trs => sdltrs}/component_recipe.json (70%) rename archive_later/{sdl2trs => sdltrs}/component_update.sh (100%) diff --git a/archive_later/mb-microvision/component_functions.sh b/archive_later/mvem/component_functions.sh similarity index 100% rename from archive_later/mb-microvision/component_functions.sh rename to archive_later/mvem/component_functions.sh diff --git a/archive_later/mb-microvision/component_launcher.sh b/archive_later/mvem/component_launcher.sh similarity index 100% rename from archive_later/mb-microvision/component_launcher.sh rename to archive_later/mvem/component_launcher.sh diff --git a/archive_later/mb-microvision/component_manifest.json b/archive_later/mvem/component_manifest.json similarity index 100% rename from archive_later/mb-microvision/component_manifest.json rename to archive_later/mvem/component_manifest.json diff --git a/archive_later/mb-microvision/component_prepare.sh b/archive_later/mvem/component_prepare.sh similarity index 100% rename from archive_later/mb-microvision/component_prepare.sh rename to archive_later/mvem/component_prepare.sh diff --git a/archive_later/mb-microvision/component_recipe.json b/archive_later/mvem/component_recipe.json similarity index 73% rename from archive_later/mb-microvision/component_recipe.json rename to archive_later/mvem/component_recipe.json index 068f8e2d..76b129d0 100755 --- a/archive_later/mb-microvision/component_recipe.json +++ b/archive_later/mvem/component_recipe.json @@ -1,22 +1,11 @@ { - "delta-patcher": [ + "mvem": [ { - "source_url": "", - "source_type": "", - "version": "latest", - "dest": "user", - "extraction_type": "", + "source_url": "$REPO_ROOT/$COMPONENT_NAME/assets/flips-linux.zip", + "source_type": "local", + "version": "$MVEM_DESIRED_VERSION", + "extraction_type": "archive", "assets": [ - { - "type": "dir", - "source": "bin", - "dest": "bin" - }, - { - "type": "create", - "dest": "component_version", - "contents": "$SOURCE_VERSION" - }, { "type": "file", "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", diff --git a/archive_later/mb-microvision/component_update.sh b/archive_later/mvem/component_update.sh similarity index 100% rename from archive_later/mb-microvision/component_update.sh rename to archive_later/mvem/component_update.sh diff --git a/archive_later/sdl2trs/component_functions.sh b/archive_later/sdltrs/component_functions.sh similarity index 100% rename from archive_later/sdl2trs/component_functions.sh rename to archive_later/sdltrs/component_functions.sh diff --git a/archive_later/sdl2trs/component_launcher.sh b/archive_later/sdltrs/component_launcher.sh similarity index 100% rename from archive_later/sdl2trs/component_launcher.sh rename to archive_later/sdltrs/component_launcher.sh diff --git a/archive_later/sdl2trs/component_manifest.json b/archive_later/sdltrs/component_manifest.json similarity index 72% rename from archive_later/sdl2trs/component_manifest.json rename to archive_later/sdltrs/component_manifest.json index bc133dff..6b0891ec 100644 --- a/archive_later/sdl2trs/component_manifest.json +++ b/archive_later/sdltrs/component_manifest.json @@ -1,12 +1,12 @@ { - "sdl2trs": { - "name": "SDL2TRS", + "sdltrs": { + "name": "SDLTRS", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/sdl2trs/sdl2trs-guide/", "url_webpage": "https://gitlab.com/jengun/sdltrs", "url_source": "https://gitlab.com/jengun/sdltrs", "system": "trs-80", "component_type": "Emulator", - "description": "SDL2TRS is a Tandy TRS-80 Model I/III/4/4P (trs-80) Emulator", + "description": "SDLTRS is a Tandy TRS-80 Model I/III/4/4P (trs-80) Emulator", "system_friendly_name": "trs-80" } } \ No newline at end of file diff --git a/archive_later/sdl2trs/component_prepare.sh b/archive_later/sdltrs/component_prepare.sh similarity index 100% rename from archive_later/sdl2trs/component_prepare.sh rename to archive_later/sdltrs/component_prepare.sh diff --git a/archive_later/sdl2trs/component_recipe.json b/archive_later/sdltrs/component_recipe.json similarity index 70% rename from archive_later/sdl2trs/component_recipe.json rename to archive_later/sdltrs/component_recipe.json index 068f8e2d..28e6e8de 100755 --- a/archive_later/sdl2trs/component_recipe.json +++ b/archive_later/sdltrs/component_recipe.json @@ -1,11 +1,10 @@ { - "delta-patcher": [ + "xroar": [ { - "source_url": "", - "source_type": "", - "version": "latest", - "dest": "user", - "extraction_type": "", + "source_url": "https://github.com/RetroDECK/SDLTRS/releases/download/{VERSION}/sdltrs.tar.gz", + "source_type": "github_release", + "version": "$SDLTRS_DESIRED_VERSION", + "extraction_type": "archive", "assets": [ { "type": "dir", @@ -17,6 +16,16 @@ "dest": "component_version", "contents": "$SOURCE_VERSION" }, + { + "type": "dir", + "source": "$REPO_ROOT/$COMPONENT_NAME/assets/rd_config", + "dest": "rd_config" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/assets/rd_config/gamecontrollerdb.txt", + "dest": "bin" + }, { "type": "file", "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", diff --git a/archive_later/sdl2trs/component_update.sh b/archive_later/sdltrs/component_update.sh similarity index 100% rename from archive_later/sdl2trs/component_update.sh rename to archive_later/sdltrs/component_update.sh diff --git a/archive_later/zesarux/component_launcher.sh b/archive_later/zesarux/component_launcher.sh index 3deebfbf..7371909e 100755 --- a/archive_later/zesarux/component_launcher.sh +++ b/archive_later/zesarux/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/" "$@" +exec "$component_path/zesarux" "$@" From bb920e58b149834e418d5796984c8e33fbd4494c Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 25 Jan 2026 16:59:48 +0100 Subject: [PATCH 24/82] return easy [skip ci] --- {archive_old => archive_later}/easyrpg/EasyRPG Verdict.txt | 0 {archive_old => archive_later}/easyrpg/component_functions.sh | 0 {archive_old => archive_later}/easyrpg/component_launcher.sh | 0 {archive_old => archive_later}/easyrpg/component_manifest.json | 0 {archive_old => archive_later}/easyrpg/component_prepare.sh | 0 {archive_old => archive_later}/easyrpg/component_recipe.json | 0 {archive_old => archive_later}/easyrpg/rd_config/config.ini | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename {archive_old => archive_later}/easyrpg/EasyRPG Verdict.txt (100%) rename {archive_old => archive_later}/easyrpg/component_functions.sh (100%) rename {archive_old => archive_later}/easyrpg/component_launcher.sh (100%) rename {archive_old => archive_later}/easyrpg/component_manifest.json (100%) rename {archive_old => archive_later}/easyrpg/component_prepare.sh (100%) rename {archive_old => archive_later}/easyrpg/component_recipe.json (100%) rename {archive_old => archive_later}/easyrpg/rd_config/config.ini (100%) diff --git a/archive_old/easyrpg/EasyRPG Verdict.txt b/archive_later/easyrpg/EasyRPG Verdict.txt similarity index 100% rename from archive_old/easyrpg/EasyRPG Verdict.txt rename to archive_later/easyrpg/EasyRPG Verdict.txt diff --git a/archive_old/easyrpg/component_functions.sh b/archive_later/easyrpg/component_functions.sh similarity index 100% rename from archive_old/easyrpg/component_functions.sh rename to archive_later/easyrpg/component_functions.sh diff --git a/archive_old/easyrpg/component_launcher.sh b/archive_later/easyrpg/component_launcher.sh similarity index 100% rename from archive_old/easyrpg/component_launcher.sh rename to archive_later/easyrpg/component_launcher.sh diff --git a/archive_old/easyrpg/component_manifest.json b/archive_later/easyrpg/component_manifest.json similarity index 100% rename from archive_old/easyrpg/component_manifest.json rename to archive_later/easyrpg/component_manifest.json diff --git a/archive_old/easyrpg/component_prepare.sh b/archive_later/easyrpg/component_prepare.sh similarity index 100% rename from archive_old/easyrpg/component_prepare.sh rename to archive_later/easyrpg/component_prepare.sh diff --git a/archive_old/easyrpg/component_recipe.json b/archive_later/easyrpg/component_recipe.json similarity index 100% rename from archive_old/easyrpg/component_recipe.json rename to archive_later/easyrpg/component_recipe.json diff --git a/archive_old/easyrpg/rd_config/config.ini b/archive_later/easyrpg/rd_config/config.ini similarity index 100% rename from archive_old/easyrpg/rd_config/config.ini rename to archive_later/easyrpg/rd_config/config.ini From b95071d8880947d218fa6dd64f37d68d491d5791 Mon Sep 17 00:00:00 2001 From: lazzite Date: Mon, 26 Jan 2026 06:01:27 +0100 Subject: [PATCH 25/82] ares [skip ci] --- .../ares/assets/rd_config/settings.bml | 431 ++++++++++++++++++ archive_later/ares/component_recipe.json | 7 +- 2 files changed, 437 insertions(+), 1 deletion(-) create mode 100644 archive_later/ares/assets/rd_config/settings.bml diff --git a/archive_later/ares/assets/rd_config/settings.bml b/archive_later/ares/assets/rd_config/settings.bml new file mode 100644 index 00000000..9167f13f --- /dev/null +++ b/archive_later/ares/assets/rd_config/settings.bml @@ -0,0 +1,431 @@ +Video + Driver: OpenGL 3.2 + Monitor: Primary + Format: ARGB24 + Exclusive: false + Blocking: false + PresentSRGB: false + ThreadedRenderer: true + NativeFullScreen: false + Flush: false + Shader: bilinear.slangp + Multiplier: 2 + Output: Scale + AspectCorrectionMode: Standard + AdaptiveSizing: true + AutoCentering: false + Luminance: 1.0 + Saturation: 1.0 + Gamma: 1.0 + ColorBleed: false + ColorEmulation: true + DeepBlackBoost: false + InterframeBlending: true + Overscan: false + PixelAccuracy: false + Quality: SD + Supersampling: false + DisableVideoInterfaceProcessing: false + WeaveDeinterlacing: true +Audio + Driver: SDL + Device: Default + Frequency: 48000 + Latency: 20 + Exclusive: false + Blocking: true + Dynamic: false + Mute: false + Volume: 1.0 + Balance: 0.0 +Input + Driver: SDL + Defocus: Pause +Boot + Fast: false + Debugger: false + AwaitGDBClient: false + Prefer: NTSC-U +General + ShowStatusBar: true + Rewind: false + RunAhead: false + AutoSaveMemory: true + HomebrewMode: false + ForceInterpreter: false +Rewind + Length: 100 + Frequency: 10 +Paths + Home: + Firmware: RETRODECKBIOSDIR + Saves: RETRODECKSAVESDIR/ares/ + Screenshots: RETRODECKSCREENSHORTSDIR/ares + Debugging: RETRODECKLOGSDIR/ares + ArcadeRoms: RETRODECKROMSDIR/arcade/ + SuperFamicom + GameBoy: RETRODECKROMSDIR/sgb/ + BSMemory: RETRODECKROMSDIR/satellaview/ + SufamiTurbo: RETRODECKROMSDIR/sufami/ +DebugServer + Port: 9123 + Enabled: false + UseIPv4: false +Nintendo64 + ExpansionPak: true + ControllerPakBankString: 32KiB (Default) + Visible: true + Path +GameBoyAdvance + Player: false + Visible: true + Path + Firmware + BIOS.World +MegaDrive + TMSS: false + Visible: true + Path +Recent + Game-1 + Game-2 + Game-3 + Game-4 + Game-5 + Game-6 + Game-7 + Game-8 + Game-9 +VirtualPad1 + Pad.Up: 0x3/1/1/Lo;; + Pad.Down: 0x3/1/1/Hi;; + Pad.Left: 0x3/1/0/Lo;; + Pad.Right: 0x3/1/0/Hi;; + Select: 0x3/3/6;; + Start: 0x3/3/7;; + A..South: 0x3/3/0;; + B..East: 0x3/3/1;; + X..West: 0x3/3/2;; + Y..North: 0x3/3/3;; + L-Bumper: 0x3/3/4;; + R-Bumper: 0x3/3/5;; + L-Trigger: 0x3/0/2/Hi;; + R-Trigger: 0x3/0/5/Hi;; + L-Stick..Click: 0x3/3/9;; + R-Stick..Click: 0x3/3/10;; + L-Up: 0x3/0/1/Lo;; + L-Down: 0x3/0/1/Hi;; + L-Left: 0x3/0/0/Lo;; + L-Right: 0x3/0/0/Hi;; + R-Up: 0x3/0/4/Lo;; + R-Down: 0x3/0/4/Hi;; + R-Left: 0x3/0/3/Lo;; + R-Right: 0x3/0/3/Hi;; + Rumble: ;; +VirtualMouse1 + X: 0x2/0/0;; + Y: 0x2/0/1;; + Left: 0x2/1/0;; + Middle: 0x2/1/1;; + Right: 0x2/1/1;; + Extra: ;; +VirtualPad2 + Pad.Up: 0x100000003/1/1/Lo;; + Pad.Down: 0x100000003/1/1/Hi;; + Pad.Left: 0x100000003/1/0/Lo;; + Pad.Right: 0x100000003/1/0/Hi;; + Select: 0x100000003/3/6;; + Start: 0x100000003/3/7;; + A..South: 0x100000003/3/1;; + B..East: 0x100000003/3/0;; + X..West: 0x100000003/3/3;; + Y..North: 0x100000003/3/2;; + L-Bumper: 0x100000003/3/4;; + R-Bumper: 0x100000003/3/5;; + L-Trigger: 0x100000003/0/2/Hi;; + R-Trigger: 0x100000003/0/5/Hi;; + L-Stick..Click: 0x100000003/3/9;; + R-Stick..Click: 0x100000003/3/10;; + L-Up: 0x100000003/0/1/Lo;; + L-Down: 0x100000003/0/1/Hi;; + L-Left: 0x100000003/0/0/Lo;; + L-Right: 0x100000003/0/0/Hi;; + R-Up: 0x100000003/0/4/Lo;; + R-Down: 0x100000003/0/4/Hi;; + R-Left: 0x100000003/0/3/Lo;; + R-Right: 0x100000003/0/3/Hi;; + Rumble: ;; +VirtualMouse2 + X: ;; + Y: ;; + Left: ;; + Middle: ;; + Right: ;; + Extra: ;; +VirtualPad3 + Pad.Up: 0x200000003/1/1/Lo;; + Pad.Down: 0x200000003/1/1/Hi;; + Pad.Left: 0x200000003/1/0/Lo;; + Pad.Right: 0x200000003/1/0/Hi;; + Select: 0x200000003/3/6;; + Start: 0x200000003/3/7;; + A..South: 0x200000003/3/1;; + B..East: 0x200000003/3/0;; + X..West: 0x200000003/3/3;; + Y..North: 0x200000003/3/2;; + L-Bumper: 0x200000003/3/4;; + R-Bumper: 0x200000003/3/5;; + L-Trigger: 0x200000003/0/2/Hi;; + R-Trigger: 0x200000003/0/5/Hi;; + L-Stick..Click: 0x200000003/3/9;; + R-Stick..Click: 0x200000003/3/10;; + L-Up: 0x200000003/0/1/Lo;; + L-Down: 0x200000003/0/1/Hi;; + L-Left: 0x200000003/0/0/Lo;; + L-Right: 0x200000003/0/0/Hi;; + R-Up: 0x200000003/0/4/Lo;; + R-Down: 0x200000003/0/4/Hi;; + R-Left: 0x200000003/0/3/Lo;; + R-Right: 0x200000003/0/3/Hi;; + Rumble: ;; +VirtualMouse3 + X: ;; + Y: ;; + Left: ;; + Middle: ;; + Right: ;; + Extra: ;; +VirtualPad4 + Pad.Up: 0x300000003/1/1/Lo;; + Pad.Down: 0x300000003/1/1/Hi;; + Pad.Left: 0x300000003/1/0/Lo;; + Pad.Right: 0x300000003/1/0/Hi;; + Select: 0x300000003/3/6;; + Start: 0x300000003/3/7;; + A..South: 0x300000003/3/1;; + B..East: 0x300000003/3/0;; + X..West: 0x300000003/3/3;; + Y..North: 0x300000003/3/2;; + L-Bumper: 0x300000003/3/4;; + R-Bumper: 0x300000003/3/5;; + L-Trigger: 0x300000003/0/2/Hi;; + R-Trigger: 0x300000003/0/5/Hi;; + L-Stick..Click: 0x300000003/3/9;; + R-Stick..Click: 0x300000003/3/10;; + L-Up: 0x300000003/0/1/Lo;; + L-Down: 0x300000003/0/1/Hi;; + L-Left: 0x300000003/0/0/Lo;; + L-Right: 0x300000003/0/0/Hi;; + R-Up: 0x300000003/0/4/Lo;; + R-Down: 0x300000003/0/4/Hi;; + R-Left: 0x300000003/0/3/Lo;; + R-Right: 0x300000003/0/3/Hi;; + Rumble: ;; +VirtualMouse4 + X: ;; + Y: ;; + Left: ;; + Middle: ;; + Right: ;; + Extra: ;; +VirtualPad5 + Pad.Up: 0x400000003/1/1/Lo;; + Pad.Down: 0x400000003/1/1/Hi;; + Pad.Left: 0x400000003/1/0/Lo;; + Pad.Right: 0x400000003/1/0/Hi;; + Select: 0x400000003/3/6;; + Start: 0x400000003/3/7;; + A..South: 0x400000003/3/1;; + B..East: 0x400000003/3/0;; + X..West: 0x400000003/3/3;; + Y..North: 0x400000003/3/2;; + L-Bumper: 0x400000003/3/4;; + R-Bumper: 0x400000003/3/5;; + L-Trigger: 0x400000003/0/2/Hi;; + R-Trigger: 0x400000003/0/5/Hi;; + L-Stick..Click: 0x400000003/3/9;; + R-Stick..Click: 0x400000003/3/10;; + L-Up: 0x400000003/0/1/Lo;; + L-Down: 0x400000003/0/1/Hi;; + L-Left: 0x400000003/0/0/Lo;; + L-Right: 0x400000003/0/0/Hi;; + R-Up: 0x400000003/0/4/Lo;; + R-Down: 0x400000003/0/4/Hi;; + R-Left: 0x400000003/0/3/Lo;; + R-Right: 0x400000003/0/3/Hi;; + Rumble: ;; +VirtualMouse5 + X: ;; + Y: ;; + Left: ;; + Middle: ;; + Right: ;; + Extra: ;; +Hotkey + ToggleFullscreen: ;; + TogglePseudo-Fullscreen: ;; + ToggleMouseCapture: ;; + ToggleKeyboardCapture: ;; + FastForward: ;; + ToggleFastForward: ;; + Rewind: ;; + FrameAdvance: ;; + CaptureScreenshot: ;; + SaveState: ;; + LoadState: ;; + DecrementStateSlot: ;; + IncrementStateSlot: ;; + PauseEmulation: ;; + ResetSystem: ;; + ReloadCurrentGame: ;; + QuitEmulator: ;; + MuteAudio: ;; + IncreaseAudio: ;; + DecreaseAudio: ;; +Arcade + Visible: true + Path: RETRODECKROMSDIR/arcade/ +Atari2600 + Path: RETRODECKROMSDIR/atari2600/ + Visible: true +WonderSwan + Path: RETRODECKROMSDIR/wonderswan/ + Visible: true +WonderSwanColor + Path: RETRODECKROMSDIR/wonderswancolor/ + Visible: true +PocketChallengeV2 + Path: RETRODECKROMSDIR/pocketchallengev2/ + Visible: true +ColecoVision + Path: RETRODECKROMSDIR/colecovision/ + Firmware + BIOS.World: RETRODECKBIOSDIR/colecovision.rom + Visible: true +MyVision + Visible: true + Path: RETRODECKROMSDIR/arcade/ +MSX + Path: RETRODECKROMSDIR/msx/ + Firmware + BIOS.Japan: RETRODECKBIOSDIR/MSX.ROM + Visible: true +MSX2 + Path: RETRODECKROMSDIR/msx2/ + Firmware + BIOS.Japan: RETRODECKBIOSDIR/MSX2.ROM + Visible: true +PCEngine + Path: RETRODECKROMSDIR/pcengine/ + Visible: true +PCEngineCD + Path: RETRODECKROMSDIR/pcenginecd/ + Firmware + BIOS.US: RETRODECKBIOSDIR/syscard3u.pce + BIOS.Japan: RETRODECKBIOSDIR/syscard3.pce + Visible: true +SuperGrafx + Path: RETRODECKROMSDIR/supergrafx/ + Visible: true +SuperGrafxCD + Path: RETRODECKROMSDIR/supergrafx/ + Firmware + BIOS.Japan: RETRODECKBIOSDIR/syscard3.pce + Visible: true +Famicom + Path: RETRODECKROMSDIR/nes/ + Visible: true +FamicomDiskSystem + Path: RETRODECKROMSDIR/fds/ + Firmware + BIOS.Japan: RETRODECKBIOSDIR/disksys.rom + Visible: true +SuperFamicom + Path: RETRODECKROMSDIR/snes/ + Visible: true +Nintendo64 + Path: RETRODECKROMSDIR/n64/ + Visible: true +Nintendo64DD + Path: RETRODECKROMSDIR/n64dd/ + Firmware + BIOS.Japan: RETRODECKBIOSDIR/64DD_IPL_JP.n64 + BIOS.US: RETRODECKBIOSDIR/64DD_IPL_US.n64 + BIOS.DEV: RETRODECKBIOSDIR/64DD_IPL_DEV.n64 + Visible: true +GameBoy + Path: RETRODECKROMSDIR/gb/ + Visible: true +GameBoyColor + Path: RETRODECKROMSDIR/gbc/ + Visible: true +GameBoyAdvance + Path: RETRODECKROMSDIR/gba/ + Firmware + BIOS.World: RETRODECKBIOSDIR/gba_bios.bin + Visible: true +SG-1000 + Path: RETRODECKROMSDIR/sg-1000/ + Visible: true +MasterSystem + Path: RETRODECKROMSDIR/mastersystem/ + Firmware + BIOS.US: RETRODECKBIOSDIR/bios_U.sms + BIOS.Japan: RETRODECKBIOSDIR/bios_J.sms + BIOS.Europe: RETRODECKBIOSDIR/bios_E.sms + Visible: true +GameGear + Path: RETRODECKROMSDIR/gamegear/ + Firmware + BIOS.World: RETRODECKBIOSDIR/bios.gg + Visible: true +MegaDrive + Path: RETRODECKROMSDIR/genesis/ + Visible: true +Mega32X + Path: RETRODECKROMSDIR/sega32x/ + Visible: true +MegaCD + Path: RETRODECKROMSDIR/segacd/ + Firmware + BIOS.US: RETRODECKBIOSDIR/bios_CD_U.bin + BIOS.Japan: RETRODECKBIOSDIR/bios_CD_J.bin + BIOS.Europe: RETRODECKBIOSDIR/bios_CD_E.bin + Visible: true +MegaCD32X + Path: RETRODECKROMSDIR/segacd/ + Visible: true +NeoGeoAES + Path: RETRODECKROMSDIR/arcade/ + Firmware + BIOS.World: RETRODECKBIOSDIR/neo-po.bin + Visible: true +NeoGeoMVS + Path: RETRODECKROMSDIR/arcade/ + Firmware + BIOS.World + Visible: true +NeoGeoPocket + Path: RETRODECKROMSDIR/ngp/ + Firmware + BIOS.World: RETRODECKBIOSDIR/SNK Neo Geo Pocket (Japan, Europe).ngp + Visible: true +NeoGeoPocketColor + Path: RETRODECKROMSDIR/ngpc/ + Firmware + BIOS.World: RETRODECKBIOSDIR/SNK Neo Geo Pocket Color (World) (En,Ja).ngp + Visible: true +PlayStation + Path: RETRODECKROMSDIR/psx/ + Firmware + BIOS.US: RETRODECKBIOSDIR/scph5501.bin + BIOS.Japan: RETRODECKBIOSDIR/scph5500.bin + BIOS.Europe: RETRODECKBIOSDIR/scph5502.bin + Visible: true +ZXSpectrum + Path: RETRODECKROMSDIR/zxspectrum/ + Visible: true +ZXSpectrum128 + Path: RETRODECKROMSDIR/zxspectrum/ + Visible: true + diff --git a/archive_later/ares/component_recipe.json b/archive_later/ares/component_recipe.json index b2dec40a..9665fc5b 100755 --- a/archive_later/ares/component_recipe.json +++ b/archive_later/ares/component_recipe.json @@ -17,6 +17,11 @@ "dest": "component_version", "contents": "$SOURCE_VERSION" }, + { + "type": "dir", + "source": "$REPO_ROOT/$COMPONENT_NAME/assets/rd_config", + "dest": "rd_config" + }, { "type": "file", "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", @@ -63,4 +68,4 @@ ] } ] -} +} \ No newline at end of file From 3adb4bb3308a879c81197b50d72808a89365a703 Mon Sep 17 00:00:00 2001 From: etjanster Date: Mon, 26 Jan 2026 07:14:19 +0100 Subject: [PATCH 26/82] fix ares [skip ci] --- archive_later/ares/assets/rd_config/settings.bml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/ares/assets/rd_config/settings.bml b/archive_later/ares/assets/rd_config/settings.bml index 9167f13f..6145dc16 100644 --- a/archive_later/ares/assets/rd_config/settings.bml +++ b/archive_later/ares/assets/rd_config/settings.bml @@ -295,7 +295,7 @@ WonderSwanColor Path: RETRODECKROMSDIR/wonderswancolor/ Visible: true PocketChallengeV2 - Path: RETRODECKROMSDIR/pocketchallengev2/ + Path: RETRODECKROMSDIR/supervision/ Visible: true ColecoVision Path: RETRODECKROMSDIR/colecovision/ From 4120baa46c4327dace034bd92a353e279226f2c9 Mon Sep 17 00:00:00 2001 From: lazzite Date: Mon, 26 Jan 2026 12:48:19 +0100 Subject: [PATCH 27/82] notes mud [skip ci] --- archive_later/mudlet/component_functions.sh | 1 + archive_later/mudlet/component_prepare.sh | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/archive_later/mudlet/component_functions.sh b/archive_later/mudlet/component_functions.sh index 2c67ed46..8131d00b 100755 --- a/archive_later/mudlet/component_functions.sh +++ b/archive_later/mudlet/component_functions.sh @@ -1,3 +1,4 @@ #!/bin/bash mudlet_config="$XDG_CONFIG_HOME/mudlet/Mudlet.ini" +mudlet_roms_folder_path="$roms_path/muds" \ No newline at end of file diff --git a/archive_later/mudlet/component_prepare.sh b/archive_later/mudlet/component_prepare.sh index 966e32ac..27650248 100755 --- a/archive_later/mudlet/component_prepare.sh +++ b/archive_later/mudlet/component_prepare.sh @@ -10,7 +10,7 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" create_dir "$XDG_CONFIG_HOME/mudlet" - dir_prep "$saves_path/muds/profiles" "$XDG_CONFIG_HOME/mudlet/portable/profiles" - dir_prep "$mods_path/mudlet/plugins" "$$XDG_CONFIG_HOME/mudlet/plugins/" + dir_prep "$mudlet_roms_folder_path" "$XDG_CONFIG_HOME/mudlet/portable/profiles" + dir_prep "$mods_path/mudlet/plugins" "$XDG_CONFIG_HOME/mudlet/plugins/" fi From 1864f0a54d31937bfcd0f59b3eb9ae09919726f2 Mon Sep 17 00:00:00 2001 From: lazzite Date: Mon, 26 Jan 2026 19:09:33 +0100 Subject: [PATCH 28/82] ags [skip ci] --- archive_later/ags/component_launcher.sh | 2 +- archive_later/ags/component_prepare.sh | 0 archive_later/ags/component_recipe.json | 21 ++++++++++++++++----- archive_later/ags/component_update.sh | 0 4 files changed, 17 insertions(+), 6 deletions(-) mode change 100644 => 100755 archive_later/ags/component_launcher.sh mode change 100644 => 100755 archive_later/ags/component_prepare.sh mode change 100644 => 100755 archive_later/ags/component_update.sh diff --git a/archive_later/ags/component_launcher.sh b/archive_later/ags/component_launcher.sh old mode 100644 new mode 100755 index ae46e0b1..8363ac74 --- a/archive_later/ags/component_launcher.sh +++ b/archive_later/ags/component_launcher.sh @@ -14,4 +14,4 @@ log d "Library path is: $LD_LIBRARY_PATH" log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" -exec "$component_path/bin/ags.bin" "$@" +exec "$component_path/bin/ags64" "$@" diff --git a/archive_later/ags/component_prepare.sh b/archive_later/ags/component_prepare.sh old mode 100644 new mode 100755 diff --git a/archive_later/ags/component_recipe.json b/archive_later/ags/component_recipe.json index e7cd61cb..cc4f66c4 100755 --- a/archive_later/ags/component_recipe.json +++ b/archive_later/ags/component_recipe.json @@ -3,7 +3,7 @@ { "source_url": "https://github.com/adventuregamestudio/ags/releases/download/{VERSION}/*_linux.tar.gz", "source_type": "github_release", - "version": "$AGS_DESIRED_VERSION", + "version": "newest", "extraction_type": "archive", "assets": [ { @@ -13,8 +13,18 @@ }, { "type": "dir", - "source": "$REPO_ROOT/$COMPONENT_NAME/rd_config", - "dest": "rd_config" + "source": "data/licenses", + "dest": "docs" + }, + { + "type": "file", + "source": "data/ags64", + "dest": "bin" + }, + { + "type": "dir", + "source": "data/lib64", + "dest": "bin/lib64" }, { "type": "file", @@ -46,7 +56,8 @@ "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", "dest": "$COMPONENT_ARTIFACT_ROOT" } - ] + ], + "libs": [] } ] -} +} \ No newline at end of file diff --git a/archive_later/ags/component_update.sh b/archive_later/ags/component_update.sh old mode 100644 new mode 100755 From 2c55d0b623708dac38458be857eb602eb7ba44d7 Mon Sep 17 00:00:00 2001 From: lazzite Date: Mon, 26 Jan 2026 19:11:27 +0100 Subject: [PATCH 29/82] ags [skip ci] --- archive_later/ags/component_recipe.json | 2 +- automation-tools/alchemist/desired_versions.sh | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/archive_later/ags/component_recipe.json b/archive_later/ags/component_recipe.json index cc4f66c4..d49f8d15 100755 --- a/archive_later/ags/component_recipe.json +++ b/archive_later/ags/component_recipe.json @@ -3,7 +3,7 @@ { "source_url": "https://github.com/adventuregamestudio/ags/releases/download/{VERSION}/*_linux.tar.gz", "source_type": "github_release", - "version": "newest", + "version": "$AGS_DESIRED_VERSION", "extraction_type": "archive", "assets": [ { diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index 642087a4..5c178751 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -374,8 +374,14 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # current stable version. # ============================================================================== +# ------------------------------------------------------------------------------ +# Adventure Game Studio +# ------------------------------------------------------------------------------ +# MAIN (Stable) +# export AGS_DESIRED_VERSION="" - +# COOKER (Override) + export AGS_DESIRED_VERSION="newest" # ------------------------------------------------------------------------------ # DOSBox-X - Enhanced DOSBox Engine From f47e76737348385341276c4ccb59e8038295d38d Mon Sep 17 00:00:00 2001 From: lazzite Date: Mon, 26 Jan 2026 19:27:28 +0100 Subject: [PATCH 30/82] hypseus [skip ci] --- archive_later/hypseus/component_launcher.sh | 0 archive_later/hypseus/component_prepare.sh | 0 archive_later/hypseus/component_recipe.json | 45 ++++++++++++++++++++- archive_later/hypseus/component_update.sh | 0 archive_later/hypseus/recipe_notes.txt | 15 ------- 5 files changed, 43 insertions(+), 17 deletions(-) mode change 100644 => 100755 archive_later/hypseus/component_launcher.sh mode change 100644 => 100755 archive_later/hypseus/component_prepare.sh mode change 100644 => 100755 archive_later/hypseus/component_update.sh delete mode 100644 archive_later/hypseus/recipe_notes.txt diff --git a/archive_later/hypseus/component_launcher.sh b/archive_later/hypseus/component_launcher.sh old mode 100644 new mode 100755 diff --git a/archive_later/hypseus/component_prepare.sh b/archive_later/hypseus/component_prepare.sh old mode 100644 new mode 100755 diff --git a/archive_later/hypseus/component_recipe.json b/archive_later/hypseus/component_recipe.json index ab20bede..2dc4035a 100755 --- a/archive_later/hypseus/component_recipe.json +++ b/archive_later/hypseus/component_recipe.json @@ -74,7 +74,48 @@ "contents": "$SOURCE_VERSION" } ], - "libs": [] + "libs": [ + { + "library": "libbz2.so.1.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libdeflate.so.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libjbig.so.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libjpeg.so.8", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libSDL2_image-2.0.so.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libSDL2_ttf-2.0.so.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libtiff.so.5", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libzip.so.4", + "source": "usr/lib", + "dest": "shared-libs" + } + ] } ] -} +} \ No newline at end of file diff --git a/archive_later/hypseus/component_update.sh b/archive_later/hypseus/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/hypseus/recipe_notes.txt b/archive_later/hypseus/recipe_notes.txt deleted file mode 100644 index bf127268..00000000 --- a/archive_later/hypseus/recipe_notes.txt +++ /dev/null @@ -1,15 +0,0 @@ - { - "source_url": "https://github.com/DirtBagXon/hypseus-singe/releases/download/{VERSION}/*_AppImage.tar.gz", - "source_type": "github_release", - "version": "latest", - "extraction_type": "archive" - }, - { - "source_url": "$EXTRACTED_PATH/*_ES-DE.tar.gz", - "source_type": "local", - "extraction_type": "archive" - }, - { - "source_url": "$EXTRACTED_PATH/Hypseus_Singe-x86_64.AppImage", - "source_type": "local", - "extraction_type": "appimage", From 4128b39fc44479b0dbaea50b0498f0c1c6ceec85 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 19:49:11 +0100 Subject: [PATCH 31/82] launchers executable [skip ci] --- archive_later/ares/component_update.sh | 0 archive_later/commanderx16/component_manifest.json | 2 +- archive_later/commanderx16/component_update.sh | 0 archive_later/delta-patcher/component_update.sh | 0 archive_later/dosbox-x/component_update.sh | 0 archive_later/ecwolf/component_update.sh | 0 archive_later/eden/component_update.sh | 0 archive_later/eka2l1/component_update.sh | 0 archive_later/flycast/component_update.sh | 0 archive_later/fs-uea/component_update.sh | 0 archive_later/gametank/component_update.sh | 0 archive_later/gargoyle/component_update.sh | 0 archive_later/ikemen-go/component_update.sh | 0 archive_later/kegs/component_update.sh | 0 archive_later/lindbergh/component_update.sh | 0 archive_later/ludusavi/component_update.sh | 0 archive_later/mednafen/component_update.sh | 0 archive_later/moonlight/component_update.sh | 0 archive_later/mudlet/component_update.sh | 0 archive_later/mvem/component_update.sh | 0 archive_later/oricutron/component_update.sh | 0 archive_later/prism-launcher/component_update.sh | 0 archive_later/raze/component_update.sh | 0 archive_later/scummvm/component_update.sh | 0 archive_later/sdltrs/component_update.sh | 0 archive_later/shadps4/component_update.sh | 0 archive_later/simcoupe/component_update.sh | 0 archive_later/supermodel/component_update.sh | 0 archive_later/tsugaru/component_update.sh | 0 archive_later/uzdoom/component_update.sh | 0 archive_later/vcmi/component_update.sh | 0 archive_later/vpinballx/component_update.sh | 0 archive_later/xenia/component_update.sh | 0 archive_later/zesarux/component_update.sh | 0 {archive_later => archive_old}/easyrpg/EasyRPG Verdict.txt | 0 .../easyrpg/component_functions.sh | 0 .../easyrpg/component_launcher.sh | 0 .../easyrpg/component_manifest.json | 0 .../easyrpg/component_prepare.sh | 0 .../easyrpg/component_recipe.json | 7 ++++++- archive_old/easyrpg/component_update.sh | 6 ++++++ .../easyrpg/rd_config/config.ini | 0 42 files changed, 13 insertions(+), 2 deletions(-) mode change 100644 => 100755 archive_later/ares/component_update.sh mode change 100644 => 100755 archive_later/commanderx16/component_update.sh mode change 100644 => 100755 archive_later/delta-patcher/component_update.sh mode change 100644 => 100755 archive_later/dosbox-x/component_update.sh mode change 100644 => 100755 archive_later/ecwolf/component_update.sh mode change 100644 => 100755 archive_later/eden/component_update.sh mode change 100644 => 100755 archive_later/eka2l1/component_update.sh mode change 100644 => 100755 archive_later/flycast/component_update.sh mode change 100644 => 100755 archive_later/fs-uea/component_update.sh mode change 100644 => 100755 archive_later/gametank/component_update.sh mode change 100644 => 100755 archive_later/gargoyle/component_update.sh mode change 100644 => 100755 archive_later/ikemen-go/component_update.sh mode change 100644 => 100755 archive_later/kegs/component_update.sh mode change 100644 => 100755 archive_later/lindbergh/component_update.sh mode change 100644 => 100755 archive_later/ludusavi/component_update.sh mode change 100644 => 100755 archive_later/mednafen/component_update.sh mode change 100644 => 100755 archive_later/moonlight/component_update.sh mode change 100644 => 100755 archive_later/mudlet/component_update.sh mode change 100644 => 100755 archive_later/mvem/component_update.sh mode change 100644 => 100755 archive_later/oricutron/component_update.sh mode change 100644 => 100755 archive_later/prism-launcher/component_update.sh mode change 100644 => 100755 archive_later/raze/component_update.sh mode change 100644 => 100755 archive_later/scummvm/component_update.sh mode change 100644 => 100755 archive_later/sdltrs/component_update.sh mode change 100644 => 100755 archive_later/shadps4/component_update.sh mode change 100644 => 100755 archive_later/simcoupe/component_update.sh mode change 100644 => 100755 archive_later/supermodel/component_update.sh mode change 100644 => 100755 archive_later/tsugaru/component_update.sh mode change 100644 => 100755 archive_later/uzdoom/component_update.sh mode change 100644 => 100755 archive_later/vcmi/component_update.sh mode change 100644 => 100755 archive_later/vpinballx/component_update.sh mode change 100644 => 100755 archive_later/xenia/component_update.sh mode change 100644 => 100755 archive_later/zesarux/component_update.sh rename {archive_later => archive_old}/easyrpg/EasyRPG Verdict.txt (100%) rename {archive_later => archive_old}/easyrpg/component_functions.sh (100%) rename {archive_later => archive_old}/easyrpg/component_launcher.sh (100%) rename {archive_later => archive_old}/easyrpg/component_manifest.json (100%) rename {archive_later => archive_old}/easyrpg/component_prepare.sh (100%) rename {archive_later => archive_old}/easyrpg/component_recipe.json (89%) create mode 100755 archive_old/easyrpg/component_update.sh rename {archive_later => archive_old}/easyrpg/rd_config/config.ini (100%) diff --git a/archive_later/ares/component_update.sh b/archive_later/ares/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/commanderx16/component_manifest.json b/archive_later/commanderx16/component_manifest.json index 9bbd7d2f..6ec04fd2 100644 --- a/archive_later/commanderx16/component_manifest.json +++ b/archive_later/commanderx16/component_manifest.json @@ -6,7 +6,7 @@ "url_source": "https://github.com/marco-calautti/DeltaPatcher", "description": "Commander X16 is a X16 emulator.", "component_type": "Emulator", - "system": "cx16", + "system": "d", "system_friendly_name": "Commander X16" } } diff --git a/archive_later/commanderx16/component_update.sh b/archive_later/commanderx16/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/delta-patcher/component_update.sh b/archive_later/delta-patcher/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/dosbox-x/component_update.sh b/archive_later/dosbox-x/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/ecwolf/component_update.sh b/archive_later/ecwolf/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/eden/component_update.sh b/archive_later/eden/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/eka2l1/component_update.sh b/archive_later/eka2l1/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/flycast/component_update.sh b/archive_later/flycast/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/fs-uea/component_update.sh b/archive_later/fs-uea/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/gametank/component_update.sh b/archive_later/gametank/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/gargoyle/component_update.sh b/archive_later/gargoyle/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/ikemen-go/component_update.sh b/archive_later/ikemen-go/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/kegs/component_update.sh b/archive_later/kegs/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/lindbergh/component_update.sh b/archive_later/lindbergh/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/ludusavi/component_update.sh b/archive_later/ludusavi/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/mednafen/component_update.sh b/archive_later/mednafen/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/moonlight/component_update.sh b/archive_later/moonlight/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/mudlet/component_update.sh b/archive_later/mudlet/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/mvem/component_update.sh b/archive_later/mvem/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/oricutron/component_update.sh b/archive_later/oricutron/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/prism-launcher/component_update.sh b/archive_later/prism-launcher/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/raze/component_update.sh b/archive_later/raze/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/scummvm/component_update.sh b/archive_later/scummvm/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/sdltrs/component_update.sh b/archive_later/sdltrs/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/shadps4/component_update.sh b/archive_later/shadps4/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/simcoupe/component_update.sh b/archive_later/simcoupe/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/supermodel/component_update.sh b/archive_later/supermodel/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/tsugaru/component_update.sh b/archive_later/tsugaru/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/uzdoom/component_update.sh b/archive_later/uzdoom/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/vcmi/component_update.sh b/archive_later/vcmi/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/vpinballx/component_update.sh b/archive_later/vpinballx/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/xenia/component_update.sh b/archive_later/xenia/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/zesarux/component_update.sh b/archive_later/zesarux/component_update.sh old mode 100644 new mode 100755 diff --git a/archive_later/easyrpg/EasyRPG Verdict.txt b/archive_old/easyrpg/EasyRPG Verdict.txt similarity index 100% rename from archive_later/easyrpg/EasyRPG Verdict.txt rename to archive_old/easyrpg/EasyRPG Verdict.txt diff --git a/archive_later/easyrpg/component_functions.sh b/archive_old/easyrpg/component_functions.sh similarity index 100% rename from archive_later/easyrpg/component_functions.sh rename to archive_old/easyrpg/component_functions.sh diff --git a/archive_later/easyrpg/component_launcher.sh b/archive_old/easyrpg/component_launcher.sh similarity index 100% rename from archive_later/easyrpg/component_launcher.sh rename to archive_old/easyrpg/component_launcher.sh diff --git a/archive_later/easyrpg/component_manifest.json b/archive_old/easyrpg/component_manifest.json similarity index 100% rename from archive_later/easyrpg/component_manifest.json rename to archive_old/easyrpg/component_manifest.json diff --git a/archive_later/easyrpg/component_prepare.sh b/archive_old/easyrpg/component_prepare.sh similarity index 100% rename from archive_later/easyrpg/component_prepare.sh rename to archive_old/easyrpg/component_prepare.sh diff --git a/archive_later/easyrpg/component_recipe.json b/archive_old/easyrpg/component_recipe.json similarity index 89% rename from archive_later/easyrpg/component_recipe.json rename to archive_old/easyrpg/component_recipe.json index 8b8a1535..725fbe30 100755 --- a/archive_later/easyrpg/component_recipe.json +++ b/archive_old/easyrpg/component_recipe.json @@ -42,6 +42,11 @@ "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", "dest": "$COMPONENT_ARTIFACT_ROOT" }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, { "type": "file", "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", @@ -51,4 +56,4 @@ "libs": [] } ] -} \ No newline at end of file +} diff --git a/archive_old/easyrpg/component_update.sh b/archive_old/easyrpg/component_update.sh new file mode 100755 index 00000000..4d6377ea --- /dev/null +++ b/archive_old/easyrpg/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + diff --git a/archive_later/easyrpg/rd_config/config.ini b/archive_old/easyrpg/rd_config/config.ini similarity index 100% rename from archive_later/easyrpg/rd_config/config.ini rename to archive_old/easyrpg/rd_config/config.ini From 511c66f146833c9708c9f98951f26ff861ef5392 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 20:41:36 +0100 Subject: [PATCH 32/82] amiga [skip ci] --- archive_later/fs-uea/component_launcher.sh | 2 +- archive_later/fs-uea/component_recipe.json | 26 +++++++++++-------- .../alchemist/desired_versions.sh | 10 +++++++ 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/archive_later/fs-uea/component_launcher.sh b/archive_later/fs-uea/component_launcher.sh index 3deebfbf..cae9785d 100755 --- a/archive_later/fs-uea/component_launcher.sh +++ b/archive_later/fs-uea/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/" "$@" +exec "$component_path/bin/fs-uae" "$@" diff --git a/archive_later/fs-uea/component_recipe.json b/archive_later/fs-uea/component_recipe.json index 068f8e2d..8cf13d8f 100755 --- a/archive_later/fs-uea/component_recipe.json +++ b/archive_later/fs-uea/component_recipe.json @@ -1,21 +1,25 @@ { - "delta-patcher": [ + "fs-uae": [ { - "source_url": "", - "source_type": "", - "version": "latest", - "dest": "user", - "extraction_type": "", + "source_url": "https://github.com/FrodeSolheim/fs-uae/releases/download/{VERSION}/*_Linux_x86-64.tar.xz", + "source_type": "github_release", + "version": "$FS_UAE_DESIRED_VERSION", + "extraction_type": "archive", "assets": [ + { + "type": "create", + "dest": "component_version", + "contents": "$FRAMEWORK_DESIRED_VERSION" + }, { "type": "dir", - "source": "bin", + "source": "Linux/x86-64", "dest": "bin" }, { - "type": "create", - "dest": "component_version", - "contents": "$SOURCE_VERSION" + "type": "dir", + "source": "Licenses", + "dest": "docs" }, { "type": "file", @@ -51,4 +55,4 @@ "libs": [] } ] -} \ No newline at end of file +} diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index 5c178751..7058bf77 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -412,6 +412,16 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # COOKER (Override) export EKA2L1_DESIRED_VERSION="latest" +# ------------------------------------------------------------------------------ +# FS-UAE - Amiga Emulator +# ------------------------------------------------------------------------------ +# MAIN (Stable) +# export FS_UAE_DESIRED_VERSION="" + +# COOKER (Override) + export FS_UAE_DESIRED_VERSION="latest" + + # ------------------------------------------------------------------------------ # Flycast - Dreamcast Emulator From cbf8b1597e6f96d399e612a79b8e374c06def1ec Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 20:47:35 +0100 Subject: [PATCH 33/82] amiga [skip ci] --- archive_later/{fs-uea => fs-uae}/component_functions.sh | 0 archive_later/{fs-uea => fs-uae}/component_launcher.sh | 0 archive_later/{fs-uea => fs-uae}/component_manifest.json | 0 archive_later/{fs-uea => fs-uae}/component_prepare.sh | 0 archive_later/{fs-uea => fs-uae}/component_recipe.json | 7 ++++++- archive_later/{fs-uea => fs-uae}/component_update.sh | 0 6 files changed, 6 insertions(+), 1 deletion(-) rename archive_later/{fs-uea => fs-uae}/component_functions.sh (100%) rename archive_later/{fs-uea => fs-uae}/component_launcher.sh (100%) rename archive_later/{fs-uea => fs-uae}/component_manifest.json (100%) rename archive_later/{fs-uea => fs-uae}/component_prepare.sh (100%) rename archive_later/{fs-uea => fs-uae}/component_recipe.json (94%) rename archive_later/{fs-uea => fs-uae}/component_update.sh (100%) diff --git a/archive_later/fs-uea/component_functions.sh b/archive_later/fs-uae/component_functions.sh similarity index 100% rename from archive_later/fs-uea/component_functions.sh rename to archive_later/fs-uae/component_functions.sh diff --git a/archive_later/fs-uea/component_launcher.sh b/archive_later/fs-uae/component_launcher.sh similarity index 100% rename from archive_later/fs-uea/component_launcher.sh rename to archive_later/fs-uae/component_launcher.sh diff --git a/archive_later/fs-uea/component_manifest.json b/archive_later/fs-uae/component_manifest.json similarity index 100% rename from archive_later/fs-uea/component_manifest.json rename to archive_later/fs-uae/component_manifest.json diff --git a/archive_later/fs-uea/component_prepare.sh b/archive_later/fs-uae/component_prepare.sh similarity index 100% rename from archive_later/fs-uea/component_prepare.sh rename to archive_later/fs-uae/component_prepare.sh diff --git a/archive_later/fs-uea/component_recipe.json b/archive_later/fs-uae/component_recipe.json similarity index 94% rename from archive_later/fs-uea/component_recipe.json rename to archive_later/fs-uae/component_recipe.json index 8cf13d8f..d0355126 100755 --- a/archive_later/fs-uea/component_recipe.json +++ b/archive_later/fs-uae/component_recipe.json @@ -21,6 +21,11 @@ "source": "Licenses", "dest": "docs" }, + { + "type": "dir", + "source": "Locale", + "dest": "Locale" + }, { "type": "file", "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", @@ -55,4 +60,4 @@ "libs": [] } ] -} +} \ No newline at end of file diff --git a/archive_later/fs-uea/component_update.sh b/archive_later/fs-uae/component_update.sh similarity index 100% rename from archive_later/fs-uea/component_update.sh rename to archive_later/fs-uae/component_update.sh From 5bc9711fb3dfdb21fa8362984ff90ed6b8d352f5 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 20:53:52 +0100 Subject: [PATCH 34/82] amiga [skip ci] --- archive_later/fs-uae/component_recipe.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/archive_later/fs-uae/component_recipe.json b/archive_later/fs-uae/component_recipe.json index d0355126..430baea7 100755 --- a/archive_later/fs-uae/component_recipe.json +++ b/archive_later/fs-uae/component_recipe.json @@ -1,9 +1,9 @@ { "fs-uae": [ { - "source_url": "https://github.com/FrodeSolheim/fs-uae/releases/download/{VERSION}/*_Linux_x86-64.tar.xz", + "source_url": "https://github.com/FrodeSolheim/fs-uae/releases/download/{VERSION}/*Linux_x86-64.tar.xz", "source_type": "github_release", - "version": "$FS_UAE_DESIRED_VERSION", + "version": "latest", "extraction_type": "archive", "assets": [ { @@ -13,17 +13,17 @@ }, { "type": "dir", - "source": "Linux/x86-64", + "source": "FS-UAE/Linux/x86-64", "dest": "bin" }, { "type": "dir", - "source": "Licenses", + "source": "FS-UAE/Licenses", "dest": "docs" }, { "type": "dir", - "source": "Locale", + "source": "FS-UAE/Locale", "dest": "Locale" }, { @@ -60,4 +60,4 @@ "libs": [] } ] -} \ No newline at end of file +} From fc95e95e3f8fbd43cb6d9eb26967e614a9591ab2 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 20:55:06 +0100 Subject: [PATCH 35/82] amiga [skip ci] --- archive_later/fs-uae/component_recipe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/fs-uae/component_recipe.json b/archive_later/fs-uae/component_recipe.json index 430baea7..fff8b00e 100755 --- a/archive_later/fs-uae/component_recipe.json +++ b/archive_later/fs-uae/component_recipe.json @@ -3,7 +3,7 @@ { "source_url": "https://github.com/FrodeSolheim/fs-uae/releases/download/{VERSION}/*Linux_x86-64.tar.xz", "source_type": "github_release", - "version": "latest", + "version": "$FS_UAE_DESIRED_VERSION", "extraction_type": "archive", "assets": [ { From d53582633dc2227f86fc6e6913e1cc563299aa13 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 21:07:34 +0100 Subject: [PATCH 36/82] commander x16 [skip ci] --- .../commanderx16/component_recipe.json | 31 ++++++++++++------- .../alchemist/desired_versions.sh | 10 ++++++ 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/archive_later/commanderx16/component_recipe.json b/archive_later/commanderx16/component_recipe.json index 068f8e2d..3345c79a 100755 --- a/archive_later/commanderx16/component_recipe.json +++ b/archive_later/commanderx16/component_recipe.json @@ -1,21 +1,30 @@ { - "delta-patcher": [ + "commanderx16": [ { - "source_url": "", - "source_type": "", - "version": "latest", - "dest": "user", - "extraction_type": "", + "source_url": "https://github.com/X16Community/x16-emulator/releases/download/{VERSION}/x16emu_linux-x86_64-*.zip", + "source_type": "github_release", + "version": "$COMMANDER_X16_DESIRED_VERSION", + "extraction_type": "archive", "assets": [ + { + "type": "create", + "dest": "component_version", + "contents": "$FRAMEWORK_DESIRED_VERSION" + }, { "type": "dir", - "source": "bin", + "source": "FS-UAE/Linux/x86-64", "dest": "bin" }, { - "type": "create", - "dest": "component_version", - "contents": "$SOURCE_VERSION" + "type": "dir", + "source": "FS-UAE/Licenses", + "dest": "docs" + }, + { + "type": "dir", + "source": "FS-UAE/Locale", + "dest": "Locale" }, { "type": "file", @@ -51,4 +60,4 @@ "libs": [] } ] -} \ No newline at end of file +} diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index 7058bf77..d33e5d92 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -383,6 +383,16 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # COOKER (Override) export AGS_DESIRED_VERSION="newest" + +# ------------------------------------------------------------------------------ +# Commander X16 8-bit Computer +# ------------------------------------------------------------------------------ +# MAIN (Stable) +# export COMMANDER_X16_DESIRED_VERSION="" + +# COOKER (Override) + export COMMANDER_X16_DESIRED_VERSION="latest" + # ------------------------------------------------------------------------------ # DOSBox-X - Enhanced DOSBox Engine # ------------------------------------------------------------------------------ From 9023bceb7efed90481f14db0e63a2b5887eafaf0 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 21:14:30 +0100 Subject: [PATCH 37/82] x16 [skip ci] --- archive_later/commanderx16/component_launcher.sh | 2 +- archive_later/commanderx16/component_recipe.json | 16 +++------------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/archive_later/commanderx16/component_launcher.sh b/archive_later/commanderx16/component_launcher.sh index 3deebfbf..3c69f779 100755 --- a/archive_later/commanderx16/component_launcher.sh +++ b/archive_later/commanderx16/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/" "$@" +exec "$component_path/x16emu" "$@" diff --git a/archive_later/commanderx16/component_recipe.json b/archive_later/commanderx16/component_recipe.json index 3345c79a..255e28ec 100755 --- a/archive_later/commanderx16/component_recipe.json +++ b/archive_later/commanderx16/component_recipe.json @@ -12,19 +12,9 @@ "contents": "$FRAMEWORK_DESIRED_VERSION" }, { - "type": "dir", - "source": "FS-UAE/Linux/x86-64", - "dest": "bin" - }, - { - "type": "dir", - "source": "FS-UAE/Licenses", - "dest": "docs" - }, - { - "type": "dir", - "source": "FS-UAE/Locale", - "dest": "Locale" + "type": "", + "source": "", + "dest": "$COMPONENT_ARTIFACT_ROOT" }, { "type": "file", From c0a7bf99f81a1ad4232d43b0ba1432f3179668f5 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 21:51:35 +0100 Subject: [PATCH 38/82] cx16 [skip ci] --- .../commanderx16/component_recipe.json | 88 ++++++++++++++++++- 1 file changed, 84 insertions(+), 4 deletions(-) diff --git a/archive_later/commanderx16/component_recipe.json b/archive_later/commanderx16/component_recipe.json index 255e28ec..6a0923fe 100755 --- a/archive_later/commanderx16/component_recipe.json +++ b/archive_later/commanderx16/component_recipe.json @@ -3,7 +3,7 @@ { "source_url": "https://github.com/X16Community/x16-emulator/releases/download/{VERSION}/x16emu_linux-x86_64-*.zip", "source_type": "github_release", - "version": "$COMMANDER_X16_DESIRED_VERSION", + "version": "latest", "extraction_type": "archive", "assets": [ { @@ -12,8 +12,88 @@ "contents": "$FRAMEWORK_DESIRED_VERSION" }, { - "type": "", - "source": "", + "type": "file", + "source": "audio.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "bannex.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "basic.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "charset.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "demo.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "diag.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "dos.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "fat32.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "graph.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "kernal.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "keymap.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "makecart", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "monitor.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "rom.bin", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "sdcard.img.zip", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "util.sym", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "x16emu", "dest": "$COMPONENT_ARTIFACT_ROOT" }, { @@ -50,4 +130,4 @@ "libs": [] } ] -} +} \ No newline at end of file From d791184054988a49e41519351168d3f7ba641ec7 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 21:52:39 +0100 Subject: [PATCH 39/82] cx16 [skip ci] --- archive_later/commanderx16/component_recipe.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/archive_later/commanderx16/component_recipe.json b/archive_later/commanderx16/component_recipe.json index 6a0923fe..3be6b717 100755 --- a/archive_later/commanderx16/component_recipe.json +++ b/archive_later/commanderx16/component_recipe.json @@ -3,7 +3,7 @@ { "source_url": "https://github.com/X16Community/x16-emulator/releases/download/{VERSION}/x16emu_linux-x86_64-*.zip", "source_type": "github_release", - "version": "latest", + "version": "$COMMANDER_X16_DESIRED_VERSION", "extraction_type": "archive", "assets": [ { @@ -130,4 +130,4 @@ "libs": [] } ] -} \ No newline at end of file +} From fe9e0ecf8829f3beec67ae000ae295d3933e0126 Mon Sep 17 00:00:00 2001 From: laz Date: Mon, 26 Jan 2026 21:57:10 +0100 Subject: [PATCH 40/82] commander x16 [skip ci] --- .../{commanderx16 => commander-x16}/component_functions.sh | 0 .../{commanderx16 => commander-x16}/component_launcher.sh | 0 .../{commanderx16 => commander-x16}/component_manifest.json | 0 .../{commanderx16 => commander-x16}/component_prepare.sh | 0 .../{commanderx16 => commander-x16}/component_recipe.json | 2 +- .../{commanderx16 => commander-x16}/component_update.sh | 0 6 files changed, 1 insertion(+), 1 deletion(-) rename archive_later/{commanderx16 => commander-x16}/component_functions.sh (100%) rename archive_later/{commanderx16 => commander-x16}/component_launcher.sh (100%) rename archive_later/{commanderx16 => commander-x16}/component_manifest.json (100%) rename archive_later/{commanderx16 => commander-x16}/component_prepare.sh (100%) rename archive_later/{commanderx16 => commander-x16}/component_recipe.json (99%) rename archive_later/{commanderx16 => commander-x16}/component_update.sh (100%) diff --git a/archive_later/commanderx16/component_functions.sh b/archive_later/commander-x16/component_functions.sh similarity index 100% rename from archive_later/commanderx16/component_functions.sh rename to archive_later/commander-x16/component_functions.sh diff --git a/archive_later/commanderx16/component_launcher.sh b/archive_later/commander-x16/component_launcher.sh similarity index 100% rename from archive_later/commanderx16/component_launcher.sh rename to archive_later/commander-x16/component_launcher.sh diff --git a/archive_later/commanderx16/component_manifest.json b/archive_later/commander-x16/component_manifest.json similarity index 100% rename from archive_later/commanderx16/component_manifest.json rename to archive_later/commander-x16/component_manifest.json diff --git a/archive_later/commanderx16/component_prepare.sh b/archive_later/commander-x16/component_prepare.sh similarity index 100% rename from archive_later/commanderx16/component_prepare.sh rename to archive_later/commander-x16/component_prepare.sh diff --git a/archive_later/commanderx16/component_recipe.json b/archive_later/commander-x16/component_recipe.json similarity index 99% rename from archive_later/commanderx16/component_recipe.json rename to archive_later/commander-x16/component_recipe.json index 3be6b717..c60528a3 100755 --- a/archive_later/commanderx16/component_recipe.json +++ b/archive_later/commander-x16/component_recipe.json @@ -1,5 +1,5 @@ { - "commanderx16": [ + "commander-x16": [ { "source_url": "https://github.com/X16Community/x16-emulator/releases/download/{VERSION}/x16emu_linux-x86_64-*.zip", "source_type": "github_release", diff --git a/archive_later/commanderx16/component_update.sh b/archive_later/commander-x16/component_update.sh similarity index 100% rename from archive_later/commanderx16/component_update.sh rename to archive_later/commander-x16/component_update.sh From 5fa16b7bead7bc8ac42125badc0b90ebe25e710a Mon Sep 17 00:00:00 2001 From: lazzite Date: Tue, 27 Jan 2026 06:30:42 +0100 Subject: [PATCH 41/82] fs-uea [skip ci] --- .../assets/rd_config/AmigaVision.fs-uae | 35 +++++ archive_later/fs-uae/component_prepare.sh | 3 + .../hypseus copy/component_functions.sh | 1 + .../hypseus copy/component_launcher.sh | 18 +++ .../hypseus copy/component_manifest.json | 11 ++ .../hypseus copy/component_prepare.sh | 13 ++ .../hypseus copy/component_recipe.json | 121 ++++++++++++++++++ .../hypseus copy/component_update.sh | 6 + 8 files changed, 208 insertions(+) create mode 100644 archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae create mode 100755 archive_later/hypseus copy/component_functions.sh create mode 100755 archive_later/hypseus copy/component_launcher.sh create mode 100644 archive_later/hypseus copy/component_manifest.json create mode 100755 archive_later/hypseus copy/component_prepare.sh create mode 100755 archive_later/hypseus copy/component_recipe.json create mode 100755 archive_later/hypseus copy/component_update.sh diff --git a/archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae b/archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae new file mode 100644 index 00000000..1abf9891 --- /dev/null +++ b/archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae @@ -0,0 +1,35 @@ +# Name: AmigaVision FS-UAE RetroDECK Configuration + +[fs-uae] +amiga_model = A1200/020 +cpu = 68020 +chip_memory = 2048 +zorro_iii_memory = 262144 +jit_compiler = 0 +kickstart_file = RETRODECKBIOS/AmigaVision.rom +cdrom_drive_count = 0 +floppy_drive_count = 2 +hard_drive_0 = RETRODECKSTORAGE/FS-UAE/AmigaVision.hdf +hard_drive_0_read_only = 0 +hard_drive_1 = RETRODECKSTORAGE/FS-UAE/AmigaVision-Saves.hdf +hard_drive_1_read_only = 0 +hard_drive_2 = RETRODECKSTORAGE/FS-UAE/shared +hard_drive_2_read_only = 0 +hard_drive_2_label = RetroDECK + +ntsc_mode = 1 +fullscreen = 1 +scanlines = 1 +viewport = * * * * => 74 36 678 538 +window_width = 678 +window_height = 538 +window_border = 0 +window_resizable = 0 +texture_filter = nearest +scale = integer +smoothing = 0 +border = 0 +bezel = 0 +fade_in_duration = 0 +fade_out_duration = 0 +floppy_drive_volume = 0 diff --git a/archive_later/fs-uae/component_prepare.sh b/archive_later/fs-uae/component_prepare.sh index 750dc113..87cf90d3 100755 --- a/archive_later/fs-uae/component_prepare.sh +++ b/archive_later/fs-uae/component_prepare.sh @@ -8,4 +8,7 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" log i "Preparing $component_name" log i "----------------------" + + create_dir "$storage_path/FS-UAE/shared" + fi diff --git a/archive_later/hypseus copy/component_functions.sh b/archive_later/hypseus copy/component_functions.sh new file mode 100755 index 00000000..cc1f786e --- /dev/null +++ b/archive_later/hypseus copy/component_functions.sh @@ -0,0 +1 @@ +#!/bin/bash \ No newline at end of file diff --git a/archive_later/hypseus copy/component_launcher.sh b/archive_later/hypseus copy/component_launcher.sh new file mode 100755 index 00000000..873651fa --- /dev/null +++ b/archive_later/hypseus copy/component_launcher.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" + +# Set LD_LIBRARY_PATH +export LD_LIBRARY_PATH="$component_path/lib:$ffmpeg_path/25.08:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" +export QT_PLUGIN_PATH="${QT_PLUGIN_PATH}" +export QT_QPA_PLATFORM_PLUGIN_PATH="${QT_QPA_PLATFORM_PLUGIN_PATH}" + + +log i "RetroDECK is now launching $component_name" +log d "Library path is: $LD_LIBRARY_PATH" +log d "QT plugin path is: $QT_PLUGIN_PATH" +log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" + +exec "$component_path/bin/hypseus.bin" "$@" diff --git a/archive_later/hypseus copy/component_manifest.json b/archive_later/hypseus copy/component_manifest.json new file mode 100644 index 00000000..4e521064 --- /dev/null +++ b/archive_later/hypseus copy/component_manifest.json @@ -0,0 +1,11 @@ +{ + "hypseus": { + "name": "Hypseus", + "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/hypseus/hypseus-guide/", + "url_source": "https://github.com/btolab/hypseus", + "description": "Hypseus is a an Arcade Laserdisc (laserdisc) emulator.", + "system_friendly_name": "Arcade Laserdisc", + "component_type": "Emulator", + "system": "laserdisc" + } +} \ No newline at end of file diff --git a/archive_later/hypseus copy/component_prepare.sh b/archive_later/hypseus copy/component_prepare.sh new file mode 100755 index 00000000..b454f9c9 --- /dev/null +++ b/archive_later/hypseus copy/component_prepare.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# Setting component name and path based on the directory name +component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" +component_config="/app/retrodeck/components/$component_name/rd_config" + +if [[ "$action" == "reset" ]]; then # Run reset-only commands + log i "----------------------" + log i "Preparing $component_name" + log i "----------------------" + + create_dir "$XDG_CONFIG_HOME/hypseus" +fi diff --git a/archive_later/hypseus copy/component_recipe.json b/archive_later/hypseus copy/component_recipe.json new file mode 100755 index 00000000..2dc4035a --- /dev/null +++ b/archive_later/hypseus copy/component_recipe.json @@ -0,0 +1,121 @@ +{ + "hypseus": [ + { + "source_url": "https://github.com/DirtBagXon/hypseus-singe/releases/download/{VERSION}/*_AppImage.tar.gz", + "source_type": "github_release", + "version": "$HYPSEUS_DESIRED_VERSION", + "extraction_type": "zip", + "assets": [ + { + "type": "create", + "dest": "component_version", + "contents": "$FRAMEWORK_DESIRED_VERSION" + }, + { + "type": "dir", + "source": "$REPO_ROOT/$COMPONENT_NAME/rd_config", + "dest": "rd_config" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + } + ] + }, + { + "source_url": "$EXTRACTED_PATH/*_ES-DE.tar.gz", + "source_type": "local", + "extraction_type": "archive" + }, + { + "source_url": "$EXTRACTED_PATH/hypseus-singe/Hypseus_Singe-x86_64.AppImage", + "source_type": "local", + "extraction_type": "appimage", + "assets": [ + { + "type": "dir", + "source": "usr/bin", + "dest": "bin" + }, + { + "type": "dir", + "source": "$REPO_ROOT/$COMPONENT_NAME", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "create", + "dest": "component_version", + "contents": "$SOURCE_VERSION" + } + ], + "libs": [ + { + "library": "libbz2.so.1.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libdeflate.so.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libjbig.so.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libjpeg.so.8", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libSDL2_image-2.0.so.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libSDL2_ttf-2.0.so.0", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libtiff.so.5", + "source": "usr/lib", + "dest": "shared-libs" + }, + { + "library": "libzip.so.4", + "source": "usr/lib", + "dest": "shared-libs" + } + ] + } + ] +} \ No newline at end of file diff --git a/archive_later/hypseus copy/component_update.sh b/archive_later/hypseus copy/component_update.sh new file mode 100755 index 00000000..4d6377ea --- /dev/null +++ b/archive_later/hypseus copy/component_update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +######################################################################### +# These actions happen conditionally based on the version being upgraded +######################################################################### + From a04379a00915e686e7cf4b2130a77486c8484947 Mon Sep 17 00:00:00 2001 From: lazzite Date: Tue, 27 Jan 2026 06:31:17 +0100 Subject: [PATCH 42/82] fs-uea [skip ci] --- .../hypseus copy/component_functions.sh | 1 - .../hypseus copy/component_launcher.sh | 18 --- .../hypseus copy/component_manifest.json | 11 -- .../hypseus copy/component_prepare.sh | 13 -- .../hypseus copy/component_recipe.json | 121 ------------------ .../hypseus copy/component_update.sh | 6 - 6 files changed, 170 deletions(-) delete mode 100755 archive_later/hypseus copy/component_functions.sh delete mode 100755 archive_later/hypseus copy/component_launcher.sh delete mode 100644 archive_later/hypseus copy/component_manifest.json delete mode 100755 archive_later/hypseus copy/component_prepare.sh delete mode 100755 archive_later/hypseus copy/component_recipe.json delete mode 100755 archive_later/hypseus copy/component_update.sh diff --git a/archive_later/hypseus copy/component_functions.sh b/archive_later/hypseus copy/component_functions.sh deleted file mode 100755 index cc1f786e..00000000 --- a/archive_later/hypseus copy/component_functions.sh +++ /dev/null @@ -1 +0,0 @@ -#!/bin/bash \ No newline at end of file diff --git a/archive_later/hypseus copy/component_launcher.sh b/archive_later/hypseus copy/component_launcher.sh deleted file mode 100755 index 873651fa..00000000 --- a/archive_later/hypseus copy/component_launcher.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Setting component name and path based on the directory name -component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" -component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" - -# Set LD_LIBRARY_PATH -export LD_LIBRARY_PATH="$component_path/lib:$ffmpeg_path/25.08:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}" -export QT_PLUGIN_PATH="${QT_PLUGIN_PATH}" -export QT_QPA_PLATFORM_PLUGIN_PATH="${QT_QPA_PLATFORM_PLUGIN_PATH}" - - -log i "RetroDECK is now launching $component_name" -log d "Library path is: $LD_LIBRARY_PATH" -log d "QT plugin path is: $QT_PLUGIN_PATH" -log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" - -exec "$component_path/bin/hypseus.bin" "$@" diff --git a/archive_later/hypseus copy/component_manifest.json b/archive_later/hypseus copy/component_manifest.json deleted file mode 100644 index 4e521064..00000000 --- a/archive_later/hypseus copy/component_manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "hypseus": { - "name": "Hypseus", - "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/hypseus/hypseus-guide/", - "url_source": "https://github.com/btolab/hypseus", - "description": "Hypseus is a an Arcade Laserdisc (laserdisc) emulator.", - "system_friendly_name": "Arcade Laserdisc", - "component_type": "Emulator", - "system": "laserdisc" - } -} \ No newline at end of file diff --git a/archive_later/hypseus copy/component_prepare.sh b/archive_later/hypseus copy/component_prepare.sh deleted file mode 100755 index b454f9c9..00000000 --- a/archive_later/hypseus copy/component_prepare.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -# Setting component name and path based on the directory name -component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" -component_config="/app/retrodeck/components/$component_name/rd_config" - -if [[ "$action" == "reset" ]]; then # Run reset-only commands - log i "----------------------" - log i "Preparing $component_name" - log i "----------------------" - - create_dir "$XDG_CONFIG_HOME/hypseus" -fi diff --git a/archive_later/hypseus copy/component_recipe.json b/archive_later/hypseus copy/component_recipe.json deleted file mode 100755 index 2dc4035a..00000000 --- a/archive_later/hypseus copy/component_recipe.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "hypseus": [ - { - "source_url": "https://github.com/DirtBagXon/hypseus-singe/releases/download/{VERSION}/*_AppImage.tar.gz", - "source_type": "github_release", - "version": "$HYPSEUS_DESIRED_VERSION", - "extraction_type": "zip", - "assets": [ - { - "type": "create", - "dest": "component_version", - "contents": "$FRAMEWORK_DESIRED_VERSION" - }, - { - "type": "dir", - "source": "$REPO_ROOT/$COMPONENT_NAME/rd_config", - "dest": "rd_config" - }, - { - "type": "file", - "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", - "dest": "$COMPONENT_ARTIFACT_ROOT" - }, - { - "type": "file", - "source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh", - "dest": "$COMPONENT_ARTIFACT_ROOT" - }, - { - "type": "file", - "source": "$REPO_ROOT/$COMPONENT_NAME/component_manifest.json", - "dest": "$COMPONENT_ARTIFACT_ROOT" - }, - { - "type": "file", - "source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json", - "dest": "$COMPONENT_ARTIFACT_ROOT" - }, - { - "type": "file", - "source": "$REPO_ROOT/$COMPONENT_NAME/component_prepare.sh", - "dest": "$COMPONENT_ARTIFACT_ROOT" - }, - { - "type": "file", - "source": "$REPO_ROOT/$COMPONENT_NAME/component_update.sh", - "dest": "$COMPONENT_ARTIFACT_ROOT" - } - ] - }, - { - "source_url": "$EXTRACTED_PATH/*_ES-DE.tar.gz", - "source_type": "local", - "extraction_type": "archive" - }, - { - "source_url": "$EXTRACTED_PATH/hypseus-singe/Hypseus_Singe-x86_64.AppImage", - "source_type": "local", - "extraction_type": "appimage", - "assets": [ - { - "type": "dir", - "source": "usr/bin", - "dest": "bin" - }, - { - "type": "dir", - "source": "$REPO_ROOT/$COMPONENT_NAME", - "dest": "$COMPONENT_ARTIFACT_ROOT" - }, - { - "type": "create", - "dest": "component_version", - "contents": "$SOURCE_VERSION" - } - ], - "libs": [ - { - "library": "libbz2.so.1.0", - "source": "usr/lib", - "dest": "shared-libs" - }, - { - "library": "libdeflate.so.0", - "source": "usr/lib", - "dest": "shared-libs" - }, - { - "library": "libjbig.so.0", - "source": "usr/lib", - "dest": "shared-libs" - }, - { - "library": "libjpeg.so.8", - "source": "usr/lib", - "dest": "shared-libs" - }, - { - "library": "libSDL2_image-2.0.so.0", - "source": "usr/lib", - "dest": "shared-libs" - }, - { - "library": "libSDL2_ttf-2.0.so.0", - "source": "usr/lib", - "dest": "shared-libs" - }, - { - "library": "libtiff.so.5", - "source": "usr/lib", - "dest": "shared-libs" - }, - { - "library": "libzip.so.4", - "source": "usr/lib", - "dest": "shared-libs" - } - ] - } - ] -} \ No newline at end of file diff --git a/archive_later/hypseus copy/component_update.sh b/archive_later/hypseus copy/component_update.sh deleted file mode 100755 index 4d6377ea..00000000 --- a/archive_later/hypseus copy/component_update.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -######################################################################### -# These actions happen conditionally based on the version being upgraded -######################################################################### - From 620c2a018ed3b9db9ec05ffa2b883118305ee2a7 Mon Sep 17 00:00:00 2001 From: lazzite Date: Tue, 27 Jan 2026 06:33:23 +0100 Subject: [PATCH 43/82] amiga [skip ci] --- archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae | 6 +++--- archive_later/fs-uae/component_prepare.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae b/archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae index 1abf9891..57d881b1 100644 --- a/archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae +++ b/archive_later/fs-uae/assets/rd_config/AmigaVision.fs-uae @@ -9,11 +9,11 @@ jit_compiler = 0 kickstart_file = RETRODECKBIOS/AmigaVision.rom cdrom_drive_count = 0 floppy_drive_count = 2 -hard_drive_0 = RETRODECKSTORAGE/FS-UAE/AmigaVision.hdf +hard_drive_0 = RETRODECKSTORAGE/FS-UAE/AmigaVision/AmigaVision.hdf hard_drive_0_read_only = 0 -hard_drive_1 = RETRODECKSTORAGE/FS-UAE/AmigaVision-Saves.hdf +hard_drive_1 = RETRODECKSTORAGE/FS-UAE/AmigaVision/AmigaVision-Saves.hdf hard_drive_1_read_only = 0 -hard_drive_2 = RETRODECKSTORAGE/FS-UAE/shared +hard_drive_2 = RETRODECKSTORAGE/FS-UAE/AmigaVision/shared hard_drive_2_read_only = 0 hard_drive_2_label = RetroDECK diff --git a/archive_later/fs-uae/component_prepare.sh b/archive_later/fs-uae/component_prepare.sh index 87cf90d3..3ce02a1b 100755 --- a/archive_later/fs-uae/component_prepare.sh +++ b/archive_later/fs-uae/component_prepare.sh @@ -9,6 +9,6 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "Preparing $component_name" log i "----------------------" - create_dir "$storage_path/FS-UAE/shared" + create_dir "$storage_path/FS-UAE/AmigaVision/shared" fi From 34e701cb90172e52517fcbc8a06c9a231649d65a Mon Sep 17 00:00:00 2001 From: etjanster Date: Tue, 27 Jan 2026 07:12:09 +0100 Subject: [PATCH 44/82] amiga [skip ci] --- archive_later/flycast/{ => assets}/rd_config/emu.cfg | 0 archive_later/flycast/component_recipe.json | 2 +- archive_later/fs-uae/component_prepare.sh | 1 + archive_later/fs-uae/component_recipe.json | 7 ++++++- 4 files changed, 8 insertions(+), 2 deletions(-) rename archive_later/flycast/{ => assets}/rd_config/emu.cfg (100%) diff --git a/archive_later/flycast/rd_config/emu.cfg b/archive_later/flycast/assets/rd_config/emu.cfg similarity index 100% rename from archive_later/flycast/rd_config/emu.cfg rename to archive_later/flycast/assets/rd_config/emu.cfg diff --git a/archive_later/flycast/component_recipe.json b/archive_later/flycast/component_recipe.json index 0b19f48f..9fb7bed5 100755 --- a/archive_later/flycast/component_recipe.json +++ b/archive_later/flycast/component_recipe.json @@ -19,7 +19,7 @@ }, { "type": "dir", - "source": "$REPO_ROOT/$COMPONENT_NAME/rd_config", + "source": "$REPO_ROOT/$COMPONENT_NAME/assets/rd_config", "dest": "rd_config" }, { diff --git a/archive_later/fs-uae/component_prepare.sh b/archive_later/fs-uae/component_prepare.sh index 3ce02a1b..f2028a2e 100755 --- a/archive_later/fs-uae/component_prepare.sh +++ b/archive_later/fs-uae/component_prepare.sh @@ -9,6 +9,7 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "Preparing $component_name" log i "----------------------" + create_dir -d "$XDG_CONFIG_HOME/FS-UAE/" create_dir "$storage_path/FS-UAE/AmigaVision/shared" fi diff --git a/archive_later/fs-uae/component_recipe.json b/archive_later/fs-uae/component_recipe.json index fff8b00e..edb4ba98 100755 --- a/archive_later/fs-uae/component_recipe.json +++ b/archive_later/fs-uae/component_recipe.json @@ -26,6 +26,11 @@ "source": "FS-UAE/Locale", "dest": "Locale" }, + { + "type": "dir", + "source": "$REPO_ROOT/$COMPONENT_NAME/assets/rd_config", + "dest": "rd_config" + }, { "type": "file", "source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh", @@ -60,4 +65,4 @@ "libs": [] } ] -} +} \ No newline at end of file From 3969aa78c3222aa510ee53d08a43fd3bffa2c4d2 Mon Sep 17 00:00:00 2001 From: etjanster Date: Tue, 27 Jan 2026 07:42:08 +0100 Subject: [PATCH 45/82] verdict [skip ci] --- archive_old/easyrpg/EasyRPG Verdict.txt | 2 +- archive_old/linapple/LinApple Verdict.txt | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 archive_old/linapple/LinApple Verdict.txt diff --git a/archive_old/easyrpg/EasyRPG Verdict.txt b/archive_old/easyrpg/EasyRPG Verdict.txt index 1a80ad19..ab2cea92 100644 --- a/archive_old/easyrpg/EasyRPG Verdict.txt +++ b/archive_old/easyrpg/EasyRPG Verdict.txt @@ -4,4 +4,4 @@ Given this arrangement, there appears to be little justification for incorporati // Lazorne -28-12-25 +2025-12-28 diff --git a/archive_old/linapple/LinApple Verdict.txt b/archive_old/linapple/LinApple Verdict.txt new file mode 100644 index 00000000..7af4774f --- /dev/null +++ b/archive_old/linapple/LinApple Verdict.txt @@ -0,0 +1,7 @@ +LinApple is lacking updates, KEGS is still updated. + +It's better to use KEGS. + +// Lazorne + +2026-01-27 From c66375b9e62372d3640c239a31ff4e8ab99395a1 Mon Sep 17 00:00:00 2001 From: etjanster Date: Tue, 27 Jan 2026 09:41:01 +0100 Subject: [PATCH 46/82] amiga [skip ci] --- .../fs-uae/assets/rd_config/custom.fs-uae | 35 +++++++++++++++++++ archive_later/fs-uae/component_prepare.sh | 4 +++ 2 files changed, 39 insertions(+) create mode 100644 archive_later/fs-uae/assets/rd_config/custom.fs-uae diff --git a/archive_later/fs-uae/assets/rd_config/custom.fs-uae b/archive_later/fs-uae/assets/rd_config/custom.fs-uae new file mode 100644 index 00000000..2b0035b1 --- /dev/null +++ b/archive_later/fs-uae/assets/rd_config/custom.fs-uae @@ -0,0 +1,35 @@ +# Name: Custom FS-UAE RetroDECK Configuration + +[fs-uae] +amiga_model = A1200/020 +cpu = 68020 +chip_memory = 2048 +zorro_iii_memory = 262144 +jit_compiler = 0 +kickstart_file = +cdrom_drive_count = 0 +floppy_drive_count = 2 +hard_drive_0 = +hard_drive_0_read_only = 0 +hard_drive_1 = +hard_drive_1_read_only = 0 +hard_drive_2 = +hard_drive_2_read_only = 0 +hard_drive_2_label = + +ntsc_mode = 1 +fullscreen = 1 +scanlines = 1 +viewport = * * * * => 74 36 678 538 +window_width = 678 +window_height = 538 +window_border = 0 +window_resizable = 0 +texture_filter = nearest +scale = integer +smoothing = 0 +border = 0 +bezel = 0 +fade_in_duration = 0 +fade_out_duration = 0 +floppy_drive_volume = 0 diff --git a/archive_later/fs-uae/component_prepare.sh b/archive_later/fs-uae/component_prepare.sh index f2028a2e..24f4dc9d 100755 --- a/archive_later/fs-uae/component_prepare.sh +++ b/archive_later/fs-uae/component_prepare.sh @@ -9,7 +9,11 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "Preparing $component_name" log i "----------------------" + create_dir -d "$XDG_CONFIG_HOME/FS-UAE/" + cp -fvr "$component_config/"* "$XDG_CONFIG_HOME/FS-UAE/" create_dir "$storage_path/FS-UAE/AmigaVision/shared" fi + +# Symlink From ab8f056e2da3e9dad109fd119e895666db1da76d Mon Sep 17 00:00:00 2001 From: etjanster Date: Tue, 27 Jan 2026 10:10:02 +0100 Subject: [PATCH 47/82] ze [skip ci] --- archive_later/zesarux/assets/rd_config/temp.txt | 0 archive_later/zesarux/component_recipe.json | 17 ++++++++--------- automation-tools/alchemist/desired_versions.sh | 7 +++++++ 3 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 archive_later/zesarux/assets/rd_config/temp.txt diff --git a/archive_later/zesarux/assets/rd_config/temp.txt b/archive_later/zesarux/assets/rd_config/temp.txt new file mode 100644 index 00000000..e69de29b diff --git a/archive_later/zesarux/component_recipe.json b/archive_later/zesarux/component_recipe.json index 999c81db..6cbf018f 100755 --- a/archive_later/zesarux/component_recipe.json +++ b/archive_later/zesarux/component_recipe.json @@ -1,7 +1,7 @@ { "zesarux": [ { - "source_url": "https://github.com/chernandezba/zesarux/releases/download/{VERSION}/*_ubuntu22_x86_64.tar.gz", + "source_url": "https://github.com/chernandezba/zesarux/releases/download/{VERSION}/*ubuntu22_x86_64.tar.gz", "source_type": "github_release", "version": "$ZESARUX_DESIRED_VERSION", "extraction_type": "archive", @@ -11,9 +11,14 @@ "dest": "component_version", "contents": "$FRAMEWORK_DESIRED_VERSION" }, + { + "type": "", + "source": "$EXTRACTED_PATH", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, { "type": "dir", - "source": "$REPO_ROOT/$COMPONENT_NAME/rd_config", + "source": "$REPO_ROOT/$COMPONENT_NAME/assets/rd_config", "dest": "rd_config" }, { @@ -47,13 +52,7 @@ "dest": "$COMPONENT_ARTIFACT_ROOT" } ], - "libs": [ - { - "library": "libSDL-1.2.so.0", - "source": "", - "dest": "shared-libs" - } - ] + "libs": [] } ] } \ No newline at end of file diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index d33e5d92..019572fc 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -591,7 +591,14 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # COOKER (Override) export XENIA_DESIRED_VERSION="newest" +# ------------------------------------------------------------------------------ +# ZEsarUX - ZX Second-Emulator +# ------------------------------------------------------------------------------ +# MAIN (Stable) +# export ZESARUX_DESIRED_VERSION="" +# COOKER (Override) + export ZESARUX_DESIRED_VERSION="latest" # ------------------------------------------------------------------ From 6f3e9cb5e16f2203b36927190ee2cc09ab682164 Mon Sep 17 00:00:00 2001 From: lazzite Date: Tue, 27 Jan 2026 11:46:25 +0100 Subject: [PATCH 48/82] amiga [skip ci] --- archive_later/fs-uae/assets/rd_config/AmigaVision.fdi | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 archive_later/fs-uae/assets/rd_config/AmigaVision.fdi diff --git a/archive_later/fs-uae/assets/rd_config/AmigaVision.fdi b/archive_later/fs-uae/assets/rd_config/AmigaVision.fdi new file mode 100644 index 00000000..e69de29b From 3da84482ab7ee071ce78b9a2b6b1ff7cc8475f55 Mon Sep 17 00:00:00 2001 From: lazzite Date: Tue, 27 Jan 2026 12:33:46 +0100 Subject: [PATCH 49/82] amiga [skip ci] --- archive_later/fs-uae/component_launcher.sh | 2 +- archive_later/fs-uae/component_prepare.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/archive_later/fs-uae/component_launcher.sh b/archive_later/fs-uae/component_launcher.sh index cae9785d..4b9ea327 100755 --- a/archive_later/fs-uae/component_launcher.sh +++ b/archive_later/fs-uae/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/bin/fs-uae" "$@" +exec "$component_path/bin/fs-uae --base-dir=$XDG_DATA_HOME/FS-UAE/" "$@" diff --git a/archive_later/fs-uae/component_prepare.sh b/archive_later/fs-uae/component_prepare.sh index 24f4dc9d..e949ac8e 100755 --- a/archive_later/fs-uae/component_prepare.sh +++ b/archive_later/fs-uae/component_prepare.sh @@ -11,6 +11,7 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands create_dir -d "$XDG_CONFIG_HOME/FS-UAE/" + create_dir -d "$XDG_DATA_HOME/FS-UAE/" cp -fvr "$component_config/"* "$XDG_CONFIG_HOME/FS-UAE/" create_dir "$storage_path/FS-UAE/AmigaVision/shared" From 8343b004d2d6cd6e5679bfa8b0f7ebc49e9c6ec1 Mon Sep 17 00:00:00 2001 From: lazzite Date: Tue, 27 Jan 2026 15:55:33 +0100 Subject: [PATCH 50/82] amiga [skip ci] --- archive_later/fs-uae/component_functions.sh | 3 +++ archive_later/fs-uae/component_prepare.sh | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/archive_later/fs-uae/component_functions.sh b/archive_later/fs-uae/component_functions.sh index a9bf588e..a3ed5675 100755 --- a/archive_later/fs-uae/component_functions.sh +++ b/archive_later/fs-uae/component_functions.sh @@ -1 +1,4 @@ #!/bin/bash + +amigavision_config="$XDG_CONFIG_HOME/FS-UAE/AmigaVision.fs-uae" +custom_config="$XDG_CONFIG_HOME/FS-UAE/custom.fs-uae" \ No newline at end of file diff --git a/archive_later/fs-uae/component_prepare.sh b/archive_later/fs-uae/component_prepare.sh index e949ac8e..0746314f 100755 --- a/archive_later/fs-uae/component_prepare.sh +++ b/archive_later/fs-uae/component_prepare.sh @@ -17,4 +17,6 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands fi -# Symlink +# Symlink custom.fs-uae to $storage_path/FS-UAE/custom.fs-uae +# Make a function that copies AmigaVision.fdi to $roms_path/amiga/ If enabled. +# If disabled it deletes the file $roms_path/amiga/AmigaVision.fdi if it's there during boot. From 0cbe17f0fe3d21de765cb208b00e6ba212844407 Mon Sep 17 00:00:00 2001 From: lazzite Date: Tue, 27 Jan 2026 17:42:37 +0100 Subject: [PATCH 51/82] zesarux [skip ci] --- archive_later/zesarux/component_recipe.json | 644 +++++++++++++++++++- archive_later/zesarux/note.txt | 1 + 2 files changed, 643 insertions(+), 2 deletions(-) create mode 100644 archive_later/zesarux/note.txt diff --git a/archive_later/zesarux/component_recipe.json b/archive_later/zesarux/component_recipe.json index 6cbf018f..4a95c26f 100755 --- a/archive_later/zesarux/component_recipe.json +++ b/archive_later/zesarux/component_recipe.json @@ -12,10 +12,650 @@ "contents": "$FRAMEWORK_DESIRED_VERSION" }, { - "type": "", - "source": "$EXTRACTED_PATH", + "type": "dir", + "source": "ZEsarUX-12.1/alternate_roms", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "dir", + "source": "ZEsarUX-12.1/copiers", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "dir", + "source": "ZEsarUX-12.1/docs", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "dir", + "source": "ZEsarUX-12.1/keyboards", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "dir", + "source": "ZEsarUX-12.1/licenses", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "dir", + "source": "ZEsarUX-12.1/my_soft", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "dir", + "source": "ZEsarUX-12.1/speech_filters", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "dir", + "source": "ZEsarUX-12.1/steering_wheel_presets", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "dir", + "source": "ZEsarUX-12.1/text_image_filters", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/128.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/128s.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/48.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/48es.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/80-lec.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ace.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/atomlite.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/chrome.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/coleco.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/cpc464.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/cpc6128.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/cpc664.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/defcon.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/dinamid3.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/esxide085.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/esxmmc085.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/gs104.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/gs105a.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/hilow_barbanegra.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/hilow_datadrive.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/if1-v1.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/if1-v2.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/interface007.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/inves.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/mf1.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/mf128.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/mf3.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/mhpokeador.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/mhpokeador-salvapan.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/mhpokeador-transfer.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/mk14.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/msx.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/p2.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/p2a40.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/p2a41.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/p2as.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/p2f.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/p2s.rom", "dest": "$COMPONENT_ARTIFACT_ROOT" }, + { + "type": "file", + "source": "ZEsarUX-12.1/pcw_boot.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/pentagon.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/phoenix3.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/prism.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/prism_failsafe.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ql_jm.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ql_js.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ramjet2.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ramjet3.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/samcoupe.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/samram.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/samram_eng.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/se.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/sg1000.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/sms.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/specmate.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/svi.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tbblue_loader.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tc2048.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tk85.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tk90x.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tk90xs.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tk90x_v1br.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tk90x_v2es.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tk95.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tk95es.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tk95es_modif.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/transtape2.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/transtape3-vA.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/transtape3-vB.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/transtape3-vC.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/trdos.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ts1500.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ts2068.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/unodos3.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Z88OZ431.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Z88OZ441.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Z88OZ45.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Z88OZ46.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Z88OZ47.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Z88UK220.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Z88UK300.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Z88UK400.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zx80.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zx81.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zxevo_baseconf.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zxevo_tsconf.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zxpand_zx80.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zxpand_zx81.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zxuno_bootloader.rom", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/pcw_8x_boot1.dsk", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/pcw_8x_boot2.dsk", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/editionnamegame.tap", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/editionnamegame.tap.config", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/mantransfev3.bin", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/tbblue.mmc", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zxmmcplus.flash", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zxuno.flash", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/install.sh", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zesarux", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/included_utilities.odt", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zesarux.odt", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/zesarux.pdf", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ACKNOWLEDGEMENTS", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/ALTERNATEROMS", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Cambios", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/Changelog", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/DONATE", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/DONORS", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/EXCLUSIVEFEATURES", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/FAQ", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/FEATURES", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/FEATURES_es", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/HISTORY", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/INCLUDEDTAPES", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/IN_MEMORIAM_DAVID", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/IN_MEMORIAM_DAVID_es", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/IN_MEMORIAM_DIEGO", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/IN_MEMORIAM_DIEGO_es", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/INSTALL", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/LICENSE", + "dest": "docs" + }, + { + "type": "file", + "source": "ZEsarUX-12.1/LICENSES_info", + "dest": "docs" + }, { "type": "dir", "source": "$REPO_ROOT/$COMPONENT_NAME/assets/rd_config", diff --git a/archive_later/zesarux/note.txt b/archive_later/zesarux/note.txt new file mode 100644 index 00000000..0ada1074 --- /dev/null +++ b/archive_later/zesarux/note.txt @@ -0,0 +1 @@ +needs: libSDL-1.2.so.0 \ No newline at end of file From 66e6b05f8f96ca08aad6110aae8c5c07f5b17922 Mon Sep 17 00:00:00 2001 From: lazzite Date: Wed, 28 Jan 2026 17:32:03 +0100 Subject: [PATCH 52/82] ppsspp wrong shader path [skip ci] --- ppsspp/component_functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ppsspp/component_functions.sh b/ppsspp/component_functions.sh index 49e66430..030314cd 100755 --- a/ppsspp/component_functions.sh +++ b/ppsspp/component_functions.sh @@ -7,7 +7,7 @@ ppsspp_cheats_db="$rd_components/ppsspp/cheats/cheat.db" ppsspp_rd_config_dir="$rd_components/ppsspp/rd_config" ppsspp_rd_extras_dir="$rd_components/ppsspp/rd_extras" ppsspp_textures_path="$XDG_CONFIG_HOME/ppsspp/PSP/TEXTURES" -ppsspp_shaders_path="$XDG_CONFIG_HOME/ppsspp/assets/shaders" +ppsspp_shaders_path="$XDG_CONFIG_HOME/ppsspp/PSP/shaders" ppsspp_cheats_path="$XDG_CONFIG_HOME/ppsspp/PSP/Cheats" ppsspp_mods_path="$XDG_CONFIG_HOME/ppsspp/PSP/PLUGINS" ppsspp_logs_path="$XDG_CONFIG_HOME/ppsspp/PSP/SYSTEM/DUMP" From 16d8ac7a4b87ea756f17cf34578aa1918f9523cb Mon Sep 17 00:00:00 2001 From: lazzite Date: Wed, 28 Jan 2026 17:38:46 +0100 Subject: [PATCH 53/82] ppsspp 0.10.3 post update [skip ci] --- ppsspp/component_update.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ppsspp/component_update.sh b/ppsspp/component_update.sh index 51d7cfca..a0d3d3a6 100644 --- a/ppsspp/component_update.sh +++ b/ppsspp/component_update.sh @@ -41,3 +41,12 @@ if [[ $(check_version_is_older_than "$version_being_updated" "0.10.0b") == "true set_setting_value "$ppsspp_config" "InternalResolution" "3" "ppsspp" "Graphics" unzip -q -o -j "$ppsspp_rd_extras_dir/CWCheat-Database-Plus--master.zip" "*/cheat.db" -d "$cheats_path/PPSSPP" fi + +if [[ $(check_version_is_older_than "$version_being_updated" "0.10.3b") == "true" ]]; then + + log i "0.10.3b Upgrade - PPSSPP: Relink Shaders" + + dir_prep "$shaders_path/PPSSPP" "$ppsspp_shaders_path" + +fi + From 4d37c2e00fe0d3c229acba466bf61ba2961cbc9a Mon Sep 17 00:00:00 2001 From: etjanster Date: Thu, 29 Jan 2026 07:28:24 +0100 Subject: [PATCH 54/82] cx16 [skip ci] --- archive_later/commander-x16/component_manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/archive_later/commander-x16/component_manifest.json b/archive_later/commander-x16/component_manifest.json index 6ec04fd2..cfed4b75 100644 --- a/archive_later/commander-x16/component_manifest.json +++ b/archive_later/commander-x16/component_manifest.json @@ -4,9 +4,9 @@ "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/commander-x16/commander-x16-guide/", "url_webpage": "https://www.commanderx16.com/", "url_source": "https://github.com/marco-calautti/DeltaPatcher", - "description": "Commander X16 is a X16 emulator.", + "description": "Commander X16 Emulator.", "component_type": "Emulator", - "system": "d", + "system": "commander-x16", "system_friendly_name": "Commander X16" } } From 8910d336917c615eee9bd474b27fedd974adf0b2 Mon Sep 17 00:00:00 2001 From: etjanster Date: Thu, 29 Jan 2026 07:30:41 +0100 Subject: [PATCH 55/82] cx16 [skip ci] --- archive_later/commander-x16/component_manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/commander-x16/component_manifest.json b/archive_later/commander-x16/component_manifest.json index cfed4b75..a0b5be44 100644 --- a/archive_later/commander-x16/component_manifest.json +++ b/archive_later/commander-x16/component_manifest.json @@ -3,7 +3,7 @@ "name": "Commander X16", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/commander-x16/commander-x16-guide/", "url_webpage": "https://www.commanderx16.com/", - "url_source": "https://github.com/marco-calautti/DeltaPatcher", + "url_source": "https://github.com/X16Community/x16-emulator", "description": "Commander X16 Emulator.", "component_type": "Emulator", "system": "commander-x16", From 533eb2b015d0a70d6056717475d834611cdcb755 Mon Sep 17 00:00:00 2001 From: etjanster Date: Thu, 29 Jan 2026 07:42:22 +0100 Subject: [PATCH 56/82] edge [skip ci] --- archive_later/xenia-edge/component_functions.sh | 4 ++++ archive_later/{xenia => xenia-edge}/component_launcher.sh | 0 archive_later/{xenia => xenia-edge}/component_manifest.json | 2 +- archive_later/{xenia => xenia-edge}/component_prepare.sh | 0 archive_later/{xenia => xenia-edge}/component_recipe.json | 2 +- archive_later/{xenia => xenia-edge}/component_update.sh | 0 archive_later/{xenia => xenia-edge}/rd_config/qt.conf | 0 .../{xenia => xenia-edge}/rd_config/xenia-edge.config.toml | 0 archive_later/{xenia => xenia-edge}/recipe_todo.txt | 0 archive_later/xenia/component_functions.sh | 4 ---- 10 files changed, 6 insertions(+), 6 deletions(-) create mode 100755 archive_later/xenia-edge/component_functions.sh rename archive_later/{xenia => xenia-edge}/component_launcher.sh (100%) rename archive_later/{xenia => xenia-edge}/component_manifest.json (95%) rename archive_later/{xenia => xenia-edge}/component_prepare.sh (100%) rename archive_later/{xenia => xenia-edge}/component_recipe.json (99%) rename archive_later/{xenia => xenia-edge}/component_update.sh (100%) rename archive_later/{xenia => xenia-edge}/rd_config/qt.conf (100%) rename archive_later/{xenia => xenia-edge}/rd_config/xenia-edge.config.toml (100%) rename archive_later/{xenia => xenia-edge}/recipe_todo.txt (100%) delete mode 100755 archive_later/xenia/component_functions.sh diff --git a/archive_later/xenia-edge/component_functions.sh b/archive_later/xenia-edge/component_functions.sh new file mode 100755 index 00000000..2fdef023 --- /dev/null +++ b/archive_later/xenia-edge/component_functions.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +xenia_edge_config="$XDG_CONFIG_HOME/xenia/xenia-edge.config.toml" +xenia_edge_config_qt="$XDG_CONFIG_HOME/xenia/qt.conf" diff --git a/archive_later/xenia/component_launcher.sh b/archive_later/xenia-edge/component_launcher.sh similarity index 100% rename from archive_later/xenia/component_launcher.sh rename to archive_later/xenia-edge/component_launcher.sh diff --git a/archive_later/xenia/component_manifest.json b/archive_later/xenia-edge/component_manifest.json similarity index 95% rename from archive_later/xenia/component_manifest.json rename to archive_later/xenia-edge/component_manifest.json index 783536cf..99ea302b 100644 --- a/archive_later/xenia/component_manifest.json +++ b/archive_later/xenia-edge/component_manifest.json @@ -1,5 +1,5 @@ { - "xenia": { + "xenia-edge": { "name": "Xenia Edge", "url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/xenia/xenia-guide/", "url_webpage": "https://xenia.jp/", diff --git a/archive_later/xenia/component_prepare.sh b/archive_later/xenia-edge/component_prepare.sh similarity index 100% rename from archive_later/xenia/component_prepare.sh rename to archive_later/xenia-edge/component_prepare.sh diff --git a/archive_later/xenia/component_recipe.json b/archive_later/xenia-edge/component_recipe.json similarity index 99% rename from archive_later/xenia/component_recipe.json rename to archive_later/xenia-edge/component_recipe.json index 15d1093c..9d0b84b9 100755 --- a/archive_later/xenia/component_recipe.json +++ b/archive_later/xenia-edge/component_recipe.json @@ -1,5 +1,5 @@ { - "xenia": [ + "xenia-edge": [ { "source_url": "https://github.com/has207/xenia-edge/releases/download/{VERSION}/xenia_edge_linux.AppImage", "source_type": "github_release", diff --git a/archive_later/xenia/component_update.sh b/archive_later/xenia-edge/component_update.sh similarity index 100% rename from archive_later/xenia/component_update.sh rename to archive_later/xenia-edge/component_update.sh diff --git a/archive_later/xenia/rd_config/qt.conf b/archive_later/xenia-edge/rd_config/qt.conf similarity index 100% rename from archive_later/xenia/rd_config/qt.conf rename to archive_later/xenia-edge/rd_config/qt.conf diff --git a/archive_later/xenia/rd_config/xenia-edge.config.toml b/archive_later/xenia-edge/rd_config/xenia-edge.config.toml similarity index 100% rename from archive_later/xenia/rd_config/xenia-edge.config.toml rename to archive_later/xenia-edge/rd_config/xenia-edge.config.toml diff --git a/archive_later/xenia/recipe_todo.txt b/archive_later/xenia-edge/recipe_todo.txt similarity index 100% rename from archive_later/xenia/recipe_todo.txt rename to archive_later/xenia-edge/recipe_todo.txt diff --git a/archive_later/xenia/component_functions.sh b/archive_later/xenia/component_functions.sh deleted file mode 100755 index eac2d2d8..00000000 --- a/archive_later/xenia/component_functions.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -xenia_config="$XDG_CONFIG_HOME/xenia/xenia-edge.config.toml" -xenia_config_qt="$XDG_CONFIG_HOME/xenia/qt.conf" From bf84339e86e28bdd9bb55709d07bcad52019d174 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 30 Jan 2026 10:19:49 -0500 Subject: [PATCH 57/82] Stop retroarch_updater function from removing /var/config/retroarch symlinks when extracting shipped data. [skip ci] --- retroarch/component_functions.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/retroarch/component_functions.sh b/retroarch/component_functions.sh index 84ac2a16..7f7f3ac0 100755 --- a/retroarch/component_functions.sh +++ b/retroarch/component_functions.sh @@ -14,14 +14,14 @@ retroarch_updater() { log i "Running RetroArch updater" log i "Updating overlays/borders..." - create_dir -d "$XDG_CONFIG_HOME/retroarch/overlays" + create_dir "$XDG_CONFIG_HOME/retroarch/overlays" tar -xzf "$retroarch_extras_path/overlays.tar.gz" -C "$XDG_CONFIG_HOME/retroarch/overlays" --overwrite && log d "RetroArch overlays and borders updated correctly" log i "Updating shaders..." - create_dir -d "$XDG_CONFIG_HOME/retroarch/shaders" + create_dir "$XDG_CONFIG_HOME/retroarch/shaders" tar -xzf "$retroarch_extras_path/shaders.tar.gz" -C "$XDG_CONFIG_HOME/retroarch/shaders" --overwrite && log d "RetroArch shaders updated correctly" log i "Updating cheats..." - create_dir -d "$cheats_path/retroarch" + create_dir "$cheats_path/retroarch" tar -xzf "$retroarch_extras_path/cheats.tar.gz" -C "$cheats_path/retroarch" --overwrite && log d "RetroArch cheats updated correctly" } From 2b6b0a13e97f556e0a8b2f6964ecefe7c6174ef5 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 30 Jan 2026 11:34:21 -0500 Subject: [PATCH 58/82] Rework retroarch_updater to include shipped filters and update files in userland locations rather than redundant symlinks [skip ci] --- retroarch/component_functions.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/retroarch/component_functions.sh b/retroarch/component_functions.sh index 7f7f3ac0..153fded4 100755 --- a/retroarch/component_functions.sh +++ b/retroarch/component_functions.sh @@ -2,7 +2,7 @@ retroarch_config="$XDG_CONFIG_HOME/retroarch/retroarch.cfg" retroarch_config_core_options="$XDG_CONFIG_HOME/retroarch/retroarch-core-options.cfg" -retroarch_config_scummvm="$XDG_CONFIG_HOME/retroarch/system/scummvm.ini" +retroarch_config_scummvm="$bios_path/scummvm.ini" retroarch_cores_path="$XDG_CONFIG_HOME/retroarch/cores" retroarch_extras_path="$rd_components/retroarch/rd_extras" retroarch_rd_config_dir="$rd_components/retroarch/rd_config" @@ -14,14 +14,18 @@ retroarch_updater() { log i "Running RetroArch updater" log i "Updating overlays/borders..." - create_dir "$XDG_CONFIG_HOME/retroarch/overlays" - tar -xzf "$retroarch_extras_path/overlays.tar.gz" -C "$XDG_CONFIG_HOME/retroarch/overlays" --overwrite && log d "RetroArch overlays and borders updated correctly" + create_dir "$borders_path/retroarch/overlays" + tar -h -xzf "$retroarch_extras_path/overlays.tar.gz" -C "$borders_path/retroarch/overlays" --overwrite && log d "RetroArch overlays and borders updated correctly" log i "Updating shaders..." - create_dir "$XDG_CONFIG_HOME/retroarch/shaders" - tar -xzf "$retroarch_extras_path/shaders.tar.gz" -C "$XDG_CONFIG_HOME/retroarch/shaders" --overwrite && log d "RetroArch shaders updated correctly" + create_dir "$shaders_path/retroarch/shaders" + tar -h -xzf "$retroarch_extras_path/shaders.tar.gz" -C "$shaders_path/retroarch/shaders" --overwrite && log d "RetroArch shaders updated correctly" + + log i "Updating filters..." + create_dir "$shaders_path/retroarch/filters" + tar -h -xzf "$retroarch_extras_path/filters.tar.gz" -C "$shaders_path/retroarch/filters" --overwrite && log d "RetroArch shaders updated correctly" log i "Updating cheats..." create_dir "$cheats_path/retroarch" - tar -xzf "$retroarch_extras_path/cheats.tar.gz" -C "$cheats_path/retroarch" --overwrite && log d "RetroArch cheats updated correctly" + tar -h -xzf "$retroarch_extras_path/cheats.tar.gz" -C "$cheats_path/retroarch" --overwrite && log d "RetroArch cheats updated correctly" } From 2a762e616e8c7c5e1e3794caf63ec658b8c3b646 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 30 Jan 2026 11:34:59 -0500 Subject: [PATCH 59/82] Remove reduncant symlinks and reference paths directly in RA config, disable currently broken prepare commands [skip ci] --- retroarch/component_prepare.sh | 55 ++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/retroarch/component_prepare.sh b/retroarch/component_prepare.sh index 6159ab8c..e7a8ee05 100755 --- a/retroarch/component_prepare.sh +++ b/retroarch/component_prepare.sh @@ -11,7 +11,6 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "--------------------------------" create_dir -d "$XDG_CONFIG_HOME/retroarch" - dir_prep "$bios_path" "$XDG_CONFIG_HOME/retroarch/system" dir_prep "$logs_path/retroarch" "$XDG_CONFIG_HOME/retroarch/logs" if [[ -d "$cheats_path/retroarch" && "$(ls -A "$cheats_path/retroarch")" ]]; then backup_file="$backups_path/cheats/retroarch-$(date +%y%m%d).tar.gz" @@ -38,6 +37,11 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands set_setting_value "$retroarch_config" "content_database_path" "$component_path/database/rdb" "retroarch" set_setting_value "$retroarch_config" "libretro_directory" "$retroarch_extras_path/cores" "retroarch" set_setting_value "$retroarch_config" "libretro_info_path" "$retroarch_extras_path/cores" "retroarch" + set_setting_value "$retroarch_config" "audio_filter_dir" "$shaders_path/retroarch/filters/audio" "retroarch" + set_setting_value "$retroarch_config" "video_filter_dir" "$shaders_path/retroarch/filters/video" "retroarch" + set_setting_value "$retroarch_config" "video_shader_dir" "$shaders_path/retroarch/shaders" "retroarch" + set_setting_value "$retroarch_config" "overlay_directory" "$borders_path/retroarch" "retroarch" + set_setting_value "$retroarch_config" "system_directory" "$bios_path" "retroarch" # Video create_dir "$videos_path/retroarch" @@ -71,9 +75,6 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands retroarch_updater # Avoid these paths being clobbered by the updater - dir_prep "$borders_path/retroarch/" "$XDG_CONFIG_HOME/retroarch/overlays/borders" - log d "Linking shaders folder to ensure retroarch can find it $XDG_CONFIG_HOME/retroarch/shaders to $shaders_path/retroarch" - dir_prep "$shaders_path/retroarch" "$XDG_CONFIG_HOME/retroarch/shaders" ln -s "$retroarch_extras_path/cores" "$XDG_CONFIG_HOME/retroarch/cores" # Link RO cores to RA config dir so ES-DE can find it # FBNEO @@ -124,17 +125,17 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands set_setting_value "$retroarch_config_scummvm" "browser_lastpath" "$roms_path/scummvm" "libretro_scummvm" "scummvm" # Texture Packs - dir_prep "$texture_packs_path/retroarch-core/Mesen/HdPacks" "$XDG_CONFIG_HOME/retroarch/system/HdPacks" - dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/cache" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/cache" - dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/hires_texture" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/hires_texture" - dir_prep "$texture_packs_path/retroarch-core/Citra/textures" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/textures" - dir_prep "$texture_packs_path/retroarch-core/Dolphin/Textures" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/Textures/" - dir_prep "$texture_packs_path/retroarch-core/PPSSPP/TEXTURES" "$XDG_CONFIG_HOME/retroarch/saves/PPSSPP/PSP/TEXTURES" + dir_prep "$texture_packs_path/retroarch-core/Mesen/HdPacks" "$bios_path/HdPacks" + dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/cache" "$bios_path/Mupen64plus/cache" + dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/hires_texture" "$bios_path/Mupen64plus/hires_texture" +# dir_prep "$texture_packs_path/retroarch-core/Citra/textures" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/textures" +# dir_prep "$texture_packs_path/retroarch-core/Dolphin/Textures" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/Textures/" +# dir_prep "$texture_packs_path/retroarch-core/PPSSPP/TEXTURES" "$XDG_CONFIG_HOME/retroarch/saves/PPSSPP/PSP/TEXTURES" dir_prep "$texture_packs_path/retroarch-core/Flycast/textures" "$bios_path/dc/textures" # Mods - dir_prep "$mods_path/retroarch-core/Citra/mods" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/mods" - dir_prep "$mods_path/retroarch-core/Dolphin/GraphicMods" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/GraphicMods" +# dir_prep "$mods_path/retroarch-core/Citra/mods" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/mods" +# dir_prep "$mods_path/retroarch-core/Dolphin/GraphicMods" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/GraphicMods" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands @@ -150,18 +151,18 @@ if [[ "$action" == "postmove" ]]; then # Run only post-move commands set_setting_value "$retroarch_config_scummvm" "browser_lastpath" "$roms_path/scummvm" "libretro_scummvm" "scummvm" # BIOS - dir_prep "$bios_path" "$XDG_CONFIG_HOME/retroarch/system" + set_setting_value "$retroarch_config" "system_directory" "$bios_path" "retroarch" # Logs dir_prep "$logs_path/retroarch" "$XDG_CONFIG_HOME/retroarch/logs" # Texture Packs - dir_prep "$texture_packs_path/retroarch-core/Mesen/HdPacks" "$XDG_CONFIG_HOME/retroarch/system/HdPacks" - dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/cache" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/cache" - dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/hires_texture" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/hires_texture" - dir_prep "$texture_packs_path/retroarch-core/Citra/textures" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/textures" - dir_prep "$texture_packs_path/retroarch-core/Dolphin/Textures" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/Textures/" - dir_prep "$texture_packs_path/retroarch-core/PPSSPP/TEXTURES" "$XDG_CONFIG_HOME/retroarch/saves/PPSSPP/PSP/TEXTURES" + dir_prep "$texture_packs_path/retroarch-core/Mesen/HdPacks" "$bios_path/HdPacks" + dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/cache" "$bios_path/Mupen64plus/cache" + dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/hires_texture" "$bios_path/Mupen64plus/hires_texture" +# dir_prep "$texture_packs_path/retroarch-core/Citra/textures" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/textures" +# dir_prep "$texture_packs_path/retroarch-core/Dolphin/Textures" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/Textures/" +# dir_prep "$texture_packs_path/retroarch-core/PPSSPP/TEXTURES" "$XDG_CONFIG_HOME/retroarch/saves/PPSSPP/PSP/TEXTURES" dir_prep "$texture_packs_path/retroarch-core/Flycast/textures" "$bios_path/dc/textures" # Cheats @@ -169,11 +170,11 @@ if [[ "$action" == "postmove" ]]; then # Run only post-move commands # Shaders dir_prep "$shaders_path/retroarch-core/fbneo/blend" "$bios_path/fbneo/blend" - dir_prep "$shaders_path/retroarch" "$XDG_CONFIG_HOME/retroarch/shaders" +# dir_prep "$shaders_path/retroarch/shaders" "$XDG_CONFIG_HOME/retroarch/shaders" # Mods - dir_prep "$mods_path/retroarch-core/Citra/mods" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/mods" - dir_prep "$mods_path/retroarch-core/Dolphin/GraphicMods" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/GraphicMods" +# dir_prep "$mods_path/retroarch-core/Citra/mods" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/mods" +# dir_prep "$mods_path/retroarch-core/Dolphin/GraphicMods" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/GraphicMods" dir_prep "$mods_path/retroarch-core/fbneo/patched" "$bios_path/fbneo/patched" dir_prep "$mods_path/retroarch-core/fbneo/ips" "$bios_path/fbneo/ips" dir_prep "$mods_path/retroarch-core/fbneo/romdata" "$bios_path/fbneo/romdata" @@ -186,4 +187,14 @@ if [[ "$action" == "postmove" ]]; then # Run only post-move commands set_setting_value "$retroarch_config" "log_dir" "$logs_path" "retroarch" set_setting_value "$retroarch_config" "rgui_browser_directory" "$roms_path" "retroarch" set_setting_value "$retroarch_config" "cheat_database_path" "$cheats_path/retroarch" "retroarch" + set_setting_value "$retroarch_config" "assets_directory" "$component_path/assets" "retroarch" + set_setting_value "$retroarch_config" "joypad_autoconfig_dir" "$component_path/autoconfig" "retroarch" + set_setting_value "$retroarch_config" "cursor_directory" "$component_path/database/cursors" "retroarch" + set_setting_value "$retroarch_config" "content_database_path" "$component_path/database/rdb" "retroarch" + set_setting_value "$retroarch_config" "libretro_directory" "$retroarch_extras_path/cores" "retroarch" + set_setting_value "$retroarch_config" "libretro_info_path" "$retroarch_extras_path/cores" "retroarch" + set_setting_value "$retroarch_config" "audio_filter_dir" "$shaders_path/retroarch/filters/audio" "retroarch" + set_setting_value "$retroarch_config" "video_filter_dir" "$shaders_path/retroarch/filters/video" "retroarch" + set_setting_value "$retroarch_config" "video_shader_dir" "$shaders_path/retroarch/shaders" "retroarch" + set_setting_value "$retroarch_config" "overlay_directory" "$borders_path/retroarch" "retroarch" fi From d83953710dedb2ab62d2dcb1cf679f6579739962 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 30 Jan 2026 11:35:30 -0500 Subject: [PATCH 60/82] Update RA recipe to ship a/v filters as an archive which will be extracted to userland on setup [skip ci] --- retroarch/component_recipe.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/retroarch/component_recipe.json b/retroarch/component_recipe.json index 447acb20..bcdf79f5 100755 --- a/retroarch/component_recipe.json +++ b/retroarch/component_recipe.json @@ -42,9 +42,9 @@ "dest": "database/rdb" }, { - "type": "dir", - "source": "RetroArch-Linux-x86_64/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/filters", - "dest": "filters" + "type": "tar.gz", + "source": "RetroArch-Linux-x86_64/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/filters/.", + "dest": "rd_extras/filters" }, { "type": "tar.gz", From 002dc3e436cf8b212319cc72b101204319489697 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 30 Jan 2026 11:37:31 -0500 Subject: [PATCH 61/82] Migrate RA shaders to new location, set up direct path references in RA config on update to 0.10.3. [skip ci] --- retroarch/component_update.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/retroarch/component_update.sh b/retroarch/component_update.sh index df8dbd11..96a81062 100644 --- a/retroarch/component_update.sh +++ b/retroarch/component_update.sh @@ -95,6 +95,19 @@ if [[ $(check_version_is_older_than "$version_being_updated" "0.10.0b") == "true move "$texture_packs_path/RetroArch-Mupen64Plus" "$texture_packs_path/retroarch-core/Mupen64Plus" fi +if [[ $(check_version_is_older_than "$version_being_updated" "0.10.3b") == "true" ]]; then + create_dir "$shaders_path/retroarch/shaders" + create_dir "$shaders_path/retroarch/filters" + move "$shaders_path/retroarch/shaders_cg" "$shaders_path/retroarch/shaders/" + move "$shaders_path/retroarch/shaders_glsl" "$shaders_path/retroarch/shaders/" + move "$shaders_path/retroarch/shaders_slang" "$shaders_path/retroarch/shaders/" + set_setting_value "$retroarch_config" "audio_filter_dir" "$shaders_path/retroarch/filters/audio" "retroarch" + set_setting_value "$retroarch_config" "video_filter_dir" "$shaders_path/retroarch/filters/video" "retroarch" + set_setting_value "$retroarch_config" "video_shader_dir" "$shaders_path/retroarch/shaders" "retroarch" + set_setting_value "$retroarch_config" "overlay_directory" "$borders_path/retroarch" "retroarch" + set_setting_value "$retroarch_config" "system_directory" "$bios_path" "retroarch" +fi + ####################################### # These actions happen at every update ####################################### From c3569c637be6ec6f8d5fbebddc5dfc2f85eb962b Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 30 Jan 2026 12:08:46 -0500 Subject: [PATCH 62/82] Uncommenting some RA prepare lines as they appear to be related to paths hard-coded in some cores. [skip ci] --- retroarch/component_prepare.sh | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/retroarch/component_prepare.sh b/retroarch/component_prepare.sh index e7a8ee05..0150ca72 100755 --- a/retroarch/component_prepare.sh +++ b/retroarch/component_prepare.sh @@ -128,14 +128,14 @@ if [[ "$action" == "reset" ]]; then # Run reset-only commands dir_prep "$texture_packs_path/retroarch-core/Mesen/HdPacks" "$bios_path/HdPacks" dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/cache" "$bios_path/Mupen64plus/cache" dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/hires_texture" "$bios_path/Mupen64plus/hires_texture" -# dir_prep "$texture_packs_path/retroarch-core/Citra/textures" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/textures" -# dir_prep "$texture_packs_path/retroarch-core/Dolphin/Textures" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/Textures/" -# dir_prep "$texture_packs_path/retroarch-core/PPSSPP/TEXTURES" "$XDG_CONFIG_HOME/retroarch/saves/PPSSPP/PSP/TEXTURES" + dir_prep "$texture_packs_path/retroarch-core/Citra/textures" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/textures" + dir_prep "$texture_packs_path/retroarch-core/Dolphin/Textures" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/Textures/" + dir_prep "$texture_packs_path/retroarch-core/PPSSPP/TEXTURES" "$XDG_CONFIG_HOME/retroarch/saves/PPSSPP/PSP/TEXTURES" dir_prep "$texture_packs_path/retroarch-core/Flycast/textures" "$bios_path/dc/textures" # Mods -# dir_prep "$mods_path/retroarch-core/Citra/mods" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/mods" -# dir_prep "$mods_path/retroarch-core/Dolphin/GraphicMods" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/GraphicMods" + dir_prep "$mods_path/retroarch-core/Citra/mods" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/mods" + dir_prep "$mods_path/retroarch-core/Dolphin/GraphicMods" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/GraphicMods" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands @@ -160,9 +160,9 @@ if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$texture_packs_path/retroarch-core/Mesen/HdPacks" "$bios_path/HdPacks" dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/cache" "$bios_path/Mupen64plus/cache" dir_prep "$texture_packs_path/retroarch-core/Mupen64Plus/hires_texture" "$bios_path/Mupen64plus/hires_texture" -# dir_prep "$texture_packs_path/retroarch-core/Citra/textures" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/textures" -# dir_prep "$texture_packs_path/retroarch-core/Dolphin/Textures" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/Textures/" -# dir_prep "$texture_packs_path/retroarch-core/PPSSPP/TEXTURES" "$XDG_CONFIG_HOME/retroarch/saves/PPSSPP/PSP/TEXTURES" + dir_prep "$texture_packs_path/retroarch-core/Citra/textures" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/textures" + dir_prep "$texture_packs_path/retroarch-core/Dolphin/Textures" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/Textures/" + dir_prep "$texture_packs_path/retroarch-core/PPSSPP/TEXTURES" "$XDG_CONFIG_HOME/retroarch/saves/PPSSPP/PSP/TEXTURES" dir_prep "$texture_packs_path/retroarch-core/Flycast/textures" "$bios_path/dc/textures" # Cheats @@ -170,11 +170,10 @@ if [[ "$action" == "postmove" ]]; then # Run only post-move commands # Shaders dir_prep "$shaders_path/retroarch-core/fbneo/blend" "$bios_path/fbneo/blend" -# dir_prep "$shaders_path/retroarch/shaders" "$XDG_CONFIG_HOME/retroarch/shaders" # Mods -# dir_prep "$mods_path/retroarch-core/Citra/mods" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/mods" -# dir_prep "$mods_path/retroarch-core/Dolphin/GraphicMods" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/GraphicMods" + dir_prep "$mods_path/retroarch-core/Citra/mods" "$XDG_CONFIG_HOME/retroarch/saves/Citra/load/mods" + dir_prep "$mods_path/retroarch-core/Dolphin/GraphicMods" "$XDG_CONFIG_HOME/retroarch/saves/dolphin-emu/User/Load/GraphicMods" dir_prep "$mods_path/retroarch-core/fbneo/patched" "$bios_path/fbneo/patched" dir_prep "$mods_path/retroarch-core/fbneo/ips" "$bios_path/fbneo/ips" dir_prep "$mods_path/retroarch-core/fbneo/romdata" "$bios_path/fbneo/romdata" From 9d66cab26405acd8c8d635aa85385b46174a6bd3 Mon Sep 17 00:00:00 2001 From: lazzite Date: Fri, 30 Jan 2026 19:33:10 +0100 Subject: [PATCH 63/82] fixed ice log error [skip ci] --- retroarch/component_functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retroarch/component_functions.sh b/retroarch/component_functions.sh index 153fded4..2b882916 100755 --- a/retroarch/component_functions.sh +++ b/retroarch/component_functions.sh @@ -23,7 +23,7 @@ retroarch_updater() { log i "Updating filters..." create_dir "$shaders_path/retroarch/filters" - tar -h -xzf "$retroarch_extras_path/filters.tar.gz" -C "$shaders_path/retroarch/filters" --overwrite && log d "RetroArch shaders updated correctly" + tar -h -xzf "$retroarch_extras_path/filters.tar.gz" -C "$shaders_path/retroarch/filters" --overwrite && log d "RetroArch filters updated correctly" log i "Updating cheats..." create_dir "$cheats_path/retroarch" From f8a8057bd6d4f34cc4f202cf10a6b77127e359d8 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 31 Jan 2026 08:19:16 +0100 Subject: [PATCH 64/82] version updates --- .../alchemist/desired_versions.sh | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index 019572fc..8eedd1ff 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -56,8 +56,8 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # Link: https://flathub.org/en/apps/org.azahar_emu.Azahar # ------------------------------------------------------------------------------ # MAIN (Stable) -# Version: 2124 - export AZAHAR_DESIRED_VERSION="94b8fdd9355f408050747c20de8400339de7d5d27c2d75b9b5c093a2b4b0bba5" +# Version: 2124.3 + export AZAHAR_DESIRED_VERSION="e30fef66588957afa29ef13373e7f009590cfc08ce773b09aaf6974adafd6af8" # COOKER (Override) # export AZAHAR_DESIRED_VERSION="latest" @@ -108,8 +108,8 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # Link: https://flathub.org/en/apps/org.mamedev.MAME # ------------------------------------------------------------------------------ # MAIN (Stable) -# Version: 0.284 - export MAME_DESIRED_VERSION="e3b6bf53f0b8a5c67c4c1dcd23d4e4c7cef24ec727890bdf749e18180cffbd3a" +# Version: 0.285 + export MAME_DESIRED_VERSION="20c1607af2bfa20fd285a1728fd009bddd3f1e5344c1287918e2429fdff78a3e" # COOKER (Override) # export MAME_DESIRED_VERSION="latest" @@ -160,7 +160,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # Link: https://flathub.org/en/apps/rs.ruffle.Ruffle # ------------------------------------------------------------------------------ # MAIN (Stable) -# Version: 0.2.0-nightly.2026.1.8 +# Version: 0.2.0-nightly.2026.1.23 export RUFFLE_DESIRED_VERSION="db881e38b0b37481ede11e56b307e0962760f1d26dedaff122e4f5c4221be1f3" # COOKER (Override) @@ -174,7 +174,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # ------------------------------------------------------------------------------ # MAIN (Stable) # Version: 2.5.33 - export STEAM_ROM_MANAGER_DESIRED_VERSION="d0f60620a50ed0255e2657fcde6291db60afbaa56fc69ccac4c03b0733b3259c" + export STEAM_ROM_MANAGER_DESIRED_VERSION="db881e38b0b37481ede11e56b307e0962760f1d26dedaff122e4f5c4221be1f3" # COOKER (Override) # export STEAM_ROM_MANAGER_DESIRED_VERSION="latest" @@ -186,8 +186,8 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # Link: https://flathub.org/en/apps/app.xemu.xemu # ------------------------------------------------------------------------------ # MAIN (Stable) -# Version: 0.8.130 - export XEMU_DESIRED_VERSION="987dc22f660ae8c003f2054585eb6e8506c3d1b42218b9244660208d4018eeab" +# Version: 0.8.133 + export XEMU_DESIRED_VERSION="9225f2a63f07b3eb392de453f70636f80473098557f3f888a5e5f6b58ee9ad20" # COOKER (Override) # export XEMU_DESIRED_VERSION="latest" @@ -221,7 +221,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # Link: https://github.com/PCSX2/pcsx2/releases/ # ------------------------------------------------------------------------------ # MAIN (Stable) - export PCSX2_DESIRED_VERSION="v2.6.2" + export PCSX2_DESIRED_VERSION="v2.6.3" # COOKER (Override) # export PCSX2_DESIRED_VERSION="newest" @@ -258,7 +258,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # Link: https://gitlab.com/solarus-games/solarus/-/releases/ # ------------------------------------------------------------------------------ # MAIN (Stable) - export SOLARUS_DESIRED_VERSION="v2.0.2" + export SOLARUS_DESIRED_VERSION="v2.0.3" # COOKER (Override) # export SOLARUS_DESIRED_VERSION="latest" @@ -358,7 +358,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # Link: https://github.com/RetroDECK/Vita3K-bin/releases # ------------------------------------------------------------------------------ # MAIN (Stable) - export VITA3K_DESIRED_VERSION="3901" + export VITA3K_DESIRED_VERSION="3912" # COOKER (Override) # export VITA3K_DESIRED_VERSION="latest" From 1c50342567d013f87ef6be57566dd6a840009161 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 31 Jan 2026 08:21:49 +0100 Subject: [PATCH 65/82] version updates srm error --- automation-tools/alchemist/desired_versions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index 8eedd1ff..c6ddfefd 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -174,7 +174,7 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # ------------------------------------------------------------------------------ # MAIN (Stable) # Version: 2.5.33 - export STEAM_ROM_MANAGER_DESIRED_VERSION="db881e38b0b37481ede11e56b307e0962760f1d26dedaff122e4f5c4221be1f3" + export STEAM_ROM_MANAGER_DESIRED_VERSION="d0f60620a50ed0255e2657fcde6291db60afbaa56fc69ccac4c03b0733b3259c" # COOKER (Override) # export STEAM_ROM_MANAGER_DESIRED_VERSION="latest" From 69ed9de32abe55a6f6bafac495cde0633b77e833 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 31 Jan 2026 08:40:28 +0100 Subject: [PATCH 66/82] updated solarus lib --- solarus/component_recipe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solarus/component_recipe.json b/solarus/component_recipe.json index 50a9dbb7..eb6cceec 100755 --- a/solarus/component_recipe.json +++ b/solarus/component_recipe.json @@ -83,7 +83,7 @@ "dest": "shared-libs" }, { - "library": "libsolarus.so.2.0.2", + "library": "libsolarus.so.2.0.3", "source": "usr/lib", "dest": "shared-libs" }, From ae433095e8c61bd4fdaed5bf8b14d2a23020d7ba Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 31 Jan 2026 09:03:51 +0100 Subject: [PATCH 67/82] solarus note [skip ci] --- solarus/x_component_recipe_new_version_notes.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 solarus/x_component_recipe_new_version_notes.txt diff --git a/solarus/x_component_recipe_new_version_notes.txt b/solarus/x_component_recipe_new_version_notes.txt new file mode 100644 index 00000000..4657d3e0 --- /dev/null +++ b/solarus/x_component_recipe_new_version_notes.txt @@ -0,0 +1,13 @@ +The Libsolarus version number must always match the current release version. +When a new release is published, the version must be updated accordingly in the recipe to ensure consistency between the packaged library and the official release. + +Example recipe entry for version v.2.0.3: + +{ + "library": "libsolarus.so.2.0.3", + "source": "usr/lib", + "dest": "shared-libs" +} + +Naming convention: +libsolarus.so. From a9710d26f48eaa9bfc7d269580cc8a821da464e3 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 31 Jan 2026 10:20:32 +0100 Subject: [PATCH 68/82] azahar post update error [skip ci] --- azahar/component_update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azahar/component_update.sh b/azahar/component_update.sh index f5e21c93..9f84c6a5 100644 --- a/azahar/component_update.sh +++ b/azahar/component_update.sh @@ -38,5 +38,5 @@ fi if [[ $(check_version_is_older_than "$version_being_updated" "0.10.3b") == "true" ]]; then log i "0.10.3b Upgrade - Reset: Azahar" set_setting_value "$azahar_qtconfig" "Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq" "Alt+Y" "azahar" "UI" - set_setting_value "$azahar_qtconfig" "hortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq" "Ctrl+L" "azahar" "UI" + set_setting_value "$azahar_qtconfig" "Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq" "Ctrl+L" "azahar" "UI" fi \ No newline at end of file From 0ab1ad545929a4f9ccc6b7a6555cc3518059ecf5 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 31 Jan 2026 13:12:17 +0100 Subject: [PATCH 69/82] cx16 launch [skip ci] --- archive_later/commander-x16/component_launcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/commander-x16/component_launcher.sh b/archive_later/commander-x16/component_launcher.sh index 3c69f779..34209562 100755 --- a/archive_later/commander-x16/component_launcher.sh +++ b/archive_later/commander-x16/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/x16emu" "$@" +exec "$component_path/x16emu -fullscreen -joy1 -run" "$@" From 90ae08018ec4d4461c4d91507b22db327d0007eb Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 31 Jan 2026 13:43:45 +0100 Subject: [PATCH 70/82] commanmder x16 [skip ci] --- archive_later/commander-x16/component_launcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/commander-x16/component_launcher.sh b/archive_later/commander-x16/component_launcher.sh index 34209562..cea53e45 100755 --- a/archive_later/commander-x16/component_launcher.sh +++ b/archive_later/commander-x16/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/x16emu -fullscreen -joy1 -run" "$@" +exec "$component_path/x16emu" -fullscreen -joy1 -run "$@" From 437f335fae068ca94ae64116d948b060cadcf010 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sat, 31 Jan 2026 13:47:53 +0100 Subject: [PATCH 71/82] cx16 [skip ci] --- archive_later/commander-x16/component_launcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archive_later/commander-x16/component_launcher.sh b/archive_later/commander-x16/component_launcher.sh index cea53e45..413d8ede 100755 --- a/archive_later/commander-x16/component_launcher.sh +++ b/archive_later/commander-x16/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/x16emu" -fullscreen -joy1 -run "$@" +exec "$component_path/x16emu" -fullscreen -joy1 -run -prg "$@" From b608f57ed749bb8fb3b30125606d4e961ca69763 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 1 Feb 2026 07:42:02 +0100 Subject: [PATCH 72/82] raze [skip ci] --- archive_later/raze/component_recipe.json | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/archive_later/raze/component_recipe.json b/archive_later/raze/component_recipe.json index 368b2d74..659cc954 100755 --- a/archive_later/raze/component_recipe.json +++ b/archive_later/raze/component_recipe.json @@ -65,15 +65,35 @@ ], "libs": [ { - "library": "libvpx.so.8", + "library": "libvpx.so.9", "runtime_name": "org.freedesktop.Platform", - "runtime_version": "23.08", + "runtime_version": "24.08", "dest": "shared-libs" }, { "library": "libzmusiclite.so.1", "source": "lib", "dest": "shared-libs" + }, + { + "library": "libzmusic.so.1", + "source": "lib", + "dest": "shared-libs" + }, + { + "library": "libinstpatch-1.0.so.2", + "source": "lib", + "dest": "shared-libs" + }, + { + "library": "libgme.so.0", + "source": "lib", + "dest": "shared-libs" + }, + { + "library": "libfluidsynth.so.3", + "source": "lib", + "dest": "shared-libs" } ] } From 78df17754d6fa1ada95a098d9e74bdd544f65963 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 1 Feb 2026 08:00:44 +0100 Subject: [PATCH 73/82] eka recipe [skip ci] --- archive_later/eka2l1/component_recipe.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/archive_later/eka2l1/component_recipe.json b/archive_later/eka2l1/component_recipe.json index e1f0f448..68d38ecb 100755 --- a/archive_later/eka2l1/component_recipe.json +++ b/archive_later/eka2l1/component_recipe.json @@ -102,7 +102,8 @@ }, { "library": "libcrypto.so.1.1", - "source": "usr/lib", + "runtime_name": "org.kde.Platform", + "runtime_version": "5.15", "dest": "shared-libs" } ] From c6511e71f2b5d77d733cc68a5d71c3c4d02685b9 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 1 Feb 2026 08:07:05 +0100 Subject: [PATCH 74/82] eka [skip ci] --- archive_later/eka2l1/component_recipe.json | 28 +++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/archive_later/eka2l1/component_recipe.json b/archive_later/eka2l1/component_recipe.json index 68d38ecb..e585ac3e 100755 --- a/archive_later/eka2l1/component_recipe.json +++ b/archive_later/eka2l1/component_recipe.json @@ -83,6 +83,18 @@ "runtime_version": "5.15", "dest": "shared-libs" }, + { + "library": "libssl.so.1.1", + "runtime_name": "org.kde.Platform", + "runtime_version": "5.15", + "dest": "shared-libs" + }, + { + "library": "libcrypto.so.1.1", + "runtime_name": "org.kde.Platform", + "runtime_version": "5.15", + "dest": "shared-libs" + }, { "library": "libicui18n.so.67", "runtime_name": "org.freedesktop.Platform", @@ -90,20 +102,20 @@ "dest": "shared-libs" }, { - "library": "libbz2.so.1.0", - "source": "usr/lib", + "library": "libicuuc.so.67", + "runtime_name": "org.freedesktop.Platform", + "runtime_version": "20.08", "dest": "shared-libs" }, { - "library": "libssl.so.1.1", - "runtime_name": "org.kde.Platform", - "runtime_version": "5.15", + "library": "libicudata.so.67", + "runtime_name": "org.freedesktop.Platform", + "runtime_version": "20.08", "dest": "shared-libs" }, { - "library": "libcrypto.so.1.1", - "runtime_name": "org.kde.Platform", - "runtime_version": "5.15", + "library": "libbz2.so.1.0", + "source": "usr/lib", "dest": "shared-libs" } ] From e3b5f6b5b3c96c155292174577e0a012aa446f98 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 1 Feb 2026 08:26:19 +0100 Subject: [PATCH 75/82] zesarux [skip ci] --- archive_later/zesarux/assets/libSDL-1.tar.gz | Bin 0 -> 84501 bytes archive_later/zesarux/component_recipe.json | 61 ++++++++++++------- 2 files changed, 39 insertions(+), 22 deletions(-) create mode 100644 archive_later/zesarux/assets/libSDL-1.tar.gz diff --git a/archive_later/zesarux/assets/libSDL-1.tar.gz b/archive_later/zesarux/assets/libSDL-1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bbd10b2785ea9d943b436453c26a40d4a1fc24e2 GIT binary patch literal 84501 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

w}^Yxzirk_bO^${aHL% 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 Date: Sun, 1 Feb 2026 12:44:27 +0100 Subject: [PATCH 76/82] ruffle fix [skip ci] --- automation-tools/alchemist/desired_versions.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index c6ddfefd..918e2701 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -160,8 +160,8 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # Link: https://flathub.org/en/apps/rs.ruffle.Ruffle # ------------------------------------------------------------------------------ # MAIN (Stable) -# Version: 0.2.0-nightly.2026.1.23 - export RUFFLE_DESIRED_VERSION="db881e38b0b37481ede11e56b307e0962760f1d26dedaff122e4f5c4221be1f3" +# Version: 0.2.0-nightly.2026.1.29 + export RUFFLE_DESIRED_VERSION="cfc2b1578ca6df16b4d457d1f6c2e3302134ddf220062114d7b5391e80673b8d" # COOKER (Override) # export RUFFLE_DESIRED_VERSION="latest" From 2a38356170a95ef646b15282b2ee3427d7937307 Mon Sep 17 00:00:00 2001 From: lazzite Date: Sun, 1 Feb 2026 14:22:31 +0100 Subject: [PATCH 77/82] RA: Add missing nightly cores, from latest stable [skip ci] --- retroarch/component_recipe.json | 93 ++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/retroarch/component_recipe.json b/retroarch/component_recipe.json index bcdf79f5..d056da4c 100755 --- a/retroarch/component_recipe.json +++ b/retroarch/component_recipe.json @@ -124,6 +124,19 @@ } ] }, + { + "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/amiarcadia_libretro.so.zip", + "source_type": "http", + "version": "nightly", + "extraction_type": "archive", + "assets": [ + { + "type": "file", + "source": "amiarcadia_libretro.so", + "dest": "$WORKDIR/cores" + } + ] + }, { "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/citra_libretro.so.zip", "source_type": "http", @@ -137,6 +150,58 @@ } ] }, + { + "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/easyrpg_libretro.so.zip", + "source_type": "http", + "version": "nightly", + "extraction_type": "archive", + "assets": [ + { + "type": "file", + "source": "easyrpg_libretro.so", + "dest": "$WORKDIR/cores" + } + ] + }, + { + "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/fbalpha_libretro.so.zip", + "source_type": "http", + "version": "nightly", + "extraction_type": "archive", + "assets": [ + { + "type": "file", + "source": "fbalpha_libretro.so", + "dest": "$WORKDIR/cores" + } + ] + }, + { + "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/mcsoftserve_libretro.so.zip", + "source_type": "http", + "version": "nightly", + "extraction_type": "archive", + "assets": [ + { + "type": "file", + "source": "mcsoftserve_libretro.so", + "dest": "$WORKDIR/cores" + } + ] + }, + { + "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/pd777_libretro.so.zip", + "source_type": "http", + "version": "nightly", + "extraction_type": "archive", + "assets": [ + { + "type": "file", + "source": "pd777_libretro.so", + "dest": "$WORKDIR/cores" + } + ] + }, { "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/sameduck_libretro.so.zip", "source_type": "http", @@ -150,6 +215,32 @@ } ] }, + { + "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/vice_xcbm2_libretro.so.zip", + "source_type": "http", + "version": "nightly", + "extraction_type": "archive", + "assets": [ + { + "type": "file", + "source": "vice_xcbm2_libretro.so", + "dest": "$WORKDIR/cores" + } + ] + }, + { + "source_url": "https://buildbot.libretro.com/{VERSION}/linux/x86_64/latest/vice_xcbm5x0_libretro.so.zip", + "source_type": "http", + "version": "nightly", + "extraction_type": "archive", + "assets": [ + { + "type": "file", + "source": "vice_xcbm5x0_libretro.so", + "dest": "$WORKDIR/cores" + } + ] + }, { "source_url": "https://github.com/RapidEdwin08/Genesis-Plus-GX-Expanded-Rom-Size", "source_type": "git", @@ -260,4 +351,4 @@ ] } ] -} +} \ No newline at end of file From d84e51f2eb6d6b734b36e74a79cff8ae6747a0b6 Mon Sep 17 00:00:00 2001 From: etjanster Date: Mon, 2 Feb 2026 10:54:58 +0100 Subject: [PATCH 78/82] ecwolf [skip ci] --- archive_later/ecwolf/component_recipe.json | 44 ++++++++++++++++--- .../alchemist/desired_versions.sh | 9 ++++ 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/archive_later/ecwolf/component_recipe.json b/archive_later/ecwolf/component_recipe.json index 068f8e2d..4125fa5d 100755 --- a/archive_later/ecwolf/component_recipe.json +++ b/archive_later/ecwolf/component_recipe.json @@ -1,17 +1,36 @@ { - "delta-patcher": [ + "ecwolf": [ { - "source_url": "", - "source_type": "", - "version": "latest", - "dest": "user", - "extraction_type": "", + "source_url": "https://github.com/pkgforge-dev/ECWolf-AppImage/releases/download/v{VERSION}/*-anylinux-x86_64.AppImage", + "source_type": "github_release", + "version": "$ECWOLF_DESIRED_VERSION", + "extraction_type": "appimage", "assets": [ + { + "type": "dir", + "source": "share", + "dest": "share" + }, { "type": "dir", "source": "bin", "dest": "bin" }, + { + "type": "dir", + "source": "etc", + "dest": "etc" + }, + { + "type": "dir", + "source": "shared/bin", + "dest": "bin" + }, + { + "type": "dir", + "source": "$REPO_ROOT/$COMPONENT_NAME", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, { "type": "create", "dest": "component_version", @@ -48,7 +67,18 @@ "dest": "$COMPONENT_ARTIFACT_ROOT" } ], - "libs": [] + "libs": [ + { + "library": "libbz2.so.1.0", + "source": "lib", + "dest": "bin" + }, + { + "library": "libjpeg.so.8", + "source": "lib", + "dest": "bin" + } + ] } ] } \ No newline at end of file diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index 918e2701..e7dcd064 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -413,6 +413,15 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" export EDEN_DESIRED_VERSION="latest" +# ------------------------------------------------------------------------------ +# ECWOLF - Wolfenstein 3D Engine +# ------------------------------------------------------------------------------ +# MAIN (Stable) +# export ECWOLF_DESIRED_VERSION="" + +# COOKER (Override) + export ECWOLF_DESIRED_VERSION="latest" + # ------------------------------------------------------------------------------ # EKA2L1 - Symbian OS Emulator # ------------------------------------------------------------------------------ From f206ad61f8e6413d66e8b88c0ea460effc885bab Mon Sep 17 00:00:00 2001 From: etjanster Date: Mon, 2 Feb 2026 11:15:55 +0100 Subject: [PATCH 79/82] wolf meda [skip ci] --- archive_later/ecwolf/component_launcher.sh | 2 +- archive_later/mednafen/component_launcher.sh | 2 +- archive_later/mednafen/component_recipe.json | 26 ++++++++++++++----- .../alchemist/desired_versions.sh | 8 ++++++ 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/archive_later/ecwolf/component_launcher.sh b/archive_later/ecwolf/component_launcher.sh index 3deebfbf..1c753dcd 100755 --- a/archive_later/ecwolf/component_launcher.sh +++ b/archive_later/ecwolf/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/" "$@" +exec "$component_path/bin/ecwolf" "$@" diff --git a/archive_later/mednafen/component_launcher.sh b/archive_later/mednafen/component_launcher.sh index 3deebfbf..91b435da 100755 --- a/archive_later/mednafen/component_launcher.sh +++ b/archive_later/mednafen/component_launcher.sh @@ -12,4 +12,4 @@ log d "QT plugin path is: $QT_PLUGIN_PATH" log d "QT QPA PLATFORM plugin path is: $QT_QPA_PLATFORM_PLUGIN_PATH" # Launch -exec "$component_path/" "$@" +exec "$component_path/bin/mednafen" "$@" diff --git a/archive_later/mednafen/component_recipe.json b/archive_later/mednafen/component_recipe.json index 068f8e2d..f5e0982d 100755 --- a/archive_later/mednafen/component_recipe.json +++ b/archive_later/mednafen/component_recipe.json @@ -1,17 +1,31 @@ { - "delta-patcher": [ + "mednafen": [ { - "source_url": "", - "source_type": "", - "version": "latest", - "dest": "user", - "extraction_type": "", + "source_url": "https://github.com/pkgforge-dev/mednafen-appimage/releases/download/{VERSION}/*-anylinux-x86_64.AppImage", + "source_type": "github_release", + "version": "$MEDNAFEN_DESIRED_VERSION", + "extraction_type": "appimage", "assets": [ + { + "type": "dir", + "source": "share", + "dest": "share" + }, { "type": "dir", "source": "bin", "dest": "bin" }, + { + "type": "dir", + "source": "shared/bin", + "dest": "bin" + }, + { + "type": "dir", + "source": "$REPO_ROOT/$COMPONENT_NAME", + "dest": "$COMPONENT_ARTIFACT_ROOT" + }, { "type": "create", "dest": "component_version", diff --git a/automation-tools/alchemist/desired_versions.sh b/automation-tools/alchemist/desired_versions.sh index e7dcd064..6058a32f 100644 --- a/automation-tools/alchemist/desired_versions.sh +++ b/automation-tools/alchemist/desired_versions.sh @@ -501,6 +501,14 @@ export DESIRED_QT5_RUNTIME_VERSION="5.15-25.08" # COOKER (Override) export LINDBERGH_DESIRED_VERSION="latest" +# ------------------------------------------------------------------------------ +# Mednafen - Multi Emulator +# ------------------------------------------------------------------------------ +# MAIN (Stable) +# export MEDNAFEN_DESIRED_VERSION="latest" + +# COOKER (Override) + export MEDNAFEN_DESIRED_VERSION="latest" # ------------------------------------------------------------------------------ # Mudlet - MUD Client From 85533b8ebc42202ddaf67ed4b4d790e04f33546e Mon Sep 17 00:00:00 2001 From: etjanster Date: Mon, 2 Feb 2026 12:55:00 +0100 Subject: [PATCH 80/82] lind [skip ci] --- .../lindbergh/assets/rd_config/controls.ini | 95 ++++++ .../lindbergh/assets/rd_config/lindbergh.ini | 288 ++++++++++++++++++ archive_later/lindbergh/component_recipe.json | 8 +- 3 files changed, 390 insertions(+), 1 deletion(-) create mode 100644 archive_later/lindbergh/assets/rd_config/controls.ini create mode 100644 archive_later/lindbergh/assets/rd_config/lindbergh.ini diff --git a/archive_later/lindbergh/assets/rd_config/controls.ini b/archive_later/lindbergh/assets/rd_config/controls.ini new file mode 100644 index 00000000..57c8834c --- /dev/null +++ b/archive_later/lindbergh/assets/rd_config/controls.ini @@ -0,0 +1,95 @@ +[Config] +Steer_DeadZone = 8000 +Gas_DeadZone = 500 +Brake_DeadZone = 500 +ABC_X_DeadZone = 8000 +ABC_Y_DeadZone = 8000 +Throttle_DeadZone = 8000 +ShakeIncreaseRate = 10.0 +ShakeDecayRate = 0.95 + +[Common] +Test = KEY_T +P1_Coin = KEY_5 +P2_Coin = KEY_6 +P1_Start = KEY_1, JOY0_BUTTON_11, GC0_BUTTON_START +P2_Start = KEY_2 +P1_Service = KEY_S, JOY0_BUTTON_10, GC0_BUTTON_BACK + +[Digital] +P1_Up = KEY_Up, GC0_BUTTON_DPUP, GC0_AXIS_LEFTY_NEGATIVE, JOY0_HAT0_UP, JOY0_AXIS_1_NEGATIVE +P1_Down = KEY_Down, GC0_BUTTON_DPDOWN, GC0_AXIS_LEFTY_POSITIVE, JOY0_HAT0_DOWN, JOY0_AXIS_1_POSITIVE +P1_Left = KEY_Left, GC0_BUTTON_DPLEFT, GC0_AXIS_LEFTX_NEGATIVE, JOY0_HAT0_LEFT, JOY0_AXIS_0_NEGATIVE +P1_Right = KEY_Right, GC0_BUTTON_DPRIGHT, GC0_AXIS_LEFTX_POSITIVE, JOY0_HAT0_RIGHT, JOY0_AXIS_0_POSITIVE +P1_Button1 = KEY_Q, GC0_BUTTON_A, JOY0_BUTTON_0 +P1_Button2 = KEY_W, GC0_BUTTON_B, JOY0_BUTTON_1 +P1_Button3 = KEY_E, GC0_BUTTON_X, JOY0_BUTTON_2 +P1_Card1Insert = KEY_F7, GC0_BUTTON_GUIDE, JOY0_BUTTON_11 +P2_Card2Insert = KEY_F8, GC1_BUTTON_GUIDE, JOY1_BUTTON_11 + +[Driving] +P1_Steer_Left = KEY_Left +P1_Steer_Right = KEY_Right +P1_Gas_Digital = KEY_Up +P1_Brake_Digital = KEY_Down +ViewChange = KEY_V, GC0_BUTTON_Y, JOY0_BUTTON_2 +Boost = KEY_Q, GC0_BUTTON_A, JOY0_BUTTON_0 +BoostRight = KEY_W, GC0_BUTTON_B, JOY0_BUTTON_1 +GearUp = KEY_A, GC0_BUTTON_RIGHTSHOULDER, JOY0_BUTTON_5 +GearDown = KEY_Z, GC0_BUTTON_LEFTSHOULDER, JOY0_BUTTON_4 +MusicChange = KEY_M, GC0_BUTTON_X, JOY0_BUTTON_3 +Up = KEY_I, GC0_BUTTON_DPUP, JOY0_HAT0_UP +Down = KEY_K, GC0_BUTTON_DPDOWN, JOY0_HAT0_DOWN +Left = KEY_J, GC0_BUTTON_DPLEFT, JOY0_HAT0_LEFT +Right = KEY_L, GC0_BUTTON_DPRIGHT, JOY0_HAT0_RIGHT +CardInsert = KEY_F7, GC0_BUTTON_GUIDE, JOY0_BUTTON_12 +P1_Steer = GC0_AXIS_LEFTX, JOY0_AXIS_0 +P1_Gas = GC0_AXIS_RIGHTTRIGGER, JOY0_AXIS_5 +P1_Brake = GC0_AXIS_LEFTTRIGGER, JOY0_AXIS_2 + +[ABC] +ABC_Left = KEY_Left +ABC_Right = KEY_Right +ABC_Up = KEY_Up +ABC_Down = KEY_Down +Throttle_Accelerate = KEY_A +Throttle_Slowdown = KEY_Z +GunTrigger = KEY_Q, GC0_BUTTON_A, JOY0_BUTTON_0 +MissileTrigger = KEY_W, GC0_BUTTON_B, JOY0_BUTTON_1 +ClimaxSwitch = KEY_E, GC0_BUTTON_Y, JOY0_BUTTON_4 +ABC_X = GC0_AXIS_LEFTX, JOY0_AXIS_0 +ABC_Y = GC0_AXIS_LEFTY, JOY0_AXIS_1 +Throttle = GC0_AXIS_RIGHTY_INVERTED, GC0_AXIS_RIGHTTRIGGER_POSITIVE_HALF, GC0_AXIS_LEFTTRIGGER_NEGATIVE_HALF, JOY0_AXIS_4_INVERTED, JOY0_AXIS_5_POSITIVE_HALF, JOY0_AXIS_4_NEGATIVE_HALF + +[Shooting] +P1_GunX = MOUSE_AXIS_X +P1_GunY = MOUSE_AXIS_Y +P1_Trigger = MOUSE_LEFT_BUTTON, KEY_Q +P1_Reload = MOUSE_RIGHT_BUTTON, KEY_W +P1_GunButton = MOUSE_MIDDLE_BUTTON, KEY_E +P1_ActionButton = KEY_R +P1_PedalLeft = KEY_Left +P1_PedalRight = KEY_Right + +[Mahjong] +ButtonA = KEY_Y +ButtonB = KEY_U +ButtonC = KEY_I +ButtonD = KEY_O +ButtonE = KEY_G +ButtonF = KEY_H +ButtonG = KEY_J +ButtonH = KEY_K +ButtonI = KEY_L +ButtonJ = KEY_V +ButtonK = KEY_B +ButtonL = KEY_N +ButtonM = KEY_M +ButtonN = KEY_, +ButtonChi = KEY_F1 +ButtonPon = KEY_F2 +ButtonKan = KEY_F3 +ButtonReach = KEY_F4 +ButtonAgari = KEY_F5 +ButtonCancel = KEY_F6 +CardInsert = KEY_F7 diff --git a/archive_later/lindbergh/assets/rd_config/lindbergh.ini b/archive_later/lindbergh/assets/rd_config/lindbergh.ini new file mode 100644 index 00000000..3cce9062 --- /dev/null +++ b/archive_later/lindbergh/assets/rd_config/lindbergh.ini @@ -0,0 +1,288 @@ +# SEGA Lindbergh Emulator Configuration File +# By the Lindbergh Development Team 2024-2025 + +[Display] +# Set the width resolution here +WIDTH = AUTO + +# Set the height resolution here +HEIGHT = AUTO + +# Boost render resolution in HOD4/2Spicy/Harley/Rambo/HOD-EX/ID4/ID5 and LGJ +BOOST_RENDER_RES = true + +# Set to true for full screen +FULLSCREEN = true + +# Set to true if you'd like to add a border for optical light gun tracking +BORDER_ENABLED = false + +# Set the thickness of the white border as a percentage of the width of the screen +WHITE_BORDER_PERCENTAGE = 2 + +# Set the thickness of the black border which sits around the +# white border as a percentage of the width of the screen +BLACK_BORDER_PERCENTAGE = 0 + +# Set to keep the aspect ratio in games like Sega Race TV Primeval Hunt and LGJ-SP +KEEP_ASPECT_RATIO = true + +# Set to true to enable the mouse pointer/Cursor +HIDE_CURSOR = true + +[Input] +# Sets the Input Mode (1: SDL, 2: EVDEV +INPUT_MODE = 1 + +[Emulation] +# Set the Region (JP/US/EX) +REGION = EX + +# Set to true for Free Play, none to leave as default +FREEPLAY = none + +# Set to true to emulate JVS and use the keyboard/mouse for controls. +# If this is set to false, the loader will route the traffic to the serial device +# defined in JVS_PATH if it has been defined. +EMULATE_JVS = true + +# Set to true to emulate the rideboard used in the SPECIAL games +# If this is set to false, then the emulator will route the traffic to one of the serial ports +EMULATE_RIDEBOARD = AUTO + +# Set to true to emulate the driveboard used in driving games +# If this is set to false, then the emulator will route the traffic to one of the serial ports +EMULATE_DRIVEBOARD = AUTO + +# Set to true to emulate the motion board from Outrun 2 SP SDX +# If this is set to false, then the emulator will route the traffic to one of the serial ports +EMULATE_MOTIONBOARD = AUTO + +# Set to true to enable card reader emulation in Virtua Tennis 3 or R-Tuned +EMULATE_HW210_CARDREADER = AUTO + +# Set to true to enable card reader emulation in ID4 and ID5 file +EMULATE_ID_CARD READER = AUTO + +# Set to true to enable touchscreen emulation with the mouse +EMULATE_TOUCHSCREEN = AUTO + +[Cards] +# Set to false to use a button to insert a card manually in ID4 or ID5. +# Or true to make the loader auto load +ID_CARDFILE_AUTOLOAD = true + +# Card File for reader 1 in VT3 or R-Tuned +CARDFILE_01 = "Card_01.crd" + +# Card File for reader 2 in VT3 or R-Tuned +CARDFILE_02 = "Card_02.crd" + +# Folder for ID Card files +ID_CARDFOLDER = "" + +[Paths] +# Define the path to pass the JVS packets to if JVS is not being emulated +JVS_PATH = "/dev/ttyUSB0" + +# Define the path to pass the first serial port to +SERIAL_1_PATH = "/dev/ttyS0" + +# Define the path to pass the second serial port to +SERIAL_2_PATH = "/dev/ttyS1" + +# Define the path to the sram.bin file +SRAM_PATH = "RETRODECKBIOS/sram.bin" + +# Define the path to the eeprom.bin file +EEPROM_PATH = "RETRODECKBIOS/eeprom.bin" + +# If set, libCG.so needed for 2Spicy, Harley, Rambo and HOD-Ex shader recompilation +# will be loaded from the specified location. (include the name of file in the location For Example: /my/file/location/myLibCg.so) +LIBCG_PATH = "lib/libCG.so" + +[Graphics] +# Set the GPU vendor (0 = Autodetect / 1 = NVidia / 2 = AMD / 3 = ATI / 4 = Intel) +GPU_VENDOR = 0 + +# Set to true if you experience flickering in hummer +HUMMER_FLICKER_FIX = false + +# Set to false if you don't want to limit the FPS +FPS_LIMITER_ENABLED = true + +# Set the target FPS (will only work if FPS_LIMITER_ENABLED = 1) +FPS_TARGET = 60.0 + +# Set to true if you want to render LGJ using the mesa patches +LGJ_RENDER_WITH_MESA = true + +# Disable to use the original fonts instead of the built in font +DISABLE_BUILTIN_FONT = false + +# Disable to use the original logos instead of the built in logos +DISABLE_BUILTIN_LOGOS = false + +[Cursor] +# If true, a custom mouse cursor will be used loaded from a png file set in CUSTOM_CURSOR +# Ovewrites HIDE_CURSOR +CUSTOM_CURSOR_ENABLED = false + +# Set the custom mouse pointer from a PNG file (Usefull for shooting games) +CUSTOM_CURSOR = "" + +# Set the width of the custom cursor +CUSTOM_CURSOR_WIDTH = 32 + +# Set the height of the custom cursor +CUSTOM_CURSOR_HEIGHT = 32 + +# Set a custom cursor for the touch screen in Primeval Hunt, MJ4 Games and AxA Games +TOUCH_CURSOR = "" + +# Set the width of the custom cursor +TOUCH_CURSOR_WIDTH = 32 + +# Set the height of the custom cursor +TOUCH_CURSOR_HEIGHT = 32 + +[GameSpecific] +# Set Primeval Hunt +# Mode 0: Default (side by side) +# Mode 1: No Touch screen +# Mode 2: Side By Side +# Mode 3: 3ds mode 1 (Touch screen to the right) +# Mode 4: 3ds mode 2 (Touch screen to the bottom) +PRIMEVAL_HUNT_SCREEN_MODE = 2 + +# Set Primeval Hunt Test mode screen to single screen +PRIMEVAL_HUNT_TEST_SCREEN_SINGLE = true + +# Set to true to bypass cabinet checks including drive board and tower in Outrun 2 SP SDX +SKIP_OUTRUN_CABINET_CHECK = false + +# Set to false if you want to disable the Glare effect in OutRun +OUTRUN_LENS_GLARE_ENABLED = true + +# Hacky way to make MJ4 and AxA work at prohibited times +MJ4_ENABLED_ALL_THE_TIME = false + +# House of the dead 4 speed fix, set the frequency of your CPU in Ghz +CPU_FREQ_GHZ = 0.0 + +# Set to true if you want to chnge the way the guns are show in Rambo +RAMBO_GUNS_SWITCH = false + +# Set to true to set the language in Chinese for ID5 DVP-0084 and DVP-0084A +ID5_CHINESE_LANGUAGE = false + +# Set the percentage of the steering wheel travel reduction +ID_STEERING_REDUCTION_PERCENTAGE = 0.0 + +[CrossHairs] +# Set to true to enable Crosshairs even when using GunLights +ENABLE_CROSSHAIRS = false + +# Set the Crosshair image from a PNG file for Player 1 +P1_CROSSHAIR_PATH = "" + +# Set the Crosshair image from a PNG file for Player 2 +P2_CROSSHAIR_PATH = "" + +# Set the width of the Crosshair image +CUSTOM_CROSSHAIRS_WIDTH = 64 + +# Set the height of the Crosshair image +CUSTOM_CROSSHAIRS_HEIGHT = 64 + +[System] +# Set to true to see debug messages in the console +DEBUG_MSGS = false + +# Set the colour of the lindbergh (YELLOW, RED, BLUE, SILVER, REDEX) +LINDBERGH_COLOUR = YELLOW + +[Network] +# If true, the loader will apply the following network patches depending on the game +ENABLE_NETWORK_PATCHES = true + +# Sets the name of the Network Interface Card +NIC_NAME = "enp0s1" + +# ID4 and ID5 network configuration per seat +ID_IP_SEAT_1 = "192.168.1.2" +ID_IP_SEAT_2 = "192.168.1.3" + +# Sets the IP address and Netmask for Outrun link (you have to put your NIC ip) +OR2_IPADDRESS = "192.168.1.2" +OR2_NETMASK = "255.255.255.0" + +# Harley / Hummer and R-Tuned IP address for each Cabinet +IP_CAB1 = "192.168.1.2" +IP_CAB2 = "192.168.1.3" +IP_CAB3 = "192.168.1.4" +IP_CAB4 = "192.168.1.5" + +# Sets the IP address of each cabinet for network play in 2Spicy +2SPICY_IP_CAB1 = "192.168.1.2" +2SPICY_IP_CAB2 = "192.168.1.3" + +# Sets the IP address for SRTV +SRTV_IPADDRESS = "192.168.1.2" + +[EVDEV] +# EVDEV MODE (Input Mode 2) +# To find the value pairs for these run ./lindbergh --list-controllers + +#TEST_BUTTON = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_T" + +#PLAYER_1_COIN = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_5" +#PLAYER_1_BUTTON_START = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_1 +#PLAYER_1_BUTTON_SERVICE = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_S" +#PLAYER_1_BUTTON_UP = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_UP" +#PLAYER_1_BUTTON_DOWN = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_DOWN" +#PLAYER_1_BUTTON_LEFT = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_LEFT" +#PLAYER_1_BUTTON_RIGHT = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_RIGHT" +#PLAYER_1_BUTTON_1 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_Q" +#PLAYER_1_BUTTON_2 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_W" +#PLAYER_1_BUTTON_3 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_E" +#PLAYER_1_BUTTON_4 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_R" +#PLAYER_1_BUTTON_5 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_Y" +#PLAYER_1_BUTTON_6 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_U" +#PLAYER_1_BUTTON_7 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_I" +#PLAYER_1_BUTTON_8 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_O" + +#PLAYER_1_COIN = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_6" +#PLAYER_2_BUTTON_START = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_1" +#PLAYER_2_BUTTON_SERVICE = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_S" +#PLAYER_2_BUTTON_UP = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_UP" +#PLAYER_2_BUTTON_DOWN = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_DOWN" +#PLAYER_2_BUTTON_LEFT = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_LEFT" +#PLAYER_2_BUTTON_RIGHT = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_RIGHT" +#PLAYER_2_BUTTON_1 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_Q" +#PLAYER_2_BUTTON_2 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_W" +#PLAYER_2_BUTTON_3 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_E" +#PLAYER_2_BUTTON_4 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_R" +#PLAYER_2_BUTTON_5 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_Y" +#PLAYER_2_BUTTON_6 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_U" +#PLAYER_2_BUTTON_7 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_I" +#PLAYER_2_BUTTON_8 = "AT_TRANSLATED_SET_2_KEYBOARD_KEY_O" + +#ANALOGUE_1 = "SYNPS_2_SYNAPTICS_TOUCHPAD_ABS_X" +#ANALOGUE_2 = "SYNPS_2_SYNAPTICS_TOUCHPAD_ABS_Y" +#ANALOGUE_3 = "SYNPS_2_SYNAPTICS_TOUCHPAD_ABS_Z" +#ANALOGUE_4 = "SYNPS_2_SYNAPTICS_TOUCHPAD_ABS_RZ" +#ANALOGUE_5 = "SYNPS_2_SYNAPTICS_TOUCHPAD_ABS_X2" +#ANALOGUE_6 = "SYNPS_2_SYNAPTICS_TOUCHPAD_ABS_Y2" +#ANALOGUE_7 = "SYNPS_2_SYNAPTICS_TOUCHPAD_ABS_Z2" +#ANALOGUE_8 = "SYNPS_2_SYNAPTICS_TOUCHPAD_ABS_RZ2" + +#ANALOGUE_DEADZONE_1 = 0 0 0 +#ANALOGUE_DEADZONE_2 = 0 0 0 +#ANALOGUE_DEADZONE_3 = 0 0 0 +#ANALOGUE_DEADZONE_4 = 0 0 0 +#ANALOGUE_DEADZONE_5 = 0 0 0 +#ANALOGUE_DEADZONE_6 = 0 0 0 +#ANALOGUE_DEADZONE_7 = 0 0 0 +#ANALOGUE_DEADZONE_8 = 0 0 0 + diff --git a/archive_later/lindbergh/component_recipe.json b/archive_later/lindbergh/component_recipe.json index e252b00a..9a15f6b1 100755 --- a/archive_later/lindbergh/component_recipe.json +++ b/archive_later/lindbergh/component_recipe.json @@ -18,7 +18,7 @@ }, { "type": "dir", - "source": "$REPO_ROOT/$COMPONENT_NAME/rd_config", + "source": "$REPO_ROOT/$COMPONENT_NAME/assets/rd_config", "dest": "rd_config" }, { @@ -58,7 +58,13 @@ "runtime_name": "org.freedesktop.Platform", "runtime_version": "25.08", "dest": "shared-libs" + }, + { + "library": "libCg.so", + "source": "lib32", + "dest": "lib" } + ] } ] From 3d8a7e3f6446525d15c719d0bb19491d42ad29a8 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Mon, 2 Feb 2026 10:44:56 -0500 Subject: [PATCH 81/82] Fix incorrect move statements for RA shaders post-update move actions [skip ci] --- retroarch/component_update.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/retroarch/component_update.sh b/retroarch/component_update.sh index 96a81062..a5c7b285 100644 --- a/retroarch/component_update.sh +++ b/retroarch/component_update.sh @@ -96,11 +96,10 @@ if [[ $(check_version_is_older_than "$version_being_updated" "0.10.0b") == "true fi if [[ $(check_version_is_older_than "$version_being_updated" "0.10.3b") == "true" ]]; then - create_dir "$shaders_path/retroarch/shaders" create_dir "$shaders_path/retroarch/filters" - move "$shaders_path/retroarch/shaders_cg" "$shaders_path/retroarch/shaders/" - move "$shaders_path/retroarch/shaders_glsl" "$shaders_path/retroarch/shaders/" - move "$shaders_path/retroarch/shaders_slang" "$shaders_path/retroarch/shaders/" + move "$shaders_path/retroarch/shaders_cg" "$shaders_path/retroarch/shaders/shaders_cg" + move "$shaders_path/retroarch/shaders_glsl" "$shaders_path/retroarch/shaders/shaders_glsl" + move "$shaders_path/retroarch/shaders_slang" "$shaders_path/retroarch/shaders/shaders_slang" set_setting_value "$retroarch_config" "audio_filter_dir" "$shaders_path/retroarch/filters/audio" "retroarch" set_setting_value "$retroarch_config" "video_filter_dir" "$shaders_path/retroarch/filters/video" "retroarch" set_setting_value "$retroarch_config" "video_shader_dir" "$shaders_path/retroarch/shaders" "retroarch" From a707289a4edace4e1a2c3d637889f17c6bf23457 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Mon, 2 Feb 2026 11:31:44 -0500 Subject: [PATCH 82/82] Update how PCSX2 stores cheevos tokens [skip ci] --- pcsx2/assets/rd_config/secrets.ini | 1 + pcsx2/component_functions.sh | 1 + pcsx2/component_manifest.json | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 pcsx2/assets/rd_config/secrets.ini diff --git a/pcsx2/assets/rd_config/secrets.ini b/pcsx2/assets/rd_config/secrets.ini new file mode 100644 index 00000000..32fbd500 --- /dev/null +++ b/pcsx2/assets/rd_config/secrets.ini @@ -0,0 +1 @@ +[Achievements] diff --git a/pcsx2/component_functions.sh b/pcsx2/component_functions.sh index 4418c699..449397d0 100755 --- a/pcsx2/component_functions.sh +++ b/pcsx2/component_functions.sh @@ -11,3 +11,4 @@ pcsx2_vidoes_path="$XDG_CONFIG_HOME/PCSX2/videos" pcsx2_patches_path="$XDG_CONFIG_HOME/PCSX2/patches" pcsx2_cheats_path="$XDG_CONFIG_HOME/PCSX2/cheats" pcsx2_logs_path="$XDG_CONFIG_HOME/PCSX2/logs" +pcsx2_secrets_ini="$XDG_CONFIG_HOME/PCSX2/inis/secrets.ini" diff --git a/pcsx2/component_manifest.json b/pcsx2/component_manifest.json index 403acbfe..2e66cc99 100644 --- a/pcsx2/component_manifest.json +++ b/pcsx2/component_manifest.json @@ -53,8 +53,8 @@ "action": "change", "new_setting_value": "$cheevos_token", "section": "Achievements", - "target_file": "$pcsx2_config", - "defaults_file": "$pcsx2_rd_config_dir/PCSX2.ini" + "target_file": "$pcsx2_secrets_ini", + "defaults_file": "$pcsx2_rd_config_dir/secrets.ini" }, { "enabled_states": [ "true" ],