Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
decoration [2021/01/24 12:30] – ↷ Links adapted because of a move operation fishoudecoration [2023/10/24 00:53] (current) lbrpdx
Line 1: Line 1:
-~~NOTOC~~ +====== Decorations ======
-===== DECORATION =====+
  
-In the 80s and 90s, most video game screens had a 4/3 aspect ratioNowadays, screens mostly use a 16/9 ratio, which means that they provide extra space on the sides compared to a 4/3 aspect ratio.+Recommended video: [[https://youtu.be/-ZbAjkpf7Pw|Batocera Nation's excellent "How to Install Bezels in Batocera".]]
  
-Rather than stretching out the 4/3 image to fit into a 16/9 model, you can fill the extra space with a "backgroundimage that provides an even more immersive experience. You can simulate the looks of an old TV set, or even a background that matches the game you are playing.+In the 80s and 90s, most video game screens had a 4:3 aspect ratio. Nowadays, screens mostly use a 16:9 ratio, which means that they provide extra space on the sides compared to a 4:3 aspect ratio. 
 + 
 +Rather than stretching out the 4:3 image to fit into a 16:9 model, you can fill the extra space with a background image that provides an even more immersive experience. You can simulate the looks of an old TV set, or even a background that matches the game you are playing. We call this type of decoration a //bezel//
 + 
 +<WRAP center round info> 
 +On SBCs, not every system and emulator supports bezels. Most Retroarch cores should support the right bezel out-of-the-box. Standalone cores and more modern system often do not support bezels or do not need any, because the systems already use 16:9 ratio. 
 + 
 +Since **v33**, decorations on x86_64 and RPi 4 can be used on most emulators! 
 +</WRAP>
  
 The ''DECORATION'' menu provides you several options for this: The ''DECORATION'' menu provides you several options for this:
   * several ''AMBIANCE'' options that simulate an retro TV set or an old arcade alley   * several ''AMBIANCE'' options that simulate an retro TV set or an old arcade alley
-  * integration with [[https://github.com/thebezelproject|the Bezel Project]] that provides personalized bezels per gaming system, and for many of them even personalized bezels per game! You can select the systems you want to enable theBezelProject from the menu ''UPDATES & DOWNLOADS'' -> ''THE BEZEL PROJECT''.+  * integration with [[https://github.com/thebezelproject|the Bezel Project]] that provides personalized bezels per gaming system, and for many of them even personalized bezels per game! You can select the systems you want to enable theBezelProject from the menu ''UPDATES & DOWNLOADS'' -> ''THE BEZEL PROJECT''<WRAP center round important 60%> 
 +The Bezel Project bezels do **not** provide viewport co-ordinate information. They are designed to be used with integer scaling turned //on// on a standard 16:9 1080p display and will not scale properly with alternate resolutions as the other provided decorations do. 
 +</WRAP>
  
-You can also [[customize_decorations_bezels|add your own bezels]] to Batocera.+You can also [[#decoration_(bezels)_customization|add your own bezels]] to Batocera.
  
 Example of a well known arcade game, with theBezelProject on (and ''curvature'' [[emulationstation:shaders_set|shader]] applied). Example of a well known arcade game, with theBezelProject on (and ''curvature'' [[emulationstation:shaders_set|shader]] applied).
Line 16: Line 25:
 {{ :invaders_tbp.png?600 |}} {{ :invaders_tbp.png?600 |}}
  
 +If you have a nice TV with a 4K resolution 3840x2160, or if you use an ultra-wide monitor, or if you basically use emulators with a resolution that is above 1920x1080 (larger, or taller), you might have distorted bezels, The reason is that Batocera shipts default bezels with a HD 1920x1080 resolution. To fix that, several options, you can either:
 +
 +  - switch to a lower resolution (like 1920x1080) - which might not look good for non 16:9 monitors and TV.
 +  - or turn on the **STRETCH BEZELS** option in the **GAMES SETTINGS** -> **DECORATIONS** menu.
 +  - or add a line ''mame.bezel_stretch=1'' in your ''batocera.conf'' for each emulator you want to stretch, or ''global.bezel_stretch=1'' if you want to enable it for all systems.
 +
 +<WRAP center round important>
 +Turning on bezel stretching for high resolutions has a significant impact on emulation performance.
 +</WRAP>
 +
 +===== Decoration (bezels) customization =====
 +
 +==== Create a new decoration set ====
 +
 +  * Connect to your batocera.linux box, [[add_games_bios|via the network]] for example
 +  * In the ''/userdata/'' folder, if it's not already there create a directory called ''decorations'' (next to ''roms'', ''bios'', ...) 
 +
 +{{bezel1.png?500|}}
 +
 +  * Inside the ''decorations'' folder, create a new directory, let's call it ''mybezels''
 +  * From the main batocera.linux menu go to **GAMES SETTINGS** -> **DECORATIONS**
 +  * Check that the ''mybezels'' decoration is available and select it
 +
 +{{bezel2.png?500|}}
 +
 +  * Note 1: default bezels are available at [[https://github.com/batocera-linux/batocera-bezel|our Github page]]. All default bezels have a 1920x1080 resolution and will be resized to your resolution, as long as your aspect ratio (width/height) is at least 16:10 (i.e. the screen is "wide", like 16:9 compared to a 4:3 classic aspect ratio). 
 +  * Note 2: if you create a "default" folder instead of a custom name, bezels will replace the existing "default" bezels (the 2 folders will be virtually merged, the ''/userdata/'' bezels take priority).
 +
 +==== Create a new bezel ====
 +
 +In Batocera, you can create:
 +
 +  * bezels for specific games on specific systems (mario on SNES)
 +  * bezels for specific games on all systems (mario on all systems)
 +  * bezels for specific system (a bezel for SNES, one for GB ...)
 +  * a default bezel for all
 +
 +You can have all four at the same time. In case your ROM/system selection matches more than one option, Batocera will apply the rules in the order listed above. If there is no suitable bezel, no bezel will be displayed.
 +
 +A bezel is composed of 2 files. A ''.png'' file and a ''.info'' file. See explanations below.
 +
 +<WRAP center round tip>
 +TVsIan has created a script which can automatically calculate the required ''.info'' files based on the transparent parts of the bezel's ''.png'' file. [[https://github.com/TVsIan/bezeltools|Read its usage instructions here.]]
 +</WRAP>
 +
 +=== Specific games on specific systems ===
 +
 +Bezels for a specific game on a specific system must be placed in the ''games/<system>/'' directory and have the same name as the ROM.
 +
 +Example: ''mybezels/games/snes/mario.png'' and ''mybezels/games/snes/mario.info''
 +
 +With this example, your bezel will be used for the game ROM ''mario'' only on SNES. If you have a ROM named ''mario'' on GB or NES, it will not be displayed.
 +
 +=== Specific games ===
 +Bezels for specific games on all systems must be placed in the ''games/'' directory and have the same name as the ROM.
 +
 +Example: ''mybezels/games/mario1.png'' and ''mybezels/games/mario1.info''
 +
 +In that case, if you have two ROM files named ''mario1'', one for SNES and one for GB, both will display your bezel.
 +
 +=== Specific systems ===
 +Bezels for specific systems must be placed in the ''systems'' directory and have the same name as the system.
 +
 +Example: ''mybezels/systems/snes.png'' and ''mybezels/systems/snes.info''
 +
 +=== Default bezel ===
 +The default bezel must be at top level and have the name ''default.png'' and ''default.info''
 +
 +Example: 
 +Create the file ''mybezels/default.png''.
 +A size of 1920x1080 is recommended.
 +The bezel will be drawn over the emulator rendering. Thus, you must keep transparent parts on the image.
 +
 +{{bezel3.png?500|}}
 +
 +=== the .info file ===
 +The ''.info'' file is a text file describing how the image must be displayed over the emulator.
 +  * ''width'': width of the image
 +  * ''height'': height of the image
 +  * ''top'': top/left/bottom/right define the marge in pixel let to render the emulator.
 +  * ''left'': top/left/bottom/right define the marge in pixel let to render the emulator.
 +  * ''bottom'': top/left/bottom/right define the marge in pixel let to render the emulator.
 +  * ''right'': top/left/bottom/right define the marge in pixel let to render the emulator.
 +  * ''opacity'': a value between 0.0 and 1.0 to define the transparency of the image
 +  * ''messagex'': horizontal position of game messages (when a state is saved for example)
 +  * ''messagey'': vertical position of game messages (when a state is saved for example)
 +
 +  {
 +   "width":1920,
 +   "height":1080,
 +   "top":2,
 +   "left":241,
 +   "bottom":1,
 +   "right":243,
 +   "opacity":0.7000000,
 +   "messagex":0.220000,
 +   "messagey":0.120000
 +  }
 +
 +===== Custom tattoo image (additional overlays) =====
 +
 +Batocera **v33** and higher now support being able to use a custom image overlaid on top of your decoration:
 +
 +{{:tattoo_on_decoration.png?720|A classy logo displayed in the top left.}} {{:system_controls_overlay.png?720}}
 +
 +This can be useful for two applications: 
 +  * remember what is the button mapping for the system you are playing (where on Earth are those Megadrive/Genesis ''A''/''B''/''C''/''X''/''Y''/''Z'' buttons on my controller??)
 +  * streamers putting their metadata/chat decorations on the side or for displaying helpful controller overlays for systems you may not be as familiar with (useful for games that feature on-screen button prompts).
 +
 +To set the tattoo globally, press ''[START]'' and navigate to **GAME SETTINGS** -> **DECORATIONS** -> **SHOW TATTOO OVER BEZEL** and set it to whichever option is preferred. To set a tattoo for a particular system, go to that system's gamelist, press ''[SELECT]'' and navigate to **ADVANCED SYSTEM SETTINGS** -> **DECORATIONS** -> **SHOW TATTOO OVER BEZEL**. If the **DECORATIONS** menu is not present then decorations, and by extension tattoos, cannot be used on that system yet.
 +
 +This can also be configured manually in ''batocera.conf'':
 +
 +<code>
 +# Enable tattoos for all systems: you can choose between 'system' (controller mappings per system), 'custom' (add your own PNG) or '0' to disable.
 +global.bezel.tattoo=system 
 +# Display the tattoo in the upper left corner (can be either NW, NE, SW or SE):
 +global.bezel.tattoo_corner=NW
 +# PNG (transparent backgrounds work best) location:
 +global.bezel.tattoo_file=/userdata/system/my_logo.png
 +# Specify a different tattoo for a specific system (overriding the default):
 +gbc.bezel.tattoo_file=/userdata/system/batocera-logo-transparent.png
 +# Disable the tattoo for a specific system (overriding the default):
 +snes.bezel.tattoo=0
 +</code>
 +
 +The corner selection can be different for each system: look at the example below with ''NW'' for GB and ''SW'' for FBNeo, each of them with their ''system'' tattoo selection:
 +
 +{{:tattoo_system_corners.png?nolink&600|NW and SW corners}}
 +
 +<WRAP center round tip>
 +In case you'd like to make your own, the source for the system controller tattoos can be found here: https://github.com/batocera-linux/batocera-controller-overlays
 +</WRAP>
 +
 +===== Troubleshooting =====
 +
 +==== There's a large number of systems missing from the downloadable Bezel Project bezels in the content downloader ====
 +
 +It is possible that this may happen if you have a special custom command for mounting the ROMs folder, such as:
 +
 +<code>
 +sharenetwork_cmd1=mount.cifs -o username=mylogin,password=mymdp //servername/share3/roms /userdata/Server_Roms
 +</code>
  
-If you have a nice TV and ask for a 4K 3840x2160 resolution to the emulators, but with a bezel that is HD 1920x1080: by default Batocera will add black borders around the bezelIf you want your display to be full screenyou can either:+this could interfere with the system list being properly loaded in the content downloaderTo workaround thistemporarily use internal storage, download the bezels, and re-setup the custom NAS commands.
  
-  - switch to a lower resolution (like 1920x1080) +Using the regular ''ROMS@IP-ADDRESS...'' syntax also works.
-  - add a line ''mame.bezel_stretch=1'' in your ''batocera.conf'' for each emulator you want to stretchOr ''global.bezel_stretch=1'' if you want to enable stretching to your native 4K resolution. **WARNING** this has an impact on the emulation performance.+
  
  • decoration.1611487851.txt.gz
  • Last modified: 3 years ago
  • by fishou