PUBG Mobile on GameLoop Beta: All Issues FixedThe latest EmuDesk Smart Tool update fixes all compatibility issues with GameLoop Beta including camera stuttering and delivers fully functional keymaps, including at 1080p and 2K.Get EmuDesk Smart Tool

RetroArch Overlays and Bezels: How to Add TV Frame and CRT Effects

Low4 solutions

I want to add a TV bezel or a CRT-style frame around my RetroArch games so they look like they are being played on an old television. I have seen screenshots where people have a dark decorative border with scan lines and the game window in the center. How do I enable overlays and bezels in RetroArch? I have found the overlay settings menu but I am not sure which files to download or how to configure the display so the bezel is correctly sized and the game is not stretched.

Last updated 8 weeks ago0 users reported this issue73
Sign in to interact

Solutions

Solution 1

enable-a-basic-overlay-from-the-retroarch-online-updater (sortOrder=1, isMostHelpful)

RetroArch supports two visual customization systems: Overlays (PNG images with transparency that sit on top of the game — used for bezels and touchscreen buttons) and Shaders (GPU filters that modify the rendering — used for CRT scanlines, pixel smoothing, and upscaling). For bezels, you use the Overlay system. For CRT effects, you use Shaders (see S3).

Step 1 — Download overlay packs via Online Updater:

  • In RetroArch, go to Main Menu → Online Updater → Download Overlays.
  • This downloads a overlays folder with hundreds of bezels (NES, SNES, Genesis, GBA shell, arcade cabinet art, and more) into your RetroArch data directory.

Step 2 — Enable an overlay:

  • Go to Settings → On-Screen Display → On-Screen Overlay.
  • Turn Display Overlay ON.
  • Set Overlay Preset: tap the field and navigate to the overlays folder (e.g., overlays/borders/). Pick any .cfg file — this is the overlay definition.
  • Set Overlay Opacity to 1.00 (fully visible).

Step 3 — Match your viewport to the bezel opening:

  • Most bezels are designed for a 4:3 aspect ratio game window. Go to Settings → Video → Scaling → Aspect Ratio and set it to 4:3.
  • Enable Integer Scale OFF (so the viewport fills the bezel opening exactly).
  • The result: your game appears inside the bezel's screen cutout, with decorative art filling the rest of the display.

Save the overlay setting per-core or per-game: in the RetroArch menu → Quick Menu → Overrides → Save Core Override. This applies the bezel automatically whenever you launch that core.

Solution 2

install-the-mega-bezel-shader-pack-for-premium-crt-bezels (sortOrder=2)

The Mega Bezel Reflection Shader pack (by HyperspaceMadness, available on GitHub) combines bezels and CRT shaders into a single system — the bezel artwork, curvature, scanlines, bloom, and reflections are all generated by one shader preset. It looks dramatically better than a plain PNG overlay but requires a decent GPU.

Install Mega Bezel:

  1. Download the latest Mega Bezel release from github.com/HyperspaceMadness/Mega_Bezel_Shader_Repo → Releases → download the zip.
  2. Extract it into RetroArch's shaders folder: RetroArch/shaders/. You should now have a shaders/Mega_Bezel_Community/ subfolder.
  3. In RetroArch, go to Quick Menu → Shaders → Load Shader Preset.
  4. Navigate to Mega_Bezel_Community/ and pick a preset file (.slangp or .glslp). Start with MBZ__1__ADV.slangp (Advanced — good quality/performance balance).
  5. Apply and save: Quick Menu → Shaders → Save Shader Preset.

Performance note: Mega Bezel is GPU-intensive. On integrated graphics or weak GPUs, use the MBZ__3__STD-SCREEN-ONLY.slangp preset (lighter CRT only, no bezel art). On a discrete GPU (GTX 1060 / RX 580 or better), the full Advanced preset runs smoothly.

Solution 3

apply-a-standalone-crt-scanline-shader-without-a-bezel (sortOrder=3)

If you want CRT scanlines and phosphor glow without a decorative bezel frame, use a standalone shader preset. These run on any GPU and give a classic tube-TV look.

Step 1 — Update your shaders: Online Updater → Update GLSL Shaders (or Slang Shaders if your driver supports Vulkan/D3D). This adds hundreds of shader presets to RetroArch/shaders/.

Recommended presets by hardware strength:

  • Low-end PC / handheld: shaders/crt/crt-pi.glslp — lightweight scanline filter designed for Raspberry Pi; fast on any hardware.
  • Mid-range: shaders/crt/crt-geom.glslp — adds curvature, dot mask, and vignette; classic look with modest GPU cost.
  • High-end: shaders/crt/crt-royale.slangp — the most accurate CRT simulation (shadow mask, aperture grille, bloom, phosphor persistence); requires a dedicated GPU at 1080p+.

Apply a shader: Quick Menu → Shaders → Load Shader Preset → navigate to the .glslp/.slangp file → Apply Changes. Save with Save Core Preset to apply automatically for that system.

Integer scale for pixel-perfect look: Settings → Video → Scaling → Integer Scale ON. With integer scaling and a CRT shader, each original pixel maps to exactly N×N display pixels — the cleanest base for any scanline filter.

Solution 4

fix-overlay-not-showing-or-bezel-wrong-size (sortOrder=4)

Overlay not visible at all:

  • Confirm Settings → On-Screen Display → On-Screen Overlay → Display Overlay = ON.
  • Check Overlay Opacity is not 0.00 — set it to 1.00.
  • Some video drivers (D3D12, Vulkan) may need Video → Threaded Video = ON for the overlay to composite correctly. If you are on OpenGL and the overlay is invisible, try switching to a different overlay .cfg — some .cfg files target a specific resolution and fail silently on mismatches.

Bezel not lining up / game not inside the cutout:

  • The bezel's screen cutout is designed for a specific aspect ratio. Confirm Settings → Video → Scaling → Aspect Ratio = 4:3 for SNES/NES/PS1 content, or Custom if the bezel specifies dimensions in its .cfg.
  • Turn off Integer Scale if the game viewport is too small to fill the cutout.
  • Some bezels include a .cfg file that sets viewport coordinates — open the .cfg in a text editor to read the custom_viewport_width / _height / _x / _y values and confirm they match your screen resolution.

Overlay shows but disappears when the game starts: this is a per-core override issue. The active core may have a saved override that sets Display Overlay = OFF. Go to Quick Menu → Overrides → Remove Core Override, then re-enable and re-save the overlay setting.

Touchscreen overlay buttons overlap with the bezel: bezels and touchscreen button overlays are both overlay files — you can only load one at a time. Choose: use the bezel for TV/monitor display, or the button overlay for mobile/touchscreen use. Switch via Settings → On-Screen Overlay → Overlay Preset.

Experiencing a different problem?Report a new issue to help the community find solutions.

Comments (0)

No other comments yet. Be the first to share your thoughts.

Sign in to_leave_comment

On This Page