Friday, July 12, 2013

SID-Boy Update Jul-12-13

In continuation of this post:

Since posting the above, I have been routing the traces and making final chip placements. Most of my connections are complete and all that is left would be to write a program and test it, scrap it, rewrite it and test, test, TEST!

Lets talk about my board thus far:

Image Hosted by

I will start from the top left and work my way across the board.

The current audio output is connected to the stereo SMT 1/8" jack. The SwinSID emulates in stereo, which is not exactly true with the SID itself and not the best for my purposes using the audio-IN pin on the gameboy, but we will manage.

Next is an array of resistors and capacitors which are part of the audio filtering.

Then is the 16-bit DAC which converts the Digital data to Analog. This damnable components is the only part which is obsolete...something that we all must try to avoid when designing something cost effective and/or to produce in high quantities. 

I did just read on the SwinSID website: "You can use 8bit PWM output to playback sound without DAC, just connect B0 AVR pin with 4,7K resistor to AUDIO OUT SID socket pin. You also need to add bias by connecting 4,7K from +5V to AUDIO OUT pin. "

Doing this should save me time and money, but I plan on trying both methods to see which sounds better.

Next in the picture is the ICSP connector and the Atmega8515. I am also looking into the Atmega88, but have not placed one to see if it a better fit. This is where I can program any updates to the SwinSID while the chip is "In-Circuit" meaning I never have to remove it.

The middle-center has a large empty area. This is good. Every component has plenty enough room and I have space for modifications or additions later on! If you recall, I planned on adding RAM later on and RAM is nearly useless if you cannot back it up, so I also hope to fit a battery backup. I can't wait!

In the near-center of the board is the clock. This little crystal will be running at 24MHz, much higher than the gameboy itself and faster than any data traversing the traces surrounding it. The plan is to isolate it from any near-by traces to prevent bleeding or interference. Maybe I am exaggerating, but you can never be too careful.

In the bottom left is the MBC1b mapper chip. This allows for the gameboy's z80 microProcessor to address more memory whether in the form of RAM, ROM, or I/O (SID). The MBC1b is the oldest mapper designed for the gameboy, only allowing for a maximum of 16Mbit ROM and 8Kbyte RAM, but it is more than I will need while I utilize no RAM. When I redesign the program and board, I will use an MBC5 mapper chip which vastly increases the addressable memory.

And lastly in the bottom right corner is the ROM itself. Because I use an EEPROM, I may erase and reprogram the cartridge as many times as I like. The unfortunate part of having such a densely populated board is that I cannot socket the ROM if I enclose the cartridge in a shell so when I come to the point where I am finished programming, I will solder the EEPROM in place.

My biggest concern is in my address or I/O map. This is for lack of a better word a map of the binary or hex addresses of each and every device; where they are accessible and to what extent they are accessible. An example of the ROM address may be from $0000 to $3FFF and the SID may be from $4000 to $7FFF. These of course are not the actual addresses, but this is how it would look. The reason I am so concerned is because of how much trouble it is for me to determine the addresses! It is very confusing IMO.

Thanks for reading


To clarify any confusion that may be looming over the project, this is not a replacement for the internal synth. This is not in place of the mysterious 5th sound channel and this will not be compatible with any official game without extensive patching. I am developing this board so that the gameboy can control 3 more channels on top of the four it already has, making it better for 8-bit musicians.

No comments:

Post a Comment