Homebrew braindump prerelease - dump game contents on any system version!

Status
Not open for further replies.

neobrain

-
OP
Member
Joined
Apr 25, 2014
Messages
306
Trophies
0
XP
706
Country
Hi,

In the past few days, I've been working on a new tool called braindump. I'd hereby like to announce a pre-release of the tool, meant to help people interested in ROM hacking to get set up faster.

WHAT'S BRAINDUMP?
braindump is a 3DS userland homebrew application that can dump decrypted contents (both ExeFS and RomFS) of any 3DS game. This includes cartridge games, but also content obtained from the eShop and even some system applications. Even better yet, braindump runs on any system version since 9.0, including the most recent one.

WHAT IS IT USEFUL FOR?
Currently, it's for the most only useful for dumping game assets: Graphics, sounds, 3D models, etc. In particular, this should be useful for anyone interested in game modding.

braindump's feature set has been covered by uncart and Decrypt9 before, however braindump provides a few major advantages:
  • it runs on any system version newer than 9.0, including the most recent one. uncard and Decrypt9 are limited to system versions 9.2 or below.
  • it dumps cartridge games, eShop content, and (some) system applications in a uniform way. All three of these had to be decrypted with different commands before.
  • it's more convenient, since it can be launched directly from the Homebrew Launcher and only requires one operation step from starting to the decrypted content. uncart and Decrypt9 had to be launched through a separate program, and after dumping a game you had to restart your console and run another chain of commands to actually decrypt things.

DOWNLOAD AND USAGE
Binaries are available on GitHub. Note that I'm releasing the tool earlier than planned to make the HANS application shipping with *hax 2.5 more accessible to the broader masses (see below). For now, I'll keep the source code private, but rest assured it will be published as soon as I get to implementing the full feature set that was planned.

Extract the archive into your SD card's 3ds folder. The full path to the 3dsx should be "sd:/3ds/braindump/braindump.3dsx", and next to that file there should be an xml file. braindump must be launched from 3ds_hb_menu (3dslink or CIAs won't work). Upon launching, you will be asked for a target title - this is the application that will be dumped. Note that the tool will start dumping immediately after selecting the target title, so better make sure you have enough free space on your SD card.

Sorry for the lack of further instructions -- I'd rather get this thing out ASAP to make it useful for the more knowledgeable people. I'm sure we can clear up any confusion in the next few days, though ;)

FREQUENTLY ASKED QUESTIONS
What stuff can I dump with this?
  • In general, most 3DS games should be dumpable, regardless of whether physical (cartridge) or digital (eShop).
  • Recent 3DS games which use the 9.6-crypto cannot be dumped and probably won't ever be dumpable via braindump.
  • Non-game content (videos, system applications, ...) should be dumpable if they have a "proper" title. Some applications (e.g. Home Menu) only provide dummy titles and hence cannot be dumped currently.
  • GBA or DS games cannot be dumped, at least for now.
  • Virtual Console games using software emulation are untested. Chances are they are dumpable.
If the application you're trying to dump is not supported, it will likely outright crash when trying to launch braindump. There currently is no way for braindump to fail more gracefully, unfortunately.

How to ROM hack?!
At this stage, I cannot give you full instructions on how to mod a game, but here are some quick hints:
  • Dump the game contents using braindump on your 3DS. This will place the files exefs.bin and romfs.bin on your SD card (in a subdirectory with a 16-digit number as its name)
  • On your PC, extract the two files using ctrtool. Use "ctrtool --intype=romfs --romfsdir=romfsdir romfs.bin" and "ctrtool --intype=exefs --exefsdir=exefsdir --decompresscode exefs.bin" to unpack the romfs and exefs, respectively
  • Game modders will be interested in the contents extracted to romfsdir. Modify whatever you like, and repack the contents using 3dstool
  • Put the new romfs binary on your SD card. Start HANS on your 3DS and point it to the modded game, and make it replace the romfs with your new image. Note that for HANS to detect the romfs binary, you'll need to remove the first 0x1000 bytes from the romfs binary.

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. RomFS dumping should be going at roughly 1 MiB/s. Make sure you download the "updated" prerelease from GitHub instead of using the old one.

Can I use the dumps with Citra?
Unfortunately, not yet.

Will you add FTP support to dump directly over network???
Maybe. Depends on how people end up using or abusing braindump. Don't disappoint me, guys ;)

Will this break my 3DS?
It runs entirely in userspace, hence it's unlikely anything bad will happen. No guarantees though; I take no responsibility for anything that happens as a direct or indirect consequence of running this software on your 3DS.

I tried dumping game XYZ, but it crashes without even writing anything to screen!
Unfortunately, it's technically impossible to dump games using the new 9.6-crypto with braindump.

FREQUENTLY ASKED DUMB QUESTIONS

Can this also dump ExHeaders/private headers?
Can this create a full 3ds image?
No. It's impossible to do this in user space. If it was possible it would already have been done.

Kernel exploit?!?11
No.

Update when??
When it's done. And yes, it will be.

FUTURE PLANS
There's a lot more to come in braindump than just dumping ExeFS and RomFS. Stay tuned, I guess ;)
 
Last edited by neobrain,
Status
Not open for further replies.
General chit-chat
Help Users
  • No one is chatting at the moment.
    Veho @ Veho: Corporation is the new corporation.