Hacking Official [Source Release] ReiNand CFW

  • Thread starter Thread starter Reisyukaku
  • Start date Start date
  • Views Views 987,848
  • Replies Replies 6,480
  • Likes Likes 115
hmmm... i something just don't work with make. I'm pretty much a scrub with compiling so I need your help.

I have a correctly setted up devkitpro environment, rxtools compiles in first try. arm none eabi programs wasn't find, so I just write the full path to it, I was even to stupid using my path variable, didn't work, now other problems I don't understand

Code:
...
/opt/devkitPro/devkitARM/bin/../lib/gcc/arm-none-eabi/5.3.0/../../../../arm-none-eabi/bin/ld: warning:
/opt/devkitPro/devkitARM/bin/../lib/gcc/arm-none-eabi/5.3.0/../../../../arm-none-eabi/lib/libc.a(lib_a-impure.o) uses 4-byte wchar_t yet the output is to use 2-byte wchar_t; use of wchar_t values across objects may fail
/opt/devkitPro/devkitARM/bin/arm-none-eabi-objcopy -S -O binary build/main.elf build/main.bin
make: *** No rule to make target 'data/firmware.bin', needed by 'out/rei/'.  Schluss.

I'm using Ubuntu 15.10 x64, and devkitpro v45. Can somebody help me?
Need to download the firmware.bin file and place it in /data/. Can't compile without it (even though all it does is copy it from /data/ to /out/rei/)
 
  • Like
Reactions: artur3004
Two things, can you list a few of the titles you had this happen with? I would like to test on my end as well to see if its a unique issue or if I can replicate it.

Also, can you try with official nintendo titles and let me know if you have the same problem?
It seems to be related to a couple apps. I tried with official titles and I had no issues. ftbrony.cia build (old) gives me this problem.
 
@Reisyukaku and other who understand this CFW stuff:

Why are images of NATIVE_FIRM necessary for a CFW (in this case 9.6?) ?
My understanding was always that once a emuNAND partition was present on the SD card, the CFW boots into this FW.
If not, it then applies the its patches to the sysNAND FW ?

So the question is, why is it there? And where is it used? Only when booting sysNAND?
 
@Reisyukaku and other who understand this CFW stuff:

Why are images of NATIVE_FIRM necessary for a CFW (in this case 9.6?) ?
My understanding was always that once a emuNAND partition was present on the SD card, the CFW boots into this FW.
If not, it then applies the its patches to the sysNAND FW ?

So the question is, why is it there? And where is it used? Only when booting sysNAND?

CFW actually loads native_firm from the SD card. In the case of every cfw except GW, this is a file called firmware.bin. GW includes the firmware file inside their launcher.dat, which is why it is so large compared to every other cfw and why we cannot directly link GW's files. Once the native_firm on the card is loaded, the cfw then redirects all calls to the nand chip towards the emunand partition instead.
 
@Aroth
need your help again
Code:
make[1]: *** No rule to make target 'launcher'.  Schluss.
Makefile:58: recipe for target 'out/ReiNand.dat' failed
make: *** [out/ReiNand.dat] Error 2

sorry bothering you with it
 
@Aroth
need your help again
Code:
make[1]: *** No rule to make target 'launcher'.  Schluss.
Makefile:58: recipe for target 'out/ReiNand.dat' failed
make: *** [out/ReiNand.dat] Error 2

sorry bothering you with it

Sorry that one is beyond me.

Only thing I can suggest is to delete the "out" folder and try again.
 
Sorry that one is beyond me.

Only thing I can suggest is to delete the "out" folder and try again.
tried to delete it and same error...
"Lastly, just run Make and everything should work!" - Unfortunately, can't confirm that...
 
CFW actually loads native_firm from the SD card. In the case of every cfw except GW, this is a file called firmware.bin. GW includes the firmware file inside their launcher.dat, which is why it is so large compared to every other cfw and why we cannot directly link GW's files. Once the native_firm on the card is loaded, the cfw then redirects all calls to the nand chip towards the emunand partition instead.

I still don't understand the logic behind this :creep:
Why do we need a native_firm image on the SD card in the first place?

We have a native_firm image on NAND (in case no emuNAND partition is present) and in case there is a emuNAND partition, you also have a native_firm image inside there.

So why load native_firm (9.6) from SD card and then emuNAND 10.3 if it's newer anyways? Why this version mixing ?
 
I look forward to trying ReiNAND on my New 3DSX XL, I'll get to it as soon as it gets to me in a few hours. It seems to have just about the right set of functions I'd ever need, considering I don't need to run out of region titles right now.
Yeah same here and I also played on the Chinese server but the ping was... not fun :P And that sounds like a great idea, I would love such a feature! :D Honestly if ReiNAND had that and would launch games by default with 804mhz and the L2 cache enabled nothing would ever need another CFW again :D
You know, now that you mention it auto-setting CPU mode would actually be very sweet. Even more if it remembered per-game settings. Although going by what I can infer of Rei's development style it might be a tad too out of the main scope to be added haha. What I miss from the PSP days are those XMB plugins, it was all so flexible. The closest we can get are things like NTR plugins I guess, probably because the PSP plusing system was used natively IIRC.
 
Last edited by lpchaim,
I still don't understand the logic behind this :creep:
Why do we need a native_firm image on the SD card in the first place?

We have a native_firm image on NAND (in case no emuNAND partition is present) and in case there is a emuNAND partition, you also have a native_firm image inside there.

So why load native_firm (9.6) from SD card and then emuNAND 10.3 if it's newer anyways? Why this version mixing ?

The very first thing loaded when the console boots is the native firm. Since we cannot yet gain kernel access before this happens, we have to use the kernel access we gain later to hijack and load a different firm from the sd card. This firm must be on the part of the sd card accessible by the device under normal operation. This is why we load a native_firm from the sd card. In fact, the native_firm title that is installed on the emunand partition is never actually loaded because by the time that partition is accessible, we have already rebooted in to the cfw and the kernel contained in the firmware.bin file has been loaded into the system ram.
 
Hello, i have a little problem.
I have boot reinand on my emunand.
i will install 2 two .cia (hbl and fbi) i becom this error:
Install failed!
hblauncher_loader.cia
Source: SOURCE_AM_START_CIA_INSTALL (0x13)
Module: MODULE_NN_OS (0x6)
Level: LEVEL_PERMENENT (0x1b)
Summary: SUMMARY_WRONG_ARGUMENT (0x8)
Description: DESCRITION_INVALID_COMMAND (0x2f)
Press Start to continue
 
I know, but I want it to compile on my own... with my own splash.bin

Splash.bin is not actually compiled. Like firmware.bin, it is located in /data/ and during the compile is copied to /out/rei/. If you want to use a different splash image, just create a .bin image using a 400x240 image. There are tools online you can use to convert from .png to .bin.

Once you have the .bin file, rename it splash.bin and place it in the /rei/ folder on your sd card.
 
The very first thing loaded when the console boots is the native firm. Since we cannot yet gain kernel access before this happens, we have to use the kernel access we gain later to hijack and load a different firm from the sd card. This firm must be on the part of the sd card accessible by the device under normal operation. This is why we load a native_firm from the sd card. In fact, the native_firm title that is installed on the emunand partition is never actually loaded because by the time that partition is accessible, we have already rebooted in to the cfw and the kernel contained in the firmware.bin file has been loaded into the system ram.

But why not patch the already loaded native firm in RAM during runtime? We gain kernel access via an exploit, so why reload a native firm from the SD card, when there is one running in RAM ??

And if you say, that native firm from emuNAND never gets loaded, does that mean we have mix up of 9.6 native firm from the SD card and 10.3 for everything else when using ReiNAND ?
Sounds a bit messy to me, or am I missing something here?
 
Hello, i have a little problem.
I have boot reinand on my emunand.
i will install 2 two .cia (hbl and fbi) i becom this error:
Install failed!
hblauncher_loader.cia
Source: SOURCE_AM_START_CIA_INSTALL (0x13)
Module: MODULE_NN_OS (0x6)
Level: LEVEL_PERMENENT (0x1b)
Summary: SUMMARY_WRONG_ARGUMENT (0x8)
Description: DESCRITION_INVALID_COMMAND (0x2f)
Press Start to continue
If you are using FBI.3dsx rhrough hbl, that don't work. FBI works on emunand <=9.2 in hbl, so you have to install and use it as cia.

@Aroth
Ok , I will do it this way. I qlready have my own splash.bin, thought it is going to be in the .dat.
anyway, my main reason to compile it was that i use still the version which always create these debug files.
 
Last edited by artur3004,
where i can install than the cia file on the emunand?
If you don't have a cia installer already installed to your emunand, you will need to inject one into the H&S app. There is a tutorial for that floating around somewhere, but I have no experience with it so I cannot help you, sorry.
 

Site & Scene News

Popular threads in this forum