LumaLocaleSwitcher 3DS

From GameBrew

Last Updated2017/04/23
LicenseMIT License

LumaLocaleSwitcher is a front end to the Luma built-in region emulation.

It is based off of FBI for UI and title listing features, can be used to manage per-title locales for Luma3DS (and compatible forks such as SaltFW).



Both LumaLocaleSwitcher Nightly and Stable builds (v0.04) are identical with the exception that they have different defaults.

  • Stable - If your Luma is 6.6 or lower.
  • Nightly version - If your Luma is greater than 6.6 or Nightly.

Install either one of the .cia file using a CIA installer such as FBI. QR code is also available.


Requires devkitARM and citro3d to build. You also need Ctrulib 3DS.

To build, call git submodule sync (to pull in svchax and buildtools) and make and you should be good. If you are running nightly Luma3DS, you can run make LUMA_NIGHTLY=1 to get sane defaults.

User guide

Set up

If you use Luma3DS and downloaded the appropriate verison (nightly or stable) you can just select Titles and make your changes.

Otherwise, you can choose from the list in the app or write your own custom path to /locales.conf (the path for the TitleID for each specific title is /luma/titles/<titleID>/locale.txt).

When choosing region and language settings, a separate folder is created using the title ID as it's name with a locale.txt file inside with the users settings.

Note: Also make sure to enable Game Patching from Luma3DS's configuration menu.


Currently requires the parent path of the locales directory to exist (i.e., it will not create the directory for you).

  • If it fails to set the region for a title, that is the most likely reason.
  • If you are using Luma, and everything is properly set up, this shouldn't affect you, since the /luma/ directory should exist anyway.
  • There is no file chooser built in, so if you need to use a custom directory for some reason, you will have to write the path to /locales.conf manually.

Changing the region emulation is not always a magic bullet, due to the way the 3ds services are set up.

  • In particular, online play may not function even when the region emulation is set up properly.
  • If you are receiving 003-0399, either give up or use a search engine to look for workarounds.


Changing game language with the Luma Locale Switcher (sthetix)

Known issues

Please see



  • Fixes typos in default paths.
  • Fixes detection issues in the UI.
  • Hide title IDs most people would not want to tweak (DS/system titles; they can be toggled on with the Y button).


  • Adds compatibility the Luma NIGHTLY paths.
  • NOTE: there is no migration option, so you will have to migrate your files manually or start fresh.
  • Adds more flexibility with path location.
  • Handles non-existing directories more gracefully.
  • Updates to build with the latest ctrulib.
  • The builds below are identical with the exception that they have different defaults.


  • Fixes compatibility issues with manually created files.
  • Adds the new SaltFW directory.
  • Updates to build with the latest ctrulib.


  • Initial release.


This is largely based on FBI by Steveice10.

This also would not be possible without AuroraWright's work on the region emulation feature in Luma3DS.


  • Possum - project maintainer.
  • CouldBeWolf - beta tester, bug reports.
  • ericjwg - patches, testing, and building.

As always, big thanks to the 3DS homebrew/CFW community.

External links