Update README.md

This commit is contained in:
Edoardo Lolletti 2024-04-28 15:12:53 +02:00
parent 06d374d28b
commit 18b35242cf

View File

@ -2,16 +2,42 @@
A basic homebrew with a single job, install and uninstall unlaunch from a console. A basic homebrew with a single job, install and uninstall unlaunch from a console.
## WARNING ## WARNING
This can modify your internal system NAND! There is *always* a risk of **bricking**, albeit small, when you modify NAND. Please proceed with caution. This can modify your internal system NAND! There is *always* a risk of
**bricking**, albeit small, when you modify NAND. Please proceed with caution.
## Features ## Features
TODO - Safety checks to install and uninstall unlaunch without a risk of bricking
- Fully compatible with older unlaunch installs
- Works on every DSi, whether it's retail or development
- Keeps a recovery copy of unlaunch in NAND to protect against future bricks
(only on retail consoles)
## Notes ## Differences with official installer
TODO The Nintendo DSi's stage2 has a failsafe where it will load a backup launcher
(HNAA) if it can't find the real one (eg. missing, corrupted), even on retail
consoles.
Whereas the official unlaunch installer appends itself to the tmd of the
primary launcher (thus leaving the console bricked in case of failed install
uninstall), the safe unlaunch installer takes advantage of this feature
by installing unlaunch to the backup launcher.
To make then stage2 actually load unlaunch from the backup launcher,
the main TMD is "broken" by only changing a byte in it so that it skips it and
loads the exploited one from the backup.
This is safer than normal unlaunch installs because as long as the main TMD
isn't touched, the system can't be bricked by those operations (apart from
total nand failure), and the moment the main TMD is tampered with, unlaunch is
already there as fallback in case of errors.
Reverting this operation (thus uninstalling unlaunch) is also safer as this
program only has to restore that previously changed byte to restore the main
TMD, this allows to keep backup unlaunch "installed" as general brick
protection since it won't interfere with the system.
## Credits ## Credits
- [DevkitPro](https://devkitpro.org/): devkitARM and libnds - [DevkitPro](https://devkitpro.org/): devkitARM and libnds
- [Martin Korth (nocash)](https://problemkaputt.de): [GBATEK](https://problemkaputt.de/gbatek.htm) - [Martin Korth (nocash)](https://problemkaputt.de):
- [JeffRuLz](https://github.com/JeffRuLz): [TMFH](https://github.com/JeffRuLz/TMFH) (what this is a fork of) [GBATEK](https://problemkaputt.de/gbatek.htm)
- [rvtr](https://github.com/rvtr): Adding support for installing to dev/proto consoles - [JeffRuLz](https://github.com/JeffRuLz)/[Epicpkmn11](https://github.com/Epicpkmn11):
[TMFH](https://github.com/JeffRuLz/TMFH)/[NTM](https://github.com/Epicpkmn11/NTM)
(what this is project used as base for menus and other things)
- [rvtr](https://github.com/rvtr):
Adding support for installing to dev/proto consoles and the ( ͡° ͜ʖ ͡°) icon