Mega Bezel Reflection Shader! - Feedback and Updates

I repurposed a candy cab image for a passable Galaxy Game cabinet. :grin:

I have a Galaxy Game overlay in my Arcade Originals repo.

3 Likes

Mega_Bezel_Logo

Mega Bezel is updated to V1.11.0_2023-02-25

Changes:

  • Guest Advanced updated to crt-guest-advanced-2023-02-25-release1
    • Improvements to the new Magic Glow feature
      • Turn Magic Glow on and Increase the Glow amount to see the effect
    • New Slot Mask Mitigation option to reduce moire
  • Added/Restored Guest’s Raster Bloom as well as Overscan control
  • Updated Comments in presets to use # instead of // as per @hunterk’s request
  • Added rotation option for Rotate CRT Tube:
    • -1 = 90 Degrees Clockwise (or 270 Counter Clockwise)
    • 0 = No Rotation
    • 1 = 90 Degrees Counter Clockwise
  • Added groundwork for the wildcard replacement feature so presets will auto rotate and not flip in the future

Go to the first post here for links to the package and install instructions. Please make sure to read the install & setup instructions

@Guest.r’s Slot Mask Mitigation (You may need to open these in a different editor to get them to show up at 100% size and not see additional artifacts coming from scaling of the image on the web page)

Original

Mask Mitigation at 1

Zoomed In Original

image

Zoomed In Mask Mitigation at 1

image

14 Likes

Oh… that’s nice… even got the coin slot. :+1:

2 Likes

Hi HyperspaceMadness, This is the update I’ve been looking forward to. Great job as always. A thousand thanks.

4 Likes

Greetings @HyperspaceMadness,

Take a look at the reflection effect in the following screenshots.

It looks like the reflection is made up of individual rays and they don’t match perfectly with the source.

In bright areas, it takes on the appearance of a sparsely spaced LED strip illuminating the reflection. It also has the appearance of rainbow colours with dark areas in between.

I think I’ve noticed this since 1.10.0.

I’m pretty sure it wasn’t in 1.7.0 when I first noticed the reflection bug when Bezel Independent Scale is used.

@teste45321 what version of HSM Mega Bezel Reflection Shader were you using with CyberLab Mega Bezel Death To Pixels Shader Preset Pack when you took that screenshot above?

If you’re saying that I (and I’m assuming that also applies to all other users as well) should not use the horizontal sharpness stuff in the regular guest settings and instead use the parameters in ‘[ NTSC FILTERING OPTIONS ]:’ then why is the filtering section from the regular Guest Advance even there in the first place?

Mixing this regular crt-guest-advance pass with the crt-guest-advance-ntsc seems to have broken the NTSC Filtering Options - All of them. When I replace this regular crt-guest-advance pass with any crt-guest-advance-ntsc pass, the NTSC Filtering Options controls and effects work again.

Based on my understanding you attempted this hybrid approach in order to have ScaleFX functioning in the MBZ__0__SMOOTH-ADV__GDV-NTSC.slangp presets yet the MBZ__1__ADV__GDV-NTSC.slangp as well as the MBZ__3__STD__GDV-NTSC.slangp (and possibly even more) base presets are also affected by this change even though they don’t have/use ScaleFX.

Why is the crt-guest-advance.slang shader also combined with the crt-guest-advance-ntsc.slang shader in those as well?

Do you think @guest.r himself might be able to have an idea as to what might have caused things not to work as intended in the first place?

Edit:

I’ve done some more extensive testing on this issue and I’ve noticed that it doesn’t seem to affect the SCREEN-ONLY__GDV-NTSC nor the NO-REFLECT__GDV-NTSC presets. This is probably because none of them use the hsm-crt-guest-advance.slang pass. They all use the hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang pass instead.

In my internal testing if I replace the hsm-crt-guest-advance.slang pass with hsm-crt-guest-advance-ntsc-pass1.slang instead, I get a similar result as the presets above, which is that the NTSC Filtering Options section’s effects and controls work as expected.

The only downside to this is that the Scanline Direction Multiplier settings don’t work but ScaleFX works. Even the blurs work.

MBZ__0__SMOOTH-ADV-NO-REFLECT__GDV-NTSC.slangp

There also seems to be improved performance after swapping out the regular crt-guest-advance.slang pass with the crt-guest-advance-ntsc-pass2.slang shader.

Another question that came to mind is how important is the ability to run ScaleFX or use the Scanline Direction Multiplier for users of the NTSC presets who might be primarily using them for their NTSC Filtering, Blending, Scaling and Artifacting abilities which somewhat negates the need for the use of those aforementioned forms of upscaling/resampling?

I also remember you saying that one reason why you attempted to integrate the two Shaders was because of some similarities between the two as well as for ease of maintenance so I’m not ignorant of that.

I’m hoping that we (users) might be able to get an updated version which replaces the crt-guest-advance.slang pass in the NTSC base presets with the crt-guest-advance-ntsc-pass2.slang until better could be done.

It’s already like this in the Smooth-Advance__GDV-NTSC and the No-Reflect__GDV-NTSC presets.

Is it possible to crop out, or eliminate the center black line in a two-screen game like Warrior Blade or X-Men (6p)… or is that beyond what the shaders can do?

1 Like

I’m almost 100% sure that that’s not beyond what shaders can do and I think there are folks on these forums who have already done stuff like that.

1 Like

Hmm, I didn’t see this with warrior blade before, could you post a screenshot?

Also which core are you using?

1 Like

This is an unfinished preset setup, but you can see the line. I use MAME (current).

The technical reason is because of of reusing one file for both versions

Yes, you already mentioned this

Same technical reason of being able to reuse a file with almost the same code instead of having multiple copies of it which need to be maintained/updated whenever guest updates

Yes the whole point of the mega bezel is to have a consistent set of base features which work with multiple crt shaders, so it’s important that the scanline direction multipliers work

It’s important for the same reason as above

Yes this is planned to do, it is just not done yet, your repeated requests about this are making it feel overwhelming

please be patient

3 Likes

Just use the dual screen parameters (You will need to disable curvature.) and adjust the “Position Offset Between Screens”.

You can also change the aspect ratio, but I think this is the way it was meant to look.

5 Likes

I can’t seem to get it to align properly with the dual screen setting. When I get them close enough to remove the black line, the screens seem to overlap. I haven’t used the dual screen too much, so I am probably not understanding how it all works together.

Yep, that’s what you want. It will not work with curvature.

1 Like

No problem, I don’t use curvature. I think I have it now. It seems like a had to use just a bit of cropping with the other parameter to keep them lined up properly. Is there any way to size both screens together once you have them lined up? The scaling parameter seems to only do the first screen now.

1 Like

No, scaling will take some patience.

1 Like

My apologies, I was only trying to assist by sharing what was on my mind and what I noticed today to add to what I had previously reported. It was not my intention to add to any pressure. I know you have a very long To Do list. I’ll try my best to not let it happen again.

Understood. I’m working on it now. I notice that the color on the 2nd screen is slightly different so that there is always a bit of a “shadow” where the screens meet. Is that caused by the vignette on the two screens maybe?

Once you get used to the “follow layers” feature it’s hard to go back to moving all the pieces individually. :grin:

1 Like

MB ADV Smooth causes the audio to slow down and crackle. MB ADV Smooth Glass works just fine, while also providing reflections. I can’t discern why ADV Smooth by itself would have a problem like this uniquely. How would I go about fixing this, if anyone has any ideas?