Skip to content

Latest commit

 

History

History
106 lines (85 loc) · 2.18 KB

README.md

File metadata and controls

106 lines (85 loc) · 2.18 KB

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