In Reshade there is a shader called Magnify which can stretch each side of the screen individually in order to remove bars, glitches, etc on the edges of the screen. I would like for this to be ported or created for the common shaders. Using it from Reshade results in scanlines being messed up because of Reshade manipulating the entire screen. But if it were a shader, I wouldn’t have to worry about the scanlines being messed up. This is needed for things like the nes cores. Where they have top/bottom and left/right grouped together. Some games might need one side tinkered with. Like the nes, usually needs just the left and the top tinkered with. The current overscan option for nes takes away too much from the bottom as it overscans the top. The reshade shader can take away from the top while still keeping the bottom intact. So if someone can create this, that would be great.
it already exists. It’s the image-adjustment shader in ‘misc’. However, it still messes up scanlines if you use the cropping options. There’s also overscan masking which leaves scanlines intact at the expense of adding black borders.
The image adjustment shader combines left/right and up/down doesnt it (moves both at once)? Or are they separated?
It still messes up scanlines even if the scanlines are overlays instead of shaders?
the masking is separate, the cropping (i.e. crop+stretch) is combined. There’s also zoom + x/y position that can accomplish the same sort of thing. Overlays won’t be affected but the lines won’t match up exactly with the pixels anymore, which I hate but to each one’s own.
Ok. I’m trying it. But if I try to move X position over from 0.00 to 0.02 it moves the image over a huge chunk! Is there anyway to reduce the values in order to not have it do so much? Maybe instead of having 0.00, have 0.000 instead? Also, manual changes to the .cg file have no effect. Seems like everything must be done within the menu parameters of retroarch.
You can make it use a smaller tick by changing the last number in the parameter line. Each one has 4 numbers, separated by spaces, which are the default value, minimum value, maximum value and “step”/tick. XPOS/YPOS are set to 0.005 step by default but you can make it 0.001 or whatever if you want.
ok, it took me 3 hours and modified the shader in 12 places in order to get results. 6 places in the cg file and 6 places inside retroarch. The one in reshade is much much simpler. Although that one isn’t percentage based. But it would be alot easier if the modifying each side wouldn’t affect the other (more like a stretch shader). But I guess for me, since I already got the hang of it that everything is fine. Just have to remember to make sure I position the picture so that each mask is evenly spaced before I start to magnify. And some games don’t require much tweaking than others so now I would have to go to each game and modify more per game and hopefully it wouldnt take that long this time.
Here are a few cropped, scanlined, internal shadered, and external reshadered screens of the nestopia core:
Only 6 games have title screens cut off a little with a couple of those having better ports on other systems. Only 3 have cut off text in-game (in my collection of course). No more discoloration or sudden appearances of glitches on either side of the screen!
Mike Tyson has never looked sexier xD
Nestopia.cgp:
shader9 = "E:\Users\********\My Documents\Games\CONSOLE\EMULATORS\NINTENDO\Nintendo Entertainment System\RetroArch\shaders\shaders_cg\misc\image-adjustment.cg"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
parameters = "SFX_CLR;SFX_CLR;INTERNAL_RES;target_gamma;monitor_gamma;overscan_percent_x;overscan_percent_y;saturation;contrast;luminance;black_level;bright_boost;R;G;B;ZOOM;XPOS;YPOS;TOPMASK;BOTMASK;LMASK;RMASK"
SFX_CLR = "0.350000"
SFX_CLR = "0.350000"
INTERNAL_RES = "1.000000"
target_gamma = "2.400000"
monitor_gamma = "2.200000"
overscan_percent_x = "8.400009"
overscan_percent_y = "6.800001"
saturation = "1.000000"
contrast = "1.000000"
luminance = "1.000000"
black_level = "0.000000"
bright_boost = "0.000000"
R = "1.000000"
G = "1.000000"
B = "1.000000"
ZOOM = "1.000000"
XPOS = "0.005000"
YPOS = "0.005300"
TOPMASK = "0.047500"
BOTMASK = "0.010000"
LMASK = "0.060000"
RMASK = "0.020000"
Image-Adjustment.cg:
#pragma parameter overscan_percent_x "Horizontal Overscan %" 0.0 -25.0 25.0 0.4
#pragma parameter overscan_percent_y "Vertical Overscan %" 0.0 -25.0 25.0 0.4
#pragma parameter XPOS "X Modifier" 0.0 -2.0 2.0 0.0012
#pragma parameter YPOS "Y Modifier" 0.0 -2.0 2.0 0.0012
#pragma parameter TOPMASK "Overscan Mask Top" 0.0 0.0 1.0 0.0025
#pragma parameter BOTMASK "Overscan Mask Bottom" 0.0 0.0 1.0 0.0025
#pragma parameter LMASK "Overscan Mask Left" 0.0 0.0 1.0 0.0025
#pragma parameter RMASK "Overscan Mask Right" 0.0 0.0 1.0 0.0025