LumaTeam / Luma3DS

Nintendo 3DS "Custom Firmware"
GNU General Public License v3.0
5.03k stars 552 forks source link

[Enhancement] Allow chainloader button combos for 3DS/DSi autoboot titles. #2051

Open TheGhost567 opened 1 week ago

TheGhost567 commented 1 week ago

Pitch: It would be nice to have an option for the set autoboot title to only boot when holding a specific button (like a chainloader entry), so you could for, for example, boot directly into FTPD or FBI if you want to quickly access your SD card (or can't easily plug it into your computer, like if you have a model with the screwed on covers), or start TwilightMenu++ immediately if you want to play DS games without waiting for the home menu, but still having the default option be the home menu for all the other stuff.

Proposed execution: Add a variable in luma/config.ini to set the boot method for a specified titleid, for example:

[autoboot]
; Autoboot options

; Boot key options for 3DS and DSi titleid:
; "none, a, b, x, y, r, select, right, left, up, down"
; "none" will set the title to only boot automatically when selected,
; other options will set title to boot when holding specified button
; regardless of whether it is selected in config or not.
dsi_title_bootkey = down
3ds_title_bootkey = none

In this example the titleid specified in "_autoboot_dsititleid" (line 140 of config.ini) would boot when holding down on the D-Pad during startup, regardless of whether it set to boot or not in "_autobootmode" (line 82), and "_3ds_titlebootkey" has nothing set, so it has the current default behaviour.

I suppose this setup could also be achieved by redesigning the chainloader altogether and just having it configured via a file (chainloader.ini?), where you could have a list of all the boot options and keys, and specify a firm or titleid for each one in text, instead of the current setup with renaming files in luma/payloads, but that seems like a lot of work.