This was my first project, and I've been at it for about 4 years now. It started from humble beginnings, and now has pretty much all the features that I wanted it to have.

I have no computing/electronics background, so all of this has been learnt from the ground up. Hence, the code is pretty simplistic.

In the playstation days, though rare, it was possible to buy joystick and gamepads that could be programmed. Obviously these could be used for cheating, but for the interested, they allowed us to take games apart and investigate the core of how things work.

While these can still be used (via converters) they're getting old, rare and increasingly hard to find.

I took up the challenge of replicating what they allowed, as well as adding a lot of new features.

The setup is an arduino mega, a 4x20 lcd screen, and a control pad of sorts (up, down, left, right and two buttons). It also has a swtich to determine how many controllers you're using (first, second or both). It has an SD card for backing up sequence (very rudimentary, just added).

I have it set up so that it sends wires from pins on the side of the arduino 21-49 to a PS360+ board, bought at aki-shop customs. I have successfully piggybacked it onto a number of different joysticks.

On the software side, you are able to input commands to be played back at 60fps. You can also record commands by using a joystick normally.

You can do all the editing onboard, via the LCD screen and control pad. There is also functionality to loop commands.

Anyway, posting this here more as a reference for anyone else wanting to try something similar. I've got a few ideas left, but for now it seems to work very well.

Good job! My next project is going to be almost like yours(just need to finish my current one and find the time). I plan to piggyback an x360 controller and record the all the keys/stick movement to a SD card and then be able to play it up again with the arduino.The useness of this? Have no idea, just doing it for the learning experience. Going to use an 328 so I can play with I/O expanders and so on.