Open Source Gameboy Emulator


I recently stumbled across an open source Gameboy emulator for Mac OSX, Linux, and Windows called gbpablog. You can download it from the Box File Widget or grab it from their homepage.

Java Gameboy Color Emulator GameGuha

There was an update to a Java emulator created for a Computer Science class at the University of Central Florida and I was able to give it a go with my Mac. It runs Gameboy and they are hoping it will eventually emulate Gameboy Color. It will run on any machine with JVM installed. I was able to run Mega Man V using my Macbook Pro, which is running the new Snow Leopard operating system. I also have Ubuntu installed using rEFIt but, that is a story for another day. Mega Man ran good but, with no sound. Seemed to run glitch free other than the lack of sound. I was not able to use my controller, but I reckon that with a keyboard mapping utility it might be possible.

Fixed a small bug in the window drawing.

Optimized window and sprite drawing. Also, performing the interrupt check every opcode instead of every scanline has a small performance hit, but gives better emulation accuracy on some games so I´m leaving it for now.

Some optimizations.

Allow reverting back to slow background rendering for games that swap tile maps intra-frame.

Window drawing! It´s slow, but I´ll optimize that later. Also, throttling is turned on by default now.

Small update. A little bit faster.

Preliminary background tile caching. Good for about a 2x speedup. Sprites still have some room for optimization.

To download grab it from the Box File Widget or go to the Gameguha Home Page.


Update to JSGB – Java GameBoy Emu

The Java GameBoy Emulator JSGB by Pedro Ladaria saw an update today. I know this isn’t a native Mac OSX emulator but, it will run in both Firefox and Safari for Mac. It recommends Google Chrome however, I don’t have that browser to test it with. I did sign up for Chrome updates from Google today so, I’m hoping to have a physical copy soon. The emulator runs Mario Land, Tetris, Dr. Mario, Bomberman, Kirby’s Dream Land, Space Invaders, Motocross Maniacs, Bomb Jack, Bubble Ghost, Boxxle 2, Drop Zone, Castelian, Serpent, and Centipede. In Firefox I got an average of 22 frames per second, with a max of 23 FPS. With Safari I was able to get a whopping 59 FPS on average, with a max of 60 FPS. This is great for those of you who don’t want to install anything on your computer or are trying to kill time at work. As I become more aware of Java based emulators I will test them out and report back here at Mac Emulators. To play with this emulator go to the homepage. Let’s check out some of the features and the changes.


  • GLPv2 lisenced
  • Pure javascript and HTML5.
  • Works perfect with Google Chrome (even on a simple netbook). Slow with Firefox.
  • Integrated debugger (with disassembler, memory viewer, cpu registers…).
  • Almost everything is emulated, except sound.
  • Supports scanline effects, sprite priority, palettes, accurate timing…
  • Changes:
  • Now the framerate is limited by setInterval (one frame is painted every 17ms).
  • Input bug solved. Auto-repeated keys caused emulation to freeze.
  • DAA instruction (stolen from VisualBoyAdvance).
  • CPU emulation: using “macros” for similar instructions. This makes faster code (and easier to maintain).
  • Window display over background (seems to work in ‘Space Invaders’ or ‘Bubble Ghost’ intros).
  • Renaming functions and variables to keep a “Programming Style”.
  • HALT instruction (the weird-IME-off behavior is not emulated).
  • Added a Caller Stack, this makes debugging a lot easier.
  • Rewrited the whole LCD controller emulation. Now it’s much more accurate (and slower) it has pallete support, X/Y flipping, transparency and sprite priority.
  • Support for Chrome/Chromium putImageData (weird!).
  • Bug corrected on reading color info from tile data.
  • Partial MBC1 emulation (ROM switch). On bank switching, copies the bank into GameBoy memory.
  • Lots of optimizations.
  • MBC1 emulation rewrited. Instead copying, just makes a reference some games do more than 1000 bank switchings per second.
  • Found a bug in CPU, now more games are playable, like “Kirby’s Dreamland”, “Bomberman” and “Mario Land”.
  • Joined all timing routines (CPU, LCD, Timer) into a single one.
  • JSGB Homepage

    Cheers and thanks to EmuHQ for posting the good news.