mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2025-04-10 19:15:12 +00:00
Merge pull request #257 from icenine451/cooker-0.6.2b-icenine451
Cooker 0.6.2b icenine451
This commit is contained in:
commit
34dd0117df
|
@ -38,7 +38,7 @@ EnableWideScreenPatches = false
|
||||||
EnableNoInterlacingPatches = false
|
EnableNoInterlacingPatches = false
|
||||||
EnableRecordingTools = true
|
EnableRecordingTools = true
|
||||||
EnableGameFixes = true
|
EnableGameFixes = true
|
||||||
SaveStateOnShutdown = false
|
SaveStateOnShutdown = true
|
||||||
EnableDiscordPresence = false
|
EnableDiscordPresence = false
|
||||||
InhibitScreensaver = true
|
InhibitScreensaver = true
|
||||||
ConsoleToStdio = false
|
ConsoleToStdio = false
|
||||||
|
|
|
@ -324,7 +324,7 @@ Paths\gamedirs\3\deep_scan=false
|
||||||
Paths\gamedirs\3\deep_scan\default=true
|
Paths\gamedirs\3\deep_scan\default=true
|
||||||
Paths\gamedirs\3\expanded=true
|
Paths\gamedirs\3\expanded=true
|
||||||
Paths\gamedirs\3\expanded\default=true
|
Paths\gamedirs\3\expanded\default=true
|
||||||
Paths\gamedirs\3\path=/run/user/1000/doc/a3fd0df5/n3ds
|
Paths\gamedirs\3\path=/home/deck/retrodeck/roms/n3ds
|
||||||
Paths\gamedirs\size=3
|
Paths\gamedirs\size=3
|
||||||
Paths\language=en
|
Paths\language=en
|
||||||
Paths\language\default=false
|
Paths\language\default=false
|
||||||
|
|
12
emu-configs/defaults/retrodeck.cfg
Normal file
12
emu-configs/defaults/retrodeck.cfg
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
version=
|
||||||
|
rdhome=/home/deck/retrodeck
|
||||||
|
roms_folder=/home/deck/retrodeck/roms
|
||||||
|
saves_folder=/home/deck/retrodeck/saves
|
||||||
|
states_folder=/home/deck/retrodeck/states
|
||||||
|
bios_folder=/home/deck/retrodeck/bios
|
||||||
|
media_folder=/home/deck/retrodeck/downloaded_media
|
||||||
|
themes_folder=/home/deck/retrodeck/themes
|
||||||
|
logs_folder=/home/deck/retrodeck/.logs
|
||||||
|
sdcard=/run/media/mmcblk0p1
|
||||||
|
|
||||||
|
power_user=false
|
|
@ -43,7 +43,7 @@ FastmemMode = true
|
||||||
|
|
||||||
[GPU]
|
[GPU]
|
||||||
Renderer = Vulkan
|
Renderer = Vulkan
|
||||||
ResolutionScale = 1
|
ResolutionScale = 3
|
||||||
Multisamples = 1
|
Multisamples = 1
|
||||||
UseDebugDevice = false
|
UseDebugDevice = false
|
||||||
UseSoftwareRendererForReadbacks = false
|
UseSoftwareRendererForReadbacks = false
|
||||||
|
@ -127,21 +127,27 @@ PatchFastBoot = false
|
||||||
|
|
||||||
|
|
||||||
[Controller1]
|
[Controller1]
|
||||||
Type = DigitalController
|
Type = AnalogController
|
||||||
ButtonUp = Keyboard/W
|
ButtonUp = Controller0/Button11
|
||||||
ButtonDown = Keyboard/S
|
ButtonDown = Controller0/Button12
|
||||||
ButtonLeft = Keyboard/A
|
ButtonLeft = Controller0/Button13
|
||||||
ButtonRight = Keyboard/D
|
ButtonRight = Controller0/Button14
|
||||||
ButtonSelect = Keyboard/Backspace
|
ButtonSelect = Controller0/Button4
|
||||||
ButtonStart = Keyboard/Return
|
ButtonStart = Controller0/Button6
|
||||||
ButtonTriangle = Keyboard/Keypad+8
|
ButtonTriangle = Controller0/Button3
|
||||||
ButtonCross = Keyboard/Keypad+2
|
ButtonCross = Controller0/Button0
|
||||||
ButtonSquare = Keyboard/Keypad+4
|
ButtonCircle = Controller0/Button1
|
||||||
ButtonCircle = Keyboard/Keypad+6
|
ButtonSquare = Controller0/Button2
|
||||||
ButtonL1 = Keyboard/Q
|
ButtonL1 = Controller0/Button9
|
||||||
ButtonL2 = Keyboard/1
|
ButtonL2 = Controller0/+Axis4
|
||||||
ButtonR1 = Keyboard/E
|
ButtonR1 = Controller0/Button10
|
||||||
ButtonR2 = Keyboard/3
|
ButtonR2 = Controller0/+Axis5
|
||||||
|
ButtonL3 = Controller0/Button7
|
||||||
|
ButtonR3 = Controller0/Button8
|
||||||
|
AxisLeftX = Controller0/Axis0
|
||||||
|
AxisLeftY = Controller0/Axis1
|
||||||
|
AxisRightX = Controller0/Axis2
|
||||||
|
AxisRightY = Controller0/Axis3
|
||||||
|
|
||||||
|
|
||||||
[Controller2]
|
[Controller2]
|
||||||
|
@ -176,6 +182,9 @@ Type = None
|
||||||
Card1Type = PerGameTitle
|
Card1Type = PerGameTitle
|
||||||
Card2Type = None
|
Card2Type = None
|
||||||
UsePlaylistTitle = true
|
UsePlaylistTitle = true
|
||||||
|
Card1Path = /var/data/duckstation/memcards/shared_card_1.mcd
|
||||||
|
Card2Path = /var/data/duckstation/memcards/shared_card_2.mcd
|
||||||
|
Directory = /var/data/duckstation/memcards
|
||||||
|
|
||||||
|
|
||||||
[ControllerPorts]
|
[ControllerPorts]
|
||||||
|
@ -211,11 +220,7 @@ GPUMaxRunAhead = 128
|
||||||
|
|
||||||
|
|
||||||
[Hotkeys]
|
[Hotkeys]
|
||||||
FastForward = Keyboard/Tab
|
PowerOff = Keyboard/R
|
||||||
TogglePause = Keyboard/Space
|
|
||||||
ToggleFullscreen = Keyboard/Alt+Return
|
|
||||||
Screenshot = Keyboard/F10
|
|
||||||
OpenQuickMenu = Keyboard/Escape
|
|
||||||
|
|
||||||
|
|
||||||
[Cheevos]
|
[Cheevos]
|
||||||
|
@ -226,5 +231,9 @@ UseFirstDiscFromPlaylist = true
|
||||||
|
|
||||||
|
|
||||||
[UI]
|
[UI]
|
||||||
MainWindowGeometry = AdnQywADAAAAAADrAAAAEQAABAoAAALpAAAA6wAAAC4AAAQKAAAC6QAAAAAAAAAABQAAAADrAAAALgAABAoAAALp
|
MainWindowGeometry = AdnQywADAAAAAAAAAAAAAAAAAx8AAALYAAAAAAAAAB0AAAMfAAAC2AAAAAAAAAAABQAAAAAAAAAAHQAAAx8AAALY
|
||||||
MainWindowState = AAAA/wAAAAD9AAAAAAAAAyAAAAI9AAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAOAHQAbwBvAGwAQgBhAHIBAAAAAP////8AAAAAAAAAAA==
|
MainWindowState = AAAA/wAAAAD9AAAAAAAAAyAAAAI9AAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAOAHQAbwBvAGwAQgBhAHIBAAAAAP////8AAAAAAAAAAA==
|
||||||
|
|
||||||
|
|
||||||
|
[GameList]
|
||||||
|
RecursivePaths = /home/deck/retrodeck/roms/psx
|
||||||
|
|
|
@ -33,6 +33,7 @@ WiiKeyboard = False
|
||||||
WiiSDCard = True
|
WiiSDCard = True
|
||||||
WiiSDCardAllowWrites = True
|
WiiSDCardAllowWrites = True
|
||||||
WiiSDCardEnableFolderSync = False
|
WiiSDCardEnableFolderSync = False
|
||||||
|
GFXBackend = Vulkan
|
||||||
[NetPlay]
|
[NetPlay]
|
||||||
TraversalChoice = direct
|
TraversalChoice = direct
|
||||||
[General]
|
[General]
|
||||||
|
@ -45,8 +46,9 @@ ISOPaths = 1
|
||||||
[Display]
|
[Display]
|
||||||
DisableScreenSaver = True
|
DisableScreenSaver = True
|
||||||
KeepWindowOnTop = False
|
KeepWindowOnTop = False
|
||||||
|
Fullscreen = True
|
||||||
[Interface]
|
[Interface]
|
||||||
ConfirmStop = True
|
ConfirmStop = False
|
||||||
LanguageCode =
|
LanguageCode =
|
||||||
OnScreenDisplayMessages = True
|
OnScreenDisplayMessages = True
|
||||||
PauseOnFocusLost = False
|
PauseOnFocusLost = False
|
||||||
|
@ -59,6 +61,7 @@ CursorVisibility = 2
|
||||||
[DSP]
|
[DSP]
|
||||||
Backend = No Audio Output
|
Backend = No Audio Output
|
||||||
EnableJIT = False
|
EnableJIT = False
|
||||||
|
DSPThread = True
|
||||||
[GBA]
|
[GBA]
|
||||||
BIOS = /var/data/primehack/GBA/gba_bios.bin
|
BIOS = /var/data/primehack/GBA/gba_bios.bin
|
||||||
Rom1 =
|
Rom1 =
|
||||||
|
|
|
@ -1,32 +1,37 @@
|
||||||
[GCPad1]
|
[GCPad1]
|
||||||
Device = SDL/0/Microsoft X-Box 360 pad 0
|
Device = SDL/0/Microsoft X-Box 360 pad 0
|
||||||
Buttons/A = `Button 0`
|
Buttons/A = `Full Axis 5+` | `Button 0`
|
||||||
Buttons/B = `Button 1`
|
Buttons/B = `Button 1`
|
||||||
Buttons/X = `Button 2`
|
Buttons/X = `Button 2`
|
||||||
Buttons/Y = `Button 3`
|
Buttons/Y = `Button 3`
|
||||||
Buttons/Z = `Button 6`
|
Buttons/Z = `Button 6`
|
||||||
Buttons/Start = `Button 7`
|
Buttons/Start = `Button 7`
|
||||||
Main Stick/Up = `Axis 4-`
|
Main Stick/Dead Zone = 10.0
|
||||||
Main Stick/Down = `Axis 4+`
|
Main Stick/Up = `Axis 1-`
|
||||||
Main Stick/Left = `Axis 3-`
|
Main Stick/Down = `Axis 1+`
|
||||||
Main Stick/Right = `Axis 3+`
|
Main Stick/Left = `Axis 0-`
|
||||||
|
Main Stick/Right = `Axis 0+`
|
||||||
Main Stick/Modifier/Range = 50.0
|
Main Stick/Modifier/Range = 50.0
|
||||||
Main Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
Main Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
C-Stick/Up = `Axis 1-`
|
C-Stick/Up = `Button 5` & `Hat 0 N`
|
||||||
C-Stick/Down = `Axis 1+`
|
C-Stick/Down = `Button 5` & `Hat 0 S`
|
||||||
C-Stick/Left = `Axis 0-`
|
C-Stick/Left = `Button 5` & `Hat 0 W`
|
||||||
C-Stick/Right = `Axis 0+`
|
C-Stick/Right = `Button 5` & `Hat 0 E`
|
||||||
C-Stick/Modifier/Range = 50.0
|
C-Stick/Modifier/Range = 50.0
|
||||||
C-Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
C-Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
Triggers/L = `Button 4`
|
Triggers/L = `Full Axis 2+`
|
||||||
D-Pad/Up = `Hat 0 N`
|
|
||||||
D-Pad/Down = `Hat 0 S`
|
|
||||||
D-Pad/Left = `Hat 0 W`
|
|
||||||
D-Pad/Right = `Hat 0 E`
|
|
||||||
Camera Control/Modifier/Range = 50.0
|
|
||||||
Triggers/L-Analog = `Full Axis 2+`
|
Triggers/L-Analog = `Full Axis 2+`
|
||||||
Triggers/R-Analog = `Full Axis 5+`
|
D-Pad/Up = !`Button 5` & `Hat 0 N`
|
||||||
Triggers/R = `Button 5`
|
D-Pad/Down = !`Button 5` & `Hat 0 S`
|
||||||
|
D-Pad/Left = !`Button 5` & `Hat 0 W`
|
||||||
|
D-Pad/Right = !`Button 5` & `Hat 0 E`
|
||||||
|
Camera Control/Dead Zone = 10.0
|
||||||
|
Camera Control/Up = `Axis 4-`
|
||||||
|
Camera Control/Down = `Axis 4+`
|
||||||
|
Camera Control/Left = `Axis 3-`
|
||||||
|
Camera Control/Right = `Axis 3+`
|
||||||
|
Camera Control/Modifier/Range = 50.0
|
||||||
|
PrimeHack/Mode = 1
|
||||||
[GCPad2]
|
[GCPad2]
|
||||||
Device = XInput2/0/Virtual core pointer
|
Device = XInput2/0/Virtual core pointer
|
||||||
Main Stick/Modifier/Range = 50.0
|
Main Stick/Modifier/Range = 50.0
|
||||||
|
|
25
emu-configs/primehack/GFX.ini
Normal file
25
emu-configs/primehack/GFX.ini
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
[Enhancements]
|
||||||
|
ArbitraryMipmapDetection = True
|
||||||
|
DisableCopyFilter = True
|
||||||
|
ForceTrueColor = True
|
||||||
|
[Hacks]
|
||||||
|
BBoxEnable = False
|
||||||
|
DeferEFBCopies = True
|
||||||
|
EFBEmulateFormatChanges = False
|
||||||
|
EFBScaledCopy = True
|
||||||
|
EFBToTextureEnable = True
|
||||||
|
ImmediateXFBEnable = True
|
||||||
|
SkipDuplicateXFBs = True
|
||||||
|
XFBToTextureEnable = True
|
||||||
|
[PrimeHack Misc]
|
||||||
|
Lock Camera in Motion Puzzles = True
|
||||||
|
ReduceBloom = True
|
||||||
|
ToggleArmRePosition = True
|
||||||
|
[Settings]
|
||||||
|
AspectRatio = 3
|
||||||
|
BackendMultithreading = True
|
||||||
|
DumpBaseTextures = True
|
||||||
|
DumpMipTextures = True
|
||||||
|
FastDepthCalc = True
|
||||||
|
InternalResolution = 2
|
||||||
|
SaveTextureCacheToState = True
|
3
emu-configs/primehack/Hotkeys.ini
Normal file
3
emu-configs/primehack/Hotkeys.ini
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[Hotkeys]
|
||||||
|
Device = SDL/0/Microsoft X-Box 360 pad 0
|
||||||
|
General/Stop = `Button 6`&`Button 7`
|
|
@ -0,0 +1,34 @@
|
||||||
|
[Profile]
|
||||||
|
Device = SDL/0/Microsoft X-Box 360 pad 0
|
||||||
|
Buttons/A = `Full Axis 5+` | `Button 1`
|
||||||
|
Buttons/B = `Button 0`
|
||||||
|
Buttons/X = `Button 3`
|
||||||
|
Buttons/Y = `Button 2`
|
||||||
|
Buttons/Z = `Button 6`
|
||||||
|
Buttons/Start = `Button 7`
|
||||||
|
Main Stick/Dead Zone = 10.0
|
||||||
|
Main Stick/Up = `Axis 1-`
|
||||||
|
Main Stick/Down = `Axis 1+`
|
||||||
|
Main Stick/Left = `Axis 0-`
|
||||||
|
Main Stick/Right = `Axis 0+`
|
||||||
|
Main Stick/Modifier/Range = 50.0
|
||||||
|
Main Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
|
C-Stick/Up = `Button 5` & `Hat 0 N`
|
||||||
|
C-Stick/Down = `Button 5` & `Hat 0 S`
|
||||||
|
C-Stick/Left = `Button 5` & `Hat 0 W`
|
||||||
|
C-Stick/Right = `Button 5` & `Hat 0 E`
|
||||||
|
C-Stick/Modifier/Range = 50.0
|
||||||
|
C-Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
|
Triggers/L = `Full Axis 2+`
|
||||||
|
Triggers/L-Analog = `Full Axis 2+`
|
||||||
|
D-Pad/Up = !`Button 5` & `Hat 0 N`
|
||||||
|
D-Pad/Down = !`Button 5` & `Hat 0 S`
|
||||||
|
D-Pad/Left = !`Button 5` & `Hat 0 W`
|
||||||
|
D-Pad/Right = !`Button 5` & `Hat 0 E`
|
||||||
|
Camera Control/Dead Zone = 10.0
|
||||||
|
Camera Control/Up = `Axis 4-`
|
||||||
|
Camera Control/Down = `Axis 4+`
|
||||||
|
Camera Control/Left = `Axis 3-`
|
||||||
|
Camera Control/Right = `Axis 3+`
|
||||||
|
Camera Control/Modifier/Range = 50.0
|
||||||
|
PrimeHack/Mode = 1
|
|
@ -0,0 +1,34 @@
|
||||||
|
[Profile]
|
||||||
|
Device = SDL/0/Microsoft X-Box 360 pad 0
|
||||||
|
Buttons/A = `Full Axis 5+` | `Button 0`
|
||||||
|
Buttons/B = `Button 1`
|
||||||
|
Buttons/X = `Button 2`
|
||||||
|
Buttons/Y = `Button 3`
|
||||||
|
Buttons/Z = `Button 6`
|
||||||
|
Buttons/Start = `Button 7`
|
||||||
|
Main Stick/Dead Zone = 10.0
|
||||||
|
Main Stick/Up = `Axis 1-`
|
||||||
|
Main Stick/Down = `Axis 1+`
|
||||||
|
Main Stick/Left = `Axis 0-`
|
||||||
|
Main Stick/Right = `Axis 0+`
|
||||||
|
Main Stick/Modifier/Range = 50.0
|
||||||
|
Main Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
|
C-Stick/Up = `Button 5` & `Hat 0 N`
|
||||||
|
C-Stick/Down = `Button 5` & `Hat 0 S`
|
||||||
|
C-Stick/Left = `Button 5` & `Hat 0 W`
|
||||||
|
C-Stick/Right = `Button 5` & `Hat 0 E`
|
||||||
|
C-Stick/Modifier/Range = 50.0
|
||||||
|
C-Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
|
Triggers/L = `Full Axis 2+`
|
||||||
|
Triggers/L-Analog = `Full Axis 2+`
|
||||||
|
D-Pad/Up = !`Button 5` & `Hat 0 N`
|
||||||
|
D-Pad/Down = !`Button 5` & `Hat 0 S`
|
||||||
|
D-Pad/Left = !`Button 5` & `Hat 0 W`
|
||||||
|
D-Pad/Right = !`Button 5` & `Hat 0 E`
|
||||||
|
Camera Control/Dead Zone = 10.0
|
||||||
|
Camera Control/Up = `Axis 4-`
|
||||||
|
Camera Control/Down = `Axis 4+`
|
||||||
|
Camera Control/Left = `Axis 3-`
|
||||||
|
Camera Control/Right = `Axis 3+`
|
||||||
|
Camera Control/Modifier/Range = 50.0
|
||||||
|
PrimeHack/Mode = 1
|
|
@ -1,29 +0,0 @@
|
||||||
[Profile]
|
|
||||||
Device = SDL/0/Microsoft X-Box 360 pad 0
|
|
||||||
Buttons/A = `Button 0`
|
|
||||||
Buttons/B = `Button 1`
|
|
||||||
Buttons/X = `Button 2`
|
|
||||||
Buttons/Y = `Button 3`
|
|
||||||
Buttons/Z = `Button 6`
|
|
||||||
Buttons/Start = `Button 7`
|
|
||||||
Main Stick/Up = `Axis 4-`
|
|
||||||
Main Stick/Down = `Axis 4+`
|
|
||||||
Main Stick/Left = `Axis 3-`
|
|
||||||
Main Stick/Right = `Axis 3+`
|
|
||||||
Main Stick/Modifier/Range = 50.0
|
|
||||||
Main Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
|
||||||
C-Stick/Up = `Axis 1-`
|
|
||||||
C-Stick/Down = `Axis 1+`
|
|
||||||
C-Stick/Left = `Axis 0-`
|
|
||||||
C-Stick/Right = `Axis 0+`
|
|
||||||
C-Stick/Modifier/Range = 50.0
|
|
||||||
C-Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
|
||||||
Triggers/L = `Button 4`
|
|
||||||
Triggers/R = `Button 5`
|
|
||||||
Triggers/L-Analog = `Full Axis 2+`
|
|
||||||
Triggers/R-Analog = `Full Axis 5+`
|
|
||||||
D-Pad/Up = `Hat 0 N`
|
|
||||||
D-Pad/Down = `Hat 0 S`
|
|
||||||
D-Pad/Left = `Hat 0 W`
|
|
||||||
D-Pad/Right = `Hat 0 E`
|
|
||||||
Camera Control/Modifier/Range = 50.0
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[Profile]
|
||||||
|
Device = SDL/0/Microsoft X-Box 360 pad 0
|
||||||
|
General/Stop = `Button 6`&`Button 7`
|
|
@ -0,0 +1,51 @@
|
||||||
|
[Profile]
|
||||||
|
Device = SDL/0/Microsoft X-Box 360 pad 0
|
||||||
|
Buttons/A = `Full Axis 5+` | `Button 1`
|
||||||
|
Buttons/B = `Button 0`
|
||||||
|
Buttons/1 = `Button 7`
|
||||||
|
Buttons/2 = `Button 6`
|
||||||
|
Buttons/- = `Button 4`
|
||||||
|
Buttons/+ = `Button 5`
|
||||||
|
Buttons/Down = `Button 3`
|
||||||
|
D-Pad/Down = `Button 3`
|
||||||
|
Tilt/Modifier/Range = 50.0
|
||||||
|
IMUIR/Enabled = False
|
||||||
|
Extension = Nunchuk
|
||||||
|
Nunchuk/Buttons/C = `Button 4`
|
||||||
|
Nunchuk/Buttons/Z = `Full Axis 2+`
|
||||||
|
Nunchuk/Stick/Dead Zone = 15.0
|
||||||
|
Nunchuk/Stick/Up = `Axis 1-`
|
||||||
|
Nunchuk/Stick/Down = `Axis 1+`
|
||||||
|
Nunchuk/Stick/Left = `Axis 0-`
|
||||||
|
Nunchuk/Stick/Right = `Axis 0+`
|
||||||
|
Nunchuk/Stick/Modifier/Range = 50.0
|
||||||
|
Nunchuk/Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
|
Nunchuk/Tilt/Modifier/Range = 50.0
|
||||||
|
Classic/Left Stick/Modifier/Range = 50.0
|
||||||
|
Classic/Right Stick/Modifier/Range = 50.0
|
||||||
|
Guitar/Stick/Modifier/Range = 50.0
|
||||||
|
Drums/Stick/Modifier/Range = 50.0
|
||||||
|
Turntable/Stick/Modifier/Range = 50.0
|
||||||
|
uDraw/Stylus/Modifier/Range = 50.0
|
||||||
|
Drawsome/Stylus/Modifier/Range = 50.0
|
||||||
|
Rumble/Motor = Weak
|
||||||
|
PrimeHack/Beam 1 = `Button 5` & `Hat 0 N`
|
||||||
|
PrimeHack/Beam 2 = `Button 5` & `Hat 0 S`
|
||||||
|
PrimeHack/Beam 3 = `Button 5` & `Hat 0 W`
|
||||||
|
PrimeHack/Beam 4 = `Button 5` & `Hat 0 E`
|
||||||
|
PrimeHack/Visor 1 = !`Button 5` & `Hat 0 N`
|
||||||
|
PrimeHack/Visor 2 = !`Button 5` & `Hat 0 S`
|
||||||
|
PrimeHack/Visor 3 = !`Button 5` & `Hat 0 W`
|
||||||
|
PrimeHack/Visor 4 = !`Button 5` & `Hat 0 E`
|
||||||
|
PrimeHack/AltProfile = Disabled
|
||||||
|
PrimeHack/Control Reticle When Locked-On = True
|
||||||
|
Camera Control/Dead Zone = 15.0
|
||||||
|
Camera Control/Up = `Axis 4-`
|
||||||
|
Camera Control/Down = `Axis 4+`
|
||||||
|
Camera Control/Left = `Axis 3-`
|
||||||
|
Camera Control/Right = `Axis 3+`
|
||||||
|
Camera Control/Modifier/Range = 50.0
|
||||||
|
PrimeHack/Mode = 1
|
||||||
|
PrimeHack/Tap Grapple Repeatedly To Pull = True
|
||||||
|
PrimeHack/Spring Ball = `Button 10`
|
||||||
|
PrimeHack/Grapple Lasso = `Button 2`
|
|
@ -0,0 +1,51 @@
|
||||||
|
[Profile]
|
||||||
|
Device = SDL/0/Microsoft X-Box 360 pad 0
|
||||||
|
Buttons/A = `Full Axis 5+` | `Button 0`
|
||||||
|
Buttons/B = `Button 1`
|
||||||
|
Buttons/1 = `Button 7`
|
||||||
|
Buttons/2 = `Button 6`
|
||||||
|
Buttons/- = `Button 4`
|
||||||
|
Buttons/+ = `Button 5`
|
||||||
|
Buttons/Down = `Button 3`
|
||||||
|
D-Pad/Down = `Button 3`
|
||||||
|
Tilt/Modifier/Range = 50.0
|
||||||
|
IMUIR/Enabled = False
|
||||||
|
Extension = Nunchuk
|
||||||
|
Nunchuk/Buttons/C = `Button 4`
|
||||||
|
Nunchuk/Buttons/Z = `Full Axis 2+`
|
||||||
|
Nunchuk/Stick/Dead Zone = 15.0
|
||||||
|
Nunchuk/Stick/Up = `Axis 1-`
|
||||||
|
Nunchuk/Stick/Down = `Axis 1+`
|
||||||
|
Nunchuk/Stick/Left = `Axis 0-`
|
||||||
|
Nunchuk/Stick/Right = `Axis 0+`
|
||||||
|
Nunchuk/Stick/Modifier/Range = 50.0
|
||||||
|
Nunchuk/Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
|
Nunchuk/Tilt/Modifier/Range = 50.0
|
||||||
|
Classic/Left Stick/Modifier/Range = 50.0
|
||||||
|
Classic/Right Stick/Modifier/Range = 50.0
|
||||||
|
Guitar/Stick/Modifier/Range = 50.0
|
||||||
|
Drums/Stick/Modifier/Range = 50.0
|
||||||
|
Turntable/Stick/Modifier/Range = 50.0
|
||||||
|
uDraw/Stylus/Modifier/Range = 50.0
|
||||||
|
Drawsome/Stylus/Modifier/Range = 50.0
|
||||||
|
Rumble/Motor = Weak
|
||||||
|
PrimeHack/Beam 1 = `Button 5` & `Hat 0 N`
|
||||||
|
PrimeHack/Beam 2 = `Button 5` & `Hat 0 S`
|
||||||
|
PrimeHack/Beam 3 = `Button 5` & `Hat 0 W`
|
||||||
|
PrimeHack/Beam 4 = `Button 5` & `Hat 0 E`
|
||||||
|
PrimeHack/Visor 1 = !`Button 5` & `Hat 0 N`
|
||||||
|
PrimeHack/Visor 2 = !`Button 5` & `Hat 0 S`
|
||||||
|
PrimeHack/Visor 3 = !`Button 5` & `Hat 0 W`
|
||||||
|
PrimeHack/Visor 4 = !`Button 5` & `Hat 0 E`
|
||||||
|
PrimeHack/AltProfile = Disabled
|
||||||
|
PrimeHack/Control Reticle When Locked-On = True
|
||||||
|
Camera Control/Dead Zone = 15.0
|
||||||
|
Camera Control/Up = `Axis 4-`
|
||||||
|
Camera Control/Down = `Axis 4+`
|
||||||
|
Camera Control/Left = `Axis 3-`
|
||||||
|
Camera Control/Right = `Axis 3+`
|
||||||
|
Camera Control/Modifier/Range = 50.0
|
||||||
|
PrimeHack/Mode = 1
|
||||||
|
PrimeHack/Tap Grapple Repeatedly To Pull = True
|
||||||
|
PrimeHack/Spring Ball = `Button 10`
|
||||||
|
PrimeHack/Grapple Lasso = `Button 2`
|
|
@ -39,8 +39,8 @@ floating=false
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
|
||||||
|
|
||||||
[mainwindow]
|
[mainwindow]
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\x1f\0\0\x2\xcc\0\0\0\0\0\0\0\0\0\0\x3\x1f\0\0\x2\xcc\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x3\x1f\0\0\x2\xcc)
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf)
|
||||||
state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\x1\x8f\0\0\x2\x80\xfc\x2\0\0\0\x1\xfc\0\0\0t\0\0\x2\x80\0\0\0\0\0\xff\xff\xff\xfa\xff\xff\xff\xff\x2\0\0\0\n\xfb\0\0\0\x6\0l\0o\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x88\0\xff\xff\xff\xfb\0\0\0\x12\0l\0o\0g\0\x63\0o\0n\0\x66\0i\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xc3\0\xff\xff\xff\xfb\0\0\0\b\0\x63\0o\0\x64\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x2\0\xff\xff\xff\xfb\0\0\0\x12\0r\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0]\0\xff\xff\xff\xfb\0\0\0\xe\0t\0h\0r\0\x65\0\x61\0\x64\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x14\0\xff\xff\xff\xfb\0\0\0\n\0w\0\x61\0t\0\x63\0h\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x84\0\xff\xff\xff\xfb\0\0\0\x16\0\x62\0r\0\x65\0\x61\0k\0p\0o\0i\0n\0t\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x84\0\xff\xff\xff\xfb\0\0\0\f\0m\0\x65\0m\0o\0r\0y\0\0\0\0\0\xff\xff\xff\xff\0\0\0]\0\xff\xff\xff\xfb\0\0\0\xe\0n\0\x65\0t\0w\0o\0r\0k\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x1d\0\xff\xff\xff\xfb\0\0\0\x12\0j\0i\0t\0w\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xc4\0\xff\xff\xff\0\0\x3 \0\0\x2w\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\xe\0t\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
|
state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\x1\x8f\0\0\x2\x80\xfc\x2\0\0\0\x1\xfc\0\0\0t\0\0\x2\x80\0\0\0\0\0\xff\xff\xff\xfa\xff\xff\xff\xff\x2\0\0\0\n\xfb\0\0\0\x6\0l\0o\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x88\0\xff\xff\xff\xfb\0\0\0\x12\0l\0o\0g\0\x63\0o\0n\0\x66\0i\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xc3\0\xff\xff\xff\xfb\0\0\0\b\0\x63\0o\0\x64\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x2\0\xff\xff\xff\xfb\0\0\0\x12\0r\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0]\0\xff\xff\xff\xfb\0\0\0\xe\0t\0h\0r\0\x65\0\x61\0\x64\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x14\0\xff\xff\xff\xfb\0\0\0\n\0w\0\x61\0t\0\x63\0h\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x84\0\xff\xff\xff\xfb\0\0\0\x16\0\x62\0r\0\x65\0\x61\0k\0p\0o\0i\0n\0t\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x84\0\xff\xff\xff\xfb\0\0\0\f\0m\0\x65\0m\0o\0r\0y\0\0\0\0\0\xff\xff\xff\xff\0\0\0]\0\xff\xff\xff\xfb\0\0\0\xe\0n\0\x65\0t\0w\0o\0r\0k\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x1d\0\xff\xff\xff\xfb\0\0\0\x12\0j\0i\0t\0w\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xc4\0\xff\xff\xff\0\0\x2\x80\0\0\x1\x8a\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\xe\0t\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
|
||||||
|
|
||||||
[memorywidget]
|
[memorywidget]
|
||||||
addrspace_auxiliary=false
|
addrspace_auxiliary=false
|
||||||
|
@ -69,10 +69,10 @@ floating=false
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
|
||||||
|
|
||||||
[renderwidget]
|
[renderwidget]
|
||||||
geometry=@ByteArray()
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf)
|
||||||
|
|
||||||
[tableheader]
|
[tableheader]
|
||||||
state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x2\x1\0\0\0\0\0\0\0\0\0\0\0\xe(?\0\0\0\b\0\0\0\t\0\0\0\x64\0\0\0\b\0\0\0\x64\0\0\0\v\0\0\0\x64\0\0\0\n\0\0\0\x64\0\0\0\r\0\0\0\x64\0\0\0\f\0\0\0\x64\0\0\0\x3\0\0\0\x64\0\0\0\x5\0\0\0\x46\0\0\x3\x13\0\0\0\xe\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\0\0\0&\0\0\0\x84\0\0\0\0\0\0\0\xe\0\0\0&\0\0\0\x1\0\0\0\x2\0\0\0\x66\0\0\0\x1\0\0\0\x2\0\0\x1\x6\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x1\x6\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0&\0\0\0\x1\0\0\0\x2\0\0\0U\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\0)
|
state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x2\x1\0\0\0\0\0\0\0\0\0\0\0\xe(?\0\0\0\b\0\0\0\f\0\0\0\x64\0\0\0\r\0\0\0\x64\0\0\0\n\0\0\0\x64\0\0\0\v\0\0\0\x64\0\0\0\b\0\0\0\x64\0\0\0\t\0\0\0\x64\0\0\0\x5\0\0\0\x46\0\0\0\x3\0\0\0\x64\0\0\x2s\0\0\0\xe\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\0\0\0&\0\0\0\x84\0\0\0\0\0\0\0\xe\0\0\0&\0\0\0\x1\0\0\0\x2\0\0\0\x66\0\0\0\x1\0\0\0\x2\0\0\0\xb6\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\xb6\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0&\0\0\0\x1\0\0\0\x2\0\0\0U\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\0)
|
||||||
|
|
||||||
[threadwidget]
|
[threadwidget]
|
||||||
floating=false
|
floating=false
|
||||||
|
|
|
@ -1,24 +1,26 @@
|
||||||
[Wiimote1]
|
[Wiimote1]
|
||||||
Device = XInput2/0/Virtual core pointer
|
Device = SDL/0/Microsoft X-Box 360 pad 0
|
||||||
Buttons/A = `Click 1` | RETURN
|
Buttons/A = `Full Axis 5+` | `Button 0`
|
||||||
Buttons/B = space
|
Buttons/B = `Button 1`
|
||||||
Buttons/1 = Tab
|
Buttons/1 = `Button 7`
|
||||||
Buttons/2 = `grave`
|
Buttons/2 = `Button 6`
|
||||||
Buttons/- = E
|
Buttons/- = `Button 4`
|
||||||
Buttons/+ = R
|
Buttons/+ = `Button 5`
|
||||||
|
Buttons/Down = `Button 3`
|
||||||
|
D-Pad/Down = `Button 3`
|
||||||
Tilt/Modifier/Range = 50.0
|
Tilt/Modifier/Range = 50.0
|
||||||
IMUIR/Enabled = False
|
IMUIR/Enabled = False
|
||||||
Extension = Nunchuk
|
Extension = Nunchuk
|
||||||
Nunchuk/Buttons/C = Ctrl
|
Nunchuk/Buttons/C = `Button 4`
|
||||||
Nunchuk/Buttons/Z = `Click 3`
|
Nunchuk/Buttons/Z = `Full Axis 2+`
|
||||||
Nunchuk/Stick/Up = W | UP
|
Nunchuk/Stick/Dead Zone = 15.0
|
||||||
Nunchuk/Stick/Down = S | DOWN
|
Nunchuk/Stick/Up = `Axis 1-`
|
||||||
Nunchuk/Stick/Left = A | LEFT
|
Nunchuk/Stick/Down = `Axis 1+`
|
||||||
Nunchuk/Stick/Right = D | RIGHT
|
Nunchuk/Stick/Left = `Axis 0-`
|
||||||
|
Nunchuk/Stick/Right = `Axis 0+`
|
||||||
Nunchuk/Stick/Modifier/Range = 50.0
|
Nunchuk/Stick/Modifier/Range = 50.0
|
||||||
Nunchuk/Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
Nunchuk/Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||||
Nunchuk/Tilt/Modifier/Range = 50.0
|
Nunchuk/Tilt/Modifier/Range = 50.0
|
||||||
Nunchuk/Shake/Y = LSHIFT & (`Axis Y-` | `Axis Y+` | `Axis X-` | `Axis X+`)
|
|
||||||
Classic/Left Stick/Modifier/Range = 50.0
|
Classic/Left Stick/Modifier/Range = 50.0
|
||||||
Classic/Right Stick/Modifier/Range = 50.0
|
Classic/Right Stick/Modifier/Range = 50.0
|
||||||
Guitar/Stick/Modifier/Range = 50.0
|
Guitar/Stick/Modifier/Range = 50.0
|
||||||
|
@ -26,23 +28,27 @@ Drums/Stick/Modifier/Range = 50.0
|
||||||
Turntable/Stick/Modifier/Range = 50.0
|
Turntable/Stick/Modifier/Range = 50.0
|
||||||
uDraw/Stylus/Modifier/Range = 50.0
|
uDraw/Stylus/Modifier/Range = 50.0
|
||||||
Drawsome/Stylus/Modifier/Range = 50.0
|
Drawsome/Stylus/Modifier/Range = 50.0
|
||||||
D-Pad/Down = F
|
Rumble/Motor = Weak
|
||||||
PrimeHack/Beam 1 = `1` & !E
|
PrimeHack/Beam 1 = `Button 5` & `Hat 0 N`
|
||||||
PrimeHack/Beam 2 = `2` & !E
|
PrimeHack/Beam 2 = `Button 5` & `Hat 0 S`
|
||||||
PrimeHack/Beam 3 = `3` & !E
|
PrimeHack/Beam 3 = `Button 5` & `Hat 0 W`
|
||||||
PrimeHack/Beam 4 = `4` & !E
|
PrimeHack/Beam 4 = `Button 5` & `Hat 0 E`
|
||||||
PrimeHack/Next Beam = !E & `Axis Z+`
|
PrimeHack/Visor 1 = !`Button 5` & `Hat 0 N`
|
||||||
PrimeHack/Previous Beam = !E & `Axis Z-`
|
PrimeHack/Visor 2 = !`Button 5` & `Hat 0 S`
|
||||||
PrimeHack/Visor 1 = E & (!`1` & !`2` & !`3`)
|
PrimeHack/Visor 3 = !`Button 5` & `Hat 0 W`
|
||||||
PrimeHack/Visor 2 = E & `1`
|
PrimeHack/Visor 4 = !`Button 5` & `Hat 0 E`
|
||||||
PrimeHack/Visor 3 = E & `2`
|
|
||||||
PrimeHack/Visor 4 = E & `3`
|
|
||||||
PrimeHack/Next Visor = E & `Axis Z+`
|
|
||||||
PrimeHack/Previous Visor = E & `Axis Z-`
|
|
||||||
PrimeHack/AltProfile = Disabled
|
PrimeHack/AltProfile = Disabled
|
||||||
|
PrimeHack/Control Reticle When Locked-On = True
|
||||||
|
Camera Control/Dead Zone = 15.0
|
||||||
|
Camera Control/Up = `Axis 4-`
|
||||||
|
Camera Control/Down = `Axis 4+`
|
||||||
|
Camera Control/Left = `Axis 3-`
|
||||||
|
Camera Control/Right = `Axis 3+`
|
||||||
Camera Control/Modifier/Range = 50.0
|
Camera Control/Modifier/Range = 50.0
|
||||||
PrimeHack/Spring Ball = Alt
|
PrimeHack/Mode = 1
|
||||||
PrimeHack/Grapple Lasso = Shift
|
PrimeHack/Tap Grapple Repeatedly To Pull = True
|
||||||
|
PrimeHack/Spring Ball = `Button 10`
|
||||||
|
PrimeHack/Grapple Lasso = `Button 2`
|
||||||
[Wiimote2]
|
[Wiimote2]
|
||||||
Device = XInput2/0/Virtual core pointer
|
Device = XInput2/0/Virtual core pointer
|
||||||
Tilt/Modifier/Range = 50.0
|
Tilt/Modifier/Range = 50.0
|
||||||
|
|
291
functions.sh
291
functions.sh
|
@ -8,16 +8,16 @@
|
||||||
# FUNCTION SECTION
|
# FUNCTION SECTION
|
||||||
#=================
|
#=================
|
||||||
|
|
||||||
browse() {
|
directory_browse() {
|
||||||
# This function browses for a directory and returns the path chosen
|
# This function browses for a directory and returns the path chosen
|
||||||
# USAGE: path_to_be_browsed_for=$(browse $action_text)
|
# USAGE: path_to_be_browsed_for=$(directory_browse $action_text)
|
||||||
|
|
||||||
path_selected=false
|
local path_selected=false
|
||||||
|
|
||||||
while [ $path_selected == false ]
|
while [ $path_selected == false ]
|
||||||
do
|
do
|
||||||
target="$(zenity --file-selection --title="Choose $1" --directory)"
|
local target="$(zenity --file-selection --title="Choose $1" --directory)"
|
||||||
if [ $? == 0 ] #yes
|
if [ ! -z $target ] #yes
|
||||||
then
|
then
|
||||||
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
|
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
|
||||||
--text="Directory $target chosen, is this correct?"
|
--text="Directory $target chosen, is this correct?"
|
||||||
|
@ -29,7 +29,37 @@ browse() {
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
|
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
|
||||||
--text="No directory selected. Do you want to exit?"
|
--text="No directory selected. Do you want to exit the selection process?"
|
||||||
|
if [ $? == 0 ]
|
||||||
|
then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
file_browse() {
|
||||||
|
# This function browses for a file and returns the path chosen
|
||||||
|
# USAGE: file_to_be_browsed_for=$(file_browse $action_text)
|
||||||
|
|
||||||
|
local file_selected=false
|
||||||
|
|
||||||
|
while [ $file_selected == false ]
|
||||||
|
do
|
||||||
|
local target="$(zenity --file-selection --title="Choose $1")"
|
||||||
|
if [ ! -z $target ] #yes
|
||||||
|
then
|
||||||
|
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
|
||||||
|
--text="File $target chosen, is this correct?"
|
||||||
|
if [ $? == 0 ]
|
||||||
|
then
|
||||||
|
file_selected=true
|
||||||
|
echo $target
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
|
||||||
|
--text="No file selected. Do you want to exit the selection process?"
|
||||||
if [ $? == 0 ]
|
if [ $? == 0 ]
|
||||||
then
|
then
|
||||||
break
|
break
|
||||||
|
@ -86,6 +116,64 @@ move() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
compress_to_chd () {
|
||||||
|
# Function for compressing one or more files to .chd format
|
||||||
|
# USAGE: compress_to_chd $full_path_to_input_file $full_path_to_output_file
|
||||||
|
|
||||||
|
echo "Compressing file $1 to $2.chd"
|
||||||
|
/app/bin/chdman createcd -i $1 -o $2.chd
|
||||||
|
}
|
||||||
|
|
||||||
|
validate_for_chd () {
|
||||||
|
# Function for validating chd compression candidates, and compresses if validation passes. Supports .cue, .iso and .gdi formats ONLY
|
||||||
|
# USAGE: validate_for_chd $input_file
|
||||||
|
|
||||||
|
local file=$1
|
||||||
|
current_run_log_file="chd_compression_"$(date +"%Y_%m_%d_%I_%M_%p").log""
|
||||||
|
echo "Validating file:" $file > "$logs_folder/$current_run_log_file"
|
||||||
|
if [[ "$file" == *".cue" ]] || [[ "$file" == *".gdi" ]] || [[ "$file" == *".iso" ]]; then
|
||||||
|
echo ".cue/.iso/.gdi file detected" >> $logs_folder/$current_run_log_file
|
||||||
|
local file_path=$(dirname $(realpath $file))
|
||||||
|
local file_base_name=$(basename $file)
|
||||||
|
local file_name=${file_base_name%.*}
|
||||||
|
echo "File base path:" $file_path >> "$logs_folder/$current_run_log_file"
|
||||||
|
echo "File base name:" $file_name >> "$logs_folder/$current_run_log_file"
|
||||||
|
if [[ "$file" == *".cue" ]]; then # Validate .cue file
|
||||||
|
local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" $file)
|
||||||
|
local cue_validated="false"
|
||||||
|
for line in $cue_bin_files
|
||||||
|
do
|
||||||
|
if [[ -f "$file_path/$line" ]]; then
|
||||||
|
echo ".bin file found at $file_path/$line" >> "$logs_folder/$current_run_log_file"
|
||||||
|
cue_validated="true"
|
||||||
|
else
|
||||||
|
echo ".bin file NOT found at $file_path/$line" >> "$logs_folder/$current_run_log_file"
|
||||||
|
echo ".cue file could not be validated. Please verify your .cue file contains the correct corresponding .bin file information and retry." >> "$logs_folder/$current_run_log_file"
|
||||||
|
cue_validated="false"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ $cue_validated == "true" ]]; then
|
||||||
|
echo $cue_validated
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo $cue_validated
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "File type not recognized. Supported file types are .cue, .gdi and .iso" >> "$logs_folder/$current_run_log_file"
|
||||||
|
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 == "KDE" ]]; then
|
||||||
|
|
||||||
|
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
|
||||||
|
--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!"
|
||||||
|
}
|
||||||
|
|
||||||
set_setting_value() {
|
set_setting_value() {
|
||||||
# Function for editing settings
|
# 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)
|
||||||
|
@ -282,8 +370,8 @@ enable_file() {
|
||||||
mv $(realpath $1.disabled) $(realpath $(echo $1 | sed -e 's/\.disabled//'))
|
mv $(realpath $1.disabled) $(realpath $(echo $1 | sed -e 's/\.disabled//'))
|
||||||
}
|
}
|
||||||
|
|
||||||
generate_patch() {
|
generate_single_patch() {
|
||||||
# generate_patch $original_file $modified_file $patch_file $system
|
# generate_single_patch $original_file $modified_file $patch_file $system
|
||||||
|
|
||||||
rm $3 # Remove old patch file (maybe change this to create a backup instead?)
|
rm $3 # Remove old patch file (maybe change this to create a backup instead?)
|
||||||
|
|
||||||
|
@ -382,50 +470,106 @@ generate_patch() {
|
||||||
done < $2
|
done < $2
|
||||||
}
|
}
|
||||||
|
|
||||||
deploy_patch() {
|
deploy_single_patch() {
|
||||||
|
|
||||||
# This function will take an "original" file and a patch file and generate a ready to use modified file
|
# This function will take an "original" file and a patch file and generate a ready to use modified file
|
||||||
# USAGE: deploy_patch $original_file $patch_file $output_file
|
# USAGE: deploy_single_patch $original_file $patch_file $output_file
|
||||||
|
|
||||||
cp -fv $1 $3 # Create a copy of the original file to be patched
|
cp -fv $1 $3 # Create a copy of the original file to be patched
|
||||||
|
|
||||||
while IFS="^" read -r action current_section setting_name setting_value system_name
|
while IFS="^" read -r action current_section setting_name setting_value system_name
|
||||||
do
|
do
|
||||||
|
|
||||||
case $action in
|
case $action in
|
||||||
|
|
||||||
"disable_file" )
|
"disable_file" )
|
||||||
disable_file $setting_name
|
disable_file $setting_name
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_file" )
|
"enable_file" )
|
||||||
enable_file $setting_name
|
enable_file $setting_name
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"add_setting" )
|
"add_setting" )
|
||||||
add_setting $3 "$setting_name" $system_name $current_section
|
add_setting $3 "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"disable_setting" )
|
"disable_setting" )
|
||||||
disable_setting $3 "$setting_name" $system_name $current_section
|
disable_setting $3 "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_setting" )
|
"enable_setting" )
|
||||||
enable_setting $3 "$setting_name" $system_name $current_section
|
enable_setting $3 "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"change" )
|
"change" )
|
||||||
set_setting_value $3 "$setting_name" "$setting_value" $system_name $current_section
|
set_setting_value $3 "$setting_name" "$setting_value" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
* )
|
* )
|
||||||
echo "Config file malformed"
|
echo "Config file malformed"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
done < $2
|
done < $2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deploy_multi_patch() {
|
||||||
|
|
||||||
|
# This function will take a single "batch" patch file and run all patches listed in it, across multiple config files
|
||||||
|
# USAGE: deploy_multi_patch $patch_file
|
||||||
|
# Patch file format should be as follows, with optional entries in (). Optional settings can be left empty, but must still have ^ dividers:
|
||||||
|
# $action^($current_section)^$setting_name^$setting_value^$system_name^($config file)
|
||||||
|
|
||||||
|
while IFS="^" read -r action current_section setting_name setting_value system_name config_file
|
||||||
|
do
|
||||||
|
case $action in
|
||||||
|
|
||||||
|
"disable_file" )
|
||||||
|
disable_file $config_file
|
||||||
|
;;
|
||||||
|
|
||||||
|
"enable_file" )
|
||||||
|
enable_file $config_file
|
||||||
|
;;
|
||||||
|
|
||||||
|
"add_setting" )
|
||||||
|
add_setting $config_file "$setting_name" $system_name $current_section
|
||||||
|
;;
|
||||||
|
|
||||||
|
"disable_setting" )
|
||||||
|
disable_setting $config_file "$setting_name" $system_name $current_section
|
||||||
|
;;
|
||||||
|
|
||||||
|
"enable_setting" )
|
||||||
|
enable_setting $config_file "$setting_name" $system_name $current_section
|
||||||
|
;;
|
||||||
|
|
||||||
|
"change" )
|
||||||
|
set_setting_value $config_file "$setting_name" "$setting_value" $system_name $current_section
|
||||||
|
;;
|
||||||
|
|
||||||
|
* )
|
||||||
|
echo "Config file malformed"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
done < $1
|
||||||
|
}
|
||||||
|
|
||||||
|
update_rd_conf() {
|
||||||
|
# This function will import a default retrodeck.cfg file and update it with any current settings. This will allow us to expand the file over time while retaining current user settings.
|
||||||
|
# USAGE: update_rd_conf
|
||||||
|
|
||||||
|
mv -f $rd_conf $rd_conf_backup # Backup config file before update
|
||||||
|
|
||||||
|
generate_single_patch $rd_defaults $rd_conf_backup $rd_update_patch retrodeck
|
||||||
|
sed -i '/change^^version/d' $rd_update_patch # Remove version line from temporary patch file
|
||||||
|
deploy_single_patch $rd_defaults $rd_update_patch $rd_conf
|
||||||
|
rm -f $rd_update_patch # Cleanup temporary patch file
|
||||||
|
source $rd_conf # Load new config file variables
|
||||||
|
}
|
||||||
|
|
||||||
conf_write() {
|
conf_write() {
|
||||||
# writes the variables in the retrodeck config file
|
# writes the variables in the retrodeck config file
|
||||||
|
|
||||||
|
@ -476,6 +620,11 @@ conf_write() {
|
||||||
sed -i "s%themes_folder=.*%themes_folder=$themes_folder%" "$rd_conf"
|
sed -i "s%themes_folder=.*%themes_folder=$themes_folder%" "$rd_conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$logs_folder" ]
|
||||||
|
then
|
||||||
|
sed -i "s%logs_folder=.*%logs_folder=$logs_folder%" "$rd_conf"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! -z "$sdcard" ]
|
if [ ! -z "$sdcard" ]
|
||||||
then
|
then
|
||||||
sed -i "s%sdcard=.*%sdcard=$sdcard%" "$rd_conf"
|
sed -i "s%sdcard=.*%sdcard=$sdcard%" "$rd_conf"
|
||||||
|
@ -549,6 +698,8 @@ yuzu_init() {
|
||||||
dir_prep "$rdhome/saves/switch/yuzu/sdmc" "/var/data/yuzu/sdmc"
|
dir_prep "$rdhome/saves/switch/yuzu/sdmc" "/var/data/yuzu/sdmc"
|
||||||
# configuring Yuzu
|
# configuring Yuzu
|
||||||
dir_prep "$rdhome/.logs/yuzu" "/var/data/yuzu/log"
|
dir_prep "$rdhome/.logs/yuzu" "/var/data/yuzu/log"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/yuzu
|
||||||
mkdir -pv /var/config/yuzu/
|
mkdir -pv /var/config/yuzu/
|
||||||
cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/
|
cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/
|
||||||
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini
|
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini
|
||||||
|
@ -559,6 +710,8 @@ dolphin_init() {
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
echo "Initializing DOLPHIN"
|
echo "Initializing DOLPHIN"
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/dolphin-emu
|
||||||
mkdir -pv /var/config/dolphin-emu/
|
mkdir -pv /var/config/dolphin-emu/
|
||||||
cp -fvr "$emuconfigs/dolphin/"* /var/config/dolphin-emu/
|
cp -fvr "$emuconfigs/dolphin/"* /var/config/dolphin-emu/
|
||||||
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini
|
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini
|
||||||
|
@ -575,6 +728,8 @@ primehack_init() {
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
echo "Initializing Primehack"
|
echo "Initializing Primehack"
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/primehack
|
||||||
mkdir -pv /var/config/primehack/
|
mkdir -pv /var/config/primehack/
|
||||||
cp -fvr "$emuconfigs/primehack/"* /var/config/primehack/
|
cp -fvr "$emuconfigs/primehack/"* /var/config/primehack/
|
||||||
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/primehack/Dolphin.ini
|
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/primehack/Dolphin.ini
|
||||||
|
@ -591,6 +746,8 @@ pcsx2_init() {
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
echo "Initializing PCSX2"
|
echo "Initializing PCSX2"
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/PCSX2
|
||||||
mkdir -pv "/var/config/PCSX2/inis"
|
mkdir -pv "/var/config/PCSX2/inis"
|
||||||
mkdir -pv "$rdhome/saves/ps2/pcsx2/memcards"
|
mkdir -pv "$rdhome/saves/ps2/pcsx2/memcards"
|
||||||
mkdir -pv "$rdhome/states/ps2/pcsx2"
|
mkdir -pv "$rdhome/states/ps2/pcsx2"
|
||||||
|
@ -607,6 +764,8 @@ melonds_init() {
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
echo "Initializing MELONDS"
|
echo "Initializing MELONDS"
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/melonDS
|
||||||
mkdir -pv /var/config/melonDS/
|
mkdir -pv /var/config/melonDS/
|
||||||
mkdir -pv "$rdhome/saves/nds/melonds"
|
mkdir -pv "$rdhome/saves/nds/melonds"
|
||||||
mkdir -pv "$rdhome/states/nds/melonds"
|
mkdir -pv "$rdhome/states/nds/melonds"
|
||||||
|
@ -620,6 +779,8 @@ citra_init() {
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
echo "Initializing CITRA"
|
echo "Initializing CITRA"
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/citra-emu
|
||||||
mkdir -pv /var/config/citra-emu/
|
mkdir -pv /var/config/citra-emu/
|
||||||
mkdir -pv "$rdhome/saves/n3ds/citra/nand/"
|
mkdir -pv "$rdhome/saves/n3ds/citra/nand/"
|
||||||
mkdir -pv "$rdhome/saves/n3ds/citra/sdmc/"
|
mkdir -pv "$rdhome/saves/n3ds/citra/sdmc/"
|
||||||
|
@ -636,6 +797,8 @@ rpcs3_init() {
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
echo "Initializing RPCS3"
|
echo "Initializing RPCS3"
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/rpcs3
|
||||||
mkdir -pv /var/config/rpcs3/
|
mkdir -pv /var/config/rpcs3/
|
||||||
cp -fvr $emuconfigs/rpcs3/* /var/config/rpcs3/
|
cp -fvr $emuconfigs/rpcs3/* /var/config/rpcs3/
|
||||||
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/rpcs3/vfs.yml
|
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/rpcs3/vfs.yml
|
||||||
|
@ -646,6 +809,8 @@ xemu_init() {
|
||||||
echo "Initializing XEMU"
|
echo "Initializing XEMU"
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
mkdir -pv $rdhome/saves/xbox/xemu/
|
mkdir -pv $rdhome/saves/xbox/xemu/
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/xemu
|
||||||
mkdir -pv /var/data/xemu/
|
mkdir -pv /var/data/xemu/
|
||||||
cp -fv $emuconfigs/xemu.toml /var/data/xemu/xemu.toml
|
cp -fv $emuconfigs/xemu.toml /var/data/xemu/xemu.toml
|
||||||
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/data/xemu/xemu.toml
|
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/data/xemu/xemu.toml
|
||||||
|
@ -662,6 +827,8 @@ ppssppsdl_init() {
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
echo "Initializing PPSSPPSDL"
|
echo "Initializing PPSSPPSDL"
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/ppsspp
|
||||||
mkdir -p /var/config/ppsspp/PSP/SYSTEM/
|
mkdir -p /var/config/ppsspp/PSP/SYSTEM/
|
||||||
cp -fv $emuconfigs/ppssppsdl/* /var/config/ppsspp/PSP/SYSTEM/
|
cp -fv $emuconfigs/ppssppsdl/* /var/config/ppsspp/PSP/SYSTEM/
|
||||||
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||||
|
@ -671,6 +838,10 @@ duckstation_init() {
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
echo "Initializing DUCKSTATION"
|
echo "Initializing DUCKSTATION"
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
|
dir_prep "$rdhome/saves/duckstation" "/var/data/duckstation/memcards" # This was not previously included, so performing first for save data safety.
|
||||||
|
dir_prep "$rdhome/states/duckstation" "/var/data/duckstation/savestates" # This was not previously included, so performing first for state data safety.
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/duckstation
|
||||||
mkdir -p /var/data/duckstation/
|
mkdir -p /var/data/duckstation/
|
||||||
cp -fv $emuconfigs/duckstation/* /var/data/duckstation
|
cp -fv $emuconfigs/duckstation/* /var/data/duckstation
|
||||||
sed -i 's#/home/deck/retrodeck/bios#'$rdhome/bios'#g' /var/data/duckstation/settings.ini
|
sed -i 's#/home/deck/retrodeck/bios#'$rdhome/bios'#g' /var/data/duckstation/settings.ini
|
||||||
|
@ -680,6 +851,8 @@ ryujinx_init() {
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
echo "Initializing RYUJINX"
|
echo "Initializing RYUJINX"
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/Ryujinx
|
||||||
mkdir -p /var/config/Ryujinx/system
|
mkdir -p /var/config/Ryujinx/system
|
||||||
cp -fv $emuconfigs/ryujinx/* /var/config/Ryujinx
|
cp -fv $emuconfigs/ryujinx/* /var/config/Ryujinx
|
||||||
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/Ryujinx/Config.json
|
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/Ryujinx/Config.json
|
||||||
|
@ -706,6 +879,9 @@ standalones_init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ra_init() {
|
ra_init() {
|
||||||
|
# removing config directory to wipe legacy files
|
||||||
|
rm -rf /var/config/retroarch
|
||||||
|
mkdir -p /var/config/retroarch
|
||||||
dir_prep "$rdhome/bios" "/var/config/retroarch/system"
|
dir_prep "$rdhome/bios" "/var/config/retroarch/system"
|
||||||
dir_prep "$rdhome/.logs/retroarch" "/var/config/retroarch/logs"
|
dir_prep "$rdhome/.logs/retroarch" "/var/config/retroarch/logs"
|
||||||
mkdir -pv /var/config/retroarch/shaders/
|
mkdir -pv /var/config/retroarch/shaders/
|
||||||
|
@ -753,6 +929,52 @@ ra_init() {
|
||||||
rm -rfv $rdhome/bios/MSX
|
rm -rfv $rdhome/bios/MSX
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cli_emulator_reset() {
|
||||||
|
# This function will reset one or more emulators from the command line arguments.
|
||||||
|
# USAGE: cli_emulator_reset $emulator
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
|
||||||
|
"retroarch" )
|
||||||
|
ra_init
|
||||||
|
;;
|
||||||
|
"citra" )
|
||||||
|
citra_init
|
||||||
|
;;
|
||||||
|
"dolphin" )
|
||||||
|
dolphin_init
|
||||||
|
;;
|
||||||
|
"duckstation" )
|
||||||
|
duckstation_init
|
||||||
|
;;
|
||||||
|
"melonds" )
|
||||||
|
melonds_init
|
||||||
|
;;
|
||||||
|
"pcsx2" )
|
||||||
|
pcsx2_init
|
||||||
|
;;
|
||||||
|
"ppsspp" )
|
||||||
|
ppssppsdl_init
|
||||||
|
;;
|
||||||
|
"primehack" )
|
||||||
|
primehack_init
|
||||||
|
;;
|
||||||
|
"rpcs3" )
|
||||||
|
rpcs3_init
|
||||||
|
;;
|
||||||
|
"xemu" )
|
||||||
|
xemu_init
|
||||||
|
;;
|
||||||
|
"yuzu" )
|
||||||
|
yuzu_init
|
||||||
|
;;
|
||||||
|
"all-emulators" )
|
||||||
|
ra_init
|
||||||
|
standalones_init
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
tools_init() {
|
tools_init() {
|
||||||
rm -rfv /var/config/retrodeck/tools/
|
rm -rfv /var/config/retrodeck/tools/
|
||||||
mkdir -pv /var/config/retrodeck/tools/
|
mkdir -pv /var/config/retrodeck/tools/
|
||||||
|
@ -838,7 +1060,26 @@ create_lock() {
|
||||||
conf_write
|
conf_write
|
||||||
}
|
}
|
||||||
|
|
||||||
|
easter_eggs() {
|
||||||
|
today=$(date +"%0m%0d") # Read the current date in a format that can be calculated in ranges
|
||||||
|
|
||||||
|
# Set Easter Egg date or ranges here, in mmdd format
|
||||||
|
|
||||||
|
if [[ today -eq "0401" ]]; then # An example of a one-day easter egg
|
||||||
|
echo "Today is April Fools Day!"
|
||||||
|
# cp -fv /var/config/emulationstation/graphics/splash-aprilfools.svg /var/config/emulationstation/graphics/splash.svg
|
||||||
|
elif [[ today -ge "1001" && today -le "1031" ]]; then # An example of a multi-day easter egg
|
||||||
|
echo "Today is in the spooky month!"
|
||||||
|
# cp -fv /var/config/emulationstation/graphics/splash-spookytime.svg /var/config/emulationstation/graphics/splash.svg
|
||||||
|
else # Revert to standard splash otherwise
|
||||||
|
echo "Nothing special happening today"
|
||||||
|
# cp -fv /var/config/emulationstation/graphics/splash-orig.svg /var/config/emulationstation/graphics/splash.svg
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
start_retrodeck() {
|
start_retrodeck() {
|
||||||
|
echo "Checking to see if today has a surprise..."
|
||||||
|
easter_eggs
|
||||||
# normal startup
|
# normal startup
|
||||||
echo "Starting RetroDECK v$version"
|
echo "Starting RetroDECK v$version"
|
||||||
emulationstation --home /var/config/emulationstation
|
emulationstation --home /var/config/emulationstation
|
||||||
|
@ -849,17 +1090,17 @@ finit_browse() {
|
||||||
path_selected=false
|
path_selected=false
|
||||||
while [ $path_selected == false ]
|
while [ $path_selected == false ]
|
||||||
do
|
do
|
||||||
sdcard="$(zenity --file-selection --title="Choose RetroDECK data directory location" --directory)"
|
local target="$(zenity --file-selection --title="Choose RetroDECK data directory location" --directory)"
|
||||||
if [[ $? == 0 ]]; then
|
if [[ ! -z $target ]]; then
|
||||||
if [[ -w $sdcard ]]; then
|
if [[ -w $target ]]; then
|
||||||
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" \
|
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" \
|
||||||
--cancel-label="No" \
|
--cancel-label="No" \
|
||||||
--ok-label "Yes" \
|
--ok-label "Yes" \
|
||||||
--text="Your RetroDECK data folder will be:\n\n$sdcard/retrodeck\n\nis that ok?"
|
--text="Your RetroDECK data folder will be:\n\n$target/retrodeck\n\nis that ok?"
|
||||||
if [ $? == 0 ] #yes
|
if [ $? == 0 ] #yes
|
||||||
then
|
then
|
||||||
path_selected=true
|
path_selected=true
|
||||||
echo "$sdcard/retrodeck"
|
echo "$target/retrodeck"
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" --text="Do you want to quit?"
|
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" --text="Do you want to quit?"
|
||||||
|
|
47
global.sh
47
global.sh
|
@ -5,11 +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
|
||||||
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
|
rd_conf_backup="/var/config/retrodeck/retrodeck.bak" # Backup of RetroDECK config file from update
|
||||||
lockfile="/var/config/retrodeck/.lock" # where the lockfile is located
|
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
|
||||||
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path
|
rd_defaults="$emuconfigs/defaults/retrodeck.cfg" # A default RetroDECK config file
|
||||||
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
|
rd_update_patch="/var/config/retrodeck/rd_update.patch" # A static location for the temporary patch file used during retrodeck.cfg updates
|
||||||
|
bios_checklist="/var/config/retrodeck/tools/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
|
||||||
|
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)
|
||||||
|
|
||||||
# Config files for emulators with single config files
|
# Config files for emulators with single config files
|
||||||
|
|
||||||
|
@ -72,32 +76,19 @@ then
|
||||||
# Check if SD card path has changed from SteamOS update
|
# Check if SD card path has changed from SteamOS update
|
||||||
if [[ ! -d $default_sd && "$(ls -A /run/media/deck/)" ]]; then
|
if [[ ! -d $default_sd && "$(ls -A /run/media/deck/)" ]]; then
|
||||||
configurator_generic_dialog "The SD card was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the SD card.\n\nIf you are not using an SD card, please click \"Cancel\"."
|
configurator_generic_dialog "The SD card was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the SD card.\n\nIf you are not using an SD card, please click \"Cancel\"."
|
||||||
default_sd=$(browse "SD Card Location")
|
default_sd=$(directory_browse "SD Card Location")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodeck
|
cp $rd_defaults $rd_conf # Load default settings
|
||||||
roms_folder="$rdhome/roms" # the default roms folder path
|
set_setting_value $rd_conf "version" "$version" retrodeck # Set current version for new installs
|
||||||
saves_folder="$rdhome/saves" # the default saves folder path
|
set_setting_value $rd_conf "sdcard" "$default_sd" retrodeck # Set SD card location if default path has changed
|
||||||
states_folder="$rdhome/states" # the default states folder path
|
|
||||||
bios_folder="$rdhome/bios" # the default bios folder
|
|
||||||
media_folder="$rdhome/downloaded_media" # the media folder, where all the scraped data is downloaded into
|
|
||||||
themes_folder="$rdhome/themes" # the themes folder
|
|
||||||
sdcard="$default_sd" # Steam Deck SD default path
|
|
||||||
|
|
||||||
# Writing the variables for the first time
|
|
||||||
echo '#!/bin/bash' >> $rd_conf
|
|
||||||
echo "version=$version" >> $rd_conf
|
|
||||||
echo "rdhome=$rdhome" >> $rd_conf
|
|
||||||
echo "roms_folder=$roms_folder" >> $rd_conf
|
|
||||||
echo "saves_folder=$saves_folder" >> $rd_conf
|
|
||||||
echo "states_folder=$states_folder" >> $rd_conf
|
|
||||||
echo "bios_folder=$bios_folder" >> $rd_conf
|
|
||||||
echo "media_folder=$media_folder" >> $rd_conf
|
|
||||||
echo "themes_folder=$themes_folder" >> $rd_conf
|
|
||||||
echo "sdcard=$sdcard" >> $rd_conf
|
|
||||||
|
|
||||||
echo "Setting config file permissions"
|
echo "Setting config file permissions"
|
||||||
chmod +rw $rd_conf
|
chmod +rw $rd_conf
|
||||||
|
echo "RetroDECK config file initialized. Contents:"
|
||||||
|
echo
|
||||||
|
cat $rd_conf
|
||||||
|
source $rd_conf # Load new variables into memory
|
||||||
|
|
||||||
# If the config file is existing i just read the variables (source it)
|
# If the config file is existing i just read the variables (source it)
|
||||||
else
|
else
|
||||||
|
@ -109,7 +100,7 @@ else
|
||||||
if [[ ! -d $rdhome ]]; then
|
if [[ ! -d $rdhome ]]; then
|
||||||
prev_home_path=$rdhome
|
prev_home_path=$rdhome
|
||||||
configurator_generic_dialog "The RetroDECK data folder was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the \"retrodeck\" folder."
|
configurator_generic_dialog "The RetroDECK data folder was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the \"retrodeck\" folder."
|
||||||
new_home_path=$(browse "RetroDECK folder location")
|
new_home_path=$(directory_browse "RetroDECK folder location")
|
||||||
sed -i 's#'$prev_home_path'#'$new_home_path'#g' $rd_conf
|
sed -i 's#'$prev_home_path'#'$new_home_path'#g' $rd_conf
|
||||||
source "$rd_conf"
|
source "$rd_conf"
|
||||||
emulators_post_move
|
emulators_post_move
|
||||||
|
|
|
@ -332,7 +332,8 @@ modules:
|
||||||
- rd-submodules/retroarch/libaio/libaio-0.3.112.json
|
- rd-submodules/retroarch/libaio/libaio-0.3.112.json
|
||||||
# certificate issue, check libglu module for more info
|
# certificate issue, check libglu module for more info
|
||||||
#- shared-modules/glu/glu-9.json
|
#- shared-modules/glu/glu-9.json
|
||||||
- rd-submodules/retroarch/libdecor/libdecor-0.1.1.json
|
# libdecor no longer needed in RetroArch 1.14
|
||||||
|
#- rd-submodules/retroarch/libdecor/libdecor-0.1.1.json
|
||||||
- name: retroarch-filers-video
|
- name: retroarch-filers-video
|
||||||
subdir: gfx/video_filters
|
subdir: gfx/video_filters
|
||||||
make-install-args:
|
make-install-args:
|
||||||
|
@ -1048,9 +1049,12 @@ modules:
|
||||||
# These must be put in home folder, managed by retrodeck.sh
|
# These must be put in home folder, managed by retrodeck.sh
|
||||||
- cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
|
- cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
|
||||||
|
|
||||||
# Logo, res
|
# Logo, res, move graphics directory to mutable space so splash can be changed after build
|
||||||
- rm -f /app/share/emulationstation/resources/graphics/splash.svg
|
- mv -f -t /var/config/emulationstation /app/share/emulationstation/resources/graphics
|
||||||
- cp -f res/splash.svg /app/share/emulationstation/resources/graphics/splash.svg
|
- ln -s /var/config/emulationstation/graphics /app/share/emulationstation/resources/graphics
|
||||||
|
- cp -f res/extra-splashes/* /var/config/emulationstation/graphics
|
||||||
|
- cp -f res/splash.svg /var/config/emulationstation/graphics/splash.svg
|
||||||
|
- cp -f res/splash.svg /var/config/emulationstation/graphics/splash-orig.svg
|
||||||
- cp -f res/icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
|
- cp -f res/icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
|
||||||
|
|
||||||
# Tools
|
# Tools
|
||||||
|
|
|
@ -179,12 +179,25 @@ post_update() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# These commands are run every time, for now
|
# Everything within the following ( <code> ) will happen behind the Zenity dialog. The save migration was a long process so it has its own individual dialogs.
|
||||||
|
|
||||||
(
|
(
|
||||||
ra_init
|
if [[ $prev_version -le "062" ]]; then
|
||||||
standalones_init
|
# In version 0.6.2b, the following changes were made that required config file updates/reset:
|
||||||
|
# - Primehack preconfiguration completely redone. "Stop emulation" hotkey set to Start+Select, Xbox and Nintendo keymap profiles were created, Xbox set as default.
|
||||||
|
# - Duckstation save and state locations were dir_prep'd to the rdhome/save and /state folders, which was not previously done. Much safer now!
|
||||||
|
|
||||||
|
rm -rf /var/config/primehack # Purge old Primehack config files. Saves are safe as they are linked into /var/data/primehack.
|
||||||
|
primehack_init
|
||||||
|
|
||||||
|
dir_prep "$rdhome/saves/duckstation" "/var/data/duckstation/memcards"
|
||||||
|
dir_prep "$rdhome/states/duckstation" "/var/data/duckstation/savestates"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The following commands are run every time.
|
||||||
|
|
||||||
tools_init
|
tools_init
|
||||||
|
update_rd_conf
|
||||||
) |
|
) |
|
||||||
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
|
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
|
||||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
|
|
103
retrodeck.sh
103
retrodeck.sh
|
@ -14,14 +14,14 @@ for i in "$@"; do
|
||||||
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
|
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
-h, --help Print this help
|
-h, --help Print this help
|
||||||
-v, --version Print RetroDECK version
|
-v, --version Print RetroDECK version
|
||||||
--info-msg Print paths and config informations
|
--info-msg Print paths and config informations
|
||||||
--configure Starts the RetroDECK Configurator
|
--configurator Starts the RetroDECK Configurator
|
||||||
--reset-all Starts the initial RetroDECK installer (backup your data first!)
|
--compress <file> Compresses target file to .chd format. Supports .cue, .iso and .gdi formats
|
||||||
--reset-ra Resets RetroArch's config to the default values
|
--reset-emulator <emulator> Reset one or more emulator configs to the default values
|
||||||
--reset-sa Reset all standalone emulator configs to the default values
|
--reset-tools Reset the RetroDECK Tools section
|
||||||
--reset-tools Recreate the tools section
|
--reset-retrodeck Starts the initial RetroDECK installer (backup your data first!)
|
||||||
|
|
||||||
For flatpak run specific options please run: flatpak run -h
|
For flatpak run specific options please run: flatpak run -h
|
||||||
|
|
||||||
|
@ -30,43 +30,90 @@ https://retrodeck.net
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
--version*|-v*)
|
--version*|-v*)
|
||||||
#conf_init
|
|
||||||
echo "RetroDECK v$version"
|
echo "RetroDECK v$version"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
--info-msg*)
|
--info-msg*)
|
||||||
#conf_init
|
|
||||||
echo "RetroDECK v$version"
|
echo "RetroDECK v$version"
|
||||||
echo "RetroDECK config file is in: $rd_conf"
|
echo "RetroDECK config file is in: $rd_conf"
|
||||||
echo "Contents:"
|
echo "Contents:"
|
||||||
cat $rd_conf
|
cat $rd_conf
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
--reset-ra*)
|
--compress*)
|
||||||
ra_init
|
read -p "RetroDECK will now attempt to compress your selected game. The original game will still exist and will need to be removed manually after the process completes. Press any key to continue..."
|
||||||
shift # past argument with no value
|
if [[ ! -z $2 ]]; then
|
||||||
|
if [[ -f $2 ]]; then
|
||||||
|
current_run_log_file="chd_compression_"$(date +"%Y_%m_%d_%I_%M_%p").log""
|
||||||
|
if [[ $(validate_for_chd $2) == "true" ]]; then
|
||||||
|
filename_no_path=$(basename $2)
|
||||||
|
filename_no_extension=${filename_no_path%.*}
|
||||||
|
compress_to_chd $(dirname $(realpath $2))/$(basename $2) $(dirname $(realpath $2))/$filename_no_extension
|
||||||
|
else
|
||||||
|
printf "An error occured during the compression process. Please see the following log entries for details:\n\n"
|
||||||
|
cat $logs_folder/$current_run_log_file
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "File not found, please specify the full path to the file to be compressed."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Please use this command format \"--compress <cue/gdi/iso file to compress>\""
|
||||||
|
fi
|
||||||
|
exit
|
||||||
;;
|
;;
|
||||||
--reset-sa*)
|
--configurator*)
|
||||||
standalones_init
|
sh /var/config/retrodeck/tools/configurator.sh
|
||||||
shift # past argument with no value
|
exit
|
||||||
|
;;
|
||||||
|
--reset-emulator*)
|
||||||
|
echo "You are about to reset one or more RetroDECK emulators."
|
||||||
|
echo "Available options are: retroarch citra dolphin duckstation melonds pcsx2 ppsspp primehack rpcs3 xemu yuzu all-emulators"
|
||||||
|
read -p "Please enter the emulator you would like to reset: " emulator
|
||||||
|
if [[ "$emulator" =~ ^(retroarch|citra|dolphin|duckstation|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-emulators)$ ]]; then
|
||||||
|
read -p "You are about to reset $emulator to default settings. Press 'y' to continue, 'n' to stop: " response
|
||||||
|
if [[ $response == [yY] ]]; then
|
||||||
|
cli_emulator_reset $emulator
|
||||||
|
read -p "The process has been completed, press any key to start RetroDECK."
|
||||||
|
shift # Continue launch after previous command is finished
|
||||||
|
else
|
||||||
|
read -p "The process has been cancelled, press any key to exit."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "$emulator is not a valid selection, exiting..."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
--reset-tools*)
|
--reset-tools*)
|
||||||
tools_init
|
echo "You are about to reset the RetroDECK tools."
|
||||||
shift # past argument with no value
|
read -p "Press 'y' to continue, 'n' to stop: " response
|
||||||
|
if [[ $response == [yY] ]]; then
|
||||||
|
tools_init
|
||||||
|
read -p "The process has been completed, press any key to start RetroDECK."
|
||||||
|
shift # Continue launch after previous command is finished
|
||||||
|
else
|
||||||
|
read -p "The process has been cancelled, press any key to exit."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
--reset-all*)
|
--reset-retrodeck*)
|
||||||
rm -f "$lockfile"
|
echo "You are about to reset RetroDECK completely."
|
||||||
shift # past argument with no value
|
read -p "Press 'y' to continue, 'n' to stop: " response
|
||||||
;;
|
if [[ $response == [yY] ]]; then
|
||||||
--configure*)
|
rm -f "$lockfile"
|
||||||
sh /var/config/retrodeck/tools/configurator.sh
|
read -p "The process has been completed, press any key to start the initial RetroDECK setup process."
|
||||||
shift # past argument with no value
|
shift # Continue launch after previous command is finished
|
||||||
|
else
|
||||||
|
read -p "The process has been cancelled, press any key to exit."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
-*|--*)
|
-*|--*)
|
||||||
echo "Unknown option $i"
|
echo "Unknown option $i"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
echo "Please specify a valid option. Use -h for more information."
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -88,6 +135,12 @@ else
|
||||||
finit # Executing First/Force init
|
finit # Executing First/Force init
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if running in Desktop mode and warn if true
|
||||||
|
|
||||||
|
if [[ $XDG_CURRENT_DESKTOP == "KDE" ]]; then
|
||||||
|
desktop_mode_warning
|
||||||
|
fi
|
||||||
|
|
||||||
# Normal Startup
|
# Normal Startup
|
||||||
|
|
||||||
start_retrodeck
|
start_retrodeck
|
16
tools/bios_checklist.cfg
Normal file
16
tools/bios_checklist.cfg
Normal 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
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
racfg="/var/config/retroarch/retroarch.cfg"
|
|
||||||
|
|
||||||
login=$(zenity --forms --title="RetroAchievements Login" \
|
|
||||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
||||||
--text="Enter your RetroAchievements Account details.\n\nBe aware that this tool cannot verify your login details.\nFor registration and more info visit\nhttps://retroachievements.org/\n" \
|
|
||||||
--separator="=SEP=" \
|
|
||||||
--add-entry="Username" \
|
|
||||||
--add-password="Password")
|
|
||||||
|
|
||||||
arrIN=(${login//=SEP=/ })
|
|
||||||
user=${arrIN[0]}
|
|
||||||
pass=${arrIN[1]}
|
|
||||||
|
|
||||||
sed -i "s%cheevos_enable =.*%cheevos_enable = \"true\"%" $racfg
|
|
||||||
sed -i "s%cheevos_username =.*%cheevos_username = \"$user\"%" $racfg
|
|
||||||
sed -i "s%cheevos_password =.*%cheevos_password = \"$pass\"%" $racfg
|
|
|
@ -2,27 +2,38 @@
|
||||||
|
|
||||||
# VARIABLES SECTION
|
# VARIABLES SECTION
|
||||||
|
|
||||||
#rd_conf="retrodeck.cfg" # uncomment for standalone testing
|
source /app/libexec/global.sh
|
||||||
#source functions.sh # uncomment for standalone testing
|
source /app/libexec/functions.sh
|
||||||
|
|
||||||
source /app/libexec/global.sh # uncomment for flatpak testing
|
|
||||||
source /app/libexec/functions.sh # uncomment for flatpak testing
|
|
||||||
|
|
||||||
# DIALOG SECTION
|
# DIALOG SECTION
|
||||||
|
|
||||||
# Configurator Option Tree
|
# Configurator Option Tree
|
||||||
|
|
||||||
# Welcome
|
# Welcome
|
||||||
# - Move RetroDECK data directory
|
# - Move RetroDECK
|
||||||
# - Migrate everything
|
# - Change RetroArch Options
|
||||||
# - Change Emulator Options
|
# - Enable/Disable Rewind Setting
|
||||||
# - RetroArch
|
# - RetroAchivement Login
|
||||||
# - Change Rewind Setting
|
# - Login prompt
|
||||||
# - RetroAchivement login
|
# - Change Standalone Emulator Options (Behind one-time power user warning dialog)
|
||||||
# - Login prompt
|
# - Launch RetroArch
|
||||||
# - Reset RetroDECK
|
# - Launch Citra
|
||||||
# - Reset RetroArch
|
# - Launch Dolphin
|
||||||
# - Reset Specific Standalone Emulator
|
# - Launch Duckstation
|
||||||
|
# - Launch MelonDS
|
||||||
|
# - Launch PCSX2
|
||||||
|
# - Launch PPSSPP
|
||||||
|
# - Launch Primehack
|
||||||
|
# - Launch RPCS3
|
||||||
|
# - Launch XEMU
|
||||||
|
# - Launch Yuzu
|
||||||
|
# - Compress Games
|
||||||
|
# - Manual single-game selection
|
||||||
|
# - Troubleshooting Tools
|
||||||
|
# - Multi-file game check
|
||||||
|
# - Reset
|
||||||
|
# - Reset Specific Emulator
|
||||||
|
# - Reset RetroArch
|
||||||
# - Reset Citra
|
# - Reset Citra
|
||||||
# - Reset Dolphin
|
# - Reset Dolphin
|
||||||
# - Reset Duckstation
|
# - Reset Duckstation
|
||||||
|
@ -34,7 +45,7 @@ source /app/libexec/functions.sh # uncomment for flatpak testing
|
||||||
# - Reset Ryujinx
|
# - Reset Ryujinx
|
||||||
# - Reset XEMU
|
# - Reset XEMU
|
||||||
# - Reset Yuzu
|
# - Reset Yuzu
|
||||||
# - Reset All Standalone Emulators
|
# - Reset All Emulators
|
||||||
# - Reset Tools
|
# - Reset Tools
|
||||||
# - Reset All
|
# - Reset All
|
||||||
|
|
||||||
|
@ -46,39 +57,38 @@ configurator_reset_dialog() {
|
||||||
choice=$(zenity --list --title="RetroDECK Configurator Utility - Reset Options" --cancel-label="Back" \
|
choice=$(zenity --list --title="RetroDECK Configurator Utility - Reset 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" \
|
||||||
"Reset RetroArch" "Reset RetroArch to default settings" \
|
"Reset Specific Emulator" "Reset only one specific emulator to default settings" \
|
||||||
"Reset Specific Standalone" "Reset only one specific standalone emulator to default settings" \
|
"Reset All Emulators" "Reset all emulators to default settings" \
|
||||||
"Reset All Standalones" "Reset all standalone emulators to default settings" \
|
|
||||||
"Reset Tools" "Reset Tools menu entries" \
|
"Reset Tools" "Reset Tools menu entries" \
|
||||||
"Reset All" "Reset RetroDECK to default settings" )
|
"Reset All" "Reset RetroDECK to default settings" )
|
||||||
|
|
||||||
case $choice in
|
case $choice in
|
||||||
|
|
||||||
"Reset RetroArch" )
|
"Reset Specific Emulator" )
|
||||||
ra_init
|
|
||||||
configurator_process_complete_dialog "resetting RetroArch"
|
|
||||||
;;
|
|
||||||
|
|
||||||
"Reset Specific Standalone" )
|
|
||||||
emulator_to_reset=$(zenity --list \
|
emulator_to_reset=$(zenity --list \
|
||||||
--title "RetroDECK Configurator Utility - Reset Specific Standalone Emulator" --cancel-label="Back" \
|
--title "RetroDECK Configurator Utility - Reset Specific Standalone Emulator" --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 \
|
||||||
--text="Which emulator do you want to reset to default?" \
|
--text="Which emulator do you want to reset to default?" \
|
||||||
--hide-header \
|
--column="Emulator" --column="Action" \
|
||||||
--column=emulator \
|
"RetroArch" "Reset RetroArch to default settings" \
|
||||||
"Citra" \
|
"Citra" "Reset Citra to default settings" \
|
||||||
"Dolphin" \
|
"Dolphin" "Reset Dolphin to default settings" \
|
||||||
"Duckstation" \
|
"Duckstation" "Reset Duckstation to default settings" \
|
||||||
"MelonDS" \
|
"MelonDS" "Reset MelonDS to default settings" \
|
||||||
"PCSX2" \
|
"PCSX2" "Reset PCSX2 to default settings" \
|
||||||
"PPSSPP" \
|
"PPSSPP" "Reset PPSSPP to default settings" \
|
||||||
"Primehack" \
|
"Primehack" "Reset Primehack to default settings" \
|
||||||
"RPCS3" \
|
"RPCS3" "Reset RPCS3 to default settings" \
|
||||||
"XEMU" \
|
"XEMU" "Reset XEMU to default settings" \
|
||||||
"Yuzu")
|
"Yuzu" "Reset Yuzu to default settings" )
|
||||||
|
|
||||||
case $emulator_to_reset in
|
case $emulator_to_reset in
|
||||||
|
|
||||||
|
"RetroArch" )
|
||||||
|
ra_init
|
||||||
|
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||||
|
;;
|
||||||
|
|
||||||
"Citra" )
|
"Citra" )
|
||||||
citra_init
|
citra_init
|
||||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||||
|
@ -136,9 +146,10 @@ configurator_reset_dialog() {
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"Reset All Standalones" )
|
"Reset All Emulators" )
|
||||||
|
ra_init
|
||||||
standalones_init
|
standalones_init
|
||||||
configurator_process_complete_dialog "resetting standalone emulators"
|
configurator_process_complete_dialog "resetting all emulators"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"Reset Tools" )
|
"Reset Tools" )
|
||||||
|
@ -150,7 +161,7 @@ configurator_reset_dialog() {
|
||||||
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
|
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
|
||||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
--title "RetroDECK Configurator Utility - Reset RetroDECK" \
|
--title "RetroDECK Configurator Utility - Reset RetroDECK" \
|
||||||
--text="You are resetting RetroDECK to its default state.\n\nAfter the process is complete you will need to exit RetroDECK and run it again."
|
--text="You are resetting RetroDECK to its default state.\n\nAfter the process is complete you will need to exit RetroDECK and run it again, where you will go through the initial setup process again."
|
||||||
rm -f "$lockfile"
|
rm -f "$lockfile"
|
||||||
configurator_process_complete_dialog "resetting RetroDECK"
|
configurator_process_complete_dialog "resetting RetroDECK"
|
||||||
;;
|
;;
|
||||||
|
@ -183,20 +194,21 @@ configurator_retroachivement_dialog() {
|
||||||
else
|
else
|
||||||
configurator_welcome_dialog
|
configurator_welcome_dialog
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
configurator_update_dialog() {
|
configurator_power_user_warning_dialog() {
|
||||||
configurator_generic_dialog "This feature is not available yet"
|
zenity --title "RetroDECK Configurator Utility - Power User Options" --question --no-wrap --cancel-label="Back" \
|
||||||
configurator_welcome_dialog
|
--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
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
configurator_power_user_changes_dialog() {
|
configurator_power_user_changes_dialog() {
|
||||||
zenity --title "RetroDECK Configurator Utility - Power User Options" --question --no-wrap --cancel-label="Back" \
|
if [[ $power_user == "true" ]]; then
|
||||||
--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?"
|
|
||||||
|
|
||||||
if [ $? == 0 ]; then # OK button clicked
|
|
||||||
emulator=$(zenity --list \
|
emulator=$(zenity --list \
|
||||||
--title "RetroDECK Configurator Utility - Power User Options" --cancel-label="Back" \
|
--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 \
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
|
||||||
|
@ -262,12 +274,17 @@ configurator_power_user_changes_dialog() {
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"" ) # No selection made or Back button clicked
|
"" ) # No selection made or Back button clicked
|
||||||
configurator_options_dialog
|
configurator_welcome_dialog
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
configurator_options_dialog
|
configurator_power_user_warning_dialog
|
||||||
|
if [[ $power_user == "true" ]]; then
|
||||||
|
configurator_power_user_changes_dialog
|
||||||
|
else
|
||||||
|
configurator_welcome_dialog
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -283,7 +300,7 @@ configurator_retroarch_rewind_dialog() {
|
||||||
set_setting_value $raconf "rewind_enable" "false" retroarch
|
set_setting_value $raconf "rewind_enable" "false" retroarch
|
||||||
configurator_process_complete_dialog "disabling Rewind"
|
configurator_process_complete_dialog "disabling Rewind"
|
||||||
else
|
else
|
||||||
configurator_options_dialog
|
configurator_retroarch_options_dialog
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
zenity --question \
|
zenity --question \
|
||||||
|
@ -296,7 +313,7 @@ configurator_retroarch_rewind_dialog() {
|
||||||
set_setting_value $raconf "rewind_enable" "true" retroarch
|
set_setting_value $raconf "rewind_enable" "true" retroarch
|
||||||
configurator_process_complete_dialog "enabling Rewind"
|
configurator_process_complete_dialog "enabling Rewind"
|
||||||
else
|
else
|
||||||
configurator_options_dialog
|
configurator_retroarch_options_dialog
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -305,7 +322,8 @@ configurator_retroarch_options_dialog() {
|
||||||
choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroArch Options" --cancel-label="Back" \
|
choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroArch 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" \
|
||||||
"Change Rewind Setting" "Enable or disable the Rewind function in RetroArch" )
|
"Change Rewind Setting" "Enable or disable the Rewind function in RetroArch." \
|
||||||
|
"Log in to RetroAchivements" "Log into the RetroAchievements service in RetroArch." )
|
||||||
|
|
||||||
case $choice in
|
case $choice in
|
||||||
|
|
||||||
|
@ -313,6 +331,10 @@ configurator_retroarch_options_dialog() {
|
||||||
configurator_retroarch_rewind_dialog
|
configurator_retroarch_rewind_dialog
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"Log in to RetroAchivements" )
|
||||||
|
configurator_retroachivement_dialog
|
||||||
|
;;
|
||||||
|
|
||||||
"" ) # No selection made or Back button clicked
|
"" ) # No selection made or Back button clicked
|
||||||
configurator_options_dialog
|
configurator_options_dialog
|
||||||
;;
|
;;
|
||||||
|
@ -320,21 +342,93 @@ configurator_retroarch_options_dialog() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
configurator_options_dialog() {
|
configurator_compress_single_game_dialog() {
|
||||||
|
file_to_compress=$(file_browse "Game to compress")
|
||||||
|
if [[ ! -z $file_to_compress ]]; then
|
||||||
|
if [[ $(validate_for_chd $file_to_compress) == "true" ]]; then
|
||||||
|
(
|
||||||
|
filename_no_path=$(basename $file_to_compress)
|
||||||
|
filename_no_extension=${filename_no_path%.*}
|
||||||
|
compress_to_chd $(dirname $(realpath $file_to_compress))/$(basename $file_to_compress) $(dirname $(realpath $file_to_compress))/$filename_no_extension
|
||||||
|
) |
|
||||||
|
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
|
||||||
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
|
--title "RetroDECK Configurator Utility - Compression in Progress" \
|
||||||
|
--text="Compressing game $filename_no_path, please wait."
|
||||||
|
else
|
||||||
|
configurator_generic_dialog "File type not recognized. Supported file types are .cue, .gdi and .iso"
|
||||||
|
configurator_compress_single_game_dialog
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
configurator_generic_dialog "No file selected, returning to main menu"
|
||||||
|
configurator_welcome_dialog
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
configurator_compress_games_dialog() {
|
||||||
|
# This is currently a placeholder for a dialog where you can compress a single game or multiple at once. Currently only the single game option is available, so is launched by default.
|
||||||
|
|
||||||
|
configurator_generic_dialog "This utility will compress a single game into .CHD format.\n\nPlease select the game to be compressed in the next dialog: supported file types are .cue, .iso and .gdi\n\nThe original game files will be untouched and will need to be removed manually."
|
||||||
|
configurator_compress_single_game_dialog
|
||||||
|
}
|
||||||
|
|
||||||
|
configurator_check_multifile_game_structure() {
|
||||||
|
local folder_games=($(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3"))
|
||||||
|
if [[ ${#folder_games[@]} -gt 1 ]]; then
|
||||||
|
echo "$(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")" > $logs_folder/multi_file_games_"$(date +"%Y_%m_%d_%I_%M_%p").log"
|
||||||
|
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
|
||||||
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||||
|
--title "RetroDECK" \
|
||||||
|
--text="The following games were found to have the incorrect folder structure:\n\n$(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")\n\nIncorrect folder structure can result in failure to launch games or saves being in the incorrect location.\n\nPlease see the RetroDECK wiki for more details!\n\nYou can find this list of games in ~/retrodeck/.logs"
|
||||||
|
else
|
||||||
|
configurator_generic_dialog "No incorrect multi-file game folder structures found."
|
||||||
|
fi
|
||||||
|
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() {
|
||||||
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" \
|
||||||
"Change RetroArch Settings" "Change settings specific to RetroArch" \
|
"Multi-file game structure check" "Verify the proper structure of multi-file or multi-disc games" \
|
||||||
"Power User Changes" "Make changes directly in an emulator" )
|
"BIOS file check" "Verify the existence and file integrity of common BIOS files" )
|
||||||
|
|
||||||
case $choice in
|
case $choice in
|
||||||
|
|
||||||
"Change RetroArch Settings" )
|
"Multi-file game structure check" )
|
||||||
configurator_retroarch_options_dialog
|
configurator_check_multifile_game_structure
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"Power User Changes" )
|
"BIOS file check" )
|
||||||
configurator_power_user_changes_dialog
|
configurator_check_bios_files
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"" ) # No selection made or Back button clicked
|
"" ) # No selection made or Back button clicked
|
||||||
|
@ -433,7 +527,7 @@ configurator_move_dialog() {
|
||||||
|
|
||||||
"Custom Location" )
|
"Custom Location" )
|
||||||
configurator_generic_dialog "Select the root folder you would like to store the RetroDECK data folder in.\n\nA new folder \"retrodeck\" will be created in the destination chosen."
|
configurator_generic_dialog "Select the root folder you would like to store the RetroDECK data folder in.\n\nA new folder \"retrodeck\" will be created in the destination chosen."
|
||||||
custom_dest=$(browse "RetroDECK directory location")
|
custom_dest=$(directory_browse "RetroDECK directory location")
|
||||||
if [[ ! -w $custom_dest ]]; then
|
if [[ ! -w $custom_dest ]]; then
|
||||||
configurator_generic_dialog "The destination was found but is not writable\n\nThis can happen if RetroDECK does not have permission to write to this location.\n\nThis can typically be solved through the utility Flatseal, please make the needed changes and try the moving process again."
|
configurator_generic_dialog "The destination was found but is not writable\n\nThis can happen if RetroDECK does not have permission to write to this location.\n\nThis can typically be solved through the utility Flatseal, please make the needed changes and try the moving process again."
|
||||||
configurator_welcome_dialog
|
configurator_welcome_dialog
|
||||||
|
@ -484,7 +578,7 @@ configurator_move_dialog() {
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
configurator_generic_dialog "The RetroDECK data folder was not found at the expected location.\n\nThis may have happened if the folder was moved manually.\n\nPlease select the current location of the RetroDECK data folder."
|
configurator_generic_dialog "The RetroDECK data folder was not found at the expected location.\n\nThis may have happened if the folder was moved manually.\n\nPlease select the current location of the RetroDECK data folder."
|
||||||
rdhome=$(browse "RetroDECK directory location")
|
rdhome=$(directory_browse "RetroDECK directory location")
|
||||||
roms_folder="$rdhome/roms"
|
roms_folder="$rdhome/roms"
|
||||||
saves_folder="$rdhome/saves"
|
saves_folder="$rdhome/saves"
|
||||||
states_folder="$rdhome/states"
|
states_folder="$rdhome/states"
|
||||||
|
@ -509,10 +603,12 @@ configurator_welcome_dialog() {
|
||||||
choice=$(zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \
|
choice=$(zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \
|
||||||
--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" \
|
||||||
"Move Files" "Move files between internal/SD card or to custom locations" \
|
"Move Files" "Move files between internal/SD card or to custom locations." \
|
||||||
"Change Options" "Adjust how RetroDECK behaves" \
|
"Change RetroArch Options" "Change RetroArch presets, log into RetroAchievements etc." \
|
||||||
"RetroAchivements" "Log in to RetroAchievements" \
|
"Change Standalone Emulator Options" "Run emulators standalone to make advanced config changes." \
|
||||||
"Reset" "Reset parts of RetroDECK" )
|
"Compress Games" "Compress games to CHD format for systems that support it." \
|
||||||
|
"Troubleshooting Tools" "Run RetroDECK troubleshooting tools for common issues." \
|
||||||
|
"Reset" "Reset specific parts or all of RetroDECK." )
|
||||||
|
|
||||||
case $choice in
|
case $choice in
|
||||||
|
|
||||||
|
@ -521,22 +617,26 @@ configurator_welcome_dialog() {
|
||||||
configurator_move_dialog
|
configurator_move_dialog
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"Change Options" )
|
"Change RetroArch Options" )
|
||||||
configurator_options_dialog
|
configurator_retroarch_options_dialog
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"RetroAchivements" )
|
"Change Standalone Emulator Options" )
|
||||||
configurator_retroachivement_dialog
|
configurator_power_user_changes_dialog
|
||||||
|
;;
|
||||||
|
|
||||||
|
"Compress Games" )
|
||||||
|
configurator_compress_games_dialog
|
||||||
|
;;
|
||||||
|
|
||||||
|
"Troubleshooting Tools" )
|
||||||
|
configurator_troubleshooting_tools_dialog
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"Reset" )
|
"Reset" )
|
||||||
configurator_reset_dialog
|
configurator_reset_dialog
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"Quit" )
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Doing some changes in the emulator's configuration may create serious issues,\nplease continue only if you know what you're doing.\n\nDo you want to continue?"
|
|
||||||
if [ $? == 1 ] #no
|
|
||||||
then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
emulator="$(zenity --list \
|
|
||||||
--width=600 \
|
|
||||||
--height=350 \
|
|
||||||
--title "RetroDECK" \
|
|
||||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
||||||
--text="Which emulator do you want to configure?" \
|
|
||||||
--hide-header \
|
|
||||||
--column=emulator \
|
|
||||||
"RetroArch" \
|
|
||||||
"Citra" \
|
|
||||||
"Dolphin" \
|
|
||||||
"Duckstation" \
|
|
||||||
"MelonDS" \
|
|
||||||
"PCSX2-QT" \
|
|
||||||
"PCSX2-Legacy" \
|
|
||||||
"PPSSPP" \
|
|
||||||
"RPCS3" \
|
|
||||||
"XEMU" \
|
|
||||||
"Yuzu")"
|
|
||||||
|
|
||||||
if [ $emulator == "RetroArch" ]
|
|
||||||
then
|
|
||||||
retroarch
|
|
||||||
elif [ $emulator == "Citra" ]
|
|
||||||
then
|
|
||||||
citra-qt
|
|
||||||
elif [ $emulator == "Dolphin" ]
|
|
||||||
then
|
|
||||||
dolphin-emu
|
|
||||||
elif [ $emulator == "Duckstation" ]
|
|
||||||
then
|
|
||||||
duckstation-qt
|
|
||||||
elif [ $emulator == "MelonDS" ]
|
|
||||||
then
|
|
||||||
melonDS
|
|
||||||
elif [ $emulator == "PCSX2-Legacy" ]
|
|
||||||
then
|
|
||||||
pcsx2
|
|
||||||
elif [ $emulator == "PCSX2-QT" ]
|
|
||||||
then
|
|
||||||
pcsx2-qt
|
|
||||||
elif [ $emulator == "PPSSPP" ]
|
|
||||||
then
|
|
||||||
PPSSPPSDL
|
|
||||||
elif [ $emulator == "RPCS3" ]
|
|
||||||
then
|
|
||||||
rpcs3
|
|
||||||
elif [ $emulator == "Yuzu" ]
|
|
||||||
then
|
|
||||||
yuzu
|
|
||||||
elif [ $emulator == "XEMU" ]
|
|
||||||
then
|
|
||||||
xemu
|
|
||||||
fi
|
|
|
@ -1,32 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source global.sh
|
|
||||||
|
|
||||||
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="Quit" --ok-label "Continue" --text="WARNING: this script is experimental\nplease be sure to backup your data before continuing.\n\nDo you want to continue?"
|
|
||||||
if [ $? == 1 ] #cancel
|
|
||||||
then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
#conf_init
|
|
||||||
|
|
||||||
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="Cancel" --ok-label "Browse" --text="The roms folder is now: $roms_folder\nplease select the new location.\nA retrodeck/roms folder will be created starting from the directory that you selected."
|
|
||||||
if [ $? == 1 ] #cancel
|
|
||||||
then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
new_roms_path="$(zenity --file-selection --title="Choose a new roms folder location" --directory)"/retrodeck/roms
|
|
||||||
|
|
||||||
zenity --title "RetroDECK" --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --text="Should I move the roms from\n\n$roms_folder\n\nto\n\n$new_roms_path?"
|
|
||||||
if [ $? == 0 ] #yes
|
|
||||||
then
|
|
||||||
mkdir -p $new_roms_path
|
|
||||||
mv -f $roms_folder $new_roms_path
|
|
||||||
rm -f /var/config/emulationstation/ROMs
|
|
||||||
ln -s $new_roms_path /var/config/emulationstation/ROMs
|
|
||||||
rm -f $roms_folder
|
|
||||||
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="Done\nYour roms are now located in:\n\n$roms_folder\n\nPress OK to continue."
|
|
||||||
$roms_folder=$new_roms_path # Updating variable
|
|
||||||
conf_write # Writing variables in the config file (sourced from global.sh)
|
|
||||||
fi
|
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
border="$(zenity --list \
|
|
||||||
--title "RetroDECK" \
|
|
||||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
||||||
--text="Select the borders type" \
|
|
||||||
--hide-header \
|
|
||||||
--column=Border \
|
|
||||||
"None" \
|
|
||||||
"Light" \
|
|
||||||
"Dark")"
|
|
||||||
|
|
||||||
if [ $border == "None" ]
|
|
||||||
then
|
|
||||||
return
|
|
||||||
elif [ $border == "Light" ]
|
|
||||||
then
|
|
||||||
return
|
|
||||||
elif [ $border == "Dark" ]
|
|
||||||
then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
shader="$(zenity --list \
|
|
||||||
--title "RetroDECK" \
|
|
||||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
||||||
--text="Select the shader type" \
|
|
||||||
--hide-header \
|
|
||||||
--column=Border \
|
|
||||||
"None" \
|
|
||||||
"Retro")"
|
|
||||||
|
|
||||||
if [ $shader == "None" ]
|
|
||||||
then
|
|
||||||
return
|
|
||||||
elif [ $shader == "Retro" ]
|
|
||||||
then
|
|
||||||
return
|
|
||||||
fi
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
racfg="/var/config/retroarch/retroarch.cfg"
|
|
||||||
|
|
||||||
zenity --question \
|
|
||||||
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
||||||
--title "RetroDECK" \
|
|
||||||
--text="Do you want to enable the rewind function in RetroArch cores?\n\nNOTE:\nThis may impact on performances expecially on the latest systems."
|
|
||||||
|
|
||||||
if [ $? == 0 ] #yes, enable
|
|
||||||
then
|
|
||||||
sed -i 's%rewind_enable = .*%rewind_enable = "true"%' $racfg
|
|
||||||
zenity --info \
|
|
||||||
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
||||||
--title "RetroDECK" \
|
|
||||||
--text="Rewind enabled\!\nYou can check on Libretro docs to see which cores supports this function."
|
|
||||||
else # no, disable
|
|
||||||
sed -i 's%rewind_enable = .*%rewind_enable = "false"%' $racfg
|
|
||||||
zenity --info \
|
|
||||||
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
||||||
--title "RetroDECK" \
|
|
||||||
--text="Rewind disabled."
|
|
||||||
fi
|
|
|
@ -1,55 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
THIS MUST BE PUT IN RETRODECK.SH
|
|
||||||
mkdir -p $rdhome/roms/ps3/emudir
|
|
||||||
#mkdir -p $rdhome/roms/ps3/dump cannot install in nogui
|
|
||||||
|
|
||||||
#user must install via emulator
|
|
||||||
|
|
||||||
source global.sh
|
|
||||||
|
|
||||||
install_ps3_fw(){
|
|
||||||
|
|
||||||
# Implement a check to see if the firmware is already installed then call this function
|
|
||||||
|
|
||||||
mkdir -p $rdhome/roms/ps3/.emudir
|
|
||||||
|
|
||||||
mkdir -p $rdhome/roms/ps3/tmp
|
|
||||||
chmod 777 $rdhome/roms/ps3/tmp
|
|
||||||
wget http://dus01.ps3.update.playstation.net/update/ps3/image/us/2022_0510_95307e1b51d3bcc33a274db91488d29f/PS3UPDAT.PUP -P $rdhome/roms/ps3/tmp/
|
|
||||||
rpcs3 --installfw $rdhome/roms/ps3/tmp/PS3UPDAT.PUP
|
|
||||||
rm -rf $rdhome/roms/ps3/tmp
|
|
||||||
}
|
|
||||||
|
|
||||||
zenity: "Hey I will destroy everything in $rdhome/roms/ps3/dump"
|
|
||||||
|
|
||||||
zenity: this will take a while, have a coffee
|
|
||||||
|
|
||||||
# this seems not to be working as rpcs3 doesn't support installation in --no-gui mode
|
|
||||||
rpcs3 --installpkg $rdhome/roms/ps3/dump/*
|
|
||||||
|
|
||||||
for each folder in $rdhome/roms/ps3/emudir/dev_hdd0/game/
|
|
||||||
|
|
||||||
gameid=foldername
|
|
||||||
|
|
||||||
if gamename.desktop doesnt exist
|
|
||||||
|
|
||||||
gamename=we need a file with ID - names
|
|
||||||
echo in $rdhome/roms/ps3/$gamname.desktop EOF<<
|
|
||||||
|
|
||||||
[Desktop Entry]
|
|
||||||
Encoding=UTF-8
|
|
||||||
Version=1.0
|
|
||||||
Type=Application
|
|
||||||
Terminal=false
|
|
||||||
Name=$gamename
|
|
||||||
Exec=rpcs3 --no-gui $rdhome/roms/ps3/emudir/dev_hdd0/game/$gameid
|
|
||||||
Icon=$rdhome/roms/ps3/emudir/dev_hdd0/game/$gameid/ICON0.PNG
|
|
||||||
EOF
|
|
||||||
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -rf $rdhome/roms/ps3/dump/*
|
|
||||||
|
|
||||||
zenity: done, restart retrodeck please
|
|
Loading…
Reference in a new issue