Ecosyste.ms: Awesome

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

https://github.com/colby-swandale/waterfoul

Gameboy emulator written in Ruby-lang
https://github.com/colby-swandale/waterfoul

emulator gameboy ruby

Last synced: 3 months ago
JSON representation

Gameboy emulator written in Ruby-lang

Lists

README

        

# Waterfoul
Waterfoul is a Gameboy emulator written in Ruby-lang. It is a casual excersize by myself to learn the internals
of the device and how it works.

## Getting Started
To start the emulator:

`bundle exec exe/waterfoul start `

Make sure to `bundle install` first and install required libraries.

By default the emulator will run the boot rom, if you wish to skip it then add `--skip-boot` as an option.

## Try turning on the --jit and --enable-frozen-string-literal to get max fps
`RUBYOPT="--enable-frozen-string-literal --jit --jit-max-cache=100000 --jit-min-calls=3" bundle exec exe/waterfoul start `

## Requirements
The [sdl2](https://www.libsdl.org/download-2.0.php) library is currenty used to render pixels. Most platforms have packages avaliable, else see [here](https://wiki.libsdl.org/Installation). This library is required and needs to be installed before you can run the emulator.

## Can it play roms?
Yes! but the list of roms that i know work is very limited to just Tetris, Super Mario Land and Pokemon Red. But a lot of work is being put into making other games compatable. The device does run the internal boot program succesfully and is passing test programs sucesfully (barggs).

## Controls
The following shows the mapped keys to control the game.
![gameboy key mapping](https://raw.githubusercontent.com/colby-swandale/waterfoul/master/documentation/keymap.png)

## Testing
If you wish to run the test suite, download the source code (make sure to run `bundle install`) and run `bundle exec rspec`