Author Topic: [Guide] Launch Bezels from Attract Mode Tutorial (The Bezel Project)  (Read 178 times)


  • Jr. Member
  • **
  • Posts: 22
    • View Profile
As I am a macOS user this is fully operational on macOS with Attract Mode & RetroArch for macOS.  As these both applications are cross platform, with small change to the paths I would say this could also work in Windows & Linux

The concept is this;

Attract Mode from the args line can launch Bezels (RetroArch overlays), the following code will look for a "game" bezel, if not found then a "system" bezel will be loaded.

Bezels would normally need to be in the RetroArch config/emulator folder which can cause conflict eg Genesis Plus GX is used for 10 systems or more, many of these systems have the same game eg NBA Jam meaning you couldn't have multiple different bezels with the same name in this emulator folder.

Launching the bezels via Attract Mode means we can have the bezel folders wherever we want on our system.

This is a huge leap forward as with this method we can set per Attract Mode Emulator Bezels rather than per RetroArch emulator bezels, basically we have a lot more control!

The Emulator cfg would look like this;

Code: [Select]
# Generated by Attract-Mode v2.2.0-3
executable           /Applications/
args                 -L /Applications/ "[romfilename]" --appendconfig "$HOME/Documents/RetroArch/overlays/configs/SonyPSX.cfg|$HOME/Documents/RetroArch/overlays/configs/PSX/[name].cfg"
rompath              /Volumes/Roms/psx
romext               .zip;.7z;.cue;.img;.mdf;.pbp;.toc;.cbn;.m3u
system               Sony Playstation
info_source          listxml
artwork    boxart          /Volumes/Roms/psx/boxart
artwork    cartart         /Volumes/Roms/psx/cartart
artwork    flyer           /Volumes/Roms/psx/flyer
artwork    marquee         /Volumes/Roms/psx/marquee
artwork    snap            /Volumes/Roms/psx/snap
artwork    wheel           /Volumes/Roms/psx/wheel

The args explained above;

Code: [Select]
-L /Applications/ "[romfilename]" this part launches the rom

Code: [Select]
--appendconfig "$HOME/Documents/RetroArch/overlays/configs/SonyPSX.cfg this section loads the system bezel in this case SonyPSX and this bezel will stay if no game bezel found.

Code: [Select]
|$HOME/Documents/RetroArch/overlays/configs/PSX/[name].cfg" the last section of the args looks for a game bezel, if a game bezel cfg exists in the folder, the game bezel will load, if not then the system bezel will load.

The correct aspect ratio can also be set in the system bezel cfg (eg this is handy for odd aspect ratios or handhelds)

To understand the folder structure of the bezels well this is kinda a RetroArch thing and not Attract Mode but I guess as these bezels are launched from Attract Mode from different locations then it doesn't hurt to mention this briefly here;

We will continue to use the example above for Sony PSX

There are two config files that are used with this. The first config file “points” to a second config file. The second config file is located in the same folder as the bezel PNG file is. Retroarch can’t be told to “load a PNG” can only be told to “use a config file” for knowing what bezel PNG file to use.

These second config files (along with the PNG bezel files) are stored in a nominated folder.

Retroarch uses these two config files in conjunction with one another in order to know what bezel PNG file to use.

The first part of the -appendconfig points to the 1st cfg file for the system bezel it looks like this;
Code: [Select]
input_overlay = "~/Documents/RetroArch/overlays/borders/Sony-PlayStation.cfg"
That next cfg file (paired with a png) looks like this;
Code: [Select]
overlays = 1
overlay0_overlay = Sony-PlayStation.png
overlay0_full_screen = true
overlay0_descs = 0

So the first CFG file tells RetroArch to input an overlay, the second cfg file (which is paired with a png) tells RetroArch which actual actual bezel.png to load

For the per game Game Bezels which is the second half of the --appendconfig this points to a rom [name] cfg which will only trigger for that particular game and that looks like this; (This cfg name must match the rom file name)
Code: [Select]
input_overlay = "~/Documents/RetroArch/overlays/borders/GameBezels/PlayStation/Crash Bandicoot (USA).cfg"
That next cfg file (paired with a png) looks like this;
Code: [Select]
overlays = 1
overlay0_overlay = "Crash Bandicoot (USA).png"
overlay0_full_screen = true
overlay0_descs = 0

** IMPORTANT ** A few Minor settings need to be completed in RetroArch and these can be found in this part series

Core remaps will not be affected, some core overrides may affect the display of a systems bezels.

The overlays can very easily be stopped or removed by simply renaming the folder that contains the cfg files

The Bezel Project are doing an amazing job creating all the thousands of individual game bezels that we can all enjoy.

This new method was implemented in Hyperpie 2 for macOS with success.

Sing out if you have any further queries.
« Last Edit: October 03, 2018, 07:47:30 AM by RetroMacGamer »


  • Full Member
  • ***
  • Posts: 67
    • View Profile
Re: [Guide] Launch Bezels from Attract Mode Tutorial (The Bezel Project)
« Reply #1 on: October 08, 2018, 07:55:33 AM »
For the bezel thing in RA, I was thinking a workaround is just to duplicate the core file for each system it identifies with.


Though honestly I doubt it would work since the way RA structures the config paths.  Could give it a shot.
« Last Edit: October 08, 2018, 08:03:59 AM by dukpoki »