16

I have a Game Boy DMG with a broken screen that I want to turn into a small arcade machine, so I need to display the Game Boy screen on a bigger (computer) screen. I tried doing so with an Arduino. I feel the code was alright but the Arduino and the com communication with processing couldn't keep up with the Game Boy's framerate. So I tried connecting the Game Boy ribbon directly to a VGA cable because while searching the web I noticed a VGA cable has a few similar pins to the Game Boy. This is how I connected them:

VGA                                            Game Boy
pin 1,2,3 (RGB pins)                           pin 21 (GND)
pin 5,6,7,8,10(rgb returns, h+vsync gnd)       pin 15,16 (DataOut 0 & 1)
pin 13 (Hsync)                                 pin 17 (HSync)
pin 14 (Vsync)                                 pin 12 (VSync)
pin 15 (Clock)                                 pin 14 (Clock)

I got the pin information from Wikipedia.

Photograph showing where the pins are on the Arduino. Pins 12, 14 through 17 are 5 volts, see table above for details.

I wasn't able to get anything on the screen. However, when I connected the clocks together the monitor went from 'check signal' to 'power saving mode': the same as when the computer would go to sleep.

There isn't much information on this on the internet, only people showing off their build, not really telling us how they did it. I have no experience whatsoever in electronics so it could be something stupid I missed, a misplaced or missing pin, the Game Boy not giving enough current, digital-analog signals,...

I hope someone can help me with this, if something isn't clear, please do ask!

2
  • I've edited your question to make it clearer (as well as converting that image of a table into a text-based table). You used the arcade tag incorrectly; while you are creating an arcade machine using a broken Game Boy (which I think is incredible, by the way!), this question is not about retro arcade machines. I'll fix the tag summary to make that clearer.
    – wizzwizz4
    Jul 31, 2016 at 19:19
  • Do you want to write a post for our site blog? This is a very interesting topic, and the blog just went live. I know lots of people who are interested in your project, and would like to see how it goes.
    – wizzwizz4
    Aug 10, 2016 at 18:42

1 Answer 1

16

A direct connection is not going to work - The Gameboy's pixel clock is much too low to drive a VGA screen:

GameBoy VGA
Pixel clock 4 MHz 25 MHz
V-Sync 60 Hz 70 Hz
H-Sync 9 kHz 31 kHz

So, in a nutshell, this will not work without a significant investment into capturing the GBA video into some added screen memory and re-generating a VGA signal from there.

Here is a link to a page describing how someone has done that.

3
  • 6
    It's not just the pixel clock. They're completely different interfaces with the GBA output being digital (and pin 15 on VGA is an I2C clock, not a video clock).
    – nanofarad
    Jul 31, 2016 at 16:12
  • 4
    The VGA interface doesn't really have a concept of a "pixel clock" and it's easy enough to convert a couple of digital lines to an analog signal. The real issue is the much lower H-sync speed (i.e. much lower number of lines on the display). Jan 16, 2018 at 14:30
  • 5
    Plus, the gameboy (DMG) doesn't even send pixels at a constant rate - it may pause sending pixels for a few clock cycles, in exchange for a shorter H-Blank time. Nov 2, 2020 at 21:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .