Arcade Overlays


The scratches can be done separately to the main artwork in MAME, like this.

“element name=“screen_mask” image file=“horz_screen_mask.png” / /element”

The scratches would be a separate png called “horz_screen_mask.png”, or anything you like, and used like so.

<overlay element="screen_mask">
  <bounds x="362" y="92" width="1200" height="900" />

You can then, using the coordinates, position the scratches where you like, and different for each machine. I may add a option for another machine in the main zip file.

Thanks for the comments.


John! Those look beautiful!


Hi John! Do this mean that these are not longer compatible with RetroArch anymore?

Any news about the Vectrex overlays that you started to work on last year?


Hi John, if you look into my zip file, I took a slightly different approach: I took your png file with the scatched screen and isolated the screen within GIMP into a separate layer, then saved both parts in full screen. Advantage: I do not have to fiddle around with coordinates of the screen, but set both layers over the entire screen. Additional storage requirements are negligible. Again, such great work!


You, or in my case Me, would need PNG overlays for every machine, twice. One for scratch effect, one without. My Outrun zip would have 6 fairly large PNGs. But make a separate scratch PNG and you only need 4 PNG overlays, 3 for the machines and 1 small one for the scratches. Then, you can use the scratch PNG on ALL overlays without extra Photoshop work. At the moment, I would need to edit over 150 overlays to add a scratch effect layer, save them out and re-do the lay files and archive them to zip. The other great thing about a separate PNG is you can make up loads of effects without touching the original overlay. For example, I have made refection, light reflection, and arcade reflection PNGs that can be added to the lay without the need for Photoshop. Bring up the MAME menu and you now have a whole load of machines to choose from with different effects.

Rion, they may work in Retroarch but the user would need to do all the cfg files themselves, and the lining up of the emulated image. The beauty of MAME is the shaders auto rotate with the image for horizontal or vertical. So, scanlines auto-rotate without having to do separate configs. You don’t need to worry about Integer on or off, the scanlines just work.

The Vectrex ones are finished in MAME only, and I doubt I will return to Retroarch because the vector shaders are night and day better in MAME.


Thank you John.

I have no problem with creating the cfg files themselves, and lining up of the emulated image. Because i use Retropie so editing cfg files is something i do often.

Is this the case with Vetrex to? If so no problem just glad to be able to use them with Mess in RetroArch.


John, love your work. I am really, really looking forward to your latest updates with a clean play area and mame layouts. I was doing this manually on some of your wonderful overlays for the handful of my favorites, but my photoshop skills are quite weak. :slight_smile:

Thanks for creating these! They really add to the experience.


Hey guys, I know John said that he lost password and therefor inability to share the .zip, but does anyone else have a mirror they could possibly share?

I am a graphic designer, and I must say - these are blowing me away!


@avisioncame You can find some of them in my repo here:


I really appreciate the link! Any idea how to add the screen curvature? I can’t figure it out for the life of me.


Here is the description for enabling curvature (also by Floob) - hope that helps!

Curvature on the shader Remember, you can disable the curvature on the shader by editing /opt/retropie/emulators/retroarch/shader/arcade-bezel-shader/shaders/crt-pi.glsl /opt/retropie/emulators/retroarch/shader/arcade-bezel-shader/shaders/crt-pi-vertical.glsl

#define CURVATURE = Curvature ON //#define CURVATURE = Curvature OFF


I think Libretro included them as a repo just hit clone/download as zip

I’m not 100% sure as this was done a while back


How about for windows?


I’ve got 720p android device. I’ve just try to copy one “generic” overlay cfg to /overlays/borders/, and it’s not working at all. Is there any way to make this overlays work on 720p android device? I don’t need each and everyone, but some generic overlays perhaps? Thanks


720p should be able to use the same 1080p overlays, you just need to reduce the overlay scale in the menu.


Problem been fixed, thanks


Anyone heard from John lately? Can’t wait to play with the next MAME overlay updates he mentioned. :grin:


Looking for a bit of help. :flushed:

I followed Floob’s instructions here to add manually, just thought I’d test one game - Asteroids - to see how things went. The overlay loaded up on screen as expected but the game itself seems to be pushed over to the right hand side of the screen and appears cropped and very faded.

The config inside the roms folder reads as follows:

Config created by Floob

video_shader = “/opt/retropie/emulators/retroarch/shader/arcade-bezel-shader/crt-pi.glslp” video_shader_enable = “true”

input_overlay = /opt/retropie/emulators/retroarch/overlays/arcade-bezel-overlays/asteroid.cfg input_overlay_enable = true input_overlay_opacity = 0.700000 input_overlay_scale = 1.000000

custom_viewport_width = “980” custom_viewport_height = “720” custom_viewport_x = “480” custom_viewport_y = “180”

aspect_ratio_index = “22”

video_scale_integer = false

Do I need to change the viewport or something like that?

Working on a pi3 with retropie 4.2

Edit: tried again on a fresh, vanilla image and they work fine. Thanks!


John, your overlays are nothing short of mindblowing. The realism you manage to create is just unbelievable. Personally I like to have the full bezel showing (even though this means a smaller playing area) so to that end I’ve tried to build upon and learn from your work to make my own (with limited success).

Any tips, advice or feedback would be greatly appreciated!


Having a full bezel would mean scanlines wouldn’t look right due to the decrease in screen area. If you’re happy with the results then stick with them.

My original background image is taken from a real 80’s arcade and that was the aim I was looking for, it just gives it a 80’s arcade atmosphere. The next big step would be for short animated backdrops, if that were possible. Simply having the background machines display their attract modes would be a real step up for realism.

I won’t be linking my Mame overlays here because they are Mame-only overlays. They use lay files, and have multiple overlays in the same archive, something retroarch doesn’t support.