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

Basically what happens is the core outputs an image and the touchscreen surface corresponds to this image. Then the shader adjusts the image by scaling and moving it, and the touch screen area is unchanged, and therefore doesn’t match the image you see.

To have a fix for this we would have to send the new window coordinates of the scaled and moved screen out of the shader, which is not part of the framework.

So if you really need the touch screen interaction then you’ll have to use a standard overlay like Duimon suggests. I don’t think there is any way around this at the moment.

3 Likes

I see. But I’m not sure it can be solved by an overlay, can it? With the DS in mind if I want the final result to look like that screen posted in the OP I’d still need a border around the rendered area. Even if I find out how to do that, the problem might be still the same. Unless the overlay is able to resize the whole image + touch area. Hm.

Makes me wonder though, how do you all use your DS games, without the touch screen? Mouse mode has awful acceleration on my end.

2 Likes

The mouse is mapped to the right joystick on a gamepad.

I believe the overlay system is compatible with touch mode. I have overlay versions of my graphics in my overlay repo.

https://github.com/Duimon/Retroarch-Overlays

I can help you with the coordinates if you’d like to try them.

2 Likes

Here is my NDS Vertical Alt overlay using the “lcd-grid-v2-nds-color.slangp” shader.

For 4K the needed info is:

X Position = 1363

Y Position = 83

Width = 1112

Height = 1976

Screen gap = 70

If gap distance is more important to you than screen size, my NDS Vertical (Not Alt) has the ideal gap distance.

1 Like

I updated the above info with accurate coordinates taken from Photoshop.

If you are using DeSmuME you can create a DeSmuME.cfg text file and put it in your /config/DeSmuME folder.

DeSmuME.cfg contents:

aspect_ratio_index = "23"
input_overlay = ":\overlays\Duimon\Nintendo_NDS\NDS_Vertical_Alt.cfg"
input_overlay_opacity = "1.000000"
custom_viewport_height = "1972"
custom_viewport_width = "1106"
custom_viewport_x = "1367"
custom_viewport_y = "85"

This assumes you have put my “logo” overlay set in Retroarch\overlays\Duimon\

It also assumes you are using Windows. For Linux you would have to define the path ":\overlays\Duimon\Nintendo_NDS\NDS_Vertical_Alt.cfg" without the :\.

You will also need a “DeSmuME.opt” with at least…

desmume_screens_gap = "70"
desmume_screens_layout = "top/bottom"

Also in the config\DeSmuME folder.

4 Likes

Thank you very much for your help, this is all working perfectly :smiley:

3 Likes

So… I used my Potato graphics as my new standard overlays. The overlays are 4K while the Potato have been resized, using the “Mitchell” algorithm, to 1920x1080.

My Potato source is using a perfect mask, generated by the Mega Bezel, that can be used to get screen coordinates for the overlay configs. I have updated the above with new coordinates taken from this mask. (The difference is slight.)

I will be adding my potato source to my Mega Bezel source repo very soon, along with a guide in the overlay folder on getting the coordinates with Photoshop, Affinity Photo, Paint.Net, and Gimp. (For Gimp I will make use of a python script that displays coordinates.)

I will also be adding an example core config and a guide for it’s use.

Once I have the guides done I will add it to my GitHub Pages site as well.

3 Likes

The source is in the repo. To keep the size of the source repo below 10GB I created a new…

Potato_Overlay_Source

…repo. Guides are yet to be completed.

Edit: I need to split the commit into batches. It will be done later today.

2 Likes

I am thinking about handling the source for the overlays differently.

I think I will create a guide on how I created them, using the Mega Bezel tools, and include only some source. The vast majority use the same coordinates, and the PSDs are only two masked layers, one with a drop shadow.

I will still create the other guides, since they will benefit the community, and the methods can be used for any overlay.

It just doesn’t seem prudent to take up almost 3GB of GitHub space for something that can so easily be recreated.

4 Likes

FYI: somehow vectrex is upsidedown now I put everything on latest version today…

2 Likes

Hardware cores may or may not flip the viewport, and it can change with core updates. Use the flip viewport vertical parameter.

2 Likes

somehow this option did not flip the vectrex overlay , so I rotated alle images in Graphics\GCE_Vectrex\Vectrex_Overlays

1 Like

The Gel Layer, which is the layer that contains the Vectrex screen overlay, also has a flip vertical parameter.

We have been dealing with inconsistent hardware rendered cores for a long time and @HyperspaceMadness has added a solution for “just about” everything you might encounter.

Which reminds me… I flipped the Vectrex overlays while waiting for a fix and forgot to flip them back. I will do so ASAP.

3 Likes

Hi @Duimon

probably this question may involve MegaBezel as well but…

In the Dreamcast presets, the crt part of the shader gives a lot of moire artifacts. Dreamcast can display more than 240p (which the normal shader handle well). Is there any chance you link the DC presets with a more convinient MegaBezel/guestr shader instance?

Thank you

1 Like

I won’t be making any changes to my presets… the moment I do someone will ask me for a 240 version.:grin:

There are a few things you can do yourself though.

(1) Turn the “[CURVATURE]>>>CRT Curvature Scale Multiplier” down… This will eliminate curvature on the screen but retain it on the bezel.

or

(2) Turn off the curvature entirely.

or

(3) Turn down the “[CORE RES SAMPLING] >>> Opposite Dir Multiplier”.

or

(4) Change the reference shader to the DREZ version. (Eventually I will be adding DREZ presets.)

4 Likes

I was AFK when I posted the last reply. I have edited it to be more accurate. :grin:

The Vectrex screen overlays have been updated.

While I was gathering assets for the Potato source I realized that my 3DS horizontal overlay design was incompatible as an overlay. (There is control for neither screen gap or small screen Y position in the core.)

It’s easy to forget how much control the Mega Bezel gives us. :grin:

I will attempt to edit the source with a solution but worst case scenario I will just delete it from the collection.

3 Likes

Here is about the best we can hope for using a standard overlay.

There is a graphic glitch in my mask that I need to attend to. :frowning_face:

Now that I am up to my elbows I realized that none of my 3DS overlays are compatible. I have already done a 3DS vertical for Batocera.

I will do a 4K version and include that also.

BTW. The shader I used in the horizontal shot is actually Guest Advanced… with some creative tweaking to give it an LCD look.

Here is the same Guest Advanced method tweaked for the Mega Bezel using an internal res scale of 6X.

3 Likes

IMO, gameplay suffers when there is no division between the screens… so I added some. We lose three pixels on each screen but it plays much better.

For consistency between the overlays I also added the gray buttons.

4 Likes

amazing!!!, will there be any tutorial to play and put those bezel in RetroArch? I don’t know much about that program

3 Likes