I think cpwizard might be your best overall choice and easiest to setup, BUT if you want something more visual and are willing to make up/crop instruction cards, I made this script for an upcoming mamehooker tutorial.
It's specifically designed for fighting games.
When the game starts up, the script shows the marquee, just like in the display file tutorial on the site.
However......
There are dedicated naviagtion buttons for both player 1 and player 2.
If you start using the navigation buttons in a 1 player game you can flip through all the cards for that game in your cards folder, in the case of fighters display moves for an individual character like so:

The real fun begins when a second player decides to play. So long as only the player 1 navigation buttons are used player 1 gets the whole screen to display his cards, but as soon as player 2 starts using his navigation buttons:

Blam! Each player can look up moves independantly of each other! (Excuse the unreadable text, I've reduced the screen shots)
I kind of got burnt out on writing tutorials after that initial run, but you would be suprised what the scripting system of mamehooker is capable of. This fighter script would work in the currently released version of mame hooker.
As for supporting text, right now mh doesn't. I've been considering it though. I've also though about doing command.dat support again, but there are so many image shortcuts in the file now that I'm lost. Also while the data is pretty good in command.dat, the file format is terrible. We need to convert to something like xml or html so we can get some real image support.

I'm working on a hardware project right now, but I do have a new version of mh almost ready to go. A user was kind enough to donate a ff wheel and thanks to that I've got single axis ff devices working in mamehooker! I was working on optional, realtime, html output for showing display files on mobile devices, but that isn't ready yet. I can always comment that bit out and release what I've got.