[ programming ]

  • gbdk c compiler
  • emacs text editor
  • development summary by rickard gunee
  • devrs gameboy page (many informatice links to programming tips, projects, etc.
  • the GBSPEC.TXT document is particularly useful for sprite and tile programming, as well as understanding how the screen blanking timings work

[ emulation ]

  • I used virtual boy advance, primarily because it ran on OS X
  • While debugging on Windows, I found bgb to be quite good. In particular, it had the best emulation of the screen-blanking features that cause jumpy animations on the real hardware, but looked fine on virtual boy advance
  • Honorable mention: gnuboy which i have no experience with

[ eeprom programmer ]

  • Bought a top 200x USB (x=3,4,5) eeprom programmer on ebay. Works fine and much cheaper (only ~$70-90 US) than anything else out there.
  • Spend the extra money to get the usb version, versus the serial version: I made the mistake of buying the serial version, which was defective, and according to the reseller this is often the case! fortunately he was kind enough to take it back, and sell me the USB version, for a little bit more than the price difference.
  • The manual is essentially useless, containing such great chin-glish examples as "First to operate, galvanize the device." Translation: "Plug it in before operating." The software also has a number of mispellings, and cryptic sentences, but the operation is more or less obvious, so this won't be a problem

[ eeprom ]

  • SST27SF512 datasheet
  • Only the lower 256kbits are actually used, but you can't buy the SST27SF256 any more.
  • This is a 12V-program, 5V-read flash eeprom (no in circuit programming, or small-sector erases--which are unnecessary for this application--basically the lowest end reprogrammable flash eeprom you can buy (no UV source required, etc.)
  • Whatever you choose, the gameboy requires 150ns data access time on reads, this shouldn't be a problem with any modern flash eeproms, but keep this in mind when raiding your junk box
  • Through-hole vs. SMT: I've got to solder these by hand, and my eyes are bad. Also, I like the clunky homebrew aesthetic of the big through-hole pieces.

[ cartridges ]

  • For the [ i ching ] project, I cut up an old cartridge, hand-soldered some wire-wrap wires onto the contact pads, and wire-wrapped these onto a DIP-socket. Only 4 mistakes in the first round! (debugged with a continuity tester) This worked fine, but I vowed never to do it again
  • Then I had real carts made in china, more details on the [ cartridges ] page.
  • My cart design is super-minimal (just the eeprom), which limits you to 256kbits of memory. Consider that a programming challenge, not a limitation.
  • To fit the through-hole PCB+EEPROM into a standard casing, you'll need to remove some of the plastic with a dremel tool. Or, if you're really motivated, you can cast your own cartridge cases.

[ gameboy ]

  • You've got to run on something!
  • wikipedia entry: gameboy
  • My preference is for the old school original gameboys--no pockets, advances, etc., but this is strictly aesthetic
  • You can of course, buy them quite inexpensively at tag sales or on ebay