<p align="center">
<img
src="https://user-images.githubusercontent.com/2184469/42918029-a8364c66-8ad1-11e8-8147-2653091ccd38.png"
width="50%"
/>
</p>
[![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.org
nes-py is an NES emulator and OpenAI Gym interface for MacOS, Linux, and
Windows based on the [SimpleNES](https://github.com/amhndu/SimpleNES) emulator.
<table align="center">
<tr>
<td>
<img
width="256"
alt="Bomberman II"
src="https://user-images.githubusercontent.com/2184469/84821320-8c52e780-afe0-11ea-820a-662d0e54fc90.png"
/>
</td>
<td>
<img
width="256"
alt="Castelvania II"
src="https://user-images.githubusercontent.com/2184469/84821323-8ceb7e00-afe0-11ea-89f1-56d379ae4286.png"
/>
</td>
<td>
<img
width="256"
alt="Excitebike"
src="https://user-images.githubusercontent.com/2184469/84821325-8d841480-afe0-11ea-9ae2-599b83af6f65.png"
/>
</td>
</tr>
<tr>
<td>
<img
width="256"
alt="Super Mario Bros."
src="https://user-images.githubusercontent.com/2184469/84821327-8d841480-afe0-11ea-8172-d564aca35b5e.png"
/>
</td>
<td>
<img
width="256"
alt="The Legend of Zelda"
src="https://user-images.githubusercontent.com/2184469/84821329-8d841480-afe0-11ea-9a57-c9daca04ed3b.png"
/>
</td>
<td>
<img
width="256"
alt="Tetris"
src="https://user-images.githubusercontent.com/2184469/84822244-fc15a200-afe1-11ea-81de-2323845d7537.png"
/>
</td>
</tr>
<tr>
<td>
<img
width="256"
alt="Contra"
src="https://user-images.githubusercontent.com/2184469/84822247-fcae3880-afe1-11ea-901d-1ef5e8378989.png"
/>
</td>
<td>
<img
width="256"
alt="Mega Man II"
src="https://user-images.githubusercontent.com/2184469/84822249-fcae3880-afe1-11ea-8271-9e898933e571.png"
/>
</td>
<td>
<img
width="256"
alt="Bubble Bobble"
src="https://user-images.githubusercontent.com/2184469/84822551-79411700-afe2-11ea-9ed6-947d78f29e8f.png"
/>
</td>
</tr>
</table>
# 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 <path_to_rom>
```
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. CNROM
You 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.**
Raw data
{
"_id": null,
"home_page": "https://github.com/Kautenja/nes-py",
"name": "nes-py",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "NES Emulator OpenAI-Gym",
"author": "Christian Kauten",
"author_email": "kautencreations@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/04/6b/51c9efe4fc67a9311b1125a19ec7a6176c8f0b8334e418d7f5bc53aeec56/nes_py-8.2.1.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n<img\n src=\"https://user-images.githubusercontent.com/2184469/42918029-a8364c66-8ad1-11e8-8147-2653091ccd38.png\"\n width=\"50%\"\n/>\n</p>\n\n[![build-status][]][ci-server]\n[![PackageVersion][pypi-version]][pypi-home]\n[![PythonVersion][python-version]][python-home]\n[![Stable][pypi-status]][pypi-home]\n[![Format][pypi-format]][pypi-home]\n[![License][pypi-license]](LICENSE)\n\n[build-status]: https://app.travis-ci.com/Kautenja/nes-py.svg?branch=master\n[ci-server]: https://app.travis-ci.com/Kautenja/nes-py\n[pypi-version]: https://badge.fury.io/py/nes-py.svg\n[pypi-license]: https://img.shields.io/pypi/l/nes-py.svg\n[pypi-status]: https://img.shields.io/pypi/status/nes-py.svg\n[pypi-format]: https://img.shields.io/pypi/format/nes-py.svg\n[pypi-home]: https://badge.fury.io/py/nes-py\n[python-version]: https://img.shields.io/pypi/pyversions/nes-py.svg\n[python-home]: https://python.org\n\nnes-py is an NES emulator and OpenAI Gym interface for MacOS, Linux, and\nWindows based on the [SimpleNES](https://github.com/amhndu/SimpleNES) emulator.\n\n<table align=\"center\">\n <tr>\n <td>\n <img\n width=\"256\"\n alt=\"Bomberman II\"\n src=\"https://user-images.githubusercontent.com/2184469/84821320-8c52e780-afe0-11ea-820a-662d0e54fc90.png\"\n />\n </td>\n <td>\n <img\n width=\"256\"\n alt=\"Castelvania II\"\n src=\"https://user-images.githubusercontent.com/2184469/84821323-8ceb7e00-afe0-11ea-89f1-56d379ae4286.png\"\n />\n </td>\n <td>\n <img\n width=\"256\"\n alt=\"Excitebike\"\n src=\"https://user-images.githubusercontent.com/2184469/84821325-8d841480-afe0-11ea-9ae2-599b83af6f65.png\"\n />\n </td>\n </tr>\n <tr>\n <td>\n <img\n width=\"256\"\n alt=\"Super Mario Bros.\"\n src=\"https://user-images.githubusercontent.com/2184469/84821327-8d841480-afe0-11ea-8172-d564aca35b5e.png\"\n />\n </td>\n <td>\n <img\n width=\"256\"\n alt=\"The Legend of Zelda\"\n src=\"https://user-images.githubusercontent.com/2184469/84821329-8d841480-afe0-11ea-9a57-c9daca04ed3b.png\"\n />\n </td>\n <td>\n <img\n width=\"256\"\n alt=\"Tetris\"\n src=\"https://user-images.githubusercontent.com/2184469/84822244-fc15a200-afe1-11ea-81de-2323845d7537.png\"\n />\n </td>\n </tr>\n <tr>\n <td>\n <img\n width=\"256\"\n alt=\"Contra\"\n src=\"https://user-images.githubusercontent.com/2184469/84822247-fcae3880-afe1-11ea-901d-1ef5e8378989.png\"\n />\n </td>\n <td>\n <img\n width=\"256\"\n alt=\"Mega Man II\"\n src=\"https://user-images.githubusercontent.com/2184469/84822249-fcae3880-afe1-11ea-8271-9e898933e571.png\"\n />\n </td>\n <td>\n <img\n width=\"256\"\n alt=\"Bubble Bobble\"\n src=\"https://user-images.githubusercontent.com/2184469/84822551-79411700-afe2-11ea-9ed6-947d78f29e8f.png\"\n />\n </td>\n </tr>\n</table>\n\n# Installation\n\nThe preferred installation of `nes-py` is from `pip`:\n\n```shell\npip install nes-py\n```\n\n## Debian\n\nMake sure you have the `clang++` compiler installed:\n\n```shell\nsudo apt-get install clang\n```\n\n## Windows\n\nYou'll need to install the Visual-Studio 17.0 tools for Windows installation.\nThe [Visual Studio Community](https://visualstudio.microsoft.com/downloads/)\npackage provides these tools for free.\n\n# Usage\n\nTo access the NES emulator from the command line use the following command.\n\n```shell\nnes_py -r <path_to_rom>\n```\n\nTo print out documentation for the command line interface execute:\n\n```shell\nnes_py -h\n```\n\n## Controls\n\n| Keyboard Key | NES Joypad |\n|:-------------|:--------------|\n| W | Up |\n| A | Left |\n| S | Down |\n| D | Right |\n| O | A |\n| P | B |\n| Enter | Start |\n| Space | Select |\n\n## Parallelism Caveats\n\nboth the `threading` and `multiprocessing` packages are supported by\n`nes-py` with some caveats related to rendering:\n\n1. rendering **is not** supported from instances of `threading.Thread`\n2. rendering **is** supported from instances of `multiprocessing.Process`,\n but `nes-py` must be imported within the process that executes the render\n call\n\n# Development\n\nTo design a custom environment using `nes-py`, introduce new features, or fix\na bug, please refer to the [Wiki](https://github.com/Kautenja/nes-py/wiki).\nThere you will find instructions for:\n\n- setting up the development environment\n- designing environments based on the `NESEnv` class\n- reference material for the `NESEnv` API\n- documentation for the `nes_py.wrappers` module\n\n# Cartridge Mapper Compatibility\n\n0. NROM\n1. MMC1 / SxROM\n2. UxROM\n3. CNROM\n\nYou can check the compatibility for each ROM in the following\n[list](https://github.com/Kautenja/nes-py/blob/master/nesmapper.txt)\n\n# Disclaimer\n\n**This project is provided for educational purposes only. It is not\naffiliated with and has not been approved by Nintendo.**\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "An NES Emulator and OpenAI Gym interface",
"version": "8.2.1",
"project_urls": {
"Homepage": "https://github.com/Kautenja/nes-py"
},
"split_keywords": [
"nes",
"emulator",
"openai-gym"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ecf6d474ae0de47c6ede2cc2b6f00b48db81e51b5ac4b10bf52eefb64f9df957",
"md5": "0e037097f864a999073151e0d9390d96",
"sha256": "3fc6502a9eb502fe0af3848e9a2669f2eda5d9087a411214d3d330b24a2fea43"
},
"downloads": -1,
"filename": "nes_py-8.2.1-cp39-cp39-macosx_11_0_x86_64.whl",
"has_sig": false,
"md5_digest": "0e037097f864a999073151e0d9390d96",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 54342,
"upload_time": "2022-06-21T03:44:50",
"upload_time_iso_8601": "2022-06-21T03:44:50.903797Z",
"url": "https://files.pythonhosted.org/packages/ec/f6/d474ae0de47c6ede2cc2b6f00b48db81e51b5ac4b10bf52eefb64f9df957/nes_py-8.2.1-cp39-cp39-macosx_11_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "046b51c9efe4fc67a9311b1125a19ec7a6176c8f0b8334e418d7f5bc53aeec56",
"md5": "89c2c1c809f82d3cc03714660dcac133",
"sha256": "82f6cb9a6f065fb4b248951a6e334cfeb2a3c83316b7c95cfe3dbe176e6c854a"
},
"downloads": -1,
"filename": "nes_py-8.2.1.tar.gz",
"has_sig": false,
"md5_digest": "89c2c1c809f82d3cc03714660dcac133",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 77667,
"upload_time": "2022-06-21T03:44:53",
"upload_time_iso_8601": "2022-06-21T03:44:53.103532Z",
"url": "https://files.pythonhosted.org/packages/04/6b/51c9efe4fc67a9311b1125a19ec7a6176c8f0b8334e418d7f5bc53aeec56/nes_py-8.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-06-21 03:44:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Kautenja",
"github_project": "nes-py",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "gym",
"specs": [
[
">=",
"0.17.2"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"1.18.5"
]
]
},
{
"name": "pyglet",
"specs": [
[
">=",
"1.4.0"
],
[
"<=",
"1.5.21"
]
]
},
{
"name": "tqdm",
"specs": [
[
">=",
"4.48.2"
]
]
},
{
"name": "twine",
"specs": [
[
">=",
"1.11.0"
]
]
}
],
"lcname": "nes-py"
}