Merge pull request #398 from icenine451/cooker-0.7.0b-icenine451

Cooker 0.7.0b icenine451
This commit is contained in:
icenine451 2023-05-18 12:27:51 -04:00 committed by GitHub
commit 60816826ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 161 additions and 61 deletions

View file

@ -474,8 +474,8 @@ Updater\update_on_close=false
Updater\update_on_close\default=true
calloutFlags=1
calloutFlags\default=false
confirmClose=true
confirmClose\default=true
confirmClose=false
confirmClose\default=false
displayTitleBars=true
displayTitleBars\default=true
enable_discord_presence=true

View file

@ -0,0 +1,9 @@
config_file_format^citra
target_file^$citraconf
defaults_file^$emuconfigs/citra/qt-config.ini
change^ask_to_exit^confirmClose^true^UI
change^ask_to_exit^confirmClose\default^true^UI
change^nintendo_button_layout^profiles\1\button_a^button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls
change^nintendo_button_layout^profiles\1\button_b^button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls
change^nintendo_button_layout^profiles\1\button_x^button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls
change^nintendo_button_layout^profiles\1\button_y^button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls

View file

@ -0,0 +1,4 @@
config_file_format^dolphin
target_file^$dolphinconf
defaults_file^$emuconfigs/dolphin/Dolphin.ini
change^ask_to_exit^ConfirmStop^True^Interface

View file

@ -7,3 +7,4 @@ change^cheevos^Token^$cheevos_token^Cheevos
change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Cheevos
change^cheevos_hardcore^ChallengeMode^true^Cheevos
change^savestate_auto_save^SaveStateOnExit^true^Main
change^ask_to_exit^ConfirmPowerOff^true^Main

View file

@ -7,3 +7,4 @@ change^cheevos^Token^$cheevos_token^Achievements
change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Achievements
change^cheevos_hardcore^ChallengeMode^true^Achievements
change^savestate_auto_save^SaveStateOnShutdown^true^EmuCore
change^ask_to_exit^ConfirmShutdown^true^UI

View file

@ -0,0 +1,4 @@
config_file_format^ppsspp
target_file^$ppssppconf
defaults_file^$emuconfigs/PCSX2/PCSX2.ini
change^savestate_auto_load^AutoLoadSaveState^2^General

View file

@ -0,0 +1,4 @@
config_file_format^primehack
target_file^$primehackconf
defaults_file^$emuconfigs/primehack/Dolphin.ini
change^ask_to_exit^ConfirmStop^True^Interface

View file

@ -0,0 +1,9 @@
config_file_format^yuzu
target_file^$yuzuconf
defaults_file^$emuconfigs/yuzu/qt-config.ini
change^ask_to_exit^confirmClose^true^UI
change^ask_to_exit^confirmClose\default^true^UI
change^nintendo_button_layout^player_0_button_a^pad:0,button:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls
change^nintendo_button_layout^player_0_button_b^pad:0,button:1,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls
change^nintendo_button_layout^player_0_button_x^pad:0,button:2,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls
change^nintendo_button_layout^player_0_button_y^pad:0,button:3,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls

View file

@ -1,11 +1,16 @@
duckstation^Duckstation (Sony Playstation Standalone)
citra^Citra (Nintendo 3DS Standalone Emulator)
dolphin^Dolphin (GameCube / Wii Standalone Emulator)
duckstation^Duckstation (Sony Playstation Standalone Emulator)
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)
pcsx2^PCSX2 (Sony Playstation 2 Standalone Emulator)
ppsspp^PPSSPP (Sony PSP Standalone Emulator)
primehack^Primehack (Metroid Prime Standalone Emulator)
psx_ra^Sony Playstation (RetroArch Core)
retroarch^RetroArch (Multi-emulator Frontend)
snes^Nintendo Super Nintendo
yuzu^Yuzu (Nintendo Switch Standalone Emulator)

View file

@ -55,16 +55,27 @@ psx_ra=false
snes=false
[nintendo_button_layout]
citra=false
gb=false
gba=false
gbc=false
n64=false
snes=false
yuzu=false
[savestate_auto_load]
ppsspp=true
retroarch=true
[savestate_auto_save]
duckstation=true
pcsx2=true
retroarch=true
[ask_to_exit]
citra=false
dolphin=false
duckstation=false
pcsx2=false
primehack=false
yuzu=false

View file

@ -51,7 +51,7 @@ DSPThread = True
Backend = Pulse
EnableJIT = False
[Interface]
ConfirmStop = True
ConfirmStop = False
CursorVisibility = 0
OnScreenDisplayMessages = True
PauseOnFocusLost = True

View file

@ -11,7 +11,7 @@ StartFullscreen = false
PauseOnFocusLoss = true
PauseOnMenu = true
SaveStateOnExit = false
ConfirmPowerOff = true
ConfirmPowerOff = false
LoadDevicesFromSaveStates = true
ApplyGameSettings = true
AutoLoadCheats = true

View file

@ -12,7 +12,7 @@ Language = en_US
ForceLagSync2 = False
DiscordPresence = True
UISound = False
AutoLoadSaveState = 2
AutoLoadSaveState = 0
EnableCheats = False
CwCheatRefreshRate = 77
CwCheatScrollPosition = 0.000000

View file

@ -48,7 +48,7 @@ DisableScreenSaver = True
KeepWindowOnTop = False
Fullscreen = True
[Interface]
ConfirmStop = True
ConfirmStop = False
LanguageCode =
OnScreenDisplayMessages = True
PauseOnFocusLost = False

View file

@ -52,7 +52,6 @@ pretty_system_names_reference_list="$emuconfigs/defaults/retrodeck/reference_lis
citraconf="/var/config/citra-emu/qt-config.ini"
duckstationconf="/var/config/duckstation/settings.ini"
melondsconf="/var/config/melonDS/melonDS.ini"
ppssppconf="/var/config/ppsspp/PSP/SYSTEM/ppsspp.ini"
ryujinxconf="/var/config/Ryujinx/Config.json"
xemuconf="/var/config/xemu/xemu.toml"
yuzuconf="/var/config/yuzu/qt-config.ini"
@ -86,6 +85,11 @@ pcsx2gsconf="/var/config/PCSX2/inis/GS.ini" # This file should be deprecated sin
pcsx2uiconf="/var/config/PCSX2/inis/PCSX2_ui.ini" # This file should be deprecated since moving to PCSX2-QT
pcsx2vmconf="/var/config/PCSX2/inis/PCSX2_vm.ini" # This file should be deprecated since moving to PCSX2-QT
# PPSSPPDL config files
ppssppconf="/var/config/ppsspp/PSP/SYSTEM/ppsspp.ini"
ppssppcontrolsconf="/var/config/ppsspp/PSP/SYSTEM/controls.ini"
# Primehack config files
primehackconf="/var/config/primehack/Dolphin.ini"

View file

@ -161,10 +161,10 @@ multi_user_return_to_single_user() {
mv -f "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg" "/var/config/retroarch/retroarch-core-options.cfg"
# XEMU one-offs, because it stores its config in /var/data, not /var/config like everything else
unlink "/var/config/xemu"
unlink "/var/data/xemu"
unlink "/var/data/xemu/xemu"
mkdir -p "/var/config/xemu"
mv -f "$multi_user_data_folder/$single_user/config/xemu"/{.[!.],}* "/var/config/xemu"
dir_prep "/var/config/xemu" "/var/data/xemu"
dir_prep "/var/config/xemu" "/var/data/xemu/xemu"
mkdir -p "$saves_folder"
mkdir -p "$states_folder"
mv -f "$multi_user_data_folder/$single_user/saves"/{.[!.],}* "$saves_folder"

View file

@ -2,7 +2,7 @@
set_setting_value() {
# Function for editing settings
# USAGE: set_setting_value $setting_file "$setting_name" "$new_setting_value" $system $section_name(optional)
# USAGE: set_setting_value "$setting_file" "$setting_name" "$new_setting_value" "$system" "$section_name(optional)"
local setting_name_to_change=$(sed -e 's^\\^\\\\^g;s^`^\\`^g' <<< "$2")
local setting_value_to_change=$(sed -e 's^\\^\\\\^g;s^`^\\`^g' <<< "$3")
@ -267,7 +267,9 @@ generate_single_patch() {
local patch_file="$3"
local system="$4"
rm "$patch_file" # Remove old patch file (maybe change this to create a backup instead?)
if [[ -f "$patch_file" ]]; then
rm "$patch_file" # Remove old patch file (maybe change this to create a backup instead?)
fi
while read -r current_setting_line; # Look for changes from the original file to the modified one
do

View file

@ -82,7 +82,9 @@ post_update() {
# - Move Dolphin and Primehack save folder names
# - Move PPSSPP saves/states to appropriate folders
# - Set ESDE user themes folder directly
# - Disable auto-save/load in RA / PCSX2 / Duckstation for proper preset functionality
# - Disable auto-save/load in existing RA / PCSX2 / Duckstation installs for proper preset functionality
# - Disable ask-on-exit in existing Citra / Dolphin / Duckstation / Primehack installs for proper preset functionality
# - Disable auto-load-state in existing PPSSPP installs for proper preset functionality
# - Init Cemu as it is a new emulator
update_rd_conf # Expand retrodeck.cfg to latest template
@ -113,6 +115,12 @@ post_update() {
dir_prep "$mods_folder/Citra" "/var/data/citra-emu/load/mods"
dir_prep "$texture_packs_folder/Citra" "/var/data/citra-emu/load/textures"
dir_prep "$mods_folder/Yuzu" "/var/data/yuzu/load"
dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks"
dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES"
dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures"
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64Plus/cache"
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64Plus/hires_texture"
dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures"
dir_prep "$rdhome/gamelists" "/var/config/emulationstation/.emulationstation/gamelists"
@ -194,6 +202,14 @@ post_update() {
set_setting_value "$duckstationconf" "SaveStateOnExit" "false" "duckstation" "Main"
set_setting_value "$duckstationconf" "Enabled" "false" "duckstation" "Cheevos"
set_setting_value "$citraconf" "confirmClose" "false" "citra" "UI"
set_setting_value "$citraconf" "confirmClose\default" "false" "citra" "UI"
set_setting_value "$dolphinconf" "ConfirmStop" "False" "dolphin" "Interface"
set_setting_value "$duckstationconf" "ConfirmPowerOff" "false" "duckstation" "Main"
set_setting_value "$primehackconf" "ConfirmStop" "False" "primehack" "Interface"
set_setting_value "$ppssppconf" "AutoLoadSaveState" "0" "ppsspp" "General"
prepare_emulator "reset" "cemu"
fi

View file

@ -59,12 +59,12 @@ prepare_emulator() {
if [[ "$emulator" =~ ^(retroarch|RetroArch|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
if [[ $multi_user_mode == "true" ]]; then
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
rm -rf "$multi_user_data_folder/$SteamAppUser/config/retroarch"
mkdir -p "$multi_user_data_folder/$SteamAppUser/config/retroarch"
cp -fv $emuconfigs/retroarch/retroarch.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
cp -fv $emuconfigs/retroarch/retroarch-core-options.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
else
else # Single-user actions
rm -rf /var/config/retroarch
mkdir -p /var/config/retroarch
dir_prep "$bios_folder" "/var/config/retroarch/system"
@ -84,6 +84,7 @@ prepare_emulator() {
set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch"
set_setting_value "$raconf" "log_dir" "$logs_folder" "retroarch"
fi
# Shared actions
# PPSSPP
echo "--------------------------------"
@ -105,11 +106,18 @@ prepare_emulator() {
echo "-----------------------------------------------------------"
cp -rf "/app/retrodeck/extras/MSX/Databases" "$bios_folder/Databases"
cp -rf "/app/retrodeck/extras/MSX/Machines" "$bios_folder/Machines"
dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks"
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64Plus/cache"
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64Plus/hires_texture"
fi
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
dir_prep "$bios_folder" "/var/config/retroarch/system"
dir_prep "$logs_folder/retroarch" "/var/config/retroarch/logs"
dir_prep "$rdhome/shaders/retroarch" "/var/config/retroarch/shaders"
dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks"
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64Plus/cache"
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64Plus/hires_texture"
set_setting_value "$raconf" "savefile_directory" "$saves_folder" "retroarch"
set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch"
set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch"
@ -213,7 +221,8 @@ prepare_emulator() {
set_setting_value "$dolphinconf" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
set_setting_value "$dolphinconf" "ISOPath1" "$roms_folder/gc" "dolphin" "General"
set_setting_value "$dolphinconf" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General"
fi # Shared actions
fi
# Shared actions
dir_prep "$saves_folder/gc/dolphin/EU" "/var/data/dolphin-emu/GC/EUR" # TODO: Multi-user one-off
dir_prep "$saves_folder/gc/dolphin/US" "/var/data/dolphin-emu/GC/USA" # TODO: Multi-user one-off
dir_prep "$saves_folder/gc/dolphin/JP" "/var/data/dolphin-emu/GC/JAP" # TODO: Multi-user one-off
@ -265,8 +274,9 @@ prepare_emulator() {
set_setting_value "$duckstationconf" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards"
set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList"
fi
dir_prep "$saves_folder/psx/duckstation/memcards" "/var/config/duckstation/memcards" # TODO: This shouldn't be needed anymore, verify
# Shared actions
dir_prep "$states_folder/psx/duckstation" "/var/config/duckstation/savestates" # This is hard-coded in Duckstation, always needed
dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures"
fi
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS"
@ -275,6 +285,7 @@ prepare_emulator() {
set_setting_value "$duckstationconf" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards"
set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList"
dir_prep "$states_folder/psx/duckstation" "/var/config/duckstation/savestates" # This is hard-coded in Duckstation, always needed
dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures"
fi
fi
@ -346,6 +357,7 @@ prepare_emulator() {
# Shared actions
mkdir -pv "$saves_folder/ps2/pcsx2/memcards"
mkdir -pv "$states_folder/ps2/pcsx2"
dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures"
fi
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
set_setting_value "$pcsx2conf" "Bios" "$bios_folder" "pcsx2" "Folders"
@ -353,6 +365,7 @@ prepare_emulator() {
set_setting_value "$pcsx2conf" "SaveStates" "$states_folder/ps2/pcsx2" "pcsx2" "Folders"
set_setting_value "$pcsx2conf" "MemoryCards" "$saves_folder/ps2/pcsx2/memcards" "pcsx2" "Folders"
set_setting_value "$pcsx2conf" "RecursivePaths" "$roms_folder/ps2" "pcsx2" "GameList"
dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures"
fi
fi
@ -384,11 +397,13 @@ prepare_emulator() {
# Shared actions
dir_prep "$saves_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/SAVEDATA"
dir_prep "$states_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/PPSSPP_STATE"
dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES"
fi
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
set_setting_value "$ppssppconf" "CurrentDirectory" "$roms_folder/psp" "ppsspp" "General"
dir_prep "$saves_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/SAVEDATA"
dir_prep "$states_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/PPSSPP_STATE"
dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES"
fi
fi
@ -515,11 +530,11 @@ prepare_emulator() {
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "eeprom_path" "$saves_folder/xbox/xemu/xbox-eeprom.bin" "xemu" "sys.files"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu/xemu"
else # Single-user actions
rm -rf /var/config/xemu
rm -rf /var/data/xemu
dir_prep "/var/config/xemu" "/var/data/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look
dir_prep "/var/config/xemu" "/var/data/xemu/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look
cp -fv $emuconfigs/xemu/xemu.toml "$xemuconf"
set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General"
set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files"

@ -1 +1 @@
Subproject commit 78786102fc04cf104ef9bf2f0ebcacbdda357ae0
Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409

@ -1 +1 @@
Subproject commit 50314360ded6fa3b9f0b602513b1164b7a6636ed
Subproject commit a2441b964afefd8cd1cebcdf562c7878670daf42

View file

@ -47,9 +47,12 @@ https://retrodeck.net
cli_compress_all_games "$2"
;;
--configurator*)
launched_from_cli="true"
sh /app/tools/configurator.sh
exit
if [[ $(configurator_generic_question_dialog "RetroDECK Configurator" "Would you like to launch RetroDECK after closing the Configurator?") == "false" ]]; then
exit
else
shift
fi
;;
--reset-emulator*)
echo "You are about to reset one or more RetroDECK emulators."
@ -103,22 +106,32 @@ if [ -f "$lockfile" ]; then
if [ "$hard_version" != "$version" ]; then
echo "Config file's version is $version but the actual version is $hard_version"
if grep -qF "cooker" <<< $hard_version; then # If newly-installed version is a "cooker" build
configurator_generic_dialog "RetroDECK Cooker Warning" "RUNNING COOKER VERSIONS OF RETRODECK CAN BE EXTREMELY DANGEROUS AND ALL OF YOUR RETRODECK DATA\n(INCLUDING BIOS FILES, BORDERS, DOWNLOADED MEDIA, GAMELISTS, MODS, ROMS, SAVES, STATES, SCREENSHOTS, TEXTURE PACKS AND THEMES)\nARE AT RISK BY CONTINUING!"
cooker_base_version=$(echo $hard_version | cut -d'-' -f2)
choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Fresh Install" \
choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Full Wipe and Fresh Install" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Cooker Upgrade" \
--text="You appear to be upgrading to a \"cooker\" build of RetroDECK.\n\nWould you like to perform the standard post-update process, skip the post-update process or remove ALL existing RetroDECK data to start from a fresh install?\n\nPerforming the normal post-update process multiple times may lead to unexpected results.")
--text="You appear to be upgrading to a \"cooker\" build of RetroDECK.\n\nWould you like to perform the standard post-update process, skip the post-update process or remove ALL existing RetroDECK folders and data (including ROMs and saves) to start from a fresh install?\n\nPerforming the normal post-update process multiple times may lead to unexpected results.")
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 == "Don't Upgrade" ]]; then # If user wants to bypass the post_update.sh process this time.
echo "Skipping upgrade process for cooker build, updating stored version in retrodeck.cfg"
set_setting_value $rd_conf "version" "$hard_version" retrodeck # Set version of currently running RetroDECK to updated retrodeck.cfg
elif [[ $choice == "Fresh Install" ]]; then # Remove all RetroDECK data and start a fresh install
echo "Removing RetroDECK data and starting fresh"
rm -rf /var
rm -rf "$HOME/retrodeck"
source /app/libexec/global.sh
finit
elif [[ $choice == "Full Wipe and Fresh Install" ]]; then # Remove all RetroDECK data and start a fresh install
if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "This is going to remove all of the data in all locations used by RetroDECK!\n\n(INCLUDING BIOS FILES, BORDERS, DOWNLOADED MEDIA, GAMELISTS, MODS, ROMS, SAVES, STATES, SCREENSHOTS, TEXTURE PACKS AND THEMES)\n\nAre you sure you want to contine?") == "true" ]]; then
if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "Are you super sure?\n\nThere is no going back from this process, everything is gonzo.\nDust in the wind.\n\nYesterdays omelette.") == "true" ]]; then
if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "But are you super DUPER sure? We REAAAALLLLLYY want to make sure you know what is happening here.\n\nThe ~/retrodeck and ~/.var/app/net.retrodeck.retrodeck folders and ALL of their contents\nare about to be PERMANENTLY removed.\n\nStill sure you want to proceed?") == "true" ]]; then
configurator_generic_dialog "RetroDECK Cooker Reset" "Ok, if you're that sure, here we go!"
if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "(Are you actually being serious here? Because we are...\n\nNo backsies.)") == "true" ]]; then
echo "Removing RetroDECK data and starting fresh"
rm -rf /var
rm -rf "$HOME/retrodeck"
source /app/libexec/global.sh
finit
fi
fi
fi
fi
fi
else
echo "Performing normal upgrade process for version" $cooker_base_version

View file

@ -11,8 +11,10 @@ source /app/libexec/global.sh
# Welcome
# - Presets & Settings
# - Global: Presets & Settings
# - Enable/Disable widescreen
# - Log in to RetroAchievements
# - Enable/Disable Widescreen
# - Enable/Disable Ask-To-Exit
# - RetroAchievements Login
# - RetroAchievements Logout
# - Enable/Disable RetroAchievements Hardcore Mode
# - RetroArch: Presets & Settings
# - Enable/Disable borders
@ -53,7 +55,6 @@ source /app/libexec/global.sh
# - Compress Multiple Games - All Formats
# - Compress All Games
# - Install: RetroDECK Controller Profile
# - Install: RetroDECK Starter Pack
# - Install: PS3 firmware
# - RetroDECK: Troubleshooting
# - Backup: RetroDECK Userdata
@ -85,6 +86,8 @@ source /app/libexec/global.sh
# - Change Update channel
# - Change Update check setting
# - Browse the wiki
# - USB Import tool
# - Install: RetroDECK Starter Pack
# DIALOG TREE FUNCTIONS
@ -177,8 +180,9 @@ configurator_global_presets_and_settings_dialog() {
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Enable/Disable Widescreen" "Enable or disable widescreen in supported systems" \
"Enable/Disable Ask-to-Exit" "Enable or disable emulators confirming when quitting in supported systems" \
"RetroAchievements Login" "Log into the RetroAchievements service in supported systems" \
"RetroAchievements Logout" "Disable RetroAchievements service in supported systems" \
"RetroAchievements Logout" "Disable RetroAchievements service in ALL supported systems" \
"RetroAchievements Hardcore Mode" "Enable RetroAchievements hardcore mode (no cheats, rewind, save states etc.) in supported emulators" \
"Nintendo Button Layout" "Enable or disable Nintendo button layout (swapped A/B and X/Y) in supported systems" )
@ -189,6 +193,11 @@ configurator_global_presets_and_settings_dialog() {
configurator_global_presets_and_settings_dialog
;;
"Enable/Disable Ask-to-Exit" )
change_preset_dialog "ask_to_exit"
configurator_global_presets_and_settings_dialog
;;
"RetroAchievements Login" )
local cheevos_creds=$(get_cheevos_token_dialog)
if [[ ! "$cheevos_creds" == "failed" ]]; then
@ -202,7 +211,12 @@ configurator_global_presets_and_settings_dialog() {
;;
"RetroAchievements Logout" ) # This is a workaround to allow disabling cheevos without having to enter login credentials
change_preset_dialog "cheevos"
local cheevos_emulators=$(sed -n '/\[cheevos\]/, /\[/{ /\[cheevos\]/! { /\[/! p } }' $rd_conf | sed '/^$/d')
for emulator in $cheevos_emulators; do
set_setting_value "$rdconf" "$emulator" "false" "retrodeck" "cheevos"
build_preset_config "$emulator" "cheevos"
done
configurator_generic_dialog "RetroDECK Configurator Utility - RetroAchievements" "RetroAchievements has been disabled in all supported systems."
configurator_global_presets_and_settings_dialog
;;
@ -484,7 +498,6 @@ configurator_retrodeck_tools_dialog() {
"RetroDECK: Move Tool" "Move RetroDECK folders between internal/SD card or to a custom location" \
"RetroDECK: Compression Tool" "Compress games for systems that support it" \
"Install: RetroDECK Controller Profile" "Install the optional custom RetroDECK controller profile" \
"Install: RetroDECK Starter Pack" "Install the optional RetroDECK starter pack" \
"Install: PS3 Firmware" "Download and install PS3 firmware for use with the RPCS3 emulator" )
case $choice in
@ -507,13 +520,6 @@ configurator_retrodeck_tools_dialog() {
configurator_retrodeck_tools_dialog
;;
"Install: RetroDECK Starter Pack" )
if [[ $(configurator_generic_question_dialog "Install: RetroDECK Starter Pack" "The RetroDECK creators have put together a collection of classic retro games you might enjoy!\n\nWould you like to have them automatically added to your library?") == "true" ]]; then
install_retrodeck_starterpack
fi
configurator_retrodeck_tools_dialog
;;
"Install: PS3 Firmware" )
if [[ $(check_network_connectivity) == "true" ]]; then
configurator_generic_dialog "RetroDECK Configurator - Install: PS3 firmware" "This tool will download firmware required by RPCS3 to emulate PS3 games.\n\nThe process will take several minutes, and the emulator will launch to finish the installation.\nPlease close RPCS3 manually once the installation is complete."
@ -1072,7 +1078,8 @@ configurator_developer_dialog() {
"Change Update Channel" "Change between normal and cooker builds" \
"Change Update Check Setting" "Enable or disable online checks for new versions of RetroDECK" \
"Browse the Wiki" "Browse the RetroDECK wiki online" \
"USB Import" "Prepare a USB device for ROMs or import an existing collection" )
"USB Import" "Prepare a USB device for ROMs or import an existing collection" \
"Install RetroDECK Starter Pack" "Install the optional RetroDECK starter pack" )
case $choice in
@ -1096,6 +1103,13 @@ configurator_developer_dialog() {
configurator_usb_import_dialog
;;
"Install RetroDECK Starter Pack" )
if [[ $(configurator_generic_question_dialog "Install: RetroDECK Starter Pack" "The RetroDECK creators have put together a collection of classic retro games you might enjoy!\n\nWould you like to have them automatically added to your library?") == "true" ]]; then
install_retrodeck_starterpack
fi
configurator_developer_dialog
;;
"" ) # No selection made or Back button clicked
configurator_welcome_dialog
;;
@ -1275,18 +1289,6 @@ configurator_usb_import_dialog() {
}
# Functions to run at exit, without keeping Configurator running in background
launch_retrodeck_after_configurator_close() {
if [[ $(check_desktop_mode) == "true" && "$launched_from_cli" == "true" ]]; then
if [[ $(configurator_generic_question_dialog "RetroDECK Configurator" "Would you like to launch RetroDECK after closing the Configurator?") == "true" ]]; then
start_retrodeck
fi
fi
}
trap 'launch_retrodeck_after_configurator_close' EXIT
# START THE CONFIGURATOR
configurator_welcome_dialog