Hacking Official [Source Release] ReiNand CFW

  • Thread starter Thread starter Reisyukaku
  • Start date Start date
  • Views Views 992,027
  • Replies Replies 6,480
  • Likes Likes 115
If you update emunand to 9.7 or higher it will always check the whitelist's installed version and if it is below the latest it will prompt for an update and will overwrite it with the newest one. To avoid this just use 3DNUS to download the v0 but spoof it to something like v65535 then install the spoofed version. ONLY install the spoofed version to emunand since the spoofing breaks the signature.

Alright, I understand! thanks a lot once again. that helped a lot.
Like, I had no idea why it wasn't working ><
 
Alright, I understand! thanks a lot once again. that helped a lot.
Like, I had no idea why it wasn't working ><

Since it works on your O3DS, I am guessing it was either on 4.5 sysnand or you had installed the bluecardfix.cia to it's sysnand at some point.
 
Hey all, wondering if anyone could help me I am a long time console modder, now I have never been into the 3ds game. Always used flashcarts, I own a new 3ds and currently its on 10.1.0-27U. I currently own a sky3ds 2 cart but would prefer to have a cfw and some homebrew etc. What are my options?

If you could let me know what the possibilities are I will search into them if you don't want to go into detail, can I downgrade to fw 9.2 then install cfw? I don't own a gateway cart just sky3ds.
 
Hey! So I've stumbled into 3DS CFW Land and I've been reading through ReiNAND, but I'm a bit curious where you got some of the values for things? Like, FS.s has hard coded addresses for fopen9, fread9, etc... (Sorry, just trying to wrap my mind around everything in here =) I've been using 3dbrew as a reference? Good or is there somewhere else that would be better for CFW stuff?)
 
Yea it's safe. I wouldnt push broken code. I just have stuff hard coded till i fix the parsing logic.
I don't know if this could be of any use, but this way all the offsets are calculated reliably, at least in the 4 FIRMs I've tried (2 on o3ds and 2 on n3ds). The "emucode" in the emunand.S is still hardcoded, as I'm not sure which changes it goes through when armips compiles it...).
http://pastebin.com/fHjCQrys
 
  • Like
Reactions: peteruk
Hey all, wondering if anyone could help me I am a long time console modder, now I have never been into the 3ds game. Always used flashcarts, I own a new 3ds and currently its on 10.1.0-27U. I currently own a sky3ds 2 cart but would prefer to have a cfw and some homebrew etc. What are my options?

If you could let me know what the possibilities are I will search into them if you don't want to go into detail, can I downgrade to fw 9.2 then install cfw? I don't own a gateway cart just sky3ds.
First things first, have you gotten the update nag yet? If not, do this: https://gbatemp.net/threads/blocking-browserhax-update-message.401280/
 
I've been trying to compile the latest build for a couple hours now, to no avail. I'm completely new to compiling stuff from Github so please bear with my ignorance. I'm on a Windows machine, following Spong92's guide from page 2 of this thread. I've followed the directions to a T, and I'm getting this whenever I run 'make' in cmd from inside the ReiNand-master folder:

arm-none-eabi-gcc -Wall -Wextra -MMD -MP -marm -mlittle-endian -mcpu=arm946e-s -
march=armv5te -fno-builtin -fshort-wchar -std=c11 -Wno-main -c -o build/crypto
.o source/crypto.c
source/crypto.c: In function 'xor':
source/crypto.c:357:25: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
int i; for(i = 0; i < size; i++) *(dest+i) = *(data1+i) ^ *(data2+i);
^
source/crypto.c: In function 'arm9loader':
source/crypto.c:381:21: warning: passing argument 3 of 'xor' discards 'const' qu
alifier from pointer target type [-Wdiscarded-qualifiers]
xor(key2, key2, memeKey, 0x10);
^
source/crypto.c:356:6: note: expected 'u8 * {aka unsigned char *}' but argument
is of type 'const u8 * {aka const unsigned char *}'
void xor(u8 *dest, u8 *data1, u8 *data2, u32 size){
^
arm-none-eabi-gcc -Wall -Wextra -MMD -MP -marm -mlittle-endian -mcpu=arm946e-s -
march=armv5te -fno-builtin -fshort-wchar -std=c11 -Wno-main -c -o build/draw.o
source/draw.c
arm-none-eabi-gcc -Wall -Wextra -MMD -MP -marm -mlittle-endian -mcpu=arm946e-s -
march=armv5te -fno-builtin -fshort-wchar -std=c11 -Wno-main -c -o build/emunan
d.o source/emunand.c
source/emunand.c: In function 'getSDMMC':
source/emunand.c:27:10: warning: assignment makes integer from pointer without a
cast [-Wint-conversion]
*off = memsearch(pos, pattern, size, 4);
^
source/emunand.c: In function 'getEmuRW':
source/emunand.c:47:14: warning: assignment makes integer from pointer without a
cast [-Wint-conversion]
*readOff = memsearch(pos, pattern, size, 4);
^
source/emunand.c:48:15: warning: assignment makes integer from pointer without a
cast [-Wint-conversion]
*writeOff = memsearch(readOff, pattern, 0x1000, 4);
^
source/emunand.c: In function 'getMPU':
source/emunand.c:54:19: warning: unused parameter 'pos' [-Wunused-parameter]
void getMPU(void *pos, u32 *off){
^
arm-none-eabi-gcc -Wall -Wextra -MMD -MP -marm -mlittle-endian -mcpu=arm946e-s -
march=armv5te -fno-builtin -fshort-wchar -std=c11 -Wno-main -c -o build/fatfs/
diskio.o source/fatfs/diskio.c
arm-none-eabi-gcc -Wall -Wextra -MMD -MP -marm -mlittle-endian -mcpu=arm946e-s -
march=armv5te -fno-builtin -fshort-wchar -std=c11 -Wno-main -c -o build/fatfs/
ff.o source/fatfs/ff.c
arm-none-eabi-gcc -Wall -Wextra -MMD -MP -marm -mlittle-endian -mcpu=arm946e-s -
march=armv5te -fno-builtin -fshort-wchar -std=c11 -Wno-main -c -o build/fatfs/
option/syscall.o source/fatfs/option/syscall.c
arm-none-eabi-as -mlittle-endian -mcpu=arm946e-s -march=armv5te -o build/fatfs/
sdmmc/delay.o source/fatfs/sdmmc/delay.s
arm-none-eabi-gcc -Wall -Wextra -MMD -MP -marm -mlittle-endian -mcpu=arm946e-s -
march=armv5te -fno-builtin -fshort-wchar -std=c11 -Wno-main -c -o build/fatfs/
sdmmc/sdmmc.o source/fatfs/sdmmc/sdmmc.c
In file included from c:\program files (x86)\gnu tools arm embedded\5.2 2015q4\a
rm-none-eabi\include\dirent.h:6:0,
from source/fatfs/sdmmc/sdmmc.c:32:
c:\program files (x86)\gnu tools arm embedded\5.2 2015q4\arm-none-eabi\include\s
ys\dirent.h:10:2: error: #error "<dirent.h> not supported"
#error "<dirent.h> not supported"
^
make: *** [build/fatfs/sdmmc/sdmmc.o] Error 1

Anything I can do to fix this? Is there something I've missed? I have a strong feeling it's gonna be a "duh" moment if I did :toot:
 

3.3? I assume you mean you compiled the code directly yourself from the latest commit, or used what Supster131 posted?

How are you loading the cfw? MSET, .3dsx or loading the .dat file directly with a boot manager (like ctrbootmanager)?

nvm
 
Can someone tell me if there's any benefit to running Retroarch through Reinand vs. Just running the .3ds version of it on a Gateway card in Emunand? I just have a N3ds running Gateway and no CFW or anything.
Wasn't sure if it was worth the trouble to get Reinand on there just for running Retroarch for GBA games, if it works fine on GW natively. Thanks!
 
I don't know if this could be of any use, but this way all the offsets are calculated reliably, at least in the 4 FIRMs I've tried (2 on o3ds and 2 on n3ds). The "emucode" in the emunand.S is still hardcoded, as I'm not sure which changes it goes through when armips compiles it...).
http://pastebin.com/fHjCQrys
Yea, I was having pointer issues with some of the functions so i hard coded them to stub them. But now its fixed ^^

I pushed code and a release. Everything you need is already in the zip.
 
Yea, I was having pointer issues with some of the functions so i hard coded them to stub them. But now its fixed ^^

I pushed code and a release. Everything you need is already in the zip.
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:
 
Yea, I was having pointer issues with some of the functions so i hard coded them to stub them. But now its fixed ^^

I pushed code and a release. Everything you need is already in the zip.
I updated and now my nds-flashcard can not boot from emunand anymore, it was working with 3.2b
 
I updated and now my nds-flashcard can not boot from emunand anymore, it was working with 3.2b
Just tested my DSTWO on my n3DS (I'm using my build which has that code as well) and it works. Must be on your end.
Also, the FIRM that is produced with this autodetection is *binary-identical* to the one produced with the hardcoded offsets.
 
Last edited by Aurora Wright,
Just tested my DSTWO on my n3DS (I'm using my build which has that code as well) and it works. Must be on your end.
Well, thats strange, i just tried cakes and it's working there. I'll try to go back to 3.2b.
btw, why the firmware.bin file changed?

EDIT: in 3.2b, it's working again, so it must be an bug in the 3.2 release.
 
Last edited by tom2199,

Site & Scene News

Popular threads in this forum