MCPcopy Index your code
hub / github.com/benkonz/gameboy_emulator

github.com/benkonz/gameboy_emulator @0.2.8.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.2.8.8 ↗ · + Follow
832 symbols 2,271 edges 43 files 6 documented · 1% updated 2mo ago0.2.8.8 · 2020-05-26★ 109
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GameBoy Emulator

crates.io Build Status Build status

This is a GameBoy emulator written in Rust. It can be compiled to native and web assembly, see the build section for more details.

Emulator supports sound, several hardware types, RTC, gameboy color emulation, sprites, and saving to browser local storage (web) and user config directories (native)

The web assembly port is currently hosted here

Screenshots

<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/pokemon_crystal.png" height=240 />
<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/super_mario.png" height=240 />






<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/tetris.png" height=240 />
<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/mario.png" height=240 />






<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/pokemon_yellow.png" height=240 />
<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/shantae.png" height=240 />






<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/zelda.png" height=240 />
<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/metroid.png" height=240 />






<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/kirby2.png" height=240 />
<img src="https://github.com/benkonz/gameboy_emulator/raw/0.2.8.8/screenshots/blaarg_tests.png" height=240 />

Installing

The native version is published to crates.io and can be installed by running:

cargo install gameboy_opengl

Then you can run it by running: gameboy_emulator from your terminal

Building from source

The project uses Cargo as a build system, so building the project is relatively simple.

Native

cargo build --package gameboy_opengl --bin gameboy_emulator --release

this produces the executable target/release/gameboy_emulator.exe

to run it, just supply the rom file as the first file argument

Web Assembly

cargo-web is very useful for building the web port of the emulator.

cargo-web deploy --release

use your favorite static file server to serve the files generated in the target/deploy directory. You can also run cargo-web start --release, to serve the files locally.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 770
Class 27
Function 26
Enum 6
Interface 3

Languages

Rust100%

Modules by API surface

gameboy_core/src/cpu/mod.rs581 symbols
gameboy_core/src/mmu/mod.rs40 symbols
gameboy_opengl_web/src/lib.rs18 symbols
gameboy_core/src/mmu/cartridge.rs17 symbols
gameboy_core/src/gpu/mod.rs15 symbols
gameboy_core/src/sound/pulse_channel.rs13 symbols
gameboy_core/src/sound/noise_channel.rs11 symbols
gameboy_core/src/sound/wave_channel.rs10 symbols
gameboy_opengl/src/lib.rs9 symbols
gameboy_core/src/lib.rs9 symbols
gameboy_core/src/emulator/mod.rs9 symbols
gameboy_core/src/cpu/registers/mod.rs9 symbols

For agents

$ claude mcp add gameboy_emulator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page