• It took a good while to be released, but it's finally here: Luma3DS, the popular custom firmware for the Nintendo 3DS, has just received a major update!

    Version 10.0 introduces several new features, like an NTP client which can be used to sync your clock via Google's time servers (works with GodMode9 too!), CTRPF-AR code support for the built-in cheat engine, blue light filters with five different light reduction levels (night owls, rejoice!) and a pm service reimplementation made by @TuxSH. There are also improvements and bugfixes all across the board, of course: a higher number of cheats can be enabled at the same time, the debugger received a ton of new functions and features (some thanks to the previously mentioned sysmodule reimplementation), EmuNAND options will be automatically hidden if none can be found on the SD card and a few crashes and oddities have been resolved.

    It's worth mentioning that v10.0 comes bundled with the newly released Homebrew Menu v2.1.0 too, which also has its own set of noteworthy additions: for example, an integrated 3dslink server that can be used to send .3dsx homebrew between two consoles on the same network (just press X while selecting a homebrew app!)

    Here are Luma3DS v10.0 and Homebrew Menu v2.1.0's official changelogs:
    Quoted from Luma3DS v10.0: We know it's been a long time, but here it is:
    • New feature: NTP client
      • Located in the "miscellaneous" Rosalina submenu, this fetches the time from time1.google.com (hardcoded IP) by default
      • This sets the config savefile RTC offset 0, hence the displayed by Home Menu will also be the time that Arm9 programs like GM9 will see
      • Consequently, Luma3DS's own Arm9 code will properly set the date and time when modifying or creating new files

    • New feature: blue light filters (thanks to @panicbit, #1065)
    • Lots of cheat engine bugfixes and improvements thanks to @piepie62 (multiple PRs), in addition to @tstambaugh92 's bugfixes (#1116, #1117)
      • most CTRPF-AR code types now supported
      • more cheats can be loaded at once

    • New reimplemented sysmodule: pm
      • Number of max. pm:dbg sessions increased for Rosalina usage
      • New pm:dbg commands: GetCurrentAppTitleIdAndPid, DebugNextApplicationByForce, LaunchTitleDebug (mainly for gdbstub usage)
      • Debug restrictions lifted for the gdbstub
      • Service restrictions lifted for Cubic Ninja

    • Lots of gdbstub improvements:
      • Added support for debugging application at their very start (new option in Debugger submenu)
      • Added support for target extended-remote
        • You do not need to select a process to attach to in process list anymore using this, although it still works absolutely fine
        • You will see a nice process list in IDA
        • When launching new processes: only titleId [mediaType [launchFlags]]is supported, and the launched title shouldn't rely on APT and all 3 parameters should be hex-encoded (see e11cc09)

      • Added support for accessing host files (including stdin/stdio/stderr) from target 3DS programs. Support for it has been added in libctru
      • Added support for accessing target SD-card files from the host (remote put, remote get and remote delete)
      • Doubled packet size
      • Many bugfixes

    • Fixed critical bugs in sm: one causing a crash when launching the camera applet when another title was using the camera, another possibly affecting sleep mode
    • Fixed a critical bug where Luma3DS's Arm9 code would spam I2C requests, causing some particular commits of popular Arm9 payloads to fail on New3DS units with IPS screens.
      If the issue still arises, put multiple payloads in the folder and use the chainloader menu to work around it
    • Reworked build system. Armips is no longer required.
    • Always dump errdisp errors to /luma/errdisp.txt
    • Upgraded FatFs to R0.13c
    • Upgraded I2C driver in Arm9 code
    • Fix screens not working on firmlaunch, firmlaunch errors will now be displayed on screen
    • Patch 11.8+ NIM-related Process9 to send all-zero key and IV when the UNITINFO patch is enabled (thanks to @luigoalma, #1142)
    • Hide EmuNAND options when there is no EmuNAND present on the console
    • Fix minor bugs involving DS(i) title autoloading
    • Many other bugfixes
    • Note: the pm reimplementation currently breaks NTR CFW to some extent (in particular game plugins). The abandoned "NTR CFW" is now unsupported, even if it may work.
      • A solution for future versions is being worked on.
      • It may be possible to change NTR CFW source code for it not to inject itself into pm, since Luma3DS removes svc permission checks anyway, to mitigate the issue. We do not have the time to do that ourselves
      • It is not possible to disable custom pm

    In addition, with thanks to @fincs, this release of Luma3DS comes bundled with version 2.1.0 of the Homebrew Menu.
    Click to expand...

    Quoted from Homebrew Menu v2.1.0:
    • Added netsender functionality, for sending homebrew to other 3DSes directly from hbmenu
    • Added Chinese language support
    • Improved Korean and Japanese translations
    • Now displays Wifi strength in status bar
    • Hidden files and dotfiles are now hidden
    • Fixed text rendering in non-JPN/USA/EUR system fonts
    • Fixed positioning of the HOME button icon in New 2DS XL systems
    • Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience

    Click to expand...

    However, there is one thing to keep in mind before you head to the Releases page: this version breaks compatibility with NTR CFW. While some functions appear to work fine, like screen streaming, others don't seem to work at all - especially game plugins. A solution is reportedly in the works but, if you need NTR, it may be a good idea to stay on v9.1 in the meantime.

    UPDATE: Version v10.0.1 has been released, which includes hotfixes for LayeredFS and N3DS-specific applications not closing properly, as well as previous fixes that have been rolled out silently in the previous days (NTP client not setting date/time properly, process list memory viewer, correct ARM BLX instruction)

    GBAtemp thread