Welcome to Robot Dialogs. This is a place where I will record my progress, mistakes, errors, failures, lessons learned and hopefully occasional success in my designs and implementations of robots and other technical endeavors. I will try to make it as educational, informative and entertaining as I can...

Thursday, March 25, 2010

GameBoy (Classic) Work In Progress Part 2

This is mostly just to get some pictures up. I'm just getting this posted so I can try and refocus on thesis...I should be so easily sidetracked... Any future developments will be posted in the forum first...I'll post here as facts become more concrete.

The farthest I got with this setup was a man-in-the-middle setup (as shown below) where I could intercept the CPU's commands to the LCD passing them through the microcontroller and then to the LCD board. I had to move up to a ~11MHz crystal (not shown) on the microcontroller just to come close to allowing the signals to pass through unhindered. The best I managed was a slightly distorted picture...I'll need something faster to actually read the signals so I can reverse engineer them. I've also removed the GameBoy's oscillator so I could clock the GB at a slower speed. This did work but I haven't taken a ton of time to work on the coding side.

The goal when I can work on it again is simply to replace the CPU PBC outright. I will keep the LCD, Voltage Converter and Audio Jack PCBs interfacing them with a newer microcontroller. This would allow all manner of interesting hacks...I could use it as a wireless remote for things, a desktop clock w/ USB, get some emulated or custom games running...endless possibilities. For now I have to put it in a box and try to forget it.

Test Setup
Breadboard Setup
Audio Jack Front Audio Jack Back Voltage Converter
Voltage Converter

Monday, March 8, 2010

GameBoy (Classic) Work In Progress

This is a dump from the forum...it's notes on an in progress GameBoy hack. I will refine it later.

Forum thread is here.

I'm trying to identify and spec out the LCD signals in the GB (classic). I'm looking to do away w/ the GBs original controller board while keeping the LCD board.

Basically I want to plug the ribbon cable into my on PCB and output the necessary signals to drive the video myself.

I'm just wandering if anyone has more info on LCD signals output by the z80 so I can emulate them to display stuff.

So far I've mapped all the buttons, speaker, power LED, LCD negative power to the appropriate pins on the ribbon cable.

What I have so far:
Note: Pin 01 is the pin on the ribbon cable closest to the power switch (at the cables connector).
Note: Pin LCDV1 is the pin closest to power switch on the LCDs vertical axis connector (beneath LCD).
Note: Pin LCDH1 is the pin closest to power switch on the LCDs horizontal axis connector.

Pin 01 GND
Pin 02 Power LED - (Unregulated Batteries Voltage)
Pin 03 LCD Drive voltage (-19 V) This voltage comes from the voltage converter attached to the CPU section.
Pin 04 Left & B buttons
Pin 05 Button Diodes 1 & 2
Pin 06 Down & Start buttons
Pin 07 Up & Select buttons
Pin 08 Right & A Buttons
Pin 09 Button Diodes 3 & 4
Pin 10 GND
Pin 11 Vcc - Regulated 5V (different from Pin 02).
Pin 12 VERTSYN (I think) Goes to LCDV8.
Pin 13 ? - Connects to LCDV6 and LCDH7 (Either DATALCH or ALTSIGL)
Pin 14 CLK ? - According to nitro2k01's inverted display mod. Connects to LCDH8. (Data suggests Pin 18 as CLK though.)
Pin 15 DATAOUT1 ? - According to nitro2k01's inverted display mod. Connects to LCDH9.
Pin 16 DATAOUT0 ? - According to nitro2k01's inverted display mod. Connects to LCDH10.
Pin 17 ? - Connects to LCDH11 (Either CONTROL or HORSYNC)
Pin 18 ? - Connects to LCDV10 and LCDH12 (Either DATALCH or ALTSIGL) (Data suggests Pin 18 as CLK but this conflicts with LCD schematic...)
Pin 19 ? - Connects to LCDH13.
Pin 20 Speaker
Pin 21 GND

So I need help assigning Pins 12-19. I also need to know exactly what they do, and whether the controller or the LCD driver chip(s) are the ones switching them.

Basically...the sequence in which to flip bits...

I do have the LCD section schematic from devrs.com (gameboy2.gif) but it doesn't have the ribbon pinout or explain what the non-obvious signals do.

Here's a bit of captured data from all those pins...my current setup doesn't really do time stamping, so it's virtually useless...unless you want to know that 3 frames fits in 7000 bytes: