- Notifications
You must be signed in to change notification settings - Fork67
A Python3 NES emulator and OpenAI Gym interface
License
Kautenja/nes-py
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
nes-py is an NES emulator and OpenAI Gym interface for MacOS, Linux, andWindows based on theSimpleNES emulator.
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
The preferred installation ofnes-py
is frompip
:
pip install nes-py
Make sure you have theclang++
compiler installed:
sudo apt-get install clang
You'll need to install the Visual-Studio 17.0 tools for Windows installation.TheVisual Studio Communitypackage provides these tools for free.
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
Keyboard Key | NES Joypad |
---|---|
W | Up |
A | Left |
S | Down |
D | Right |
O | A |
P | B |
Enter | Start |
Space | Select |
both thethreading
andmultiprocessing
packages are supported bynes-py
with some caveats related to rendering:
- renderingis not supported from instances of
threading.Thread
- renderingis supported from instances of
multiprocessing.Process
,butnes-py
must be imported within the process that executes the rendercall
To design a custom environment usingnes-py
, introduce new features, or fixa bug, please refer to theWiki.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
- NROM
- MMC1 / SxROM
- UxROM
- CNROM
You can check the compatibility for each ROM in the followinglist
This project is provided for educational purposes only. It is notaffiliated with and has not been approved by Nintendo.
About
A Python3 NES emulator and OpenAI Gym interface