NeoPiGamer
-
I love the sparkle paint job ^_^
What systems have you got running on it?
-
@PingSpike - Thanks! It wasn't the easiest build, but it was worth it.
@Velocireed - I'm considering doing both a video and build details. Stay tuned.
@Imrhien - So far, it's running NES, SNES, Genesis/Megadrive, FBA (for Neo Geo and a few arcade games), Lynx, Gameboy, and Gameboy Advanced. I'm quite amazed at how well everything runs on the Pi Zero.
-
cool! it looks like your hard work payed off!
-
@Tekkaman_Slade Excellent build!! I'm working on something on the same line with a 5 in screen and a Pi3.
-
I see alot of people converting original gameboys but really think handhelds with 6 button outlays are best in this form factor.
The wiring alone is enough to give somebody like me nightmares and wish somebody would start selling these type of kits for those without the know how, tools or time to build one from scratch.
Well done -it looks really good.
-
That's pretty damn cool!
-
@batman said in NeoPiGamer:
I see alot of people converting original gameboys but really think handhelds with 6 button outlays are best in this form factor.
That's the very reason why I chose the Gameboy Advance for this project. I wanted a portable with 4 face buttons and 2 real shoulder buttons. A Nintendo DS has everything from the start, but the bottom half is too thin to fit all the components. The GBA was a very very tight fit and it took quite a bit of planning and modding to add the addition face buttons while maintaining the existing shoulder and face buttons. I'm just glad it all worked out.
The wiring alone is enough to give somebody like me nightmares and wish somebody would start selling these type of kits for those without the know how, tools or time to build one from scratch.
Adafruit sells kits for the PiGRRL and the Pocket PiGRRL. Both kits are easy to put together and are a great way to learn the basics. You can purchase the 3D printed cases on eBay if you don't have a 3D printer.
-
Both kits are easy to put together and are a great way to learn the basics. You can purchase the 3D printed cases on eBay if you don't have a 3D printer.
Thanks, I've seen both of the kits previously and have been put off by the 3D printed d-pad, buttons and the lack of shoulder/trigger buttons. I could be wrong, but I just don't see these being comfortable to hold for extended periods. Particularly the smaller model.
There aren't too many games that I play that actively require 6 buttons but I would want that option for games that do without taking my finger off the d-pad or the main buttons.
Personally, I'm interested and keeping an eye on this project in the hope their kit will be actually affordable and buttons be of good quality when they bring it to market. I would be even more excited if they chose to go for a GBA/PSP/DS style layout:
https://hackaday.io/project/10207-gamegirl-the-retro-console-done-right
-
@Tekkaman_Slade im curious how you wired up the controls from the gba board. Any chance you provide a walk through on how you wired the controls to the pi zero?
-
@gamester_47 - I used the diagram below to wire the pinouts from the GBA's PCB directly to the GPIO pins on the Pi Zero.
I cut out the middle/green portion of the PCB in order for the signals to work properly. The Gameboy Pocket and Nintendo DS have the same issue. I needed the space for the LCD screen anyway so it all worked out.
The square pinouts under the right shoulder button and between the start and select buttons are ground.
Then I used the Adafruit retrogame utility described here to remap the buttons to keyboard presses.
-
Hi. I'm trying to do something similar to what you did. The only issue I am having is finding a display that I really like. Your display seems perfect (even bragging about 60fps). Could I get a link to the display that you used and describe what part of it that you modded? Thanks a bunch ^_^
-
I used a SainSmart 3.2" TFT LCD Module touch screen display. I believe it's a re-badge or clone of the WaveShare32 TFT touch screen display. I got it from my local Micro Center.
First I disconnected the flex cable and separated the driver board from the actual TFT display. They're held together with double sided mounting tape, so that part was easy.
Then I used a dremel tool to cut right along the 4 slim tactile button switches on the side of the driver board. This both resized the width of the board to the same width as the display as well as removed the buttons.
Next I cut off the thick plastic portion of the GPIO connector and desoldered the remaining pins.
Then I soldered wires from the appropriate pinouts directly to the GPIO on pi zero based on the pinout specs available on the page linked above. The manual linked on the same page also has more pinout details. I put electrical tape on the opposite side of the pin holes on the driver board to prevent any contact with the back of the TFT display.
Lastly, I removed the mounting tape, reattached the driver board to the back of the TFT display using double sided masking tape to reduce the thickness of the display, and reconnected the flex cable.
Drivers are included in raspbian jessie which makes enabling the display so much easier. You simply have to place the parameters below into the config.txt file in the boot folder.
hdmi_force_hotplug=1 hdmi_group=2 hdmi_mode=87 hdmi_cvt=320 240 60 1 0 0 0 dtparam=spi=on dtoverlay=waveshare32b,speed=80000000,fps=60,rotate=270
The first set of parameters setup the display resolution. The second to last parameter enables SPI. The last parameter specifies the hardware overlay for the display so the correct kernel modules are loaded along with maxing out the speed and frames per second for the display. I also had to specify rotating the display 270 degrees since I have the display turned around for shorter wiring between the pi zero and the display in the GBA case. More info on the software side of things can be found here.
Since The SainSmart 3.2" TFT LCD Module has a resistive touch screen , I highly recommend you also blacklist the ads7846 touch input kernel module. Otherwise, the kernel will get continuous interrupts from any pressure between the touch screen and the back of the front of the GBA which will affect both input and game performance.
-
@Tekkaman_Slade Thanks you the best :)
-
@Jeff-H I have found that if you want to keep the plastic screen on the front, a 2.8" screen just fills the gap nicely. Im planning a GBA/Zero project but im struggling to find a good 2.8" screen that works with the Pi, and doesn't have too much overhang on the ends. There isn't a massive amount of space from the edge of the display to the buttons
-
I used a 3.2" TFT LCD Module because I wanted a larger screen than the original GBA. But if you or Jeff-H are looking to retain the original GBA screen lens, than the Adafruit PiTFT Plus 320x240 2.8" TFT + Capacitive Touchscreen may work for you. I made the same modification to the Adafruit PiTFT Plus 2.8" for another project minus desoldering the pins. You can actually trim the driver board on both sides leaving a very little overhang above the pins. The B+/Pi 2 Version fabrication print schematics make it very clear where it's safe to trim the driver board without damaging the circuit paths. You will need a high watt soldering iron to desolder the pins as industrial grade solder is used on the driver board. There is a resistive touch screen version of the same board that comes with the pins unsoldered, but I haven't reviewed the fabrication print schematics to see how well that display's driver board can be trimmed.
Cool thing about the Adafruit PiTFT Plus 320x240 2.8" TFT + Capacitive Touchscreen is that drivers are included in raspbian jessie. You simply have to place the parameter described here in the config.txt.
@Jeff-H - I updated the parameter information in the previous post.
-
@Tekkaman_Slade thanks for the info, i will investigate the adafruit screens.
did you have any issues with the I2S audio board you used clashing with the pins for your screen? The screens i have been playing with, use GPIO18 for the backlight
-
I used a USB Stereo Audio Adapter I got from Micro Center for 8 dollars. I modded it by removing the casing and the USB port. Then I wired data, power, and ground from the audio adapter directly to a micro-usb male connector. That made it easier for me to plug and unplug the audio adapter for disassembly and debugging of the NeoPiGamer.
Here's what Adafruit has noted about the screen you are using.
"Note that if you are playing audio out the headphone jack, you can't use the PWM capabilities of GPIO #18 at the same time, the PWM function is reassigned to do audio. However, you can use it as a simple on/off pin"
So you should be able to use the screen you are using without backlighting control if GPIO 18 is being used for audio.
-
@Tekkaman_Slade thanks for the info man
i did ponder using a USB sound card, but i have been using a wifi dongle to get logged in and make changes to settings or upload games, and i dont want to start adding usb hubs in there to take up the space and battery
i can tie the backlight pin to the 3.3v feed, that wont cause any issues as the notro driver doesnt deal with any dimming anyway.
do you have any control over the volume on your usb device?
-
I know exactly what you mean. I looked at a few very small 2 port hubs for notebooks that might have worked after modding, but after replacing the 1200mah battery with a 2500mah battery, there is no room left in the case. I actually use a second pi zero for changes and updates by swapping the microSD card. That setup actually helped with debugging some of the modifications I mentioned in the update to my original post.
I use the RetroArch volume control hotkeys (select+up and select+down) to control the volume. I could have used the original GBA potentiometer, but I had to remove it to make room for the audio amplifier and some wiring.
-
@Tekkaman_Slade that volume shortcut is awesome!!! i never knew that was there, its one less thing to worry about.
Im curious as to how you blanked the cartridge hole, i did toy with the idea of getting some naff old game and gluing it in, but that extra space would be handy
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.