1088 Commits
Author SHA1 Message Date
Patch Salts 1aaabbebdd Precompute one_x in Maister NTSC vertex stage (#582) 2026-11-02 12:39:43 -06:00
Chris Dixon cba01a48b0 Use the NTSC 2-phase loop on GLES 3 (#581)
The 2-phase decode passes took their unrolled branch on any GLES, but
it pastes tokens, which GLES forbids, so none of the presets built on
them compiled there. GLES 3 can run the array loop that desktop GL
uses, as the 3-phase passes already do; keep the unrolled branch for
GLES 2 only.
2026-10-23 08:52:02 -05:00
Chris Dixon 61ec83e64c Make crt-royale compile on GLES (#580)
GLES rejected every pass. The sources define "const" away, so their
global "static const" values become globals initialised from other
globals, which ESSL doesn't allow, and they lean on desktop GLSL's
implicit int to float conversions and default float precision.

Turn the affected globals into typed macros, convert the ints
explicitly, and give the passes a default precision on GLES only.
Desktop GL compiles the same as before.
2026-10-23 08:51:10 -05:00
Ayoub SAHI 30bb6f3a05 scalenx: restore Scale2xSFX YUV thresholds (#578)
Use the original Cg all/any YUV comparisons so YTR, UTR and VTR affect color matching again.
2026-10-22 11:49:46 -05:00
Ayoub SAHI 2992a89ee2 scalenx: restore Scale3xSFX 3x rules (#579)
Port the original Cg nine-output rules and artifact prevention conditions. Add the missing 3x preset using the existing presentation pass.
2026-10-22 11:47:19 -05:00
MichelandMichel e80b60a84b xBRZ freescale multipass: lighter output pass, new defaults, diagonal rules and contrast 24 for xbrz-crisp (#577)
* xBRZ freescale multipass: lighter output pass, dominant 3.8 and steep 3.2

The first pass now makes every blend decision once per input pixel (blend
type, line type, blend color and the minimum contrast), so the output pass
reads two textures instead of six where no corner is cut and computes no
color distances. The output is identical at the same thresholds.

Defaults change from dominant direction 3.6 and steep/shallow line 3.0 to
3.8 and 3.2, which keeps 1-pixel steps and small corners closer to the
original art. XBRZ_DOM is now a parameter; the unused blend_* parameters
and XBRZ_MINC_RAMP are removed.

* xBRZ freescale multipass: similar diagonal rules for xbrz-crisp

New XBRZ_DIAG parameter, off (0) by default, so plain xBRZ doesn't change.
When it is on, a corner stays square if the two colors its cut would join
differ by more than XBRZ_DIAG, so a junction of three colors is not pulled
into a fake diagonal (an idea from torcado's cleanEdge). Antialiasing ramps
use a limit of 92, shallow and steep lines are never blocked, a blocked
corner is still cut when a neighbor on the same diagonal is cut, and where
stacked 1-pixel stripes end flush (health bars, gauges) the end corners
stay square. The xbrz-crisp preset sets XBRZ_DIAG to 100.

* xBRZ freescale multipass: minimum contrast 24 in xbrz-crisp

The xbrz-crisp preset now sets XBRZ_MINC to 24 instead of 16, so grass,
foliage and other textures keep more of their pixels. Plain
xbrz-freescale-multipass doesn't change (XBRZ_MINC stays 0).

* xBRZ freescale multipass: fix the output pass with a larger original texture

RetroArch's gl driver rounds the original frame and the first pass up to a
power of two on their own (512 and 256 with snes9x), so the second pass read
the original at the wrong place and the picture shrank into a corner. Each
texture is now read with its own size. No change where both sizes match
(0 px on 100 screens).

---------

Co-authored-by: Michel <[email protected]>
2026-10-21 22:41:29 -05:00
ad947689af Add xBRZ crisp (GLSL version) (#576)
* xBRZ freescale multipass: add minimum contrast, threshold parameters and port fixes

Add an xbrz-crisp preset that uses the same two passes with a minimum
contrast of 16, equal color tolerance 15 and steep/shallow threshold 3.0.
The multipass defaults keep the current look: the new parameters default
to 0, 30 and 2.2. The output pass now applies the four corners in the
order of the reference xBRZ, resolves blend color ties the same way, and
takes the output scale from the image size instead of the texture size.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NoUuzh3YspgqPacroVBWQ7

* xBRZ freescale multipass: default to tolerance 15 and steep threshold 3.0

At tolerance 30 small dark holes in stone textures get merged into the
surrounding color, and at 2.2 a 1-pixel step on a vertical edge is read
as a sloped line. 15 and 3.0 keep both closer to the original art. The
xbrz-crisp preset now only sets the minimum contrast. The old look is
still available with XBRZ_TOL 30 and XBRZ_STEEP 2.2.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NoUuzh3YspgqPacroVBWQ7

---------

Co-authored-by: Michel <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-20 14:39:46 -05:00
Chris Dixon ce9a41242e auto-box: fix the GLSL box shaders (#575)
The clamp added in 7bf5101 assigned a vec4 texture read to a vec3, which
strict compilers such as Mesa's reject, and tested gl_FragCoord, which is
in pixels, against 0..1, which blacked out all but the first pixel.

Read .rgb and test the texture coordinate as a fraction of the picture.
2026-10-16 18:52:47 -05:00
SkyWalker541 148ce72815 Update PT_SkyWalker541 to v2.1.0: add optional Glare and sheen (#574) 2026-10-11 18:22:17 -05:00
SkyWalker541 343b38963b Add PT_SkyWalker541 pixel transparency shader for GB/GBC/GBA (#572)
* Added PT_SkyWalker541 for GB handhelds.

* Added PT_SkyWalker541 for GB handhelds

* Fixed character limit error (Shadow direction parameter)
2026-10-11 11:15:37 -05:00
Chris Dixon 435612fe4f crt-royale: Write the tile varying in the horizontal mask resize (#571)
The vertex shader declared a local tile_uv_wrap, which hid the varying of
the same name, so the fragment shader tested an undefined value. Mesa
reads it as 0 on GLES and the pass draws; on desktop GL every fragment
was discarded, leaving the phosphor mask and the picture black.
2026-10-04 08:37:08 -05:00
fishcu f8e23ff880 Port updated CRT Ntap shaders to GLSL (#570)
* Port updated CRT Ntap shaders to GLSL

* Update crt-Ntap subpixel position defaults
2026-09-17 15:12:37 -05:00
fishcu 1bf3eb49bf Fix handheld shader composition after viewport passes (#569) 2026-09-15 21:44:36 -05:00
Garrett Brown 235448f244 xbr: initialize f4 in xbr-lv2 (#568) 2026-08-30 11:19:07 -05:00
LibretroAdmin 4f4eb801b2 Merge pull request #567 from hunterk/master
avoid vertex/fragment precision mismatch
2026-08-23 13:54:43 +02:00
hunterk 8aab13063d avoid vertex/fragment precision mismatch 2026-08-22 20:08:46 -05:00
metallic77 2b2c5ee3fd crt-consumer-arcade clean-up (#565)
* crt-consumer-arcade clean-up

* Update crt-consumer-1w.glsl

* Update linear.glsl
2026-06-03 13:28:37 -05:00
metallic77 94e10586b9 crt-consumer-arcade, use scanlines/mask that won't decrease screen brightness (#564)
* Update crt-consumer-arcade

* Update crt-consumer-arcade.glsl

* Update crt-consumer-arcade.glslp
2026-06-03 08:15:28 -05:00
metallic77 42fa8a98ab crt-geom-mini; optimize to be closer to crt-geom, tiny-ntsc add saturation parameter (#562)
* Update crt-geom-mini.glsl

* Update tiny_ntsc.glsl

* Update crt-geom-mini.glslp
2026-05-05 08:07:02 -05:00
metallic77 c6c8fadc29 stop forcing mediump on GLES highp capable devices (#563)
* stop forcing mediump on GLES highp capable devices

* Update zfast_crt_geo.glsl

* Update zfast_crt_geo_svideo.glsl

* Update zfast_crt_nogeo.glsl

* Update zfast_crt_nogeo_svideo.glsl

* Update crt-pi.glsl
2026-05-05 08:05:29 -05:00
metallic77 6c7733ca86 convert tiny-ntsc to a highly accurate NTSC variant. (#561)
* Update tiny_ntsc.glslp

* Update tiny_ntsc.glsl
2026-05-03 08:56:55 -05:00
metallic77 2f0979fc71 Update crt-consumer-classic.glsl (#560) 2026-04-23 08:21:42 -05:00
metallic77 3f86ce75e7 add broadcast-crt like scanlines shader (#559)
* Add files via upload

* Add files via upload

* Update broadcast.glsl
2026-04-21 19:19:10 -05:00
metallic77 f374397e38 Changes to zfast-crt-composite (#558)
* Update ultra-potato.glsl

* Update zfast_crt_composite.glsl

* Update zfast-composite.glslp
2026-04-21 08:23:09 -05:00
metallic77 1f1644f73d undo some stuff, correct some errors, add a new shader (#557)
* Add files via upload

* Add files via upload

* crt-pi revert to original

* crt-geom set defaults as in slang

* zfast_crt_composite, correct some errors
2026-04-17 09:12:51 -05:00
Matheus Willder ebe123c55f Tweak some more fakelottes-ntsc-* parameters (#556) 2026-04-12 13:08:39 -05:00
Stefan Schlosser bf52cc898f build: Enable building cross-platform; don't install git history (#555)
This changes the cp operation to work on more platforms/environments,
where the -t option is not available. Additionally remove the .git and
.gitlab-ci.yml files after installation.
2026-03-30 08:34:05 -05:00
metallic77 c1a40ae924 re-entry of old crt-consumer as "classic" (#554)
* Add files via upload

* Add files via upload
2026-03-04 08:10:23 -06:00
Matt Akins ad982c951e Add shadow blur quality modes for low-end device performance (#552)
Add PT_SHADOW_BLUR_MODE parameter with three options:
- 0=Off: No blur samples (3 total texture samples)
- 1=Lite: 5-sample cross pattern (8 total samples)
- 2=Full: 9-sample grid pattern (12 total samples)

Allows users on devices like TRIMUI Brick Hammer or Anbernic RG35XX
to reduce texture samples for better frame rates while keeping
drop shadows enabled.
2026-01-17 19:13:42 -06:00
Matt Akins a42d4c8c06 Add pixel_transparency shader for GBC (#551)
* Add pixel_transparency shader for GBC/GBA transparency simulation

Converts bright/white pixels to transparent areas showing a procedural
paper background, simulating the look of original Game Boy screens
without backlights.

Features:
- Multiple transparency modes (white only, bright pixels, all pixels)
- Procedural paper grain background with tint options
- Drop shadows with configurable blur
- Color harshness filter (Gambatte-style)

Includes base preset and 5 LCD shader combinations:
- lcd1x, lcd3x, zfast_lcd, lcd-grid-v2, authentic_gbc_fast

Ported from Slang version with GLSL ES compatibility fixes.

* Add scale_type0 = viewport to LCD shader presets

Adds missing scale_type0 = viewport to 15 LCD/grid shader presets
to match slang-shaders equivalents. This enables proper shader
appending behavior when combining LCD shaders with other effects
like pixel_transparency.

Affected presets:
- lcd1x, lcd3x, zfast-lcd, lcd-grid
- lcd1x_nds, lcd1x_psp
- simpletex_lcd variants (9 files)

* Add BACKGROUND_INTENSITY parameter to simpletex_lcd shaders

Ports the BACKGROUND_INTENSITY parameter from slang-shaders to all
simpletex_lcd GLSL shader variants. This parameter controls the
visibility of the paper background texture (0.0 = none, 1.0 = full).

Also adds pixel_transparency-simpletex_lcd.glslp combo preset with
background intensity disabled.
2026-01-17 08:23:11 -06:00
Matheus Willder 468f67b6f6 fakelottes ntsc update parameters (#549)
This tweaks a parameter to the ntsc_module shader, so that the colors match more closely the stock Fakelottes
2025-11-16 20:36:38 -06:00
Matheus Willder 28643f63dd Update fakelottes-ntsc-composite and fakelottes-ntsc-svideo to remove duplicate gamma (#547) 2025-10-18 09:40:08 -05:00
Matheus Willder 536d811930 Update fakelottes-ntsc-composite and fakelottes-ntsc-svideo (#546) 2025-10-17 08:20:46 -05:00
metallic77 3290adc336 Update crt-consumer-1w (#545)
* Update crt-consumer-1w.glsl

* Update ntsc_module.glsl
2025-10-14 10:12:46 -05:00
metallic77 2eca39ad10 Update ntsc_module (#544)
* Update ntsc_module.glsl

* Update crt-consumer-1w.glsl

* Update ntsc_module.glsl
2025-10-13 10:11:15 -05:00
metallic77 b205e8dc11 Update ntsc-mini (#543)
* Update ntsc-mini-0.glsl

* Update ntsc-mini-1.glsl
2025-10-12 17:51:40 -05:00
metallic77 f01f12fbd1 add a reverse sharpness tex. fetch (#542) 2025-10-11 10:01:54 -05:00
metallic77 3e58632f60 correct some exaggerated default values (#541)
* Update linear.glsl

* Update crt-consumer-1w.glsl

* Update ntsc_module.glsl
2025-10-10 11:43:56 -05:00
metallic77 3fcbee5168 add crt-consumer-1w-ntsc (#540)
* Add files via upload

* Add files via upload

* Update linear.glsl

* Update crt-consumer-1w.glsl

* Update crt-consumer-1w.glsl

* Update crt-consumer-1w.glsl

* Update crt-consumer-1w.glsl

* Update crt-consumer-1w.glsl
2025-10-10 09:48:06 -05:00
metallic77 91d406156b Update tiny_ntsc.glsl (#539) 2025-10-08 15:05:47 -05:00
metallic77 d44d0f2a4d Update tiny_ntsc (#538) 2025-10-08 09:55:53 -05:00
metallic77 de09e1542e Delete presets/crt-cyclon directory (#537) 2025-10-08 08:29:47 -05:00
metallic77 b935c6970b Update tiny_ntsc (#536)
* Update tiny_ntsc

* Update tiny_ntsc.glsl

* Update tiny_ntsc.glsl

* Update tiny_ntsc.glsl
2025-10-07 18:01:19 -05:00
metallic77 3a71b1d20e re-write zfast_crt_composite to something better (probably) (#535)
* re-write zfast_crt_composite to something better (probably)

Did some experiments with filtering, scanlines, performance etc and this is the outcome

* Update zfast-composite.glslp
2025-09-28 10:26:55 -05:00
metallic77 ee4203de87 crt-hyllian-fast; fast gamma, fix SCANLINES parameter (#534) 2025-09-28 08:45:28 -05:00
metallic77 e00a25d6a8 crt-hyllian-fast, fix uneven scanlines (#533) 2025-09-26 08:39:01 -05:00
metallic77 bbec046178 tiny_ntsc optimize speed (#532) 2025-09-24 09:28:52 -05:00
metallic77 6775c7030d Update crt-geom-mini (#531)
* Update crt-geom-mini

* Update crt-geom-mini.glsl

* "crt-hyllian-fast" proper GAMMA_IN, clean-up
2025-09-13 16:52:52 -05:00
metallic77 503b81c81c crt-pi rectify some errors (#530) 2025-09-12 13:37:38 -05:00
metallic77 f46cea22ac ntsc-mini cleanup, remove 1 pass (#528)
* Update ntsc-mini.glslp

* Update ntsc-mini-0.glsl

* Update ntsc-mini-1.glsl

* Update ntsc-mini-0.glsl
2025-09-09 16:29:10 -05:00