Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alt-romes/gameboyemulator

simple gameboy emulator
https://github.com/alt-romes/gameboyemulator

Last synced: 3 months ago
JSON representation

simple gameboy emulator

Awesome Lists containing this project

README

        

## Simple Gameboy Emulator in C

This emulator is capable of running `tetris`, and other MBC1 games with multiple ROM banks and RAM banks, like `prince of persia`.

The emulator passes all `cpu_instr` blarggs tests, and passes all MBC1 `mooneye-gb rom ram and bit` tests

It's made completely in C. Most parts are fine except for the `memory.c` which due to lack of understanding when starting out has duplicate address spaces for some parts and mimics the Nintendo console in a way that could be much simpler and much more intuitive.

## Building

* Clone the repository
* Install `glfw` with `brew install glfw` and `glew` with `brew install glew`
* `mkdir obj`
* Compile with `make`

## Running

To specify a ROM, run i.e. `./emulator -r prince-of-persia.gb`. By default `./emulator` will search for a file named `tetris-jp.gb`

## Controls

The gameboy has 8 buttons:

Control | Key
--------|-------
Left | A
Up | W
Down | S
Right | D
Button A | J
Button B | K
Start | N
Select | M

## Screenshots

![cpu_instr](https://github.com/alt-romes/gameboyemulator/blob/master/screenshots/cpu_instr.png?raw=true)

![tetris opening screen](https://github.com/alt-romes/gameboyemulator/blob/master/screenshots/tetris_1.png?raw=true)

![tetris mid game](https://github.com/alt-romes/gameboyemulator/blob/master/screenshots/tetris_2.png?raw=true)

![tetris game over](https://github.com/alt-romes/gameboyemulator/blob/master/screenshots/tetris_3.png?raw=true)

![prince of persia](https://github.com/alt-romes/gameboyemulator/blob/master/screenshots/prince_of_persia_1.png?raw=true)