GameBoy Zero Upgrades

Sorry for the no activity recently but I’m now hoping to get things going again.


While I was searching AliExpress/eBay and came across this LCD. I picked this up for about £15. I couldn’t wait to try this out. I download there image and flashed it to my sd card. Used this with my PI2 and quality is amazing from this screen and the touch worked great. Touch isn’t needed tho for this build. I had to upgrade the firmware to get it to work with my Zero W.


I started taking the screen apart and removing the unneeded bits. I wired the screen to the Zero w gpio pins and also soldered the USB test pads to helders v1.4 AIO board. I tested it and seem to work fine with my retropie.


It looks like this build is going to be nice and clean with Helders AIO board. Due to issues I’ve had with my GBZ I will be upgrading my Slim Green GBZ. I need to find out if I can pull the hdmi audio into Helders board.

Until next time.

GamePie Advance Update

wp_ds20161130

I have been very busy with work and a bathroom refit but I just wanted show a small glimpse of what I’ve been working on, when I’ve had a spare moment. I’m also going to be adding x and y buttons soon.

How To Change GameBoy Internal Colour Palette

By default Gambette has the Green filter turned on, which is trying to mimic the original gameboy screen but after a while this can hurt your eyes. It is possible to edit the config files so it shows a white filter.

To do this you need to edit /opt/retropie/configs/all/retroarch-core-options.cfg and set the palette like:

gambatte_gb_colorization = “internal”
gambatte_gb_internal_palette = “GBC – Grayscale”

You dont have to go with Greyscale, the complete list of palettes our.

GBC – Blue
GBC – Brown
GBC – Dark Blue
GBC – Dark Brown
GBC – Dark Green
GBC – Grayscale
GBC – Green
GBC – Inverted
GBC – Orange
GBC – Pastel Mix
GBC – Red
GBC – Yellow
Special 1
Special 2
Special 3

RetroAchievements Update 2

With all the hard that has been put in, we now have a fully compatible list of cores for Retroarch.

  • NES: QuickNES
  • SNES: Snes9x 2010
  • MegaDrive/Genesis: picodrive
  • Game Boy/Game Boy Color: Gambatte
  • Game Boy Advance: mGBA and VBA-M
  • PC Engine: Beetle PCE Fast

Make sure you have updated all of these cores and RetroArch from source from within the retropie setup script.

If you do come across and problems please get a save state just before the achievement unlocks and upload it to this github. If you don’t have github account post a link to your save state with information on what game and achievement each save state is for. Also what core you are using in the comments and I will upload it for you.

Retroachievements News

Leiradel has been working on fixing the issues with retroachievements on RetroArch. I can confirm that the fixes so far have stopped achievements unlocking when starting a game and also now GBA achievement’s work. I’m using the MGBA emulator.

To get these working just update RetroArch from source in the retropie_setup script under main cores.

There is also a github repo here to upload any savestates you have just before an achievements should be awarded and it doesn’t for what ever reason. This will help Leiradel when trying to fix any achievements issues.

 

GamePie Advance Build Part 2

The last task to do now before we close up the shell is to solder the battery contacts to the board. The only thing I was worried about was getting them the right distance apart… so the shell will close.

You will be soldering on to the bottom of the board as in picture 1. You will want to add solder to the top of the contacts (don’t hold the contact, it will get very hot). Using a pair of plyers you will want to slot the contact under the board, then line up the holes of the contact and board.  As your holding the contact in place and its all lined up heat the solder that is on top of the board so that you can attached the contact. I trimmed down the other contact like in picture 2.

After trimming the other contact you will want to repeat the process for soldering the second contact. Now you will want to put the shell together. When I get a spare moment I will take the board out of the shell and check the soldering from the otherside. I’m waiting on a front LCD protector so I can’t fully close up the shell.

 

Now its time to setup retropie. Ed includes an SD card image but I found there are some changes that need doing, like installing some custom emulators which aren’t includes within the retropie’s OS anymore, setting up WiFi and sorting out the display text size.

Setup Wifi

Connect a keyboard and WiFi adapter to the Raspberry pi zero via USB hub and OTG (On The Go) adapter. Navigate to the retropie menu and choose WiFi, use the keyboard and select your router and then input your password. Now that we have WiFi access we can use putty and SSH to connect to the pi.

Installing Custom Emulators

The RetroPie OS includes alot of great emulators but for some reason there are a couple which don’t get included in the setup script. It is very easy to add custom emulators to RetroPie. First you need to check the Libretro github page to find all the emulators they have to offer for RetroArch which is the backend of RetroPie. In this section I will be adding MGBA which is a great GameBoy Advance emulator. Scroll down the github page until you find it in the list and copy the URL.

I’m going to be logging onto my Pi via putty on windows but this can be done directly on the Pi if you have a keyboard plugged in. I put all my custom emulators into a folder in the home directory.

cd RetroPie-Custom

git clone  https://github.com/libretro/mgba

Now you will have to wait a minute or two for your Pi to download all the files from the Github page. The next stage is now to compile the emulator from the github files you downloaded.

cd mgba

make

You need to make sure you navigate to the MGBA directory and then run the ‘make’ command. This stage will take a while to compile, when it finishes you should have a file called mgba_libretro.so.

Now you will want to SSH onto your Pi and navigate to the /opt/retropie/configs/gba directory and edit the emulators.cfg.

mgba=”/opt/retropie/emulators/retroarch/bin/retroarch -L /home/pi/RetroPie-Custom/mgba/mgba_libretro.so –config /opt/retropie/configs/gba/retroarch.cfg %ROM%”

default=”mgba”

You will want to copy the original entry and make the changes to match your newly compiled emulator. Make sure the root to MGBA is correct so it looks like the entry above. Then change the default to MGBA. Save the file and it should automatically re-upload to your Pi. Then on the GPA you will want to load a GBA rom. It should now load the rom within the new emulator. You can alway check which emulator it is using when you load a game, it should tell you in the grey square after the rom name in bracket.

I also recommend VBA-Next and Snes9x-2010.

RetroAchievements

I really do like the idea of Retroachievements.org, which is still abit buggy and really only works for Nes, Snes, GBC and Genisis games. It is very easy to turn achievements on by navigating to the /opt/retropie/configs/all folder and editing the retroarch.cfg file. All you need to add is 3 lines of code.

cheevos_username = *******
cheevos_password = *******
cheevos_enable = true

Make sure you have opened an account at retroachievements.org  and then use this data for the username and password lines. Now you have activated achievements within your favorite classic retro games.

 

Retropie Web Manager

The Retropie Web Manager is a fork of the web interface from Recalbox OS. This add-on is great, you can add new or manage your roms. You can edit your retroarch.cfg files.

I was installing this via their github page but this is now included with the experimental page of the retropie setup script version 4.0.3 I had problems getting the add-on to start when you first boot up the Pi. I have now installed this add-on via the retropie setup, it adds a link to the retropie menu and you can now just choose the boot up option which works perfectly now.

Game list Errors

I was first getting errors when jumping between games, to solve this I had to uninstall the emulators these gamelist were connected to which fixed the problem. I was already going to remove these as they are for emulators which im not interested in.

Remove Unwanted Emulators

To speed loading times up, I have removed all the emulators that im not interested in. You will want to load the setup script from the retropie menu (or from putty on a computer). Select manage packages, emulators can be stored in 3 out of the 5 menus listed. Manage main packages, manage optional packages and manage experimental packages.

I want to remove lr-genesis-plus-gx which is located in the main packages, select it and then choose remove. Let it do its thing and when your back at the menu, you can remove to the next one.

Video Text Size

Its very easy to change the yellow text size that appears when a game is loading and also used by retroachievements. You want to SSH or edit via the web manager and edit the retroarch.cfg file and add this to the config.

# Size of the font rendered.
video_font_size = “20”

This will make the text readable.

I will do another update when my front surround has arrived and any other setup details I have missed or that has been requested. Let me know.

GamePie Advance Build

I have bought one of Eds kits from GamePieAdvance.com website. As you can see from the picture this board looks great and has everything built in. The best thing about this kit is that you receive all the parts needed for this builds minus the shell. I bought the shell a while ago for a raspberry pi zero build, so I already had it to hand.

The first thing I wanted to do is to power this thing up so I soldered the GPIO header to my Zero and connected it to the GPA board. Beware when connecting these boards together they will be very stiff. I connected the LCD and powered up the pi with my USB power bank. It boots up and seem to work fine.

We are going to firstly start with modifying the rear shell. You need to remove a the metal shielding from the shell near the cartridge hole. After you have done that you are going to want to remove the screw mounts and side frame which are next to the cartridge holder. To do this you will need to use your knife to score the edging of the plastic like seen in the picture. Then using a pair of plyer’s twist and rock backward and forwards until it snaps off.

Do this on both sides. Then, use a dremel to tidy up the plastics. You are also going to want to remove the two square blocks at the bottom of the cartridge holder as seen in picture 2 as the bottom of the GPIO pins touch them and then the board won’t fit in place. (I worked this out after doing the next step and I may have removed to much of the shell).

Before you will be able to get the board to fit inside the back case you need to open up the headphone and volume wheel, holes to make these fit and remove part of the screw mount so the volume wheel can spin without hitting it. I have also found when I was building my GBZ that not all aftermarket shells are the same and things can be slightly off. So you might not need to take so much off. You will need to keep checking the board and the front go together ok. When it does fit together ok and the volume wheel spins fine it time to modify the front shell.

To make the screen fit inside the front shell, you will need cut off a couple of tabs off the screen which are located near the cable. (sorry didnt have a picture). You will need to remove both corners from the bottom of the surround (As you can see in picture 4 and 6). Next you will need to remove the whole left side of the surround as pictured in picture 2. Like seen in picture 5 some of the speaker surround will need removing as well as some of the top left plastic. After doing this and you find that the screen fits in nicely then you will need to use the dremel to remove the raised sections by the screen hole. This is so the lcd can sit flat to the shell.

There is a small bump in the button which will need to be removed to make it work with the new switch. You can do this by just cutting it out with a set of wire cutters (as seen pictured). You also need to remove some of the old plastic around the L&R buttons(As Pictured). You will want to try and put the shell together and make sure everything fit together properly.

You will need to trim the A&B button rubber so it doesnt get stuck on the LCD.

 

I now put all the buttons in the shell with the rubbers. The with the speaker in the front shell first the lcd then goes on top and screwed the board into place. Im currently messing around with the RetroPie while having the unit powered off the Raspberry Pi Zero charging port. So far the unit works very well. I had to install some custom emulators which weren’t included within Retropie OS. The GPA loads alot faster than my GBZ does. Not sure why either.

The build is almost finished, I still have to mess around with the software and get everything working correctly.

Part 2

Interested in Building a Gameboy Zero

A friend of mine is interested in building a GBZ and thought I would post a Parts/Cost list for anyone else who is interested.

There are a couple of different routes you could take to build your own GBZ. One, is buying a Broken gameboy and follow Wermys guides over at SudoMod.com but im going to go into detail on building a GBZ without a doner gameboy. (Please dont destory any Working Gameboys).

I have been using my GBZ alot on a daily basis and found I still have some issues with USB/Audio/WiFi. All the issues point to the USB hub and im not sure if its an earthing issue or maybe just a power issue . Thats why I would recommend Helders new all in one board because it cuts out all the extra components/cables meaning you wont have earthing issues .

Button PCB
AIO1AIO2

These boards look very impressive and im tempted to rebuild my GBZ with one of these boards. These boards will cut out alot of extra compoments and save alot of space within your shell.

The Board has the following built in:
1. X&Y Button Drill template
2. PWM Audio Filter
3. Headphone/Speaker Amp
4. Atmega32U4 MCU to handle controls and Analog Stick
5. USB Hub (3 free ports,1 is connected to atmega32U4)

You can even add a Analog Stick to your build if you were thinking about it.

These boards will cost you $35 plus shipping. If your interested you can buy from this page.

The Shell
shell

There are so many aftermarket shells for sale on the web, If you look hard enough you can find all sorts of colours. Prices can also vary from £8 to £20. When buying a shell make sure there are screws included. Ebay is a good source for Standard GREY shell but if you are after something abit more colourful then check out deadpanrobot.co.uk in the UK.

Buttons
buttons
There is also loads of aftermarket buttons and again available in all different colours. You will need to buy two sets due to them only including two A/B/Y/X buttons. You will also need to get the silicone pads which go under each button. You are looking at about £3 per set of buttons and around £2 for a set of Silicone pads. The button sets normally include the power switch. Thats a total of £10 for all buttons. You can Either buy these from eBay/Aliexpress or deadpanrobot.co.uk

You will need to keep in mind if you want standard colour buttons that some people selling shells on eBay actually include 1 set of buttons.

I chopped up a NES controller for the pads and buttons and also had a doner GB for the other buttons.

Screen
Loads of different LCDs have been used in peoples builds and the favourite has been the BW 3.5 Composite Display, the only problem with this display is that there seems to be atleast 7 different variety’s of this driver board and it is pot luck which variant of screen you will get. Everyone over at Sudomod has tried to include the details on all the different variant. All the details are available on Sudomods Wiki Page

I would recommend variant 7 which is available on Amazon with Prime Delivery.

Power Supply
powerboost 1000c
Adafruit Powerboost 1000C is a great device which includes loads of options for all your power needs on any portable project. This makes it the perfect power supply for this project. There are two Versions of the Powerboost 1000 and make sure you buy the 1000C, the difference between the basic and the charger is that you can still play while attached to the wall via the charge cable. There is also a 500 series but wouldn’t recommend them for this project. You can currently buy the powerboost 1000C from ModMyPi for £14.99 which is cheaper than what I paid.

Battery
battery

The battery can be one of the hardest items to buy because your not sure what size to get as you have to make sure it fits nicely inside the GB shell, they can also be hard to find for sale without spending alot of money on the item and shipping. In the UK they have to be sent by special delivery with a certain couriers due to the contents of the package being a LiPo battery. I used a 2500mAH battery which is bought from eBay being sold from China. The battery I bought is available from eBay for £7.99.

Screen Surround
screen surround
There is only one place to go when it comes to screen surrounds and that is to RetroFresh.uk they have a custom screen surround service where you can choose from colours to font, style and text that you want to be printed on the surround. You can see minewhich is orange on my GBZ. They also do a standard grey ones to match the original gameboy colour scheme. These surrounds start from £7 but you wont be disappointed, the quailty is amazing on these things.

Game Cartridge & Label

You will also want to go to RetroFresh.uk to get your cartridge label, again these are printed on high quailty labels and look great when stuck on the cartridge.

When it comes to buying the cartridge it depends on what you plan to use it for. Mine is just used as a cover to hide the battery. But if you are following wermy guide and want to put the SD card adapter inside the cartridge you will want to either buy a cheap game off ebay and solder the SD adapter to that board or buy one of the custom boards available on sudomod. You can also buy blank cartridge shells cheaply from china.

Power Switch

This is the recommended power switch that is listed in the sudomod wiki and is really cheap for 5 of them its £0.77.

Headphone Port

Again this is the recommend headphone port, which is also very cheap. You have to buy 25 of them but they only cost £1.47.

Speaker

You are after an small 8 ohm speaker. You can find cheap replacement DMG-01 speakers on ebay for £2.99

L and R Buttons

9.5mm Momentary Tactile switches are used for the L and R buttons and these will be located within the two middle screw holes on the GBZ shell.

Micro B USB Breakout Board

This USb board is used as the charging Socket for the GBZ, there are a couple of different ones out there but can be eBay.

Potentiometer Volume Wheel

I have seen people use these potentiometer volume wheels which are very cheap and should do the job.

Raspberry Pi

This project used a Raspberry Pi Zero but some people havemanaged to squeese a Normall Raspberry Pi 2 or 3 inside the case. Pi start from £4 plus postage.

SD Card

I recommend using atleast a 32GB micro SD card for storing all your roms on. Make sure its a class 10 card.

Misc

There are also a couple of other little compoments which will be needed and sourcing them might be hard, first one is the button wells which you can cut from any nintendo controller or now there is also 3d printed button wells available on Sudomod forum.

Another 3D printed component that could be used is the top screw mounts for the shell. You can either use the Wemry guide to make one or there are 3D printed ones which are available on the sudomod forum.

You will also need a decent amount of wire. Some people take the wires out of old ethernet cables.

 Part  Cost  Link Notes
 Button PCB £26.85 + Postage  Link  Helder Sudomod
 Shell  £10 + Postage  Link  DeadRobot
Buttons  £10 + Postage  Link  DeadRobot
3.5″ LCD  £13.96  Link  Amazon
Power Supply  £14.99 + Postage  Link  ModMyPi
2500mAH Battery  £7.99  Link Ebay
 Screen Surround  £7 + Postage  Link  RetroFresh.uk
 Used Game  £5  Ebay
Cartridge Label £1  Link RetroFresh.uk
Power Switch £0.77 Link BangGood.com
Head Phone Port £1.47 Link BangGood.com
Speaker £2.99 Link Ebay
9.5mm Tactile switches £0.99 Link Ebay
Potentiometer Volume Wheel £1.76 Link Ebay
Micro B USB Board £3.99 Link Ebay
Raspberry Pi Zero £4 + Postage
32GB micro SD Card £8.19 Link Amazon
Total £120.95 + Postage

These prices are to be used as guide lines and will change depending on what route you take when building your GBZ. I hope my break down on parts will be helpfully. Feel free to ask any questions.

Disclaimer

I dont have any links to any of these companys, Im just listing what i believe is best for a GBZ project.

Gameboy Zero finished.

My Gameboy Zero is now complete. Here’s a couple of finished pictures.

WP_DS20160630
WP_DS20160701
WP_DS20160701(1)

Here is a picture of my original design next to the new design and pictures of the old board.
WP_DS20160701(2)
WP_DS20160701(3)

I’m very happy how turned out in the end. I would have liked solid orange buttons. I do still have usb issues now and then. This does mean sound doesn’t always work. When I have time I will investigate.