https://github.com/kautenja/nes-py
A Python3 NES emulator and OpenAI Gym interface
https://github.com/kautenja/nes-py
nes-emulator nintendo-nes openai-gym
Last synced: 6 months ago
JSON representation
A Python3 NES emulator and OpenAI Gym interface
- Host: GitHub
- URL: https://github.com/kautenja/nes-py
- Owner: Kautenja
- License: mit
- Created: 2018-07-17T04:26:27.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-11-09T19:05:10.000Z (almost 2 years ago)
- Last Synced: 2024-10-17T18:35:46.479Z (12 months ago)
- Topics: nes-emulator, nintendo-nes, openai-gym
- Language: C++
- Homepage:
- Size: 1.57 MB
- Stars: 236
- Watchers: 7
- Forks: 63
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
[![build-status][]][ci-server]
[![PackageVersion][pypi-version]][pypi-home]
[![PythonVersion][python-version]][python-home]
[![Stable][pypi-status]][pypi-home]
[![Format][pypi-format]][pypi-home]
[![License][pypi-license]](LICENSE)[build-status]: https://app.travis-ci.com/Kautenja/nes-py.svg?branch=master
[ci-server]: https://app.travis-ci.com/Kautenja/nes-py
[pypi-version]: https://badge.fury.io/py/nes-py.svg
[pypi-license]: https://img.shields.io/pypi/l/nes-py.svg
[pypi-status]: https://img.shields.io/pypi/status/nes-py.svg
[pypi-format]: https://img.shields.io/pypi/format/nes-py.svg
[pypi-home]: https://badge.fury.io/py/nes-py
[python-version]: https://img.shields.io/pypi/pyversions/nes-py.svg
[python-home]: https://python.orgnes-py is an NES emulator and OpenAI Gym interface for MacOS, Linux, and
Windows based on the [SimpleNES](https://github.com/amhndu/SimpleNES) emulator.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
# Installation
The preferred installation of `nes-py` is from `pip`:
```shell
pip install nes-py
```## Debian
Make sure you have the `clang++` compiler installed:
```shell
sudo apt-get install clang
```## Windows
You'll need to install the Visual-Studio 17.0 tools for Windows installation.
The [Visual Studio Community](https://visualstudio.microsoft.com/downloads/)
package provides these tools for free.# Usage
To access the NES emulator from the command line use the following command.
```shell
nes_py -r
```To print out documentation for the command line interface execute:
```shell
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](https://github.com/Kautenja/nes-py/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
0. NROM
1. MMC1 / SxROM
2. UxROM
3. CNROMYou can check the compatibility for each ROM in the following
[list](https://github.com/Kautenja/nes-py/blob/master/nesmapper.txt)# Disclaimer
**This project is provided for educational purposes only. It is not
affiliated with and has not been approved by Nintendo.**