Skip to content

LSTM and A2C implementations of RL in Punch-Out!! (NES)

Notifications You must be signed in to change notification settings

nathanielbd/MacZero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MacZero

Reinforcement learning implementations for playing Punch-Out!! for the NES. ROM, Lua script for interface with the game are from pykitml.

Algorithms

Future

  • DQN

Usage

Install requirements

python3 -m venv env
source env/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
sudo apt-get install fceux
sudo apt-get install lua5.1-socket

Run

  • Change to the appropriate directory
  • python bot.py
  • fceux
  • Options (Alt-o) > Video Config (v) > Set X and Y scaling factors to 2.0
  • File > Open ROM (Ctrl-O) > open punchout_rom.nes
  • File (Alt-f) > Load Lua Script (u) > open fceux_client.lua
  • Set the Fceux window to full screen so that the game is in the top left corner
    • If the bot cannot beat Glass Joe, adjust the pixel offset of the top to match your OS. The setting of 224 works for the thickness of the title bars in Windows 10.

About

LSTM and A2C implementations of RL in Punch-Out!! (NES)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published