Main > Main Forum
Frontend feature req: Display image when emulator paused
unclet:
.....this post was created since I did not want to hijack Paige's post any longer :P
--- Quote ---
--- Quote ---Tiger-Heli
I have images of my control panel mappings for all of my 30+ non-mame emulators. I am just waiting for some frontend (MALA hopefully) to offer the ability to display an image when the emulator is paused. I do not know of any frontend which does this yet. Since I am mainly interested in being able to view the control panel mapping image when the game is paused (instead of before the game starts), I have not looked into using Johnny5 or CPViewer, but rather simply show the image manually now (ie: get it out and place it on the table next to the cabinet).
--- End quote ---
What you want can be done fairly easily, but not through a frontend, AFAIK, and since different emulators support different methods for pause, I doubt it will be incorporated anytime soon.
My page will tell you basically how to do it, though. Here are some hints:
First off - Emuloader (and I'm fairly sure Mala) will allow you to display the image before you launch the game. In EL you scroll through what image is displayed - I have Titles, Snaps, Marquees, CP's, Instruction Cards, and finally CP Hints, which is my Johnny5 images. In MameWah (or I think Mala), you would have to design this into your layout bezel, but it can be easily done. I'm attaching a quick Photochop based on shock_'s excellent mala layouts just to give you an idea of the concept.
As far as displaying your image when a game is paused, you just need to combine several of the concepts on my page.
For MAME, you can use BuddaMAME (not sure what the latest version is), but the image is scrunched for vertical games. I cover that on the bottom of the main page. http://www.mameworld.net/tigerheli/johnny/static.htm
Howard Casto wrote an AHK script to lauch Johnny 5 when MAME was paused and then go back to MAME, but I don't think we ever resolved timing issues with it. (Sometimes MAME would not pause when Johnny5 was displayed, sometimes Johnny5 would come up and exit, but MAME would remain paused). I explain that here: http://www.mameworld.net/tigerheli/johnny/ahk_hc.htm (I don't think I mention it on the page, but this script will work with any full-screen emulator that uses P to pause, not just MAME. You could easily change the places where P is called out to some other key to make it work with Emu's that use a different pause key.) (I don't know if other emulators will have the same timing issues as MAME did (does?) or not. Howard Casto could likely tell you. IMS, it was pretty much specific to MAME.
An alternative that I came up with was to have MAME pause normally and then have a different hotkey to call Johnny5. I cover that here: http://www.mameworld.net/tigerheli/johnny/ahk_th.htm This is just a modification of Howard's script, so it also could be used with any emulator.
The final piece is that you want to display static images rather than setting up Johnny5. On this page, I explain how to use Irfanview to display a static image prior to launching MAME: http://www.mameworld.net/tigerheli/johnny/static.htm and further down, I even mention how to modify the above scripts to call Irfanview and display the images rather than launching Johnny5 (See AHK SCRIPT INTEGRATION on the page above).
--- End quote ---
Thanks for the details, but that is just my point .... way too much configuring to get an image to show up. Did not even realize there was timing issues to worry about as well. Also, I would like it to work no matter which key sequence causes the emulator to pause ... not just via the "P" key.
Displaying an image of a control panel (or any image really ... an instructional card, picture of my pet, etc..) is nice before the game starts, however, I am much more interested in being able to display an image when the game is paused. The image displayed should be fullscreen and should not have to be integrated into a skin used for a particular frontend (ie: simply show an image file fullscreen). I am not expecting frontends to have to be able to calculate or show the key mappings for various emulators, but simply to show an image file fullscreen. The image file might just be a picture stating "PAUSED, drank to much beer, be back soon" ... or in my case, the image would be a picture of the control panel showing the key mappings for a particular emulator. Emulators other than Mame really do not change there key mappings from game to game, so a static image showing the key mappings can be used for all games. Now, if a person (like myself) grouped all their PC games within one emulator game list, then there would be a need to display an image on a per game basis, but this should nto be very hard for a frontend to do as well. Simply have the frontend add an additional option to indicate whether one main image should be used for "all" games in the game list or whether an image should be used on a "per-game" basis (image file name would match the game name in this case of course).
I do not understand why a frontend has not implemented this yet, seems very easy to me. All it would take would be to configure the frontend with which key (P) or keys (Ctrl-P) is used to pause the emulator. The frontend would then monitor the keypresses entered in the window in which the emulator was running (or for that matter, any keypresses entered on the whole system .... since when playing a game, it can be assumed the game is being played in fullscreen mode, so any keypresses must be related to the game being played). Anyway, when the key sequence has been entered, the frontend sends the pause key sequence to the emulator (ie: lets the entered keypresses go through to the emulator just like any other entered keypresses do when playing a game) thus pausing the game, but then the frontend can then display the image. When the remove-from-pause key sequence (ie: some emulators have a different key sequence to un-pause a game ... believe it or not) is entered, then the frontend can remove the image and pass the keypresses to the game as normal, which will un-pause the game.
Basically, it seems the frontend just has to offer key mappings for Pause and UnPause sequences then hook the keyboard for the system looking for those keypresses to display (or remove) and image.
I will wait until some frontend offers this functionality instead of trying to setup many different types of control panel viewers.
PS: Although I appreciate the work which went into Johnny5, I believe it is best suited for 2-player control panels. Trying to display everything on a four player control image background was getting a bit crazy looking, especially when all the labels started scrolling the text. Plus if I ever had to reinstall my arcade cabient, I would not want to have to remember how to reinstall/configure a control panel viewer. I would just like to have a nice frontend GUI to configure only
leapinlew:
--- Quote from: unclet on March 15, 2007, 08:52:24 am ---I do not understand why a frontend has not implemented this yet, seems very easy to me.
--- End quote ---
I would guess it hasn't been implemented because it's not that big of a deal and has a very low request rate (This is the first time I've heard of someone wanting this)
Also, I don't think it's that practical. When I pause it - it's for 2 reasons.
* I need to do something real quick (grab a drink, bathroom, etc.)
* I want to show someone something on the screen
If an image popped up of the control panel(or any image), I wouldn't be able to show what I had on the screen. In Mala, I can hit a button and display the original control panel before I launch a game. Thats more than good enough for what most folks do.
unclet:
I can understand that rational perfectly, but when people play games which have many button mappings (ie: Nintendo 64, various PC games, etc..) then it is very easy for a person (especially small children) to forget the key mappings. If you mainly play a few games on your cabinet then you will not have any problem remembering the key mappings, but when my kids play multiple games from many different emulators then it would be nice to see the mappings when the game is paused.
One big thing is when my children's friends come over and play, they all wait there turn to play the game everyone is playing at the time. Usually, one child will play one level, then the next child will come in and start the next level, etc..... basically they take turns. Thing is, when a child enters the game in middle, they always ask what keys do what ..... I would rather them be able to see the key mappings when the game is paused.
Again, I see your point, but since I think this is rather an easy addition to any frontend, I decided to throw the idea out there ...... Actually, I am hoping to convince Swindus (MALA creator) to put this feature request high on his list. If not, then I will just keep showing the kids printed copies of the key mapping images, since I do not plan on switching frontend now ..... spent a lot of time configuring everything to work with MALA .... and I am happy with MALA a lot.
PS: Now, in order to see the game display when the game is paused instead of always seeing an image (to show your friends something on the screen when the game is paused), the frontend could offer the additional feature of cycling between the "image" and the "paused game display screen", until the game is unPaused ...... good idea. Should not be that hard to implement either. The frontend will know the game is paused since it was monitoring for the pause sequence, and can offer an additional key mapping (to be used when the game is paused) to cycle between the image and game screen. Basically a person could pause the game, then use their joystick left/right to cycle through the pause screens ......
Tiger-Heli:
Mods - this would get more traction in the Software forum. . .
--- Quote ---Thanks for the details, but that is just my point .... way too much configuring to get an image to show up. Did not even realize there was timing issues to worry about as well.
--- End quote ---
Unclet - not to be rude, and not that I've never done the same thing, but you are asking for my help with doing something, I am telling you exactly how to do it, and then you are complaining about not being able to do what you want without even TRYING my suggestion. If you don't want my help that's fine, but what you want to do can be setup in fifteen minutes with AHK, and I seriously doubt a FE author is going to implement it for you, and even if they did, it would take you as long to configure the FE with the new features and get it working as it does to setup the AHK script.
--- Quote ---Displaying an image of a control panel (or any image really ... an instructional card, picture of my pet, etc..) is nice before the game starts, however, I am much more interested in being able to display an image when the game is paused. The image displayed should be fullscreen and should not have to be integrated into a skin used for a particular frontend (ie: simply show an image file fullscreen).
--- End quote ---
If you look at my previous reply - I said it could be shown before the game starts or in the skin for the front-end, but I also explained how to use the same methods to show it in game.
--- Quote ---Simply have the frontend add an additional option to indicate whether one main image should be used for "all" games in the game list or whether an image should be used on a "per-game" basis (image file name would match the game name in this case of course).
--- End quote ---
I am most familiar with Emuloader. EL (and most any frontend) allows you to pass the gamename to a batch file or to a command line issued prior to launching the emulator. If you want one image for all games (say you are using Z26, so all your Atari 2600 games use an image called 2600.png, you just modify the ahk script to display 2600.png instead of calling %1.png which would be the game name.)
Alternately, if this can't be done (and the only way it wouldn't work would be if your frontend didn't allow you to call different batch file or pre-emulator launch commands for different games in the same game list) . . . the simple alternative would be to create a simple batch file to copy your 2600.png image to multiple images based on your z26 gamename - i.e. 2600.png becomes game1.png, game2.png, etc.
--- Quote ---I do not understand why a frontend has not implemented this yet, seems very easy to me. All it would take would be to configure the frontend with which key (P) or keys (Ctrl-P) is used to pause the emulator. The frontend would then monitor the keypresses entered in the window in which the emulator was running (or for that matter, any keypresses entered on the whole system .... since when playing a game, it can be assumed the game is being played in fullscreen mode, so any keypresses must be related to the game being played).
--- End quote ---
You just nailed the reason FE have not implemented this yet. An FE will have a hard time monitoring for a certain key combination to be pressed, and most FE's are concerned about the FE itself slowing down or affecting gameplay. Having the FE monitoring keypresses during the emulator execution could only increase these concerns. OTOH, AHK can do this quite easily, will work with virtually any FE, and keeps the FE developer from having to concern himself with it.
--- Quote ---When the remove-from-pause key sequence (ie: some emulators have a different key sequence to un-pause a game ... believe it or not) is entered, then the frontend can remove the image and pass the keypresses to the game as normal, which will un-pause the game.
--- End quote ---
Okay, now you're adding yet another wrinkle into the mix for FEdev's to deal with. I ran into this with Train Simulator. It uses one key to activate sanding "X" and another combo "Shift-X" to de-activate it. I tried writing an AHK script to send "X" whenever "Shift-X" was pressed, but didn't get it to work. I am pretty sure Howard C would be able to modify his script so that it called Johnny 5 when P was pressed and returned to the emulator when Ctrl-P was pressed, but I don't know how to do it. Once that is done it's a simple matter to modify it to call IrfanView rather than Johnny5, but I suggest you get it working on an emulator that uses the same keys for pause and unpause, before I bother Howard to modify his script for something that I will likely never use.
--- Quote ---Basically, it seems the frontend just has to offer key mappings for Pause and UnPause sequences then hook the keyboard for the system looking for those keypresses to display (or remove) and image.
--- End quote ---
Which is exactly what the AHK scripts with the modifications will do for you without involving the FE authors.
--- Quote ---I will wait until some frontend offers this functionality instead of trying to setup many different types of control panel viewers.
--- End quote ---
You don't need to set up any control panel viewers. I already explained you will be modifying my (Howard's) AHK script to call IrfanView and display your image rather than calling Johnny5. Maybe some FE Dev will surprise me, but otherwise, I suspect you may have quite a long wait . . .
--- Quote ---PS: Although I appreciate the work which went into Johnny5, I believe it is best suited for 2-player control panels. Trying to display everything on a four player control image background was getting a bit crazy looking, especially when all the labels started scrolling the text.
--- End quote ---
Well . . . Trying to display button functions of a four-player panel on any static image as reasonable screen resolution is going to be difficult, but I will grant that J5 is likely geared toward 2-Player panels - although it is also Howard C's app, so that is just my opinion as an end-user.
Tiger-Heli:
--- Quote from: unclet on March 15, 2007, 09:30:40 am ---PS: Now, in order to see the game display when the game is paused instead of always seeing an image (to show your friends something on the screen when the game is paused), the frontend could offer the additional feature of cycling between the "image" and the "paused game display screen", until the game is unPaused ...... good idea. Should not be that hard to implement either. The frontend will know the game is paused since it was monitoring for the pause sequence, and can offer an additional key mapping (to be used when the game is paused) to cycle between the image and game screen. Basically a person could pause the game, then use their joystick left/right to cycle through the pause screens ......
--- End quote ---
That's what my Method 5 allows . . .