fragile-nes-py


Namefragile-nes-py JSON
Version 10.0.1 PyPI version JSON
download
home_pageNone
SummaryAn NES Emulator and OpenAI Gym interface
upload_time2024-09-02 21:33:14
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseMIT
keywords nes emulator openai-gym
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            <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.**


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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "fragile-nes-py",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "NES, Emulator, OpenAI-Gym",
    "author": null,
    "author_email": "Christian Kauten <kautencreations@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/97/b9/78063307823d5e8bd9fdb6b31c38c84e481ee4cf8353c4e64a07f38f28e3/fragile_nes_py-10.0.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\"controller.cpp\", \"cpu.cpp\", \"emulator.cpp\", \"lib_nes_env.cpp\", \"main_bus.cpp\", \"picture_bus.cpp\", \"ppu.cpp\"\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "An NES Emulator and OpenAI Gym interface",
    "version": "10.0.1",
    "project_urls": {
        "Homepage": "https://github.com/FragileTech/nes-py"
    },
    "split_keywords": [
        "nes",
        " emulator",
        " openai-gym"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "97b978063307823d5e8bd9fdb6b31c38c84e481ee4cf8353c4e64a07f38f28e3",
                "md5": "143b9113634b20014098b57880163723",
                "sha256": "fcbf9f3abedf8837c1e541a4fe0f29b5355d47635d788c4ab4d9b33c4fc10a1a"
            },
            "downloads": -1,
            "filename": "fragile_nes_py-10.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "143b9113634b20014098b57880163723",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 41511,
            "upload_time": "2024-09-02T21:33:14",
            "upload_time_iso_8601": "2024-09-02T21:33:14.241241Z",
            "url": "https://files.pythonhosted.org/packages/97/b9/78063307823d5e8bd9fdb6b31c38c84e481ee4cf8353c4e64a07f38f28e3/fragile_nes_py-10.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-02 21:33:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "FragileTech",
    "github_project": "nes-py",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "fragile-nes-py"
}
        
Elapsed time: 1.88642s