Luma3DS/Changelog
Aus The Homebrew Cloud
v6.6
Made it possible to use arm9loaderhax.bin from CTRNAND with the SD inserted (DS/DSi/GBA/extended memory games will now work). Fixed the New 3DS CPU patch affecting titles which already make use of the higher CPU clock and L2 cache (New 3DS exclusive titles and others like Smash Bros and Pokemon S/M). If "Clock" or "L2" are selected, these titles will now retain their normal (Clock + L2) setting. Increased the compatibility of region/language emulation, some rare titles are now working. Added support for zerokey-encrypted NCCHs to NAND and SD card. This makes it possible to use some old, Gateway-era CIAs. If the UNITINFO developer option is checked, you will be able to install CIAs encrypted with the developer 0x3D normalkey (such as the SDK ones). This will also make retail-encrypted CIAs fail to install (all already installed titles will keep working in both cases). Improved support for development units (thanks to <a href="https://github.com/SciresM" target="_blank">@SciresM</a>), 9.5+ FIRMs can now be regularly booted, 7.x+ ones can be booted from 4.x, and the system updaters won't overwrite A9LH. Fixed support for system versions 7.x and lower. Fixed bugs in the exception handlers.
v6.5
Full CTRNAND support: if the SD card is missing, you can boot Luma from CTRNAND with a compatible A9LH install. On CTRNAND, the luma folder is located in /rw and can be managed with tools like FBI and GodMode9. The EmuNAND options will also be automatically hidden. Added safety checks everywhere throughout Luma when possible, this also includes FIRM patching (if any patch fails, Luma will either display the amount of failed patches or shutdown). Made the exception dump parser output the disassembly of the dumped code where possible. Kernel9 patches patterns are now only looked for in Kernel9 itself (might speedup the patching slightly). AGB and TWL FIRM from 3.0 onwards are now supported (instead of just the latest versions). Fixed the anti-anti-downgrading patch on 11.2 FIRM. Removed the eShop update check patch as it caused more problems than it solved, and the background updates patch as it didn't work at all. Allowed using the FIRM of SysNAND with EmuNAND and vice-versa (booting with R) if not using A9LH. Fixed bug that made it impossible to print to the screen after FIRM was loaded. Fixed some files in the FIRM folders being incorrectly detected as FIRMs. Major cleanup/minor bug fixing/refactoring of the code, removed several assumptions and switched to structs where possible. Please note that starting with this release, Luma won't support pre-patched FIRMs or other system titles with the same patches Luma does. Common pre-patched titles include NS, Home Menu, TWL_FIRM and AGB_FIRM (in these cases you will either get a svcBreak in loader or a shutdown when launching DS/GBA games). Clean versions of these titles need to be reinstalled before upgrading (the wiki will be updated with a walkthrough soon™).
v6.3.1
Increased the maximum custom path size to 55 characters from 37. The Luma3DS.dat file isn't needed anymore with the new .3dsx (*hax, menuhax) launchers, arm9loaderhax.bin (or the filename specified with the custom payload path) will be loaded directly. Replaced the top screen image in the .nds file. Reuploaded because people reported the CakeBrah .3dsx launchers wrongly displaying the .dat filename when arm9loaderhax.bin was not found, Luma3DS itself was not updated.
v6.3
Merged the regular and dev builds into one. Custom version changes: if the custom version has more than 5 but less than 19 characters it will be truncated to avoid System Settings crashes; separated the custom versions for each NAND (the paths are now /luma/customversion_sys.txt, /luma/customversion_emu.txt, /luma/customversion_emu2.txt. /luma/customversion_emu3.txt. /luma/customversion_emu4.txt). To reduce file accesses for people with high-latency large SD cards, an option to toggle loading firmware.bins and FIRM sysmodules from the SD card and one to toggle loading the splash screens were added. External FIRMs support changes: added support for NUS-encrypted firmware.bins (all four are supported, a matching cetk file for each encrypted FIRM is needed: /luma/cetk for /luma/firmware.bin, /luma/cetk_twl for /luma/firmware_twl.bin, /luma/cetk_agb for /luma/firmware_agb.bin. /luma/cetk_safe for /luma/firmware_safe.bin) and New 3DS ARM9bin-decrypted firmware.bins. Turned the .dat file into a simple chainloader that loads arm9loaderhax.bin, added .nds file to use it with mset. The path changer is now deprecated (although it will still work). To have a custom path you can now enable the option for it in the configuration and type it in a /luma/path.txt file, it must start with a /. This path is also picked up by the above mentioned .dat chainloader. A full format of the SD card is no longer necessary to remove an EmuNAND (also fixes crashes when trying to boot EmuNAND with an SD which used to have one and wasn't fully formatted). The splash screens now display all at once thanks to the alternate framebuffer support. Fixed screen weirdnesses when not launching from arm9loaderhax. Added support for text files with a trailing newline (as per UNIX convention) for region/language emulation and custom versions. Fixed loading SafeA9LHInstaller and other payloads which need the OTP hash if having a PIN. Slightly changed the PIN format. Made option descriptions more readable. Fixed non-working double newlines in PIN messages. Fixed hangs on errors after a firmlaunch, reboots now happen as expected. bin2c is no longer needed to compile. Reuploaded to fix a confusing typo in the config
v6.2.3
Both versions: Finally fixed GW-downgraded O3DS(XL) NANDs.
v6.2.2
Both versions: If Autoboot SysNAND was unchecked, it became impossible to select the EmuNAND if having a corresponding directional pad payload. Now it's possible to do this by holding A + the directional pad button. Added UTF-8 support to customversion.txt. You can now use symbols, including those <a href="http://3dbrew.org/wiki/System_Font" target="_blank">special Nintendo font ones</a> :P v6.2.2: Fixed question marks at the beginning of the custom strings with files created by Windows Notepad.
v6.2.1
Both versions: If Autoboot SysNAND was unchecked, it became impossible to select the EmuNAND if having a corresponding directional pad payload. Now it's possible to do this by holding A + the directional pad button. Added UTF-8 support to customversion.txt. You can now use symbols, including those <a href="http://3dbrew.org/wiki/System_Font" target="_blank">special Nintendo font ones</a> :P
v6.2
Both versions: Revamped EmuNAND support: up to four EmuNANDs are now supported, the default can be selected in the config and it can be changed on boot by holding Up/Right/Down/Left (respectively for EmuNAND 1/2/3/4); other than the legacy layout the minsize layout (for RedNANDs only) and the default layout are now also supported Added a B payload (b_NAME.bin) to the chainloader PIN changes: the number of digits to input is now shown, a message on the bottom screen can be displayed by placing a text file named pinmessage.txt in luma (800 characters maximum) Implemented custom System Settings Ver. string, it needs to be in a text file named customversion.txt (19 characters maximum) in luma, with the stock Nintendo string being Ver. %d.%d.%d-%d%ls When booting with R and the Use SysNAND FIRM if booting with R option is selected, FIRM will be loaded from the default EmuNAND instead of the first one and you can choose a different one with the directional pad, in the same way you would select the EmuNAND Changed the logic of the NIM update patch to only be applied when booting with R Hid the New 3DS CPU setting on Old 3DS Show descriptions for the options on the bottom screen Fixed support for pre-9.0 FIRMs. Luma3DS now directly supports >= 5.x FIRMs, as intended Fixed crashes for people with pre-patched Home Menu and NS module Added boundary checks for files loaded from SD More code refactoring Dev version: Fixed crashes on some Old 3DS FIRMs (such as 9.0) Added displaying a partial stack dump on the bottom screen when handling an exception
v6.1.2
On both branches: 1.x and 2.x NATIVE_FIRM are now supported on SysNAND with the FIRM writes patch, this allows you to update retaining A9LH on every system version. PIN changes: you can now set the PIN length and easily change the PIN (you will get a prompt when exiting the config menu, which can be skipped with START), booting SAFE_MODE is easier with a PIN, the PIN file gets deleted when disabling the PIN lock. The TWL dev launcher patch has been removed as it's no longer needed and causes incompatibilities with a lot of NTR/TWL games. New config.bin format which allows to automatically discard the configuration as soon as it becomes incompatible with new Luma3DS releases. Large amounts of code refactoring and cleanups. On dev branch only: Fixed crashes on New 3DS with the "Disable access checks" option enabled on FIRMs between 9.3 and 10.4. Unfortunately the service and archive checks patch can't work on said firmwares, and won't be applied. ARM9 debugging has been removed from TWL and AGB FIRMs as it didn't work and didn't serve a real purpose. The "Disable access checks" option has been renamed to "Patch SVC/service/archive/ARM9 access".
v6.1.1
On both branches: Fixed a likely issue with the TwlBg patch and made it selectable, as it triggers antipiracy checks for some DS games and possibly causes other issues. Fixed 3ds_injector picking up the previous boot configuration, which caused several bugs (like the NIM update patch activating when not needed - remember to select "Use SysNAND FIRM if booting with R" if you use a SysNAND setup). 1.25s speed boost on boot. Minor cleanups. On dev branch only: Fixed another critical bug in the exception handlers.
v6.1
On both branches: TwlBg is now patched on-the-fly to implement the patch that allows NitroHax and other homebrews to work correctly (big thanks to ahezard, Normmatt et al. for <a href="https://github.com/ahezard/twl_firm_patcher" target="_blank">the patches</a>. No setup is required at all. Fix various bugs On dev branch only: Fix critical bugs in the exception handlers. The UNITINFO patch has been ported to TWL/AGB firms (though it's useless). Its behavior has been inverted for dev units.
v6.0.1
This is a quick release to (tentatively) address issues users are having with the .dat payload. Updated ctrulib (should fix CakeBrah and menuhax 3dsx launchers) Fixed bug that could cause a payload being mistakenly launched after creating a new pin Minor cleanups Note for dev branch users: there was a bug affecting exception handlers in this release. Please use <a href="http://astronautlevel2.github.io/Luma3DSDev/builds/Luma-61e5a444.zip" target="_blank">the latest commit</a>
v6.0
Sorry for the long wait, but as always we deliver 😉. Here is the new release (I'm the one doing it this time): Both branches: Add support for launching >= 6.x/7.x emuNANDs when the sysNAND is on a lower version (on entrypoints other than a9lh) If you want to launch a 3.x or 4.x NAND, you have to place a recent enough firmware.bin (corresponding 10.x for example) under the luma folder (this is not a new feature) Conversely, firmware.bin support has been removed when booting a >= 6.x NAND. "SysNAND is updated (A9LH-only)" has been renamed to "Use SysNAND FIRM if booting with R (A9LH)" to reflect its only new purpose If you were using firmware.bin solely for BootNTR, update the latter (BootNTR has been updated to support 11.0) Add support for loading titles' code section from /luma/code_sections/<titleID>.bin (this is useful for homebrew like SaltySD) Enable the reboot patch on 9.0/9.1/9.2 FIRM Implement a PIN-checking system: you can set a 4-key combinaison (using A, B, X and Y) that be checked when Luma3DS is launched (thanks to <a href="https://github.com/reworks" target="_blank">@reworks</a>) If you want to change your PIN, unselect the corresponding option in the configuration menu, save your configuration settings, then set that option again The screens' brightness is now updated "interactively" when the corresponding option in the configuration menu is changed. This works even if the screen has been initied before Luma3DS has started running Replace "Enable splash screen with no screen-init" by "Display splash screen before payloads" to fit a category of splash screens (as the screens will now be initied if and only if there are splash screens to display) The luma folder will now be created automatically when saving the configuration for the first time (thus it has been removed from the release archive) Other minor adjustments have been made to enhance the user experience Developer branch only: Implement arm11 exception handling (for NATIVE_FIRM only, unlike on arm9 where exceptions are handled everywhere, homebrews and Luma3DS itself included) The arm9 exception handlers were improved (more information is dumped, bug fixes, etc.) For both arm11 and arm9 exception handlers: Prevent double faults (when SP or PC were invalid) Handle svcBreak (this dumps the user-mode at the executed svc 0x3c instruction) Handle kernel panics (except on SAFE_FIRM) /luma/dumps/arm9 and /luma/dumps/arm11 are now be created automatically when they don't exist Reminder: this feature can only work on a9lh, and is guaranteed to work only if Luma3DS is launched as arm9loaderhax.bin Exception handlers and related FIRM patches are now always enabled. The "Developer options" entry is now multi-choice, enabling you to choose between a standalone ErrDisp patch and the UNITINFO patch (both will make ErrDisp display some debugging information, but the UNITINFO patch will create problems with the eShop, amiibo, etc...) Depending of the firmware being launched, firmware.bin, firmware_twl.bin, firmware_agb.bin or firmware_safe.bin will now always be read and used if they exist Add support for reading the built-in kernel system modules (except for SAFE_FIRM) from /luma/sysmodules/<module>.cxi (this includes, of course, loader.cxi) Add an option to disable various access checks: svc access checks and service access checks (patches courtesy of <a href="https://github.com/Subv" target="_blank">@Subv</a>), FS archive access checks and arm9 exheader flags access checks Removed the patch which disabled execution protection on two particular global kernel mappings (corresponding to FCRAM and VRAM, respectively) as it was totally unused Other minor adjustments have been made to enhance the developer experience
v5.5
Added RO patches, which allow you to load custom CRO files (mainly used for Pokémon romhacks) Reimplemented svcBackdoor and patched out the anti-downgrade checks for the latest (11.0) FIRM Added support for recovery mode (L+R+Up+A) on A9LH (you can safely update SysNAND from it without losing A9LH) Added support for N3DS 9.5 FIRM Luma3DS doesn't reboot the console anymore when exiting its configuration menu (useful for non-A9LH users) Splash screen timings are now consistent, it always lasts exactly 3 seconds Fixed the FRIENDS module patch not to break online play (as it did after the 11.0 update) on future system updates. Sorry for the inconvenience! 3ds_injector can now be larger than the original FIRM loader (will allow for more patches) Fixed compiling with latest ctrulib Several performance improvements, and other minor changes and bugfixes Developer version only: Fixed the ARM9 exception handler Registers are now displayed when an exception occurs FCRAM and VRAM have been made executable from Kernel11 There are several bugs with the developer version for this release. These bugs were fixed in <a href="https://github.com/AuroraWright/Luma3DS/commit/6a280723f8e6982d6487a8168a23a17a9e68a740" target="_blank">6a28072</a> (download <a href="http://astronautlevel2.github.io/Luma3DSDev/builds/Luma-6a28072.zip" target="_blank">here</a>)
v5.4
Remade the chainloader to only try to load the right payload for the pressed button. Now the only buttons which have a matching payload will actually do something during boot Got rid of the default payload (start now boots "start_NAME.bin") sel_NAME.bin is now select_NAME.bin as there are no more SFN/8.3 limitations anymore Refer to <a href="https://github.com/AuroraWright/Luma3DS/wiki/Installation-and-Upgrade#upgrading-from-v531" target="_blank">the wiki</a> for upgrade instructions.
v5.3.1
(Reuploaded because I screwed up) Fixed NANDs with partial background updates using the new FIRM. Please note I need testing with this change, as it might cause issues for Old 3DSes which used the Gateway launcher to downgrade the console in the past. I have verified this is probably not an issue as all the leftovers seem to be deleted after an update, but I'm still not 100% sure. If you notice a regression (Luma failing to boot) I'd like to know.
v5.3
Added a new version of the program targeted at developers. For now it has ARM9 exception vectors for payloads (thanks to the hard work of <a href="https://github.com/TuxSH" target="_blank">@TuxSH</a>), and the UNITINFO patch to allow for some ARM11 userland debugging Added L+A payload to the chainloader (the filename is "a_NAME.bin") Added python version of the path changer from <a href="https://github.com/TuxSH" target="_blank">@TuxSH</a>. Works on Python 2 and 3, refer to the wiki for usage instructions Renamed the "Use SysNAND FIRM as default" option to "SysNAND is updated" to make it more understandable Now the eShop update skipping patch is only applied if the updated NAND was not booted (depends on the "SysNAND is updated" option). This is a temporary fix to avoid the Home Menu downloads bug Moved the UNITINFO patch to the developer version
v5.2
Changed name to Luma3DS, the wiki has also been changed accordingly. The new folder is just "luma", and a rename is enough New logo/icon by squee666/izy Very minor code cleanup.
v5.1.2
I didn't really mean to push this build, but it seems 5.1.1 was built wrong for some reason, and (still can't see why), it causes issues with local play in games such as Smash Bros and New Super Mario Bros 2. The same code worked fine from a different build. So here's a quick rebuild. The only changes from 5.1.1 were a general code cleanup and a FatFs update, nothing too fancy.
v5.1.1
Fixed the L+SELECT payload not working, this was due to the LFN -> SFN (8.3) conversion. Now the payload must be named sel_NAME.bin. Removed LFN support from the FatFs of the chainloader (as LFNs aren't used at all by it). This shrinks down the binary by ~4 KBs. Note, you don't need to update if you didn't use the L+SELECT payload or if you aren't obsessed by the binary's size :)
v5.1
Changed the payload chainloader to load payloads named "BUTTON_NAME.bin". As an example: "up_Decrypt9.bin". "default.bin" was changed to "def_NAME.bin" ("NAME" can also be omitted). Original idea and code are by <a href="https://github.com/habbbe" target="_blank">@habbbe</a>, so thanks! Fixed bug when exiting AGB_FIRM and not having an updated SysNAND, where the last used FIRM would be remembered incorrectly, thus loading 9.0 FIRM and forcing the user to reboot to play a GBA game again.
v5.0
The way AuReiNand works has changed. Now you can specify to autoboot SysNAND or not, and a NAND is no more tied to a FIRM (since 9.0 FIRM is autodetected). If you press nothing the default NAND is booted with its own FIRM, L boots the non-default NAND with its own FIRM, R boots EmuNAND with the SysNAND FIRM if you picked "Use SysNAND FIRM as default", and vice-versa. Gotten rid of the patched FIRMs, AuReiNand now finds and loads all the FIRMs from CTRNAND by default. If you are booting an emuNAND, the FIRM will also be loaded from its CTRNAND by default. This applies to AGB and TWL FIRM too, and allows for a very fast boot with no firmware files on the SD card. If for some reason (like using NTR) you do not want to use the CTRNAND FIRM, you can place a firmware.bin in the aurei folder and it will be loaded in place of the default FIRM (so, the SysNAND FIRM if you picked "Use SysNAND FIRM as default", and vice-versa). In order for AuReiNand to handle FIRM reboots, the .bin path needs to be hardcoded in the program. The default is /arm9loaderhax.bin (the AuReiNand.dat is also supported for 9.0 people). A PC tool was written to make changing the path easier. Compiled versions are provided for Windows, Linux and Mac OS. On Windows just drag the ARN .bin on top of the program, and write the path. On the other OSes you need to use the tool from a command prompt. If you have AuReiNand as randomloader/default.bin, just type: randomloader/default.bin. You can now use online for games even on outdated firmwares thanks to a patch by TuxSH. NVer is still needed to access the eShop and NNID-related services. You can now have the console report itself as a developer unit, which enables additional debugging in ErrDisp and also allows you to run software for development 3DSes on retail consoles. Thanks to Steveice10 for this! Rewrote the configuration menu to allow for multiple choice options and not to print the whole menu on each button press. Added a region/language emulation feature, thanks to the hard work of TuxSH. Create a "locales" folder inside aurei, and one .txt for each game, with the title id of the game (look them up on 3dsdb.com). The txt must be exactly 6 characters long: 3 for the region ("JPN", "USA", "EUR", "AUS", "CHN", "KOR", "TWN"), a space, and two for the language ("JP", "EN", "FR", "DE", "IT", "ES", "ZH", "KO", "NL", "PT", "RU", "TW"). You can enable the feature globally in the config menu. This should also finally make DLCs for foreign games work. Added a New 3DS CPU patch, again thanks to TuxSH. This only has an effect on New 3DS consoles, and allows you to configure the CPU inside the config menu, the same way NTR does: Off disables the patch, and then you can choose to enable the higher clock for all games, or the extra L2 cache, or both. AuReiNand should automatically work with future New 3DS FIRMs as the key generation is now built-in. Countless minor bug fixes and optimizations. Heartfelt thanks to these people for this release: Gelex from #cakey who helped me debugging a very nasty bug in the early stages of development, and obviously TuxSH for all his work and Steveice10 for the UNITINFO patch. Also thanks to everyone who supports the project and helps fixing bugs.
v4.2
Fixed ARM11 access to chainloaded payloads (like CakesFW). Made the memory operations faster, as they're now better optimized thanks to -O3 (thanks TuxSH!) Added TWL/AGB FIRM patching/SD loading for New and Old 3DS (thanks to mid-kid of CakesFW for the reboot patch revision, and to TuxSH/Steveice10/others who worked on the patches for making it possible!). Please note that if you're booting a 9.0/9.2 NAND with 9.0 FIRM the reboot patch can't be applied (to not screw up exploits), and so the patched AGB/TWL won't work. You can also optionally enable the original GBA boot screen in the config menu. Fixed the second emuNAND patched FIRM still getting created. Made L not needed to load most payloads. You can now launch these payloads: up.bin, down.bin, left.bin, right.bin, x.bin, y.bin with only the corresponding button, and select.bin and r.bin with L+SELECT and L+R respectively. default.bin is now launched with just START or if the the button's matching payload doesn't exist. Added the possibility to configure the brightness for the built-in screen init. This is valid for all the instances in which AuRei inits the screen (config menu, payloads, errors). The 4 levels are respectively level 5, 4, 3, 2 from the 3DS OS. Just use Up to get to it in the config menu and use A to toggle. Code cleaned up and made more readable.
v4.1
EmuNAND is now detected almost instantly when the CFW configures itself, and if the user is attempting to load an EmuNAND and none is found, SysNAND and 9.6/10.x FIRM are forced, instead of displaying an error message. This also prevents the second EmuNAND patched FIRM (patched_firmware_em2.bin) from ever being created if no second EmuNAND exists. You can now access the config menu after a soft reboot by holding just SELECT. Removed the copying of SecureInfo_A to ctrnand/rw/sys/SecureInfo_C on NAND from 3ds_injector, as it was done on each boot and possibly caused a slowdown. You can easily do the copy with GodMode9. Fixed loading the alternate EmuNAND if 9.0 FIRM was set as default and the user had an updated SysNAND. For this, I had to remove support for the "b.bin" payload. Fixed the current NAND showing incorrectly in System Settings after boot options were forced.
v4.0.1
Reuploaded to fix crash on exiting GBA games To override the last used boot mode on soft reboot, you only need to press A if you want to boot to the default option. Holding L(+payload button)/R is enough for the other modes. Added version number to the config menu Replaced the memsearch algorithm with a faster one Integrated 3ds_injector from <a href="https://github.com/yifanlu" target="_blank">@yifanlu</a>. This brings us region free and all the other FreeMultiPatcher patches. Other than that, you now have the possibility to display the currently booted NAND/FIRM in System Settings! Rewritten most code for the config menu. You now can navigate to the first/last options with left and right. You can now choose the 9.0 FIRM to be default in the config menu. This will essentially switch "no buttons" and L in both modes. You can now choose the second emuNAND to be default in the config menu. This will essentially switch "B is not pressed" and "B is pressed". When the second emuNAND is booted, it will persist like the other boot options on soft reboot Bugfixes
v4.0
To override the last used boot mode on soft reboot, you only need to press A if you want to boot to the default option. Holding L(+payload button)/R is enough for the other modes. Added version number to the config menu Replaced the memsearch algorithm with a faster one Integrated 3ds_injector from <a href="https://github.com/yifanlu" target="_blank">@yifanlu</a>. This brings us region free and all the other FreeMultiPatcher patches. Other than that, you now have the possibility to display the currently booted NAND/FIRM in System Settings! Rewritten most code for the config menu. You now can navigate to the first/last options with left and right. You can now choose the 9.0 FIRM to be default in the config menu. This will essentially switch "no buttons" and L in both modes. You can now choose the second emuNAND to be default in the config menu. This will essentially switch "B is not pressed" and "B is pressed". When the second emuNAND is booted, it will persist like the other boot options on soft reboot Bugfixes
v3.14
(Pi release)? Simplified the patching code. Yet one memsearch less (should make FIRM patching even slightly faster). Fixed A+L override when boot options are forced (this was the only one which stopped working). Dual RedNAND support.
v3.13
Due to requests, changed the payload chainloading to use L+R just for the default payload, and L+button for the other ones. The default will be loaded if the corresponding payload doesn't exist. Increased the brightness of the built-in screen init. Blocked Safe Mode (L+R+Up+A) access on A9LH, as using it would brick the console (N3DS) or remove A9LH due to the reboot to SAFE_MODE FIRM.
v3.12
Introduced a configuration menu which can be called by holding SELECT on boot, which replaces "flags". It appears automatically when the config file is not found, and it can be used to toggle the options that were "flags" previously. AuReiNand now prints error messages before shutting down. To reduce SD card accesses and make the program more newbie friendly, emunand.bin, reboot.bin and loader.bin have been merged into the main executable. FIRM patching has been made slightly faster (only applies if pre-patched FIRMs aren't used) by removing two memory searches. AuReiNand will auto-delete the pre-patched FIRMs when you switch to/from A9LH or, in the future, new FIRM patches are added. Payload chainloading now also works from CakeBrah. I'd like to thank mid-kid at CakesFW for the screen printing code :)
v3.11
Moved the workaround I used to make D9 chainloading work to the loader.bin (the fix was also pushed to the D9 repo, so hopefully this will no longer be needed soon!) Slightly improved the reboot patch Added emuNAND patch improvements from CakesFW Made the emuNAND patch completely version-independent, it should work as-is with future FIRMs! Please note that you must delete all patched_firmwares from the aurei folder with this release! (sorry if this happened twice in a row). less bloated maybe?
v3.10
Fixed intermittent splash from CakeBrah Made splash last slightly longer Added shutdown on error Slimmed down FatFs Added error on missing emuNAND Propered the built-in screen init of the chainloader (no more delays thanks to interrupts disabling, might make it slightly faster on a non-screen-init A9LH) Changed folder to "aurei", changed the dat name to "AuReiNand.dat", remade the look of the 3dsx (First luma-powered CFW!) Please note that you must delete all patched_firmwares from the aurei folder with this release!
v3.9
Further clean-up of the code Fixed rare black screens with mounting SD cards Updated the built-in payload chainloader to handle multiple payloads. This was inspired by Fix94's arm9select. Create a "payloads" directory inside the rei folder, put a "default.bin" inside (rename your existing arm9payload.bin if you have one), and (optionally) these other payloads: b.bin, x.bin, y.bin, select.bin, start.bin, right.bin, left.bin, up.bin, down.bin (press the matching button together with L and R to load the payload). Furthermore, the new loader will automatically perform the screen init before launching the payloads if this wasn't already done by A9LH itself. Added dual emuNAND support. Please note that you can't have two 9.0 emuNANDs, and that if you want a 9.0 emuNAND it must be the first one. To launch the second one, press R + B in updated sysNAND mode, or just B in regular mode. The code will just fallback to the first emuNAND if the second one is not found.
v3.8.1
Disable splash screen when forcing boot options on soft reboot Added bottom screen splash image support, as suggested by Apache Thunder. Must be 320x240 and named "splashbottom.bin", goes in the rei folder
v3.8
External ARM9 payload chainloading for a9lh (loads an "arm9payload.bin" in the rei folder when pressing L+R) Cleaned up the sdmmc library (from the dark-samus a9lh fork)
v3.7.3
A lot of code clean-up. Filesize went down by ~3 KB, and there can possibly be slight speed improvements.
v3.7.2
Previous release broke .dat booting from a 9.0 NAND if A9LH was installed.
v3.7.1
Added forcing of boot options on A9LH: always prevents losing AGB_FIRM saves by booting to sysNAND, forces the last used options on a MCU reboot (can be overridden with A).
v3.7
Added a flag to skip decrypting and patching FIRM and use the already patched ones, for a slightly faster boot and to avoid writing 1 MB to SD on each boot. Warning!: You MUST remove the patched firmwares in the rei folder after switching from a non-A9LH usage to A9LH. You have been warned! Original idea and patch by <a href="https://github.com/Fix94" target="_blank">@Fix94</a>.
v3.6.1
Fixed reboot patch on New 3DS (178 MB cias now work!)
v3.6
Full support for a future screen-init-enabled A9LH payload. A whole new reboot patch (thanks to a skilled reverser for this). It works on New 3DS (for as of yet unused large RAM modes), doesn't break GBA and DS games (no more choosing to press A or not on Old 3DS), gets disabled automatically with 9.0 FIRM to make exploits work. Because of the new reboot patch, now N and O3DS share the same "rei" folder. Fixed N3DS "3D bug", thanks to TiniVi and Cakes for this). Code clean-up.
v3.5.3
New button combos: Regular mode: nothing boots EmuNAND with 9.6-10.4 FIRM, L boots SysNAND with 9.0 FIRM, R boots SysNAND with 9.6-10.4 FIRM Updated SysNAND mode: nothing boots SysNAND with 9.6-10.4 FIRM, L boots EmuNAND with 9.0 FIRM, R boots EmuNAND with 9.6-10.4 FIRM.
v3.5.2
Hopefully fixed booting emuNAND with 9.0 FIRM.
v3.5.1
Re-added reboot patch on A9LH O3DS and N3DS now share the same emuNAND patch Shorter patching patterns patched_firmware does not keep garbage from larger loaded FIRMs Flags can be empty files
v3.5
Fixed A9LH boot detection Added a new "updated syaNAND" mode, which is enabled by the "/rei/updatedsysnand" flag. In this mode, sysNAND is booted by default using the 9.6-10.4 FIRM, L boots emuNAND with 9.0 FIRM (for arm9 exploits and such) and L+R boots emuNAND with the 9.6-10.4 FIRM. When sysNAND is booted on a A9LH setup, a patch (courtesy of delebile) is applied that makes updates skip writing to FIRM0 and FIRM1. This way, sysNAND can be updated without losing A9LH.
v3.4
Arm9LoaderHax is now supported, all features have been ported.
v3.3
First release on GitHub.