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...

Wednesday, August 4, 2010

GameBoy (Classic) Work In Progress Part 3

First: The Open Logic Sniffer is the best thing since sliced bread.

Second: I finally have reliable recorded data from the GB CPU to the GB LCD.


Okay so before making sense of the data here's what you need to know. I clocked the GameBoy CPU with my own micro-controller the resulting GameBoy CPU Frequency was 812 kHz. That's 24.63 times slower than normal (20 MHz), so all of the data collected needs to be time scaled appropriately.

The data was collected on Pins 12-19 of the ribbon cable between the CPU board and the LCD board (See previous post for pin numbering and pin names, some of which are guessed). These pins correspond to inputs 0-7 on the logic analyzer respectively (see labels on image above if you're confused).

Two of the data sets were sampled at 10MHz and one at 1MHz. The 1MHz set was only taken for timing of the Vblank (it isn't a high enough sample rate to be considered accurate for data analysis).

I won't be drawing conclusions about the data just yet, for now I just want to make it available.

To get the data go here: GB Data 2.zip I'd be happy to collect more, just leave a comment.

To view the data go to The Gadget Factory and get the JAVA Client. It's Free. Run the executable (it doesn't install, it just runs a JAVA program) and then open one of the ".sla" files.

It's too late to code it up tonight, and I'm building a new PC tomorrow so hopefully this weekend I can get it working.

As a side note, I am really pleased with the Logic Sniffer. I had it out of the box, firmware updated, and got this data collected in less than an hour. I highly recommend that you consider getting one.

6 comments:

  1. The wafevorms look pretty good. However it is very weird that there is no activity on the data lines. Was the Gameboy screen showing something at the moment of the data capture?

    ReplyDelete
  2. Oh, that's because this was taken when it was displaying the boot screen w/o cartridge. It's just a blank screen with a rectangle. These reading just didn't catch any of the rectangle. I could (should) grab another set of data during that part.

    (If I had a cart. I'd do it with that in...but alas they didn't stay with the GB through the years.) Maybe I'll go buy an old used cart. this weekend too.

    ReplyDelete
  3. Ah that explains it.

    I've been looking trough a ton of datasheets and have made a little summary of them in the forum. In total there are about 10 datasheets related to these drivers which all use similar signals, but use different names for them.

    ReplyDelete
  4. Btw the Logic Sniffer looks pretty amazing for that price! The only setback seems to be that there's not alot of protocols written for it, but since it's open source you could always write your own. I was saving for a Zeroplus logic analyzer, but I don't think it'll be worth the money.

    ReplyDelete
  5. Thanks for making this data available. Been distracted by another project lately but I'll try to check out your data in detail soon.

    ReplyDelete
  6. So I just happened to stumble upon this while looking up info for the Gameboy Color's LCD. I have done work with the Gameboy Pockets LCD which acts the same way the DMG does. Seeing how you are using a logic analyzer I see you having a hard time figuring this out. Her is a link to a project I did making a VGA adapter using a FPGA.

    http://www.rival-corp.com/2010/12/02/gameboy-vga-adapter-2/

    ReplyDelete