All Projects → krocki → Gb

krocki / Gb

Licence: apache-2.0
A minimal C implementation of Nintendo Gameboy - An fast research environment for Reinforcement Learning

Projects that are alternatives of or similar to Gb

Giovanni
A Gameboy Emulator for the Apple Watch
Stars: ✭ 823 (+475.52%)
Mutual labels:  gameboy, emulator
Vba M Nx
WIP full featured port of VBA-M for Nintendo Switch
Stars: ✭ 11 (-92.31%)
Mutual labels:  gameboy, emulator
Gameboy
Full featured Cross-platform GameBoy emulator by Rust. Forever boys!.
Stars: ✭ 893 (+524.48%)
Mutual labels:  gameboy, emulator
Mooneye Gb
A Game Boy research project and emulator written in Rust
Stars: ✭ 557 (+289.51%)
Mutual labels:  gameboy, emulator
Cryboy
A Game Boy (Color) emulator written in Crystal
Stars: ✭ 68 (-52.45%)
Mutual labels:  gameboy, emulator
Lc3 Vm
Write your own virtual machine for the LC-3 computer!
Stars: ✭ 631 (+341.26%)
Mutual labels:  makefile, emulator
Rustboy
A game boy emulator in rust
Stars: ✭ 8 (-94.41%)
Mutual labels:  gameboy, emulator
Coreboy
A GameBoy Emulator, in C#
Stars: ✭ 397 (+177.62%)
Mutual labels:  gameboy, emulator
Projectdmg
C# GameBoy Emulator
Stars: ✭ 57 (-60.14%)
Mutual labels:  gameboy, emulator
Wasmboy
Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀Demos built with Preact and Svelte. ⚛️
Stars: ✭ 963 (+573.43%)
Mutual labels:  gameboy, emulator
Gearboy
Game Boy / Gameboy Color emulator for iOS, macOS, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 528 (+269.23%)
Mutual labels:  gameboy, emulator
Retrograde Android
Play retro video games on your Android TV!
Stars: ✭ 114 (-20.28%)
Mutual labels:  gameboy, emulator
Provenance
iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems… Get Started: https://wiki.provenance-emu.com |
Stars: ✭ 4,732 (+3209.09%)
Mutual labels:  gameboy, emulator
Sameboy
Game Boy and Game Boy Color emulator written in C
Stars: ✭ 732 (+411.89%)
Mutual labels:  gameboy, emulator
Gameboy.live
🕹️ A basic gameboy emulator with terminal "Cloud Gaming" support
Stars: ✭ 4,263 (+2881.12%)
Mutual labels:  gameboy, emulator
Gameboy
🎮 Game Boy emulator written in Rust
Stars: ✭ 17 (-88.11%)
Mutual labels:  gameboy, emulator
Elmboy
A Nintendo™ Game Boy™ Emulator written in Elm.
Stars: ✭ 285 (+99.3%)
Mutual labels:  gameboy, emulator
Pyboy
Game Boy emulator written in Python
Stars: ✭ 3,326 (+2225.87%)
Mutual labels:  gameboy, emulator
Coffee Gb
Gameboy emulator in Java 8.
Stars: ✭ 953 (+566.43%)
Mutual labels:  gameboy, emulator
Retro Go
Retro emulation for the ODROID-GO
Stars: ✭ 73 (-48.95%)
Mutual labels:  gameboy, emulator

Nintendo Learning Environment

DOI

Quick start

  1. Build C lib make gameboy.so
  2. Run the front end from python: python gameboy.py --rom {PATH_TO_ROM}

C dependencies

None

Python dependencies

Numpy, CFFI

Fix for 'gameboy.so' not found:

export LD_LIBRARY_PATH=.

Usage

Use the provided python wrapper. Example:

  • Run the environment for 0.5M steps
  • Produce a 50 frame-long gif every 30s
python gameboy.py --rom ./gb_roms/Micro_Machines_\(USA\,_Europe\).gb --framelimit=500000 --write_gif_every 30 --write_gif_duration 50

Output:

time: 00h 00m 30s, frames 0.06M
time: 00h 01m 00s, frames 0.12M
time: 00h 01m 30s, frames 0.18M
time: 00h 02m 00s, frames 0.24M
time: 00h 02m 30s, frames 0.30M
time: 00h 03m 00s, frames 0.36M
time: 00h 03m 30s, frames 0.42M
time: 00h 04m 00s, frames 0.48M

GIFS generated every 30s:

alt_text alt_text alt_text alt_text alt_text

Generate lots of frames and save them to gif and npy files:

python make_gifs.py --rom {PATH_TO_ROM}

For example, running the command python make_gifs.py --rom ./wario_walking.gb will result in a file like this: alt_text

Alternatively, build a standalone gameboy with GLFW support and play games manually

To build:

make

To play:

./gameboy {PATH_TO_ROM}
enter - START
space - SELECT
Z     - A
X     - B
+ arrows (left, right, down, up)
SHIFT - turbo mode
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].