#55727 - chishm - Sat Oct 01, 2005 1:28 am
I am not interested in piracy, just hear me out.
I was examining the NDS file specs in the NDSTech Wiki, and I noticed that the Metroid ARM9 binary is loaded into RAM starting from 0x0200:4000. I have noticed this in all the other commercial demos that I have examined too. This means they are purposely not overwritting main RAM from 0x0200:0000 to 0x0200:4000. Examining some of the loaders also shows they are purposely leaving this memory untouched.
Curiosity leads me to ask - what is so special about this section of RAM? Does it contain any useful data left by the BIOS, or is it used for any specific function?
Maybe we can use this behaviour to our advantage.
I was examining the NDS file specs in the NDSTech Wiki, and I noticed that the Metroid ARM9 binary is loaded into RAM starting from 0x0200:4000. I have noticed this in all the other commercial demos that I have examined too. This means they are purposely not overwritting main RAM from 0x0200:0000 to 0x0200:4000. Examining some of the loaders also shows they are purposely leaving this memory untouched.
Curiosity leads me to ask - what is so special about this section of RAM? Does it contain any useful data left by the BIOS, or is it used for any specific function?
Maybe we can use this behaviour to our advantage.