Skip to content

Rosalina

Emma edited this page Jul 22, 2020 · 10 revisions

Rosalina is a custom sysmodule with a myriad of features for both developer and end user convenience, available once the 3DS is booted. We take feature requests for Rosalina; if you'd like to request a feature, you can do so here.

3DSX loading

  • 3DSX files can now be loaded seamlessly, and work just like installed titles; this means you can use the Home Menu and applets while a 3DSX application is running, use the GDB stub, etc.
  • By default, the title used to boot boot.3dsx is hblauncher_loader, but this can be changed at any time (Miscellaneous options > Switch the hb. title to the current app). Simply launch any title, use that option, close the title ; the next time you launch that title, it will run boot.3dsx.
    • Note: 3DSX applications will freeze if the takeover title is set to Health & Safety. This is being worked on and will be fixed.
  • No need for *hax payloads anymore.
    • Note: *hax payloads don't work under Rosalina due to the altered memory mapping, and versions of the Homebrew Launcher below v2.0 will not work at all.

GDB Stub

  • A fully featured GDB stub for easy debugging.
  • Can debug up to 3 processes simultaneously (the process to attach to are to be selected in the process list menu)
  • To use the GDB stub, enable the debugger in the Rosalina menu detailed below), navigate to the the Process List and select processes you want to attach to. Make sure to disable the debugger when finished, otherwise your 3DS will not be able to cleanly shutdown/reboot/firmlaunch.
  • Compatible with both GDB and IDA Pro ("Use single-step support", in the specific debugger options prompt, should be unchecked).
  • Software breakpoints, 2 hardware watchpoints (globally), all basic features and many more, like catch syscall, info os, etc.
  • Can access the 80000000..B0000000 strongly ordered mapping (see Developer features) as well as privileged memory

InputRedirection

  • Allows you to control your 3DS using your PC with, for example, an external controller (Xbox360 controller, etc.). Should work with every game with minimal lag, depending on your connection latency.
  • C-stick/ZL/ZR redirection is N3DS-only, possibly only with newer games
  • Recommended clients are InputRedirectionClient-Qt (compatible with xinput on Windows, evdev on Linux, should be compatible with OSX) or InputClient-SDL.

Rosalina menu

Rosalina has an easily accessible menu, triggered by pressing L+Down+Select (by default; the key combo trigger can be changed in the Miscellaneous options menu). Many features are available from this menu:

  • New 3DS menu: Allows you to enable/disable the higher clock speed and extra L2 cache available on the New 3DS/2DS even in games that would not normally support it.
    • Note: Some games don't work with the extra L2/clock speed and may freeze or crash. You can enable the clock increase and extra L2 cache independent of each other, so if you run into issues try disabling one or both.
  • Cheats: A built-in cheat engine supporting Gateshark-style cheats. Please see the dedicated Cheat Engine page for more information.
  • Process List: A list of running processes. Used as a selection menu for the RAM viewer/editor and when selecting a process to attach to the debugger, if it's enabled.
    • RAM viewer: By selecting a process in the Process List, you can view/edit its RAM. Note that some processes are heapless and thus the L/R heap/code switcher will not show for them.
  • Take screenshot: As the name implies, this takes a screenshot and saves it to /luma/screenshots. As of Luma3DS 10.2, this is no longer slow.
  • Debugger options: Allows for enabling/disabling the built-in GDB stub.
  • System configuration: Options to modify the system state.
    • Toggle LEDs: The power and WiFi LEDs can be toggled on/off in this menu by pressing A.
      • Note: Entering sleep mode will reset the LED state, and the power LED state cannot be changed when the battery is low.
    • Toggle Wireless: Allows you to toggle the wireless connection on/off without flipping the hardware switch (older 3DSes) or returning to the Home Menu (newer 3DSes).
  • Miscellaneous options: A sub-menu containing the misc/various options not suited for any other menu.
    • Switch the hb. title to the current app: Detailed above, switches the takeover title to the currently running application. Will change to Switch the hb. title to hblauncher_loader if a takeover title is already selected.
    • Change the menu combo: Allows you to change the key combination that triggers the Rosalina menu to whatever you'd like. To do this, select this option and then press and hold the keys you'd like to set as the combination.
    • Start InputRedirection: Enables/disables InputRedirection, detailed above.
    • Save settings: Saves the Rosalina key combo and takeover title to Luma's config.bin, allowing custom choices to persist through reboots.
  • Power off: Powers the system off, bypassing the "Return to Home Menu" page that pressing the power button would show.
  • Reboot: Restarts the system.
  • Battery percentage: Remaining battery percentage is displayed in the bottom right of the menu.
  • Version info: The Luma3DS version and commit hash is displayed in the bottom left of the menu.