Shader for use with DeSmuME hybrid layout

I just used the DeSmuME core for the first time and fell instantly in love with the hybrid screen layout mode. I couldn’t find any shaders that worked with it, however, so I made a quick edit to the standard ‘zfast_lcd’ shader for compatibility (this is my absolute favourite shader for all handheld systems!). It works fairly well, so I thought I’d share:

The zip file contains two presets:

1 - zfast_lcd_nds_hybrid.glslp

This applies the nearest neighbour scaling + grid effect of zfast_lcd to the main NDS screen, and simple linear filtering to the dual screen hybrid section. It also improves the visibility of the mouse cursor when shown on the main NDS screen.

2 - zfast_lcd_nds_hybrid+nds-color.glslp

This does the same as 1, but includes a first pass of the standard ‘nds-color’ shader.


To use these shaders, you’ll need to set the following DeSmuME core options:

  • Internal resolution must be native (256x192)

  • Screen layout must be ‘hybrid/top’ or ‘hybrid/bottom’

  • ‘Hybrid Layout: Scale’ must be ‘3’


And here are a few random screenshots of ‘zfast_lcd_nds_hybrid+nds-color’ in action:

I hope someone finds this useful… :smiley:

5 Likes

I have the same issue, that shaders do not work with desmume. I would like to apply scalefx to improve the visuals of 2D games. But it is not working

Btw great images

A tiny update…

I made a new version of the zfast_lcd_nds_hybrid/zfast_lcd_nds_hybrid+nds-color shaders that work with any internal resolution setting. You can get a copy here:

As with the old shaders, they look best with purely 2D games running at native resolution, but they work quite well with mixed 2D/3D content in ‘high definition’ - for example:

(These were taken using the zfast_lcd_nds_hybrid_hd+nds-color.glslp shader)

I did something crazy. It’s a shader that uses a bilinear blur on the big image when using hybrid x3 that makes it look like it was scaled from the original size. This way you can have the full resolution small screen while not having an ultra-sharp big screen.

bilinear-3x.glslp: https://pastebin.com/nP5ynTkM

shaders/bilinear-3x.glsl: https://pastebin.com/LDV9dNLn

Yep, I’m a psychopath.

2 Likes

Cool shader jdgleaver is there a way to easily switch between top and bottom for those games that switch all the time?

Edit: Derp, never mind :smiley:

Hi @jdgleaver,

Great work with your zfast_lcd modiffication. I wonder if you would be able to make a similar modification for crt-royale. I love crt-royale and I’m unable to apply it for NDS hybrid screen.

Besides that, would you do a similar modification for slang shaders? I use vulkjan and it uses slang instead of glgl.

Greetings.