punesemu/puNES
FreeQt-based Nintendo Entertaiment System emulator and NSF/NSF2/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)
FreeFree tier
About punesemu/puNES
puNES is a Qt-based Nintendo Entertainment System (NES) emulator and NSF/NSF2/NSFe music player. It is available for Linux, FreeBSD, OpenBSD, and Windows. The emulator supports a large number of mappers (including UNIF boards) and offers multiple rendering backends (OpenGL and Direct3D 9). Features include save states, portable mode, multilingual translations, and a command-line interface. As a work-in-progress project, it is actively developed with frequent builds provided as Linux AppImage and Windows executables.
Key Features
Qt-based graphical user interface
Cross-platform: Linux, FreeBSD, OpenBSD, Windows
Supports a wide range of NES mappers (0–564 and UNIF boards)
NSF/NSF2/NSFe music playback
Multiple rendering backends: OpenGL and Direct3D 9
Portable mode via puNES.cfg, filename suffix, or command-line option
Save state support (warning: incompatible with versions older than 0.110)
Multilingual translations (community contributed)
Command-line interface with -h for options
Work-in-progress with frequent builds
Pros & Cons
Pros
- Open source and free
- Cross-platform support including BSD systems
- Extensive mapper compatibility covering most commercial and homebrew games
- Built-in NSF music player adds extra utility
- Portable mode allows running from USB drives
- Multiple rendering backends for compatibility and performance
Cons
- Work-in-progress; may contain bugs or regressions
- Save states from versions 0.110 or earlier are not compatible
- No official macOS support mentioned
- Limited to NES/NSF emulation only (no other consoles)
Best For
Playing NES games on desktop operating systemsListening to NSF/NSF2/NSFe music filesTesting and debugging NES homebrew softwareEmulation research and development
FAQ
What is puNES?
puNES is a Qt-based emulator for the Nintendo Entertainment System (NES) and a player for NSF/NSF2/NSFe music files.
What platforms are supported?
puNES runs on Linux, FreeBSD, OpenBSD, and Windows (32-bit and 64-bit).
Is puNES free?
Yes, puNES is free and open source software licensed under GPL (COPYING file).
How do I run puNES in portable mode?
You can run it in portable mode by placing puNES.cfg in the same folder as the executable, renaming the executable with '_p' suffix, or starting it with the '--portable' command-line option.
Are save states compatible across versions?
Save states from version 0.110 or earlier are not compatible with newer versions of puNES.