nes-py
                                
                                 nes-py copied to clipboard
                                
                                    nes-py copied to clipboard
                            
                            
                            
                        A Python3 NES emulator and OpenAI Gym interface
 
nes-py is an NES emulator and OpenAI Gym interface for MacOS, Linux, and Windows based on the SimpleNES emulator.
|   |   |   | 
|   |   |   | 
|   |   |   | 
Installation
The preferred installation of nes-py is from pip:
pip install nes-py
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-py with some caveats related to rendering:
- rendering is not supported from instances of threading.Thread
- rendering is supported from instances of multiprocessing.Process, butnes-pymust 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.
There you will find instructions for:
- setting up the development environment
- designing environments based on the NESEnvclass
- reference material for the NESEnvAPI
- documentation for the nes_py.wrappersmodule
Cartridge Mapper Compatibility
- NROM
- MMC1 / SxROM
- UxROM
- 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.