Merge branch 'cooker-0.6.2b-icenine451' into cooker-0.7.0b-icenine451

This commit is contained in:
icenine451 2023-03-13 11:43:56 -04:00
commit 9ca9f037db
6 changed files with 182 additions and 102 deletions

View file

@ -11,5 +11,6 @@ mods_folder=/home/deck/retrodeck/mods
texture_packs_folder=/home/deck/retrodeck/texture_packs
sdcard=/run/media/mmcblk0p1
power_user=false
power_user_warning=true
desktop_mode_warning=true
network_features=false

View file

@ -164,6 +164,29 @@ validate_for_chd () {
fi
}
desktop_mode_warning() {
# This function is a generic warning for issues that happen when running in desktop mode.
# Running in desktop mode can be verified with the following command: if [[ ! $XDG_CURRENT_DESKTOP == "gamescope" ]]; then
# This function will check if desktop mode is currently being used and if the warning has not been disabled, and show it if needed.
if [[ ! $XDG_CURRENT_DESKTOP == "gamescope" ]]; then
if [[ $desktop_mode_warning == "true" ]]; then
choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Never show this again" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Desktop Mode Warning" \
--text="You appear to be running RetroDECK in the Steam Deck's Desktop mode!\n\nSome functions of RetroDECK may not work properly in Desktop mode, such as the Steam Deck's normal controls.\n\nRetroDECK is best enjoyed in Game mode!\n\nDo you still want to proceed?")
fi
fi
rc=$? # Capture return code, as "Yes" button has no text value
if [[ $rc == "1" ]]; then # If any button other than "Yes" was clicked
if [[ $choice == "No" ]]; then
exit 1
elif [[ $choice == "Never show this again" ]]; then
set_setting_value $rd_conf "desktop_mode_warning" "false" retrodeck # Store desktop mode warning variable for future checks
fi
fi
}
set_setting_value() {
# Function for editing settings
# USAGE: set_setting_value $setting_file "$setting_name" "$new_setting_value" $system $section_name(optional)

View file

@ -69,11 +69,25 @@
<releases>
<release version="0.6.2b" date="2023-03-08">
<release version="0.6.2b" date="2023-03-09">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.6.2b</url>
<description>
<ul>
<li></li>
<li>Implemented proper Primehack preconfiguration / purge stale configs</li>
<li>Added Xbox and Nintendo-layout controller profiles to Primehack</li>
<li>Stop resetting all configs after update (see post_update.sh)</li>
<li>Add CHD compression to CLI and Configurator</li>
<li>Add common BIOS file check tool to Configurator</li>
<li>Reworked CLI arguments</li>
<li>Updated shipped Duckstation config</li>
<li>Removed deprecated/disabled tool files</li>
<li>Made emulator resets more robust by purging config folders to clear legacy files</li>
<li>Add troubleshooting tool for checking structure of multi-file games in Configurator</li>
<li>Updated patching engine to accommodate "batch patches"</li>
<li>Implemented expanding retrodeck.cfg on update</li>
<li>Reworked Configurator menu flow</li>
<li>Set power_user variable so Configurator warning is only shown once</li>
<li>Implemented a basic framework for easter egg splash screens</li>
</ul>
</description>
</release>

View file

@ -140,11 +140,9 @@ else
fi
fi
# Check if running in Desktop mode and warn if true
# Check if running in Desktop mode and warn if true, unless desktop_mode_warning=false in retrodeck.cfg
if [[ $XDG_CURRENT_DESKTOP == "KDE" ]]; then
desktop_mode_warning
fi
desktop_mode_warning
# Normal Startup

View file

@ -1,16 +1,25 @@
scph5500.bin^8dd7d5296a650fac7319bce665a6a53c^PSX^PS1 JP BIOS
scph5501.bin^490f666e1afb15b7362b406ed1cea246^PSX^PS1 US BIOS
scph5502.bin^32736f17079d0b2b7024407c39bd3050^PSX^PS1 EU BIOS
ps2-0200a-20040614.bin^d333558cc14561c1fdc334c75d5f37b7^PS2^PS2 US BIOS
ps2-0200e-20040614.bin^dc752f160044f2ed5fc1f4964db2a095^PS2^PS2 EU BIOS
ps2-0200j-20040614.bin^0eee5d1c779aa50e94edd168b4ebf42e^PS2^PS2 JP BIOS
bios_CD_E.bin^e66fa1dc5820d254611fdcdba0662372^SegaCD^MegaCD EU BIOS
bios_CD_U.bin^854b9150240a198070150e4566ae1290^SegaCD^SegaCD US BIOS
bios_CD_J.bin^278a9397d192149e84e820ac621a8edd^SegaCD^MegaCD JP BIOS
sega_101.bin^85ec9ca47d8f6807718151cbcca8b964^Sega Saturn^Saturn JP BIOS
mpr-17933.bin^3240872c70984b6cbfda1586cab68dbe^Sega Saturn^Saturn US.mdEU BIOS
mpr-18811-mx.ic1^255113ba943c92a54facd25a10fd780c^Sega Saturn^The King of Fighters 95 ROM Cartridge - Required for this game
mpr-19367-mx.ic1^1cd19988d1d72a3e7caa0b73234c96b4^Sega Saturn^Ultraman: Hikari no Kyojin Densetsu ROM Cartridge - Required for this game
bios7.bin^df692a80a5b1bc90728bc3dfc76cd948^Nintendo DS^Used by MelonDS emulator
bios9.bin^a392174eb3e572fed6447e956bde4b25^Nintendo DS^Used by MelonDS emulator
firmware.bin^93276d8629990f50a90950ea083ab348^Nintendo DS^Used by MelonDS emulator
psxonpsp660.bin^^c53ca5908936d412331790f4426c6c33^PSX^PS1 BIOS
scph5500.bin^^8dd7d5296a650fac7319bce665a6a53c^PSX^PS1 JP BIOS
scph5501.bin^^490f666e1afb15b7362b406ed1cea246^PSX^PS1 US BIOS
scph5502.bin^^32736f17079d0b2b7024407c39bd3050^PSX^PS1 EU BIOS
ps1_rom.bin^^81bbe60ba7a3d1cea1d48c14cbcc647b^PSX^PS1 BIOS
ps2-0200a-20040614.bin^^d333558cc14561c1fdc334c75d5f37b7^PS2^PS2 US BIOS
ps2-0200e-20040614.bin^^dc752f160044f2ed5fc1f4964db2a095^PS2^PS2 EU BIOS
ps2-0200j-20040614.bin^^0eee5d1c779aa50e94edd168b4ebf42e^PS2^PS2 JP BIOS
bios_CD_E.bin^^e66fa1dc5820d254611fdcdba0662372^SegaCD^MegaCD EU BIOS
bios_CD_U.bin^^854b9150240a198070150e4566ae1290^SegaCD^SegaCD US BIOS
bios_CD_J.bin^^278a9397d192149e84e820ac621a8edd^SegaCD^MegaCD JP BIOS
sega_101.bin^^85ec9ca47d8f6807718151cbcca8b964^Sega Saturn^Saturn JP BIOS
mpr-17933.bin^^3240872c70984b6cbfda1586cab68dbe^Sega Saturn^Saturn US.mdEU BIOS
mpr-18811-mx.ic1^^255113ba943c92a54facd25a10fd780c^Sega Saturn^The King of Fighters 95 ROM Cartridge - Required for this game
mpr-19367-mx.ic1^^1cd19988d1d72a3e7caa0b73234c96b4^Sega Saturn^Ultraman: Hikari no Kyojin Densetsu ROM Cartridge - Required for this game
bios7.bin^^df692a80a5b1bc90728bc3dfc76cd948^Nintendo DS^Used by MelonDS emulator
bios9.bin^^a392174eb3e572fed6447e956bde4b25^Nintendo DS^Used by MelonDS emulator
firmware.bin^^93276d8629990f50a90950ea083ab348^Nintendo DS^Used by MelonDS emulator
mcpx_1.0.bin^^d49c52a4102f6df7bcf8d0617ac475ed^XBOX^Used by XEMU emulator
Complex.bin^^Unknown^XBOX^Used by XEMU emulator
Complex_4627v1.03.bin^^Unknown^XBOX^Used by XEMU emulator
Complex_4627.bin^^Unknown^XBOX^Used by XEMU emulator
eeprom.bin^^Unknown^XBOX^Used by XEMU emulator
prod.keys^switch/keys/^Unknown^Switch^A required file for Switch emulation in Yuzu
title.keys^switch/keys/^Unknown^Switch^A required file for Switch emulation in Yuzu

View file

@ -213,95 +213,95 @@ configurator_retroachivement_dialog() {
}
configurator_power_user_warning_dialog() {
zenity --title "RetroDECK Configurator Utility - Power User Options" --question --no-wrap --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--text="Making manual changes to an emulators configuration may create serious issues,\nand some settings may be overwitten during RetroDECK updates.\n\nSome standalone emulator functions may not work properly outside of Desktop mode.\n\nPlease continue only if you know what you're doing.\n\nDo you want to continue?\n\nClicking Yes will set you as a Power User and you will not see this dialog again."
if [ $? == 0 ]; then # OK button clicked
power_user="true"
set_setting_value $rd_conf "power_user" "$power_user" retrodeck # Store power user variable for future checks
if [[ $power_user_warning == "true" ]]; then
choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Never show this again" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Desktop Mode Warning" \
--text="Making manual changes to an emulators configuration may create serious issues,\nand some settings may be overwitten during RetroDECK updates.\n\nSome standalone emulator functions may not work properly outside of Desktop mode.\n\nPlease continue only if you know what you're doing.\n\nDo you want to continue?")
fi
rc=$? # Capture return code, as "Yes" button has no text value
if [[ $rc == "0" ]]; then # If user clicked "Yes"
configurator_power_user_changes_dialog
else # If any button other than "Yes" was clicked
if [[ $choice == "No" ]]; then
configurator_welcome_dialog
elif [[ $choice == "Never show this again" ]]; then
set_setting_value $rd_conf "power_user_warning" "false" retrodeck # Store desktop mode warning variable for future checks
configurator_power_user_changes_dialog
fi
fi
}
configurator_power_user_changes_dialog() {
if [[ $power_user == "true" ]]; then
emulator=$(zenity --list \
--title "RetroDECK Configurator Utility - Power User Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator do you want to configure?" \
--hide-header \
--column=emulator \
"RetroArch" \
"Citra" \
"Dolphin" \
"Duckstation" \
"MelonDS" \
"PCSX2" \
"PPSSPP" \
"Primehack" \
"RPCS3" \
"XEMU" \
"Yuzu")
emulator=$(zenity --list \
--title "RetroDECK Configurator Utility - Power User Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator do you want to configure?" \
--hide-header \
--column=emulator \
"RetroArch" \
"Citra" \
"Dolphin" \
"Duckstation" \
"MelonDS" \
"PCSX2" \
"PPSSPP" \
"Primehack" \
"RPCS3" \
"XEMU" \
"Yuzu")
case $emulator in
case $emulator in
"RetroArch" )
retroarch
;;
"RetroArch" )
retroarch
;;
"Citra" )
citra-qt
;;
"Citra" )
citra-qt
;;
"Dolphin" )
dolphin-emu
;;
"Dolphin" )
dolphin-emu
;;
"Duckstation" )
duckstation-qt
;;
"Duckstation" )
duckstation-qt
;;
"MelonDS" )
melonDS
;;
"MelonDS" )
melonDS
;;
"PCSX2" )
pcsx2-qt
;;
"PCSX2" )
pcsx2-qt
;;
"PPSSPP" )
PPSSPPSDL
;;
"PPSSPP" )
PPSSPPSDL
;;
"Primehack" )
primehack-wrapper
;;
"Primehack" )
primehack-wrapper
;;
"RPCS3" )
rpcs3
;;
"RPCS3" )
rpcs3
;;
"XEMU" )
xemu
;;
"XEMU" )
xemu
;;
"Yuzu" )
yuzu
;;
"Yuzu" )
yuzu
;;
"" ) # No selection made or Back button clicked
configurator_welcome_dialog
;;
"" ) # No selection made or Back button clicked
configurator_welcome_dialog
;;
esac
else
configurator_power_user_warning_dialog
if [[ $power_user == "true" ]]; then
configurator_power_user_changes_dialog
else
configurator_welcome_dialog
fi
fi
esac
}
configurator_retroarch_rewind_dialog() {
@ -402,16 +402,46 @@ configurator_check_multifile_game_structure() {
configurator_troubleshooting_tools_dialog
}
configurator_check_bios_files() {
configurator_check_bios_files_basic() {
configurator_generic_dialog "This check will look for BIOS files that RetroDECK has identified as working.\n\nThere may be additional BIOS files that will function with the emulators that are not checked.\n\nSome more advanced emulators such as Yuzu will have additional methods for verifiying the BIOS files are in working order."
bios_checked_list=()
while IFS="^" read -r bios_file bios_hash bios_system bios_desc
while IFS="^" read -r bios_file bios_subdir bios_hash bios_system bios_desc
do
bios_file_found="No"
bios_hash_matched="No"
if [[ -f "$bios_folder/$bios_file" ]]; then
if [[ -f "$bios_dir/$bios_subdir$bios_file" ]]; then
bios_file_found="Yes"
if [[ $(md5sum "$bios_folder/$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
if [[ $bios_hash == "Unknown" ]]; then
bios_hash_matched="Unknown"
elif [[ $(md5sum "$bios_dir/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
bios_hash_matched="Yes"
fi
fi
if [[ $bios_file_found == "Yes" && ($bios_hash_matched == "Yes" || $bios_hash_matched == "Unknown") && ! " ${bios_checked_list[*]} " =~ " ${bios_system} " ]]; then
bios_checked_list=("${bios_checked_list[@]}" "$bios_system" )
fi
done < $bios_checklist
systems_with_bios=${bios_checked_list[@]}
configurator_generic_dialog "The following systems have been found to have at least one valid BIOS file.\n\n$systems_with_bios\n\nFor more information on the BIOS files found please use the Advanced check tool."
configurator_troubleshooting_tools_dialog
}
configurator_check_bios_files_advanced() {
configurator_generic_dialog "This check will look for BIOS files that RetroDECK has identified as working.\n\nThere may be additional BIOS files that will function with the emulators that are not checked.\n\nSome more advanced emulators such as Yuzu will have additional methods for verifiying the BIOS files are in working order."
bios_checked_list=()
while IFS="^" read -r bios_file bios_subdir bios_hash bios_system bios_desc
do
bios_file_found="No"
bios_hash_matched="No"
if [[ -f "$bios_dir/$bios_subdir$bios_file" ]]; then
bios_file_found="Yes"
if [[ $bios_hash == "Unknown" ]]; then
bios_hash_matched="Unknown"
elif [[ $(md5sum "$bios_dir/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
bios_hash_matched="Yes"
fi
fi
@ -435,7 +465,8 @@ configurator_troubleshooting_tools_dialog() {
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Multi-file game structure check" "Verify the proper structure of multi-file or multi-disc games" \
"BIOS file check" "Verify the existence and file integrity of common BIOS files" )
"Basic BIOS file check" "Show a list of systems that BIOS files are found for" \
"Advanced BIOS file check" "Show advanced information about common BIOS files" )
case $choice in
@ -443,8 +474,12 @@ configurator_troubleshooting_tools_dialog() {
configurator_check_multifile_game_structure
;;
"BIOS file check" )
configurator_check_bios_files
"Basic BIOS file check" )
configurator_check_bios_files_basic
;;
"Advanced BIOS file check" )
configurator_check_bios_files_advanced
;;
"" ) # No selection made or Back button clicked
@ -634,7 +669,7 @@ configurator_welcome_dialog() {
;;
"Change Standalone Emulator Options" )
configurator_power_user_changes_dialog
configurator_power_user_warning_dialog
;;
"Compress Games" )