All Projects → Kautenja → Nes Py

Kautenja / Nes Py

Licence: mit
A Python3 NES emulator and OpenAI Gym interface

Projects that are alternatives of or similar to Nes Py

Btgym
Scalable, event-driven, deep-learning-friendly backtesting library
Stars: ✭ 765 (+722.58%)
Mutual labels:  openai-gym
Gym Gridworld
Simple grid-world environment compatible with OpenAI-gym
Stars: ✭ 40 (-56.99%)
Mutual labels:  openai-gym
Pyribs
A bare-bones Python library for quality diversity optimization.
Stars: ✭ 66 (-29.03%)
Mutual labels:  openai-gym
Racknes
A Nintendo Entertainment System (NES) emulator module for VCV Rack.
Stars: ✭ 23 (-75.27%)
Mutual labels:  nes-emulator
Model Free Episodic Control
This is the implementation of paper Model Free Episodic Control
Stars: ✭ 31 (-66.67%)
Mutual labels:  openai-gym
Deterministic Gail Pytorch
PyTorch implementation of Deterministic Generative Adversarial Imitation Learning (GAIL) for Off Policy learning
Stars: ✭ 44 (-52.69%)
Mutual labels:  openai-gym
Super Mario Bros Ppo Pytorch
Proximal Policy Optimization (PPO) algorithm for Super Mario Bros
Stars: ✭ 649 (+597.85%)
Mutual labels:  openai-gym
Treeqn
Stars: ✭ 77 (-17.2%)
Mutual labels:  openai-gym
Rlcard
Reinforcement Learning / AI Bots in Card (Poker) Games - Blackjack, Leduc, Texas, DouDizhu, Mahjong, UNO.
Stars: ✭ 980 (+953.76%)
Mutual labels:  openai-gym
Bullet Gym
Experimental (stable, go here: https://github.com/benelot/pybullet-gym) repository of OpenAI Gym environments implemented with Bullet Physics using pybullet.
Stars: ✭ 54 (-41.94%)
Mutual labels:  openai-gym
Rl Baselines Zoo
A collection of 100+ pre-trained RL agents using Stable Baselines, training and hyperparameter optimization included.
Stars: ✭ 839 (+802.15%)
Mutual labels:  openai-gym
Gym Panda
An OpenAI Gym Env for Panda
Stars: ✭ 29 (-68.82%)
Mutual labels:  openai-gym
Async Deeprl
Playing Atari games with TensorFlow implementation of Asynchronous Deep Q-Learning
Stars: ✭ 44 (-52.69%)
Mutual labels:  openai-gym
Basic reinforcement learning
An introductory series to Reinforcement Learning (RL) with comprehensive step-by-step tutorials.
Stars: ✭ 826 (+788.17%)
Mutual labels:  openai-gym
Noreward Rl
[ICML 2017] TensorFlow code for Curiosity-driven Exploration for Deep Reinforcement Learning
Stars: ✭ 1,176 (+1164.52%)
Mutual labels:  openai-gym
Rex Gym
OpenAI Gym environments for an open-source quadruped robot (SpotMicro)
Stars: ✭ 684 (+635.48%)
Mutual labels:  openai-gym
Gym Gridworlds
Gridworld environments for OpenAI gym.
Stars: ✭ 43 (-53.76%)
Mutual labels:  openai-gym
Gym trading
Stars: ✭ 87 (-6.45%)
Mutual labels:  openai-gym
Dmc2gym
OpenAI Gym wrapper for the DeepMind Control Suite
Stars: ✭ 75 (-19.35%)
Mutual labels:  openai-gym
Gym Minigrid
Minimalistic gridworld package for OpenAI Gym
Stars: ✭ 1,047 (+1025.81%)
Mutual labels:  openai-gym

build-status PackageVersion PythonVersion Stable Format License

nes-py is an NES emulator and OpenAI Gym interface for MacOS, Linux, and Windows based on the SimpleNES emulator.

Bomberman II Castelvania II Excitebike
Super Mario Bros. The Legend of Zelda Tetris
Contra Mega Man II Bubble Bobble

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:

  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. 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

  1. NROM
  2. MMC1 / SxROM
  3. UxROM
  4. 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].