Duimon - HSM Mega Bezel Graphics and Presets - Feedback and Updates

Thank you. I am pretty happy with it, although I have yet to do my infamous OCD pass. :innocent:

After that, the next step is converting it to the Advanced preset, which will mean giving it some color.

This will not be as hard as it once was, thanks to my HSV R&D. Since all the colors in this are already at 0% Hue and Saturation, it will just be a matter of stepping through the objects and layers and changing the Saturation to 50%, then adding some brightness boost when it starts getting washed out. :grin: (There are well over 100 objects though, and most of them have strokes. :grimacing:)

After that I need to create a Horizontal version, but I am hoping that will only require masking, scaling, and moving some stuff around.

1 Like

Yeah, basically the preset will need to have flip viewport on, when I update, the 3ds preset should be set up with any of the switches necessary that you can use as reference

1 Like

@HyperspaceMadness @Duimon

I really like the new NDS Vertical Shader presets…except for this bit. I’ve been playing with it and I can’t get the scan lines looking clean and even. I either have banding or uneven scan lines when playing with resolutions and the scan line multiplier parameter.

I think this is an issue that integer scaling is supposed to help you avoid but the HSM shader doesn’t use that and for everything else doesn’t need to. It also seems to be an issue at native res so I’m confused as to where to look to solve this @HyperspaceMadness Any suggestions on how to get a clean image going for the NDS?

2 Likes

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.

1 Like

It turned out great, great job. :+1: :+1: :+1:

1 Like

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, :grin: 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. :upside_down_face:

Here’s hoping the 3DS doesn’t give me as much trouble. :grimacing:

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.

6 Likes

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.

3 Likes

Don’t worry about a thing. :grin: 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. :crazy_face:

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. :grin:

4 Likes

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 :wink:

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)))

1 Like

Yep, that is the issue isn’t it. :cry:

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:

2. 3.

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. :thinking: (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.

3 Likes

Thanks fit all the hard work @Duimon :smiley: 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.

1 Like

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.

1 Like

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. :grin:

2 Likes

@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”

2 Likes

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.)

1 Like

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.

4 Likes

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"
1 Like