JOHNNY5 VIEWER USAGE

Heeeeeeeeeeere's Johnny(5) (click to enlarge and click again to expand, they will look MUCH better):

1943-JohnnyJoust-Johnny5 Image

The above images show the output of Howard Casto's Johnny5 Viewer with the games 1943 and Joust.  I highly recommend using this viewer over my previous suggestions, which are posted here.

BACKGROUND AND HISTORY

I just realized some of you may not have heard of the Johnny5 Viewer and may be wondering what it does.  Mahuti from BYOAC provided a pretty good textbook style definition, which I have expanded below:

And here's a more real-world example, based on the 1943 image above:

Finally, to really appreciate Johnny5, we should look at how it has evolved:

INTRODUCTION

This site is best viewed in at 800x600 or higher resolution.  Note that much of the code sections use ToolTips and JavaScript is required to view them.

This page will detail the many ways of using the Johnny5 viewer with a frontend and will take you through the process of setting it up and getting it working.  I tend to take a systematic, crawl before you walk method, so I will generally show you how to do things and have you test things out along the way to make sure the basic steps (running the viewer with default layouts, running the viewer with custom layouts, launching the viewer from a frontend) are working, before adding more advanced steps.

Also, detailed instructions are provided for EmuLoader only, (although some MAMEwah references are included also), but most frontends can support at least some of these procedures.  There are basically five ways of integrating Johnny5 with a frontend and MAME.  (Note that for the most part, any of the methods may be used independently or in combination.  An overview of the different methods and their implementation follows:

METHOD 1 - STATIC IMAGE VIEWING

This is perhaps the most universal method (greatest frontend / OS support) of using Johnny5 with a frontend.  The idea is that screenshots of Johnny's output are saved in an images folder and viewed in the frontend as desired.  Here are screenshots showing the images method in use in EmuLoader and with two different layouts in MAMEwah.  (Again, click to enlarge and click again to expand for best image quality.  The MAMEwah images were highly compressed and show lots of pixellation.  The actual screen images are much better.)  (I personally use this method and Method 5 below).

Johnny in EmuloaderJohnny in MamewahMameWah with many images

METHOD 2 - LAUNCH FROM HOTKEY

This method involves pressing a HotKey (such as "J") to launch either the Johnny5 viewer or display a screenshot of it similar to the images above.  MameWah supports this.  EmuLoader does not support this method.  I think Dragon King will support it.

METHOD 3 - LAUNCH PRIOR TO MAME LAUNCH

Under this method, Johnny5 comes up immediately prior to the initial launch of MAME.

METHOD 4 - LAUNCH AUTOHOTKEY SCRIPT ALONG WITH MAME - JOHNNY5 LAUNCHES WHEN MAME IS PAUSED

This is actually the method Howard Casto is working on and favors.  Basically, when you are playing a game and press the P key, MAME is minimized and Johnny5 is displayed.  When you press the P key again, Johnny exits and MAME resumes.

METHOD 5 - LAUNCH AUTOHOTKEY SCRIPT ALONG WITH MAME - JOHNNY5 IS AVAILABLE FROM A HOTKEY

This implementation uses a modified version of the AHK script to launch the viewer while MAME is paused.  I personally am using this along with Method 1 above.  I chose to use the Start of Button 1 buttons to launch Johnny5.  So if I want to know what controls a game uses, I pause MAME and press Player1 Button1 or Player1 Start and the viewer comes up.  Then Escape or pressing the button again takes me back to MAME (paused) and P allows me to continue.

IMPLEMENTATION

See this page for getting Johnny setup and working.  Then decide which method(s) you want to use and see this page for Method 1 - Static Image Viewing, this page for Method 2 - Launch From Hotkey, this page for Method 3 - Launch Prior to MAME Launch, this page for Method 4 - Launch AutoHotKey Script Along With MAME - Johnny Launches When MAME is Paused, and this page for Method 5 - Launch AutoHotKey Script Along With MAME - Johnny is Available From a HotKey.

COMBINATIONS

Basically any of the methods may be combined with the other ones as follows:

Method 1 and Method 2 are independent, and activating either has no effect on any of the other methods.

Method 3 - Launch Prior to MAME Launch may be combined with either of the AHK script methods by combining the batch files so the new batch file launches Johnny, the AHK script, and then MAME, in that order.

Method 4 and Method 5 COULD be combined by adding the two script components together, although I can't imagine why you might want to do so.

ADVANCED CONCEPTS

Basically, in this section, I am posting other ideas for what COULD be done with Johnny5 and the AHK Script.  None of these have been tested, but if someone wants to experiment, or if anyone has other unique ideas and wants me to add them, let me know.

Update - There has been a lot of success with the advanced concepts below and I have moved the data to it's own page here.

Johnny5 - Basically, there aren't a whole lot of uses for Johnny5 outside of MAME (more below).  OTOH, by the time you have Johnny5 set-up, you probably have a very good rendering of your Control Panel which could be very useful.  (I think Howard Casto will eventually modify Johnny5 to work with other emulators, though.)

AHK Script - The AHK Script is a great discovery and I can see lots of ways to exploit it.  A few are listed below:

ALTERNATIVES

Now that you have a feel for what can be done with Johnny5, I thought it would be a good idea to cover the alternatives to using Johnny5, not really because I recommend any of them (with the conditional exception of BuddaMAME), but more to save you the trouble of wasting your time setting them up, only to find Johnny5 more useful.  There are three programs that will be considered as alternatives - CPViewer, CPMAKER, and BuddaMAME.  Detailed information beyond what I am posting here is also available in this thread on BYOAC.

CPViewer - CPViewer is JCrouse's application, and is available here.  I evaluated it after I had Johnny5 working, so that has some bearing on the discussion.  The program is VERY easy to use and set-up (but Johnny is also if I hadn't wrestled with using it in 98 before it supported it).  My main gripe with it is that it lacks the ability to display labels such as "2-Player Alternating"  "Player Joystick Type" (2-Way Joystick (Horizontal) above) or the miscDetails field from controls.ini.  Unfortunately, I consider this very important information.  The viewer does have the ability to display text labels inverted for use on cocktail cabinets, which I don't think Johnny5 supports.  I haven't tested it, but I think the AutoHotKey (AHK) Script could be modified to call CPViewer instead of Johnny, if you decided to use it instead.

CCCPVW - CPVW is available here.  This is JCrouse's explanation of it:  CPVW is a stand alone viewer that is MUCH faster at displaying the image on the screen and filling the labels. It's written by Jerry Fath. It's only tie to CPViewer is that it uses a CPViewer layout file to find out the label attributes.

CPMaker - CPMaker is BuddaBing's viewer.  The files are available here and documentation is available here.  Here is a screenshot of CPMaker output for 1942 (click twice to enlarge, but it doesn't look much better either way):

1942 in CPmaker

Perhaps, I could have cleaned up the fonts, but the program will never display ANY info besides the button labels and directionals.  It also was VERY hard to set-up.  I have been using computers since before Windows 3.1 and it took several PM's and E-mails to Buddabing to get the image above to this point.  The main "feature" of CPMaker is supposed to be the ability to shade controls that are not used.  Personally, if Johnny5 doesn't throw a label on a button, I can make a pretty good guess that it's not used.  And if you REALLY want to, you can shade unused buttons in Johnny5, although you might end up with a LOT of images and LOF files if you choose to do this.

BuddaMAME - BuddaMAME is BuddaBing's solution for displaying images when MAME is paused.  It is also available here and documentation is available here.  I recommend not using it with CPMaker, but rather creating static images using Method 1 above, and then viewing them in BuddaMAME.  This works very well in horizontal games and not so well in vertical games as the images is "squished" to the same width as the MAME game borders.  Screenshots from 1943 and 1944 (see disadvantages) are here (again click twice to view):

1943 in BuddaMAME1944 (fudged) in Johnny

BuddaMAME also incorporates skip warnings, -skip startup frames, LED driver engine, and MAME movie maker, making it a very nice MAME build in its own right.  (I use it as my primary build with CPMaker disabled).

Document made with Nvu