Skip to content

TS-DEV-DEBUG-V2/rustyboy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Game Boy DMG Emulator written in PURE Rust

This is a rewrite of my gb-emu that was writen in C++

Rust Windows Emscripten License


GitHub repo size GitHub code size GitHub stars GitHub forks GitHub watchers GitHub issues GitHub closed issues GitHub pull requests GitHub closed PRs GitHub last commit GitHub commit activity GitHub contributors GitHub top language GitHub language count GitHub release GitHub tag GitHub created at GitHub discussions GitHub license GitHub Actions Workflow Status GitHub deployments GitHub manifest version Rust Version WebAssembly Platform Windows Platform Web Architecture x86_64 Architecture WASM32 No Unsafe Zero Dependencies Game Boy DMG CPU PPU APU MBC1 MBC2 MBC3 MBC5 ROM Only Resolution Sprite Limit Timer Interrupts Joypad Battery Saves PRs Welcome Made with Love


IF YOU ARE LAZY JUST PLAY IT HERE

Features

  • Accurate DMG Emulation - Sharp LR35902 CPU with full instruction set and cycle-accurate timing
  • Complete PPU - Background, window, and sprite rendering at native 160×144 resolution
  • Audio Processing Unit - All four sound channels emulated (pulse, wave, noise)
  • Memory Bank Controllers - Support for ROM Only, MBC1, MBC2, MBC3, and MBC5 cartridge types
  • Battery Saves - Persistent save RAM for supported cartridges
  • Timer & Interrupts - Accurate timer divider and interrupt handling
  • Windows Native Build - Standalone desktop executable via Cargo
  • Web Build via Emscripten - Play directly in the browser through WebAssembly

Building (NOTE: these might need more setting up on your machine)

Windows (Native)

cargo build --release

Web (Emscripten)

cargo build --release --target wasm32-unknown-emscripten

Controls

Game Boy Keyboard
D-Pad Arrow Keys
A Z
B X
Start Enter
Select Backspace

Development

Contributions are welcome - feel free to open issues or submit pull requests.

Alt


License

This project is licensed under the Apache License 2.0.