Connect Your ESP32 to Alexa with FauxmoESP
7th May 2024Free Streaming TV, Movies and Series – DigiBox D3 Plus Android TV Box Review
10th June 2024Hack your Nintendo DS and play every DS and GBA game + more
The Nintendo DS is Nintendo’s best selling console to date with over 150 million units sold worldwide. This places it as the number 1 best selling handheld console and the second best selling console of any type, just behind the PlayStation 1.
With such impressive sales figures it’s no surprise that it has one of the best games libraries of any console. With its dual screen format and touch screen input complimenting the normal d-pad and ABXY buttons it gave developers an opportunity to explore new gaming features and interfaces to further enhance the excellent gaming capabilities of the console.
Today the DS is still a great handheld to own. Not only for the DS games but also for the homebrew applications. The console is very easy to hack although you will have to fork out around £10 or $10 for a Flashcart. But once you’ve got that installed you’ll be able to play DS games from your backup files, GameBoy Advance games from backup files and then use a number of emulators to turn your Ds into a full retro gaming system.
So that’s exactly what we’re going to do today. So, let’s hack your Nintendo DS.
DSi Hacking
Before we start just a note about the DS’s bigger brother the DSi.
The DSi can be hacked in exactly the same way that I’ll be showing you here but there is an even better way to homebrew that console. The DSi can be hacked with a custom firmware installation that does away with the flashcart and gives you much more flexibility to install system applications and other homebrew apps, very similar to the 3DS and 2DS hack in one of my previous videos. So please make sure to subscribe to the channel if that’s going to be of interest to you.
But on with the DS hack for now.
Flashcarts
The DS hack requires a fake DS game cartridge to allow us to get the system to read our software. These fake cartridges are the flashcarts we’ve been talking about. There are a wide range of flashcarts that you can buy and each type needs a slightly different approach. In this video I’m going to use two R4 flashcarts. You can use ACEcarts and others and they will all be set up in a similar fashion so I’ll be providing links to the instructions for those carts, but if you’ve not yet bought your flashcart I’d advise getting hold of one of these R4 carts so you can simply follow the video.
I’m recommending the two R4 SDHC carts shown here. These are fairly cheap at around £10 and they will work reliably for any DS or DS Lite model along with the DSi if needed. The important specification is the manufacturer website they are branded with. We’ll be using one branded as r4isdhc.com and one branded as r4isdhc.hk. These seem to be easily available on eBay and other sites. If possible get the same version as I’m using just to reduce the variability.
Again if you have another flashcart everything will still work, it’s just that the initial files you’ll need to use will be slightly different, but again I’ll point that out as we go.
SD Card
To make this work you’ll also need a micro SD card to use in the flashcart. Up to a 32GB SDHC card is the standard specification, but any SDXC card will do just as well and give more storage space. If using a ncard larger than 32GB you’ll need an extra piece of free software to format it correctly.
For the 32GB (or smaller) SDSHC card you’ll need to format it as an FAT32 drive using a 32KB cluster size. If you’re using Windows the standard disk formatter will do this for you.
If you want to use a bigger card, I’m using a 64GB SDXC card, you’ll need a disk formatter tool. On Windows I use the Minitools Partition Magic app. This is a great free app that lets you completely clean and format any drive or card. Especially if you’ve been using your card for Linux or Raspberry Pi projects you’ll need a tool like this to remove the Linux partitions.
Formatting the SD Card
So go to the partition magic website and download and install the application. Once ready open it up and pop your SD card into the computer. You should see the drive appear in the drive list.
First we want to clean the drive of all partitions. Right click the drive letter box and select the delete all partitions option. You should see this command queued in the command list. This app lets you queue a series of jobs before you execute them to give you a chance to cancel if necessary. Note this operation is going to wipe everything from the drive.
Next you should see your SD card listed as unallocated. Right click in the unallocated region and select create. We now want to create a primary partition, as an FAT32 drive with a 64KB cluster size for my larger than 32GB card. You can give the partition a name and then click OK.
We should now have the partition deletion and creation tasks listed in our queue so we can now apply the changes.
Once that runs through our SD card is ready for use.
How the FlashCart Works
The FlashCart basically pretends to be a DS game cartridge. When you plug it in, the DS will recognise it and start to run the software on the SD card we put into it. This is how we hack the system and run our own software.
So we now need to add the right software onto the flashcart to make it run our homebrew apps.
FlashCart Firmware
All flashcarts come with firmware from their manufacturer. This will give you a basic setup that allows you to run DS games from your backup files. We’re going to replace this with our own custom firmware that is set up to allow us to run a wide range of homebrew apps.
DS Hacking Guide
The instructions for this hack are fully detailed on the DS Hack Guide website. If you’re using a different card to me you’ll need to refer to this guide to find the steps specific to your card. They will be generally the same but with slightly different files to use.
To show you the process I’ll configure the two cards differently. For one we’ll ditch the manufacturer code in favour of a third party menu system. This will work for a range of common flashcarts. For the second we’ll use the manufacturer code and build that up into a homebrewed system. Either way, once the main hack is ready we can install our homebrew apps in exactly the same way.
YSMenu
Instead of using the manufacturer’s firmware we can use a launcher called YSMenu as our main bootup firmware. This gives us the ability to launch DS games but also to run homebrew apps such as emulators and most importantly the TWiLight Menu ++ app we’ll use in a second.
So head over to the YSMenu website, links in the description below, and download the lastest release. This will have a number of setups for various flashcarts.
Once downloaded extract the archive to a folder on your PC and open it in your file explorer. Make sure you’ve got your DS SD card attached to your computer.
For this hack I’m going to use the r4isdhc.com branded flashcart. In the archive you’ll find a number of folders named after flashcart brands. We want the one that lists our r4isdhc.com brand. Open that up and you’ll see a How To Install text file. Open that up to find out what to do. This process will be the same for each different card so read this file to find the steps for your model.
For my card it’s telling me to first copy the files from another card folder onto the root of my SD card. So let’s do that first.
Back in the text file we now need to copy the specified files from this card’s folder to the root of the SD card.
Lastly we need to copy the .dat files from the DAT folder to the TTMenu folder on the SD card.
And that’s YSMenu installed!
Testing YSMenu
Before we go any further let’s make sure YSMenu is working. For this we’ll need a game backup file in .nds format.
If you don’t have your own backup file you can get them from various Internet sites, but please do have a look at my retro gaming copyright video to make sure that you stay legal. Most software is still under copyright and you may be breaking the law by downloading it.
Anyway, once you’ve got a game backup file just copy it to the Games folder on your SD card. Eject the SD card and pop it into the flashcart and then pop that into the DS and power on.
You should find that the console either boots to the normal start screen saying that some random DS game has been plugged in or you’ll go straight to the YSMenu screens. If you get the normal start screen just click on the game to launch it and you too should then get to the YSMenu page.
Once YSMenu is running you should see a file and folder list on your top screen. This will be looking at your SD card contents. Use your d-pad to change your selection and the A button to select it. If you now navigate to the Games folder you should get a list of the games you copied over earlier.
Again use the d-pad to highlight a game. You should see some details appear in the bottom screen. Then press A to launch the game.
If everything is Ok the game should run and you’re now playing your DS game from the backup file on your SD card.
Great! First stage completed.
TWiLight Menu ++
At this point you could just stop and use your console to play any DS you want. But our device is now ready to install homebrew software.
The first app we’ll install is TWiLight Menu ++.
The app is basically a games launcher for a range of emulators so we’ll be able to play not only our DS games, but also GameBoy Advance, GB Colour and original Gameboy, along with the full range of Atari 8 bit consoles, Nintendo 8 and 16 bit, and Sega 8 and 16 bit machines, as well as a few other consoles and home computers. All of these emulators can be installed manually as we’ll see in the second hack, but TWiLight Mneu does it all for you.
If you head over to the TWiLight Menu website at
TWiLight Menu++ | DS-Homebrew Wiki
And then use the left menu to get to the Installation – FlashCart install page.
You’ll get to the instructions for installing the app onto your SD card. This is broken down into a number of sections. We’ll be using just the first to get the app installed as a stand alone app. If you read the rest of the page you’ll see there are other options and fixes listed but I’m going to recommend not installing these.
So download the .7z archive file. This needs to be extracted onto your hard drive so you’ll need something like 7zip to be able to unpack it. Once you’ve got the files extracted we need to start copying some to your SD card.
We’ll need the _nds folder and roms folder copied to the root of the SD card along with the BOOT.nds file. And that’s TWiLight Menu installed, at least in basic form.
Adding Retro Games
With TWiLight Menu installed we now need some games. These need to be stored in the newly copied roms folder on our SD card. If you open up that folder you’ll see a number of sub folders, one per system that TWiLight Menu supports. Each folder has a file inside that tells you what computer system files should be stored there. So just take your game ROMs and put them into the relevant folders. Make sure that your files are uncompressed and not inside any archive file as the DS emulators won’t be able to decompress them.
Finally we need to do one last file copy to enable GameBoy Advance emulation. For this you’ll need to get hold of a GameBoy Advance BIOS. This shouldn’t be had to obtaion, but if you’re stuck just search for a Batocera BIOS pack and you’ll find all the files you need in there.
To install this onto our SD card just create a folder in the root called _gba. Then copy the bios file into this folder and make sure it’s renamed to bios.bin.
Once those are copied over it’s time to test.
Running TWiLight Menu ++
So if you pop the flashcart back into the DS and power up into YS Menu you should see a BOOT.nds file in the top screen. This is the TWiLight Menu launcher. Select that and the app should start.
On first boot we need to set up a few things. So first we need to set the app language. This will usually default to your console language so unless you need to change this just press the A button. Next we need to set the default region, so just use the d-pad to highlight yours and select it. This is just the app setting. You’ll be able to play games files from any region.
You should now drop into the actual app.
The interface is basically a file explorer that mimics the DSi menu system. You should be looking at the root of the SD card. Let’s try a DS game first to make sure everything is OK.
Use the d-pad to move the selected item until you find the roms folder and then the nds folder, assuming that’s where you’ve put the DS games. If you only have the files in the Games folder from the first tests just navigate to there.
You should now see some DS game tiles. As you highlight them you’ll get the game title pop up. Just select one to run it.
On first run the software may complete a bit of setting up and generate some folders and files. Just let that run through. Once finished the game should then launch and you should now be playing your DS game file through something called NDS-Launcher.
Great! TWiLight Menu is working.
To get out of the game you’ll need to power off the console and reboot.
What if it Doesn’t Work
If you find that TWiLight menu doesn’t start when you run the BOOT.nds file you’ve got to add some more software. Again the installation guide will give you some pointers. If you get a blank white screen with the DS locked this should be remedied by installing the auto boot code.
So follow through the instructions to get that set up.
As yet I’ve only had issues when trying to install TWiLight Menu on top of the flashcart manufacturer firmware, not with YSMenu, so hopefully you’ll have the same experience.
Playing Other Console Games
As we mentioned earlier TWiLight menu comes bundled with a number of homebrew emulators. It’s been cleverly set up to allow you to simply browse to and select a game, letting the app boot up the correct emulator. This does need you to put the correct game ROMs in the correct folders but that should be fairly easy.
So back in TWiLight Menu browse to one of the folders where you added some games. I’m going to try a GameBoy Advance title from the gba folder.
The DS does have built in hardware to run GBA games but that requires a GBA flashcart to work. With TWiLight Menu we’ll be using GBARunner2 which will give us full speed and full compatibility even though we are emulating the GBA.
So choose and game and select it and we should now be playing on a GameBoy Advance.
With each of these emulators there will be different in game options, usually activated by touching the bottom screen. If I do this with GBARunner2 you’ll see a menu appear that lets us reset the game of exit out to the rom browser. In this emulator you need to use the d-pad to navigate and A to select.
Quite often once you’ve finished with an emulator you’ll need to power off and reboot to get back to the main system. Not all force you to do this but a lot do.
To play other systems it’s very much the same process. Start up TWiLight menu, browse to the ROMs, find your game and select it to play. I’ve found that most of the 8bit emulators work fine; Atari, Nintendo Entertainment System, Sega Master, GameBoy, etc.
I did however have issues with both the SNES and Sega Megadrive or Genesis. I ended up having to manually install these outside of TWiLight Menu and I’ll show you that full process as part of the second flashcart setup.
But essentially you now have a fully hacked DS ready to play games or run other Homebrew software.
Installing and Running Your Own Emulators and Homebrew Apps
The emulators are simply Homebrew apps so as we learn how to install these we may as well try out a few other apps.
The basic process is to find the app you want to install and simply copy it’s files to your SD card.
So let’s fix the Sega Megadrive emulation first.
The DS Homebrew Application Library
The best place to find DS Homebrew apps is at
https://www.gamebrew.org/wiki/List_of_all_DS_homebrew
This is a fairly complete list of what’s available with links off to the download pages. We want an app called jEnesis.
Once we get to the application page we can download the installation files and extract the archive to our PC. Inside the extracted folder you’ll find a .nds file. For this app this is the only file we need to copy over to our SD card.
.nds files are sort of like program files on our DS. Any of our menu or launcher apps should be able to run them. So we need to work out how we’re going to organise the apps on our SD card. Some apps may force a folder structure so for those you’ll need to stick to that. But for this app we can install it wherever we want.
So I’m going to make an Emulators folder on the root of my SD card so I can keep all my emulators together. I can then copy the .nds file into this new folder and the app is installed. Easy.
Running the Megadrive Emulator
Back onto the DS we now have a couple of options. At the start I kept TWiLight Menu as a separate app rather than getting it to autoboot. When I start my DS I drop into YSMenu. As you can see in the folder list I now have my Emulators folder so I can go in there, select the jEnesis app and run it.
However, if you prefer using TWiLight Menu you can do exactly the same from there using it’s SD card browser. The choice is really up to you.
Either way we now have a working Sega Megadrive emulator. We just need to browse to our roms folder and then to the gen folder and we should get a list of games. Selecting one should boot up the emulator and we’re now playing on a Megadrive.
Other Homebrew Apps
That pretty much covers playing DS, GBA, and many other console games. But Homebrew does open you up to a host of other software. Back on the Homebrew website you can browse through to find new games, system apps and many more.
All Set Up
That should now give you a fully Homebrewed DS with access to the whole DS, GBA and other console games libraries. Don’t forget to have a look at the other Homebrew apps and just enjoy getting the most from your revived Nintendo DS.