This project is an attempt to gather coverage through the use of NEAT. This is based on Sethbling's MarI/O project. Unlike MarI/O, instead of using the player's coordinates to calculate fitness, this project uses the current run's code coverage to calculate fitness. Note that this project is not intended to be fast.
- Build BizHawk emulator from https://github.com/david-a-perez/BizHawk (this fork provides a way to read coverage data from a Lua plugin)
- In either SMW or SMB, use
File>Save State>Save Named Stateto save a state while inside a level - Then,
Emulation>PauseandFile>Load State>Load Named Stateto get the exact point the plugin will reset to - Then,
Config>Cores>BSNESfor SMW (I'm not sure which Core to use for SMB) - Optionally,
Config>Speed/Skip>Skip 0 (never)andConfig>Speed/Skip>Speed 400% Tools>Code-Data Loggerthen inside the new windowFile>New- Ensure that
File>Auto-Startis enabled` - Unpause with
Emulation>Pauseand after around 1 minute of no input, inside of the Code-Data Logger,File>Save As - Modify the Lua script from this repo to replace
<STATE FILE>with the file path of your state file and<CDL FILE>with the full path of the file you just saved Tools>Lua Consoleand in the new windowScript>Open Scriptand open the script you just modified- It should now be training