Page 1 of 1

GBA Zero Resource and Build Thread

Posted: Tue Apr 17, 2018 4:25 pm
by hotterpop
I've been researching for a GBA build for about a couple of weeks. There is a lot of content spread out over a lot of sites, so I figured I'd consolidate everything useful to the build here to make it easier to find. I'll keep this info updated, and subsequent posts in this thread will be a build log once I get my hardware going.

Shells
There are lots of great shells available for $10-15 USD on Ebay, and a few on Amazon. Seller TheGodOfGaming seems to have the best selection, and you can get a glass display cover with it as well.
https://www.ebay.com/itm/GBA-Nintendo-G ... 2060123859

ABXY Buttons
Not all buttons are the same size. Specifically, the SNES controller buttons are about 10.4 mm while the GBA buttons are about 8.8 mm. Gameboy Pocket buttons should fit as well.
https://retropie.org.uk/forum/topic/484 ... ild-wip/55

Needed info: Gameboy 3DS button size

XY Button Placement
One of the particular challenges to the GBA is managing the addition of the X and Y buttons. The right shoulder button travel appears to interfere with the natural placement of X and Y. Additionally, most people working on this project are using original GBA mobos as the basis for their buttons, and don't want to try to fit a full button pad on the board / remove everything that goes behind it.

If you look at the Freeplay Zero, they've tried to deal with this problem by placing clicky buttons on their AIO board with small button caps.
https://www.freeplaytech.com/product/fr ... o-diy-kit/

The approach taken by the aforementioned Retropie builder was to remove the button housing entirely and replace it with a button housing from a broken DS Lite.
https://retropie.org.uk/forum/topic/484 ... ld-wip/224

I don't really care for either of these solutions. I don't have the hardware with me, but looking at the work of other builders, it seems like the core problem here is the space required by the spring switches under the shoulder buttons. I'm hoping I can fit two full size pads for the X and Y buttons above the existing A and B buttons by using the switches from the iBuffalo SNES controller rather than the spring switches in the style of the original GBA. Here is a video demonstrating the button travel on the iBuffalo controller:
https://photos.app.goo.gl/9wbguARThhpLi6OJ3

Compare that to the switch size on the original GBA:
https://youtu.be/_a4M5seO0_c?t=350

I'm hoping that by cutting down the PCB supporting the shoulder buttons, and by cutting down the post that would normally be putting unnecessary distance between the shoulder button and the PCB, I can move the shoulder buttons up and still have space to fit a second set of buttons above it. The PCB only needs to be as big as the pad underneath it, so I am hoping it will fit well.

I'd like to use the buttons from my iBuffalo controller as well, as they are the standard famicom colors, but I think I'll probably end up sourcing some smaller buttons. I'm concerned I won't be able to give the full size ones adequate space to prevent accidental button presses.

PCB / Backing
I originally hoped to use the PCB from my iBuffalo controller, but it looks like the spacing is just too wide for that to work correctly. I may wind up teaching myself Eagle to print a very small PCB to custom match the GBA's 4-button needs, and potentially one for the d-pad as well. I've never designed a PCB before, but based on the layout of my iBuffalo, it shouldn't be too hard- you have two lines that you are connecting when you press the button down. Not bad at all.
https://photos.app.goo.gl/k01vxVwzPrXtqLWu2

Rather than using a teensy or similar, I'm hoping I can just wire everything up directly to the iBuffalo board and use the USB controller that is built into it for managing buttons. Of course there are lots of things that could prevent this, so we'll see what happens down the line.

Display
At this point it looks like a composite display from this list would be the best choice. TFT displays are great for some, but I very much want automatic HDMI switchover and resolution change.
https://www.sudomod.com/wiki/index.php?title=GBZ_Screen

Brett82 was able to fit a composite display in his build, though I don't know how much modification was required.
https://www.sudomod.com/community-spotl ... ero-build/

Obviously some case modification is required to fit a 3.5 inch display. Unfortunately it seems like composite displays don't come much smaller than that. Ultimately I think I'll go for combination of case cutting and overscan, as was done over on retropie:
https://retropie.org.uk/forum/topic/484 ... ild-wip/49

Power Management
Batteries, charging, and safe shutdown are handled pretty much the same way as in any other portable pi project.
USB and HDMI
I would very much like to have a full size USB-A port, a full size HDMI port, and a micro USB port exposed on the top of the GBA. This way you could plug the GBA into a TV (without any hassle with adapters), then plug an additional SNES controller to the GBA, and you would be set for two player gaming. Getting the USB host should be pretty easy, but the HDMI adapter will likely restrict where the pi can be plased in the housing pretty significantly. I'll keep updating this section after I have more details.

Sound
There is a lot of talk about how to manage sound on these devices. I've ordered a usb sound card, and am hoping I can use it at the very least with a headphone jack. I haven't done enough research to sort out how to properly manage the amp and speaker needs for one of these devices, but I do know it should be powered via the USB bus, not the pi:
https://retropie.org.uk/forum/topic/484 ... ld-wip/178

This is the sound card I ordered:
https://www.ebay.com/itm/282908328229
I'm hoping I can use the volume buttons on the soundcard somehow rather than a typical wheel. I'd rather not mess around with a potentiometer or any wiring that would be needed to support that.

The only thing I know for sure is that I definitely want a headphone jack. If I can add a speaker and amp I will.

Thoughts
I'll keep this updated as I learn more and make changes to my design. Please let me know if you have any suggestions or spot any oversights in my build plan. Thanks!

Re: GBA Zero Resource and Build Thread

Posted: Tue Apr 17, 2018 4:25 pm
by hotterpop
[Reserved]

Re: GBA Zero Resource and Build Thread

Posted: Tue Apr 17, 2018 6:25 pm
by Helder
For the L/R that is just a membrane with carbon contact on the bottom and it acts as the springy part, a small pcb can be made for this easily but what membrane will you use? do they have ones suitable for this and easy to obtain?As you've seen the iBuffalo has some prongs to hold the membrane in placeand on the GBA you don't have this so that is something to look at since the membrane can fall out of place.

Re: GBA Zero Resource and Build Thread

Posted: Wed Apr 18, 2018 10:46 am
by hotterpop
Helder wrote:
Tue Apr 17, 2018 6:25 pm
As you've seen the iBuffalo has some prongs to hold the membrane in placeand on the GBA you don't have this so that is something to look at since the membrane can fall out of place.
I'm hoping I can use the same square PCB pieces from the iBuffalo. Getting it to stay in place may require gluing some plastic pieces onto the shell to form a slot like what the iBuffalo controller has, but I haven't sorted that yet.

Overall I'd say the biggest weakness in my design is an understanding of how things are mounted in place (aside from "lots of hot glue"). I have a fair amount of experience with larger materials, but not anything on this scale, so that'll be the steepest learning curve. Not something I can do much about until I have the material in hand, though.

Thanks for your feedback!

Re: GBA Zero Resource and Build Thread

Posted: Wed Apr 18, 2018 10:57 am
by Helder
I have a blank shell and a real GBA to compare and look at, I can make a small pcb to fit there but you might need to source a smaller membrane for this.

Re: GBA Zero Resource and Build Thread

Posted: Thu Apr 19, 2018 1:03 pm
by hotterpop
Helder wrote:
Wed Apr 18, 2018 10:57 am
you might need to source a smaller membrane for this.
I've been looking around, and the smallest membranes I could find come out of Dualshock repair kits, for their shoulder buttons:
https://www.amazon.com/Gametown%C2%AE-C ... B00WUG4SQY

Looking at the gameboy you have, do you think it's possible to fit the existing mechanism inside the shoulder button?

Lastly, do you think I'm dreaming that by moving some of these components off the top of the board, we'd have room for an x and y button there?

Thanks!