Emulating With JavaScript
summary
Emulates Chip-8 and a Nintendo Famicom (NES) in JavaScript, actually implementing the CPU fetch‑decode loop, memory mapping and PPU tile rendering so the games run in the browser. Uses typed arrays, canvas, the Web Audio API and Gamepad API, synchronizes subsystems by cycle counting, and avoids web workers for timing. Notes concrete constraints: 2 KB onboard RAM, PPU 256×240 output, about 150 instructions with multiple addressing modes, and demonstrates playable demos with working sound and gamepad input.
AI-written summary · about
chapters (35)
- 0:00Intro
- 0:26WHOAMI
- 0:51JAVASCRIPT TODAY
- 1:31CAN BUILD
- 1:52EMULATED
- 2:32IMPLEMENTATIONS
- 3:16WHERE TO START
- 3:53CHIPS IS EASY
- 5:08EXAMPLE SYSTEM
- 6:02ENTERTAINMENT SYSTEM
- 6:34ARCHITECTURE
- 9:06ARRAYS
- 9:56NEED GETTERS/ SETTERS
- 10:24FETCH/DECODE LOOP
- 11:19INTERRUPTS
- 11:56SLOW
- 12:14HANDLING OPCODES
- 13:06PROCESS ALL THE OPCODES
- 14:42communICATING WITH YOUR PPU
- 15:06COLOUR PALETTE
- 15:21TILES
- 15:53ANATOMY OF A TILE
- 16:09NAMETABLES
- 16:49PUT IT ALL TOGETHER
- 17:29SCRATCHING THE SURFACE
- 17:46FULL SCREEN API
- 19:23SOUND
- 21:44WEB AUDIO API
- 22:40CONTROLLER
- 23:15GAMEPAD API
- 24:46CYCLES
- 25:16YOUR VERY OWN EMULATOR
- 25:48GETTING STARTED
- 26:00TIPS
- 27:01POSSIBILITIES
related talks
32mMaking an Emulator in JavaScript?
46mEmulating the NES/Famicom/Dendy with Web Technologies
27mWriting an emulator in JavaScript?
18mEmulating the Nintendo Game Boy CPU with Elm
45mEmulating a 6502 System in JavaScript
30mControlling the NES with Javascript
30mHacking your Nintendo with JavaScript.
10mState of Retro Gaming in Emacs
