It has come to my attention that there are several forks of sdloader (github.com/lulle2007200/sd-loader) and my picofly firmware (this repo) that caused permanent hardware damage/"hard-bricks" to Nintendo Switch consoles. Additionally, there are binaries of these two projects being distributed outside of their respective release pages, that may also cause hard-bricks. I strongly advice against using any of these forks and only use binaries from their respective release pages. I cannot and will not provide any form of support for issues due to that.
If you do want a specific feature implemented, feel free to submit a PR or message me. Forking the project, adding superfluous changes and then bricking peoples consoles is not the way.
As always, use at your own risk.
The initial payload (IPL) included with this firmware is able to load any payload.bin, up to a maximum size of 127.5 KB.
A menu with various tools is available by holding VOL+ while booting.
The firmware should ideally be flashed via USB.
If you don't want to (or can't) flash via USB:
- Place
update.binon the root of your SD card. - Launch
sdloader.bin(e.g. via Hekate) while holding VOL+. - Use the included Toolbox to install the firmware (see
FW Updatebelow).
Note: This may not work, depending on the currently installed firmware version. If it doesn't, the chip will simply stay on the current firmware.
An additional flavour (no_extras suffix) is provided. It does not include the UMS tool or the Toolbox, and should be installable regardless of the currently installed modchip firmware. Remember to rename to update.bin first.
Once installed, you should then be able to install the full version.
Power Off
Reboot OFW
More
├── UMS
│ ├── SD CFG
│ ├── GPP CFG
│ ├── BOOT0 CFG
│ ├── BOOT1 CFG
│ ├── Start
│ └── Reload
├── Launch Payload
└── Toolbox
├── FW Info
├── FW Reset
├── FW Update
├── FW Rollback
├── IPL Update
├── IPL Settings
│ ├── Payload vol.
│ ├── Boot action
│ └── OFW Combo
└── BL Update
| Item | Description |
|---|---|
| Power Off | Powers off the system. |
| Reboot OFW | Reboots the system and boots original firmware. |
| More | Opens additional options and features. |
| Item | Description |
|---|---|
| UMS | USB Mass Storage tool, used to mount the SD card or eMMC. |
| Launch Payload | Launches payload.bin. If a payload volume isn't explicitly set (see IPL Settings), the chip searches for it in the root of a FAT32/exFAT partition in this order: BOOT1, BOOT1 (at a 1MB offset), SD card, eMMC. |
| Toolbox | Tools to manage firmware and settings. |
Mounts storage devices over USB. Each storage device (SD, GPP/eMMC, BOOT0, BOOT1) has an identical set of config options.
| Item | Description |
|---|---|
| SD CFG | Configure if/how to mount the SD card. |
| GPP CFG | Configure if/how to mount eMMC (GPP). |
| BOOT0 CFG | Configure if/how to mount BOOT0. |
| BOOT1 CFG | Configure if/how to mount BOOT1. |
| Start | Starts the UMS tool. By default, only the SD card is mounted, as read/write. |
| Reload | Reinitializes eMMC and SD card. Use this after inserting an SD card. |
| Option | Description |
|---|---|
| Mount | RW (read-write), RO (read-only), or -- (do not mount). |
| Mode | Offset + Size (mount a specific sector range) or Part (mount a specific partition number). By default, the entire storage device is mounted as a single disk. |
| Part. | The partition number to mount, when Mode is Part. |
| Offset | Start of the range to mount, in sectors, when Mode is Offset + Size. |
| Size | Size of the range to mount, in sectors, when Mode is Offset + Size. |
| TSize | Displays the total size of the selected storage device. |
| Item | Description |
|---|---|
| FW Info | Shows info about the currently installed firmware. |
| FW Reset | Forces a rewrite of the initial payload and clears the persistent storage area on next boot. |
| FW Update | Updates the modchip firmware. Searches for update.bin in the root of a FAT32/exFAT filesystem, in this order: BOOT1, BOOT1 (1MB offset), SD card, eMMC. |
| FW Rollback | Reverts to the previous firmware. |
| IPL Update | Updates the initial payload. Searches for payload.enc in the root of a FAT32/exFAT filesystem, in this order: BOOT1, BOOT1 (1MB offset), SD card, eMMC. |
| IPL Settings | Change initial payload settings (see below). |
| BL Update | Updates the modchip bootloader. Do not use this. Searches for bl_update.bin in the root of a FAT32/exFAT filesystem, in this order: BOOT1, BOOT1 (1MB offset), SD card, eMMC. |
| Option | Description |
|---|---|
| Payload vol. | Storage to load payload.bin from. One of: auto (search as described under Launch Payload), SD, BOOT1(1MB), BOOT1, GPP. |
| Boot action | What to do on boot. One of: Payload (load payload.bin), OFW (boot original firmware), Menu (start the menu). |
| OFW Combo | Enable/disable the VOL+ + VOL- key combo to boot to original firmware. |
0x100 bytes at offset 0x100 in block 0x1FFF of BOOT0 are persistent and will not be overwritten, unless the firmware is updated or a reset command is issued (FW Reset).
This region may be used by initial payloads to store persistent configuration.