But can't Rei keep the encryption currently used right now? So it can be "legal to some degree"?include the firmware.bin inside it, but then that just brings back the legal issues.
But can't Rei keep the encryption currently used right now? So it can be "legal to some degree"?include the firmware.bin inside it, but then that just brings back the legal issues.
Hey rei, mind sending me a pm or sharing where in the code should be modified in order to display Rei on the top screen in order to distinguish cfw and reinand? O:
As far as I can tell, the code to do so is here:
void patches(void){
//Change version string for(int i = 0; i < 0x600000; i+=4){}
if(strcomp((void*)0x27B00000 - i, (void*)L"Ver.", 4)){
if(strcomp((void*)0x27B00000 - i + 0x28, (void*)"T_ver_00", 4))}
strcopy((void*)0x27B00000 - i, (void*)L"\uE024Rei", 4);}
(I had to reformat it a bit to be easier to read here)
void patches(void){
//Change version string
for(int i = 0; i < 0x600000; i+=4){
if(strcomp((void*)0x27B00000 - i, (void*)L"Ver.", 4)){
if(strcomp((void*)0x27B00000 - i + 0x28, (void*)"T_ver_00", 4)) strcopy((void*)0x27B00000 - i, (void*)L"\uE024Rei", 4);
}
}
}
But can't Rei keep the encryption currently used right now? So it can be "legal to some degree"?
The thing I'm curious about (and hoping someone can answer) is that "firmware.bin" is just a copy of NATIVE_FIRM, correct? But NATIVE_FIRM is both in memory AND in emuNAND. Why can't we just grab the file from there?
(My guess for why we can't just grab it from emuNAND is that it's encrypted and the key for it is thrown away after boot so we can't reuse it? And the reason we can't use the one in RAM is that we messed it up to get into homebrew?)
The thing I'm curious about (and hoping someone can answer) is that "firmware.bin" is just a copy of NATIVE_FIRM, correct?
But NATIVE_FIRM is both in memory AND in emuNAND. Why can't we just grab the file from there?
And the reason we can't use the one in RAM is that we messed it up to get into homebrew?
With the new smart patching it could maybe be possible(haven't checked how smart it is), but we would have to check somehow which encryption key we need to use, the first one, the 9.5 one or the 9.6+ one. so we would need to encrypt at least a port of the firmware to check if the result is properly decrypted. The other way would be to save a part of the firm(like a signature) ans check it, but this way we would need to do this for every firm version.The thing I'm curious about (and hoping someone can answer) is that "firmware.bin" is just a copy of NATIVE_FIRM, correct? But NATIVE_FIRM is both in memory AND in emuNAND. Why can't we just grab the file from there?
Yeah, happens to me sometimes. I just assume it doesn't appear because it's booting too fast to even have time for the splash screen to appear. (That may just be a placebo effect though...)So my reinand works but the splash screen doesnt show up sometimes, is there a way to fix this so it will show up everytime?
I think this happens, when the screen initialisation doesn't work as expected, and is happening before the reinand payload(inside of brahma/CakeBrah).Yeah, happens to me sometimes. I just assume it doesn't appear because it's booting too fast to even have time for the splash screen to appear. (That may just be a placebo effect though...)
I would guess that we don't use the one from emuNAND for either A) compatibility reasons (can't guarantee a future NATIVE_FIRM will always work, even with the new smart patching; if Nintendo ends up coming out with a new OS that connects the 3DS to the NX for example, we're probably SOL for a while, until it's reverse-engineered) or B) encryption/decryption issues (wouldn't we need the console's unique key to decrypt that part of emuNAND?)
When you just use MenuHax, the NATIVE_FIRM would still be fine and intact, but when you use CakeHax/Brahma/etc., which is what we use to launch CFW, you're doing a hostile takeover of the ARM9 CPU, so whatever Nintendo code was there will be trashed or removed. Even if you could still use the current NATIVE_FIRM, that wouldn't necessarily be desirable, since the 4.x-9.2 kernel is pretty old, and newer games are needing newer ones. I would take a guess that there would also be race conditions or stability issues with trying to redirect already running code to read from SD instead of NAND. It's probably much, much safer to load a new kernel into memory, patch it to read from SD from the get-go and then just reboot into it.
But yeah, I feel as though I'm missing something... Well, I *know* I am! I'm unsure when the "emuNAND" on the SD card is actually loaded in relation to all of this happening =/
With the new smart patching it could maybe be possible(haven't checked how smart it is), but we would have to check somehow which encryption key we need to use, the first one, the 9.5 one or the 9.6+ one. so we would need to encrypt at least a port of the firmware to check if the result is properly decrypted. The other way would be to save a part of the firm(like a signature) ans check it, but this way we would need to do this for every firm version.
Yes, the n3DS is simply launches the arm9loader. The arm9laoder knows which key it would need to use, because its inside of the code, while a cfw implements its own arm9loader to encrypt the firm and apply the patches.I'm not sure what you mean "check ... which encryption key we need to use"? How would the 3DS natively do that, or is it because CFW wants to support multiple versions whereas the 3DS only needs to support the one its currently on?
Same here..That's interesting, my Gateway Blue card also doesn't work on 3.2 (by doesn't work, I mean it just boots to a black screen), despite having just had it work with 3.2b last night. And no, I haven't upgraded or downgraded any whitelists/TWL_FIRMs since then, or changed anything on the NANDs themselves.