Ghosts and Goblins works with my recorded, poor, gameplay from fceux to arduino. Try it out by grabbing the code here https://github.com/jedahan/autoNES . But Super Mario Brothers i'm having a lot of trouble with. Not sure why. What would really really help is if people recorded fceux movie files and tested with an arduino on their own machines, and uploaded them.
How does the NES/Famicom work? Its just a shift register! Parallel in-serial out. For a game to read the controller, it (manually/in assembly) sends a clock signal 8 times, and the data line is LOW if the button is pressed. So when we want to playback, just do the inverse - when we hear the clock FALL, prepare for the rising edge by bringing the line high or low depending on if the button should be pressed when the clock rises again.
Still figuring out the best way to sniff cartridges using Beaglelogic / maybe some custom PRU firmware. More details on https://github.com/jedahan/autoNES . Would love suggestions...