Pi in a Gameboy Advance Build - WIP
-
After learning a ton with my Super Famicom build I've decided to try a handheld. The Gameboy Zero has spawned a whole community around putting a Pi in an original Gameboy, but I really want to see if I can fit one in a Gameboy Advance. I know it's been done before with some using custom PCBs, but I want to see what I can come up with.
Let's make something cool.
-
I figured the first thing I should try to do was to put RetroPie on the Zero to see if I could even get it to work. That was a bit of a feat since I don't have a USB hub and I thought for some reason that "just plugging in a USB drive" into the zero would copy the file structure over. Apparently that's not the case. Anyway, my wired Mac keyboard has two USB ports on it so I was able to plug that into the pi and plug a controller in one USB port and a USB stick into the other side and copy over a few ROMS via the command line. Video in EmulationStation is crystal clear, but in a game it looks a bit muddy. I tried copying my retroarch settings from my Pi 3, and it seems a bit better, but something is still off. The default on the Pi 0 image was 640x480 and on my Pi 3 it was at 1024x768. Since I'll ultimately be running it on a low resolution screen anyway I'm not too worried about it, but it does bug me that I can't figure out how to get the pixels razor sharp like on my 2 and 3.
Anyway, it's Trick or Treat night and I have some Strato Fighter to play until the ghouls show up at my door.
-
@obsidianspider ooooooooh good going man! I think the advance has the best layout.
Are you going the composite reversing cam screen route, or are you going to get another ili9341?
I'm assuming you going to chop up the nes controller to do you buttons?
-
That interesting about the Pi0 having a default of 640x480. Make since though. I remember when the Pi1 first came out reading that it couldn't do 1080p video (or not that well). I'm kind of spoiled because my first Pi was a 3 and I'm very impress with how well it handles everything (including 1080p MP4 videos). I've wanted to do a project like what you're doing here but worried I'd be disappointed with how the Pi0 handles everything. I realized I probably won't be playing PSX, Dreamcast and PSP games like I do with my Pi3. Also won't have enough buttons to play most of those games anyways haha.
Anyway, it's Trick or Treat night and I have some Strato Fighter to play until the ghouls show up at my door.
So you get Trick or Treators early in your neighborhood?
-
@obsidianspider
I know we've got the MAME ROW and all but it might be more appropriate to be playing Splatter House when they arrive: -
@backstander said in Pi in a Gameboy Advance Build:
So you get Trick or Treators early in your neighborhood?
Yeah they do it the Friday before Halloween from 6-8
-
@moosepr said in Pi in a Gameboy Advance Build:
@obsidianspider ooooooooh good going man! I think the advance has the best layout.
Are you going the composite reversing cam screen route, or are you going to get another ili9341?
Unless you know a secret I don't, the frame rate for the ILI9341 was pretty crummy when I actually got it to work. I thought it was because the Pi was putting video to two screens, but it seems like ~12fps is common over SPI.
I'm assuming you going to chop up the nes controller to do you buttons?
I'd love to use the logic from the ibuffalo and the buttons, but in looking at things next to each other the SNES buttons are bigger. I have to take apart the GBA and measure things for buttons as well as the screen.
-
@obsidianspider I have an ili9341 in my mini pi project. The refresh rate isn't amazing, you can see some tearing on fast and full screen updates, but it is plenty playable! I would use it every time.
I was tempted to chop the buttons out of an old DS, and use them in an advance shell, but I'm not keen on the paint and filter to crack and fall out
-
@moosepr said in Pi in a Gameboy Advance Build:
@obsidianspider I have an ili9341 in my mini pi project. The refresh rate isn't amazing, you can see some tearing on fast and full screen updates, but it is plenty playable! I would use it every time.
Did you install a custom driver or just use the notro/fbtft that's built into Raspbian? Mine was pitiful and looking online it seemed that was common, but I admit I have no idea what I'm doing.
-
@obsidianspider I'm just using the built in one, seems OK to me, I might see if I can get a video uploaded so you can see
-
@moosepr another concern is the physical size of the PCB. The ili9341 boards I saw stuck out pretty far on either side.
-
If I can fit it in an Altoids tin you can make it work in a GBA. I can't wait to see what you come up with. Good luck dude I believe in you =]
-
@obsidianspider yeah that was where I got stuck! I did some digging and it looked to me that the PCB did very little other than making the ribbon cable more breadboard friendly, and adding the SD card. I did make a custom PCB that the screen could be transplanted on to, but life has gotten in the way and it's sat in a box untested
-
@moosepr I think I'm going to try the 3.2" Sainsmart display that Tekkaman_Slade used on their NeoPiGamer. The 3.2" will just fit if I trim off the extra buttons, and I don't see any way a 3.5" backup camera screen will fit. The 2.8" screens are slightly smaller than the opening in the GBA screen cover, and I think that might look a little janky.
Now I need to find a small USB hubβ¦
-
I ordered the Sainsmart 3.2" screen as well as a 4-port "octopus" (quadropus?) hub that I saw on the sudomod wiki
Assuming the hub works like I want it to (keyboard, wifi, controller, usb drive), I'll take it apart and just keep the board and then wire it up to whatever ports or boards I need.
-
Since I don't have a USB hub, and I only just ordered the one for this project this morning, today I decided use my Pi 2 as a test platform to see if the old USB sound card that I had sitting in a drawer from a long discarded headset would work for this project.
The overall adapter was a bit long for the project, but I can desolder the USB connector and the 3.5mm jacks and it'll be plenty small.
Using the instructions I found over at sudomod I was able to get the sound card working in minutes. With headphones plugged in it was LOUD (I'm not sure how to set a hotkey to do the
Select+ Up
Select+Down
to adjust volume like I've heard some people refer to so I went though the RetroPie menu and adjusted it there for now) so hopefully it'll do well to power the GBA speaker. -
@obsidianspider
This is what I did with my Xbox 360 controller which will adjust the volume with RetroArch emulators:
sudo nano /opt/retropie/configs/all/retroarch.cfg
# Volume controls: mute, volume up and down input_audio_mute_axis = +1 #Down on D pad/Left Stick input_volume_up_axis = -3 #Up on Right Stick input_volume_down_axis = +3 #Down on Right Stick
-
@backstander said in Pi in a Gameboy Advance Build:
Thanks! Do you have to hitSelect
to activate that, or is it just any time you hit up on the analog stick it adjusts the audio? -
@obsidianspider oh yeah I forgot to put the hotkey button. Yes you would need to hold the
Select
button to activate it.Config it like this:
# Hotkey button input_enable_hotkey_btn = 8 #Select
-
@backstander That makes sense.
Now I need to get back to Strato Fighter!
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.