Overview
NES emulator that runs inside Pi. Uses a Rust emulation core compiled as a native Node.js addon. High-resolution rendering via Kitty's image protocol and optional CRT filters.
Largely built in one Pi session (view it here).
Features
- Native Rust core – accurate NES emulation using the
nes_rustcrate - Kitty graphics – crisp pixel rendering via shared memory or file transport
- ANSI fallback – works in any terminal with half-block characters
- Detachable sessions – pause your game, code, then resume with
/nes - Battery saves – SRAM persistence for games that support it
Installation
pi install npm:@tmustier/pi-nes
Usage
/nes # Pick a ROM from your library
/nes ~/roms/smb.nes # Load a specific ROM
/nes config # Configure ROM directory and quality
Controls
| Action | Keys |
|---|---|
| D-pad | Arrow keys or WASD |
| A / B | Z / X |
| Start | Enter or Space |
| Select | Tab |
| Detach | Ctrl+Q |
| Quit | Q |
Why?
Because I can. And because I wanted to see if I could get smooth NES emulation running inside a terminal-based coding agent.