Handheld Border Shaders

This is a portable pack of various handheld shaders.
I made borders for existing ones and tweaked stuff around.

Main differences with what you can find in the shader repository (because of file size constraint there):

  • Some borders are less compressed
  • DMG ones have a dithering applied to limit the bending of the glass light effect
  • some tweaking in the parameters
  • new stuff not added there

Integer scaling should be OFF and display ratio on “full” to show the full border image. The scaling of the game picture is done by the shader itself at integer scale.

Resizing:

Go to the “Shader Parameters” and change “Video Scale” to the multiplier size you want to use.
GameBoy shaders can show some left over pixels when you downsize them, go back to the main shader menu and do “Apply Changes”, that should refresh and clean that.

Content:

GBA-x tries to replicate how Gameboy Advance colors looks like.
It uses VBA color profile (slightly more “ideals” than similar to the original GBA screen). Use the darken_screen/gamma parameters for games that are too bright/dark.

DS-no-border tries to be similar to the original Nintendo DS.

DS-64-x slightly unrealistic border for DeSmuME core options -> screen gap = 64. (ideal gap between screens for many games)

DS-90-x for DeSmuME core options -> screen gap = 90.

GB-dmg-x is a gameboy shader

GB-pocket-x for the gameboy pocket.

GB-pocket-high-contrast-x diverges from the original machine to give more contrast in black & white.

GB-color-x for the gameboy color. Gambatte has an option to simulate the original screen colors.

Game-Gear-x is a Game Gear shader.
It’s possible you’ll see some scaling problems at various sizes because of the non-square pixels the machine uses. Some games like Mickey Castle of Illusion or Prince of Persia were ported directly from the Master System and used an adapter to scale their resolution down to the Game Gear screen.
Most (all?) emulators can’t do the same.
You can try to change “Pixel Aspect Ratio” to 1.0 and lower the “Border Scale” parameter to get something playable.

Lynx-x for the Atari Lynx.
(For Beetle-lynx you can reduce the “Ambient” parameter to -0.01 if you don’t like the greyish black.)

NGPC-x for the Neo-Geo Pocket Color.

WSwan-x for the Bandai WonderSwan Color.

SVision-x for the Watara SuperVision.
SVision-high-contrast-x diverges from the original machine to give more contrast in black & white.

credits:

dmg-shader (Game Boy) made by hi-ban from Harlequin original work.
LCD shader made by CGWG.
image-adjustment-v2 shader and some parameters addition made by hunterk.
Internal scaling improvements by nfp0.
DS, GBA, GC color profile shaders made by Pokefan531.
Dual Filter Blur & Bloom by fishku.
GameBoy DMG / Pocket / Color / Advance / SuperVision pictures drawn by BLUEamnesiac.
Other pictures taken from wikipedia / wikimedia.
Other work if I forget any linked to Libretro shader repository.


:cheer: Most Recent Slang Version compatible with most video drivers:
:small_orange_diamond: (vulkan, direct 3D, new gl driver “glcore”)

:point_right: DOWNLOAD SLANG :point_left:

:small_blue_diamond:Extra:

Older version of the Slang shaders with individual files for different sizes.

Old cg version made originally for open gl (now for the old gl driver).

Old cg version with the LCD v1 shader (for people with a non Nvidia GPU having problems with the LCD shader v2 from the standard version).

SuperVision border filtered with a crt effect, will work best at 4x and maybe above: download

Old border background pictures (without lighting on the consoles but an effect on the glass): download

SixWingedFreak has made several color variation borders from Blue Amnesiac work.
You can find them on the bottom of this page.

Wonderswan Overlay for vertical games on a 1080p screen in landscape.



2015-05-27: updated GBA border + GBC border
2015-05-29: small corrections, GBA standard gamma changed to 1.35
2015-06-02: corrected a strange empty space left on top of the GBA border (seen only in 2x on a 1080p screen).
Made version for AMD / Intel. New slightly reworked GBC purple border as extra.

2015-06-04: Tweaked the Gameboy Pocket shader parameters and palette.
2015-06-05: made new borders for Nintendo DS.
2015-06-17: GBA and DS colors update from Pokefan531.
2016-02-18: added a WonderSwan shader.
2016-08-07: added Game Boy parameters made by Hunterk. High contrast version of the Game Boy Pocket shader.
Some preset renaming.

2017-07-22: added DS/GB/GBP/GBC/GBA/GG/NGP/WSwan borders version with lighting.
2017-09-07: some cleaning and fixes for GB shaders.
2019-03-04: New SLANG version shader pack.
2019-03-05: Replaced all GBA variations with an unique one based on VBA for CG too.
2019-03-09: Some fixes for slang GB shaders compatibility with the new gl_core driver.
2020-07-18: “Round dots” fix by nfp0 for GB shaders.
2020-08-07: Improve transparency in borders png (rescaling artefacts fix).
2021-03-19: Remade GB-DMG/Pocket/Color shaders to display the complete consoles pictures.
New shader for Watara SuperVision (DMG and high contrast).

2021-03-20: New Atari Lynx shader.
2021-03-21: Downsample Lynx shaders. Reworked most shaders size presets.
2022-09-30: New scaling method. GB resizing fix.
2022-12-18: Internal scaling parameter for all lcd based shaders, thanks nfp0.
2022-12-21: New borders for DS 64 and 90 pixels screen gap.
2022-12-23: New GameGear border. Upscaled some other ones.
2022-12-30: GameGear small clean up. Upscaled/Cleaned up WonderSwan.
2023-01-01: Remade NeoGeo Pocket.
2024-01-19: Added border brightness parameter from nfp0.
2024-04-03: Added glow version of LCD shaders.

12 Likes

Amazing job! I liked more the borders tha the shaders itself, would be nice those gba borders with touch control, the retroarch overlays gamepad are too ugly imho.

Amazing job! I liked more the borders tha the shaders itself, would be nice those gba borders with touch control (to use on android), the retroarch overlays gamepad are too ugly imho.

you can create an overlay with no images with hitboxes matching the areas and it would work

Reworked the GBA border, less space around the screen, glass reflection on the whole glass.

screenshot (jpeg looked bad, so it’s big)

I was working on a gba control overlay using the border image but there are a couple of issues. 1.) it makes the displayed screen quite small 2.) the lcd grid shader didn’t play nicely with cg2glsl so the image was messed up and I didn’t feel like debugging and/or writing a new shader by hand for it.

If the existing control overlays are “too ugly” you should just make some images you find more attractive and overwrite the existing ones.

Reworked the GBC border as well. It was a bit too dark, the glass reflection should be less artificial too.

screenshot

edit: and edited again to get rid of the bending around the screen, I can see it now that it’s night time. :stuck_out_tongue: +added a fix from CGWG for the LCD shader.

II’m assuming these wont be suitable for use on a Raspberry Pi? Is it feasible they could be converted?

I’m no expert but I heard the glsl conversion is problematic, and perhaps the Pi is too weak for most shaders.

It didn’t? Here v1 converts and works fine, but v2 fails to compile.

EDIT: v1-GLSL code: http://pastebin.com/pkzH4Xts

[QUOTE=twipley;23328]It didn’t? Here v1 converts and works fine, but v2 fails to compile.

EDIT: v1-GLSL code: http://pastebin.com/pkzH4Xts[/QUOTE]

Really I don’t know, ignore what I said. I just played around with glsl a while ago to see that my phone was too weak for any shader and that’s pretty much it.

Wonderful shaders! I’ve found these to be the most accurate means of simulating the displays for these handhelds. Two problems, though:

  1. The GBA and GBC shaders don’t work with my AMD graphics card. The ones in the standard repository do. This is likely due to the discrepancies between the two lcd_cgwg.cg files not being friendly to AMD cards, as I’ve discovered with several other shaders.
  2. Solid black Game Boy Colors were never sold at retail, it’s something one can get only through a custom paint job. Having it be grape/purple - or any of the five standard launch colors - would be more accurate to actually playing on a GBC.

[QUOTE=bleakassassin;23447]Wonderful shaders! I’ve found these to be the most accurate means of simulating the displays for these handhelds. Two problems, though:

  1. The GBA and GBC shaders don’t work with my AMD graphics card. The ones in the standard repository do. This is likely due to the discrepancies between the two lcd_cgwg.cg files not being friendly to AMD cards, as I’ve discovered with several other shaders.
  2. Solid black Game Boy Colors were never sold at retail, it’s something one can get only through a custom paint job. Having it be grape/purple - or any of the five standard launch colors - would be more accurate to actually playing on a GBC.[/QUOTE]

1)Ah, that’s annoying. Yes, that’s probably because of the new LCD shader. The problem should be the same with The Neo-Geo Pocket and Game Gear then, did you try those? Someone with an Intel GPU sent me a pic with messed up colors while with some other people it just doesn’t launch.

2)I know but I wanted one that would be a little softer on the eyes to make a border. :stuck_out_tongue: You’ve got the purple on Github.

Made a pack for AMD / Intel after all. Added a purple GBC border (slightly different than Github version).

I didn’t change the Gameboy Pocket settings when I took them from Hiban DMG version, just the greys recently. I looked at it a bit more and watched some videos / screenshots of the GB Pocket (don’t have one). The screen seems to go from yellow to green depending on the lighting / contrast.

As it was really yellow and a bit dark overall with this shader, I tried to make it in-between yellow/green, brighter, and get lighter greys (while keeping the black quite dark as the real screen seems to manage to do with adequate lighting). Looks like this:

Tetris: old / new

MarioLand 2: old / new

Decided to make a DS one after seeing Hunterk DS border. I thought it would look too bad on my screen but it’s quite OK, even if not that much detailed (you’re not going to see every sub-pixels on a 1080p screen, 2x scaling).

…but making the AMD/Intel version reminded me why I thought so. The LCD v1 scales badly compared to the new v2, I’m sorry you’re not going to see complete squares but more like lines if you have to use it in 2x. edit: Comparing both version and zooming in, you don’t see squares in neither of the 2 in 2x, but the LCD v2 does a better job at scaling its sub-pixels, colors are preserved.

I made 2 version:

-standard one like the DSi spacing (put 90 screen spacing in DeSmuME core options, don’t forget!) DS-shader-90-x

-one er… prototype slider version Nintendo made in secret (or not, but that’s here now), put 64 screen spacing in DeSmuME core options and the spacing will be ideal DS-shader-64-x

GBA standard / high and DS colors updated with Pokefan531 new values.

posting this here as per hunterk’s request. I’d love to get this image turned into a border shader for psp if possible, if anyone wants to take a crack at it before hunterk does, go right ahead. 2x 3x and 4x sizes if possible please, like the other handheld shaders that come with RA.

here’es a hacky but functional (in windows at 1080p, no idea elsewhere) zip including the cgp, edit it to figure out where to drop the png.

I don’t plan to do a PSP one personally. I like the higher internal resolution option and use PPSSPP fullscreen.

[QUOTE=Tatsuya79;24223]I don’t plan to do a PSP one personally. I like the higher internal resolution option and use PPSSPP fullscreen.[/QUOTE]

that’s ok, hunterk got it working and its already in the repo for those that want them :slight_smile: