file modes:
read 1
write 2
create 4
file position:
begin 0
current 1
end 2
media type:
nand 0
sdmc 1
ctrc 2
mountsdmc - const char*
file ops - const wchar_t*
NVRAM chains
initial patch
--- top --- (low address)
0010F2B9 - begin, THUMB
0001FE00 pop {r0, r2, pc}
00000100
001549E1 pop {r1, pc}
00279400
001334FC load_nvram(0x1FE00, 0x279400, 0x100);
001E8CD0 r4
0010538C pop {r3, pc}
F027949C mainmem virtual addr - r3
00143D60 ADD SP, SP, R3 - exit to loader chain
--- bottom --- (high address)
*SD must be mounted then fopen, fread, decrypt, jump*
loader patch
--- top --- (low address)
0010F2B9 - begin, THUMB
00272BAE pop {r0, r2, pc}
BADC0DED const char* archive_name = "YS:"
0018F19C nn::fs::MountSdmc("YS:");
0010B690 r3
00FAB000 r4
00200200 r5
0010F2B9 pop {r0, r2, pc}
00279000 this->
00000001 FILE_READ
001549E1 pop {r1, pc}
00276F38 const wchar_t* file_name = L"YS:/Launcher.dat"
001B82AC nn::fs::FileStream::Initialize(this->, L"YS:/Launcher.dat", FILE_READ);
0018D5DC r4
00278340 r5
00100200 r6
000048CC r7
00143D60 r8
0010F2B9 pop {r0, r2, pc}
00279000 this->
002B0000 void* in_buf(for fread)
001002F9 pop {pc}
001002F9 pop {pc}
001002F9 pop {pc}
001002F9 pop {pc}
001002F9 pop {pc}
001002F9 pop {pc}
001549E1 pop {r1, pc}
00000000
001549E1 pop {r1, pc}
00279020 s32* read_in
0010538C pop {r3, pc}
00009000 size_t read_size
001B3958 nn::fs::FileStream::TryRead(this->, s32* read_in, void* in_buf, size_t read_size);
002104E5 r4
0019DA00 r5
00017500 r6
0021DF86 r7
001AC100 r8
001DDA22 r9
0016FE91 POP {R0-R4,PC}
00100100 r0 - ptr to 16-byte Launcher.dat decryption key
00144CBC r1
002B0000 r2 in_buf(to decrypt from)
00009000 r3 read_size(to decrypt)
001549E1 r4
0022EFAC decryptAES
00105C88 r4
000E0000 r5
00250390 r6
001EFAC0 r7
0016FE91 r8
0010538C pop {r3, pc}
00036B24
00143D60 ADD SP, SP, R3 - exit to Launcher.dat
--- bottom --- (high address)
virtual s32 Write(const void* buffer, size_t size, bool flush)
virtual Result TryWrite(s32* pOut, const void* buffer, size_t size, bool flush)
this->
279020
00100000
c000
00 00 10 00
00 10 00 00
Comments