Emulation on 3DS

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

Reasons the 3DS is great for emulation

  • 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
  • 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)

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

Note: 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

Many games can be installed as CIA files, meaning 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.

Alternatively, ROMs can be played through other software such as RetroArch or TWiLight Menu++.

Nintendo DS (NDS)

  • Nintendo DS games are not in the 3DS eShop
  • The 3DS can play NDS cartridges natively
  • NDS ROMs can be played natively using TWiLight Menu++ (see below)
  • NDS ROMs can be converted to an installable CIA using a tool like Forwarder3-DS

Game Boy Advance

  • The 3DS can natively play GBA games
    • Game Boy Advance games are not in the 3DS eShop, except for 10 games that were released only to early adopters of the 3DS
    • Those 10 games and others can be found as or converted to CIA files using a tool like New Super Ultimate Injector (see below)
  • GBA ROMs can be emulated using RetroArch
  • GBA ROMs can be emulated using TWiLight Menu++

Nintendo 64

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

Other systems

  • Many Game Boy, Game Boy Color, NES, SNES (New 3DS only), Game Gear, and TurboGrafx-16 (Japan only) titles are available in the eShop
    • These titles and others can be found as or converted to CIA files using a tool like New Super Ultimate Injector (see below)
  • RetroArch (see below) can emulate the largest number of systems, including PlayStation 1 (https://emulation.gametechwiki.com/index.php/Emulators_on_3DS#RetroArch)
  • TWiLight Menu++ can launch Nintendo DS, SNES, NES, Game Boy, Game Boy Advance, Game Gear, Master System, and Mega Drive/Genesis ROMs

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