From 55d45432d4642a0f19b369daf143085b095f59bb Mon Sep 17 00:00:00 2001 From: icenine451 Date: Mon, 15 May 2023 16:33:54 -0400 Subject: [PATCH] Improve readbility of presets dialog Improve handling of internal system names Add internal->user readable system name translation Disable PS4 in es_systems Improve get_setting_value handling of missing setting name in section Add systems to borders, widescreen and nintendo_button_layout presets --- .../retrodeck/presets/SNES_presets.cfg | 4 --- .../defaults/retrodeck/presets/gb_presets.cfg | 14 ++++++++ .../retrodeck/presets/gba_presets.cfg | 13 ++++++++ .../retrodeck/presets/gbc_presets.cfg | 14 ++++++++ .../retrodeck/presets/genesis_presets.cfg | 8 +++++ .../defaults/retrodeck/presets/gg_presets.cfg | 11 +++++++ .../retrodeck/presets/n64_presets.cfg | 8 +++++ .../retrodeck/presets/psx_ra_presets.cfg | 8 +++++ .../presets/remaps/Gambatte/gb.rmp.disabled | 4 +++ .../presets/remaps/Gambatte/gbc.rmp.disabled | 4 +++ .../presets/remaps/Mesen/nes.rmp.disabled | 4 +++ .../remaps/Mupen64Plus-Next/n64.rmp.disabled | 4 +++ .../presets/remaps/mGBA/gba.rmp.disabled | 4 +++ .../reference_lists/pretty_system_names.cfg | 11 +++++++ emu-configs/defaults/retrodeck/retrodeck.cfg | 32 +++++++++++++------ es-configs/es_systems.xml | 4 +-- functions/functions.sh | 8 +++++ functions/global.sh | 5 +-- functions/patching.sh | 6 ++-- functions/presets.sh | 4 ++- rd-submodules/retroarch | 2 +- rd-submodules/shared-modules | 2 +- 22 files changed, 151 insertions(+), 23 deletions(-) create mode 100644 emu-configs/defaults/retrodeck/presets/gb_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/gba_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/gbc_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/genesis_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/gg_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/n64_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/psx_ra_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gb.rmp.disabled create mode 100644 emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gbc.rmp.disabled create mode 100644 emu-configs/defaults/retrodeck/presets/remaps/Mesen/nes.rmp.disabled create mode 100644 emu-configs/defaults/retrodeck/presets/remaps/Mupen64Plus-Next/n64.rmp.disabled create mode 100644 emu-configs/defaults/retrodeck/presets/remaps/mGBA/gba.rmp.disabled create mode 100644 emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg diff --git a/emu-configs/defaults/retrodeck/presets/SNES_presets.cfg b/emu-configs/defaults/retrodeck/presets/SNES_presets.cfg index 452e746b..2d71ed98 100644 --- a/emu-configs/defaults/retrodeck/presets/SNES_presets.cfg +++ b/emu-configs/defaults/retrodeck/presets/SNES_presets.cfg @@ -1,10 +1,6 @@ config_file_format^retroarch target_file^/var/config/retroarch/config/Snes9x/snes.cfg defaults_file^$emuconfigs/retroarch/retroarch.cfg -change^cheevos^cheevos_enable^true -change^cheevos^cheevos_token^$cheevos_token -change^cheevos^cheevos_username^$cheevos_username -change^cheevos_hardcore^cheevos_hardcore_mode_enable^true change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/snes87.cfg change^borders^input_overlay_aspect_adjust_landscape^0.305000 change^borders^input_overlay_scale_landscape^1.050000 diff --git a/emu-configs/defaults/retrodeck/presets/gb_presets.cfg b/emu-configs/defaults/retrodeck/presets/gb_presets.cfg new file mode 100644 index 00000000..cc48e4c0 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/gb_presets.cfg @@ -0,0 +1,14 @@ +config_file_format^retroarch +target_file^/var/config/retroarch/config/Gambatte/gb.cfg +defaults_file^$emuconfigs/retroarch/retroarch.cfg +change^borders^aspect_ratio_index^23 +change^borders^custom_viewport_height^576 +change^borders^custom_viewport_width^640 +change^borders^custom_viewport_x^320 +change^borders^custom_viewport_y^20 +change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gb.cfg +change^borders^input_overlay_aspect_adjust_landscape^0.110000 +change^borders^input_overlay_enable^true +change^borders^input_overlay_scale_landscape^1.205000 +change^borders^input_overlay_y_offset_landscape^0.005000 +enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Gambatte/gb.rmp diff --git a/emu-configs/defaults/retrodeck/presets/gba_presets.cfg b/emu-configs/defaults/retrodeck/presets/gba_presets.cfg new file mode 100644 index 00000000..dc48d86d --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/gba_presets.cfg @@ -0,0 +1,13 @@ +config_file_format^retroarch +target_file^/var/config/retroarch/config/mGBA/gba.cfg +defaults_file^$emuconfigs/retroarch/retroarch.cfg +change^borders^aspect_ratio_index^23 +change^borders^custom_viewport_height^600 +change^borders^custom_viewport_width^900 +change^borders^custom_viewport_x^190 +change^borders^custom_viewport_y^37 +change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gba.cfg +change^borders^input_overlay_aspect_adjust_landscape^0.105000 +change^borders^input_overlay_enable^true +change^borders^input_overlay_scale_landscape^1.140000 +enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Gambatte/gbc.rmp diff --git a/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg b/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg new file mode 100644 index 00000000..c691b38d --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg @@ -0,0 +1,14 @@ +config_file_format^retroarch +target_file^/var/config/retroarch/config/Gambatte/gbc.cfg +defaults_file^$emuconfigs/retroarch/retroarch.cfg +change^borders^aspect_ratio_index^23 +change^borders^custom_viewport_height^576 +change^borders^custom_viewport_width^640 +change^borders^custom_viewport_x^320 +change^borders^custom_viewport_y^20 +change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gbc.cfg +change^borders^input_overlay_aspect_adjust_landscape^0.110000 +change^borders^input_overlay_enable^true +change^borders^input_overlay_scale_landscape^1.205000 +change^borders^input_overlay_y_offset_landscape^0.005000 +enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Gambatte/gbc.rmp diff --git a/emu-configs/defaults/retrodeck/presets/genesis_presets.cfg b/emu-configs/defaults/retrodeck/presets/genesis_presets.cfg new file mode 100644 index 00000000..5abe0756 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/genesis_presets.cfg @@ -0,0 +1,8 @@ +config_file_format^retroarch +target_file^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg +defaults_file^$emuconfigs/retroarch/retroarch.cfg +change^borders^input_overlay^input_overlay^/var/config/retroarch/overlays/borders/pegasus/genesis.cfg +change^borders^input_overlay_aspect_adjust_landscape^0.100000 +change^borders^input_overlay_enable^true +change^borders^input_overlay_scale_landscape^1.040000 +change^widescreen^aspect_ratio_index^24 diff --git a/emu-configs/defaults/retrodeck/presets/gg_presets.cfg b/emu-configs/defaults/retrodeck/presets/gg_presets.cfg new file mode 100644 index 00000000..fc1b2efa --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/gg_presets.cfg @@ -0,0 +1,11 @@ +config_file_format^retroarch +target_file^/var/config/retroarch/config/Genesis Plus GX/gg.cfg +defaults_file^$emuconfigs/retroarch/retroarch.cfg +change^borders^input_overlay^aspect_ratio_index^23 +change^borders^custom_viewport_width^800 +change^borders^custom_viewport_x^240 +change^borders^custom_viewport_y^43 +change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gg.cfg +change^borders^input_overlay_aspect_adjust_landscape^-0.080000 +change^borders^input_overlay_enable^true +change^borders^input_overlay_scale_landscape^1.345000 diff --git a/emu-configs/defaults/retrodeck/presets/n64_presets.cfg b/emu-configs/defaults/retrodeck/presets/n64_presets.cfg new file mode 100644 index 00000000..542aa841 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/n64_presets.cfg @@ -0,0 +1,8 @@ +config_file_format^retroarch +target_file^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg +defaults_file^$emuconfigs/retroarch/retroarch.cfg +change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/N64.cfg +change^borders^input_overlay_aspect_adjust_landscape^0.145000 +change^borders^input_overlay_enable^true +change^widescreen^aspect_ratio_index^24 +enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Snes9x/snes.rmp diff --git a/emu-configs/defaults/retrodeck/presets/psx_ra_presets.cfg b/emu-configs/defaults/retrodeck/presets/psx_ra_presets.cfg new file mode 100644 index 00000000..f3aaa96d --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/psx_ra_presets.cfg @@ -0,0 +1,8 @@ +config_file_format^retroarch +target_file^/var/config/retroarch/config/SwanStation/psx.cfg +defaults_file^$emuconfigs/retroarch/retroarch.cfg +change^borders^input_overlay^/var/config/retrodeck/overlays/borders/pegasus/psx.cfg +change^borders^input_overlay_aspect_adjust_landscape^0.120000 +change^borders^input_overlay_enable^true +change^borders^input_overlay_scale_landscape^1.040000 +change^widescreen^aspect_ratio_index^24 diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gb.rmp.disabled b/emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gb.rmp.disabled new file mode 100644 index 00000000..445f6f59 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gb.rmp.disabled @@ -0,0 +1,4 @@ +input_player1_btn_a = "0" +input_player1_btn_b = "8" +input_player1_btn_x = "1" +input_player1_btn_y = "9" diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gbc.rmp.disabled b/emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gbc.rmp.disabled new file mode 100644 index 00000000..445f6f59 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gbc.rmp.disabled @@ -0,0 +1,4 @@ +input_player1_btn_a = "0" +input_player1_btn_b = "8" +input_player1_btn_x = "1" +input_player1_btn_y = "9" diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Mesen/nes.rmp.disabled b/emu-configs/defaults/retrodeck/presets/remaps/Mesen/nes.rmp.disabled new file mode 100644 index 00000000..445f6f59 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/remaps/Mesen/nes.rmp.disabled @@ -0,0 +1,4 @@ +input_player1_btn_a = "0" +input_player1_btn_b = "8" +input_player1_btn_x = "1" +input_player1_btn_y = "9" diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Mupen64Plus-Next/n64.rmp.disabled b/emu-configs/defaults/retrodeck/presets/remaps/Mupen64Plus-Next/n64.rmp.disabled new file mode 100644 index 00000000..445f6f59 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/remaps/Mupen64Plus-Next/n64.rmp.disabled @@ -0,0 +1,4 @@ +input_player1_btn_a = "0" +input_player1_btn_b = "8" +input_player1_btn_x = "1" +input_player1_btn_y = "9" diff --git a/emu-configs/defaults/retrodeck/presets/remaps/mGBA/gba.rmp.disabled b/emu-configs/defaults/retrodeck/presets/remaps/mGBA/gba.rmp.disabled new file mode 100644 index 00000000..445f6f59 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/remaps/mGBA/gba.rmp.disabled @@ -0,0 +1,4 @@ +input_player1_btn_a = "0" +input_player1_btn_b = "8" +input_player1_btn_x = "1" +input_player1_btn_y = "9" diff --git a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg b/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg new file mode 100644 index 00000000..3de52da0 --- /dev/null +++ b/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg @@ -0,0 +1,11 @@ +duckstation^Duckstation (Sony Playstation Standalone) +gb^Nintendo GameBoy +gba^Nintendo GameBoy Advance +gbc^Nintendo GameBoy Color +genesis^Sega Genesis/Master System +gg^Sega GameGear +n64^Nintendo 64 +pcsx2^PCSX2 (Sony Playstation 2 Standalone) +psx_ra^Sony Playstation (RetroArch Core) +retroarch^RetroArch (Multi-emulator Frontend) +snes^Nintendo Super Nintendo diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg index 94c78de0..d1d5f79a 100644 --- a/emu-configs/defaults/retrodeck/retrodeck.cfg +++ b/emu-configs/defaults/retrodeck/retrodeck.cfg @@ -29,20 +29,34 @@ default_user= developer_options=false [cheevos] -Duckstation=false -PCSX2=false -RetroArch=false +duckstation=false +pcsx2=false +retroarch=false [cheevos_hardcore] -Duckstation=false -PCSX2=false -RetroArch=false +duckstation=false +pcsx2=false +retroarch=false [borders] -SNES=false +gb=false +gba=false +gbc=false +genesis=false +gg=false +n64=false +psx_ra=false +snes=false [widescreen] -SNES=false +genesis=false +n64=false +psx_ra=false +snes=false [nintendo_button_layout] -SNES=false +gb=false +gba=false +gbc=false +n64=false +snes=false diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index 936271f3..462f540b 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -1269,7 +1269,7 @@ ps3 ps3 - + psp Sony PlayStation Portable diff --git a/functions/functions.sh b/functions/functions.sh index 99197d9c..13d8e012 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -238,6 +238,14 @@ backup_retrodeck_userdata() { zip -rq9 "$backups_folder/$(date +"%0m%0d")_retrodeck_userdata.zip" "$saves_folder" "$states_folder" "$bios_folder" "$media_folder" "$themes_folder" "$logs_folder" "$screenshots_folder" "$mods_folder" "$texture_packs_folder" "$borders_folder" > $logs_folder/$(date +"%0m%0d")_backup_log.log } +make_name_pretty() { + # This function will take an internal system name (like "gbc") and return a pretty version for user display ("Nintendo GameBoy Color") + # USAGE: make_name_pretty "system name" + local system=$(grep "$1^" "$pretty_system_names_reference_list") + IFS='^' read -r internal_name pretty_name < <(echo "$system") + echo "$pretty_name" +} + finit_browse() { # Function for choosing data directory location during first/forced init path_selected=false diff --git a/functions/global.sh b/functions/global.sh index 54e8f53f..53989bc9 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -43,8 +43,9 @@ helper_files_list="$emuconfigs/defaults/retrodeck/reference_lists/helper_files_l rd_appdata="/app/share/appdata/net.retrodeck.retrodeck.appdata.xml" # The shipped appdata XML file for this version rpcs3_firmware="http://dus01.ps3.update.playstation.net/update/ps3/image/us/2023_0228_05fe32f5dc8c78acbcd84d36ee7fdc5b/PS3UPDAT.PUP" RA_API_URL="https://retroachievements.org/dorequest.php" # API URL for RetroAchievements.org -presets_dir="$emuconfigs/defaults/retrodeck/presets" -incompatible_presets_reference_list="$emuconfigs/defaults/retrodeck/reference_lists/incompatible_presets.cfg" +presets_dir="$emuconfigs/defaults/retrodeck/presets" # Repository for all system preset config files +incompatible_presets_reference_list="$emuconfigs/defaults/retrodeck/reference_lists/incompatible_presets.cfg" # A config file listing all incompatible presets for reference (eg. cannot have borders and widescreen enabled simultaniously) +pretty_system_names_reference_list="$emuconfigs/defaults/retrodeck/reference_lists/pretty_system_names.cfg" # An internal translation list for turning internal names (eg. gbc) to "pretty" names (Nintendo GameBoy Color) # Config files for emulators with single config files diff --git a/functions/patching.sh b/functions/patching.sh index d91e0f4f..b6f296fa 100644 --- a/functions/patching.sh +++ b/functions/patching.sh @@ -88,7 +88,7 @@ get_setting_value() { if [[ -z $current_section_name ]]; then echo $(grep -o -P "(?<=^$current_setting_name=).*" $1) else - sed -n '\^\['"$current_section_name"'\]^,\^\^'"$current_setting_name"'^{ \^\['"$current_section_name"'\]^! { \^\^'"$current_setting_name"'^ p } }' $1 | grep -o -P "(?<=^$current_setting_name=).*" + sed -n -E '\^\['"$current_section_name"'\]^,\^\^'"$current_setting_name"'|\[^{ \^\['"$current_section_name"'\]^! { \^\^'"$current_setting_name"'^ p } }' $1 | grep -o -P "(?<=^$current_setting_name=).*" fi ;; @@ -96,7 +96,7 @@ get_setting_value() { if [[ -z $current_section_name ]]; then echo $(grep -o -P "(?<=^$current_setting_name = \").*(?=\")" $1) else - sed -n '\^\['"$current_section_name"'\]^,\^\^'"$current_setting_name"'^{ \^\['"$current_section_name"'\]^! { \^\^'"$current_setting_name"'^ p } }' $1 | grep -o -P "(?<=^$current_setting_name = \").*(?=\")" + sed -n -E '\^\['"$current_section_name"'\]^,\^\^'"$current_setting_name"'|\[^{ \^\['"$current_section_name"'\]^! { \^\^'"$current_setting_name"'^ p } }' $1 | grep -o -P "(?<=^$current_setting_name = \").*(?=\")" fi ;; @@ -104,7 +104,7 @@ get_setting_value() { if [[ -z $current_section_name ]]; then echo $(grep -o -P "(?<=^$current_setting_name = ).*" $1) else - sed -n '\^\['"$current_section_name"'\]^,\^\^'"$current_setting_name"'^{ \^\['"$current_section_name"'\]^! { \^\^'"$current_setting_name"'^ p } }' $1 | grep -o -P "(?<=^$current_setting_name = ).*" + sed -n -E '\^\['"$current_section_name"'\]^,\^\^'"$current_setting_name"'|\[^{ \^\['"$current_section_name"'\]^! { \^\^'"$current_setting_name"'^ p } }' $1 | grep -o -P "(?<=^$current_setting_name = ).*" fi ;; diff --git a/functions/presets.sh b/functions/presets.sh index 5626137c..9b35cbaa 100644 --- a/functions/presets.sh +++ b/functions/presets.sh @@ -24,16 +24,18 @@ change_preset_dialog() { elif [[ "$system_value" == "false" ]]; then current_disabled_systems=("${current_disabled_systems[@]}" "$system_name") fi - current_preset_settings=("${current_preset_settings[@]}" "$system_value" "$system_name") + current_preset_settings=("${current_preset_settings[@]}" "$system_value" "$(make_name_pretty $system_name)" "$system_name") done < <(printf '%s\n' "$section_results") choice=$(zenity \ --list --width=1200 --height=720 \ --checklist \ --separator="," \ + --hide-column=3 --print-column=3 \ --text="Enable $pretty_preset_name:" \ --column "Enabled" \ --column "Emulator" \ + --column "internal_system_name" \ "${current_preset_settings[@]}") local rc=$? diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch index 78786102..0b1cfb79 160000 --- a/rd-submodules/retroarch +++ b/rd-submodules/retroarch @@ -1 +1 @@ -Subproject commit 78786102fc04cf104ef9bf2f0ebcacbdda357ae0 +Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409 diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules index 50314360..a2441b96 160000 --- a/rd-submodules/shared-modules +++ b/rd-submodules/shared-modules @@ -1 +1 @@ -Subproject commit 50314360ded6fa3b9f0b602513b1164b7a6636ed +Subproject commit a2441b964afefd8cd1cebcdf562c7878670daf42