NDS_loader
Posted: Sun Jun 06, 2010 2:33 pm
I am trying to compile the NDS_loader sources. After the usual changes, the code compiles, but refuses to run.
I downloaded the default_arm7_src-0.5.12 package and added the nds_loader_arm7.c to it. I call that function in the main.c idle loop.
I ran make on it and transferred the 2 default files to the libnds folder.
I use the load.bin from the original package. As the original NDS_loader.nds program is running fine, I assume that bin is fine as well.
I can follow the execution of the arm 9 code till the last instructions were it reaches the swi_softreset().
At that moment, the arm7 should notice the condition to start the code at VRAM_C 0x0600:0000 and should execute a swi_softreset() as well.
If I run the program on no$gba, it says that it jumped to some empty memory in VRAM.
I haven't found a way to debug that far. It looks like something seriously changed in the latest libraries causing the loader not to run anymore. Mayby the source that came with the nds_loader.nds isn't consistent with the nds file itself.
Debugging is extremly fustrating. If I try to run the code on the latest desmume with the biosses enabled and the swi calls executed by the bios, I don't see the adress at 0x027F:FE34 changing to 0x0600:0000. If I disable the biosses, I see the adress changing, but things aren't running. The original nds isn't running either that way. If I try no$gba, I get the jump to empty vram warning. I get it with the original ndsloader as well.
Does anyone have a clue what I am missing here?
PS. I changed parts of the fat_browse code as well. It was acting very weired with the original code. (Altough it compiled fine.)
I downloaded the default_arm7_src-0.5.12 package and added the nds_loader_arm7.c to it. I call that function in the main.c idle loop.
I ran make on it and transferred the 2 default files to the libnds folder.
I use the load.bin from the original package. As the original NDS_loader.nds program is running fine, I assume that bin is fine as well.
I can follow the execution of the arm 9 code till the last instructions were it reaches the swi_softreset().
At that moment, the arm7 should notice the condition to start the code at VRAM_C 0x0600:0000 and should execute a swi_softreset() as well.
If I run the program on no$gba, it says that it jumped to some empty memory in VRAM.
I haven't found a way to debug that far. It looks like something seriously changed in the latest libraries causing the loader not to run anymore. Mayby the source that came with the nds_loader.nds isn't consistent with the nds file itself.
Debugging is extremly fustrating. If I try to run the code on the latest desmume with the biosses enabled and the swi calls executed by the bios, I don't see the adress at 0x027F:FE34 changing to 0x0600:0000. If I disable the biosses, I see the adress changing, but things aren't running. The original nds isn't running either that way. If I try no$gba, I get the jump to empty vram warning. I get it with the original ndsloader as well.
Does anyone have a clue what I am missing here?
PS. I changed parts of the fat_browse code as well. It was acting very weired with the original code. (Altough it compiled fine.)