The scanlines and grids can be removed by tapping the parameters, the scanlines can be removed and just above the scanline parameters are the parameters of the grid effect.
Playing with these parameters you can leave the image clean.
The scanlines and grids can be removed by tapping the parameters, the scanlines can be removed and just above the scanline parameters are the parameters of the grid effect.
Playing with these parameters you can leave the image clean.
It turned out great, great job.
I’m not sure about that. I think the LCD-GRID shader just wasn’t intended for screens this small.
And the HSM shaders CAN use integer scaling, it just won’t work when you need to set the screen size this accurately.
So…
If anyone has been following along with the NDS Vertical drama, here is the first WIP of my redesign.
This uses integer scaling so the LCD-GRID works as expected. I also found a happy medium between a realistic representation, and something that uses pretty close to the ideal gap. (Within a pixel or two.)
I even manged to make a few improvements to the design along the way, not to mention that the whole console is visible. (Which looks pretty cool.)
Honestly, it takes far more work than you may think to effect this kind of change to an existing graphic. Happily, I am not the same artist I was a short time ago. A year ago It may have taken me 10 times as long.
Here’s hoping the 3DS doesn’t give me as much trouble.
I still need to do an OCD pass, (I see a couple of things that will keep me awake at night if I don’t fix them) but it’s pretty close. Then I need to do the work to convert it to the Advanced shader etc.
Haha, I’m in these forums two minutes and I’ve got drama attached to me…it’s the supportive, appreciative kind of drama, I promise!
The new design looks great, genuinely excited to get it going and also the 3DS. Got a few games I’m keen to play through on both and this set up is going to make it excellent.
I can’t say I know how much work you’ve got to do, however, I can relate to how it feels to put in a ton of work to build something and have people not realize what went into it. I like to think that if it works so well that they take it for granted, then I nailed it. Thankless satisfaction haha.
In this case though…thank you very much for all the effort and fantastic work. I’ve figured out night mode now too and it all got even cooler! Thanks @akuma22 for the guidance there.
Don’t worry about a thing. Actually half the drama was about the ideal screen gap. The game developers designed the games around a screen posture that would put the screens 64 pixels apart. Problem is, when the thing is folded flat open, the screens are about 90 pixels apart.
So I had to find a compromise there also.
It’s all good, if I didn’t love doing this I wouldn’t do it.
Is there a way to use the [3]DS presets with a monitor in portrait mode?
To do it - not that it works, but what I do for other programs/games (pinball) - I rotate the screen (in W10 you can right click the desktop > display settings, “display orientation”, or actually I run an app that adds hotkeys when I want to do it,) and obviously also rotate the monitor physically… and in RetroArch you can change the aspect ratio from 16:9 to 9:16, which I’m guessing you would want to do, but like I said it’s not really working as expected so maybe not, idk
Hi @Duimon
I did not dig deeply into the drama)))
Just wanted to share some thoughts regarding “the whole console is visible” sentence. If I understand correctly the reason for redesign was to overcome some imperfections in LCD grid with screen size/scaling.
IMHO its it is not so important to have the whole console in frame, but rather have the game screen big enough and without graphical artifacts)))
Yep, that is the issue isn’t it.
In a perfect world we would go into the shader parameters and switch the “No screen artifact” parameter to “ON”.
In the real world, the solution was to turn on integer scaling. This leaves us with only one screen size that both actually fits on the screen and isn’t minuscule.
Integer scaling works by using exact multiples of the screen resolution so you never have a stretched pixel.
So turning on integer gives you this:
As you can see, there is really only one option. #2
I did what I had to do to make it work. At the same time I managed to get the screen gap to within a pixel or two of ideal.
The 3DS will present an almost impossible task since the only choice I have with integer scaling leaves only a pencil thin space for anything between the screens.
@HyperspaceMadness has expressed willingness to try a different LCD shader in the pipeline, but every existing shader suffers from the same malady, they all require integer scaling when the screens are this small.
I am exploring other options. (Including just abandoning/deleting the vertical stuff entirely.)
If you scroll back through the last weeks posts you will see that it was my original intention to only do vertical graphics for just that type of setup. I have an existing 4K Vertical NDS graphic that, using the new dual screen method, is a LOT easier to configure that the old implementation.
Thanks fit all the hard work @Duimon I know it’s a bunch more work that it seems to change these things after all the realistic details are in, so many objects!
One option would be to use GUEST-DrVENOM or Easymode instead which would manage the screen artifacts better at low resolution, but obviously wouldn’t look like an LCD.
I do think that a lot of ds games will be great to play with the large screen with small second screen layout or side by side layouts you’ve made.
For me personally it’s really the games which share both screens which really need the two screens top/bottom layout E.G. Contra 4, I think the other games I would more likely use the one big one small, or side by side layouts.
Thank you for your kind, informed words my friend. (So many objects indeed.)
One option for the 3DS I am exploring is using DrVenom and the GEL layer to put fake scanlines on the screen. I would need to bullseye the screen pixel count and modify an old LCD overlay I have laying around. Here’s a rough example using the NDS.
Here is the problem with the 3DS and integer scaling. There is again only one choice for screen size and it leaves little room for a hinge.
While I can reduce the hinge width, and make the console wider, AND make any changes needed to accommodate, I am afraid it will just start looking silly.
I will, of course, try it and see.
@Duimon @HyperspaceMadness I did some investigation on my config, so maybe this will help in some way. Originally I have used this config.
#reference ":/shaders/shaders_slang/bezel/Mega_Bezel/Presets/Variations/Dual-Screen__MBZ__2__STANDARD__GUEST-DrVENOM.slangp"
HSM_ASPECT_RATIO_MODE = "2.000000"
HSM_NON_INTEGER_SCALE = "76.770096"
HSM_SCREEN_POSITION_Y = "-36.000000"
HSM_DUALSCREEN_POSITION_OFFSET_BETWEEN_SCREENS = "80.000000"
HSM_DUALSCREEN_2ND_SCREEN_POS_Y = "-43.000000"
HSM_CURVATURE_MODE = "-1.000000"
HSM_SCREEN_CORNER_RADIUS = "4.000000"
HSM_TUBE_BLACK_EDGE_THICKNESS = "50.000000"
HSM_BZL_INNER_CORNER_RADIUS_SCALE = "250.000000"
HSM_BZL_HEIGHT = "100.000000"
HSM_BZL_WIDTH = "100.000000"
HSM_BZL_OUTER_CORNER_RADIUS_SCALE = "479.000000"
HSM_FRM_OPACITY = "0.000000"
HSM_FRM_THICKNESS = "65.000000"
HSM_FRM_OUTER_CORNER_RADIUS = "19.999979"
HSM_FRM_SHADOW_OPACITY = "0.000000"
HSM_REFLECT_GLOBAL_AMOUNT = "10.000000"
HSM_INTRO_WHEN_TO_SHOW = "0.000000"
GDV_HORIZONTAL_SHARPNESS = "15.000000"
GDV_SUBTRACTIVE_SHARPNESS = "1.000000"
BackgroundImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical.png"
LEDImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical_LED.png"
Here is the result (minor artifacts are present within scanlines/pixels)
(Example1)
Then I have tested the mentioned HSM_INT_SCALE_MODE = “2.000000”
#reference ":/shaders/shaders_slang/bezel/Mega_Bezel/Presets/Variations/Dual-Screen__MBZ__2__STANDARD__GUEST-DrVENOM.slangp"
HSM_ASPECT_RATIO_MODE = "2.000000"
HSM_INT_SCALE_MODE = "2.000000"
HSM_NON_INTEGER_SCALE = "76.770096"
HSM_SCREEN_POSITION_Y = "-36.000000"
HSM_DUALSCREEN_POSITION_OFFSET_BETWEEN_SCREENS = "80.000000"
HSM_DUALSCREEN_2ND_SCREEN_POS_Y = "-43.000000"
HSM_CURVATURE_MODE = "-1.000000"
HSM_SCREEN_CORNER_RADIUS = "4.000000"
HSM_TUBE_BLACK_EDGE_THICKNESS = "50.000000"
HSM_BZL_INNER_CORNER_RADIUS_SCALE = "250.000000"
HSM_BZL_HEIGHT = "100.000000"
HSM_BZL_WIDTH = "100.000000"
HSM_BZL_OUTER_CORNER_RADIUS_SCALE = "479.000000"
HSM_FRM_OPACITY = "0.000000"
HSM_FRM_THICKNESS = "65.000000"
HSM_FRM_OUTER_CORNER_RADIUS = "19.999979"
HSM_FRM_SHADOW_OPACITY = "0.000000"
HSM_REFLECT_GLOBAL_AMOUNT = "10.000000"
HSM_INTRO_WHEN_TO_SHOW = "0.000000"
GDV_HORIZONTAL_SHARPNESS = "15.000000"
GDV_SUBTRACTIVE_SHARPNESS = "1.000000"
BackgroundImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical.png"
LEDImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical_LED.png"
The scanlines/pixels look really sharp with no artifacts
(Example2)
Lastly I have tried switching to LCD shader
#reference ":/shaders/shaders_slang/bezel/Mega_Bezel/Presets/Variations/Dual-Screen-DS__MBZ__2__STANDARD__LCD-GRID.slangp"
HSM_ASPECT_RATIO_MODE = "2.000000"
HSM_INT_SCALE_MODE = "2.000000"
HSM_NON_INTEGER_SCALE = "76.770096"
HSM_SCREEN_POSITION_Y = "-36.000000"
HSM_DUALSCREEN_POSITION_OFFSET_BETWEEN_SCREENS = "80.000000"
HSM_DUALSCREEN_2ND_SCREEN_POS_Y = "-43.000000"
HSM_CURVATURE_MODE = "-1.000000"
HSM_SCREEN_CORNER_RADIUS = "4.000000"
HSM_TUBE_BLACK_EDGE_THICKNESS = "50.000000"
HSM_BZL_INNER_CORNER_RADIUS_SCALE = "250.000000"
HSM_BZL_HEIGHT = "100.000000"
HSM_BZL_WIDTH = "100.000000"
HSM_BZL_OUTER_CORNER_RADIUS_SCALE = "479.000000"
HSM_FRM_OPACITY = "0.000000"
HSM_FRM_THICKNESS = "65.000000"
HSM_FRM_OUTER_CORNER_RADIUS = "19.999979"
HSM_FRM_SHADOW_OPACITY = "0.000000"
HSM_REFLECT_GLOBAL_AMOUNT = "10.000000"
HSM_INTRO_WHEN_TO_SHOW = "0.000000"
GDV_HORIZONTAL_SHARPNESS = "15.000000"
GDV_SUBTRACTIVE_SHARPNESS = "1.000000"
BackgroundImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical.png"
LEDImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical_LED.png"
Here is the result (also sharp and clean)
(Example3)
Obviously the HSM_INT_SCALE_MODE = “2.000000” did fixed the sharpness (At least to my eye), but the screens within flame/background image become a bit off. So I tried to zoom it out a bit and here is what I got. Pretty good-looking (taking into account all the limitations)
(Example4)
P.S. Also becoming obsessed with Mario and Luigi yelling “Niiintendoo”
The example 4 looks quite good, which shader is this?
I’m interested in how you got and LCD effect using DrVenom. And a bit confused.
In any case. Thank you for your efforts. I believe will be sticking with the latest version of the graphic. (With the whole console on the screen.)
Here’s a 30 second, quick & dirty mod of my 3DS graphic.
The thin hinge doesn’t look as silly as I thought it might.
I am going to try a thorough modification.
Same as with example3
#reference ":/shaders/shaders_slang/bezel/Mega_Bezel/Presets/Variations/Dual-Screen-DS__MBZ__2__STANDARD__LCD-GRID.slangp"
HSM_ASPECT_RATIO_MODE = "2.000000"
HSM_INT_SCALE_MODE = "2.000000"
HSM_NON_INTEGER_SCALE = "76.770096"
HSM_SCREEN_POSITION_Y = "-36.000000"
HSM_DUALSCREEN_POSITION_OFFSET_BETWEEN_SCREENS = "80.000000"
HSM_DUALSCREEN_2ND_SCREEN_POS_Y = "-43.000000"
HSM_CURVATURE_MODE = "-1.000000"
HSM_SCREEN_CORNER_RADIUS = "4.000000"
HSM_TUBE_BLACK_EDGE_THICKNESS = "50.000000"
HSM_BZL_INNER_CORNER_RADIUS_SCALE = "250.000000"
HSM_BZL_HEIGHT = "110.000000"
HSM_BZL_WIDTH = "110.000000"
HSM_BZL_OUTER_CORNER_RADIUS_SCALE = "479.000000"
HSM_FRM_OPACITY = "0.000000"
HSM_FRM_THICKNESS = "65.000000"
HSM_FRM_OUTER_CORNER_RADIUS = "19.999979"
HSM_FRM_SHADOW_OPACITY = "0.000000"
HSM_REFLECT_GLOBAL_AMOUNT = "10.000000"
HSM_INTRO_WHEN_TO_SHOW = "0.000000"
GDV_HORIZONTAL_SHARPNESS = "15.000000"
GDV_SUBTRACTIVE_SHARPNESS = "1.000000"
BackgroundImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical.png"
LEDImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical_LED.png"
Here is the config from Example 1
#reference ":/shaders/shaders_slang/bezel/Mega_Bezel/Presets/Variations/Dual-Screen__MBZ__2__STANDARD__GUEST-DrVENOM.slangp"
HSM_ASPECT_RATIO_MODE = "2.000000"
HSM_NON_INTEGER_SCALE = "76.770096"
HSM_SCREEN_POSITION_Y = "-36.000000"
HSM_DUALSCREEN_POSITION_OFFSET_BETWEEN_SCREENS = "80.000000"
HSM_DUALSCREEN_2ND_SCREEN_POS_Y = "-43.000000"
HSM_CURVATURE_MODE = "-1.000000"
HSM_SCREEN_CORNER_RADIUS = "4.000000"
HSM_TUBE_BLACK_EDGE_THICKNESS = "50.000000"
HSM_BZL_INNER_CORNER_RADIUS_SCALE = "250.000000"
HSM_BZL_HEIGHT = "100.000000"
HSM_BZL_WIDTH = "100.000000"
HSM_BZL_OUTER_CORNER_RADIUS_SCALE = "479.000000"
HSM_FRM_OPACITY = "0.000000"
HSM_FRM_THICKNESS = "65.000000"
HSM_FRM_OUTER_CORNER_RADIUS = "19.999979"
HSM_FRM_SHADOW_OPACITY = "0.000000"
HSM_REFLECT_GLOBAL_AMOUNT = "10.000000"
HSM_INTRO_WHEN_TO_SHOW = "0.000000"
GDV_HORIZONTAL_SHARPNESS = "15.000000"
GDV_SUBTRACTIVE_SHARPNESS = "1.000000"
BackgroundImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical.png"
LEDImage = ":/shaders/shaders_slang/bezel/Mega_Bezel/CustomBG/Logo/NDS_Vertical_LED.png"
Basically it is a stock config from @HyperspaceMadness + your DS Vertical background in a custom folder And HSM_INT_SCALE_MODE is default-ed (aka disabled)
I am afraid you misunderstand my confusion.
I your first code example you are referencing the DrVENOM preset. It can’t paint LCD-GRID to the screen. Your result clearly shows LCD-GRID.
Also, you have GDV_HORIZONTAL_SHARPNESS and GDV_SUBTRACTIVE_SHARPNESS in your LCD_GRID reference.
While the shader will still load, because of simple presets, these lines are just being ignored. They would be stripped if you saved using the same filename. I assume you are manually editing the preset.
Yes, you are right.
I basically prefer changing things via external editor. And yes, some prefs will be ignored and probably removed if I reedit them in Retroarch…