The use of 8-Bit sounds from ancient gaming devices such as the Gameboy or Nintendo gear has become another tool in the producers toolbox. Be it pop diva “La Roux” (e.g. in her song Bullet proof ), artists like Hot Chip or everything from the genre called chip tune.
There exist plenty of 8-Bit Software VST Plug-ins, but I was in search of a hardware chip tune device, which could be played via Midi. Fortunately Timothy Lamb build a device called Arduinoboy, putting together a Gameboy and an Arduino which – voilá – adds Midi-In to the gameboy. In short: The gameboy makes the sound, the Arduino handles the Midi-In.
Here are the main links:
Sound and programming
The Arduinoboy has 4 monophonic and one polyphonic voices which can be played independently. They lay on different midi channels (Channel 1…5). The first three are standard chip tune voices, the forth one is an “effect” voice where you can make percussive sounds from bomb drops to Snare and bass drum like sounds. Midi Parameters include: Program Change, Pitch bend, Pulse width, Envelope mode, Pitch sweep, Pitch bend Range, Pan, Sustain.
|Used Gameboy Classic / GB01||5 €..25 €( $7 .. $ 34)|
|Programmable Gameboy Cartridge||40 €( $ 54)|
|Arduino Uno||25 €( $ 34 )|
|MIDI- In circuit (see “Electronic Parts”)||5 €.. 30 €($7.. $40)|
|Electronic Parts||5 €|
|3 x||220Ohm||Resistor 0.25W|
|7 x||2K||Resistor 0.25W|
|1 x||5-Pin Din Connector|
|1 x||General Purpose PCB 100x160mm²|
|Gameboy Gameport Cable|
|case to stuff everything inside|
Gameboy models and prices
Let’s start with the gameboy itself. The whole project works only with the Gameboy Classic or “GB01”, the grey old big box. Prices for the used device range (in Europe) from 5€ (8$) on the flew market to 25€ (30$) on eBay. One shouldn’t pay more – but with millions of devices sold there should be one in every second household.
Preparing the Gameboy
The gameboy has to have a special cartridge (see below) and is connected to the Arduino via the gaming port, which is normally used to connect two gameboys. The actual audio comes out of the audio output of the gameboy.
There are two ways of connecting the serial interface of the gameboy: non destructive via gaming cable and desctructive via direct solding on the gameboy board.
When you don’t want to open your gameboy and possibly trash it, you should use a gaming cable (see this tutorial).
You can also opened up the gameboy and soldered wire direct to the circuit board. I think its more reliable and – it’s free! And I personally don’t have to detach the gameboy anyway.
1. Step: Open the Gameboy
To open the gameboy is challenging: there are special 3-slit screws build in, which are hard to open. I ended up drilling the heads of the screws off with a 6mm driller. This is not too dangerous, as there are no electronics underneath the screws, but to get a special tool for this is much easier.
2. Step: Rewiring the LCD
When opening the gameboy, you will notice that the ground connectors from the front piece (the one with the LCD in it) are not hard wired but there are just two contacts pressed against each other when closing the Gameboy. I recommend that you rewire it as can be seen in the picture.
3. Step: wiring the serial gameport
You can then solder on XX 5 XX wires to the gaming port as can be seen below: I also added a power line, so I did not need to power the gameboy extra.
Where to get
For the project you need a special cartridge (the grey memory boxes where the games are usually on). You need a cartridge wich can be rewritten with the mGB code (see below), so the gameboy knows what to play when a midi-note comes in.
This was one of the biggest mysteries for me. What do I have to do? Buy a cartridge and a programmer, if yes, which? Build the programmer myself? Build the cartridge itself from scratch with used RAM? It might seem confusing, but in the end, there are only two main cartridges:
Cartridge with mini USB Connector, works like a USB-Memory Stick (Easy)
As seen in the picture above. I would go for this option, but these cartridges are sometimes hard to find. You can google “GB USB Smart Card 64Mbit” to find source or use these:
Flashlinker Shop (german, 40€)
Kitch Bent StoreMafipulation (new batches from time to time, but sold out very quickly)
You can also check the chiptune forums from time to time
Cartridges you need a programmer for (hard)
Escecially if you plan to programm lots of cartridges you should think about getting a programmer. There is gorgeous site form Mr. Ziegler with extensive info on this issue.
The code which you would want to put on the cartridge is called mGB. It is a Gameboy program which lets you:
- play notes via MIDI
- save Presets
- change sound parameters inside the gameboy (as can be seen in the screenshot)
You can grab the MGB code from Timothy here
The Arduino programming is straightforward and not crucial. I will not go in detail here – if you don’t know how to get code onto a gameboy check out this tutorial by awesome [ladyada]
This is where your soldering skills come in. Here is a material list again:
- 1/4 W 2 x 220Ω, 7 x 2,2KΩ, 2 x 220Ω resistors
- 1 x 6N138 opto-isolator
- 1 x 1N4148 diode
- 1 x Pushbutton
- 5 pin female DIN connector
- 6 x LEDs
Troubleshooting & FAQ
It doesn’t work, I hear nothing!
When you build the circuit be sure to debug one thing after the other.
- First you can check if the MIDI-In circuit works withthis little program I have written. It simply lights the status LED 13 when Midi data is coming in. When it doesn’t, you better check your input circuit or your midi device.
- Next you can check if MIDI Data is passed onto the gameboy. When this happend you can see a little arrow blining on the GB screen