~/talk

Emulating With JavaScript

Talkat JSConf.Asia 2013 · 2013-11-28..11-29· [javascript, creative-coding]
slides:none on file

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

  1. 0:00Intro
  2. 0:26WHOAMI
  3. 0:51JAVASCRIPT TODAY
  4. 1:31CAN BUILD
  5. 1:52EMULATED
  6. 2:32IMPLEMENTATIONS
  7. 3:16WHERE TO START
  8. 3:53CHIPS IS EASY
  9. 5:08EXAMPLE SYSTEM
  10. 6:02ENTERTAINMENT SYSTEM
  11. 6:34ARCHITECTURE
  12. 9:06ARRAYS
  13. 9:56NEED GETTERS/ SETTERS
  14. 10:24FETCH/DECODE LOOP
  15. 11:19INTERRUPTS
  16. 11:56SLOW
  17. 12:14HANDLING OPCODES
  18. 13:06PROCESS ALL THE OPCODES
  19. 14:42communICATING WITH YOUR PPU
  20. 15:06COLOUR PALETTE
  21. 15:21TILES
  22. 15:53ANATOMY OF A TILE
  23. 16:09NAMETABLES
  24. 16:49PUT IT ALL TOGETHER
  25. 17:29SCRATCHING THE SURFACE
  26. 17:46FULL SCREEN API
  27. 19:23SOUND
  28. 21:44WEB AUDIO API
  29. 22:40CONTROLLER
  30. 23:15GAMEPAD API
  31. 24:46CYCLES
  32. 25:16YOUR VERY OWN EMULATOR
  33. 25:48GETTING STARTED
  34. 26:00TIPS
  35. 27:01POSSIBILITIES
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.