DSHack

Archive Generated December 23rd, 2018
[TUTORIAL] Dumping content from games: For Dummies!
Author Posted on 2015/11/06
#884
Super Oh, hello.

So you may or may not have seen my previous tutorial on how to insert Mario Kart 7 hacks using HANS and wondered, "how the heck am I going to extract a RomFS/get it?!" well, that's precisely why I made this tutorial.

A RomFS has all the content of a game, but in an compressed (?) form, so we have to extract it if we want to hack a game.

As of now, there are MANY ways to extract a RomFS, so I'll pick one out of a hat, and for this tutorial, we'll be using HANSHelper.

So here's what you'll need:

* A game/title you want to dump.

* A way of accessing the Homebrew Launcher.

* HANSHelper.

* braindump prerelease.

Alright, let's start.

Dumping the game

So first, download braindump from the site and put it on the following location:

: > 3ds > braindump (don't create the folder if you're extracting it, well, the folder, I mean).

After that, extract the SD card and start the Homebrew Launcher. Start braindump, select the title you want to dump and braindump will automatically begin the process. Do note that it might be slow, depending on how big the title is. Please bear with this, at least for the moment.

After that's done, you should find the game on the root of the SD card on a folder called something like this:

0004000000xxxxx (the 'x'ses can be anything).

Now we go to the next part:

Extracting the RomFS

First, we put HANSHelper in the folder where the RomFS and ExFS are, then we boot it.
From there, HANSHelper guides us on the process, but eh, I'm still gonna list it here, just because.

We want to extract the RomFS, so we press 1.

Then it asks us what do we want to extract, so press r for the RomFS, as I doubt we're gonna need the ExFS (for now...).

Then it asks us to enter the path of where the RomFS is located, but since HANSHelper is already there, we're gonna press enter.

Now it asks us to enter the path of where do we want to save the extracted RomFS, so just enter where do you want it to go (I actually haven't tested this function yet, so I'd like it if someone told me if the way they did it worked...).

After that, it returns to what it was initially, meaning that the RomFS was already extracted.

Hooray! You just extracted a RomFS! Now it should appear in a folder explicitly called "romfs" in wherever you saved it.
Now you're free to go wild with it.

Again, ask me any questions you have as I'll be glad to help you (I barely get any replies...), and also tell me if I got anything wrong, or better ways to do it, or so.

End thread.
Author Posted on 2015/11/07
#895
MK7tester Well, the tutorial starts out a bit too fast for me. Like, how am I even supposed to be able to run Homebrew on a 3DS? I know there's probably dozens of tutorials out there, but i'd like to know of the most efficient, up to date method. Also, does my 3DS need to be a certain firmware? In that case, i'm probably screwed. :(
Author Posted on 2015/11/07
#896
Super
Well, the tutorial starts out a bit too fast for me. Like, how am I even supposed to be able to run Homebrew on a 3DS? I know there's probably dozens of tutorials out there, but i'd like to know of the most efficient, up to date method. Also, does my 3DS need to be a certain firmware? In that case, i'm probably screwed. :(


I had thought of also making a tutorial on that, but considering that it should be the simplest of things, and more importantly, that there are little to no free entrypoints, well, I'd rather not.

As of now, if you want to install the Homebrew Launcher, you need to have either of the following things (that is, you don't need to have ALL of these things):

All firmware versions

* Cubic Ninja.

* The Legend of Zelda: Ocarina of Time 3D and a Save Dongle.

* Super Smash Bros. for Nintendo 3DS, a New Nintendo 3DS and Linux.

9.X-10.1?

* Just your web browser and an extreme avoidance to wireless communications (so the web browser doesn't get updated).

If you don't have/can't do any of these things, you can't, sadly, launch homebrew for the moment.
Author Posted on 2015/12/05
#1090
MK7tester

No course folder???
Author Posted on 2015/12/05
#1091
MKGirlism MK7tester, that doesn't look like the MK7 ROMFS at all, are you sure it's not a different game?
Author Posted on 2015/12/05
#1092
MK7tester
MK7tester, that doesn't look like the MK7 ROMFS at all, are you sure it's not a different game?


I'm positive it's MK7, after all, it IS the game that's in the game slot when a run braindump.

Even tried it a second time, I got more files, but still no course...

Author Posted on 2015/12/05
#1093
Yawshi

I'm positive it's MK7, after all, it IS the game that's in the game slot when a run braindump.

That definitely isn't Mario Kart 7's romfs. You most likely selected the wrong target when you launched braindump. Mario Kart 7's romfs should look like this:

When you launch braindump, make sure that Mario Kart 7 is selected here:
Author Posted on 2015/12/05
#1094
MK7tester Turns out my 3DS wasn't reading the MK7 game card correctly in braindump. Thanks for the help Yawshi!
Author Posted on 2016/08/19
#2106
User 319 Umm... can someone help me? >.< Well, I dumped the game with braindumper, but I didn't got any folder, just a .cxi file. I did something wrong? ; ;
Author Posted on 2016/08/19
#2107
MKGirlism See my instructions here.
Author Posted on 2016/09/09
#2217
FFIVGUY Whenever I try to extract to romfs it keeps saying the RomFs is corrupted and IVFC Segment is corrupted
Author Posted on 2016/09/09
#2218
PabloMK7 You may have a corrupted dump. Make sure you are using lastest braindump release and homebrew launcher and try again.
Author Posted on 2016/09/09
#2219
FFIVGUY I am using the latest braindump release and homebrew launcher, but I don't know why it keeps corrupting.
Author Posted on 2016/09/09
#2220
PabloMK7 Did you try dumping again as I said?
Author Posted on 2016/09/09
#2221
FFIVGUY Yes I did and there was no difference
Author Posted on 2016/09/09
#2222
PabloMK7 get HxD, drag the romfs there and send an screenshot.
Author Posted on 2016/09/09
#2224
MKGirlism Just wondering, what game are you trying to dump?
As far as I know, Star Fox 64 3D always corrupts, while Mario Kart 7 doesn't.
Author Posted on 2016/09/09
#2225
FFIVGUY I am trying to dump Mario Kart 7
Author Posted on 2016/09/10
#2227
MKGirlism Then maybe try a version older?
New doesn't always mean they fixed what's broken, it's sometimes the other way around.

Try this one, this is the Braindump I'm using myself:
http://www.mkgirlism.jp/files/downs/braindump.tar.gz
Author Posted on 2016/09/11
#2234
FFIVGUY I tried the older version but the romfs and the ivfc segment still got corrupted
Author Posted on 2016/09/11
#2235
FFIVGUY I am using hans helper to extract the romfs
Author Posted on 2016/09/11
#2238
MKGirlism Maybe that's what is causing the problem.
Try doing whatever I said here instead.
Author Posted on 2016/09/12
#2240
FFIVGUY I will try that and see if it works. There's no CIA file so what should I do about the part where it says to extract the CIA file?
Author Posted on 2016/09/12
#2241
MKGirlism Oh yeah, I forgot...
Sorry! ლ(≧ω≦)ლ
Author Posted on 2016/09/12
#2242
FFIVGUY So, then how should I do this?
Author Posted on 2016/09/13
#2256
FFIVGUY How am I supposed to extract the romfs now
Author Posted on 2016/09/25
#2308
FFIVGUY I think it might be something with the cxi that I dumped from braindump. I tried opening it in citra emulator and I was only getting the screen that said Mario Kart 7 that has the wheel spinning in the lower right hand side of the upper screen. I looked at the cmd line window I did not see any red text that usually displays when the rom is loading. Can someone help me figure out how to fix this?
Author Posted on 2016/09/26
#2310
MKGirlism Okay, there's literally nothing in the Command Prompt, or do you see some text, but just no red ones?
If you see something, it helps to know what it says (copy/paste or a screenshot should do).
Author Posted on 2016/09/26
#2311
FFIVGUY Common.Filesystem common\\file_util.cpp:FileUtil::CreateFullPath:207: path exists D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/config/qt-config.ini
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./citra-qt.exe as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./citra-qt.pdb as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./citra.exe as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./citra.pdb as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./msvcp140.dll as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:127: Failed to load file ./platforms
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./Qt5Core.dll as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./Qt5Gui.dll as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./Qt5OpenGL.dll as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./Qt5Widgets.dll as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:127: Failed to load file ./Roms
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./SDL2.dll as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./tests.exe as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./tests.pdb as unknown...
Loader core\\loader\\loader.cpp:Loader::GetLoader:127: Failed to load file ./user
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file ./vcruntime140.dll as unknown...
Frontend citra_qt\\main.cpp:GMainWindow::BootGame:317: Citra starting...
Service.FS core\\file_sys\\archive_sdmc.cpp:FileSys::ArchiveFactory_SDMC::ArchiveFactory_SDMC:21: Directory D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/sdmc/ set as SDMC.
Common.Filesystem common\\file_util.cpp:FileUtil::CreateFullPath:207: path exists D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/sdmc/
Service.FS core\\file_sys\\archive_savedata.cpp:FileSys::ArchiveFactory_SaveData::ArchiveFactory_SaveData:42: Directory D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/sdmc/Nintendo 3DS/00000000000000000000000000000000/00000000000000000000000000000000/title/ set as SaveData.
Service.FS core\\file_sys\\archive_extsavedata.cpp:FileSys::ArchiveFactory_ExtSaveData::ArchiveFactory_ExtSaveData:62: Directory D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/sdmc/Nintendo 3DS/00000000000000000000000000000000/00000000000000000000000000000000/extdata/ set as base for ExtSaveData.
Common.Filesystem common\\file_util.cpp:FileUtil::CreateFullPath:207: path exists D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/sdmc/Nintendo 3DS/00000000000000000000000000000000/00000000000000000000000000000000/extdata/
Service.FS core\\file_sys\\archive_extsavedata.cpp:FileSys::ArchiveFactory_ExtSaveData::ArchiveFactory_ExtSaveData:62: Directory D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/nand/data/00000000000000000000000000000000/extdata/ set as base for ExtSaveData.
Common.Filesystem common\\file_util.cpp:FileUtil::CreateFullPath:207: path exists D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/nand/data/00000000000000000000000000000000/extdata/
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::Init:487: Unable to load shared font: D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/sysdata/shared_font.bin
Render.OpenGL video_core\ enderer_opengl\ enderer_opengl.cpp:RendererOpenGL::Init:481: GL_VERSION: 3.3.0
Render.OpenGL video_core\ enderer_opengl\ enderer_opengl.cpp:RendererOpenGL::Init:482: GL_VENDOR: NVIDIA Corporation
Render.OpenGL video_core\ enderer_opengl\ enderer_opengl.cpp:RendererOpenGL::Init:483: GL_RENDERER: GeForce 8400 GS/PCIe/SSE2
Loader core\\loader\\loader.cpp:Loader::GetLoader:143: Loading file K:/0004000000030800.cxi as NCCH...
Loader core\\loader\ cch.cpp:Loader::AppLoader_NCCH::LoadExeFS:266: Name:
Loader core\\loader\ cch.cpp:Loader::AppLoader_NCCH::LoadExeFS:267: Program ID: 0004000000030800
HW.Memory core\\memory.cpp:Memory::Read:181: unmapped Read32 @ 0x10000000
HW.Memory core\\memory.cpp:Memory::GetPointer:259: unknown GetPointer @ 0xfffffffc
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::GetLockHandle:115: (STUBBED) called handle=0x00038008 applet_attributes=0x00000000
Service.NDM core\\hle\\service\ dm\ dm.cpp:Service::NDM::OverrideDefaultDaemons:198: (STUBBED) default_daemon_bit_mask=0x0000000F
Service.NDM core\\hle\\service\ dm\ dm.cpp:Service::NDM::SuspendDaemons:84: (STUBBED) daemon_bit_mask=0x00000009
Service.FS core\\hle\\service\\fs\\fs_user.cpp:Service::FS::InitializeWithSdkVersion:694: (STUBBED) called unk1=0x040002C8, unk2=0x00000020, unk3=0x00068012
HW.Memory core\\memory.cpp:Memory::VirtualToPhysicalAddress:423: Unknown virtual address @ 0x0069995C
Common.Filesystem common\\file_util.cpp:FileUtil::IsDirectory:121: stat failed on D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/nand/data/00000000000000000000000000000000/extdata/00000000/F000000B/user//ublg.lst: The system cannot find the file specified.

Service.FS core\\file_sys\\disk_archive.cpp:FileSys::DiskFile::Open:118: Non-existing file D:\\Users\\Chris\\Documents\\Emulators\\Citra/user/nand/data/00000000000000000000000000000000/extdata/00000000/F000000B/user//ublg.lst can't be open without mode create.
Service.FS core\\hle\\service\\fs\\fs_user.cpp:Service::FS::OpenFile:75: failed to get a handle for file
Service core\\hle\\service\\service.cpp:Service::Interface::SyncRequest:70: unknown / unimplemented function 'Initialize': port=nim:aoc
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::Enable:123: (STUBBED) called attributes=0x00000000
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::NotifyToWait:98: (STUBBED) app_id=768
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::GlanceParameter:240: called app_id=0x00000300, buffer_size=0x00001000
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::ReceiveParameter:217: called app_id=0x00000300, buffer_size=0x00001000
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::AppletUtility:306: (STUBBED) called command=0x00000007, buffer1_size=0x00000004, buffer2_size=0x00000001, buffer1_addr=0x0FFFFF50, buffer2_addr=0x0FFFFF1C
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::AppletUtility:306: (STUBBED) called command=0x00000004, buffer1_size=0x00000001, buffer2_size=0x00000001, buffer1_addr=0x0FFFFF18, buffer2_addr=0x0FFFFF1C
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::AppletUtility:306: (STUBBED) called command=0x00000004, buffer1_size=0x00000001, buffer2_size=0x00000001, buffer1_addr=0x0FFFFFB0, buffer2_addr=0x0FFFFFB4
Service core\\hle\\service\\service.cpp:Service::Interface::SyncRequest:70: unknown / unimplemented function 'SetClientSdkVersion': port=frd:u, cmd_buff=0x40002C8, cmd_buff=0x20, cmd_buff=0x8801E
Service.FRD core\\hle\\service\\frd\\frd.cpp:Service::FRD::GetMyPresence:30: (STUBBED) called
Service.APT core\\hle\\service\\apt\\apt.cpp:Service::APT::SetAppCpuTimeLimit:320: (STUBBED) called cpu_percent=30, value=1
HW.Memory core\\memory.cpp:Memory::VirtualToPhysicalAddress:423: Unknown virtual address @ 0x0FFFFEB0
HW.Memory core\\memory.cpp:Memory::VirtualToPhysicalAddress:423: Unknown virtual address @ 0x0FFFFDE8
HW.Memory core\\memory.cpp:Memory::VirtualToPhysicalAddress:423: Unknown virtual address @ 0x0FFFFE10
Service.GSP core\\hle\\service\\gsp_gpu.cpp:GSP_GPU::AcquireRight:645: called
Render.OpenGL video_core\ enderer_opengl\ enderer_opengl.cpp:DebugHandler:469: API PERFORMANCE 131218: Program/shader state performance warning: Fragment Shader is going to be recompiled because the shader key based on GL state mismatches.
Kernel.SVC core\\hle\\svc.cpp:SVC::CreateThread:501: Newly created thread is allowed to be run in the SysCore, unimplemented.
Service core\\hle\\service\\service.cpp:Service::Interface::SyncRequest:70: unknown / unimplemented function 'Subscribe': port=srv:, cmd_buff=0x209
HW.Memory core\\memory.cpp:Memory::VirtualToPhysicalAddress:423: Unknown virtual address @ 0x00656000
Service.HID core\\hle\\service\\hid\\hid.cpp:Service::HID::GetGyroscopeLowCalibrateParam:262: (STUBBED) called
Kernel.SVC core\\hle\\svc.cpp:SVC::CreateThread:501: Newly created thread is allowed to be run in the SysCore, unimplemented.
Kernel.SVC core\\hle\\svc.cpp:SVC::CreateThread:501: Newly created thread is allowed to be run in the SysCore, unimplemented.
Service.CFG core\\hle\\service\\cfg\\cfg.cpp:Service::CFG::GenHashConsoleUnique:149: (STUBBED) called app_id_salt=0x308
Service.FS core\\hle\\service\\fs\\fs_user.cpp:Service::FS::OpenFileDirectly:119: failed to get a handle for archive archive_id=0x2345678A archive_path=
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:108: Fatal error!
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:116: PID: 0x00000000_0x00000000
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:117: REV: 47069
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:118: AID: 0x00000000_0x00000000
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:119: ADR: 0x00133C64
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:121: RSL: 0xFFFFFFFF
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:122: Level: 31
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:123: Summary: 63
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:124: Module: 255
Service.ERR core\\hle\\service\\err_f.cpp:ERR_F::ThrowFatalError:125: Desc: 1023


This is what was referring to that occurs when a cxi is opened in Citra. I had been using 3ds Fimmware version 11. It was be that it was the wrong version. Would it work if I downgraded to (9X-10.1? Would that fix the romfs from getting corrupt?
Author Posted on 2016/09/26
#2312
FFIVGUY Just ignore the Smileys I'm not sure where they are there. The Smileys were not in the cmd line window.
Author Posted on 2016/09/26
#2313
MKGirlism Yes, that looks like the CXI File is incorrect, indeed.
I don't think the Firmware Version has anything to do with the quality of the dump, though.
Author Posted on 2016/09/26
#2314
FFIVGUY I'm just wondering because on the first page SGC states that for versions 9X-10.1 you need only the browser for the homebrew launcher and I didn't see anything about 11.
Author Posted on 2016/09/26
#2315
MKGirlism Whatever listed here in green will work fine on 11.1.
Author Posted on 2016/12/30
#2690
User 391 hey can you link braindump prerelease directly. because due to it being fully released. you do not receive a romfs. and the previous version requires (aka the prerelease version) requires compiling.

edit:IGNORE i got the old version
Author Posted on 2018/04/19
#3812
2DSUser Does anyone know if this is EVER going to work on 2DS? Lol. You probably have to have CFW if you want to make the 2DS work, sadly.
Author Posted on 2018/04/19
#3813
テクニカル諏訪子 1.5 years later.(白目)