[SHADER] [OVERLAYS] - "LCD Master v2" + 70 Free Overlays

It’s hard for me to make this post. I still consider this project unfinished, but I just have to end it abruptly.

For the past year (since May 2025) I learned how to do Overlays that reacts to both Touch & Physical Input. I had so much fun doing them that I didn’t realized the quantity I made, as I kept trying new ideas, and refining my skill.

I intended to make a bigger release in the future, I was going to call “Wave One”… Initial deadline was August 1st 2026, but I can’t reach that date safely, it’s the reason why I’m making this thread, to let the RetroArch community know about my “one year’s worth work”.

Since January, I had an idea to try to make RetroArch react to Gyro / Accelerometer Sensor Input, and the thinng I attempted to do was a Python script connected to RetroArch PC via Local Network. Got as far as moving around a white square by tilting my (literal work tool) HP Notebook with Accelerometer included: Gyro Test

Then, literally a month later, something happened… suddenly SLANG shaders can benefit from Gyro/Sensor input natively (as long as your device supports VULKAN) Then I began to test with that feature:

TEST 1

TEST 2

Took a while, but learned to implement the feature properly and did this:

SHADER “LCD Master v1”

This day, I intended to continue with this project, but my Notebook is literally dying (it’s why I can’t keep working on this for now) and it’s the main reason why, today, I’m releasing all my work. I managed to give a “Last Hurrah” to my “LCD Master v2” shader, which is a rework of the previous one with added features in order to complement my Input Animated Overlays:

ARCADE:

HANDHELD:

SNES:

N64:

PS1:

There are not all, but they essentially showcases my work.

This is how “LCD Shader v2” works in a low-end device (Samsung Galaxy A03)

Video

And here’s a timelapse process of the creation of one “Input Animated Overlay”

Video

All this is almost incomplete. Was hoping to refine some of my Overlays and surely make even more shaders to complement the experience… but it seems the GPU of my Notebook (the one I’ve been using to make all of this) is finally dying:

Shader “LCD Master” has been submited to LibRetro/RetroArch via Github: menamortarte666-creator/slang-shaders: [LCD Master.slang] Includes V+H Scanline Parameters to build your own LCD Grid / LCD Temperature+Tint / Gyro Sensor Based Drop Shadow

Since it’s my first time doing this kind of project, I don’t even know if I submitted my work correcty (GitHub’s interface has always confused me). Feel free to download and play around with it.

This only begs for an immediate release before my Notebook dies completely. Initial release for “Wave One” (everything here) was August 1st. But that’s canceled for obvious reasons. You can still get my “complete work” in my Ko-Fi.

I really hope everything I’ve done thus far isn’t in vane. truman-show-ending-in-case-i-don't-see-ya

Sincerely: JuanMena (@MENAMORARTE)

[SHADER] LCD Master v2

LCD Master v2 - JuanMena (@MENAMORARTE)

  • 7 / March / 2026 -

Tested with:

  • Motorola g8 Powerlite
  • Samsung Galaxy A03

Here’s an explanation of how to use my Custom Shader. You can see screenshots to show how some of these options looks.

  1. Turn ON in order to make use of it’s options. Each tries to emulate the grid style and screen tone of the aforementioned “Handheld” You can stack one on top of the other. This doesn’t hurt performance.

[LCD PRESET]

  • DMG = Attempts to recreate the look of a DMG Gameboy.
  • POCKET = Attempts to recreate the look of a Pocket Gameboy.
  • LIGHT = Attempts to recreate the look of a Light Gameboy.
  • GBC = Attempts to recreate the look of a Color Gameboy.
  • GBA = Attempts to recreate the look of a Advance Gameboy.
  • SP = Attempts to recreate the look of a SP Gameboy.
  • NDS = Attempts to recreate the look of a Nintendo DS creen.
  1. If you’d like to spend some time doing your own Scanline or Grid, I’ve thought about this block with simple parameters. This comes in handy if you are not satisfied with “PRESETs”. You have to turn on the option to make use of the aforementioned parameters. With this, you can make your “Custom Grid” / “Custom Scanline”.

[LCD CUSTOM]

  • V.Scan = Draws Vertical Lines in Viewport
  • Line Width = Controls the Width of Vertical Lines in Pixels.
  • Separation = Controls the space between each Vertical Line in Pixels.
  • Opacity = Goes from 0=NONE to 1=BLACK with transparency in between.
  • H.Scan = Draws Horizontal Lines in Viewport.
  • Line Width = Controls the Width of Horizontal Lines in Pixels.
  • Separation = Controls the space between each Horizontal Line in Pixels.
  • Opacity = Goes from 0=NONE to 1=BLACK with transparency in between.
  1. If you want to add a layer of Ambient Light to your games, 4 parameters has been made for this purpose. This is done in order to recreate with full control the look and feel of Handheld Screens.

[LCD Temperature]

  • 0 = OFF
  • 1 = Cold
  • 2 = Warm
  • 3 = Old (desaturates and increases brightness)
  • 4 = Vivid (decreases brightness and adds saturation)
  1. The following block is more a proof of concept and is still in experimental state. Feel free to play around with it. It’s done to simulate other characteristics that were present in old LCD’s.

[LCD Features]

  • Subpixel Spread = Simulates bleeding of colors, it’s parameter is controlled at subpixel level, caped at 4 pixels in integer size.
  • Drop Shadow = Draws a shadow on every sprite in Viewport, capped at a “Black 90%” (not full solid black) with opacity control.
  • Gyro Sensitivity = If your device does not has gyro support, Drop Shadows fall back to a static state 4 subpixels down and 4 subpixels left. Once you change “Gyro”, Drop Shadow will move according to the movement of your device.
  1. This block is about a feature to simulate CRT like Screens. Must turn on to make use of parameters. It attempts to add two features: Round Corners and Geometry distortion in both X-Y.

[LCD Roundness]

  • Bezel = Draws black circles in each corner of viewport.
  • Curvature = Controls GEOMETRY curvature of viewport.
  1. This shader is done in order to complement my “Input Animated Overlays”. Attempts to have a “One to Rule Them All” solution when it comes to recreation of old hardware.