Coffee GB is a Gameboy Color emulator written in Java 8. It's meant to be a development exercise. More info can be found in the blog post Why did I spend 1.5 months creating a Gameboy emulator?
The emulator can be build with Maven:
mvn clean package
The jar file will be available in the
Usage: java -jar coffee-gb.jar [OPTIONS] ROM_FILE Available options: -d --force-dmg Emulate classic GB (DMG) for universal ROMs -c --force-cgb Emulate color GB (CGB) for all ROMs -b --use-bootstrap Start with the GB bootstrap -db --disable-battery-saves Disable battery saves --debug Enable debug console --headless Start in the headless mode
Play with ←, ↑, ↓, →, Z, X, Enter, Backspace.
The Blargg's test ROMs are used for testing the compatibility. Tests can be launched from Maven using appropriate profile:
mvn clean test -Ptest-blargg mvn clean test -Ptest-blargg-individual # for running "single" tests providing more diagnostic info
They are also part of the Travis-based CI.
The tests output (normally displayed on the Gameboy screen) is redirected to the stdout:
cpu_instrs 01:ok 02:ok 03:ok 04:ok 05:ok 06:ok 07:ok 08:ok 09:ok 10:ok 11:ok Passed all tests
Coffee GB passes all the tests:
The Mooneye GB emulator comes with a great set of test ROMs. They can be used to test the Coffee GB as well. Use -Ptest-mooneye profile:
mvn clean test -Ptest-mooneye
The default key bindings can be changed with the
~/.coffeegb.properties file. The file has following format:
btn_up=VK_UP btn_down=VK_DOWN btn_left=VK_LEFT btn_right=VK_RIGHT btn_a=VK_Z btn_b=VK_X btn_start=VK_ENTER btn_select=VK_BACK_SPACE
The key list can be found in the KeyEvent JavaDoc.