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. TODOs: (that i can remember right now) - normalize and/or embed sprite type inputs - settle on a network architecture - fix lag-frames skipped-inputs bug - detect frames when Mario is in a controllable state - compute how many input neurons the network needs instead of hardcoding - rewrite positions to be relative to Mario '-> fix offscreen sprites sometimes being visible to network - add some detection for enemies later in the game naive: - learn any combination of buttons, starting from title screen - learn to run network without frameskip - learn other games