• Hey, guest user. Hope you're enjoying GameParadise! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Hacking [Trinket] [Rebug] [Others] [Modchip Software] *NEW* Fusee_Suite UF2 packages

 
 

admin

Chad
Staff member
85%
Joined
Jan 25, 2024
Messages
5,766
Points
38
Age
38
Location
USA
Website
gameparadise.org
Credits
98,776
Intro:
Hello folks, if you are reading this, you probably have a "modchip" fitted in your Nintendo Switch.
You may be familiar with my other threads <HERE> and <HERE>. *to be filled in

I would like to present some alternative SAMD21 software. OK, its not truely "alternative", but I don`t want to clutter up the Switchboot thread as it will quickly get confusing. For me.

Description:
This is a Prebootloader with batt management for autoRCM enabled modchipped consoles.
Fusee_Suite comes in 2 parts. A part 1 and a part 2.

Part 1 (links below) is responsible for strap control and dual-boot / perma-CFW settings.
Part 2 (links below) is responsible for pushing the payload, whatever it may be, and battery control.
I wanted a more "professional" modchip booting solution that doesn`t rely on me or anyone else. You can control it yourself.
And it is pretty future-proof(I will regret saying that).

What do we do with this?
Simples...

Check what straps you have fitted. If you are lucky enough to have the vol+ strap soldered, this is for you. Maybe.
If not, then you can still use it, but you probably will want to avoid "part 1".

Download part 1 and part 2.
Get into UF2 update mode

Drag/drop part 1
Drag/drop part 2.

Done.

A brief guide written by @peteruk - Many thanks, Pete!

I wrote this for myself to help me remember, it may or may not help beginners with their newly installed Trinket's

My personal setup is Atmosphere fusee-primary renamed to payload.bin on the root directly auto booting with no required button press. SX OS named as payload1.bin on the root of the card and finally the latest Hekate inside the bootloader folder named as update.bin

Fusee Suite V5
==============

Press power and hold until screen tells you to release button to enter chip menu
Press power and it will load payload.bin from the root of card (currently AMS fusee primary)
Press power and hold vol + to load payload1.bin from the root of the card (currently SX OS)
Press power and hold vol - to load bootloader/update.bin (currently latest Hekate build)

To flash a new Trinket UF2 file
-----------------------------------------

Press power and hold until screen tells you to release button to enter chip menu
Press vol + button to enter the menu
Using vol + and - buttons navigate to SAMD21 Update Mode
Flex the back of Switch twice (slightly left of center) you will see a flashing red light through grill
Plug usb c cable into both laptop and Switch - this will open a window on the laptop
Copy the latest UF2 file into the window, the window will close, disconnect the usb c cable
Hold the power button for 12 seconds to fully power off - Job done !!


Download Links:

Fusee_Suite part 1:

Trinket
Rebug
RCM-X86 (all versions)
Gemma M0
ItyBitsy M0
Feather M0 Express



Historic versions are on my Github. Perma-links to latest version here:



ctrlasset1.jpg


Latest:

Fusee_Suite part 2:


Trinket
Rebug
RCM-X86 (all versions)
Gemma M0
ItyBitsy M0
Feather M0 Express

Main folder for Arduino (zipped) contains source


SAMD21 Update Payload (send via TegraRCMsmash and press RESET twice on your chip)

Tidy Memloader - Version of Memloader that lives in /bootloader folder, keeping SD root tidy.



Special Editions - These are unsupported special edits of Fusee_Suite part 2 made for various people on this forum. These may have features removed or may not work like you would expect. They are more than likely old versions. Thus no extensive support will be given to them.



Brief guide:

FUSEE_UF2 PART 1:

Changes from Switchboot part_1:
Perma-CFW / Dual-boot selectable with just vol+ if strap fitted.
UF2 file is now named whatever the chip is... Before it was CURRENT.UF2, now, eg for Trinket, it is called TRINKET.UF2.
Works exactly the same as before.

FUSEE_UF2 PART 2:
Looks for:

payload.bin
payload1.bin (or payload<whatever_number>.bin you set with your SAMD options.
bootloader/update.bin (this is so it works out of the box with Kosmos users - no need to rename anything to payload.)

Battery management:
Console will power off in autoRCM mode if under 5% battery until charging. This prevents bootloops eg in SXOS or any autoboot configuration in Hekate.
If boot fails for whatever reason, battery graphic and information is displayed for 5 seconds, then unit powers off.



Controls: (V1 - v5)

*IF VOL+ STRAP IS FITTED* if you see a light when VOL+ is pressed, you have a VOL+ strap. From V5_030120 onwards, you will need to hold VOL+ for at least 4 seconds to see the light. This change has been necessary to avoid accidentally changing chip settings.

Hold until first rapid blink to change from modchip-based autoRCM, to dual-boot. Approx. 4 seconds hold time.
Hold until second rapid blink to change payload. Numbers are blinked out. Hit VOL+ to choose.
Hold until third rapid blink to set Dotstar brightness. Dotstar will fade and hine brightly. Press VOL+ to store.
Hold until fourth rapid blink for Full chip reset.
Hold until last blink (approx 15 seconds - can hold longer for no LED installs(RCMX86 for example)) to enter update mode. Simply power off, (hold vol+ if dual boot)
and power on. You can now connect to your PC. UF2 drive wil pop up.


Controls: v6 onwards:
Untitled.jpg


  • Hold until first rapid blink to change from modchip-based autoRCM, to dual-boot. Approx. 4 seconds hold time.
  • Hold until second rapid blink to change payload. Numbers are blinked out. Hit VOL+ to choose.
  • Hold until third rapid blink to change bootscreen. Numbers are blinked out. Hit VOL+ to choose.
  1. Blink 1 = off
  2. Blink 2 = Static red/white
  3. Blink 3 = Sliding
  4. Blink 4 = Wiping
  5. Blink 5 = Glitching
  • Hold until fourth rapid blink to toggle screensaver on/off
  • Hold until fifth rapid blink to set Dotstar brightness. Dotstar will fade and hine brightly. Press VOL+ to store.
  • Hold until sixth rapid blink to toggle bitmap bootlogo on or off. Name to bootlogo or bootlogo1 and place in bootloader folder. Hekate compatible bitmaps supported.
  • Hold until last blink (approx 20 - 30 seconds - can hold longer for no LED installs(RCMX86 for example)) to enter update mode. Simply power off, (hold vol+ if dual boot)
  • and power on. You can now connect to your PC. UF2 drive wil pop up.


Extra Controls: (v3 onwards)
V3 works exactly the same as V1 and V2.

However, if you power-on and HOLD POWER, (HOLD POWER and press VOL+ if dual boot), you will see a countdown.

Release POWER at the end of the countdown to take you to the prebootloader screen. (Or just remove SD card if you don`t want to countdown).

You now have some options.

POWER button will attempt to boot. If nothing can boot, the console will switch off.
VOL- will display helpful information regarding straps and payloads.
Version 3: VOL+ will open up the SD browser, so you can choose to boot another payload. Or regenerate your SXOS licence.
Version 4: VOL+ will open up the menu, backup/restore, payload management etc etc.

Self-explanatory, really.


Manually Editing Settings
You can edit all of your settings manually, using what we call "settings strings". See below...

1) Download HxD hex editor from HERE.
2) Install it.
3) Open up your UF2 drive. Drag your "UF2" file to your PC, eg to your desktop.

OR just edit on-chip. Live-editing is supported.

4) Open your UF2 file in HxD. You should see something similar to this...

screen1.jpg



5) Now, scroll down to address 0x0007F800. You should see something like this...

screen2.jpg



6) Intro to "Settings Strings"

Fusee Suite saves chip information as a string of numbers, at a specific point in the UF2.
I call this string of numbers your "settings string".

7) An example of a settings string is given below...

screen3.jpg



8) You may find multiple of these "settings strings". This is normal.

9) What happens, is every time a setting is changed on the chip, the settings are rewritten to a new location.

This is what we call "wear levelling".

We need to find the LAST written "settings string".

Look at these offsets:

0x0007F820
0x0007F860
0x0007F8A0
0x0007F8E0

0x0007FA20
0x0007FA60
0x0007FAA0
0x0007FAE0

0x0007FC20
0x0007FC60
0x0007FCA0
0x0007FCE0

0x0007FE20
0x0007FE60
0x0007FEA0
0x0007FEE0

10) You will see a "settings string" written at each of the above locations. If the location is full of FF, that means that location is empty.

Good. Now we have identified our string.

Next, we edit it.

But what are we editing?

Take a look at below graphic...

screen4.jpg



All functions in the settings string are labelled.

So, lets do an example...

Lets say we want to disable the bootlogo...

The number where the LIGHT BLUE arrow is, we need to change to 01.

OVERWRITE, never delete.

Save. Drag back to chip. Done.
QUICK WAY!

1) On-chip editing is supported, meaning you can just open your UF2 drive, edit and save without drag and dropping.
Chip will reboot automatically.

Changing Colours
Do as above, but refer to the table for colour offsets. Change to any hex unsigned 8bit value (00 - FF)

EG
Black is 00,00,00
Green would be: example 00,FF,00.
Dark green would be: example 00,40,00

Refer to table here:
Colour Offsets.jpg




*Disclaimer

If unsure, don`t use it.
If you manage to burn your fuses on your precious v1.0 Switch using this, sorry, but tough.
Test at your own risk.
 

Attachments

  • SAMD_21_Update.zip
    SAMD_21_Update.zip
    800 bytes · Views: 44
  • tidy_memloader.zip
    tidy_memloader.zip
    288.5 KB · Views: 38
V6_110320 Changelog:



  • Battery / Fuel gauge reprogramming / recalibration
  • Battery auto-sync every boot, so no more discrepancies. Hopefully.
  • When in charging lock loop, you can now force manual override by holding VOL+ and VOL- until boot starts
  • Bootlogo management, with preview. Set logos for Hekate and Fusee Suite separately. All dealt with in the app. Browse for your BMP and preview / select it. Disable it, etc etc
  • Charge lock loop threshold changed to 3% (will exit initial charge when 3% batt reached) - TESTING! But should be good now batt sync is fixed.
  • If your battery is well out of alignment (ie getting low battery warnings at 53% like I was, ignore the percentage and charge the battery until it is OVER 4100mV (4.1v) AND WILL NOT CHARGE ANY HIGHER. Than reprogram your fuel gauge / Fix battery in menu... Capacity will be fixed.
  • Not a mandatory update, as usual. If you are still using V1 for example, and you aren`t getting problems, carry on.
  • Filename for Fusee Suite logo is splash.bmp. Next release will see individual bootlogos for individual payloads, as soon as I have thought how to best implement it for speed.
  • Full path is bootloader/splash.bmp
V6_090220 full changelog:
  • Ability to use a bootlogo... Usage is as follows...
If bootloader/bootlogo.bmp is found, this will be shown by default.
If you want a special bootlogo, just for your modchip side (excluding hekate-side), rename your bootlogo to bootloader/bootlogo1.bmp.
If bootlogo1.bmp is found, this will be shown INSTEAD of bootlogo.bmp. This will free Hekate or whatever to use bootlogo.bmp as usual, permitting you to have 2 different bootlogos if you wish. (1 for fusee, 1 for Hekate).

Example:
You have a "Fusee" bootlogo you want to use at power-on and you have an "atmosphere" one you wish to use via Hekate.
Name the Fusee one bootlogo1.bmp and the Atmosphere one bootlogo.bmp (as Hekate will use it). Both will show in order.

To completely disable bootlogo from being rendered, this can be done in modchip settings or just place an empty file called "fusee_bootlogo_disabled" in bootloader folder. This will enable you to use the OEM boot animations from previous releases, if you wish.


  • Flat battery code is now checking battery voltage as well as a percentage of SOC (state of charge).
There were occasionally discrepancies between fusee / hekate / Horizon regarding battery percentage, which caused black screens for some people. This was due to Horizon thinking the battery was flat when it wasn`t and thinking it was charged when it was indeed flat.
So percentage AND voltage is checked now.

If both % and voltage are down, charging without booting (cutting out bootloop) will happen as it should.
If voltage is down, but % is being reported as higher, this will begin charging loop also. And visaversa.



    • Percentage and mV is shown on screen now.
    • Longer timeouts for screen dimming / screensaver
    • SD card is checked for mounting every half-second, via a resetting counter that triggers a refresh
    • A quick glance over the thread, people have asked why we cannot set chip particulars within Fusee directly... This is because, as of yet, I have not figured out how to enable serial over USB from the Switch / BPMP side. Other workarounds to this, are using one of the GPIOs that are currently connecting joycon, vol or USB and reprogramming the chip that way. I just don`t yet know enough about how the USB subsystem operates to implement a solution.

V6 full changelog:
  • Improved button polling for faster boot.
  • Long-press VOL+ has a "progress" graphic
  • Refactored all variables for easier hexedit
  • Screensaver added (bouncing Nintendo logo - can be toggled by button press (Blink 4 VOL+ long press)
  • Boot animations added - (1 = no bootlogo at all, 2 = static, 3 = sliding, 4 = wiping, 5 = "glitching")
  • Change colours of bootlogo and text (either Hexedit, or change in Arduino. Very easy to do!)
  • Screen dimming after period of inactivity
  • Tidied menus
  • Removed SD mount / remount upon every boot attempt - Speeds things up
  • New "button control" graphic on main screen. Less intrusive.
  • BLZ more assets, change colours upon decompression... Sneaky.
  • Typos and bugfixes behind the scenes. New ones probably added. I`m that daft.


Version 5_030120 (part 2) changelog...

  • Bug squishing...
  • VOL+ override (boots payload<x>.bin
  • VOL- override (boots bootloader/update.bin)
  • Rename any payload to "payload<x>", x being a number 1 - 8. This is for people who like to set their payload via SAMD hardware. Most people won`t bother with this...
  • Animated bootlogo available. Changeable in "long press" blink 3...
In "Blink 3" mode, (see above if you are thinking WTF is blink 3)...
Count the following blinks...

  • Blink 1 is white / black - non animated
  • Blink 2 is white / black - animated
  • Blink 3 (default) is white on red - non animated (for @metaljay)
  • Blink 4 is white on red animated

FAQ (in progress)

Q - I have just had a chip fitted, with all straps. I want to use Kosmos. What do I do?
A - Drag and Drop as described in top post. You are ready to go. No need for a "payload.bin". Go to sdsetup (google it) and build your SD card.

Q - I have just had a chip fitted, with some straps. I don`t know which ones. I want to use SXOS. What do I do?
A - Drag and drop both files. Download SX Loader (it is already called "payload.bin" for your convenience). Place on SD root, along with your boot.dat and licence.dat and you are away. You MAY be locked into dual-boot only if you do not have a VOL+ strap fitted. You may need to use a jig and enter RCM and activate autoRCM if you do not have VOL+ strap or joycon(NVidia home) strap.

Q - I cannot get my head around this whole "swap between autoRCM and dualboot" thing...
A- Look through your switch`s grille. When you press VOL+, you may see a light. If you do, great.Just hold until this light blinks. The FIRST BLINK! There are several "blinks". Let go at the first one to swap to dualboot / autoRCM.

Q - Why not just make a UF2 with Hekate or SXOS baked in?
A - Several reasons... Switchboot (my other project) is a Hekate mod that does this. The only downside, is that whenever a new Firmware comes out, you will be reflashing UF2 files. Nyx cannot be included in the SAMD chip flash as it is too big. Same with SXOS.

Q - Can I use Argon with this? Why not base it on Argon, with touch features and stuff?
A - Assets. Argon loads its icon assets from SD. This is designed so no INI / folders or ANYTHING is required. I want you to forget about this once installed!

Q - Why four versions?
A - Version 1 is the first version. Uses ASCII graphics for the battery asset. Characters manually placed. Framebuffer is actually vertical. Characters manually placed one by one.
A - Version 2 is the "new" version. Functionally identical to version 1. But this has a much more accurate battery asset made out of bitmapped graphics. Emulates the OEM version. Slightly bigger in size, due to bitmap arrays. I could make it tiny by using BLZ compression. But I couldn`t be bothered compressing them. Framebuffer is horizontal and mirrored to run from left to right. Just changing to horizontal turns all characters back to front, as you would expect.
A - Version 3 tidies things up a little, adds an info screen with strap information
A - Version 4 brings most "Switchboot" functions to this. Safe backup of PRODINFO etc etc, backup / restore (including small "blank" BOOT0), payload selection, renaming features, etc etc.
A - Version 5 lets you name any payload to payload<x>.bin (from 1 - 8) for SAMD hardware payload selection. Animated start logo, which can be disabled or changed to red

Q - How do I use the SXOS licence regenerate feature?
A - Refer to this post - https://gbatemp.net/threads/trinket...suite-uf2-packages.553998/page-3#post-8898356

Q - Is there any reason I MUST use a particular payload? ie Hekate?
A - No. If you don`t want to use Hekate (as excellent as it is), you don`t need to. It will make your life easier making an EmuMMC though! But no. Once your EmuMMC is made, however you do it, you can just use Fusee-Primary.

Q - Will there be updates to this?
A - Not really. Any bugs I may find, I`ll fix. But no... There will NEVER be any reason you MUST update. V1,2,3 and 4 operate basically all the same. No sigpatches are needed or ini`s or anything. Nothing needs to be done when a new FW comes out. If I do put out any new versions, will be just to add features. But, if in 5 years time, you are still using V1, thats fine.

Q - Are you working on iPatched / Mariko / Lite support?
A - Yes! Testing collapsing the stack, post payload by alternative means is a success. However, I have no lite/Mariko boards to properly confirm it is "working". To test, it needs a Trinket fitting to a Mariko unit. Just as we do with the unpatched units. Nobody has bothered to do this yet. If anyone fancies swapping a Mariko for an unpatched board / unit, PM me.
 
I haven`t cleaned the source up yet, so bear in mind.

:)


EDIT: These are v1 files. It is recommended to download V3 or V2.
 

Attachments

  • update-bootloader-SWITCHBOOT_TRINKET-4958550.zip
    update-bootloader-SWITCHBOOT_TRINKET-4958550.zip
    12.9 KB · Views: 46
  • main.ino.trinket_m0.zip
    main.ino.trinket_m0.zip
    51.7 KB · Views: 41
 

Recent Content

Newest Downloads

Tutorials

Back
Top