Seems some pixels in the raw images are taller than squares, could indicate a native res that doesnt fit with an integer scale at 1080p. So yeah, diagonals looks already skewed in the raw image. Are you sure it’s 640x360?
That’s what PCGamingWiki says; otherwise I’m not sure how else I can find out…
EDIT: Reshade’s statistics say 640x360 when you set the window scaling in game to 1x
Odd; they’re like a pixel-and-a-half in size. I think the game was made in Unity and I have heard it can produce some issues with pixel art. Oh well, nothing to be done! Applying CRT shaders/using actual CRTs for modern games is always going to be a bit of a crap shoot
I mean, the added grain and texture of the shader you added still makes it nice to look at… Maybe try to tweak the “rolling scanlines” parameter to see how it interacts with the wobble?
I did update CRT-Guest-NTSC.fx to crt-guest-advanced-2025-11-30-release1 https://github.com/Jobima1st/CRT-Guest-ReShade (I also did add the Aspect Ratio changes that DevilSingh post before)
only CRT-Guest-NTSC.fx for now, maybe I will update the DX9 CRT-Guest-NTSC.fx later
to avoid wasting my efforts, I won’t update the rest. I made the update primarily for my personal use and not as a full replacement of DevilSingh port
I’m having trouble figuring out how to set the resolution correctly in Guest Advanced for PCSX2. I have 2 shaders active, Guest Advanced and NTSC_Adaptive.
these are my settings for my 1440p monitor:
pcsx2 internal resolution - 4x
guest advanced Internal Resolution Y - 4.0
guest advanced Downsampling-X - 2.0
guest advanced Downsampling-Y - 2.0
ntsc_adaptive resolution scaling - 0.25
preprocessor definition resolution: 1920x1440
is this the right setup for the PS2’s 640x480 output?
if you render in native 1x then you should use that “512x448” in Resolution settings, with 4x will be “2048x1792”.
and in case of upscale (not 1x like 4x in your case) you will need to play with some CRT-Guest-Advanced parameters to get things right (and that in both retroarch and reshade, you can search about that in New CRT shader from Guest + CRT Guest Advanced updates)
you dont need to set your monitor Resolution in AspectSize if the game Aspect ratio is the same as monitor Resolution Aspect ratio, Otherwise do the Calculation based on your screen Resolution and Aspect ratio yourself or use something like https://worktoolz.com/169-to-43-crop-calculator/
has anybody had any success recording gameplay with nvidia shadowplay? the footage looks really washed out with the crt filter enabled
great, thank you for the answer. also, if i wanted to use guest advanced, which does not have the AspectSize option yet, what should i set the resolution to? if i understand this correctly, I should multiply 512 by 1.33… to account for the black bars in 4:3. So I should put 682.6666666666665 instead of 512 for the x resolution, is that right?
if you have 4:3 game and your screen is 16:9 then take the “Y” (vertical) resolution and multiply it by 16 and then divide it by 9
for the “512x448” resolution it will be “796.4444444444444” which you should use it as “796x448”, but anyway it’s kinda hack
or you can use Res-O-Matic
I did use OBS with my preset and it’s fine
thanks so much, all the text looks perfect now!
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.
