this program is largely incomplete and not in a presentable state. please be mindful when sharing it. however, feel free to copy any snippets of code you find useful. video of it in action: https://youtu.be/cD43DWa-3fM usage: 0. edit config.lua as you please 1. open FCEUX 2.2.3 2. load Super Mario Bros. (U) (CRC32: 3337EC46) 3. open a new Lua script window (it's in the File menu) 4. browse and open main.lua TODOs: (that i can remember right now) - normalize `for i=a,b` code style - normalize and/or embed sprite type inputs - settle on a network architecture - compute how many input neurons the network needs instead of hardcoding - add some detection for enemies later in the game - fix cfg.enable_overlay (smb.lua doesn't see it being changed) - maybe log the average distance from init? naive: - learn any combination of buttons, starting from title screen - learn to run network without frameskip - learn other games