Skip to content

A gameboy emulator written in Java, using libGDX and TuningFork as the render and sound engine, respectively.

License

Notifications You must be signed in to change notification settings

Hangman/Anemulator

Repository files navigation

Anemulator

License: GPL v3
A Game Boy emulator written in Java.
Render engine: libGDX
Sound engine: TuningFork
Screenshot

Motivation

The Rust programming language is kinda sexy, isn't it? The problem is, I can't speak nor write it. To change that and make learning a new language not quite so boring, I wrote this emulator as a base for a port. The plan is to rewrite Anemulator in Rust, hopefully learning the language in the process.

Particularities

Due to the special reason for Anemulator's existence (see Motivation), the code has a few oddities:

  • I put little emphasis on accuracy
  • There is a lot of duplicate code, e.g. in the implementation of the CPU instructions, to have a good documentation base
  • I didn't implement hardware I didn't feel like reproducing: serial port, cycle accurate DMA transfer, some MBCs
  • Renders the TileMap and BG-Map next to the Game Boy screen
  • No GUI support for loading ROMs
  • GPU/PPU renders a full scanline per tick

Test results

Taking into account that I didn't really care too much about hardware accuracy, most games run surprisingly well.
On the other side... most Test Roms fail. A few games I've tested:

ROM Result
Dr. Mario
Tetris
Kirby's Dream Land
Super Mario Land
Donkey Kong Land
Pinball Deluxe
F-1 Race
Alleyway
Bionic Battler
Batman - The Video Game
Boxxle II
Mega Man - Dr. Wily's Revenge
Super Mario Land 2 - 6 Golden Coins
Pokemon - Blue Edition
Super Mario Land 4
Legend of Zelda, The - Link's Awakening
Jurassic Park
Legend of Zelda, The - Link's Awakening DX

About

A gameboy emulator written in Java, using libGDX and TuningFork as the render and sound engine, respectively.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published