#112196 - Juglak - Thu Dec 14, 2006 8:00 am
Not sure if this is really useful to anyone, but, I've been working on a way to get something super cheap to work in the GBA slot to do... well, anything at all.
I finally came up with somewhat of a solution.
Using a pretty inexpensive 3.3v microcontroller (Atmel ATMEGA165-16AI in this case, since I had some and some PCB's I made to easilly test with them lying around), I was able to make some working data communications.
Its pretty slick, I must say.
Basicly, the GBA slot has 24 address pins (16 of them mux'd with data pins). Since the top 8 bits of the address are always acurate (they dont need to be latched) it makes this a bit easier.
So, to retrieve data from the Atmel IC, in DS code you would read from the GBA slot like so:
That will make the high byte of the GBA slot address = AtmelAddr.
Note that the atmel addr can really only be 8-bit, but thats ok. That gives us 256 16-bit values we can read/write to the Atmel software. Thats potentially a full SNES controller button readout, just on one address.
Now the Atmel only runs at 8 MHz (8 MIPS), so, no where near fast enough to do true GBA ROM emulation (roughly 8x too slow, actually).
But, using this method, I've been able to interface NES/SNES control pads, as well as some other random crap with the GBA slot. Particularly useful? Not really. But would be neat to have a two player NES emu on a single DS. ;)
Anyway, heres a pic I took of the rig (note at this time I have 8 more address lines to connect).
[Images not permitted - Click here to view it]
Note: I gutted WWF Road to WrestleMania GBA to make this... poor game. :(
If anyone can think of anything useful for this setup, let me know. I'll happily post my AVR ASM for the project. Its not too complicated.
I'm thinking about fabricating a GBA cartridge with an SNES controller port on the bottom of it, to work with the SNES emu I started on.
(Note to self, you have far too many projects going on...)
Anyway... again, not sure how useful this is, but, its fun stuff all the same.
Cheers!
_________________
My goodies: 1xDS Lite - Supercard Lite, DSi, Supercard DSONEi
Last edited by Juglak on Thu Dec 14, 2006 8:09 am; edited 1 time in total
I finally came up with somewhat of a solution.
Using a pretty inexpensive 3.3v microcontroller (Atmel ATMEGA165-16AI in this case, since I had some and some PCB's I made to easilly test with them lying around), I was able to make some working data communications.
Its pretty slick, I must say.
Basicly, the GBA slot has 24 address pins (16 of them mux'd with data pins). Since the top 8 bits of the address are always acurate (they dont need to be latched) it makes this a bit easier.
So, to retrieve data from the Atmel IC, in DS code you would read from the GBA slot like so:
Code: |
GBA_READ_ADDR = ((AtmelAddr & 0xFF)<<17); u16 data = *(u16*)GBA_READ_ADDR; swiDelay(25); // The Atmel at 8 MIPS is not fast enough to register the address change just yet, so wait a few clocks, and the data will be acurate u16 data = *(u16*)GBA_READ_ADDR; // data is now accurate |
That will make the high byte of the GBA slot address = AtmelAddr.
Note that the atmel addr can really only be 8-bit, but thats ok. That gives us 256 16-bit values we can read/write to the Atmel software. Thats potentially a full SNES controller button readout, just on one address.
Now the Atmel only runs at 8 MHz (8 MIPS), so, no where near fast enough to do true GBA ROM emulation (roughly 8x too slow, actually).
But, using this method, I've been able to interface NES/SNES control pads, as well as some other random crap with the GBA slot. Particularly useful? Not really. But would be neat to have a two player NES emu on a single DS. ;)
Anyway, heres a pic I took of the rig (note at this time I have 8 more address lines to connect).
[Images not permitted - Click here to view it]
Note: I gutted WWF Road to WrestleMania GBA to make this... poor game. :(
If anyone can think of anything useful for this setup, let me know. I'll happily post my AVR ASM for the project. Its not too complicated.
I'm thinking about fabricating a GBA cartridge with an SNES controller port on the bottom of it, to work with the SNES emu I started on.
(Note to self, you have far too many projects going on...)
Anyway... again, not sure how useful this is, but, its fun stuff all the same.
Cheers!
_________________
My goodies: 1xDS Lite - Supercard Lite, DSi, Supercard DSONEi
Last edited by Juglak on Thu Dec 14, 2006 8:09 am; edited 1 time in total