Game Boy DMG-01 emulator in TypeScript.
Requires Node.js. Clone repo, install deps, and build with yarn build.
$ yarn start --help
usage: yarn start [options] /path/to/game.gb
options:
-l, --load <file> load save state from <file>
-s, --save <file> save state to <file>; if not specified falls back to the file specified in --load
-a, --audio <name> use audio device with name <name>
-h, --help display this help message
- PPU and APU are definitely not hardware-accurate, but everything seems to work well enough to produce a functional emulator
- ROM-only and MBC1/2/3/5 cartridges are supported
- Keys are bound as follows:
W= UpA= LeftS= DownD= RightL= AK= BM= StartN= SelectCtrl+.= dump memory to console
- https://rylev.github.io/DMG-01/public/book/introduction.html
- https://gbdev.io/gb-opcodes//optables/
- https://rgbds.gbdev.io/docs/v1.0.1/gbz80.7#LD_HL,SP+e8
- https://gbdev.io/pandocs/Specifications.html
- https://github.com/robert/gamebert/tree/master
- https://blog.tigris.fr/2019/07/09/writing-an-emulator-the-first-steps/