~/talk

From 3 to 300 fps: NES Emulation in Python and Cython

Talkat PyCon US 2021 · 2021-05-14..05-15· [python]
links:none on file
slides:none on file

A working Python NES emulator starts at about two to three frames per second and after porting hot inner loops to Cython with a few native type annotations it jumps above 300fps, proving Python plus Cython yields native speed without rewriting everything. The build includes CPU, PPU, audio and cartridge logic, it runs headless and playable though absurdly fast, and Cython introduces compilation, platform wheels, possible unsafe pointers and GC leaks to watch for.

AI-written summary · about

  1. 0:00Intro
  2. 0:26What's in this Talk
  3. 1:10What is Emulation?
  4. 2:53Why Emulate?
  5. 5:35Why Emulate in Python?
  6. 7:22V1: a NES in Python
  7. 12:07V1: it boots! But...
  8. 13:35Making it faster
  9. 16:28Cython and Optimization Fits with Optimization Principle
  10. 18:45V2: 100x faster!
  11. 19:46Challenges & Hazards
  12. 22:08Lessons For My Day Job
  13. 24:00The End
~/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.