Skip to main content

An NES Emulator and OpenAI Gym interface

Project description

build-status PackageVersion PythonVersion Stable Format License

nes-py is an NES emulator and OpenAI Gym interface for MacOS, Linux, and Windows based on the SimpleNES emulator.


The preferred installation of nes-py is from pip:

pip install nes-py


Make sure you have the clang++ compiler installed:

sudo apt-get install clang


You'll need to install the Visual-Studio 17.0 tools for Windows installation. The Visual Studio Community package provides these tools for free.


To access the NES emulator from the command line use the following command.

nes_py -r <path_to_rom>

To print out documentation for the command line interface execute:

nes_py -h


Keyboard Key NES Joypad
W Up
A Left
S Down
D Right
Enter Start
Space Select
Keyboard Key Emu Function
E Backup State
R Restore State


To design a custom environment using nes-py, introduce new features, or fix a bug, please refer to the Wiki. There you will find instructions for:

  • setting up the development environment
  • designing environments based on the NESEnv class
  • reference material for the NESEnv API
  • documentation for the nes_py.wrappers module


nes-py implements several common mappers, which should be enough for a good percentage of the games:

  1. NROM
  2. MMC1 / SxROM
  3. UxROM
  4. CNROM

You can check the compatibility for each ROM in the following list


This project is provided for educational purposes only. It is not affiliated with and has not been approved by Nintendo.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for nes-py, version 8.1.1
Filename, size File type Python version Upload date Hashes
Filename, size nes_py-8.1.1-cp37-cp37m-macosx_10_14_x86_64.whl (53.7 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size nes_py-8.1.1.tar.gz (74.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page