Configurator BIOS check tool

This commit is contained in:
icenine451 2023-03-08 17:08:57 -05:00
parent aba4fe04f1
commit fb3a74427e
3 changed files with 59 additions and 9 deletions

View file

@ -5,14 +5,15 @@
source /app/libexec/functions.sh source /app/libexec/functions.sh
# Static variables # Static variables
rd_conf="/var/config/retrodeck/retrodeck.cfg" # RetroDECK config file path rd_conf="/var/config/retrodeck/retrodeck.cfg" # RetroDECK config file path
rd_conf_backup="/var/config/retrodeck/retrodeck.bak" # Backup of RetroDECK config file from update rd_conf_backup="/var/config/retrodeck/retrodeck.bak" # Backup of RetroDECK config file from update
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
rd_defaults="$emuconfigs/defaults/retrodeck.cfg" # A default RetroDECK config file rd_defaults="$emuconfigs/defaults/retrodeck.cfg" # A default RetroDECK config file
rd_update_patch="/var/config/retrodeck/rd_update.patch" # A static location for the temporary patch file used during retrodeck.cfg updates rd_update_patch="/var/config/retrodeck/rd_update.patch" # A static location for the temporary patch file used during retrodeck.cfg updates
lockfile="/var/config/retrodeck/.lock" # where the lockfile is located bios_checklist="/var/config/retrodeck/tools/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path lockfile="/var/config/retrodeck/.lock" # where the lockfile is located
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem) default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
# Config files for emulators with single config files # Config files for emulators with single config files

16
tools/bios_checklist.cfg Normal file
View file

@ -0,0 +1,16 @@
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

View file

@ -386,11 +386,40 @@ configurator_check_multifile_game_structure() {
configurator_troubleshooting_tools_dialog configurator_troubleshooting_tools_dialog
} }
configurator_check_bios_files() {
bios_checked_list=()
while IFS="^" read -r bios_file bios_hash bios_system bios_desc
do
bios_file_found="No"
bios_hash_matched="No"
if [[ -f "$bios_folder/$bios_file" ]]; then
bios_file_found="Yes"
if [[ $(md5sum "$bios_folder/$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
bios_hash_matched="Yes"
fi
fi
bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc")
done < $bios_checklist
zenity --list --title="RetroDECK Configurator Utility - Verify BIOS Files" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column "BIOS File Name" \
--column "System" \
--column "BIOS File Found" \
--column "BIOS Hash Match" \
--column "BIOS File Description" \
"${bios_checked_list[@]}"
configurator_troubleshooting_tools_dialog
}
configurator_troubleshooting_tools_dialog() { configurator_troubleshooting_tools_dialog() {
choice=$(zenity --list --title="RetroDECK Configurator Utility - Change Options" --cancel-label="Back" \ choice=$(zenity --list --title="RetroDECK Configurator Utility - Change Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \ --column="Choice" --column="Action" \
"Multi-file game structure check" "Verify the proper structure of multi-file or multi-disc games" ) "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" )
case $choice in case $choice in
@ -398,6 +427,10 @@ configurator_troubleshooting_tools_dialog() {
configurator_check_multifile_game_structure configurator_check_multifile_game_structure
;; ;;
"BIOS file check" )
configurator_check_bios_files
;;
"" ) # No selection made or Back button clicked "" ) # No selection made or Back button clicked
configurator_welcome_dialog configurator_welcome_dialog
;; ;;