This is a simple and rudimentary web based Chip8 emulator written in Typescript, for educational porpuoses.
Roms can be loaded or dragged on the web page. Keys mapping is shown on the web page.
The emulator runs on average at 60fps (so 60 Hz) and executes 5 instructions per frame. Getting Chip8 CPU right clock is tricky, as there is no specification on a precise value, and different games will run better at different clock speeds. All the tests from Timendus test suite are ok.
Install dependencies:
git clone https://github.com/Comba92/chip8-emu.git
npm i
Build and run:
npm run build
npm run preview
Various resources I used.
- Memory and Registers real-time dump
- Roms list picker
- Dynamically change CPU clock
- Settable keys
- Better page visuals