Skip to main content

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.

Bomberman II Castelvania II Excitebike
Super Mario Bros. The Legend of Zelda Tetris
Contra Mega Man II Bubble Bobble

Installation

The preferred installation of nes-py is from pip:

pip install nes-py

Debian

Make sure you have the clang++ compiler installed:

sudo apt-get install clang

Windows

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

Usage

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

Controls

Keyboard Key NES Joypad
W Up
A Left
S Down
D Right
O A
P B
Enter Start
Space Select

Parallelism Caveats

both the threading and multiprocessing packages are supported by nes-py with some caveats related to rendering:

  1. rendering is not supported from instances of threading.Thread
  2. rendering is supported from instances of multiprocessing.Process, but nes-py must be imported within the process that executes the render call

Development

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

Cartridge Mapper Compatibility

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

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

Disclaimer

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

"controller.cpp", "cpu.cpp", "emulator.cpp", "lib_nes_env.cpp", "main_bus.cpp", "picture_bus.cpp", "ppu.cpp"

Metadata

Release files for fragile-nes-py 10.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fragile-nes-py 10.0.1
File Size Uploaded
fragile_nes_py-10.0.1.tar.gz 41.5 kB Details

Release files / fragile_nes_py-10.0.1.tar.gz

Download URL fragile_nes_py-10.0.1.tar.gz
Size 41.5 kB
Tags Source
SHA-256 checksum
How to use checksums
fcbf9f3abedf8837c1e541a4fe0f29b5355d47635d788c4ab4d9b33c4fc10a1a
BLAKE2b-256 checksum
How to use checksums
97b978063307823d5e8bd9fdb6b31c38c84e481ee4cf8353c4e64a07f38f28e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release history Release notifications | RSS feed

This release

10.0.1 This release

1 release file

10.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page