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