Mega Bezel Reflection Shader! - Feedback and Updates

What’s going on here is that Samurai Showdown V is running in low-res native mode (~240p/Double-Strike) while Samurai Showdown VI is running in hi-res native mode (480p/VGA).

If you look at the image in Samurai Showdown VI you’ll see that there are in fact scanlines but there are many more, probably about double and the gaps between the scanlines are very fine.

It is these gaps which help reduce the jagged appearance of sprites which were designed with 240p resolution in mind or just low res graphics in general.

Compounding the issue is Scale FX/Super-XBR Smoothing seems to be active in those presets and they have less of an effect on hi-res graphics compared to low-res graphics.

So even though the sprites are low-res, the smooth algorithms are seeing them as hi-res and they’re not being smoothed. There’s a post somewhere on these forums by @Hyllian I believe, which explains and illustrates this phenomenon beautifully.

Based on my observation of the Samurai Showdown VI screenshot as well as other similar Dreamcast gamed.

The background seem to be rendered and upscaled differently from the character printed which seemingly remain untouched so probably some Bilinear or Nearest Neighbour upscaling was used for those for whatever reason. @hunterk had described this in the past as the sprites being “chunks or pixels” of was it “hunks of pixels”, whatever he said, the result is the smoothing algorithms missing them when it comes to filtering.

So you have a few options. The first is to force the game to run in low res mode using the core options. The result of that is that your sprites will look like the ones in Samurai Showdown V but all the pretty hi-res assets like fonts and the HUD are going to have a downgraded look.

The second option is to render internally at native res then use a D-Rez preset to downsample then output that to a lower resolution but that would also downsample your hi-res assets.

The third option is to use fake scanlines so you can apply the 240p scanlines to the 480p image.

Last, but not least is my favorite option, use a preset with (or adjust the preset so that it uses) a strong low to mid TVL CRT mask. The texture which the mask pattern adds to the image will also have the effect of taking away some of the harshness of the relatively unfiltered scanlines only image. Similar to the halftone effect used in magazines back in the day.

I have several examples of these in my preset packs. I’ll see if I can dig up some screenshots to add some illustration to my example.

This is an old example using a 1080p Optimized Preset at 1080p desktop resolution. If I find some newer ones I’ll update the post.

1 Like

Thank you.

I have tried the first option and run the game in half-res mode by using the core options. Mega Bezel Shader causes sprites to shatter as seen on screenshot. Now I will try the other methods and update this post.

SamSho VI must be a very painful game to emulate. I have never been able to make it look decent. If my question and these conversation pollute this post, I can happily stops asking in here and ask at wherever is more suitable.

Edit: I have applied you 2nd suggestion; D-Rez shader. In my opinion this is the best it could be. Yes the overall image quality dropped but it feels much better now to play. Thank you.

I’ll try fake scanlines as well. However, I couldn’t understand how to apply your last and favorite suggestion for now. I will read again and try to follow.

3 Likes

You don’t have to understand right away. You can start by using the presets which I have created which already do everything I mentioned and more.

You can find them here:

I suggest you start with my CyberLab Neo-GX Ultra Presets which are in a folder in my CyberLab Mega Bezel Death To Pixels Shader Preset Pack.

In my experience TurboGrafx-16/PC-Engine/Turbo Duo Presets also work well with Dreamcast Games.

2 Likes

Hi you may want to try the DREZ present which keeps a larger horizontal resolution and downsamples the vertical resolution

Something like this might work MBZ__1__ADV__GDV__DREZ_X-VIEWPORT_Y-240p.slangp

Although we might want to make a 640x240 DREZ at some point.

Here are some examples with different DREZ presets:

5 Likes

Hi, don’t know if it’s possible with megabezel or not, but is it possible to get a result like that :

My setup is with a vertical screen, so it’s not a problem to get that ratio.

You can check the reflection directly on that video (not mine, but it’s a french youtube channel that I watch time to time). I love the reflection arround the TV (and I now it’s ok to do), but the reflection on the megadrive would be neat :slight_smile: Cherry on the cake, changing the cover of the box with the cover of the current game.

what do you think ? possible or not ?

note : I forgot the link to the video

5 Likes

there is a similar Christmas version

2 Likes

That’s nice. Need to think about how to make mine now. I have try but I’m using batocera, it’s a bit tricky to make it work on bato…

Thanks for the link

2 Likes

The colors are finally correct. This process has been painful, but worth it! The Tandy CM-5 now looks really, really good in MegaBezel. I’ll have to work on the actual bezel looking like the real device next, possbly. We’ll see. The shader is color correct at last. I can’t wait to share.

The Tandy CM-5, despite the poor dot pitch, was truly the premier way to game in the 16 color PC era of the mid 80s. The monitor’s graininess and phosphor per-pixel brightness spike “shimmer” gave them an “arcade feel.”

6 Likes

I have a quick question. The Scanline direction multiplier isn’t doing anything for me on retroarch 1.19.1, the most recent version it’s working on is the 1.16, any ideas why ?

The downsampling blur and opposite dir multiplier work as expected though.

1 Like

So I’d like to port my latest shader presets from 1.12 to 1.19.1, but I am running into problems. Banding moire patterns appear, for starters, as well as distorted brightness levels where the blacks become greys. Any pointers? I can supply screenshots in a bit.

Ideally I’d like them to look identical without tweaking anything, but alas, seems this is not possible.

1 Like

Could you post one of your presets? That could help me get an idea of what might be happening.

1 Like

Which preset are you using that you are seeing this? Also could you post a screenshot? This will give me an idea of what kind of content you are using if that might be part of it :slight_smile:

Sure, here is one.

https://mega.nz/file/KI82DbKC#gN46kSf6TJk4R50Cy65iVTtt9tPpyDuoHzKldJGyFZw

Here’s another chain:

https://mega.nz/file/3V9SyCab#qgZWli-QDDLtH5DDPnfOYrO10c4p9zxLEKqkNyRoqpo

The first one shows resolution info text and not the game(Dosbox-Pure) with brightness amplified and the second simply crashes and refuses to operate.

Great shaders, thank you. I like seeing all the bezels you have to offer.

I’m using the MBZ_3_STD_GDV, but it actually does it in any other presets I’ve tried. I took 2 screenshots to illustrate, both with overlay and a different value to compare.

It’s still working on 1.16, but 1.17 up to the last version, the value doesn’t seem to apply.

So if you are seeing the resolution text this is because your preset has been saved as a full preset rather than a simple preset.

In this situation you aren’t protected from code / organizational changes between versions because full presets have a copy of all the old passes which may not work with the new shader code, whereas with a simple preset there is only a reference to a base preset and parameter/image path changes and you are protected when moving between versions.

I would suggest creating new simple presets and transplant your parameter values from your old presets into them to work with the new version.

1 Like

Ah, yeah, that’s not possible, at least, for my RGB settings because I’m using Cyberlab’s Death to Pixels presets as a base, and from there I did massive changes to parameters. Cyber’s presets only work up to 1.14. 1.17 nukes them. (edit: checked the README and see 1.17 is the version I was trying with)

I am having problems even using the base MBZ presets that come with the nightly build:

The smooth adv preset, for example, won’t even load.

“[ERROR] [slang]: Texture name ‘CorePass’ not found in semantic map, Probably the texture name or pass alias is not defined in the preset (Non-semantic textures not supported yet) [ERROR] [slang]: Failed to reflect SPIR-V. Resource usage is inconsistent with expectations. [ERROR] [Vulkan]: Failed to create preset: “C:\Steam\steamapps\common\RetroArch\shaders\shaders_slang\bezel\Mega_Bezel\Presets\MBZ__0__SMOOTH-ADV.slangp”. [ERROR] [Vulkan]: Failed to create filter chain: “C:\Steam\steamapps\common\RetroArch\shaders\shaders_slang\bezel\Mega_Bezel\Presets\MBZ__0__SMOOTH-ADV.slangp”. Falling back to stock.”

1 Like

While all presets are only guaranteed to look as intended with 1.14, there’s nothing that should prevent my presets from running on higher Mega Bezel versions.

My presets still load fine up to version 1.17.

If the Mega Bezel base presets won’t load, CyberLab presets which reference them won’t load either.

1 Like

Hmm, then something else must be going on with my MBZ.

Edit: Was a problem with the Steam version of MegaBezel. For whatever reason whatever Steam downloads for the nightly breaks MBZ with presets that apply the bezel border.

I downloaded directly from HyperSpace’s github v. 1.17.1 and the problem went away.

Cyber, you are correct, your presets work now.

So a couple of differences between 1.17.1 image output versus 1.12:

  1. Color hues are drastically off. I would figure this would be preserved, but this is not the case, and will be the most time consuming to adapt.

  2. Afterglow requires a much higher value now.

  3. Surround Luminance (new setting) causing tube to have a greyish glow–this was easy to fix.

Regarding hues, is there one setting I need to tweak that will fix that has changed between versions?

2 Likes

There are more than a couple differences actually. Many things have changed mainly in CRT-Guest-Advanced and also in Grade.

Firstly, what specifically do you see as a benefit in upgrading from 1.14 to 1.17? Are you aiming to achieve a more accurate, realistic or better look? What about the Mega Bezel and CRT- Guest-Advanced has changed that will result in better looking presets?

When I used to try to keep up, I would ask @guest.r or @HyperspaceMadness what had changed between versions and what settings would I have to adjust in order to attain the look of the previous version.

Other than that, you can check out the changelogs of all versions since 1.14 and also do the same for CRT-Guest-Advanced by browsing the changes posted in the thread since 1.14.

Another thing you can do is to compare the Shader Parameters in the old version, maybe take some screenshots/photos, then load up the new version and observe which parameters seem to no longer be active, have changed names or have completely different ranges.

On another note, if you have an HDR display, you can use the following tips as a guide to bring my Mega Bezel presets into the modern era.

2 Likes