Controller info overlay in the game
-
In an arcade cabinet, the hotkey is very useful to extend features like pause, quit, save state and so on, BUT I never remember what button does each thing.
I had this idea of overlay this info when the hotkey is pressed (a picture of the Controller with labels)
Can someone suggest me what should I look at to accomplish this? My first thought was to make use a bezel system, and turn the bezel on and off when the hotkey is pressed. Can the bezels be place in the middle and overlay the image?
Note: It would be useful to use this in several emulators, but my main concern is mame.
-
I'm not aware of any RetroArch functionality that would display an image in-game, but one option is to use a splash screen prior to game launch with the controls/button layout information. If you want to explore this option, the links below will get you started.
Familiarize yourself with the RetroPie guide for adding custom launching images
https://github.com/RetroPie/RetroPie-Setup/wiki/runcommand#adding-custom-launching-imagesOn a Windows machine, install a copy of CPWizard (Control Panel Wizard)
http://headsoft.com.au/index.php?category=cpwizard&page=downloadYou'll also need a copy of controls.xml for CPWizard (MAME controller information)
http://web.archive.org/web/20150908135203/http://controls.arcadecontrols.com/controls.xml.0.141.1.zipUsing CPWizard, you can mass/batch generate images for the control panel layout of each game (once you go through a fair amount of configuration). The image below is from a system I had done this for several years back (game is mortal kombat 3). If anyone has a better way to do this sort of thing, would love to hear about it.
-
Thanks @synack, very useful info, but I won't work for my user case.
We have the arcade machine in a hackerspace, connected to a domotic system. When someone opens the space in the morning, the arcade automatically turns on with a random game (so the user won't see the splash screen)
My fist idea was to put an sticker in the corner with the instructions, but If we could make this on screen display it would be way cooler.
I'll keep researching and I'll post here my findings. All the advice will be welcome. -
hey @dask, i spent a little time with this and managed to figure out a few things..
expanding on your idea of using the overlay/bezel system, it's possible to (using a hotkey combo) swap a transparent overlay with a control image overlay. this can be done on a per-system basis using the retroarch.cfg files located in /opt/retropie/configs/<system>
retroarch.cfg:
overlay_directory = "/your/path/to/overlays" input_overlay_enable = true input_overlay_hide_in_menu = true input_overlay = "/your/path/to/overlays/mame-controls.cfg" input_overlay_opacity = 0.9 input_overlay_scale = 1.0 input_overlay_next_btn = "6"
i think you can substitute the last line with
input_overlay_next = "<keyboard key>"
andinput_overlay_next_axis = "<joystick axis>"
to adapt this to your hardware scheme.next, create the two images needed: transparent.png, and mame-controls.png
and here are the contents of mame-controls.cfg:
overlays = 2 overlay0_overlay = transparent.png overlay1_overlay = mame-controls.png overlay1_name = "mame-controls" overlay0_full_screen = true overlay1_full_screen = true overlay0_descs = 1 overlay0_desc0 = "overlay_next,400,460,rect,40,20" overlay0_desc0_next_target = "mame-controls" overlay1_descs = 0
there probably already exists a much better way of doing it, so this is just a proof of concept.
either way, hope it's enough to help you get started.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.