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 State
to save a state while inside a level - Then,
Emulation
>Pause
andFile
>Load State
>Load Named State
to get the exact point the plugin will reset to - Then,
Config
>Cores
>BSNES
for 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 Logger
then inside the new windowFile
>New
- Ensure that
File
>Auto-Start
is enabled` - Unpause with
Emulation
>Pause
and 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 Console
and in the new windowScript
>Open Script
and open the script you just modified- It should now be training