Merge remote-tracking branch 'upstream/cooker-0.8.0b' into cooker-0.8.0b-icenine451

This commit is contained in:
icenine451 2024-02-27 09:09:23 -05:00
commit d1018c03d8
24 changed files with 678 additions and 363 deletions

View file

@ -1,53 +0,0 @@
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<system name="default">
<input>
<port type="P1_JOYSTICK_UP">
<newseq type="standard">
JOYCODE_1_HAT1UP
</newseq>
</port>
<port type="P1_SELECT">
<newseq type="standard">
JOYCODE_1_SELECT
</newseq>
</port>
<port type="UI_MENU">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_M
</newseq>
</port>
<port type="UI_PAUSE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_P
</newseq>
</port>
<port type="UI_REWIND_SINGLE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_MINUSPAD
</newseq>
</port>
<port type="UI_SAVE_STATE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_S
</newseq>
</port>
<port type="UI_LOAD_STATE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_A
</newseq>
</port>
<port type="UI_FAST_FORWARD">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_PLUSPAD
</newseq>
</port>
<port type="UI_SNAPSHOT">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_X
</newseq>
</port>
</input>
</system>
</mameconfig>

View file

@ -0,0 +1,263 @@
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<system name="default">
<input>
<port type="P1_JOYSTICK_UP">
<newseq type="standard">
JOYCODE_1_HAT1UP
</newseq>
</port>
<port type="P1_SELECT">
<newseq type="standard">
JOYCODE_1_SELECT
</newseq>
</port>
<port type="MEMORY_RESET">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="VOLUME_DOWN">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="VOLUME_UP">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_MENU">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_M
</newseq>
</port>
<port type="UI_CANCEL">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_Q
</newseq>
</port>
<port type="UI_CLEAR">
<newseq type="standard">
KEYCODE_DEL
</newseq>
</port>
<port type="UI_PREV_GROUP">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_NEXT_GROUP">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_ON_SCREEN_DISPLAY">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_TOGGLE_UI">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_DEBUG_BREAK">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_PAUSE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_P
</newseq>
</port>
<port type="UI_PAUSE_SINGLE">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_REWIND_SINGLE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_MINUS
</newseq>
</port>
<port type="UI_SAVE_STATE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_S
</newseq>
</port>
<port type="UI_LOAD_STATE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_A
</newseq>
</port>
<port type="UI_RESET_MACHINE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_R
</newseq>
</port>
<port type="UI_SOFT_RESET">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_N
</newseq>
</port>
<port type="UI_SHOW_GFX">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_FRAMESKIP_DEC">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_FRAMESKIP_INC">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_THROTTLE">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_FAST_FORWARD">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_MINUS
</newseq>
</port>
<port type="UI_SHOW_FPS">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_SNAPSHOT">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_X
</newseq>
</port>
<port type="UI_RECORD_MNG">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_RECORD_AVI">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_TOGGLE_CHEAT">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_C
</newseq>
</port>
<port type="UI_DISPLAY_COMMENT">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_ZOOM_IN">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_ZOOM_OUT">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_ZOOM_DEFAULT">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_ROTATE">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_SHOW_PROFILER">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_RELEASE_POINTER">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_PASTE">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_TAPE_START">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_TAPE_STOP">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_FOCUS_NEXT">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_FOCUS_PREV">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_DATS">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_FAVORITES">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_EXPORT">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="UI_AUDIT">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="TOGGLE_FULLSCREEN">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_ENTER
</newseq>
</port>
<port type="TOGGLE_FILTER">
<newseq type="standard">
NONE
</newseq>
</port>
<port type="DECREASE_PRESCALE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_Y
</newseq>
</port>
<port type="INCREASE_PRESCALE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_U
</newseq>
</port>
<port type="RENDER_AVI">
<newseq type="standard">
NONE
</newseq>
</port>
</input>
</system>
</mameconfig>

View file

@ -0,0 +1,3 @@
#!/bin/bash
mame -inipath /var/config/mame

View file

@ -8,7 +8,7 @@ writeconfig 0
# CORE SEARCH PATH OPTIONS
#
homepath /var/data/mame/plugin-data
rompath RETRODECKROMSDIR/mame/;RETRODECKROMSDIR/arcade/;RETRODECKROMSDIR/bbcmicro/
rompath RETRODECKROMSDIR/adam;RETRODECKROMSDIR/amstradcpc;RETRODECKROMSDIR/apple2;RETRODECKROMSDIR/apple2gs;RETRODECKROMSDIR/arcade;RETRODECKROMSDIR/arcadia;RETRODECKROMSDIR/archimedes;RETRODECKROMSDIR/astrocde;RETRODECKROMSDIR/atari7800;RETRODECKROMSDIR/atarijaguar;RETRODECKROMSDIR/bbcmicro;RETRODECKROMSDIR/cdimono1;RETRODECKROMSDIR/channelf;RETRODECKROMSDIR/consolearcade;RETRODECKROMSDIR/cps;RETRODECKROMSDIR/cps1;RETRODECKROMSDIR/cps2;RETRODECKROMSDIR/cps3;RETRODECKROMSDIR/crvision;RETRODECKROMSDIR/daphne;RETRODECKROMSDIR/electron;RETRODECKROMSDIR/fm7;RETRODECKROMSDIR/fmtowns;RETRODECKROMSDIR/gamate;RETRODECKROMSDIR/gameandwatch;RETRODECKROMSDIR/gamecom;RETRODECKROMSDIR/gmaster;RETRODECKROMSDIR/gx4000;RETRODECKROMSDIR/intellivision;RETRODECKROMSDIR/laserdisc;RETRODECKROMSDIR/lcdgames;RETRODECKROMSDIR/mame;RETRODECKROMSDIR/megaduck;RETRODECKROMSDIR/model2;RETRODECKROMSDIR/neogeo;RETRODECKROMSDIR/neogeocd;RETRODECKROMSDIR/neogeocdjp;RETRODECKROMSDIR/odyssey2;RETRODECKROMSDIR/pv1000;RETRODECKROMSDIR/scv;RETRODECKROMSDIR/stv;RETRODECKROMSDIR/supervision;RETRODECKROMSDIR/supracan;RETRODECKROMSDIR/ti99;RETRODECKROMSDIR/vectrex;RETRODECKROMSDIR/videopac;RETRODECKROMSDIR/vsmile;RETRODECKROMSDIR/x68000
hashpath /var/data/mame/hash
samplepath /var/data/mame/assets/samples
artpath /var/data/mame/assets/artwork

View file

@ -1,5 +1,5 @@
{
"version": 48,
"version": 49,
"enable_file_log": true,
"backend_threading": "Auto",
"res_scale": 1,
@ -12,7 +12,7 @@
"graphics_shaders_dump_path": "",
"logging_enable_debug": false,
"logging_enable_stub": false,
"logging_enable_info": true,
"logging_enable_info": false,
"logging_enable_warn": true,
"logging_enable_error": true,
"logging_enable_trace": false,
@ -91,13 +91,13 @@
"enable_keyboard": false,
"enable_mouse": false,
"hotkeys": {
"toggle_vsync": "F1",
"screenshot": "F8",
"show_ui": "F4",
"pause": "F5",
"toggle_mute": "F2",
"res_scale_up": "Unbound",
"res_scale_down": "Unbound",
"toggle_vsync": "Unknown",
"screenshot": "Unknown",
"show_ui": "F1",
"pause": "F4",
"toggle_mute": "Unknown",
"res_scale_up": "F7",
"res_scale_down": "F8",
"volume_up": "Unbound",
"volume_down": "Unbound"
},
@ -121,22 +121,27 @@
},
"deadzone_left": 0,
"deadzone_right": 0,
"range_left": 1,
"range_left": 1.2,
"range_right": 1,
"trigger_threshold": 0.5,
"trigger_threshold": 0,
"motion": {
"motion_backend": "GamepadDriver",
"slot": 0,
"alt_slot": 0,
"mirror_input": false,
"dsu_server_host": "127.0.0.1",
"dsu_server_port": 26760,
"motion_backend": "CemuHook",
"sensitivity": 100,
"gyro_deadzone": 1,
"enable_motion": true
},
"rumble": {
"strong_rumble": 1,
"strong_rumble": 2.1,
"weak_rumble": 1,
"enable_rumble": true
},
"left_joycon": {
"button_minus": "Minus",
"button_minus": "Back",
"button_l": "LeftShoulder",
"button_zl": "LeftTrigger",
"button_sl": "Unbound",
@ -147,7 +152,7 @@
"dpad_right": "DpadRight"
},
"right_joycon": {
"button_plus": "Plus",
"button_plus": "Start",
"button_r": "RightShoulder",
"button_zr": "RightTrigger",
"button_sl": "Unbound",
@ -160,12 +165,190 @@
"version": 1,
"backend": "GamepadSDL2",
"id": "0-f6790003-28de-0000-ff11-000001000000",
"controller_type": "Handheld",
"player_index": "Handheld"
"controller_type": "ProController",
"player_index": "Player1"
},
{
"left_joycon_stick": {
"joystick": "Left",
"invert_stick_x": false,
"invert_stick_y": false,
"rotate90_cw": false,
"stick_button": "LeftStick"
},
"right_joycon_stick": {
"joystick": "Right",
"invert_stick_x": false,
"invert_stick_y": false,
"rotate90_cw": false,
"stick_button": "RightStick"
},
"deadzone_left": 0,
"deadzone_right": 0,
"range_left": 1.2,
"range_right": 1,
"trigger_threshold": 0,
"motion": {
"motion_backend": "GamepadDriver",
"sensitivity": 100,
"gyro_deadzone": 1,
"enable_motion": false
},
"rumble": {
"strong_rumble": 1,
"weak_rumble": 1,
"enable_rumble": true
},
"left_joycon": {
"button_minus": "Back",
"button_l": "LeftShoulder",
"button_zl": "LeftTrigger",
"button_sl": "Unbound",
"button_sr": "Unbound",
"dpad_up": "DpadUp",
"dpad_down": "DpadDown",
"dpad_left": "DpadLeft",
"dpad_right": "DpadRight"
},
"right_joycon": {
"button_plus": "Start",
"button_r": "RightShoulder",
"button_zr": "RightTrigger",
"button_sl": "Unbound",
"button_sr": "Unbound",
"button_x": "Y",
"button_b": "A",
"button_y": "X",
"button_a": "B"
},
"version": 1,
"backend": "GamepadSDL2",
"id": "1-00000003-28de-0000-ff11-000001000000",
"controller_type": "ProController",
"player_index": "Player2"
},
{
"left_joycon_stick": {
"joystick": "Left",
"invert_stick_x": false,
"invert_stick_y": false,
"rotate90_cw": false,
"stick_button": "LeftStick"
},
"right_joycon_stick": {
"joystick": "Right",
"invert_stick_x": false,
"invert_stick_y": false,
"rotate90_cw": false,
"stick_button": "RightStick"
},
"deadzone_left": 0,
"deadzone_right": 0,
"range_left": 1.2,
"range_right": 1,
"trigger_threshold": 0,
"motion": {
"motion_backend": "GamepadDriver",
"sensitivity": 100,
"gyro_deadzone": 1,
"enable_motion": false
},
"rumble": {
"strong_rumble": 1,
"weak_rumble": 1,
"enable_rumble": true
},
"left_joycon": {
"button_minus": "Back",
"button_l": "LeftShoulder",
"button_zl": "LeftTrigger",
"button_sl": "Unbound",
"button_sr": "Unbound",
"dpad_up": "DpadUp",
"dpad_down": "DpadDown",
"dpad_left": "DpadLeft",
"dpad_right": "DpadRight"
},
"right_joycon": {
"button_plus": "Start",
"button_r": "RightShoulder",
"button_zr": "RightTrigger",
"button_sl": "Unbound",
"button_sr": "Unbound",
"button_x": "Y",
"button_b": "A",
"button_y": "X",
"button_a": "B"
},
"version": 1,
"backend": "GamepadSDL2",
"id": "2-00000003-28de-0000-ff11-000001000000",
"controller_type": "ProController",
"player_index": "Player3"
},
{
"left_joycon_stick": {
"joystick": "Left",
"invert_stick_x": false,
"invert_stick_y": false,
"rotate90_cw": false,
"stick_button": "LeftStick"
},
"right_joycon_stick": {
"joystick": "Right",
"invert_stick_x": false,
"invert_stick_y": false,
"rotate90_cw": false,
"stick_button": "RightStick"
},
"deadzone_left": 0,
"deadzone_right": 0,
"range_left": 1.2,
"range_right": 1,
"trigger_threshold": 0,
"motion": {
"motion_backend": "GamepadDriver",
"sensitivity": 100,
"gyro_deadzone": 1,
"enable_motion": false
},
"rumble": {
"strong_rumble": 1,
"weak_rumble": 1,
"enable_rumble": true
},
"left_joycon": {
"button_minus": "Back",
"button_l": "LeftShoulder",
"button_zl": "LeftTrigger",
"button_sl": "Unbound",
"button_sr": "Unbound",
"dpad_up": "DpadUp",
"dpad_down": "DpadDown",
"dpad_left": "DpadLeft",
"dpad_right": "DpadRight"
},
"right_joycon": {
"button_plus": "Start",
"button_r": "RightShoulder",
"button_zr": "RightTrigger",
"button_sl": "Unbound",
"button_sr": "Unbound",
"button_x": "Y",
"button_b": "A",
"button_y": "X",
"button_a": "B"
},
"version": 1,
"backend": "GamepadSDL2",
"id": "3-00000003-28de-0000-ff11-000001000000",
"controller_type": "ProController",
"player_index": "Player4"
}
],
"graphics_backend": "Vulkan",
"preferred_gpu": "0x1002_0x163F",
"multiplayer_mode": 0,
"multiplayer_lan_interface_id": "0",
"use_hypervisor": true
}
}

View file

@ -815,9 +815,9 @@ gamecard_path=
gamecard_path\default=true
load_directory=/var/data/yuzu/load
load_directory\default=true
nand_directory=RETRODECKHOMEDIR/saves/switch/yuzu/nand
nand_directory=RETRODECKHOMEDIR/saves/switch/nand
nand_directory\default=true
sdmc_directory=RETRODECKHOMEDIR/saves/switch/yuzu/sdmc
sdmc_directory=RETRODECKHOMEDIR/saves/switch/sdmc
sdmc_directory\default=true
tas_directory=/var/data/yuzu/tas
tas_directory\default=true

View file

@ -463,7 +463,7 @@
<emulator name="MAME">
<!-- Arcade emulator MAME -->
<rule type="systempath">
<entry>mame</entry>
<entry>mame-rdwrapper.sh</entry>
<entry>org.mamedev.MAME</entry>
</rule>
<rule type="staticpath">

View file

@ -2,6 +2,7 @@
<bool name="AlternativeEmulatorPerGame" value="true" />
<bool name="ApplicationUpdaterPrereleases" value="false" />
<bool name="CollectionShowSystemInfo" value="true" />
<bool name="CreatePlaceholderSystemDirectories" value="false" />
<bool name="CustomEventScripts" value="false" />
<bool name="DebugMode" value="false" />
<bool name="DebugSkipInputLogging" value="false" />
@ -21,6 +22,7 @@
<bool name="GamelistVideoScanlines" value="false" />
<bool name="InputIgnoreKeyboard" value="false" />
<bool name="InputOnlyFirstController" value="false" />
<bool name="InputSwapButtons" value="false" />
<bool name="LegacyGamelistFileLocation" value="false" />
<bool name="ListScrollOverlay" value="false" />
<bool name="MAMENameStripExtraInfo" value="true" />
@ -65,6 +67,7 @@
<bool name="ScraperConvertUnderscores" value="true" />
<bool name="ScraperExcludeRecursively" value="true" />
<bool name="ScraperHaltOnInvalidMedia" value="false" />
<bool name="ScraperIgnoreHTTP404Errors" value="true" />
<bool name="ScraperIncludeFolders" value="true" />
<bool name="ScraperInteractive" value="false" />
<bool name="ScraperOverwriteData" value="false" />
@ -145,13 +148,15 @@
<string name="ScraperPasswordScreenScraper" value="" />
<string name="ScraperRegion" value="eu" />
<string name="ScraperUsernameScreenScraper" value="" />
<string name="ScreensaverSlideshowImageDir" value="/var/config/emulationstation/ES-DE/slideshow/custom_images" />
<string name="ScreensaverSlideshowCustomDir" value="" />
<string name="ScreensaverSlideshowImageDir" value="/var/config/ES-DE/slideshow/custom_images" />
<string name="ScreensaverType" value="video" />
<string name="StartupSystem" value="" />
<string name="SystemsSorting" value="default" />
<string name="Theme" value="art-book-next-es-de" />
<string name="ThemeAspectRatio" value="automatic" />
<string name="ThemeColorScheme" value="art-book-next" />
<string name="ThemeFontSize" value="" />
<string name="ThemeSet" value="art-book-next-es-de" />
<string name="ThemeTransitions" value="automatic" />
<string name="ThemeVariant" value="system-multi-gamelist-list-immersive" />

View file

@ -28,12 +28,12 @@ save_migration() {
fi
# Doing the dir prep as we don't know from which version we came
dir_prep "$media_folder" "/var/config/emulationstation/ES-DE/downloaded_media"
dir_prep "$themes_folder" "/var/config/emulationstation/ES-DE/themes"
dir_prep "$media_folder" "/var/config/ES-DE/downloaded_media"
dir_prep "$themes_folder" "/var/config/ES-DE/themes"
mkdir -pv $rdhome/logs #this was added later, maybe safe to remove in a few versions
# Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed
cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/ES-DE/es_settings.xml
cp -fv /app/retrodeck/es_settings.xml /var/config/ES-DE/settings/es_settings.xml
# 0.4 -> 0.5
# Perform save and state migration if needed

View file

@ -295,8 +295,8 @@ update_rpcs3_firmware() {
}
update_vita3k_firmware() {
download_file "http://dus01.psv.update.playstation.net/update/psv/image/2022_0209/rel_f2c7b12fe85496ec88a0391b514d6e3b/PSVUPDAT.PUP" "/tmp/PSVUPDAT.PUP" "Vita3K Firmware file 1"
download_file "http://dus01.psp2.update.playstation.net/update/psp2/image/2019_0924/sd_8b5f60b56c3da8365b973dba570c53a5/PSP2UPDAT.PUP?dest=us" "/tmp/PSP2UPDAT.PUP" "Vita3K Firmware file 2"
download_file "http://dus01.psv.update.playstation.net/update/psv/image/2022_0209/rel_f2c7b12fe85496ec88a0391b514d6e3b/PSVUPDAT.PUP" "/tmp/PSVUPDAT.PUP" "Vita3K Firmware file: PSVUPDAT.PUP"
download_file "http://dus01.psp2.update.playstation.net/update/psp2/image/2019_0924/sd_8b5f60b56c3da8365b973dba570c53a5/PSP2UPDAT.PUP?dest=us" "/tmp/PSP2UPDAT.PUP" "Vita3K Firmware file: PSP2UPDAT.PUP"
Vita3K --firmware /tmp/PSVUPDAT.PUP
Vita3K --firmware /tmp/PSP2UPDAT.PUP
}
@ -502,9 +502,9 @@ install_retrodeck_starterpack() {
## DOOM section ##
cp /app/retrodeck/extras/doom1.wad "$roms_folder/doom/doom1.wad" # No -f in case the user already has it
mkdir -p "/var/config/emulationstation/ES-DE/gamelists/doom"
if [[ ! -f "/var/config/emulationstation/ES-DE/gamelists/doom/gamelist.xml" ]]; then # Don't overwrite an existing gamelist
cp "/app/retrodeck/rd_prepacks/doom/gamelist.xml" "/var/config/emulationstation/ES-DE/gamelists/doom/gamelist.xml"
mkdir -p "/var/config/ES-DE/gamelists/doom"
if [[ ! -f "/var/config/ES-DE/gamelists/doom/gamelist.xml" ]]; then # Don't overwrite an existing gamelist
cp "/app/retrodeck/rd_prepacks/doom/gamelist.xml" "/var/config/ES-DE/gamelists/doom/gamelist.xml"
fi
mkdir -p "$media_folder/doom"
unzip -oq "/app/retrodeck/rd_prepacks/doom/doom.zip" -d "$media_folder/doom/"
@ -535,8 +535,9 @@ update_splashscreens() {
# This script will purge any existing ES graphics and reload them from RO space into somewhere ES will look for it
# USAGE: update_splashscreens
rm -rf /var/config/emulationstation/ES-DE/resources/graphics
rsync -rlD --mkpath "/app/retrodeck/graphics/" "/var/config/emulationstation/ES-DE/resources/graphics/"
rm -rf /var/config/ES-DE/resources/graphics
rsync -rlD --mkpath "/app/retrodeck/graphics/" "/var/config/ES-DE/resources/graphics/"
}
deploy_helper_files() {
@ -578,6 +579,43 @@ easter_eggs() {
cp -f "$new_splash_file" "$current_splash_file" # Deploy assigned splash screen
}
manage_ryujinx_keys() {
# This function checks if Switch keys are existing and symlinks them inside the Ryujinx system folder
# If the symlinks are broken it recreates them
echo "Checking Ryujinx Switch keys." #TODO logging
local ryujinx_system="/var/config/Ryujinx/system" # Set the path to the Ryujinx system folder
# Check if the keys folder exists
if [ -d "$bios_folder/switch/keys" ]; then
# Check if there are files in the keys folder
if [ -n "$(find "$bios_folder/switch/keys" -maxdepth 1 -type f)" ]; then
# Iterate over each file in the keys folder
for file in "$bios_folder/switch/keys"/*; do
local filename=$(basename "$file")
local symlink="$ryujinx_system/$filename"
# Check if the symlink exists and is valid
if [ -L "$symlink" ] && [ "$(readlink -f "$symlink")" = "$file" ]; then
echo "Found \"$symlink\" and it's a valid symlink." #TODO logging
continue # Skip if the symlink is already valid
fi
# Remove broken symlink or non-symlink file
echo "Found \"$symlink\" but it's not a valid symlink. Repairing it" #TODO logging
[ -e "$symlink" ] && rm "$symlink"
# Create symlink
ln -s "$file" "$symlink"
echo "Created symlink: \"$symlink\""
done
else
echo "No files found in $bios_folder/switch/keys. Continuing" #TODO logging
fi
else
echo "Directory $bios_folder/switch/keys does not exist. Maybe Ryujinx was never run. Continuing" #TODO logging
fi
}
# TODO: this function is not yet used
branch_selector() {
# Fetch branches from GitHub API excluding "main"
@ -640,12 +678,12 @@ branch_selector() {
quit_retrodeck() {
pkill -f retrodeck
pkill -f emulationstation
pkill -f es-de
}
start_retrodeck() {
easter_eggs # Check if today has a surprise splashscreen and load it if so
# normal startup
echo "Starting RetroDECK v$version"
emulationstation --home /var/config/emulationstation
es-de --home /var/config/
}

View file

@ -25,11 +25,11 @@ zip_compressable_extensions="$emuconfigs/defaults/retrodeck/reference_lists/zip_
easter_egg_checklist="$emuconfigs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg" # A config file listing days and times when special splash screens should show up
input_validation="$emuconfigs/defaults/retrodeck/reference_lists/input_validation.cfg" # A config file listing valid CLI inputs
finit_options_list="$emuconfigs/defaults/retrodeck/reference_lists/finit_options_list.cfg" # A config file listing available optional installs during finit
splashscreen_dir="/var/config/emulationstation/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens
current_splash_file="/var/config/emulationstation/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot
default_splash_file="/var/config/emulationstation/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
splashscreen_dir="/var/config/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens
current_splash_file="/var/config/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot
default_splash_file="/var/config/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
multi_user_emulator_config_dirs="$emuconfigs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode
rd_es_themes="/app/share/emulationstation/themes" # The directory where themes packaged with RetroDECK are stored
rd_es_themes="/app/share/es-de/themes" # The directory where themes packaged with RetroDECK are stored
lockfile="/var/config/retrodeck/.lock" # where the lockfile is located
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
@ -62,7 +62,7 @@ yuzuconf="/var/config/yuzu/qt-config.ini"
# ES-DE config files
es_settings="/var/config/emulationstation/ES-DE/es_settings.xml"
es_settings="/var/config/ES-DE/settings/es_settings.xml"
# RetroArch config files

View file

@ -241,8 +241,18 @@ post_update() {
# - Install RetroDECK controller profile in desired location TODO
# - Change section name in retrodeck.cfg for ABXY button swap preset
sed -i 's^nintendo_button_layout^abxy_button_swap^' "$rd_conf" # This is a one-off sed statement as there are no functions for replacing section names
mv -f /var/config/emulationstation/.emulationstation /var/config/emulationstation/ES-DE # in 3.0 .emulationstation was moved into ES-DE
ln -s /var/config/emulationstation/ES-DE /var/config/emulationstation/.emulationstation # symlinking it to mantain the compatibility # TODO: remove this symlink n 0.9.0b
# in 3.0 .emulationstation was moved into ES-DE
mv -f /var/config/emulationstation /var/config/ES-DE
mv -f /var/config/ES-DE/.emulationstation/* /var/config/ES-DE
rm -rf /var/config/ES-DE/.emulationstation
rm -f /var/config/ES-DE/es_settings.xml
prepare_component "reset" "es-de"
prepare_component "reset" "mame"
prepare_component "reset" "vita3k"
prepare_component "reset" "gzdoom"
fi
# if [[ $prev_version -le "090" ]]; then

View file

@ -40,21 +40,21 @@ prepare_component() {
if [[ "$component" =~ ^(es-de|ES-DE|all)$ ]]; then # For use after ESDE-related folders are moved or a reset
if [[ "$action" == "reset" ]]; then
rm -rf /var/config/emulationstation/
mkdir -p /var/config/emulationstation/ES-DE/
cp -f /app/retrodeck/es_settings.xml /var/config/emulationstation/ES-DE/es_settings.xml
rm -rf /var/config/ES-DE
mkdir -p /var/config/ES-DE/settings
cp -f /app/retrodeck/es_settings.xml /var/config/ES-DE/settings/es_settings.xml
set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings"
set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings"
set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings"
dir_prep "$rdhome/gamelists" "/var/config/emulationstation/ES-DE/gamelists"
emulationstation --home /var/config/emulationstation --create-system-dirs
dir_prep "$rdhome/gamelists" "/var/config/ES-DE/gamelists"
es-de --home /var/config/ES-DE --create-system-dirs
update_splashscreens
fi
if [[ "$action" == "postmove" ]]; then
set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings"
set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings"
set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings"
dir_prep "$rdhome/gamelists" "/var/config/emulationstation/ES-DE/gamelists"
dir_prep "$rdhome/gamelists" "/var/config/ES-DE/gamelists"
fi
fi
@ -542,27 +542,38 @@ prepare_component() {
fi
if [[ "$component" =~ ^(ryujunx|Ryujinx|all)$ ]]; then
# NOTE: for techincal reasons the system folder of Ryujinx IS NOT a sumlink of the bios/switch/keys as not only the keys are located there
# When RetroDECK starts there is a "manage_ryujinx_keys" function that symlinks the keys only in Rryujinx/system.
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "------------------------"
echo "Initializing RYUJINX"
echo "------------------------"
if [[ $multi_user_mode == "true" ]]; then
rm -rf "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
mkdir -p "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system"
#mkdir -p "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system"
# TODO: add /var/config/Ryujinx/system system folder management
cp -fv $emuconfigs/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json"
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "/var/config/Ryujinx"
# TODO: add nand (saves) folder management
# TODO: add nand (saves) folder management
# TODO: add "registered" folder management
else
# removing config directory to wipe legacy files
rm -rf /var/config/Ryujinx
mkdir -p /var/config/Ryujinx/system
cp -fv $emuconfigs/ryujinx/* /var/config/Ryujinx
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' "$ryujinxconf"
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf"
# Linking switch nand/saves folder
rm -rf /var/config/Ryujinx/bis
dir_prep "$saves_folder/switch/ryujinx/nand" "/var/config/Ryujinx/bis"
dir_prep "$saves_folder/switch/ryujinx/sdcard" "/var/config/Ryujinx/sdcard"
dir_prep "$bios_folder/switch/ryujinx/registered" "/var/config/Ryujinx/bis/system/Contents/registered"
fi
fi
if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system"
fi
# if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
# dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system"
# fi
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf" # This is an unfortunate one-off because set_setting_value does not currently support JSON
fi
@ -700,14 +711,65 @@ prepare_component() {
echo "Initializing MAME"
echo "----------------------"
mkdir -p $saves_folder/mame-sa
mkdir -p "/var/config/mame"
# TODO: probably some of these needs to be put elsewhere
mkdir -p "$saves_folder/mame-sa"
mkdir -p "$saves_folder/mame-sa/nvram"
mkdir -p "$states_folder/mame-sa"
mkdir -p "$rdhome/screenshots/mame-sa"
mkdir -p "$saves_folder/mame-sa/diff"
mkdir -p "/var/config/ctrlr"
mkdir -p "/var/config/mame/ini"
mkdir -p "/var/config/mame/cfg"
mkdir -p "/var/config/mame/inp"
mkdir -p "/var/data/mame/plugin-data"
mkdir -p "/var/data/mame/hash"
mkdir -p "/var/data/mame/assets/samples"
mkdir -p "/var/data/mame/assets/artwork"
mkdir -p "/var/data/mame/assets/fonts"
mkdir -p "/var/data/mame/cheat"
mkdir -p "/var/data/mame/assets/crosshair"
mkdir -p "/var/data/mame/plugins"
mkdir -p "/var/data/mame/assets/language"
mkdir -p "/var/data/mame/assets/software"
mkdir -p "/var/data/mame/assets/comments"
mkdir -p "/var/data/mame/assets/share"
mkdir -p "/var/data/mame/dats"
mkdir -p "/var/data/mame/folders"
mkdir -p "/var/data/mame/assets/cabinets"
mkdir -p "/var/data/mame/assets/cpanel"
mkdir -p "/var/data/mame/assets/pcb"
mkdir -p "/var/data/mame/assets/flyers"
mkdir -p "/var/data/mame/assets/titles"
mkdir -p "/var/data/mame/assets/ends"
mkdir -p "/var/data/mame/assets/marquees"
mkdir -p "/var/data/mame/assets/artwork-preview"
mkdir -p "/var/data/mame/assets/bosses"
mkdir -p "/var/data/mame/assets/logo"
mkdir -p "/var/data/mame/assets/scores"
mkdir -p "/var/data/mame/assets/versus"
mkdir -p "/var/data/mame/assets/gameover"
mkdir -p "/var/data/mame/assets/howto"
mkdir -p "/var/data/mame/assets/select"
mkdir -p "/var/data/mame/assets/icons"
mkdir -p "/var/data/mame/assets/covers"
mkdir -p "/var/data/mame/assets/ui"
dir_prep "$saves_folder/mame-sa/hiscore" "/var/config/mame/hiscore"
cp -fvr "$emuconfigs/mame/"** "/var/config/mame"
sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/*.ini"
sed -i 's#RETRODECKHOMESDIR#'$rdhome'#g' "/var/config/mame/*.ini"
sed -i 's#RETRODECKSAVESDIR#'$rdhome'#g' "/var/config/mame/*.ini"
sed -i 's#RETRODECKSTATESDIR#'$rdhome'#g' "/var/config/mame/*.ini"
cp -fvr "$emuconfigs/mame/mame.ini" "/var/config/mame/cfg"
cp -fvr "$emuconfigs/mame/ui.ini" "/var/config/mame/cfg"
cp -fvr "$emuconfigs/mame/default.cfg" "/var/config/mame/cfg"
sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/cfg/mame.ini"
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "/var/config/mame/cfg/mame.ini"
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/mame/cfg/mame.ini"
sed -i 's#RETRODECKSTATESDIR#'$states_folder'#g' "/var/config/mame/cfg/mame.ini"
sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/cfg/ui.ini"
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "/var/config/mame/cfg/ui.ini"
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/mame/cfg/ui.ini"
sed -i 's#RETRODECKSTATESDIR#'$states_folder'#g' "/var/config/mame/cfg/ui.ini"
fi
if [[ "$component" =~ ^(gzdoom|GZDOOM|all)$ ]]; then

View file

@ -65,26 +65,28 @@
<project_license>GPL-3.0</project_license>
<metadata_license>CC0-1.0</metadata_license>
<releases>
<release version="0.8.0b" date="2023-12-14">
<release version="0.8.0b" date="2023-02-27">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.8.0b</url>
<description>
<p>CRITICAL:</p>
<ul>
<li>DEEP TEST: prepare_emulator function is now called prepare_component, eidted even in the cli and split it into the Configurator, so we need to test if the reset emulator works as supposed, if the cli and the Configurator is consistent.</li>
</ul>
<p>
WARNING:
The post update script is initializing es-de 3.0, vita3k, mame-sa and ryujinx when coming from a version ealrier that 0.8.0b. Tp fully test this build you must come from a build 0.7.6b or previous otherwise you will surely encounter issues. Else reset RetroDECK but be aware that will not be a proper testing.
</p>
<p>Changes:</p>
<ul>
<li>ES-DE: updated to 3.0</li>
<li>Added new system: RYUJINX</li>
<li>Added new system: SOLARUS</li>
<li>Added new engine: GZDOOM</li>
<li>Added new emulator: Vita3K - Reset the emulator to grap the lates changes</li>
<li>Added new emulator: Vita3K</li>
<li>Added new emulator: MAME (Standalone)</li>
<li>PPSSPP: added hotkeys</li>
<li>MAME: added hotkeys</li>
<li>SCUMMVM: added hotkeys</li>
<li>DOLPHIN: improved wiimote pointer emulation for controllers</li>
<li>Added Steam Sync (with BoilR)</li>
<li>Quit button after emulators reset should act as an actual full quit button</li>
<li>Created a quit_retrodeck function to ease the quit in the scripts.</li>
<li>Logs folder is now in retrodeck/logs (previously was .logs)</li>
<li>The post update script is initializing vita3k, mame and boilr when coming from a version ealrier that 0.8.0, this don't work in cokker and must be resetted manually (for boilr reset RetroDECK)</li>
<li>RPCS3 is now running via shortcut (.desktop file) by default - WARN THE USERS TO MIGRATE</li>
<li>Added controller config for PS4 and PS5</li>
<li>Controller config overhaul</li>
@ -93,21 +95,18 @@
<p>Fixes:</p>
<ul>
<li>Fixed DUCKSTATION memory card folder</li>
<li>Fixed RPCS3 saves folder (wrong symlink) - WRN THE USERS TO BACKUP</li>
<li>Fixed issues that prevents Steam Sync to work correctly</li>
<li>Fixed RPCS3 saves folder (wrong symlink) - WARN THE USERS TO BACKUP</li>
</ul>
<p>Issues:</p>
<ul>
<li>!!! WARNING !!! Steam Sync is now REPLACING your Standalone BoilR links with RetroDECK's, use it at your own risk!</li>
<li>Vita3K firmware downloader is failing. Workaround: run the downloader twice</li>
<li>GZDOOM: the controller for player 2+ is not correctly configured</li>
<li>quit_retrodeck function seems to not working correctly</li>
<li>MAME (Standalone) paths should be fixed</li>
</ul>
<p>Missing:</p>
<ul>
<li>GZDOOM: hotkeys</li>
<li>SOLARUS: hotkeys</li>
<li>MAME (Standalone): hotkeys</li>
<li>A proper reset script for the new emulators, now it's just a draft (only Vita3K is done)</li>
</ul>
</description>

View file

@ -407,7 +407,7 @@ modules:
- '*.la'
# When updating this module remember to check those:
# https://gitlab.com/es-de/emulationstation-de/-/blob/[VERSION]/resources/systems/unix/es_find_rules.xml
# https://gitlab.com/es-de/emulationstation-de/-/blob/[VERSION]/resources/systems/linux/es_find_rules.xml
# But we don't include them 1:1 as RetroDECK got some specific configs in some cases
- name: ES-DE
buildsystem: cmake-ninja
@ -419,12 +419,8 @@ modules:
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK-ES-DE
branch: cebbeff3b5f834fd9adaeb1f5dc9e0da6b106599
branch: update/3.0
- type: shell
commands:
- sed -i 's#"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#"RetroDECK
v'$(cat ${FLATPAK_DEST}/retrodeck/version)', ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#g'
es-app/src/guis/GuiMenu.cpp
# ES-DE - END
@ -433,8 +429,8 @@ modules:
- name: art-book-next-es-de
buildsystem: simple
build-commands:
- mkdir -p ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-es-de/
- mv -f * ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-es-de/
- mkdir -p ${FLATPAK_DEST}/share/es-de/themes/art-book-next-es-de/
- mv -f * ${FLATPAK_DEST}/share/es-de/themes/art-book-next-es-de/
sources:
- type: git
url: https://github.com/anthonycaccese/art-book-next-es-de.git
@ -1292,6 +1288,23 @@ modules:
# MAME - End
# Ryujinx Appimage - START
# https://ryujinx.org/download
- name: Ryujinx
buildsystem: simple
build-commands:
- |
tar -zxvf *.tar.gz
mv -v publish ${FLATPAK_DEST}/ryujinx
ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx ${FLATPAK_DEST}/bin/Ryujinx.sh
sources:
- type: file
url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.1192/ryujinx-1.1.1192-linux_x64.tar.gz
sha256: 41716233f5745a7df1e411af6bac9d828f0b6b6feb63b5ef87445b81b01dee54
# Ryujinx Appimage - END
# External manifests end
- name: retrodeck
@ -1302,16 +1315,16 @@ modules:
- mkdir -p ${FLATPAK_DEST}/retrodeck
# Prep the ES-DE and RetroArch config files - I will have to SED/XMLSTARLET them soon
- rm -rf /app/share/emulationstation/resources/systems/unix/es_find_rules.xml
- cp es-configs/es_find_rules.xml /app/share/emulationstation/resources/systems/unix/
- rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml
- cp es-configs/es_systems.xml /app/share/emulationstation/resources/systems/unix/
- rm -rf /app/share/es-de/resources/systems/linux/es_find_rules.xml
- cp es-configs/es_find_rules.xml /app/share/es-de/resources/systems/linux/
- rm -rf /app/share/es-de/resources/systems/linux/es_systems.xml
- cp es-configs/es_systems.xml /app/share/es-de/resources/systems/linux/
# These must be put in home folder, managed by retrodeck.sh
- cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
- mv -f -t ${FLATPAK_DEST}/retrodeck es-configs/rd_prepacks
# Logo, res, move graphics directory away from default location so splash can be changed after build
- mv -f -t ${FLATPAK_DEST}/retrodeck /app/share/emulationstation/resources/graphics
- mv -f -t ${FLATPAK_DEST}/retrodeck /app/share/es-de/resources/graphics
- cp -f res/splash.svg ${FLATPAK_DEST}/retrodeck/graphics/splash.svg
- cp -f res/splash.svg ${FLATPAK_DEST}/retrodeck/graphics/splash-orig.svg
- cp -rf res/extra_splashes/ ${FLATPAK_DEST}/retrodeck/graphics
@ -1358,6 +1371,10 @@ modules:
- cp emu-configs/gzdoom/gzdoom.sh ${FLATPAK_DEST}/bin/gzdoom.sh
- chmod +x ${FLATPAK_DEST}/bin/gzdoom.sh
# MAME wrapper
- cp emu-configs/mame/mame-rdwrapper.sh ${FLATPAK_DEST}/bin/mame-rdwrapper.sh
- chmod +x ${FLATPAK_DEST}/bin/mame-rdwrapper.sh
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git

View file

@ -112,24 +112,7 @@
# Duckstation-DontUpdate - END
# Ryujinx Appimage - START
# https://ryujinx.org/download
# - name: Ryujinx
# buildsystem: simple
# build-commands:
# - |
# tar -zxvf ryujinx-1.1.685-linux_x64.tar.gz
# mv -v publish ${FLATPAK_DEST}/ryujinx
# ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx ${FLATPAK_DEST}/bin/Ryujinx
# sources:
# - type: file
# url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.685/ryujinx-1.1.685-linux_x64.tar.gz
# sha256: bc4d7076106d7aa59c3a3ea22b83c553e5fa1a897815831adcf18cc13d729e15
# Ryujinx Appimage - END
# Ryujinx - START
# Ryujinx - START
# https://github.com/flathub/org.ryujinx.Ryujinx
- name: Ryujinx

View file

@ -1,38 +0,0 @@
diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de/es-app/src/guis/GuiMenu.cpp
--- emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-08-23 13:12:15.617292576 +0200
+++ emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-08-23 13:44:10.736412006 +0200
@@ -67,2 +67,4 @@
+ addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); });
+
if (!Settings::getInstance()->getBool("ForceKiosk") &&
@@ -70,3 +72,3 @@
#if defined(__APPLE__)
- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); });
+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); });
#else
@@ -75,3 +77,3 @@
else
- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); });
+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); });
#endif
@@ -1758,3 +1760,3 @@
auto quitText = std::make_shared<TextComponent>(
- "QUIT EMULATIONSTATION", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary);
+ "QUIT RETRODECK", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary);
quitText->setSelectable(true);
@@ -1910 +1912,14 @@
}
+
+void GuiMenu::openRetroDeckConfigurator()
+{
+ // Launch the configurator.sh script
+ std::string command;
+ std::string startDirectory;
+ bool runInBackground;
+ command = "bash /app/tools/configurator.sh";
+ startDirectory = "/app/tools";
+ runInBackground = false;
+ int result = Utils::Platform::launchGameUnix(command, startDirectory, runInBackground);
+ // You can add any checks for the script's outcome here.
+}

View file

@ -1,10 +0,0 @@
diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.h emulationstation-de/es-app/src/guis/GuiMenu.h
--- emulationstation-de/es-app/src/guis/GuiMenu.h 2023-08-23 13:12:15.617292576 +0200
+++ emulationstation-de/es-app/src/guis/GuiMenu.h 2023-08-23 13:50:20.978700234 +0200
@@ -46,2 +46,3 @@
void openOtherOptions();
+ void openRetroDeckConfigurator();
void openQuitMenu();
@@ -54 +55,2 @@
#endif // ES_APP_GUIS_GUI_MENU_H
+

View file

@ -1,10 +0,0 @@
diff -au1r emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp
--- emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp 2023-11-03 16:25:01.115126901 +0100
+++ emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp 2023-11-03 16:26:18.882607724 +0100
@@ -602,4 +602,4 @@
getHelpStyle(),
- "IT SEEMS AS IF YOU'RE NOT RUNNING THE LATEST ES-DE RELEASE, PLEASE UPGRADE BEFORE "
- "PROCEEDING AS THESE THEMES MAY NOT BE COMPATIBLE WITH YOUR VERSION",
+ "ES-DE THEME ENGINE WAS UPDATED UPSTREAM. THESE THEMES MAY NOT BE COMPATIBLE WITH THE CURRENT RETRODECK VERSION."
+ "CHECK IF A NEW RETRODECK UPDATE IS AVAILABLE, ELSE PLEASE WAIT FOR IT OR PROCEED AT YOUR OWN RISK.",
"OK", [] { return; }, "", nullptr, "", nullptr, nullptr, true));

View file

@ -1,101 +0,0 @@
diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstation-de/es-app/src/views/ViewController.cpp
--- emulationstation-de/es-app/src/views/ViewController.cpp 2023-11-04 15:09:24.332178777 -0400
+++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-11-04 15:13:59.015780009 -0400
@@ -195,91 +195,3 @@
mNoGamesMessageBox = new GuiMsgBox(
- HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "CHANGE ROM DIRECTORY",
- [this] {
- std::string currentROMDirectory;
-#if defined(_WIN64)
- currentROMDirectory = Utils::String::replace(FileData::getROMDirectory(), "/", "\\");
-#else
- currentROMDirectory = FileData::getROMDirectory();
-#endif
- if (Settings::getInstance()->getBool("VirtualKeyboard")) {
- mWindow->pushGui(new GuiTextEditKeyboardPopup(
- HelpStyle(), 0.0f, "ENTER ROM DIRECTORY PATH", currentROMDirectory,
- [this, currentROMDirectory](const std::string& newROMDirectory) {
- if (currentROMDirectory != newROMDirectory) {
- Settings::getInstance()->setString(
- "ROMDirectory", Utils::String::trim(newROMDirectory));
- Settings::getInstance()->saveFile();
-#if defined(_WIN64)
- mRomDirectory =
- Utils::String::replace(FileData::getROMDirectory(), "/", "\\");
-#else
- mRomDirectory = FileData::getROMDirectory();
-#endif
- mNoGamesMessageBox->changeText(mNoGamesErrorMessage + mRomDirectory);
- mWindow->pushGui(new GuiMsgBox(HelpStyle(),
- "ROM DIRECTORY SETTING SAVED, RESTART\n"
- "THE APPLICATION TO RESCAN THE SYSTEMS",
- "OK", nullptr, "", nullptr, "", nullptr,
- nullptr, true, true));
- }
- },
- false, "SAVE", "SAVE CHANGES?", "Currently configured path:",
- currentROMDirectory, "LOAD CURRENTLY CONFIGURED PATH",
- "CLEAR (LEAVE BLANK TO RESET TO DEFAULT PATH)"));
- }
- else {
- mWindow->pushGui(new GuiTextEditPopup(
- HelpStyle(), "ENTER ROM DIRECTORY PATH", currentROMDirectory,
- [this](const std::string& newROMDirectory) {
- Settings::getInstance()->setString("ROMDirectory",
- Utils::String::trim(newROMDirectory));
- Settings::getInstance()->saveFile();
-#if defined(_WIN64)
- mRomDirectory =
- Utils::String::replace(FileData::getROMDirectory(), "/", "\\");
-#else
- mRomDirectory = FileData::getROMDirectory();
-#endif
- mNoGamesMessageBox->changeText(mNoGamesErrorMessage + mRomDirectory);
- mWindow->pushGui(new GuiMsgBox(HelpStyle(),
- "ROM DIRECTORY SETTING SAVED, RESTART\n"
- "THE APPLICATION TO RESCAN THE SYSTEMS",
- "OK", nullptr, "", nullptr, "", nullptr,
- nullptr, true));
- },
- false, "SAVE", "SAVE CHANGES?", "Currently configured path:",
- currentROMDirectory, "LOAD CURRENTLY CONFIGURED PATH",
- "CLEAR (LEAVE BLANK TO RESET TO DEFAULT PATH)"));
- }
- },
- "CREATE DIRECTORIES",
- [this] {
- mWindow->pushGui(new GuiMsgBox(
- HelpStyle(),
- "THIS WILL CREATE DIRECTORIES FOR ALL THE\n"
- "GAME SYSTEMS DEFINED IN es_systems.xml\n\n"
- "THIS MAY CREATE A LOT OF FOLDERS SO IT'S\n"
- "ADVICED TO REMOVE THE ONES YOU DON'T NEED",
- "PROCEED",
- [this] {
- if (!SystemData::createSystemDirectories()) {
- mWindow->pushGui(new GuiMsgBox(HelpStyle(),
- "THE SYSTEM DIRECTORIES WERE SUCCESSFULLY\n"
- "GENERATED, EXIT THE APPLICATION AND PLACE\n"
- "YOUR GAMES IN THE NEWLY CREATED FOLDERS",
- "OK", nullptr, "", nullptr, "", nullptr,
- nullptr, true));
- }
- else {
- mWindow->pushGui(new GuiMsgBox(HelpStyle(),
- "ERROR CREATING THE SYSTEM DIRECTORIES,\n"
- "PERMISSION PROBLEMS OR DISK FULL?\n\n"
- "SEE THE LOG FILE FOR MORE DETAILS",
- "OK", nullptr, "", nullptr, "", nullptr,
- nullptr, true));
- }
- },
- "CANCEL", nullptr, "", nullptr, nullptr, false));
- },
- "QUIT",
+ HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "QUIT",
[] {
@@ -289,3 +201,3 @@
},
- nullptr, true, false,
+ "", nullptr, "", nullptr, nullptr, true, true,
(mRenderer->getIsVerticalOrientation() ?

View file

@ -1,9 +0,0 @@
diff -au1r emulationstation-de/es-core/src/Window.cpp emulationstation-de/es-core/src/Window.cpp
--- emulationstation-de/es-core/src/Window.cpp 2023-08-29 14:14:17.208301836 +0200
+++ emulationstation-de/es-core/src/Window.cpp 2023-08-29 14:12:37.307334069 +0200
@@ -181,3 +181,3 @@
progressBarRect.barPosY += borderThickness;
- progressBarRect.color = 0x79010FFF;
+ progressBarRect.color = 0xC858E6FF;
mProgressBarRectangles.emplace_back(progressBarRect);

View file

@ -1,31 +0,0 @@
#!/bin/bash
mkdir /tmp
branch="00a226062fff37209d98e0ab048ac89af50ecacc"
git clone "https://gitlab.com/es-de/emulationstation-de.git" /tmp/emulationstation-de
pushd .
cd /tmp/emulationstation-de
git checkout $branch
popd
mkdir patches-tmp
cp /tmp/emulationstation-de/es-app/src/guis/GuiMenu.cpp ./patches-tmp
cp /tmp/emulationstation-de/es-app/src/guis/GuiMenu.h ./patches-tmp
cp /tmp/emulationstation-de/es-app/src/views/ViewController.cpp ./patches-tmp
cp /tmp/emulationstation-de/es-core/src/Window.cpp ./patches-tmp
cp /tmp/emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ./patches-tmp
read -p "Please edit the files in \"patches-tmp\" and press enter to continue."
diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiMenu.cpp ./patches-tmp/GuiMenu.cpp > GuiMenu.cpp.patch
diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiMenu.h ./patches-tmp/GuiMenu.h > GuiMenu.h.patch
diff -au1r /tmp/emulationstation-de/es-app/src/views/ViewController.cpp ./patches-tmp/ViewController.cpp > ViewController.cpp.patch
diff -au1r /tmp/emulationstation-de/es-core/src/Window.cpp ./patches-tmp/Window.cpp > Window.cpp.patch
diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ./patches-tmp/GuiThemeDownloader.cpp > GuiThemeDownloader.cpp.patch
rm -rf patches-tmp
echo "Done, now please remeber to edit the headers of the patch files with the correct paths."

View file

@ -56,9 +56,9 @@ https://retrodeck.net
;;
--reset-component*)
echo "You are about to reset one or more RetroDECK components or emulators."
echo "Available options are: es-de, retroarch, cemu, citra, dolphin, duckstation, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, xemu, yuzu, vita3k, mame, gzdoom, boilr, all"
echo "Available options are: es-de, retroarch, cemu, citra, dolphin, duckstation, melonds, pcsx3, pico8, ppsspp, primehack, ryujinx. rpcs3, ryujinx, xemu, yuzu, vita3k, mame, gzdoom, boilr, all"
read -p "Please enter the component you would like to reset: " component
if [[ "$component" =~ ^(es-de|retroarch|cemu|citra|dolphin|duckstation|mame|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all)$ ]]; then
if [[ "$component" =~ ^(es-de|retroarch|cemu|citra|dolphin|duckstation|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|rpcs3|xemu|yuzu|all)$ ]]; then
read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
prepare_component "reset" "$component" "cli"
@ -182,6 +182,9 @@ if [[ -f "$HOME/.steam/steam/controller_base/templates/RetroDECK_controller_conf
fi
# REMOVE BEFORE NEXT VERSION RELEASE
# Linking switch keys for Ryujinx
manage_ryujinx_keys
# Normal Startup
if [[ $steam_sync == "true" ]]; then

View file

@ -476,7 +476,7 @@ configurator_open_emulator_dialog() {
;;
"MAME" )
mame
mame-rdwrapper.sh
;;
"MelonDS" )
@ -500,7 +500,7 @@ configurator_open_emulator_dialog() {
;;
"Ryujinx" )
ryujinx-wrapper
Ryujinx.sh
;;
"Vita3K" )
@ -1009,6 +1009,7 @@ configurator_reset_dialog() {
"PPSSPP" "Reset the PSP emulator PPSSPP to default settings" \
"Primehack" "Reset the Metroid Prime emulator Primehack to default settings" \
"RPCS3" "Reset the PS3 emulator RPCS3 to default settings" \
"Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \
"Vita3k" "Reset the PS Vita emulator Vita3k to default settings" \
"XEMU" "Reset the XBOX emulator XEMU to default settings" \
"Yuzu" "Reset the Switch emulator Yuzu to default settings" )
@ -1055,7 +1056,7 @@ configurator_reset_dialog() {
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which component do you want to reset to default?" \
--column="Component" --column="Action" \
"BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \
"BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \
"ES-DE" "Reset the ES-DE frontend" \ )
# TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU"
@ -1347,7 +1348,7 @@ configurator_usb_import_dialog() {
"${external_devices[@]}")
if [[ ! -z "$choice" ]]; then
emulationstation --home "$choice" --create-system-dirs
es-de --home "$choice" --create-system-dirs
rm -rf "$choice/ES-DE" # Cleanup unnecessary folder
fi
else