Emulation on 3DS

Is the 3DS a good device for emulation?

Advantages

  • Easily hacked to install homebrew/emulators
  • Natively plays 3DS, DS, and GBA games
  • Powerful enough to emulate most 8-bit consoles
  • The New 3DS models are powerful enough to emulate most 16-bit consoles and some limited ability to emulate Nintendo 64 and PlayStation 1
  • Decent build quality typical of Nintendo consoles
  • Clamshell design protects the screens
  • Landscape orientation is comfortable to hold
  • Second screen is convenient for emulator menus, logs, etc
  • Uses a standard micro SD card instead of a proprietary memory stick
  • Decent battery life and official replacement batteries are still available for purchase
  • Individual games can be installed to the home screen if desired (see New Super Ultimate Injector below)
  • Games can be installed by scanning a QR code with the camera

Disadvantages

  • Clamshell design makes it a bit bulky
    • Second screen is nice to have but most of the time it’s unused
  • The top section can be a bit wobbly due to the hinge design
  • Buttons/D-pad are significantly smaller than those on older game consoles that are being emulated
  • Buttons/D-pad are clicky on some 3DS devices (e.g. the New 2DS XL)
    • Clicky buttons have less travel and a different feel because they lack the rubber membranes that most older game consoles had under the buttons/D-pad; of course this is just a matter of preference
  • Proprietary charging port
    • USB-A to 3DS charging cables can be purchased cheaply

Misc

Important notes

  • This document mostly uses the term “3DS” but is also applicable to the 2DS
  • Many emulators are only capable of running on a New 3DS

Glossary

  • .3dsx files
    • These are files that can be run using the Homebrew Launcher
  • .cia/CIA files
    • These are files containing software (or games) packages specifically for the 3DS. They are installed using a tool called FBI (see below). Once they’re installed they can be deleted from the SD card.

Installing custom firmware (CFW)

This is a prerequisite for anything mentioned on this page.

Follow the instructions here: https://3ds.hacks.guide/

  • Under Finalizing Setup, all of the steps are optional
    • (Recommended) DSP1: allows homebrew applications to have sound
    • (Recommended) FBI: allows you to install CIA files
    • (Recommended) Homebrew Launcher Loader: this gives you an icon to directly open the Homebrew Launcher; otherwise it’s a multi-step process involving opening Download Play, using a button combo, and selecting a specific menu item
    • (Recommended) Universal-Updater: this allows you to install and update 3DS homebrew
    • (Optional) Anemone3DS: install if you want custom themes
    • (Optional) Checkpoint: install if you want to be able to back up and restore saves for DS and 3DS games
    • (Optional) ctr-no-timeoffset: install if you want to bypass penalties from certain games for your system clock changing
    • (Optional) GodMode9: this allows you to copy the CFW to the 3DS’ internal memory instead of the SD card so you can boot the CFW without an SD card installed

Updating custom firmware (CFW)

⚠ If you get a notification that there’s a new system update available, you’ll want to update the CFW before installing the system update.

In most cases, it should be sufficient to update Luma3DS before installing the system update:

https://github.com/LumaTeam/Luma3DS/wiki/Installation-and-upgrade

  1. Get the installed version of Luma3DS
    1. Turn on your 3DS while holding Select
    2. Make note of the Luma3DS version
  2. Compare that to the latest version here: https://github.com/LumaTeam/Luma3DS/releases
  3. Upgrade Luma3DS if necessary
    1. Download the latest version from https://github.com/LumaTeam/Luma3DS/releases
    2. (Optional) Make a backup of the boot.3dsx and boot.firm files from your SD card
    3. Extract the new boot.3dsx and boot.firm files from the download to the root of your SD card
  4. Install the 3DS system update by going to System Settings > Other Settings > System Update

If you’re running an old version of boot9strap (less than v1.2), you’ll need to update that first:

Updating B9S

Emulation

⚠️ Some of these emulators may be outdated or unmaintained. Before installing any particular emulator, check these resources to see what the current recommendations are:

CIA files versus ROMs

Games can be installed as CIA files so they will show up as a separate entry in the 3DS home screen and can be launched directly. As with all CIA files they need to be installed using FBI.

Otherwise, you can copy ROMs to the 3DS and play them through other software such as RetroArch or TWiLight Menu++.

Nintendo DS (NDS)

ⓘ All NDS games are played natively on the 3DS; no emulation is involved

  • NDS cartridges are supported by all 3DS models
  • NDS ROMs

Game Boy Advance (GBA)

  • The 3DS can natively play GBA games
    • Use a tool like NSUI or GBARunner2 to create a CIA “forwarder” that opens the game in the 3DS’ native GBA mode
    • Or you can open the game with TWiLight Menu++ to play it natively without a forwarder
  • Or GBA games can be emulated; this gives up perfect speed and accuracy for more features like save states
    • NSUI can create a CIA file or you can open the ROMs with RetroArch

Nintendo 64

https://github.com/masterfeizz/DaedalusX64-3DS

Other systems

Software

FBI

  • Install FBI

    https://3ds.hacks.guide/finalizing-setup

  • Install a CIA file

    1. Copy the CIA file to your SD card
    2. Open the Homebrew Launcher
    3. Open FBI
    4. Select SD then browse to directory containing the CIA file(s) to install
    5. Select <current directory>
    6. Select Install and delete all CIAs
  • Install from a QR code

    Anything that can typically be installed as a CIA file can be installed using a QR code to avoid having to copy the file to your SD card

    1. On another device, find the QR code for what you would like to install
    2. On the 3DS, make sure the wireless is enabled
    3. Open the Homebrew Launcher
    4. Open FBI
    5. Go to Remote Install > Scan QR Code
    6. Point the camera at the QR code
    7. Select Yes to install the software when prompted

Luma3DS

  • Open Rosalina menu (shows battery percentage and other features)

    Press L + down + select

RetroArch

  • Install RetroArch

    https://docs.libretro.com/guides/install-3ds2ds/

    1. Go to the RetroArch download page

      https://www.retroarch.com/ > Download

    2. Scroll down to 3DS/2DS and click Download (cia)

    3. In the download archive, extract the retroarch directory and copy it to your SD card

    4. (Optional) Extract cia/retroarch_3ds.cia to the cias folder on your SD card

      • This acts as a launcher for the cores but isn’t necessary if you don’t mind installing the first core manually
    5. To avoid very slow loading times, delete any unwanted cores from retroarch/cores or move them into another directory

    6. Using FBI, install the core(s) or retroarch_3ds.cia

  • Controls

    • Tap the center bottom screen to turn it off

    • Tap the bottom of the bottom screen to go back to the RetroArch menu

  • Mapping 3DS buttons to keyboard keys in RetroArch (e.g. when using DOSBox)

    1. Open RetroArch and load the game you wish to play

    2. Go back to the RetroArch menu > Quick Menu > Controls > Port 1 Controls

    3. Device Type > Keyboard + Mouse

    4. Go to each of the buttons and assign them to a key, for example, to assign the A button to left Ctrl go to Auto: L (btn) > Keyboard Left Control

    5. Go back to the previous menu and select Save Game Remap File

    6. To use the same mappings for another game, load that game and then go to Quick Menu > Controls > Load Remap File > Save Game Remap File

TWiLight Menu++

  • Install TWiLight Menu++

    Installing TWiLight Menu++ (3DS)

  • Exit a game

    • Hold L + R + down + B for 2 seconds
  • Access the settings

    1. Press Select
    2. Go all the way down to the icon on the bottom and press A
    3. Use L and R to change between the menu pages
    4. Press B to exit
  • Playing games in widescreen

    See Playing in Widescreen

Tools

New Super Ultimate Injector (NSUI)

  • Run on Linux using Wine: https://gist.github.com/bmaupin/93d31e1b2d738ae656b9d3617e19622b

  • Create a new CIA

    1. File > New > select the system as appropriate
    2. Project > Load ROM > select the ROM
    3. Under CIA metadata > Game icon click Download Title Screen from database

    4. Under CIA banner click Download Title Screen from database
    5. Under Game patches and extras uncheck Enable Download Play (this doubles the size of the file)
    6. Project > Export CIA