I've spent the better part of 10 hours looking at it in IDA and the best way I can describe this firmware is "hwfly-nx on steroids". There's a lot going on in this firmware. I'll keep digging
There's an additional list on top of the typical glitch config list. It looks like it stores the last configuration that successfully glitched the console and then attempts to use that last successful config first upon the next boot a couple of times. This would benefit long term especially if you've seen consoles that change the values at which they glitch at depending on their environment. (There was an individual on GBATemp that messaged me a while back about this. It was quite bizarre.)
It seemingly has better debug too. There are LED patterns to help you determine what issue you're having.
1 blue blink for an RST issue
3 blue blinks for a CPU flex issue
1 white blink for a CLK issue
3 white blinks for a CMD issue
1 red blink for DAT0 issue
3 red blinks for...unknown? issue
It verifies each block written to the eMMC during the 'p' command. If I had to guess, it's to make absolutely sure there's no corruption going on. (good thing tbh) you throw out all signal integrity out the window the instant you install one of these chips, whether it be a hwfly chip or this chip (some of the installs i've seen look like y'all have soldered with your damn feet).
TL;DR
There's a ton of safety checks in this thing and a lot of user-friendliness for debugging install issues. I haven't looked at the sdloader with the new INSTINCT-NX logo, but it looks like a rehash of the one used in hwfly-nx. If I had to guess based on how it handles the glitch configs, it starts out good with 25 trains, but only improves the more you boot it over time.
Post automatically merged:
Alright, things have gotten spicy. looking into the glitch function... it has settable timeouts based on emmc type.
This is HUGE. This means this chip supports even the troublesome toshiba. In my fork of hwfly-nx I specifically set my timeout to 100 due to the fact I have a Toshiba eMMC and Toshiba is straight-up dogshit. I have a pull request for this on hwfly-nx but the creator doesn't want to merge it. This is likely due to the fact while it'd benefit Toshiba users (get the damn thing to boot) it'd slow down the speed of glitching for all other eMMC types. I'd bet money this has out of box toshiba support.
EDIT 2: I snagged one. Gotta see this thing in person
This is HUGE. This means this chip supports even the troublesome toshiba. In my fork of hwfly-nx I specifically set my timeout to 100 due to the fact I have a Toshiba eMMC and Toshiba is straight-up dogshit. I have a pull request for this on hwfly-nx but the creator doesn't want to merge it. This is likely due to the fact while it'd benefit Toshiba users (get the damn thing to boot) it'd slow down the speed of glitching for all other eMMC types. I'd bet money this has out of box toshiba support.
Huge, huh? Instead of silly workarounds with timeouts they could implement something really new.
picofly algorithms reduced the cycle time down to 20ms in the best case, that is 50 attempts per second.
Huge, huh? Instead of silly workarounds with timeouts they could implement something really new.
picofly algorithms reduced the cycle time down to 20ms in the best case, that is 50 attempts per second.
So I had a look at this in Ghidra at home and yeah. It’s definitely better than HWFly’s firmware. Elegant. Not sure who the developer is, but they know their microcontroller code.
Huge, huh? Instead of silly workarounds with timeouts they could implement something really new.
picofly algorithms reduced the cycle time down to 20ms in the best case, that is 50 attempts per second.
Actually, it is huge compared to the public firmware we have now. Yours could be better, we aren’t sure without having access to your source. I’m not asking for it, merely commenting that yes, this is damn good. This firmware should cut the learning phase down quite a bit as well as “remember” the last working glitch state meaning much much faster booting times since it can just reuse that one instead of multiple attempts.