I've downloaded the recommended set of compression tools, but none of them is able to decompress arm9.bin I had unpacked with DSLazy - am I doing something wrong? Using hex editor I can see clearly that I have compressed arm9.bin.
noticed that in that memory area (around 0x2008724 - that's the exact address of that faulty jump) is something completely else in comparison to untouched rom... so changing 1 instruction which now is even never executed in arm9 made entire area of memory different? How can it be? I made nearly 200 other changes in arm9 and rom still works, but for some changes like this one everything breaks in such interesting way - I have no idea why, can it be some checksum which prevents loading rest of arm9.bin file properly?
UPDATE: I've noticed that those different values are in arm9.bin, but in COMPRESSED one. So changing that one instruction prevents arm9.bin to be uncompressed properly - why?
typedef struct {
u32 autoload_list;
u32 autoload_list_end;
u32 autoload_start;
u32 sbss_start;
u32 sbss_end;
u32 compressed_static_end;
union {
u32 sdk_version_id;
struct {
u16 relstep;
//relclass = relstep/10000; relnumber = relstep%10000; relnumber_major = relnumber/100; relnumber_minor = relnumber%100;
u8 minor;
u8 major;
};
};
u32 sdk_nitrocode_be; // 0xDEC00621 or 21 06 C0 DE
u32 sdk_nitrocode_le; // 0x2106C0DE or DE C0 06 21
} _start_ModuleParams;