Skip to content

Latest commit

 

History

History
112 lines (87 loc) · 9.27 KB

README.md

File metadata and controls

112 lines (87 loc) · 9.27 KB

Starlight3DS

Nintendo 3DS "Custom Firmware"

GitHub Downloads (all assets, all releases) License

Nintendo 3DS "Custom Firmware"

Please check the Official Luma3DS readme for more info!

What it is

Starlight3DS is an unofficial fork of Luma3DS with more features, this is a continuation of DullPointer's luma fork where most features are taken from it and made compatible for the latest Luma3DS version at the time of writing this.

There's also some features taken from other luma forks as well and some that I added myself. Please check the credits to see people who made this fork possible!

Starlight3DS requires a full-system persisent exploit such as boot9strap to run.

Changes with the official build

Note: The config file is different from the original luma3DS, it's "configplus.ini" instead of "config.ini" to avoid conflicts if you want to switch between this modified version and the official one (like for playing CTGP-7 for example).

  • Changed auto-copy to ctrnand and essential backup checks to be less annoying
  • Restored UNITINFO and enable rosalina on safe_firm options on the luma config menu (TWL patch option is now with "enable external firms and modules")
  • Removed the need of having both "Game Patching" and "External Firms and Modules" enabled for patching sysmodules, just "External Firms and Modules" need to be enabled
  • Added shortcuts:
    • Press start + select to toggle bottom screen (nice when you watch videos) inspired by This
    • Press A + B + X + Y + Start to instantly reboot the console. Useful in case of freeze, but can corrupt your sdcard. This is why this option is now hidden in the config.ini file
    • Press Start on Rosalina menu to toggle wifi -> Original
    • Press Select on Rosalina menu to toggle LEDs -> Original (and press Y to force blue led as a workaround when the battery is low)
  • Added Extra Config menu including:
    • Automatically suppress LEDs
    • Cut power to TWL Flashcards allowing to save battery
    • Home button opens Rosalina
    • start + select shortcut to toggle top/bottom screen (enabled on bottom screen by default)
  • Added Day and Night mode (lite):
    • You can choose the screen brightness
    • You can choose to turn on or off LEDs
    • Those will be applied at a desired time
  • Added n3ds clock + L2 status in rosalina menu -> Original
  • Added Software Volume Control -> (now merged with the official luma3ds one)
  • Added extended brightness presets and per-screen brightness -> Original WARNING: a little broken and can exceed the limits!
  • Added permanent brightness calibration -> Original
  • Added a option to cut wifi while in sleep mode allowing to save battery -> Original
  • Added the ability to redirect layeredFS path -> Original
  • Added loading of custom logo while launching a app from luma/logo.bin -> Original
  • Added loading of external decrypted otp from luma/otp.bin -> Original
  • Changed colors on config menu because why not
  • Continue running after a errdisp error happens, this is the same option as instant reboot because they kinda go together (you decide when to reboot after an error occur)
  • Added play coin maximize to rosalina menu -> Original
  • Plugin Selector -> Original

Maintainers

Original Luma3DS mainteners:

  • @TuxSH: lead developer, created and maintains most features of the project. Joined in 2016
  • @AuroraWright: author of the project, implemented the core features (most of the baremetal boot settings menu and firmware loading code) with successful design decisions that made the project popular. Created the project in 2015, currently inactive
  • @PabloMK7: maintainer of the plugin loader feature merged for the v13.0 release. Joined in 2023

Starlight3DS mainteners:

Known issues

Official Luma3DS issues:

  • Cheat engine crashes with some applications, in particular Pokémon games: there is a race condition in Nintendo's Kernel11 pertaining to attaching a new KDebugThread to a KThread on thread creation, and another thread null-dereferencing thread->debugThread. This causes the cheat engine to crashes games that create and destroy many threads all the time (like Pokémon).
    • For these games, having a dedicated "game plugin" is the only alternative until Kernel11 is reimplemented.
  • Applications reacting to Rosalina menu button combo: Rosalina merely polls button input at an interval to know when to show the menu. This means that the Rosalina menu combo can sometimes be processed by the game/process that is going to be paused.
    • You can change the menu combo in the "Miscellaneous options" submenu (then save it with "Save settings" in the main menu) to work around this.

Starlight3DS issues:

  • Some games such as Donkey Kong Country Returns 3D doesn't work: I geniunely have no clue why this happen, I can't test it in my side because I don't have the game. Even if I could, I don't know how to investigate this issue. Help is welcomed! Discuss about this issue In this issue
  • Low extended values for backlight are broken: If you hold L or R to use the extended values below the original limits, it will glitch and gets extremely high. I checked the code for this and it seems good to me, maybe I need to investigate a little more.
    • DO NOT USE THESE VALUES IF THIS HAPPEN! This may DAMAGE the screen!

Building from source

To build StarLight3DS, the following is needed:

  • git
  • makerom in $PATH
  • firmtool installed
  • up-to-date devkitARM and libctru:
    • install dkp-pacman (or, for distributions that already provide pacman, add repositories): https://devkitpro.org/wiki/devkitPro_pacman
    • install packages from 3ds-dev metapackage: sudo dkp-pacman -S 3ds-dev --needed
    • while libctru and StarLight3DS releases are kept in sync, you may have to build libctru from source for non-release StarLight3DS commits

While StarLight3DS releases are bundled with 3ds-hbmenu, StarLight3DS actually compiles into one single file: boot.firm. Just copy it over to the root of your SD card (ftpd is the easiest way to do so), and you're done.

Setup / Usage / Features

See https://github.com/LumaTeam/Luma3DS/wiki (needs rework)

Licensing

This software is licensed under the terms of the GPLv3. You can find a copy of the license in the LICENSE.txt file.

Files in the GDB stub are instead triple-licensed as MIT or "GPLv2 or any later version", in which case it's specified in the file header. PM, SM, PXI reimplementations are also licensed under MIT.

Credits

See https://github.com/LumaTeam/Luma3DS/wiki/Credits for original Luma3DS credits

People who made this fork possible:

  • DullPointer: For making the original fork where a lot of features come from,
  • Sono: For contributing in DullPointer's Luma3DS Fork,
  • Nutez: For contributing in DullPointer's Luma3DS Fork,
  • Pixel-Pop: For adding the custom logo.bin feature,
  • DeathChaos25: For the ability to redirect the layeredFS paths,
  • truedread: For the external otp loading feature,
  • Gruetzig: For the 300 Play Coins in the rosalina menu feature,
  • Tekito-256: For the Plugin Selector, please check their fork for more plugin related features!
  • exalented: For adding quick top screen toggle feature,
  • Alexyo21: For helping me!