There is my Multitrack script, and most other emulators support lua scripts (
but this particular multitrack script I pointed out is for FCEUX alone). It displays input onscreen, as well as keep all future input stored so none of it is lost, make it much easier to work with multiple players, and even has several options you can set on it. And you can have it for the low price of zero dollars and zero cents!
Well, yeah. No matter how I put it, it will seem like I'm advertising my own work. Still, I want to present my script as something to play around with. Has a somewhat steep learning curve, but try it out and see if it even comes close to what you're asking for. The script does overlay an input display on the emulator window, but I'm not sure if this sort of display is what you want.
I have released rather poor versions of this script for
Snes9x and
VBA, but I can't recommend using them. The whole "lack of run while paused" thing kind of gets in the way.