How To Get Music From a 3DS Game
(Or just decrypt 3DS roms in general)
Disclaimer: This guide is mostly for me so I remember what I did to replicate it later, but I’m deciding to post it because I had a hell of a time trying to figure it out in the first place. With that in mind, please exercise caution if you try this out! Since it’s for me, the guide is written as if you have some base idea of what you’re doing. I can try to help with anything if you email me, but if you break something I’m not responsible. ^^” Read everything through first, then follow the guide!
This is a combination of multiple guides I used to get to this point, so I will link the originals in order in case you want to go to the source material. They have beginner-friendly step-by-step instructions.
TLDR: This is formatted so I can remember what I did. If you only need a refresher, this is for you! Otherwise, it may be better to use the links above for more guided instruction. (unless you're confident. in which case go ahead.¯\_(ツ)_/¯)
Google Docs version if this is hard to read.
What you Need
- A modded 3DS to dump the game file or .3ds/.cia file of your desired game
- vgmstream
- CTRTool
I did this on a laptop running Windows 11. You will need to use the command line with this method.
Guide
Part 1: Dumping a ROM
Getting the game files from your physical 3DS cart! You can get them from home menu software too, but I’m not including that because I haven’t gotten it to work. Check the 3DS hacks guide for more info on dumping installed software. If you already have your game file, move on to part 2.
- Launch GodMode9
- Go to [C:] GAMECART
- Select the .trim.3ds file option
- Copy to 0:/gm9/out
- Power off your system and put your SD card into your computer
- Navigate to /gm9/out on the SD and copy the .trim.3ds file to your desired location
Part 2: Decrypting the ROM
This decrypts the game file to show the contents. Doesn’t work for .nds files, but does work for .cia or .3ds. Note that CTRTool only works on x64-bit OS, you can find out if you have this in your system settings.
- Download CTRTool
- Unzip the download and move ctrtool.exe to the same folder path as your game file
- Rename the game file to the name of your game (or whatever you want, this just makes it easier to type into the command line)
- Right-click in file explorer and hit open in terminal
- Run this command
- .3ds: ctrtool.exe --romfsdir=romfs GAMENAMEHERE.3ds
- If you get a “Windows does not run from current location” error, add .\ in front of the command.
- .cia: ctrtool.exe --contents=contents game.cia then ctrtool.exe --romfsdir=romfs contents.0000.00000000
- For some reason, you can also do this by changing the file extension from the first command .3ds to .cia. ¯\_(ツ)_/¯
- Your game gets exported to a folder with all the files! All done!
Part 3: Converting .bcstm to .wav
Let's get that music you’ve been waiting for in a format the silly little computer likes to read!
- Download vgmstream
- Unzip the folder and put it somewhere safe
- Go to where your .bcstm file is
- If you just decrypted the rom, most games have their music in /sound/stream
- Select your desired file and drag it to hover over the vgmstream-cli.exe file
- When the popup option says open with vgmstream-cli.exe, let go and the program will run the conversion
- Go back to where you dragged your .bcstm file from and look for your new .wav file
- Play the .wav in your desired music player!
Want to read all the other stuff in the folders? Check out EveryFileExplorer or Ohana3DS Rebirth. You can email me about this too, but I can’t promise I’ll be much help! ^^”