A Double DQN agent that learned to play Mario's Bombs Away (Nintendo Game & Watch, 1983) on the original game, emulated in MAME. The game was not reimplemented: the agent presses the same 3 buttons a human would (left, right, bomb) through a Lua script running inside MAME, which talks to Python over named pipes.
The network sees the LCD segments of the screen plus two hidden variables read straight from the RAM of the Sharp SM511 chip, found by reverse-engineering the game's memory.
Because the shaping is potential-based, it does not change the optimal policy (Ng, Harada & Russell, 1999). It only speeds up learning early on.
The screen does not show everything. The game speeds up with each delivery and an internal clock decides when torches and fires move, so from a single frame the network cannot know how much time it has.