Show Control Panel Layout before game starts in RetroPie, just like Arcade1UP does.
-
@markwkidd At some point I will take you up on the offer to pull the data directly from XML, or JSON or whatever. But right now I'm happy with CSV.
@GreenGriffon I'm in the same boat. I wan't to make sure I'm using public-domain button and joystick artwork, and give proper credit to original source. I may end up just drawing my own button and joystick icons...
BTW everyone, I have put the CSV button database in my github area. It's it in the MAME generic order: P1_BUTTON1, P1_BUTTON2, P1_BUTTON3, etc .
Also the works:
- A copy of the exact same data, but with "less wordy" labels. Some of the text is 20 or more characters per button, and the label runs off the screen, or collides with an adjacent label.
- Auto-scaling down the font size when a label has a lot of characters, for the same reason.
- Functions that map MAME->RetroPad, and then RetroPad->ControlPanel. Hopefully that will make the scripts easier to customize according to one's specific button layout.
-
@Texacate said in Show Control Panel Layout before game starts in RetroPie, just like Arcade1UP does.:
@markwkidd At some point I will take you up on the offer to pull the data directly from XML, or JSON or whatever. But right now I'm happy with CSV.
It is not a problem to generate a CSV either. The idea is about sharing and making improvements to a common list of controls rather than the file format.
Pretty much any text-based format is possible if and when it is decided that collaborating on fixes to incorrect and missing button labels is part of the intention of the project in this thread.
If maintaining the control name list and fixing those problems is part of your intentions then it does seem to me like having one common database is worth some coding time on my part.
-
@markwkidd You raise a very good point. It would be wonderful if there was an active project who's main goal was to collect and maintain the database of controls descriptions. I would be happy to contribute to, and pull from such a centralized database (if-and-when that becomes a thing).
However, the intent my little project is limited displaying just a "few button's worth" of the data. I hope others find it useful, so I put it out there on github to copy/modify/contribute. We'll see where it goes! It's been a fun project so far! But for now I'm okay with my unmaintained/unofficial version of the data. I'll let you know if that changes.
But for sure, my project isn't the only one being discussed in this thread. There are at at least two other folks that have approached the problem from a different angle. I like what they have done too. Very inspiring stuff. The flyer art is genius!
-
@Texacate said in Show Control Panel Layout before game starts in RetroPie, just like Arcade1UP does.:
It would be wonderful if there was an active project who's main goal was to collect and maintain the database of controls descriptions. I would be happy to contribute to, and pull from such a centralized database (if-and-when that becomes a thing).
Alright I think we are getting close to working through this miscommunication.
At the moment we do already have a centralized database -- so to speak -- for controls descriptions that is already getting additions and corrections from myself and others.
At the moment, only MAME 2003-Plus benefits from this database and there are only a handful of people updating the old "controls.dat" database , but if you do want to participate then I just need to know what format you would like to have access to the database in, such as CSV.
This database is a real thing that already exists is what I'm saying. :D
-
@markwkidd Oh, that 's awesome. I didn't realize that. I grepped out the game list from the control.c file you pointed me to, and I found roughly 1000 games. Approximately the same number as in my copy of controls.xml_0.141.1 file. And both files seemed to have parents, but not clones. So I (mistakenly) concluded there wasn't that much of a difference. Good to be wrong! Still let's hold off integrating XML into my project until it's more polished, and more folks are actually playing with it. Right now it has whopping 2 whole downloads! LOL.
-
@Texacate hi I wouldn’t interpret the lack of downloads for lack of interest! While I feel pretty good navigating pi menus and doing what I am told and stuff, I still have no idea how to pull scripts off of github and use/test them. If you work is now where I can use it to try to generate the images for my games I am happy to try and test it. But - what do I need to do? I would be generating the images to try to use them as launching images on my personal setup.
1-It sounds like after I downloaded the script (this I don’t know how to do) I would run it from command line (assuming I would say sudo (path to script? Where would it go after download?)
2- and it looks like from your documentation I would add at the end the rom name then the image would be generated in my arcade Roms folder for use. Right?
3- I don’t know if there is some way it would just read for .zip files in my arcade folder otherwise and then create the images for whatever games it can or if it has to be done on a game by game basis.
4-Also, I saw it will pull game logos into the image but is that art pulled from within a “wheel” folder that is inside the arcade Roms folder? Sorry for all the questions.
-
@BJRetro I really need to fill out the download/usage sections of the documentation. There are some dependencies there. Tonight after work, I'll work on that. But let me try to briefy answer your questions.
Q1) Yes, that is the general idea. You would run it from command line. Using sudo should not be necessary to download the scripts and build images, but it may be needed to install ImageMagic. I'm actually building images on my Mac. Haven't actually tried to build images on the RPi yet. But I can't think of a reason why that wouldn't work. Again, I still need to separate all the image-display stuff from the image-create stuff.
UPDATE: Added support to build images on the RPi if desired.Q2) That is correct: From the terminal: "button_map.sh paceman" (don't use the.zip extension, just the basename). It will it generate the image in "a" folder named "./arcade", but I don't recommend that be THE arcade folder where your roms are... Yikes. I should change the generation folder name! You'll probably want the generated image to live somewhere else. That will completely depend on how one uses the images. Let me give that problem more thought. I build the images in a completely separate "sand-box" area. And if they look okay, I move them where they need to live.
Q3) It could be enhanced to do this. For now, you could list your rom directory to a file, and edit that file into a script that calls button_map.sh over and over again (remember to strip of the .zip extension). I may write separate, more elegant way to do what you are asking. The workaround I just suggested is pretty crude, but it gets the job done.
UPDATE: Added new script that does exactly this:for_all_roms.sh
Q4) Yes. The wheel folder is usually kept inside the system folder for ES and AttractMode themes that use wheel art. I only pull from this folder, so it is safe to point the button_map.sh script to the ~/RetroPie/roms/arcade/wheel folder. There is variable at the top of the script to for the pathname to the logo/wheel-art folder.
-
Re: building images for parent roms and/or clone roms...
Let's say you want to build an image for a clone rom, but the button label data is only available for the parent rom:Last night I prototyped a way to do that. I was able to build significantly more button map images for the set of roms currently in my cabinet. But it also added an additional level of complexity to the database searching issues I already have... :-(
I definitely need to get proficient in XML searching... I'm a noob in that area. Ah, well. One more skill to acquire, right? -
@markwkidd In your controls archiving project...
- How are you managing the parent / clones control data? Are you just archiving the parent ?
- Similarly, how are you managing the different (but related) parents that have identical control information ?
The StreetFighter and KingOfFighter series are examples of this. If it's easier to point to a GitHub URL, just send me the link. I can go see for myself.
-
@Texacate have a look here mame2003-plus/controls.c
Maybe this wiki is interesting for you adding button names
-
@Texacate said in Show Control Panel Layout before game starts in RetroPie, just like Arcade1UP does.:
How are you managing the parent / clones control data? Are you just archiving the parent ?
Similarly, how are you managing the different (but related) parents that have identical control information ?As @robertvb83 mentioned and is described in detail in the MAME 2003-Plus developer docs that are linked there, the mapping between the control names happens elsewhere, in the driver source.
This can also be grepped/scripted easily because there are macro names (the
GAMEC
macros, etc) that can be used as tokens for finding the mappings. -
@robertvb83 Most excellent! As a "User" contributor, the only thing I didn't see on that Wiki page was how to best get the info to the lr2003plus team. (email to someone, a forum post somewhere, a github issue...) And I assume if the parent of ROM isn't already mentioned controls.c, those would be the one(s) you are most interested in. Correct? I'll do my best to contribute using the format in the wiki. Ive gone through a bunch of games on my cabinet, and added new button labels. ~50 so far, only 800 to go, LOL
-
@Texacate hey thanks thats a good point with contact information. I cannot change this myself but i think @markwkidd can add that info/links.
The button names for retroarch are great especially for unusual joypad layouts. So i already contributed some exotic games like stonebal or space wars. With written functions instead of btn1 btn2 btn3 it is now much easier to configure those games for any joypad that people use.
Of course missing clones are always welcome or even missing parent roms. But be aware not always are clones the same as parent by means of button names
Would be super cool if your naming contributions find their way into mame2003-plus as well
-
Kinda circled around back to this. You all are doing more with this than I can. This is a mock up of what I originally was going for:
And keep in mind this is tailored to my tastes and nothing is automatically built...everything is manual.
However, my goal was to get to where the background, control panel, marquee, ect. were in a separate folder for either a system or game and then have a XML setting file to assemble the file based on what files were supplied. Would work on once part at a time.
After looking at what you are all doing...may be making this a bit to complex. Will be trying out Texacate's example this weekend to see if I can get that up and running.
-
Cool. I love your concept example! Maybe someday. BTW, I just put my latest script, plus the CSV files, on GitHub. It's not very polished yet. But much better than previous versions.
- I added support to run the main image creation script
button_map.sh
on the RPi. - Updated the Wiki on installing ImageMagick on the RPi.
- If button data for a clone is not available, the script will attempt to use the button data from the parent rom.
- Generates a place holder image, when no button data is available. Leaves them in the the tmp directory.
- Uploaded a separate file with my suggested button data for additional roms. I have about 250 roms listed in
custom_map.csv
so far. More to come, I play a dozen or so games every day, and try to figure out what the appropriate names are for the buttons. I do try to look for a picture of the original arcade cabinet, and use those labels if possible. - Added a new script for doing your entire collection, all at once.
for_all_roms.sh
I'm amazed how many games are just vertical shooters, with the exact same Fire,SuperBomb buttons. I found a fun unique variation on that theme. Check out dfeveron.zip and its Disco Bomb!
- I added support to run the main image creation script
-
@Texacate Thanks...I plan on installing it this weekend. I have been looking at ImageMagick and messing around with it as well. Will let you know how your install goes.
-
@TheRealSmilebit
custom_map.csv
contains 600 labels now! Getting the data from www.arcade-museum.com, but its not automated. Clicking on each game's web page, and copy/paste . Not all pages have labels, but it's been much faster than playing each game. Downside is, there's a chance I don't have the buttons in the right order. Verification will be needed at some point. -
Update: I have collected button label data for ~1000 games, plus the ~1000 from the the controls.dat project, for a total of ~2000 titles. For now I'm done collecting the button data, and will work on improving usability of the image generation script. Suggestions are welcome.
-
I received some feedback and have flipped how the two rows are labeled by default;
New Mapping
MAME RetroPad CntrPnl 123 --> YXL --> 123 456 --> BAR --> 456
Before it was
MAME RetroPad CntrPnl 456 --> YXL --> 123 123 --> BAR --> 456
Also, the script searches three database files for label data, (vs one previously). Now:
custom_map.csv
file is truly reserved for user customizations,button_map.csv
file was renamedprimary_map.csv
, and the additional data I collected is insecondary_map.csv
-
@Texacate Thanks a lot for this project! I plan to use it on a secondary SPI LCD connected to the GPIO. I assume that in this case I need to modfiy the server so that it outputs the images in a second framebuffer, rather than a second Raspberry.
Regarding the mappings, could this be made configurable via an external file? The motivation is that, whereas Mame-2003plus default mapping is:
123
456In FBalpha (which I use more often for arcade games) it is:
456
123Also, with this approach it could be possible to support global custom controls.
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.