Hacking SysUpdater -- Discussions on improving stability

Selver

13,5,1,14,9,14,7,12,5,19,19
OP
Member
Joined
Dec 22, 2015
Messages
219
Trophies
0
XP
426
Country
SysUpdater is amazing. However, it is also known for instability, with some people having multiple continuous failures (bricking the SysNand/EmuNand), while others have it work on a first try.

This thread is devoted to ideas and discussions on ways that may help improve the stability of the actual title updating functionality of this tool.

Periodically, this post will be updated with a summary of the ideas and results, along with a link to the last post reviewed (so you can read only the more recent items).
 
Last edited by Selver,

Selver

13,5,1,14,9,14,7,12,5,19,19
OP
Member
Joined
Dec 22, 2015
Messages
219
Trophies
0
XP
426
Country
Idea:
For downgrade, check currently installed title version. If same title already installed, don't process that .CIA at all.
Edit: Seems sysUpdater 0.4.2 already does this. Wondering now if it actually is working correctly...

Why it will help:
  1. The less that's processed, the less chance for the dreaded "an error has occurred..." screen.
  2. Downgrades that are smaller will automatically have fewer .CIA's applied
  3. Users won't need to try to figure out the minimum needed .CIA packs... always able to use full packs
 
Last edited by Selver,

Selver

13,5,1,14,9,14,7,12,5,19,19
OP
Member
Joined
Dec 22, 2015
Messages
219
Trophies
0
XP
426
Country
https://github.com/delebile/SuperUserLib3DS/pull/4
173210 made a PR that apparently improves stability, but was never merged into master because delebile couldn't get it to compile.

Looking at his changes, it seems he discovered that the default printf() (also used via DebugPrint() in debug builds) would be at least one cause of error. Thus, he created a custom usPuts() function that used a custom font. That's definitely one change worth considering! :)

The only additional change needed would be to make it "varags", so it can call into the varargs sprint() before putting the resulting characters onscreen. Nice find!
 

Selver

13,5,1,14,9,14,7,12,5,19,19
OP
Member
Joined
Dec 22, 2015
Messages
219
Trophies
0
XP
426
Country
Idea:
Is there a way to determine a smaller subset of files that can be safely used during a downgrade?

For example, sysupdater seems to do fine for a number of files, and then eventually shows the dreaded "an error has occurred" screen.

I'm wondering if it's possible to downgrade, say, only the system data archives first, and still get a bootable emuNand?

Where would one (or more) in-between safe points be (if any), that would tend to result in a bootable frankenfirmware?

Order:
[] system data archives 000400DB*.cia
[] system data shared archives 0004009B*.cia
[] system data archives 0004001B*.cia
[] system applications 00040010*.cia

The idea is simply to further minimize the number of files that need to be processed before a backup of the emuNand is possible.
 

Swiftloke

Hwaaaa!
Member
Joined
Jan 26, 2015
Messages
1,772
Trophies
1
Location
Nowhere
XP
1,506
Country
United States
*mmph* cause we need more stability on our 3ds updates.
But seriously downgrading is so nerve-racking if you can improve it it would sure grab a good bit of attention.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: @OctoAori20, Cool. Same here.