Building on @DevilSingh’s work and @Jobima’s update, i have ported the PAL passes from crt-guest-advanced-2025-11-30-release1 to create CRT-Guest-PAL, reorganized the settings to match the order in crt-guest-advanced-2025-11-30-release1, and created Decoupled-Guest-NTSC and Decoupled-Guest-PAL which excise the CRT portion of the shader for more granular utility (such as use with other CRT shaders, with Megatron as a primary focus).
@Jobima could you post a ReShade configuration .ini for me to learn from? Something so I don’t have to start from scratch?
Does anyone know if there is an easy way to convert the slangp presets to reshade?
Thank you this has been very helpful. I had an additional question. If I’m using native 1x resolution on PCSX2 which renders games at 512x448, I should make it 796x448 in the preprocessor definitions; this much I understand. But should the internal resolution y: 0.5 | y-downscale setting be left untouched at 0.0 as well? Or should that be a different value?
same as using the shader in retroarch LRPS2 (or whatever) with native (1x) resolution, which mean you dont need to change those (but nothing stop you from doing it anyway
)
Different games use different resolutions and can sometimes switch between them during gameplay (like in FFX, prerendered cutscenes have different resolutions than the game itself).
If you can live with letterboxing on top of pillarboxing, enable Screen Offsets and Show Overscan globally, and set internal resolution in the shader to 640x480, this has been a bulletproof combination for me so far.
@ParanormalBanana there is a version for Duckstation, which if I remember correctly was made by @Rincewind from an older version of DevilSingh’s Reshade port, that automatically changes the Resolution_X/Y based on the game’s resolution. It used to be included in older versions of Duckstation, but not anymore. Now you can find it under https://github.com/stenzek/emu-shaders.
Also Duckstation now supports Slang shaders, so you could try Guest’s versions directly. Not sure how well that works, I haven’t tried it myself yet.
I made a small ReShade addon for PCSX2 that automatically updates Resolution_X and Resolution_Y for the CRT-Guest shaders when the PS2 switches between video modes. No manual adjustments or preset reloads needed.
It works by analyzing the scissor rectangles PCSX2 sends to the GPU each frame, which directly reflect the PS2’s active display resolution. Supports CRT-Guest-NTSC, CRT-Guest-Advanced, and CRT-Guest-HD, with a predefined list of PS2 native resolutions.
Testing and feedback are appreciated!
its a nice addon indeed! thanks!
test using your addon and my JobimaCRT_guest_advancedV8.fx with MGS3 https://odysee.com/@JobimaInOdysee:a/MGS3-using-JobimaCRT_guest_advancedV8-with-reshade–pcsx2–auto–resolution-showcase:0 since we cant use pressure-sensitive face buttons in retroarch yet
What would be the best settings for reshade and guest crt NTSC to get like a S-Video or composite look?
For both it really depends on the exact kind of composite or s-video you want. Some CRTs would have filters that remove the artifacts from composite that make them look different than others. Regardless, you’ll want to fiddle around with the artifacting/fringing, phase, ntsc resolution, and chroma scaling/bleeding settings to find the aesthetic that appeals the most to you. By default, having both artifacting and fringing set at 1 is meant to represent an unfiltered composite signal, while setting them both to 0 is meant to represent an s-video signal. You should also adjust the phase and chroma scaling to whatever looks the best to you. You can also try using the edge colors setting to prevent the colors form spilling out beyond the edges of pixels when using lower chroma scaling values.
Also, hello everyone. I am having an absurd amount of trouble finding the right settings to use for Shovel knight to align the scanlines correctly. I’m using a 1440p screen and running the game with DXVK and Special K in HDR. I’ve managed to figure out that a 225 vertical resolution is mostly correct, but I have no idea why this is when the game runs at 400x240 natively. The 1:1 scaling also does not work how I imagined it either. If using that setting, I should be able to set the horizontal resolution to 240 to align the scanlines, but that does not work. I’ve tried fiddling around with random numbers, but none of them work. The best result I’ve gotten is setting the game to fit and using guest’s integer scaling with the resolution set to 400x225. However, there are still some issues with screen warping when viewing horizontally scrolling segments. Using CRT-royale on reshade can get good results when in the 1:1 scaling by manually setting the display box to equal multiples of 400x225. I have no idea what is going on here.