Live·typescript · rust

pi-nes

NES emulator for Pi. Play classic Nintendo games in your terminal with Kitty graphics support.


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_rust crate
  • 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

ActionKeys
D-padArrow keys or WASD
A / BZ / X
StartEnter or Space
SelectTab
DetachCtrl+Q
QuitQ

Why?

Because I can. And because I wanted to see if I could get smooth NES emulation running inside a terminal-based coding agent.