diff --git a/Exclusive-dev-branch-options-and-features.md b/Exclusive-dev-branch-options-and-features.md new file mode 100644 index 0000000..65a12c7 --- /dev/null +++ b/Exclusive-dev-branch-options-and-features.md @@ -0,0 +1,28 @@ +The `developer` branch of Luma3DS has its own unique options and features which are extremely useful for developers. + +![Config menu](https://raw.githubusercontent.com/wiki/AuroraWright/Luma3DS/images/config_menu_dev.png) + +## Options: + +- **Developer options**: + - **ErrDisp**: patches ErrDisp to display debugging information on the top screen + - **UNITINFO**: patches the value of CFG_UNITINFO sent to the arm11 on boot to make applications believe that they are running on a developer unit. This makes ErrDisp diplay debugging information too, but prevents using the eShop, amiibo, etc. + - **None**: doesn't apply either patch; also disables the exception handlers (see below) + +--- + +- **Disable access checks**: disables SVC, service, and exheader arm9 access checks + +## Exception handlers + +Exception handlers give invaluable information when debugging crashes (reads/writes at invalid addresses, execution at invalid indresses, undefined instructions, etc.). + +Luma3DS handle CPU exceptions for itself, chainloaded arm9 payloads, and NATIVE_FIRM too. For NATIVE_FIRM, it handles `svcBreak` and kernel panics as well. + +To parse a crash dump produced by Luma3DS, use [this parser script](https://raw.githubusercontent.com/AuroraWright/Luma3DS/developer/exceptions/exception_dump_parser.py). + +## Other exclusive features: + +- **External firmware loading**: if present in the `luma` folder, one of: `firmware.bin`, `firmware_twl.bin`, `firmware_agb` and `firmware_safe.bin` (depending on the firmware being launched) will be used of the one stored in CTRNAND. + +- **External module loading**: loads standalone system modules located in `/luma/sysmodules` (except for SAFE_FIRM and NATIVE_FIRM versions older than 3.x)