RetroArch – Introducing the Mega Bezel Reflection Shader

Article written by HyperSpaceMadness



RetroArch keeps introducing innovations to the retrogaming world, constantly building simple roads for players to enjoy classic games in new and sometimes better ways.

Getting the sweet spot between ease of use and customization can be a time-consuming process, and sometimes requires a deep insight of how old technologies worked: refresh rate, aspect ratio, scaling, overscan, deconvergence are terms which we may or may not be familiar with, and these all play an important part in building a retro gaming experience that feels better, yet passionately authentic.

How do we get a handle on this?

Building an idealized CRT (cathode ray tube) like display experience. Getting the best out of post-processing with the latest CRT shaders fused into a “one stop” solution. Making it incredibly easy to customize, and yet performant. A fresh and unique starting point for the retro game lover.

Console branded tv by Soqueroeu, great for playing on a big screen in the living room
Console branded tv by Soqueroeu, great for playing on a big screen in the living room

The Mega Bezel Project started back in July 2019 when developer HyperspaceMadness was looking at experimental shaders creating real-time reflections on emulated display bezels. More than two years later, the swiss-army-knife of visual simulation to enhance the retro game experience is ready for players!

Sonic with a Blended Waterfall, Genesis Preset and graphics by Duimon
Sonic with a Blended Waterfall, Genesis Preset and graphics by Duimon

The Mega Bezel is unique in that it bends the common definitions of shaders and overlays in an out-of-the-box experience: custom calculations take care of games native resolution and scaling, dynamically draw bezels around the gameplay area filled with curvature simulation and reflections, incorporating a unique pipeline of CRT simulation models and other visual conditioning of the game image, color correction, de-dithering, and adding responsive backgrounds and lots of additional features to enjoy.

The shader centralizes a lot of complex tasks and makes them instantly available for all cores: screen rotation and position, horizontal and vertical orientation, zooming, cutting away games black spaces to get a real full-screen, and filling the aspect ratio difference between the emulated screen and your monitor with interesting graphics. Mega Bezel even adds original solutions, like the ‘Night Mode’ to simulate a dimly lit room and ‘Glass Mode’ for a modern and dynamic way to fill the entire monitor.

Mega Man 8 with the Glass Preset, good for filling the screen, avoiding any worries of OLED burn-in
Mega Man 8 with the Glass Preset, good for filling the screen, avoiding any worries of OLED burn-in

Being based on contributions and discussions from the Libretro forums, Mega Bezel is a community project at its heart: shader writers and artists are actively developing features and customized presets which max out the shader capabilities, and making them freely available for retro players to enjoy and further customize, chasing the their ideal setup.

3DS Preset by Duimon with alternate layout and custom graphics
3DS Preset by Duimon with alternate layout and custom graphics

Easy to use for newcomers, deep in customization for emulation maniacs, flexible for artists: the Mega Bezel project is a fun ongoing journey that strives to bring wonderful features to everyone, minus the hassle of setup!

Game Boy Advance LCD Preset & Graphics by Duimon
Game Boy Advance LCD Preset & Graphics by Duimon

You can get the basic Mega Bezel shaders inside RetroArch by running Online Updater -> Update Slang Shaders then the shaders will be located inside shaders/shaders_slang/bezel/Mega_Bezel/Presets. Be sure to read the setup portion of the ReadMe.md to help you get started you can find it in the Mega_Bezel folder just mentioned.

A small group of talented artists has also come together using the Mega Bezel to create suites of shader presets with beautiful graphics covering many consoles, computers and PVMs to share with retro gamers.

If this sounds exciting head over to the Mega Bezel thread on the Libretro forum to find more about the Mega Bezel, and links to the artist’s pages and shader preset collections.

https://forums.libretro.com/t/hsm-mega-bezel-reflection-shader-feedback-and-updates/25512

Below are more examples of the Mega Bezel and artwork from the community.

OutRun preset and graphics by Orion's Angel
OutRun preset and graphics by Orion’s Angel
Star Wars with a lovely JVC PVM from TheNamec!
Star Wars with a lovely JVC PVM from TheNamec!
Garou: Mark of the Wolves with Smoothed Preset
Garou: Mark of the Wolves with Smoothed Preset
REZ with Dreamcast core upscaling with shader downscaling and cyberpunk style by TheNamec
REZ with Dreamcast core upscaling with shader downscaling and cyberpunk style by TheNamec
Monkey Island with some smoothing and deconvergence magic
Monkey Island with some smoothing and deconvergence magic
The Great Gianna Sisters with a preset and graphics by TheNamec
The Great Gianna Sisters with a preset and graphics by TheNamec
Tron's Deadly Discs showing supports for the game Image on top of backdrop
Tron’s Deadly Discs showing supports for the game Image on top of backdrop
Choplifter with the Glass preset and some scaling
Choplifter with the Glass preset and some scaling
Resolution info can be printed to the screen so you can see what resolutions are used
Resolution info can be printed to the screen so you can see what resolutions are used
Shadowgate on Macintosh with graphics by Duimon
Shadowgate on Macintosh with graphics by Duimon
Monochrome Amber mode applied
Monochrome Amber mode applied
Vib Ribbon on PS1 with color added and a nice PVM from TheNamec
Vib Ribbon on PS1 with color added and a nice PVM from TheNamec

New PlayStation1 core SwanStation now available for RetroArch!

SwanStation is a totally new PlayStation 1 (aka PSX) emulator focusing on playability, speed, and long-term maintainability. Accuracy is not the main focus of the emulator, but the goal is to be as accurate as possible while maintaining performance suitable for low-end devices. “Hack” options are discouraged, the default configuration should support all playable games with only some of the enhancements having compatibility issues. A “BIOS” ROM image is required to start the emulator and to play games. You can use an image from any hardware version or region, although mismatching game regions and BIOS regions may have compatibility issues. A ROM image is not provided with the emulator for legal reasons, you should dump this from your own console using Caetla or other means. SwanStation includes hardware rendering (OpenGL, Vulkan and D3D11), upscaling and 24-bit color and a 64-bit dynarec.

It is currently available on the Libretro buildbot for the following platforms:

  • Windows
  • Linux
  • Android (AArch64-only)

Features

  • Relatively high degree of compatibility
  • Has three hardware renderers: OpenGL, Vulkan, and Direct3D11
  • Allows you to internally upscale the resolution
  • Has a dynamic recompiler and cached interpreter CPU core
  • Ability to run PSX CDROM emulation on a separate thread, reducing frame time spikes
  • How to get it

    There are two ways to install and/or update the SwanStation core:

    a – If you have already installed the core before, you can go to Online Updater and select ‘Update Installed Cores’.

    b – If you haven’t installed the core yet, go to Online Updater, ‘Core Updater’, and select ‘Sony – PlayStation (SwanStation)’ from the list. It will then download and install this core.

    BIOS required

    SwanStation, like Beetle PSX, requires a real BIOS in order to work. There is no HLE BIOS like PCSX ReARMed.

    A “BIOS” ROM image is required to start the emulator and to play games. You can use an image from any hardware version or region, although mismatching game regions and BIOS regions may have compatibility issues. A ROM image is not provided with the emulator for legal reasons, you should dump this from your own console using Caetla or other means.

    Recognized BIOS images:

    • scph5500.bin
    • scph5501.bin
    • scph5502.bin

    Benchmarks

    System specs: CPU – Intel Core i7 7700k | GPU – Geforce RTX 2080 Ti (11GB VRAM, 2018) | 16GB RAM

    We’ve performed some basic performance tests between SwanStation and Beetle PSX HW. We are using the same baseline resolution (1x) for both cores, and we try to make the test as fair as possible by disabling features such as PGXP and texture filtering for Beetle PSX HW (both features which SwanStation lacks).

    SwanStation

    Title Direct3D11 Vulkan OpenGL
    Tekken 3 396fps 414fps 335fps
    Alien Trilogy 538fps 552fps 499fps

    Beetle PSX HW

    NOTE: Beetle PSX HW does not have a Direct3D 11 renderer

    Title Vulkan OpenGL
    Tekken 3 326fps 229fps
    Alien Trilogy 480fps 473fps

    As you can see, on average performance is overwhelmingly in SwanStation’s favor. It does have to be said that Beetle PSX HW right now has some unique features that SwanStation lacks, such as PGXP and texture replacement.

    Conclusion

    You should definitely give SwanStation a go if you want a high performance PlayStation1 emulator. If you find Beetle PSX HW to be running too slowly for you on your system, you should check if SwanStation is faster instead.