Skip to content

Latest commit

 

History

History
45 lines (38 loc) · 2.4 KB

README.md

File metadata and controls

45 lines (38 loc) · 2.4 KB

Gameboy Emulator

Introduction

This is a prototype gameboy emulator in a very early stage. Progress is slow/nonexistent. Built for education first and performance second. As such accuracy or emulating every part of the console is of no concern currently.

Graphics are done via the FNA library.

Setup Repo

  • pull this repository via git or download as zip
  • follow the steps to include FNA into the project file and copy the .dll files into the output
  • you can download the native libs here, the link in the wiki is broken

Helpful Links

Progress

This is an overview on what's been implemented and what's still left:

  • properly mapped memory
  • basic rom loading setup
  • flags and registers
  • cpu loop, instruction fetching, decoding and executing (last two are done at once)
  • basic support for interrupts
  • basic rendering pipeline (implemented, not working yet)
  • testing pipeline. a modified cpu can be injected with opcodes to test flags and registers
  • fully implement all opcodes
  • render tilemaps and sprite sheets for debugging purposes
  • use Dear ImGUI for options and other UI
  • memory bank switching
  • get through blarggs test roms
  • rendering results visible on screen (currently there's nothing visible on screen yet...)
  • make sure timings and interrupts work properly...
  • play tetris...
  • sound (out of scope for the near future)

Other things to consider

  • replace fixed setting of cycles with dynamically setting it (accessing memory takes 1 cycle per byte, pushing/popping from SP takes 1 cycle per byte, fetching takes 1 byte per fetch)