Skip to content

DuoSRX/yeeboy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yeeboy

Yet another Game Boy emulator.

Essentially a rewrite in Rust of my other Game Boy emulator written in ReasonML.

Screen Shot 2020-09-09 at 4 29 24 PM

Usage (native)

$ cd frontend/yeeboy-sdl2
$ cargo run --release -- path/to/rom-file

Optionally provide --trace to have the emulator spew out every instruction while it's running. Keep in mind that it has a negative impact on performance, depending on your terminal of choice.

Usage (WASM)

$ cd frontend/yeeboy-wasm
$ wasm-pack build
$ cd www
$ npm run start

The emulator will be available at http://localhost:8080

Controls (not configurable yet)

Keyboard GameBoy
X A
B Z
Left Shift Select
Space Start
Up arrow Up
Down arrow Down
Left arrow Left
Right arrow Right
Escape Quit

TODO

  • Basic architecture and organization
  • CPU Instructions
    • CB Instructions
    • Still missing a few obscure instructions (check opcodes.rs)
  • Timers
  • Interrupts
  • GPU
    • Backgrounds
    • Sprites
    • Windows
      • Needs more testing
  • Cartridges
    • ROM
    • Headers
    • MBC1 (WIP)
    • MBC3
  • Frontends
    • SDL2
    • WASM
  • Controllers
  • CLI flags
  • Timing is off (need to add a frame limiter)
  • Audio
  • Save
  • Logger
  • Debugger
  • GPU Debugging windows
    • OAM Viewer
    • Tile map
    • Background map
    • Palettes
  • Config file
  • Automated testing

Blaargs tests:

  • 01-special
  • 02-interrupts
  • 03-op_sp_hl
  • 04-op_r_imm
  • 05-op_rp
  • 06-ld_r_r
  • 07-jr_jp_call_ret_rst
  • 08-misc_instrs
  • 09-op_r_r
  • 10-bit_ops
  • 11-op_a_hl

Playable games

  • Dr Mario
  • Tetris
  • Super Mario Land

Games that boot but are glitchy/unplayble

  • Pokemon Red

Games that won't even start or black screen

Any game that isn't RomOnly, MBC1 or MBC3

About

Game boy emulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published