Links & info

Gameboy emulators in Javascript!

It’s often stated that JavaScript is a special-purpose language, designed for use by web sites to enable dynamic interaction. However, JavaScript is a full object-oriented programming language, and is used in arenas besides the Web: the Widgets available for recent versions of Windows and Apple’s Mac OS are implemented in JavaScript, as is the GUI for the Mozilla application suite.

With the recent introduction of the <canvas> tag to HTML, the question arises as to whether a JavaScript program is capable of emulating a system, much like desktop applications are available to emulate the Commodore 64, GameBoy Advance and other gaming consoles. The simplest way of checking whether this is viable is, of course, to write such an emulator in JavaScript.

This article sets out to implement the basis for a GameBoy emulation, by laying the groundwork for emulating each part of the physical machine. The starting point is the CPU.

This project by Imran Nazar aims to emulate a full Gameboy in Javascript using Canvas, while documenting the process.

The source code is available at his github repository, but for your convenience, there’s also an instance here that you can try out. Try replacing “ttt.gb” with “opus5.gb” for a different demo.

However, the idea isn’t new. The similarly named JSGB by Pedro Ladaria, which existed a year ago. The emulator can be tried out at that URL above. I have yet to extensively compare the two in terms of speed and functionality.

And unless my memory fails me, both of them were preceded by a much more primitive GB emulator/debugger written in Javascript which didn’t emulate graphics and only allowed you to single-step the code, that existed several years ago. Does anyone know what I’m talking about and what happened to it, if it even existed?

Monday, August 9th, 2010 Emulators, Links & info 1 Comment

Official Nintendo Game Boy Flash Cartridge Board Scans

Official Nintendo Game Boy Flash Cartridge - Back side

Official Nintendo Game Boy Flash Cartridge - Back side

Official Nintendo Game Boy Flash Cartridge - Front side

Official Nintendo Game Boy Flash Cartridge - Front side

Official Nintendo Game Boy Flash Cartridge - Cartridge Shell

Official Nintendo Game Boy Flash Cartridge - Cartridge Shell


These are official Game Boy flash cartridge sold in Japan. You would go to a designated flashing station and have your cartridge flashed for a cheap price.
The cartridge is marked DMG-MMSA-JPN and the board is marked DMG-A20-01 (I’m not sure whether the character after the 2 is a zero or upper case o – I’m actually leaning towards the latter as it appears to be a little bit wider than the following 0)
The board contains three intergrated circuits.
  • 29F008ATC-14 – 8 Mbits (1 Mbyte) flash ROM. I can’t find a datasheet for it, so I’m guessing it’s a custom or OEM chip. I’ve seen Mask ROMs/OTPROMs in game cartridges also marked MX, so Nintendo probably had a contract with them.
  • UT621024SC-70LL – 1Mbit (128 kBytes) of battery packed save RAM.
  • MX15002UCA – Custom logic chip marked G-MMC1. The apparent function of this chip is MBC like functionality. Maybe there’s more to it too, like the ablity to offset the ROM and RAM addresses for multigames or flash memory protection? Details unknown. There’s an unused place for a crystal.

Note the square boxes on the back side, of the PCB, on the opposite side of the connector that goes into the cartridge header. These were most likely used in the factory to program the cartridge initially. Notice how the “unimportant” system clock and external audio inputs are missing this box. Also note the nice rounded PCB traces. Not often you see these. Visually appealing, indeed.
And maybe it’s a sign I’m getting too little sleep that I’m seeing a “face” in the image.
gbcartface
The scans are provided by Duo.

Friday, June 5th, 2009 Hardware, Links & info 6 Comments

Original development boards for Gameboy and other consoles

Gameboy Wideboy development board

Gameboy Wideboy development board


Gameboy Test Cartridge

Gameboy Test Cartridge

This page has a list of development kits and test cartridges for various 8-bit era consoles and handhelds, including Gameboy and Gameboy Color. The top picture is the so called WideBoy which is a device that you plug on top of a FamiCom. It duplicates the image to the TV attached to the FamiCom to relieve the eyes of the poor developers. The bottom picture is a funny looking cartridge which is in fact just a simple EPROM cartridge.

Thanks nordloef for the tip.

Thursday, February 26th, 2009 Hardware, Links & info 2 Comments