I've been using the Gecko OS 1.07b source code to try and load a block of data into memory before game start. I only need a relatively small amount (5KB or so), but that's more than I can set up to be copied from 0x800027E8. ("Ocarina-style") I know exactly what address I want to load to, but starting the game seems to clear most of the memory. (At some point before 0x800027E8 executes I reckon, since data I set up to be copied from there is not cleared.) The game itself does not load any data at all into the addresses I am targeting, so that shouldn't be any issue.
Clearly the desired behavior is possible, since Gecko 1.8+ is able to store .gct code files to large user-specified regions of memory just fine. Is there some way I can prevent the memory clearing of a given area that seems to happen on game boot? I've looked at a few libogc methods like SYS_ProtectRange, but I'm not sure what they do or what the parameters specify.
Any help would be greatly appreciated.