Skip to main content

build-status PackageVersion PythonVersion Stable Format License

nes-emulator-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-emulator-py is from pip:

pip install nes-emulator-py

Requirements

  • Python 3.11 or 3.12
  • Supported platforms: Linux, Windows, macOS (including Apple Silicon)

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-emulator-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-emulator-py must be imported within the process that executes the render call

Development

To design a custom environment using nes-emulator-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.

Metadata

Release files for nes-emulator-py 9.0.0

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

Source distribution (sdist)

Source distribution for nes-emulator-py 9.0.0
File Size Uploaded
nes_emulator_py-9.0.0.tar.gz 34.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for nes-emulator-py 9.0.0
File
nes_emulator_py-9.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
nes_emulator_py-9.0.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
nes_emulator_py-9.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
nes_emulator_py-9.0.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
nes_emulator_py-9.0.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
nes_emulator_py-9.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
nes_emulator_py-9.0.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
nes_emulator_py-9.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
nes_emulator_py-9.0.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
nes_emulator_py-9.0.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details

Total release size: 4.7 MB

Release files / nes_emulator_py-9.0.0.tar.gz

Download URL nes_emulator_py-9.0.0.tar.gz
Size 34.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3fe5de4ca71d23e5fee9822246c0e5672d5e1dd10a98b653ae48d309e943d11c
BLAKE2b-256 checksum
How to use checksums
c1646b3b05ef15cead08c6b2eaf8e8fc981a8b9f7ccb75da50e314b2c5b32380
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp312-cp312-win_amd64.whl

Download URL nes_emulator_py-9.0.0-cp312-cp312-win_amd64.whl
Size 75.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
679b51b457affa3bc083df02537c8aa4bb432ee62c546400a156f5114db89a9e
BLAKE2b-256 checksum
How to use checksums
afa882a2f58db0da7dac73f4606f954f272bea2731abf44105a9293912db05aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL nes_emulator_py-9.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4757710f2b84fd5631b54101bb15d5f122e4cc6c399db924c7dd0b9e0b96a9a0
BLAKE2b-256 checksum
How to use checksums
e9e950c8d52c05cf8021fe4f7eef51f0ea84c5d8f08bff1ce42e9d35c0b93ab7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nes_emulator_py-9.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 547.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1de4553cc2189d429caf13cb10ca85ea7a55f135672948a8bbf77877bde79d1f
BLAKE2b-256 checksum
How to use checksums
a31052dff6c4e943da652df856cc9c739c6b35995ebbfc11743eb0854d644268
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL nes_emulator_py-9.0.0-cp312-cp312-macosx_11_0_arm64.whl
Size 83.2 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
11a317acb5b534d2d0b219adea1dee8d5a09339f85c554d4f798e66d3f3fa15f
BLAKE2b-256 checksum
How to use checksums
2b1e14b338c1d3dd023ec6139390b0d2ecedcd5bf1ce1d4afe17b1b61ef0f181
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL nes_emulator_py-9.0.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 84.6 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
176d35875acfe99d101ca9233fc28c58259d04df6b87434308fce86afd21eef4
BLAKE2b-256 checksum
How to use checksums
e82bca596bd5de698bd55ee73707c7aa04fef6256197f5ff123621a89e734635
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp311-cp311-win_amd64.whl

Download URL nes_emulator_py-9.0.0-cp311-cp311-win_amd64.whl
Size 75.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5e1f8b721c98618c922b6bdda70a34a93550abb4db27929b0945f6f497c1b73b
BLAKE2b-256 checksum
How to use checksums
fd6e06f75d52af9b84b6f030dbe94ddd9f61f1e3018011fb9e98fbb6668f0082
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL nes_emulator_py-9.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.5 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4456eefd040e566b2c949698cbdd82ade349bbc5734470602cdca454752460bd
BLAKE2b-256 checksum
How to use checksums
a48cf7a2986fc53a6554cd9df7616e2dab67a51635a3bba1a2e5fdf1ab1f87da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nes_emulator_py-9.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 547.4 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
79beaef33ff99a2ae15c34d8e5cce22d1aa5feb80485be591f88927a8c7306e4
BLAKE2b-256 checksum
How to use checksums
4e590cc03a2f8c105f3ba435549e0c77f75abf5de6e7c5134b23674699b0ae73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL nes_emulator_py-9.0.0-cp311-cp311-macosx_11_0_arm64.whl
Size 83.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e6461044c457e16f89f6836550fee956f4e72cdc9dee49f39ec2d9439a194ecd
BLAKE2b-256 checksum
How to use checksums
705261ef7f12067464ce0a3a266e03090b37af5d03c95910a4169183d2261e83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / nes_emulator_py-9.0.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL nes_emulator_py-9.0.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 84.7 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
dfebb1dbbacbcc46c175b747aeed3370f2b238014c375400a9128854ea9ae037
BLAKE2b-256 checksum
How to use checksums
a3f23c64e0a75f69dd8401351025577da6c985861f53968c5e50c2ddb982b32a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

9.0.0 This release

11 release files

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