neobrain / braindump

Obsolete 3DS homebrew application to dump games and other titles. If you can, use GodMode9 instead.
GNU General Public License v3.0
75 stars 9 forks source link

braindump

braindump is a 3DS homebrew application that can dump 3DS titles, i.e. cartridge and eShop games, but also other installed content. Since it runs entirely in userland, it runs on any system version supported by the Homebrew Launcher.

The dumps created by braindump are lossy, since not all title information is accessible to userland applications. braindump compensates for that by generating fake metadata using clever heuristics. This is good enough to be able to run the dumped title in an emulator or to title contents (artwork, sounds, etc) for ROM hacking. If you require an (almost) lossless copy of your title, it's recommended to use uncart instead.

Build Instructions and Setup

You need to have set up a 3DS homebrewdevelopment environment including devkitARM and ctrulib. If you're having trouble building or running braindump, make sure your toolchain is up to date.

Once you've setup braindump, you can build it by calling

make

in the project root directory. If all went well, you then should have files braindump.3dsx, braindump.xml, and braindump.smdh. Put these onto your SD card into the directory 3ds/braindump/.

When running braindump from the Homebrew Launcher, you will be prompted to select a "target title". Once you select a title, it will be dumped without any further confirmation to the the SD card root directory using the filename <titleid>.cxi (where titleid is a 16-digit identifier of the dumped title).

Frequently Asked Questions

What stuff can I dump with this?

If the application you're trying to dump is not supported, it will likely outright crash when trying to launch braindump. In particular, if the title doesn't boot with HANS, it likely won't work with braindump either. There currently is no way for braindump to fail more gracefully, unfortunately.

How to use braindump for ROM hacking?

At this stage, I cannot give you full instructions on how to mod a game, but here are some quick hints:

I tried this but it keeps getting stuck at "Dumping code... XYZ KiB"

It's so slooooow.. why?!

Be patient. Dumping ExeFS may take up to 5 minutes per MiB, depending on how well the 3DS plays with your SD card (it's unfortunately not possible to show a progress bar for this, contrary to RomFS dumping). RomFS dumping should be going at roughly 1 MiB/s.

Can I use the dumps with Citra?

Yes! Note that this has not been tested extensively though. If you come across a title which runs fine in Citra when dumped using uncart but not when dumped using braindump, please report an issue.

Will you add FTP support to dump directly over network???

Maybe. Pull requests are welcome!

Will this break my 3DS?

It runs entirely in userspace, hence it's unlikely anything bad will happen. Of course, I cannot give you any guarantee for this though; I take no responsibility for anything that happens as a direct or indirect consequence of running this software on your 3DS.

Credits

Creating braindump wouldn't have been possible if it hadn't been for the help and support of the 3DS community. My greatest thanks go to the whole 0xFOODDOODs 32c3 table for an awesome time, and in particular to smea for his repeated advice and patience.