Using MAME Overlays/Bezels and shaders with RetroArch in RetroPie
-
Hi @Floob
I have a 4:3 and want to have a few for vertical games.
Is there some way I can make the overlay to maintain proportions, center the image?
Maybe something to do with overlay0_rect ?
EDIT: yup, that was it.
This looks ok on my 1280x1024 monitor:
overlay0_rect = "-0.22,0,1.44,1"
That is the positioning left, top, right, bottom. note that the padding on the right should be twice the positioning on the left to center the image. The unit is screen lengths or heights, "0,0,1,1" is default - the left side starts at the 0column of the screen, the top starts at the 0 row, and ends at the row that is 1 full screen length down, and 1 full screen right. If I placed "-1,0,2,1" I am telling the png to start at the column that is -1 screen to the left (1 full screen away) and the 2 is 1 screen length past the right side (the actual screen legnth is 1 plus 1 extra is 2).
This will be added to each of the CFG files found in \\RETROPIE\configs\all\retroarch\overlay\arcade-bezel-overlays
In the rom.zip.cfg, found in the roms folder, I am playing around with the height and width. so it looks ok. I found that
custom_viewport_width = "656" custom_viewport_height = "875"
works well for this screen, when you are in a vertical game like 1943. Then to center the CRT monitor take the screen rez, subtract the width and height, then divide it by two.
I'm hoping there's a proportional/center toggle, so I don't have to do this.
-
I use my machine on two screens - a 16:9 and 4:5
I created 2 folders in /arcade-bezel-overlays /4by5 and /16by9 i added the game.cfg files in there and referenced ../game.png either as overlay0_rect = "-0.22,0,1.44,1" or overlay0_rect = "-0,0,1,1" to stretch the same 16:9 ong to fit one monitor or the other.
In the retroarch CFG I just add in the subfolder depending on the screen I am using, and adjust the placement of the center of the screen (I really wish there was a center token)
I then need a script the adjusts all the game.zip.cfg files to recenter them too. This is the guts of this script, but I'll have ti do a regex find and replace I think. https://pastebin.com/fnf4HCnS
-
Has anyone created a script yet to convert MAME .lay files to RetroArch format? Is it even possible to do so?
I'm sitting on a ton of 16:9 MAME bezels (I converted practically every bezel I could find from RocketLauncher (Krakerman, Griffin518, Derek Moore, Ashurax, etc.) to MAME format), and I've been sharing the results via MEGA and EmuMovies, and I thought it might be interesting to have them converted for use in RetroArch as well.
-
@phulshof I dont't think it's possible to do it automatically.
You have to rescale the actual game area for these bezels to adapt to specific retroarch core actual screen ratio and game area size. Also do you want to scale integer, maximum possible game area or full original bezel (small game area, like official mame bezels do) ?
And you need to create retroarch CFGs accordingly.
Automatically scaling or cropping mame bezels wouldn't do justice to those really nice original artwork.In the end I choose to manually create the overlays/bezels for the games I like most and/or retropie forum users asked for.
See these posts.
Overlays Repository here. -
I have 1000+ 16:9 bezels here, so if it's in any way possible I'd like to script the conversion (image rescale if needed, and .lay to .cfg). 😀
There's not that much difference between the .lay and the .cfg parameters, is there? Can RetroArch support multiple overlays per game, and allow you to pick one?
-
As an example, here's a bezel by Ashurax for Sexy Parodius. The .lay information that goes with it is
<element name="bezelA">
<image file="Bezel - 16x9 (Ashurax).png" />
</element>
<view name="Ashurax 16x9">
<screen index="0">
<bounds x="322" y="37" width="1277" height="1006" />
</screen>
<bezel element="bezelA">
<bounds x="0" y="0" width="1920" height="1080" />
</bezel>
</view>As you can see, the bezel is defined as 1920x1080, with the viewarea defined starting at (322,37) with width 1277 and height 1006. What would such a definition look like in a cfg file for this bezel?
-
@phulshof
should be like this:# 19 = Config, 20 = 1:1 PAR, 21 = Core Provided, 22 = Custom Viewport aspect_ratio_index = "22" # these two define the pixel size of the emulated screen custom_viewport_width = "1277" custom_viewport_height = "1006" # the following two decide how far from the left and top the game screen is shown custom_viewport_x = "322" custom_viewport_y = "37"
-
@phulshof Retroarch can't do overlay selection but with @meleu's Art install script you can select which overlay you want to install.
-
@UDb23
Looks to me like it should be possible to script a conversion from .lay to .cfg then. :) I may have missed this part of the discussion, but does RetroArch automatically scale it to another 16:9 resolution or do you have to convert that as well? I know that some of the bezels I have are for 4K resolution, and MAME automatically scales that.I'll have a look at converting a single bezel for this purpose. If successful, I will try to script a conversion of all the 16:9 bezels I have available. Assuming people would be interested: what would be the best way of offering them to this community?
-
I just had a quick look; looks like I have over 2000 bezels for almost 1000 different games. That's not including the conversions Metalzoic did to show the game at full resolution (at the cost of some of the artwork).
-
This post is deleted! -
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.