#38330 - R4p70r - Sat Mar 26, 2005 10:45 am
My brother bought a DS a few days ago and I think it'd be cool if I could do some coding for it. I ordered a PassMe from natrium42 and while I'm waiting for it to ship I should also purchase a GBA flash cart.
Since I'm new to Gameboy development in general I'm not sure which cart is the best. Some carts have to be programmed from the GBA link port and I don't have a GBA so they won't do me any good. There are also some carts that seam to offer a boot menu. I'm not sure how this is done but if the proper data is not visible at boot time I'm afraid the PassMe may not work. Any suggestions?
There is something else that I'd like to know about flash carts... All the GBA specs I have seen so far tell me there is a 32 MegaBytes limit to the cart ROM size. That's odd because some flash carts are bigger than that. Were there some memory bank scheme used by late GBA games to work with larger ROM size? Or is there at least a way to do that on one of the big flash carts. That could be useful for a media player project on the DS and things like that.
64kb of cart RAM seam quite small as well. With a microphone on the DS it would've been cool to make a small audio notebook app or something. But that takes a lot of storage space.
I took a quick look at the code template from NDSTech Wiki and I just want to be sure I understand it correctly.
It's necessary to use the ARM7 as a relay to the ARM9 cause some I/O registers are only accessible from one of the CPU. According to the wiki there are some odd cases like the A, B, L and R keys that are accessible from both CPU while the X and Y keys that would only be visible to the ARM7. It's odd but I can believe it.
Now there is something I'm not sure I understand. The ARM7 fills a struct with some I/O data on VBlank and the ARM9 reads that same struct on VBlank as well. Do we know that the ARM7 interrupt will execute before the ARM9 interrupt or do we just don't care? I guess it would be easy to create a spinlock by using a volatile integer in ram and some loops. (But then I alway use library functions for concurrent programming ;-)
I guess the code will work whatever the order of execution is in that case I just want to know what happens here.
One last thing. Can any of the connectors on the DS be used to plug a simple logic sensor or maybe link the console to my PC. That could be useful at least until the WiFi interface is completely understood.
There is a plug near the headphone jack, I don't know what its for. Any idea?
Well I think that's all there is for now. I can't wait to to receive the PassMe.
Last edited by R4p70r on Sat Mar 26, 2005 10:50 am; edited 1 time in total
Since I'm new to Gameboy development in general I'm not sure which cart is the best. Some carts have to be programmed from the GBA link port and I don't have a GBA so they won't do me any good. There are also some carts that seam to offer a boot menu. I'm not sure how this is done but if the proper data is not visible at boot time I'm afraid the PassMe may not work. Any suggestions?
There is something else that I'd like to know about flash carts... All the GBA specs I have seen so far tell me there is a 32 MegaBytes limit to the cart ROM size. That's odd because some flash carts are bigger than that. Were there some memory bank scheme used by late GBA games to work with larger ROM size? Or is there at least a way to do that on one of the big flash carts. That could be useful for a media player project on the DS and things like that.
64kb of cart RAM seam quite small as well. With a microphone on the DS it would've been cool to make a small audio notebook app or something. But that takes a lot of storage space.
I took a quick look at the code template from NDSTech Wiki and I just want to be sure I understand it correctly.
It's necessary to use the ARM7 as a relay to the ARM9 cause some I/O registers are only accessible from one of the CPU. According to the wiki there are some odd cases like the A, B, L and R keys that are accessible from both CPU while the X and Y keys that would only be visible to the ARM7. It's odd but I can believe it.
Now there is something I'm not sure I understand. The ARM7 fills a struct with some I/O data on VBlank and the ARM9 reads that same struct on VBlank as well. Do we know that the ARM7 interrupt will execute before the ARM9 interrupt or do we just don't care? I guess it would be easy to create a spinlock by using a volatile integer in ram and some loops. (But then I alway use library functions for concurrent programming ;-)
I guess the code will work whatever the order of execution is in that case I just want to know what happens here.
One last thing. Can any of the connectors on the DS be used to plug a simple logic sensor or maybe link the console to my PC. That could be useful at least until the WiFi interface is completely understood.
There is a plug near the headphone jack, I don't know what its for. Any idea?
Well I think that's all there is for now. I can't wait to to receive the PassMe.
Last edited by R4p70r on Sat Mar 26, 2005 10:50 am; edited 1 time in total