Skip to main content

An NES Emulator and OpenAI Gym interface

Project description

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.

Project details


Download files

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

Source Distribution

nes_emulator_py-9.0.0.tar.gz (34.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nes_emulator_py-9.0.0-cp312-cp312-win_amd64.whl (75.8 kB view details)

Uploaded CPython 3.12Windows x86-64

nes_emulator_py-9.0.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

nes_emulator_py-9.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (547.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

nes_emulator_py-9.0.0-cp312-cp312-macosx_11_0_arm64.whl (83.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

nes_emulator_py-9.0.0-cp312-cp312-macosx_10_13_x86_64.whl (84.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

nes_emulator_py-9.0.0-cp311-cp311-win_amd64.whl (75.8 kB view details)

Uploaded CPython 3.11Windows x86-64

nes_emulator_py-9.0.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

nes_emulator_py-9.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (547.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

nes_emulator_py-9.0.0-cp311-cp311-macosx_11_0_arm64.whl (83.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

nes_emulator_py-9.0.0-cp311-cp311-macosx_10_9_x86_64.whl (84.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file nes_emulator_py-9.0.0.tar.gz.

File metadata

  • Download URL: nes_emulator_py-9.0.0.tar.gz
  • Upload date:
  • Size: 34.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for nes_emulator_py-9.0.0.tar.gz
Algorithm Hash digest
SHA256 3fe5de4ca71d23e5fee9822246c0e5672d5e1dd10a98b653ae48d309e943d11c
MD5 525b105fcdff31c74837d82ce079c3eb
BLAKE2b-256 c1646b3b05ef15cead08c6b2eaf8e8fc981a8b9f7ccb75da50e314b2c5b32380

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 679b51b457affa3bc083df02537c8aa4bb432ee62c546400a156f5114db89a9e
MD5 5f87dd59b956e36346a1d0ecd6ff60e7
BLAKE2b-256 afa882a2f58db0da7dac73f4606f954f272bea2731abf44105a9293912db05aa

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4757710f2b84fd5631b54101bb15d5f122e4cc6c399db924c7dd0b9e0b96a9a0
MD5 0cc99733ed52706f761226d25ed1d709
BLAKE2b-256 e9e950c8d52c05cf8021fe4f7eef51f0ea84c5d8f08bff1ce42e9d35c0b93ab7

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1de4553cc2189d429caf13cb10ca85ea7a55f135672948a8bbf77877bde79d1f
MD5 3b2dcef2a99467f14443787951df9bdc
BLAKE2b-256 a31052dff6c4e943da652df856cc9c739c6b35995ebbfc11743eb0854d644268

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11a317acb5b534d2d0b219adea1dee8d5a09339f85c554d4f798e66d3f3fa15f
MD5 0d67c4c4f1cd42238c31395a6b422ed4
BLAKE2b-256 2b1e14b338c1d3dd023ec6139390b0d2ecedcd5bf1ce1d4afe17b1b61ef0f181

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 176d35875acfe99d101ca9233fc28c58259d04df6b87434308fce86afd21eef4
MD5 ddde610b6c3286438de53ff548ee33b6
BLAKE2b-256 e82bca596bd5de698bd55ee73707c7aa04fef6256197f5ff123621a89e734635

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5e1f8b721c98618c922b6bdda70a34a93550abb4db27929b0945f6f497c1b73b
MD5 57d32c860758be439e589a2883e5e036
BLAKE2b-256 fd6e06f75d52af9b84b6f030dbe94ddd9f61f1e3018011fb9e98fbb6668f0082

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4456eefd040e566b2c949698cbdd82ade349bbc5734470602cdca454752460bd
MD5 cca1030ae27a08b265e362ff90a61c16
BLAKE2b-256 a48cf7a2986fc53a6554cd9df7616e2dab67a51635a3bba1a2e5fdf1ab1f87da

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 79beaef33ff99a2ae15c34d8e5cce22d1aa5feb80485be591f88927a8c7306e4
MD5 10c59fb3359cd5cfe50252661c07aee1
BLAKE2b-256 4e590cc03a2f8c105f3ba435549e0c77f75abf5de6e7c5134b23674699b0ae73

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6461044c457e16f89f6836550fee956f4e72cdc9dee49f39ec2d9439a194ecd
MD5 e46b390817259a74ae9cc276b51583b1
BLAKE2b-256 705261ef7f12067464ce0a3a266e03090b37af5d03c95910a4169183d2261e83

See more details on using hashes here.

File details

Details for the file nes_emulator_py-9.0.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for nes_emulator_py-9.0.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dfebb1dbbacbcc46c175b747aeed3370f2b238014c375400a9128854ea9ae037
MD5 ac11416b9d9ade1c49a6f488d296b5a7
BLAKE2b-256 a3f23c64e0a75f69dd8401351025577da6c985861f53968c5e50c2ddb982b32a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page