DOS Gaming Made Easy with eXoDOS – 7500 games
10th April 2024Play every DS game from your modded 3DS SD card
18th April 20243DS Homebrew – Hack your 3DS and play any game from an SD card
The Nintendo 3DS was the last of the foldable, handheld, DS console range from Nintendo. Released in 2011 it remained in production until 2020 with numerous models along the way including the lower cost 2DS and larger XL variants. As the platform matured it got an upgrade in 2014 with the New model featuring a more powerful processor, extra analogue joystick and other improvements.
However, its unique selling point was the built in 3D stereoscopic display and could create 3D images without the need for special glasses. Not all games used this feature but those that did were able to create some great effects.
Today you can pick one up on eBay for around £100 to £150 depending on the model.
But the best part of owning one today is that it can very easily be hacked to install Homebrew apps and features. Like the Wii this is a purely software mod requiring only a standard SD card and a PC to manipulate the files.
Once the console has Homebrew installed you can play any 3DS game from your backup rom file dump, play DS, DSi and GameBoy Advanced games from backup files and then use the console as a retro console emulator to play a wide range of other system titles.
So let’s hack this 3DS.
Big Thanks
First of though and really big thanks to Reece from BHL.co.uk for lending me his precious 3DS. It’s a great looking Smash Bros edition in great condition.
And if you’re in need of a new boiler or any other plumbing or home related hardware please do check out the BHL.co.uk website for some fantastic deals – BHl.co.uk
Which Model
The very first thing we need to do when hacking a console is to identify what type of 3DS or 2DS we have. There are two main versions, the old and the new.
So if you look at the rear of the device, or the top of a 2DS you’ll see the L and R bumper buttons. If there are two bumper buttons on each side you’ve got a new device. You’ll also see a smaller joystick above the ABXY buttons on the new devices. This is important as the two versions need different hack methods in the first stage.
Once we’ve identified the type we now need to check if the console has already been modded.
With the device powered off, hold down the select button and turn the console on, keeping the select button depressed. If the unit opens up in the normal menu we are ready to run the mod. If you boot into another menu system it looks like your device has already been modded so you can just go ahead and start installing apps.
So assuming your unit isn’t yet modded we next need to get the current System version number.
Go into your system settings app and look for the version number coming up in the bottom right corner of the top screen. We’ll need this so make a note of it.
Which Mod?
Depending on your type of console and firmware version you’ll need to use different initial hacks. Head over to the 3DS Hack Guide at
https://3ds.hacks.guide/get-started
Fill in the info for your device and it will direct you to the appropriate mod.
For me that’s the MSET9 exploit. If yours is suggesting a different mod then please follow the instructions on the 3DSHacksGuide website to get boot9strap installed.
This guide is a great resource to use as we go through the process. Usually the modding process is smooth and reliable, but sometimes you will get an error. At each step the guide has a troubleshooting guide covering the most common errors.
Preparing Your SD Card
Whatever exploit you use you’ll need to have a suitable SD card ready. For the old versions this needs to be the standard SD card size so if you’re using a micro SD card make sure it comes with an adapter. Size wise I’d advise using at least a 64GB card, but you can use anything up to 2TB. Larger cards will let you store more games and apps but very large cards can start to slow down the system. 128GB and 256GB cards are a nice compromise.
The cards do need to be formatted as FAT32 drives so if you’re using Windows you’ll need a separate app to do this as the Windows formatter will try to us exFAT or NTFS file systems which won’t work.
My preference is to use the Minitools Partition Wizard which is a free app you can download from this website.
Once you’ve installed the app open it up and insert your SD card into your PC. If you’ve been using it for your Raspberry Pi or something else you may find some extra partitions on the card so make sure you clean it first.
Next select the blank area and create a partition that uses all the available space.
Now we need to format that to FAT32. For 64GB cards use a 32KB cluster size. For larger cards use a 64KB cluster.
You can choose whatever volume label you want and then apply your changes. Once that’s completed your card is ready for use.
Running the MSET9 Exploit
We’re now ready to run the MSET9 exploit.
First we need to download the software.
Go to https://github.com/zoogie/MSET9/releases/latest.
From this GitHub repository we need to download the latest release. For me this is V1.2. When you come to download it may be higher. We want the release .zip package. So just make sure you save that to a suitable folder on your hard drive.
Once it’s downloaded navigate to the zip file and extract the contents into its own folder. Inside that should find a number of files and folders that we’ll be using in a second.
This MSET9 mod is written in a programming language called Python. We need that to be installed on our PC. If you’ve already got a version of Python 3 installed you’re ready to go. If not then head over to the Python.org website and download and install the latest V3 interpreter.
Once that’s all installed we’re ready to run the exploit.
First we need to turn our SD card into a 3DS drive. So just insert the card into the console. Power it on and run the Mii Maker application. If you’re using a freshly formatted SD card you’ll get a message telling you it’s adding some extra data. We need to get the Mii Maker app up and running so if it doesn’t start reselect it and you should get some more messages about it creating some extra files before going into the actual app. You don’t need to go through the process of creating a Mii so just exit out of the app using the home button and power down the console. Take out the SD card and pop it back into your PC.
We now need to copy all the files we extracted from our MSET9 download into the root folder on our SD card. Make sure you get the extracted files and folders and not the folder you put them into, and make sure they go into the root of the SD card and not inside any other folder.
Now we need to run the MSET9 app on our computer, but you need to run the version that you just copied over to your SD card. So in Windows make sure you are looking at the SD card contents and double click the mset9.bat file. For Mac users run the mset9.command file, and for Linux users open up a terminal window and run the python3 mset.py command.
You should get a terminal window popping up and it should give you 4 choices. Select the option that matches your console model, old or new, and the firmware version number. For most people this will be option 1 or 2. Type this number and press the return key.
You should now see a new display showing your model and version choice with a new set of options. Make sure the info is correct and then type 1 followed by the return key to run the sanity check.
At this point you should get a message saying everything is OK with a set of green ticks in the list of checks.
But if like me you get an error regarding the databases being missing or malformed we need to perform one more step.
So press enter to close the mset9 app and take the SD card back to the 3DS and power it up. Then select the system settings app, data management, Nintendo 3DS and Software. It should detect that the SD card information is corrupt and give you the option to Reset it. Click reset, power down the console and take the SD card back to the PC.
We now need to re run the mset9.bat batch file from the SD card a second time, again checking we’ve got the right model and version selected before running the sanity checks.
This time everything should be fine.
If you still get an error go back to the guide for some help.
Press enter to close the script and then eject your SD card.
Make sure your 3DS console is powered off and insert the SD card.
Power on the console but DO NOT TOUCH ANYTHING.
For these next steps you need to follow me exactly. We’ll be using the d-pad to navigate around and the A button to select options but we need to pause a certain points in the process so take it one button press at a time!
First use the d-pad to highlight the System Settings icon but DO NOT SELECT IT.
Power off the console and let it turn off. Wait for a few seconds and then power it back on again.
The System Settings icon should be highlighted so now press the A button to select it.
You can now use either the d-pad or your stylus to select Data Management, followed by Nintentdo 3DS and then Extra Data. The stop.
DO NOT PRESS ANY BUTTONS OR TOUCH THE SCREEN.
Leave the console turned on and very carefully making sure you don’t hit any buttons or the screen, remove the SD card.
Your 3DS will complain about the SD card being removed. This is what we want.
Leave the console as it is without touching anything and pop the SD card back into your PC.
If your nerves are still holding out run the mset9.bat file again.
Select your model and version as before, but on the next screen now select option 2 and press return. This will inject the MSET9 code into the SD card. You should see a success message.
Press return to close the script.
We’re now going to put the SD card back into the console, again without hitting any buttons or touching the screen.
If all’s gone to plan the console should boot into SafeB9Installer.
If you get a red screen, or the 3DS gets stuck refer back to the guide for some help.
Hopefully you’ll now be looking at a screen prompting you for a series of key presses to install our custom firmware to hack the system. Use the 3DS buttons to complete the sequence and wait for it to complete the setup process. Once that’s ready you should be able to press the A button to reboot the console.
This should boot you into the Luma3DS configuration menu.
In Luma3DS there are a number of settings you can use but at the moment we’re just going to leave everything at the default state. So just press the Start button to save the settings and reboot the console.
Once it restarts you should get back to the normal menu screen, but we’re now running the hacked system software.
The final step is now to remove the MSET9 code from the SD card. This is important as it can stop some games and apps from working if we leave it in place. So power down the 3DS and pop the SD card back into your PC.
As before we need to run the MSET9 script, select our system and version, but this time run option 3 to remove MSET9.
You should get a success message so exit from the script and put the SD card back into the console for a final check.
If you power on the 3DS it should reboot into what looks the normal home menu. As before this is actually Luma3DS. If you now power off the 3DS and then reboot whilst holding down the select button you should find we boot into the Luma3DS configuration menu. This should confirm that we’ve got a fully modded console.
So lets start adding some software to make use of the new features.
Setup WiFi
Many games and apps will need Internet access so if you haven’t already you need to set up your WiFi.
Start the systems settings app and select internet settings and connection settings. We want a new connection and we want to set it up manually. We now get the 3DS to scan for access points and it should pick up your WiFi, so simply select that and enter the connection details.
The console will run through some checks but you should then be connected to the Internet.
Helper Apps and Backup
The first software we need to install is a set of base helper and launcher apps as well as some backup software. Go to the finalise setup page in the 3DS guide and download the two files provided.
Finalize.romfs needs to be copied into the root of your 3DS SD card.
Finalize_helper.firm needs to be put into a payloads folder in the luma folder. You’ll probably have to create this folder.
Now we need to jump back onto the 3DS.
So, with the sd card inserted power up the console and open the system settings app. In other settings find and select the System Update function and select that. This will make sure that your system is fully updated so you’ll either see it updating or it will tell you that it’s already up to date.
We now need to use something called the Rosalina Menu which lets us perform some backup functions. Hold down the left shoulder button, d-pad down and press select to open the menu. Under Miscellaneous Options select the Dump DSP firmware option to make a copy of your sound system firmware as that will be used by some other applications. Press B to continue.
Next select Nullify user time offset and then press B when that’s complete.
Now press B until you exit out of the Rosalina menu.
We’re now going to install our software so we need to power off the console. Then hold down the Start button and power on again (do not hold down the Select button). This should boot you into the Finalizing Setup Helper.
You should see a Luma3DS Chainloader menu. Now use the d-pad to select the finalize_helper option and click A to run it. Your 3DS should now reboot into GodMode9 which has a number of system and backup functions. You can get back to GodMode9 at any time by powering on the console while holding the start button.
You should be prompted to backup your essential files. Press A to run the backup and then A to continue.
You may now be prompted to fix the real time clock date and time. If so press A and set the date followed by A to save it.
Now you need to press the Home button to bring up the action menu. Select the scripts option and then select finalize.
This will start a series of actions to backup the 3DS and install our Homebrew system. Simply follow the instructions on the bottom screen. At certain points it will need you to authorise some actions so just use the A button to allow the next steps. You’ll need to input a series of button presses to authorise the backups but then just let it run through.
At the end it will ask you to press A to complete the script at which point the console will power off.
You now need to take out the SD card and put it back in your PC.
If you open the sd card we now need to copy some very important files from it. In the /gm9/backups folder you’ll find two SysNAND files. These are your console NAND data backups and you’ll need these to be able to recover your console if you manage to brick it in the future. Without these you will not be able to fix your console. The essential.exefs file contains your system unique files which are also essential if you need to recover the system. Make sure you backup this whole backups folder to more than one location, just in case.
If you’re absolutely sure you have correctly backed up the folder you can delete the files inside it. This will save you about 1GB of data storage.
Congratulations you’ve now got the base layer of Homebrew installed and a full backup of your system.
First Homebrew Run
If we now pop the SD card back in the console and power up we should get some nice presents sitting in the menu. Click on these to activate them.
You should have Anemone which is a custom theme manager for your menu system. This lets you change the look of your 3DS screen by adding new colours and graphics from a range of pre made, downloadable themes. Or you can even create your own if you want to.
Checkpoint is a save game manager that helps you keep track off and organise your save game files.
FBI is one of the most important Homebrew apps. This is the one that’s going to let us use our ROM backup files to install and play our 3DS games without needing to use our delicate cartridges all the time. It will also allow us to install a whole range of Homebrew apps using the standard .cia file format. We’ll talk more about this one in a second when we start to install some games.
FTPD is an FTP server for the 3DS. With this you don’t need to take the SD card out of the console to transfer files to the machine. You simply connect to the console over your WiFi network using an FTP client and transfer files over the air. To be honest I tend not to use this unless it’s a small file as it’s usually faster to just take the SD card out.
The Homebrew launcher is another app you’ll be using a lot. This holds references to all your Homebrew software and allows you to run the apps. Again we’ll be using this is a second.
Universal Updater is almost like a Homebrew app store allowing us to download and install Homebrew content without having to use a Pc and transfer files to the SD card.
Playing 3DS Games
So with our base software all unlocked lets get to the best part. Playing some games!
Any original cartridges will of course play as normal. Just plug them in and of you go.
But these cartridges are getting old and it’s best to try to preserve them. So with our hacked 3DS we can now use backup files to install our games onto the SD card. I’m not going to cover how to make backup copies of the cartridges in this video so I’ll assume you’ve already got hold of the game files. Of course, there are websites that will allow you do download games but please do check out my video on copyright to make sure that you’re staying on the right side of the law in your region.
Game files will usually be in one of two formats. 3ds files are decrypted rom dumps that you can use in an emulator such as Citra but the 3DS console isn’t able to use these directly. We need .cia files which our new FBI app (now you understand why they called it that) is able to install onto our system. Once the game is installed the executable game files will be stored on our SD card and the .cia installation file will no longer be needed.
So all we need to do is take our .cia files. Create a folder on our 3DS SD card called cias and then copy the files over.
We then return to our console with the SD card and run the FBI app.
Once the app opens it will list the storage areas on the 3DS. We need to select the SD card and then find the folder that contains the cia files we want to install. Once we’ve got those in view we can select a file and the app will present us with a number of options. The main two are at the top.
We can simply install the software, or install it and remove the cia installation file to automatically clean up our sd card.
We also have the option to install files singly, or if we select the very top option for the current directory, we can install all the cia files within this folder in one go. So I’m going to do that and have the cis files removed.
Once that process starts it will take a while to install the games so leave the system on mains power and let it run through. You’ll see estimated times for installation on the bottom screen. Note that this is for the current file, not the whole batch. This bunch of games is going to take a good 45 minutes to complete so I’ll see you on the other side.
After the games are installed simply follow the screen prompts and exit out of FBI using the start button.
Back on the home menu we should have a number of new software titles to unwrap. These will be our fully installed and ready to play games.
Unwrap them and give one a go.
Here I’m starting up Mario Kart. The game will run as if it was on a rom cartridge, including offering to download and install any title updates. Feel free to update and then we’re into the game.
What Next?
So that’s our 3DS or 2DS fully homebrewed and you now know how to install games from your backup files using the FBI app and .cia files.
But this is only the start of what you can do with the device. Over the next few videos I’ll be showing you how to play DS and GameBoy Advanced games, emulate other consoles like the NEW and SNES, and a whole host of other great Homebrew apps. So make sure you like this video and subscribe to the channel for more gaming, modding, making and coding episodes.
Have fun with your 3DS and bye for now.