diff --git a/emu-configs/mame/cfg/default.cfg b/emu-configs/mame/cfg/default.cfg deleted file mode 100644 index 7fbdab04..00000000 --- a/emu-configs/mame/cfg/default.cfg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - JOYCODE_1_HAT1UP - - - - - JOYCODE_1_SELECT - - - - - KEYCODE_LCONTROL KEYCODE_M - - - - - KEYCODE_LCONTROL KEYCODE_P - - - - - KEYCODE_LCONTROL KEYCODE_MINUSPAD - - - - - KEYCODE_LCONTROL KEYCODE_S - - - - - KEYCODE_LCONTROL KEYCODE_A - - - - - KEYCODE_LCONTROL KEYCODE_PLUSPAD - - - - - KEYCODE_LCONTROL KEYCODE_X - - - - - diff --git a/emu-configs/mame/default.cfg b/emu-configs/mame/default.cfg new file mode 100644 index 00000000..a8e51abf --- /dev/null +++ b/emu-configs/mame/default.cfg @@ -0,0 +1,263 @@ + + + + + + + + JOYCODE_1_HAT1UP + + + + + JOYCODE_1_SELECT + + + + + NONE + + + + + NONE + + + + + NONE + + + + + KEYCODE_LCONTROL KEYCODE_M + + + + + KEYCODE_LCONTROL KEYCODE_Q + + + + + KEYCODE_DEL + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + KEYCODE_LCONTROL KEYCODE_P + + + + + NONE + + + + + KEYCODE_LCONTROL KEYCODE_MINUS + + + + + KEYCODE_LCONTROL KEYCODE_S + + + + + KEYCODE_LCONTROL KEYCODE_A + + + + + KEYCODE_LCONTROL KEYCODE_R + + + + + KEYCODE_LCONTROL KEYCODE_N + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + KEYCODE_LCONTROL KEYCODE_MINUS + + + + + NONE + + + + + KEYCODE_LCONTROL KEYCODE_X + + + + + NONE + + + + + NONE + + + + + KEYCODE_LCONTROL KEYCODE_C + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + NONE + + + + + KEYCODE_LCONTROL KEYCODE_ENTER + + + + + NONE + + + + + KEYCODE_LCONTROL KEYCODE_Y + + + + + KEYCODE_LCONTROL KEYCODE_U + + + + + NONE + + + + + diff --git a/emu-configs/mame/mame-rdwrapper.sh b/emu-configs/mame/mame-rdwrapper.sh new file mode 100755 index 00000000..e6c98fcd --- /dev/null +++ b/emu-configs/mame/mame-rdwrapper.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +mame -inipath /var/config/mame \ No newline at end of file diff --git a/emu-configs/mame/mame.ini b/emu-configs/mame/mame.ini index f47c2062..bacecbdb 100644 --- a/emu-configs/mame/mame.ini +++ b/emu-configs/mame/mame.ini @@ -8,7 +8,7 @@ writeconfig 0 # CORE SEARCH PATH OPTIONS # homepath /var/data/mame/plugin-data -rompath RETRODECKROMSDIR/mame/;RETRODECKROMSDIR/arcade/;RETRODECKROMSDIR/bbcmicro/ +rompath RETRODECKROMSDIR/adam;RETRODECKROMSDIR/amstradcpc;RETRODECKROMSDIR/apple2;RETRODECKROMSDIR/apple2gs;RETRODECKROMSDIR/arcade;RETRODECKROMSDIR/arcadia;RETRODECKROMSDIR/archimedes;RETRODECKROMSDIR/astrocde;RETRODECKROMSDIR/atari7800;RETRODECKROMSDIR/atarijaguar;RETRODECKROMSDIR/bbcmicro;RETRODECKROMSDIR/cdimono1;RETRODECKROMSDIR/channelf;RETRODECKROMSDIR/consolearcade;RETRODECKROMSDIR/cps;RETRODECKROMSDIR/cps1;RETRODECKROMSDIR/cps2;RETRODECKROMSDIR/cps3;RETRODECKROMSDIR/crvision;RETRODECKROMSDIR/daphne;RETRODECKROMSDIR/electron;RETRODECKROMSDIR/fm7;RETRODECKROMSDIR/fmtowns;RETRODECKROMSDIR/gamate;RETRODECKROMSDIR/gameandwatch;RETRODECKROMSDIR/gamecom;RETRODECKROMSDIR/gmaster;RETRODECKROMSDIR/gx4000;RETRODECKROMSDIR/intellivision;RETRODECKROMSDIR/laserdisc;RETRODECKROMSDIR/lcdgames;RETRODECKROMSDIR/mame;RETRODECKROMSDIR/megaduck;RETRODECKROMSDIR/model2;RETRODECKROMSDIR/neogeo;RETRODECKROMSDIR/neogeocd;RETRODECKROMSDIR/neogeocdjp;RETRODECKROMSDIR/odyssey2;RETRODECKROMSDIR/pv1000;RETRODECKROMSDIR/scv;RETRODECKROMSDIR/stv;RETRODECKROMSDIR/supervision;RETRODECKROMSDIR/supracan;RETRODECKROMSDIR/ti99;RETRODECKROMSDIR/vectrex;RETRODECKROMSDIR/videopac;RETRODECKROMSDIR/vsmile;RETRODECKROMSDIR/x68000 hashpath /var/data/mame/hash samplepath /var/data/mame/assets/samples artpath /var/data/mame/assets/artwork diff --git a/emu-configs/ryujinx/Config.json b/emu-configs/ryujinx/Config.json index e58b6ead..630011ad 100644 --- a/emu-configs/ryujinx/Config.json +++ b/emu-configs/ryujinx/Config.json @@ -1,5 +1,5 @@ { - "version": 48, + "version": 49, "enable_file_log": true, "backend_threading": "Auto", "res_scale": 1, @@ -12,7 +12,7 @@ "graphics_shaders_dump_path": "", "logging_enable_debug": false, "logging_enable_stub": false, - "logging_enable_info": true, + "logging_enable_info": false, "logging_enable_warn": true, "logging_enable_error": true, "logging_enable_trace": false, @@ -91,13 +91,13 @@ "enable_keyboard": false, "enable_mouse": false, "hotkeys": { - "toggle_vsync": "F1", - "screenshot": "F8", - "show_ui": "F4", - "pause": "F5", - "toggle_mute": "F2", - "res_scale_up": "Unbound", - "res_scale_down": "Unbound", + "toggle_vsync": "Unknown", + "screenshot": "Unknown", + "show_ui": "F1", + "pause": "F4", + "toggle_mute": "Unknown", + "res_scale_up": "F7", + "res_scale_down": "F8", "volume_up": "Unbound", "volume_down": "Unbound" }, @@ -121,22 +121,27 @@ }, "deadzone_left": 0, "deadzone_right": 0, - "range_left": 1, + "range_left": 1.2, "range_right": 1, - "trigger_threshold": 0.5, + "trigger_threshold": 0, "motion": { - "motion_backend": "GamepadDriver", + "slot": 0, + "alt_slot": 0, + "mirror_input": false, + "dsu_server_host": "127.0.0.1", + "dsu_server_port": 26760, + "motion_backend": "CemuHook", "sensitivity": 100, "gyro_deadzone": 1, "enable_motion": true }, "rumble": { - "strong_rumble": 1, + "strong_rumble": 2.1, "weak_rumble": 1, "enable_rumble": true }, "left_joycon": { - "button_minus": "Minus", + "button_minus": "Back", "button_l": "LeftShoulder", "button_zl": "LeftTrigger", "button_sl": "Unbound", @@ -147,7 +152,7 @@ "dpad_right": "DpadRight" }, "right_joycon": { - "button_plus": "Plus", + "button_plus": "Start", "button_r": "RightShoulder", "button_zr": "RightTrigger", "button_sl": "Unbound", @@ -160,12 +165,190 @@ "version": 1, "backend": "GamepadSDL2", "id": "0-f6790003-28de-0000-ff11-000001000000", - "controller_type": "Handheld", - "player_index": "Handheld" + "controller_type": "ProController", + "player_index": "Player1" + }, + { + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0, + "deadzone_right": 0, + "range_left": 1.2, + "range_right": 1, + "trigger_threshold": 0, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "1-00000003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player2" + }, + { + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0, + "deadzone_right": 0, + "range_left": 1.2, + "range_right": 1, + "trigger_threshold": 0, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "2-00000003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player3" + }, + { + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0, + "deadzone_right": 0, + "range_left": 1.2, + "range_right": 1, + "trigger_threshold": 0, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "3-00000003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player4" } ], "graphics_backend": "Vulkan", "preferred_gpu": "0x1002_0x163F", + "multiplayer_mode": 0, "multiplayer_lan_interface_id": "0", "use_hypervisor": true -} +} \ No newline at end of file diff --git a/emu-configs/yuzu/qt-config.ini b/emu-configs/yuzu/qt-config.ini index a1e63a4d..b4a4feff 100644 --- a/emu-configs/yuzu/qt-config.ini +++ b/emu-configs/yuzu/qt-config.ini @@ -815,9 +815,9 @@ gamecard_path= gamecard_path\default=true load_directory=/var/data/yuzu/load load_directory\default=true -nand_directory=RETRODECKHOMEDIR/saves/switch/yuzu/nand +nand_directory=RETRODECKHOMEDIR/saves/switch/nand nand_directory\default=true -sdmc_directory=RETRODECKHOMEDIR/saves/switch/yuzu/sdmc +sdmc_directory=RETRODECKHOMEDIR/saves/switch/sdmc sdmc_directory\default=true tas_directory=/var/data/yuzu/tas tas_directory\default=true diff --git a/es-configs/es_find_rules.xml b/es-configs/es_find_rules.xml index 112a4a40..165086b4 100644 --- a/es-configs/es_find_rules.xml +++ b/es-configs/es_find_rules.xml @@ -463,7 +463,7 @@ - mame + mame-rdwrapper.sh org.mamedev.MAME diff --git a/es-configs/es_settings.xml b/es-configs/es_settings.xml index cad78b67..50cd7b18 100644 --- a/es-configs/es_settings.xml +++ b/es-configs/es_settings.xml @@ -2,6 +2,7 @@ + @@ -21,6 +22,7 @@ + @@ -65,6 +67,7 @@ + @@ -145,13 +148,15 @@ - + + + diff --git a/functions/050_save_migration.sh b/functions/050_save_migration.sh index 41213705..42632f1f 100644 --- a/functions/050_save_migration.sh +++ b/functions/050_save_migration.sh @@ -28,12 +28,12 @@ save_migration() { fi # Doing the dir prep as we don't know from which version we came - dir_prep "$media_folder" "/var/config/emulationstation/ES-DE/downloaded_media" - dir_prep "$themes_folder" "/var/config/emulationstation/ES-DE/themes" + dir_prep "$media_folder" "/var/config/ES-DE/downloaded_media" + dir_prep "$themes_folder" "/var/config/ES-DE/themes" mkdir -pv $rdhome/logs #this was added later, maybe safe to remove in a few versions # Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed - cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/ES-DE/es_settings.xml + cp -fv /app/retrodeck/es_settings.xml /var/config/ES-DE/settings/es_settings.xml # 0.4 -> 0.5 # Perform save and state migration if needed diff --git a/functions/functions.sh b/functions/functions.sh index d7589ec4..536e016b 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -295,8 +295,8 @@ update_rpcs3_firmware() { } update_vita3k_firmware() { - download_file "http://dus01.psv.update.playstation.net/update/psv/image/2022_0209/rel_f2c7b12fe85496ec88a0391b514d6e3b/PSVUPDAT.PUP" "/tmp/PSVUPDAT.PUP" "Vita3K Firmware file 1" - download_file "http://dus01.psp2.update.playstation.net/update/psp2/image/2019_0924/sd_8b5f60b56c3da8365b973dba570c53a5/PSP2UPDAT.PUP?dest=us" "/tmp/PSP2UPDAT.PUP" "Vita3K Firmware file 2" + download_file "http://dus01.psv.update.playstation.net/update/psv/image/2022_0209/rel_f2c7b12fe85496ec88a0391b514d6e3b/PSVUPDAT.PUP" "/tmp/PSVUPDAT.PUP" "Vita3K Firmware file: PSVUPDAT.PUP" + download_file "http://dus01.psp2.update.playstation.net/update/psp2/image/2019_0924/sd_8b5f60b56c3da8365b973dba570c53a5/PSP2UPDAT.PUP?dest=us" "/tmp/PSP2UPDAT.PUP" "Vita3K Firmware file: PSP2UPDAT.PUP" Vita3K --firmware /tmp/PSVUPDAT.PUP Vita3K --firmware /tmp/PSP2UPDAT.PUP } @@ -502,9 +502,9 @@ install_retrodeck_starterpack() { ## DOOM section ## cp /app/retrodeck/extras/doom1.wad "$roms_folder/doom/doom1.wad" # No -f in case the user already has it - mkdir -p "/var/config/emulationstation/ES-DE/gamelists/doom" - if [[ ! -f "/var/config/emulationstation/ES-DE/gamelists/doom/gamelist.xml" ]]; then # Don't overwrite an existing gamelist - cp "/app/retrodeck/rd_prepacks/doom/gamelist.xml" "/var/config/emulationstation/ES-DE/gamelists/doom/gamelist.xml" + mkdir -p "/var/config/ES-DE/gamelists/doom" + if [[ ! -f "/var/config/ES-DE/gamelists/doom/gamelist.xml" ]]; then # Don't overwrite an existing gamelist + cp "/app/retrodeck/rd_prepacks/doom/gamelist.xml" "/var/config/ES-DE/gamelists/doom/gamelist.xml" fi mkdir -p "$media_folder/doom" unzip -oq "/app/retrodeck/rd_prepacks/doom/doom.zip" -d "$media_folder/doom/" @@ -535,8 +535,9 @@ update_splashscreens() { # This script will purge any existing ES graphics and reload them from RO space into somewhere ES will look for it # USAGE: update_splashscreens - rm -rf /var/config/emulationstation/ES-DE/resources/graphics - rsync -rlD --mkpath "/app/retrodeck/graphics/" "/var/config/emulationstation/ES-DE/resources/graphics/" + rm -rf /var/config/ES-DE/resources/graphics + rsync -rlD --mkpath "/app/retrodeck/graphics/" "/var/config/ES-DE/resources/graphics/" + } deploy_helper_files() { @@ -578,6 +579,43 @@ easter_eggs() { cp -f "$new_splash_file" "$current_splash_file" # Deploy assigned splash screen } +manage_ryujinx_keys() { + # This function checks if Switch keys are existing and symlinks them inside the Ryujinx system folder + # If the symlinks are broken it recreates them + + echo "Checking Ryujinx Switch keys." #TODO logging + local ryujinx_system="/var/config/Ryujinx/system" # Set the path to the Ryujinx system folder + # Check if the keys folder exists + if [ -d "$bios_folder/switch/keys" ]; then + # Check if there are files in the keys folder + if [ -n "$(find "$bios_folder/switch/keys" -maxdepth 1 -type f)" ]; then + # Iterate over each file in the keys folder + for file in "$bios_folder/switch/keys"/*; do + local filename=$(basename "$file") + local symlink="$ryujinx_system/$filename" + + # Check if the symlink exists and is valid + if [ -L "$symlink" ] && [ "$(readlink -f "$symlink")" = "$file" ]; then + echo "Found \"$symlink\" and it's a valid symlink." #TODO logging + continue # Skip if the symlink is already valid + fi + + # Remove broken symlink or non-symlink file + echo "Found \"$symlink\" but it's not a valid symlink. Repairing it" #TODO logging + [ -e "$symlink" ] && rm "$symlink" + + # Create symlink + ln -s "$file" "$symlink" + echo "Created symlink: \"$symlink\"" + done + else + echo "No files found in $bios_folder/switch/keys. Continuing" #TODO logging + fi + else + echo "Directory $bios_folder/switch/keys does not exist. Maybe Ryujinx was never run. Continuing" #TODO logging + fi +} + # TODO: this function is not yet used branch_selector() { # Fetch branches from GitHub API excluding "main" @@ -640,12 +678,12 @@ branch_selector() { quit_retrodeck() { pkill -f retrodeck - pkill -f emulationstation + pkill -f es-de } start_retrodeck() { easter_eggs # Check if today has a surprise splashscreen and load it if so # normal startup echo "Starting RetroDECK v$version" - emulationstation --home /var/config/emulationstation + es-de --home /var/config/ } diff --git a/functions/global.sh b/functions/global.sh index e09d5e07..8b8eb4f8 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -25,11 +25,11 @@ zip_compressable_extensions="$emuconfigs/defaults/retrodeck/reference_lists/zip_ easter_egg_checklist="$emuconfigs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg" # A config file listing days and times when special splash screens should show up input_validation="$emuconfigs/defaults/retrodeck/reference_lists/input_validation.cfg" # A config file listing valid CLI inputs finit_options_list="$emuconfigs/defaults/retrodeck/reference_lists/finit_options_list.cfg" # A config file listing available optional installs during finit -splashscreen_dir="/var/config/emulationstation/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens -current_splash_file="/var/config/emulationstation/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot -default_splash_file="/var/config/emulationstation/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen +splashscreen_dir="/var/config/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens +current_splash_file="/var/config/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot +default_splash_file="/var/config/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen multi_user_emulator_config_dirs="$emuconfigs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode -rd_es_themes="/app/share/emulationstation/themes" # The directory where themes packaged with RetroDECK are stored +rd_es_themes="/app/share/es-de/themes" # The directory where themes packaged with RetroDECK are stored lockfile="/var/config/retrodeck/.lock" # where the lockfile is located default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem) @@ -62,7 +62,7 @@ yuzuconf="/var/config/yuzu/qt-config.ini" # ES-DE config files -es_settings="/var/config/emulationstation/ES-DE/es_settings.xml" +es_settings="/var/config/ES-DE/settings/es_settings.xml" # RetroArch config files diff --git a/functions/post_update.sh b/functions/post_update.sh index ec9acee5..674ee58a 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -241,8 +241,18 @@ post_update() { # - Install RetroDECK controller profile in desired location TODO # - Change section name in retrodeck.cfg for ABXY button swap preset sed -i 's^nintendo_button_layout^abxy_button_swap^' "$rd_conf" # This is a one-off sed statement as there are no functions for replacing section names - mv -f /var/config/emulationstation/.emulationstation /var/config/emulationstation/ES-DE # in 3.0 .emulationstation was moved into ES-DE - ln -s /var/config/emulationstation/ES-DE /var/config/emulationstation/.emulationstation # symlinking it to mantain the compatibility # TODO: remove this symlink n 0.9.0b + + # in 3.0 .emulationstation was moved into ES-DE + mv -f /var/config/emulationstation /var/config/ES-DE + mv -f /var/config/ES-DE/.emulationstation/* /var/config/ES-DE + rm -rf /var/config/ES-DE/.emulationstation + rm -f /var/config/ES-DE/es_settings.xml + + prepare_component "reset" "es-de" + prepare_component "reset" "mame" + prepare_component "reset" "vita3k" + prepare_component "reset" "gzdoom" + fi # if [[ $prev_version -le "090" ]]; then diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index ef2fa19f..e37750cb 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -40,21 +40,21 @@ prepare_component() { if [[ "$component" =~ ^(es-de|ES-DE|all)$ ]]; then # For use after ESDE-related folders are moved or a reset if [[ "$action" == "reset" ]]; then - rm -rf /var/config/emulationstation/ - mkdir -p /var/config/emulationstation/ES-DE/ - cp -f /app/retrodeck/es_settings.xml /var/config/emulationstation/ES-DE/es_settings.xml + rm -rf /var/config/ES-DE + mkdir -p /var/config/ES-DE/settings + cp -f /app/retrodeck/es_settings.xml /var/config/ES-DE/settings/es_settings.xml set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings" set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings" set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings" - dir_prep "$rdhome/gamelists" "/var/config/emulationstation/ES-DE/gamelists" - emulationstation --home /var/config/emulationstation --create-system-dirs + dir_prep "$rdhome/gamelists" "/var/config/ES-DE/gamelists" + es-de --home /var/config/ES-DE --create-system-dirs update_splashscreens fi if [[ "$action" == "postmove" ]]; then set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings" set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings" set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings" - dir_prep "$rdhome/gamelists" "/var/config/emulationstation/ES-DE/gamelists" + dir_prep "$rdhome/gamelists" "/var/config/ES-DE/gamelists" fi fi @@ -542,27 +542,38 @@ prepare_component() { fi if [[ "$component" =~ ^(ryujunx|Ryujinx|all)$ ]]; then + # NOTE: for techincal reasons the system folder of Ryujinx IS NOT a sumlink of the bios/switch/keys as not only the keys are located there + # When RetroDECK starts there is a "manage_ryujinx_keys" function that symlinks the keys only in Rryujinx/system. if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "------------------------" echo "Initializing RYUJINX" echo "------------------------" if [[ $multi_user_mode == "true" ]]; then rm -rf "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" - mkdir -p "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system" + #mkdir -p "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system" + # TODO: add /var/config/Ryujinx/system system folder management cp -fv $emuconfigs/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" - sed -i 's#/home/deck/retrodeck#'$rdhome'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json" + sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json" dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "/var/config/Ryujinx" + # TODO: add nand (saves) folder management + # TODO: add nand (saves) folder management + # TODO: add "registered" folder management else # removing config directory to wipe legacy files rm -rf /var/config/Ryujinx mkdir -p /var/config/Ryujinx/system cp -fv $emuconfigs/ryujinx/* /var/config/Ryujinx - sed -i 's#/home/deck/retrodeck#'$rdhome'#g' "$ryujinxconf" + sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf" + # Linking switch nand/saves folder + rm -rf /var/config/Ryujinx/bis + dir_prep "$saves_folder/switch/ryujinx/nand" "/var/config/Ryujinx/bis" + dir_prep "$saves_folder/switch/ryujinx/sdcard" "/var/config/Ryujinx/sdcard" + dir_prep "$bios_folder/switch/ryujinx/registered" "/var/config/Ryujinx/bis/system/Contents/registered" fi fi - if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves - dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system" - fi + # if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves + # dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system" + # fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf" # This is an unfortunate one-off because set_setting_value does not currently support JSON fi @@ -700,14 +711,65 @@ prepare_component() { echo "Initializing MAME" echo "----------------------" - mkdir -p $saves_folder/mame-sa - mkdir -p "/var/config/mame" + # TODO: probably some of these needs to be put elsewhere + mkdir -p "$saves_folder/mame-sa" + mkdir -p "$saves_folder/mame-sa/nvram" + mkdir -p "$states_folder/mame-sa" + mkdir -p "$rdhome/screenshots/mame-sa" + mkdir -p "$saves_folder/mame-sa/diff" + + mkdir -p "/var/config/ctrlr" + mkdir -p "/var/config/mame/ini" + mkdir -p "/var/config/mame/cfg" + mkdir -p "/var/config/mame/inp" + + mkdir -p "/var/data/mame/plugin-data" + mkdir -p "/var/data/mame/hash" + mkdir -p "/var/data/mame/assets/samples" + mkdir -p "/var/data/mame/assets/artwork" + mkdir -p "/var/data/mame/assets/fonts" + mkdir -p "/var/data/mame/cheat" + mkdir -p "/var/data/mame/assets/crosshair" + mkdir -p "/var/data/mame/plugins" + mkdir -p "/var/data/mame/assets/language" + mkdir -p "/var/data/mame/assets/software" + mkdir -p "/var/data/mame/assets/comments" + mkdir -p "/var/data/mame/assets/share" + mkdir -p "/var/data/mame/dats" + mkdir -p "/var/data/mame/folders" + mkdir -p "/var/data/mame/assets/cabinets" + mkdir -p "/var/data/mame/assets/cpanel" + mkdir -p "/var/data/mame/assets/pcb" + mkdir -p "/var/data/mame/assets/flyers" + mkdir -p "/var/data/mame/assets/titles" + mkdir -p "/var/data/mame/assets/ends" + mkdir -p "/var/data/mame/assets/marquees" + mkdir -p "/var/data/mame/assets/artwork-preview" + mkdir -p "/var/data/mame/assets/bosses" + mkdir -p "/var/data/mame/assets/logo" + mkdir -p "/var/data/mame/assets/scores" + mkdir -p "/var/data/mame/assets/versus" + mkdir -p "/var/data/mame/assets/gameover" + mkdir -p "/var/data/mame/assets/howto" + mkdir -p "/var/data/mame/assets/select" + mkdir -p "/var/data/mame/assets/icons" + mkdir -p "/var/data/mame/assets/covers" + mkdir -p "/var/data/mame/assets/ui" + dir_prep "$saves_folder/mame-sa/hiscore" "/var/config/mame/hiscore" - cp -fvr "$emuconfigs/mame/"** "/var/config/mame" - sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/*.ini" - sed -i 's#RETRODECKHOMESDIR#'$rdhome'#g' "/var/config/mame/*.ini" - sed -i 's#RETRODECKSAVESDIR#'$rdhome'#g' "/var/config/mame/*.ini" - sed -i 's#RETRODECKSTATESDIR#'$rdhome'#g' "/var/config/mame/*.ini" + cp -fvr "$emuconfigs/mame/mame.ini" "/var/config/mame/cfg" + cp -fvr "$emuconfigs/mame/ui.ini" "/var/config/mame/cfg" + cp -fvr "$emuconfigs/mame/default.cfg" "/var/config/mame/cfg" + + sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/cfg/mame.ini" + sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "/var/config/mame/cfg/mame.ini" + sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/mame/cfg/mame.ini" + sed -i 's#RETRODECKSTATESDIR#'$states_folder'#g' "/var/config/mame/cfg/mame.ini" + + sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/cfg/ui.ini" + sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "/var/config/mame/cfg/ui.ini" + sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/mame/cfg/ui.ini" + sed -i 's#RETRODECKSTATESDIR#'$states_folder'#g' "/var/config/mame/cfg/ui.ini" fi if [[ "$component" =~ ^(gzdoom|GZDOOM|all)$ ]]; then diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index 0f530fdd..39d98f1d 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -65,26 +65,28 @@ GPL-3.0 CC0-1.0 - + https://github.com/XargonWan/RetroDECK/releases/tag/0.8.0b -

CRITICAL:

-
    -
  • DEEP TEST: prepare_emulator function is now called prepare_component, eidted even in the cli and split it into the Configurator, so we need to test if the reset emulator works as supposed, if the cli and the Configurator is consistent.
  • -
+

+ WARNING: + The post update script is initializing es-de 3.0, vita3k, mame-sa and ryujinx when coming from a version ealrier that 0.8.0b. Tp fully test this build you must come from a build 0.7.6b or previous otherwise you will surely encounter issues. Else reset RetroDECK but be aware that will not be a proper testing. +

Changes:

    +
  • ES-DE: updated to 3.0
  • +
  • Added new system: RYUJINX
  • Added new system: SOLARUS
  • Added new engine: GZDOOM
  • -
  • Added new emulator: Vita3K - Reset the emulator to grap the lates changes
  • +
  • Added new emulator: Vita3K
  • Added new emulator: MAME (Standalone)
  • PPSSPP: added hotkeys
  • +
  • MAME: added hotkeys
  • +
  • SCUMMVM: added hotkeys
  • DOLPHIN: improved wiimote pointer emulation for controllers
  • -
  • Added Steam Sync (with BoilR)
  • Quit button after emulators reset should act as an actual full quit button
  • Created a quit_retrodeck function to ease the quit in the scripts.
  • Logs folder is now in retrodeck/logs (previously was .logs)
  • -
  • The post update script is initializing vita3k, mame and boilr when coming from a version ealrier that 0.8.0, this don't work in cokker and must be resetted manually (for boilr reset RetroDECK)
  • RPCS3 is now running via shortcut (.desktop file) by default - WARN THE USERS TO MIGRATE
  • Added controller config for PS4 and PS5
  • Controller config overhaul
  • @@ -93,21 +95,18 @@

    Fixes:

    • Fixed DUCKSTATION memory card folder
    • -
    • Fixed RPCS3 saves folder (wrong symlink) - WRN THE USERS TO BACKUP
    • -
    • Fixed issues that prevents Steam Sync to work correctly
    • +
    • Fixed RPCS3 saves folder (wrong symlink) - WARN THE USERS TO BACKUP

    Issues:

      -
    • !!! WARNING !!! Steam Sync is now REPLACING your Standalone BoilR links with RetroDECK's, use it at your own risk!
    • +
    • Vita3K firmware downloader is failing. Workaround: run the downloader twice
    • GZDOOM: the controller for player 2+ is not correctly configured
    • quit_retrodeck function seems to not working correctly
    • -
    • MAME (Standalone) paths should be fixed

    Missing:

    • GZDOOM: hotkeys
    • SOLARUS: hotkeys
    • -
    • MAME (Standalone): hotkeys
    • A proper reset script for the new emulators, now it's just a draft (only Vita3K is done)
    diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index b7ab4bb8..ec4e4964 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -407,7 +407,7 @@ modules: - '*.la' # When updating this module remember to check those: - # https://gitlab.com/es-de/emulationstation-de/-/blob/[VERSION]/resources/systems/unix/es_find_rules.xml + # https://gitlab.com/es-de/emulationstation-de/-/blob/[VERSION]/resources/systems/linux/es_find_rules.xml # But we don't include them 1:1 as RetroDECK got some specific configs in some cases - name: ES-DE buildsystem: cmake-ninja @@ -419,12 +419,8 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK-ES-DE - branch: cebbeff3b5f834fd9adaeb1f5dc9e0da6b106599 + branch: update/3.0 - type: shell - commands: - - sed -i 's#"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#"RetroDECK - v'$(cat ${FLATPAK_DEST}/retrodeck/version)', ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#g' - es-app/src/guis/GuiMenu.cpp # ES-DE - END @@ -433,8 +429,8 @@ modules: - name: art-book-next-es-de buildsystem: simple build-commands: - - mkdir -p ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-es-de/ - - mv -f * ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-es-de/ + - mkdir -p ${FLATPAK_DEST}/share/es-de/themes/art-book-next-es-de/ + - mv -f * ${FLATPAK_DEST}/share/es-de/themes/art-book-next-es-de/ sources: - type: git url: https://github.com/anthonycaccese/art-book-next-es-de.git @@ -1292,6 +1288,23 @@ modules: # MAME - End + # Ryujinx Appimage - START + # https://ryujinx.org/download + + - name: Ryujinx + buildsystem: simple + build-commands: + - | + tar -zxvf *.tar.gz + mv -v publish ${FLATPAK_DEST}/ryujinx + ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx ${FLATPAK_DEST}/bin/Ryujinx.sh + sources: + - type: file + url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.1192/ryujinx-1.1.1192-linux_x64.tar.gz + sha256: 41716233f5745a7df1e411af6bac9d828f0b6b6feb63b5ef87445b81b01dee54 + + # Ryujinx Appimage - END + # External manifests end - name: retrodeck @@ -1302,16 +1315,16 @@ modules: - mkdir -p ${FLATPAK_DEST}/retrodeck # Prep the ES-DE and RetroArch config files - I will have to SED/XMLSTARLET them soon - - rm -rf /app/share/emulationstation/resources/systems/unix/es_find_rules.xml - - cp es-configs/es_find_rules.xml /app/share/emulationstation/resources/systems/unix/ - - rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml - - cp es-configs/es_systems.xml /app/share/emulationstation/resources/systems/unix/ + - rm -rf /app/share/es-de/resources/systems/linux/es_find_rules.xml + - cp es-configs/es_find_rules.xml /app/share/es-de/resources/systems/linux/ + - rm -rf /app/share/es-de/resources/systems/linux/es_systems.xml + - cp es-configs/es_systems.xml /app/share/es-de/resources/systems/linux/ # These must be put in home folder, managed by retrodeck.sh - cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml - mv -f -t ${FLATPAK_DEST}/retrodeck es-configs/rd_prepacks # Logo, res, move graphics directory away from default location so splash can be changed after build - - mv -f -t ${FLATPAK_DEST}/retrodeck /app/share/emulationstation/resources/graphics + - mv -f -t ${FLATPAK_DEST}/retrodeck /app/share/es-de/resources/graphics - cp -f res/splash.svg ${FLATPAK_DEST}/retrodeck/graphics/splash.svg - cp -f res/splash.svg ${FLATPAK_DEST}/retrodeck/graphics/splash-orig.svg - cp -rf res/extra_splashes/ ${FLATPAK_DEST}/retrodeck/graphics @@ -1358,6 +1371,10 @@ modules: - cp emu-configs/gzdoom/gzdoom.sh ${FLATPAK_DEST}/bin/gzdoom.sh - chmod +x ${FLATPAK_DEST}/bin/gzdoom.sh + # MAME wrapper + - cp emu-configs/mame/mame-rdwrapper.sh ${FLATPAK_DEST}/bin/mame-rdwrapper.sh + - chmod +x ${FLATPAK_DEST}/bin/mame-rdwrapper.sh + sources: - type: git url: https://github.com/XargonWan/RetroDECK.git diff --git a/old/removed-modules.yml b/old/removed-modules.yml index 43d5cab3..04274441 100644 --- a/old/removed-modules.yml +++ b/old/removed-modules.yml @@ -112,24 +112,7 @@ # Duckstation-DontUpdate - END - # Ryujinx Appimage - START - # https://ryujinx.org/download - - # - name: Ryujinx - # buildsystem: simple - # build-commands: - # - | - # tar -zxvf ryujinx-1.1.685-linux_x64.tar.gz - # mv -v publish ${FLATPAK_DEST}/ryujinx - # ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx ${FLATPAK_DEST}/bin/Ryujinx - # sources: - # - type: file - # url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.685/ryujinx-1.1.685-linux_x64.tar.gz - # sha256: bc4d7076106d7aa59c3a3ea22b83c553e5fa1a897815831adcf18cc13d729e15 - - # Ryujinx Appimage - END - - # Ryujinx - START + # Ryujinx - START # https://github.com/flathub/org.ryujinx.Ryujinx - name: Ryujinx diff --git a/rd-submodules/es-de/GuiMenu.cpp.patch b/rd-submodules/es-de/GuiMenu.cpp.patch deleted file mode 100644 index b0c035ea..00000000 --- a/rd-submodules/es-de/GuiMenu.cpp.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de/es-app/src/guis/GuiMenu.cpp ---- emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-08-23 13:12:15.617292576 +0200 -+++ emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-08-23 13:44:10.736412006 +0200 -@@ -67,2 +67,4 @@ - -+ addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); }); -+ - if (!Settings::getInstance()->getBool("ForceKiosk") && -@@ -70,3 +72,3 @@ - #if defined(__APPLE__) -- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); }); -+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); }); - #else -@@ -75,3 +77,3 @@ - else -- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); }); -+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); }); - #endif -@@ -1758,3 +1760,3 @@ - auto quitText = std::make_shared( -- "QUIT EMULATIONSTATION", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); -+ "QUIT RETRODECK", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); - quitText->setSelectable(true); -@@ -1910 +1912,14 @@ - } -+ -+void GuiMenu::openRetroDeckConfigurator() -+{ -+ // Launch the configurator.sh script -+ std::string command; -+ std::string startDirectory; -+ bool runInBackground; -+ command = "bash /app/tools/configurator.sh"; -+ startDirectory = "/app/tools"; -+ runInBackground = false; -+ int result = Utils::Platform::launchGameUnix(command, startDirectory, runInBackground); -+ // You can add any checks for the script's outcome here. -+} diff --git a/rd-submodules/es-de/GuiMenu.h.patch b/rd-submodules/es-de/GuiMenu.h.patch deleted file mode 100644 index 13a6b687..00000000 --- a/rd-submodules/es-de/GuiMenu.h.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.h emulationstation-de/es-app/src/guis/GuiMenu.h ---- emulationstation-de/es-app/src/guis/GuiMenu.h 2023-08-23 13:12:15.617292576 +0200 -+++ emulationstation-de/es-app/src/guis/GuiMenu.h 2023-08-23 13:50:20.978700234 +0200 -@@ -46,2 +46,3 @@ - void openOtherOptions(); -+ void openRetroDeckConfigurator(); - void openQuitMenu(); -@@ -54 +55,2 @@ - #endif // ES_APP_GUIS_GUI_MENU_H -+ diff --git a/rd-submodules/es-de/GuiThemeDownloader.cpp.patch b/rd-submodules/es-de/GuiThemeDownloader.cpp.patch deleted file mode 100644 index 8dd35293..00000000 --- a/rd-submodules/es-de/GuiThemeDownloader.cpp.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -au1r emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ---- emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp 2023-11-03 16:25:01.115126901 +0100 -+++ emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp 2023-11-03 16:26:18.882607724 +0100 -@@ -602,4 +602,4 @@ - getHelpStyle(), -- "IT SEEMS AS IF YOU'RE NOT RUNNING THE LATEST ES-DE RELEASE, PLEASE UPGRADE BEFORE " -- "PROCEEDING AS THESE THEMES MAY NOT BE COMPATIBLE WITH YOUR VERSION", -+ "ES-DE THEME ENGINE WAS UPDATED UPSTREAM. THESE THEMES MAY NOT BE COMPATIBLE WITH THE CURRENT RETRODECK VERSION." -+ "CHECK IF A NEW RETRODECK UPDATE IS AVAILABLE, ELSE PLEASE WAIT FOR IT OR PROCEED AT YOUR OWN RISK.", - "OK", [] { return; }, "", nullptr, "", nullptr, nullptr, true)); diff --git a/rd-submodules/es-de/ViewController.cpp.patch b/rd-submodules/es-de/ViewController.cpp.patch deleted file mode 100644 index 8d677c37..00000000 --- a/rd-submodules/es-de/ViewController.cpp.patch +++ /dev/null @@ -1,101 +0,0 @@ -diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstation-de/es-app/src/views/ViewController.cpp ---- emulationstation-de/es-app/src/views/ViewController.cpp 2023-11-04 15:09:24.332178777 -0400 -+++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-11-04 15:13:59.015780009 -0400 -@@ -195,91 +195,3 @@ - mNoGamesMessageBox = new GuiMsgBox( -- HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "CHANGE ROM DIRECTORY", -- [this] { -- std::string currentROMDirectory; --#if defined(_WIN64) -- currentROMDirectory = Utils::String::replace(FileData::getROMDirectory(), "/", "\\"); --#else -- currentROMDirectory = FileData::getROMDirectory(); --#endif -- if (Settings::getInstance()->getBool("VirtualKeyboard")) { -- mWindow->pushGui(new GuiTextEditKeyboardPopup( -- HelpStyle(), 0.0f, "ENTER ROM DIRECTORY PATH", currentROMDirectory, -- [this, currentROMDirectory](const std::string& newROMDirectory) { -- if (currentROMDirectory != newROMDirectory) { -- Settings::getInstance()->setString( -- "ROMDirectory", Utils::String::trim(newROMDirectory)); -- Settings::getInstance()->saveFile(); --#if defined(_WIN64) -- mRomDirectory = -- Utils::String::replace(FileData::getROMDirectory(), "/", "\\"); --#else -- mRomDirectory = FileData::getROMDirectory(); --#endif -- mNoGamesMessageBox->changeText(mNoGamesErrorMessage + mRomDirectory); -- mWindow->pushGui(new GuiMsgBox(HelpStyle(), -- "ROM DIRECTORY SETTING SAVED, RESTART\n" -- "THE APPLICATION TO RESCAN THE SYSTEMS", -- "OK", nullptr, "", nullptr, "", nullptr, -- nullptr, true, true)); -- } -- }, -- false, "SAVE", "SAVE CHANGES?", "Currently configured path:", -- currentROMDirectory, "LOAD CURRENTLY CONFIGURED PATH", -- "CLEAR (LEAVE BLANK TO RESET TO DEFAULT PATH)")); -- } -- else { -- mWindow->pushGui(new GuiTextEditPopup( -- HelpStyle(), "ENTER ROM DIRECTORY PATH", currentROMDirectory, -- [this](const std::string& newROMDirectory) { -- Settings::getInstance()->setString("ROMDirectory", -- Utils::String::trim(newROMDirectory)); -- Settings::getInstance()->saveFile(); --#if defined(_WIN64) -- mRomDirectory = -- Utils::String::replace(FileData::getROMDirectory(), "/", "\\"); --#else -- mRomDirectory = FileData::getROMDirectory(); --#endif -- mNoGamesMessageBox->changeText(mNoGamesErrorMessage + mRomDirectory); -- mWindow->pushGui(new GuiMsgBox(HelpStyle(), -- "ROM DIRECTORY SETTING SAVED, RESTART\n" -- "THE APPLICATION TO RESCAN THE SYSTEMS", -- "OK", nullptr, "", nullptr, "", nullptr, -- nullptr, true)); -- }, -- false, "SAVE", "SAVE CHANGES?", "Currently configured path:", -- currentROMDirectory, "LOAD CURRENTLY CONFIGURED PATH", -- "CLEAR (LEAVE BLANK TO RESET TO DEFAULT PATH)")); -- } -- }, -- "CREATE DIRECTORIES", -- [this] { -- mWindow->pushGui(new GuiMsgBox( -- HelpStyle(), -- "THIS WILL CREATE DIRECTORIES FOR ALL THE\n" -- "GAME SYSTEMS DEFINED IN es_systems.xml\n\n" -- "THIS MAY CREATE A LOT OF FOLDERS SO IT'S\n" -- "ADVICED TO REMOVE THE ONES YOU DON'T NEED", -- "PROCEED", -- [this] { -- if (!SystemData::createSystemDirectories()) { -- mWindow->pushGui(new GuiMsgBox(HelpStyle(), -- "THE SYSTEM DIRECTORIES WERE SUCCESSFULLY\n" -- "GENERATED, EXIT THE APPLICATION AND PLACE\n" -- "YOUR GAMES IN THE NEWLY CREATED FOLDERS", -- "OK", nullptr, "", nullptr, "", nullptr, -- nullptr, true)); -- } -- else { -- mWindow->pushGui(new GuiMsgBox(HelpStyle(), -- "ERROR CREATING THE SYSTEM DIRECTORIES,\n" -- "PERMISSION PROBLEMS OR DISK FULL?\n\n" -- "SEE THE LOG FILE FOR MORE DETAILS", -- "OK", nullptr, "", nullptr, "", nullptr, -- nullptr, true)); -- } -- }, -- "CANCEL", nullptr, "", nullptr, nullptr, false)); -- }, -- "QUIT", -+ HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "QUIT", - [] { -@@ -289,3 +201,3 @@ - }, -- nullptr, true, false, -+ "", nullptr, "", nullptr, nullptr, true, true, - (mRenderer->getIsVerticalOrientation() ? diff --git a/rd-submodules/es-de/Window.cpp.patch b/rd-submodules/es-de/Window.cpp.patch deleted file mode 100644 index c099d83b..00000000 --- a/rd-submodules/es-de/Window.cpp.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -au1r emulationstation-de/es-core/src/Window.cpp emulationstation-de/es-core/src/Window.cpp ---- emulationstation-de/es-core/src/Window.cpp 2023-08-29 14:14:17.208301836 +0200 -+++ emulationstation-de/es-core/src/Window.cpp 2023-08-29 14:12:37.307334069 +0200 - -@@ -181,3 +181,3 @@ - progressBarRect.barPosY += borderThickness; -- progressBarRect.color = 0x79010FFF; -+ progressBarRect.color = 0xC858E6FF; - mProgressBarRectangles.emplace_back(progressBarRect); diff --git a/rd-submodules/es-de/patch_helper.sh b/rd-submodules/es-de/patch_helper.sh deleted file mode 100755 index 27923b97..00000000 --- a/rd-submodules/es-de/patch_helper.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -mkdir /tmp - -branch="00a226062fff37209d98e0ab048ac89af50ecacc" -git clone "https://gitlab.com/es-de/emulationstation-de.git" /tmp/emulationstation-de - -pushd . -cd /tmp/emulationstation-de -git checkout $branch -popd - -mkdir patches-tmp - -cp /tmp/emulationstation-de/es-app/src/guis/GuiMenu.cpp ./patches-tmp -cp /tmp/emulationstation-de/es-app/src/guis/GuiMenu.h ./patches-tmp -cp /tmp/emulationstation-de/es-app/src/views/ViewController.cpp ./patches-tmp -cp /tmp/emulationstation-de/es-core/src/Window.cpp ./patches-tmp -cp /tmp/emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ./patches-tmp - -read -p "Please edit the files in \"patches-tmp\" and press enter to continue." - -diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiMenu.cpp ./patches-tmp/GuiMenu.cpp > GuiMenu.cpp.patch -diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiMenu.h ./patches-tmp/GuiMenu.h > GuiMenu.h.patch -diff -au1r /tmp/emulationstation-de/es-app/src/views/ViewController.cpp ./patches-tmp/ViewController.cpp > ViewController.cpp.patch -diff -au1r /tmp/emulationstation-de/es-core/src/Window.cpp ./patches-tmp/Window.cpp > Window.cpp.patch -diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ./patches-tmp/GuiThemeDownloader.cpp > GuiThemeDownloader.cpp.patch - -rm -rf patches-tmp - -echo "Done, now please remeber to edit the headers of the patch files with the correct paths." \ No newline at end of file diff --git a/retrodeck.sh b/retrodeck.sh index f80c0ea5..745f03d4 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -56,9 +56,9 @@ https://retrodeck.net ;; --reset-component*) echo "You are about to reset one or more RetroDECK components or emulators." - echo "Available options are: es-de, retroarch, cemu, citra, dolphin, duckstation, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, xemu, yuzu, vita3k, mame, gzdoom, boilr, all" + echo "Available options are: es-de, retroarch, cemu, citra, dolphin, duckstation, melonds, pcsx3, pico8, ppsspp, primehack, ryujinx. rpcs3, ryujinx, xemu, yuzu, vita3k, mame, gzdoom, boilr, all" read -p "Please enter the component you would like to reset: " component - if [[ "$component" =~ ^(es-de|retroarch|cemu|citra|dolphin|duckstation|mame|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all)$ ]]; then + if [[ "$component" =~ ^(es-de|retroarch|cemu|citra|dolphin|duckstation|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|rpcs3|xemu|yuzu|all)$ ]]; then read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response if [[ $response == [yY] ]]; then prepare_component "reset" "$component" "cli" @@ -182,6 +182,9 @@ if [[ -f "$HOME/.steam/steam/controller_base/templates/RetroDECK_controller_conf fi # REMOVE BEFORE NEXT VERSION RELEASE +# Linking switch keys for Ryujinx +manage_ryujinx_keys + # Normal Startup if [[ $steam_sync == "true" ]]; then diff --git a/tools/configurator.sh b/tools/configurator.sh index ee5509eb..50179a13 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -476,7 +476,7 @@ configurator_open_emulator_dialog() { ;; "MAME" ) - mame + mame-rdwrapper.sh ;; "MelonDS" ) @@ -500,7 +500,7 @@ configurator_open_emulator_dialog() { ;; "Ryujinx" ) - ryujinx-wrapper + Ryujinx.sh ;; "Vita3K" ) @@ -1009,6 +1009,7 @@ configurator_reset_dialog() { "PPSSPP" "Reset the PSP emulator PPSSPP to default settings" \ "Primehack" "Reset the Metroid Prime emulator Primehack to default settings" \ "RPCS3" "Reset the PS3 emulator RPCS3 to default settings" \ + "Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \ "Vita3k" "Reset the PS Vita emulator Vita3k to default settings" \ "XEMU" "Reset the XBOX emulator XEMU to default settings" \ "Yuzu" "Reset the Switch emulator Yuzu to default settings" ) @@ -1055,7 +1056,7 @@ configurator_reset_dialog() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --text="Which component do you want to reset to default?" \ --column="Component" --column="Action" \ - "BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \ + "BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \ "ES-DE" "Reset the ES-DE frontend" \ ) # TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU" @@ -1347,7 +1348,7 @@ configurator_usb_import_dialog() { "${external_devices[@]}") if [[ ! -z "$choice" ]]; then - emulationstation --home "$choice" --create-system-dirs + es-de --home "$choice" --create-system-dirs rm -rf "$choice/ES-DE" # Cleanup unnecessary folder fi else