Mega Bezel Reflection Shader! - Feedback and Updates

Ok. Thank you. You are helpful as always…:grinning:

1 Like

The crt pass does all the scanline dynamics.

Are you telling me there are two horizontal subtractive filtering sections showing up? There should be only one filtering section visible. Also it can’t be turned off, you should always see one.

Yes it does

1 Like

Yes

Both the one that was traditionally in the GDV NTSC presets as well as the one from the GDV Non-NTSC presets.

I’m almost certain this accounts for at least some of the discrepancy between output in the current and previous versions of the shader because neither of them seem to be active.

The one in the screenshot is immediately below the scanline settings. Whereas the one I’ve been using before in the GDV-NTSC presets is immediately below the GDV-NTSC scaling, artifacts and blend settings.

It doesn’t even have a heading, that’s a clear giveaway there.

Perhaps the Guest Advanced NTSC filtering options should continue to be paired with the Guest Advanced NTSC Shader as they don’t seem to work the same way. They seem to have different weighting and scaling. The values also don’t seem to correspond either.

I also recently read Guest saying that all one should ever need are the Horizontal and Subtractive Sharpness settings in reference to the GDV-NTSC shader.

That gave me the confidence to forgo the Fast Sharpen Settings in favour of those two settings and the results are quite striking. Setting the Fast Sharpen to 00000 really helps with the contrast of the black outlines of the sprites and graphics.

Here are two more examples of the difference between 1.8.1 and 1.7.0.

The difference is slight but not insignificant. It could very well be due to the lack of functioning Horizontal Filtering Controls.

1.8.1

1.7.0

Lastly, Horizontal Blur Sigma control seems to be completely absent from the non-NTSC version of the shader and this is something that I was really looking forward to experimenting with to further tweak my NTSC presets after seeing how profoundly it affected the sharpness and clarity of the image around the same time I discovered the reflection bug.

Take a look at how powerful this one parameter can be.

Would it be possible for the reflection bug fix to be backported to v1.7.0 or perhaps the swapping of the filtering sections be deferred for at least 1 version so that there’s one final version with no reflection bug but complete GDV-NTSC?

I posted some more new screenshots in my thread… Rastan at it’s full potential :crazy_face:

4 Likes

Has anyone got a Sony trinitron? I also want to make a setting for the Sony trinitron. I would apreciate if someone can post closeup photos and all the screen with good definition too, so I can copy the pattern of the aperture grille and make it as close as possible.

1 Like

This might be a good place to start.

Also r/crtgaming on reddit.

2 Likes

Thanks man. I’ll check it out.:grin:

1 Like

No problem @RetroGames4K. I understand you’re trying to match an actual set. Do remember that there are several different models of Trinitron sets with different TVLs and also different levels of deconvergence.

I’d say you’re probably already 90% there with your Sanyo Slot Mask Presets. All you might need to do to Trinitronify them might be to turn the Slot Mask Strength Bright and Dark Pixels down to 0 or comment them out in your preset and you’ll have a decent aperture grill at around 300TVL if using Mask 12, Size 1.

You can get a slightly higher TVL by using Mask 6, Size 2, also Mask 10, Size 1 and lastly Mask 6, Size 1.

You might want to experiment with the different Scanline Types as well with GSL 2 giving the darkest and thickest scanlines and you could easily match a PVM, BVM or Consumer Style TV.

1 Like

today i got c64 lighgun games working (the option was elsewhere) and the second game i tried just speaks to me , so i had to share this

6 Likes

Hi p3st, I dropped you a pm. Thank you man.

1 Like

@HyperspaceMadness just updated my post with some additional info.

1 Like

So when you are asking for things to be backported, what you are asking for is a custom branch of the software just for your use. This places a significant burden on maintenance of the package, and what about the next fix that comes out that you would like to be back ported?

Maintaining multiple branches of a package like this is not something I’m prepared to do at this point, because of the effort it would take, effort which instead could go into further work on the Mega Bezel which could be of value to everyone.

I don’t know that this is working the way you are thinking (I’m not sure the one set of parameters is connected to anything).

What I am planning on doing is for the next version make sure we don’t have repeated settings, and see what the visual difference between versions is caused by.

3 Likes

Nice! A little crosspost of an awesome Rastan cover

3 Likes

I understand. A separate branch just for myself isn’t really what I had in mind but I’m learning as we go along. Thanks for the insight.

Okay. You’re probably right. I just thought that the filtering section might have at least contributed to the discrepancy because none of the parameter changes were having any effect and those preset examples used some of those settings to achieve their final look.

My suggestion about keeping the GDV-NTSC around wasn’t really about fixing bugs. I only asked about that because I was thinking about what might have been lost if the GDV-NTSC filtering section had to be swapped out but I’m sure you would have a much better understanding of all of the implications and workings of these things than myself. Thanks again for the insight.

Please forgive my exuberance and at times ignorance.

1 Like

Here you have more screenshots. I’ve optimized brightness, I think is perfect now. At last!:sweat_smile: IMG_20230120_045241 IMG_20230120_045142

4 Likes

Hey guys… I’m looking for some tips on setting up a preset for Irritating Maze. Is it possible to properly line up the “official” bezel from Mr. Do’s pack with the in-game MAME lights? I’m hoping to use opacity to get them to glow through the bezel a bit. I know this won’t look perfect, but it’s the only way I could think of to make a unique bezel for it. Any other ideas are most welcome… would love to hear specifics about what aspect ratio and sizing tips to use to line everything up.

Thanks for the help.

Could you post a picture of the raw mame output and the overlay pointing out what you are trying to do?

I believe this is how it’s supposed to line up. I would probably like to add a marquee (or bottom part of) to use the red light area, and just have the CP area off screen.

1 Like

If you can’t do it by just scaling and positioning the screen then you are out of luck. (You’ll have to play with the aspect also.)

It is a pretty simple layout though.


<mamelayout version="2">
	<element name="bezel">
		<image file="irrmaze_bezel.png" />
	</element>
	<view name="Upright_Artwork">
		<screen index="0">
			<bounds x="408" y="221" width="1200" height="900" />
		</screen>
		<bezel element="bezel">
			<bounds x="0" y="0" width="2000" height="1660" />
		</bezel>
	</view>
</mamelayout>

<!--

- Artwork type: Bezel
- Photographed bezel provided by Bobby Tribble
- Converted for MAME by Mr. Do
- Lay file by Mr. Do

-->

So it should be possible.

Edit: Not going to be possible after all, without some serious effort.

The thing is that applying a layout in MAME disables the hard coded layout. I’m sure there are no flashing lights in MAME standalone using the Mr. Do layout.

In MAME you could recreate the lights and place them where you want but in the shader everything is part of the screen.

You could use the screen only base preset but you would need to edit the hard coded layout and do a custom compile. The hard coded layout is not as simple.

<!--
license:CC0
copyright-holders:Vas Crabb
-->
<mamelayout version="2">
	<!--
	sit0...sit9     TIMER LAMP          *0x10fe1c & 0x03ff
	sit10           TRACK BALL LAMP     *0x10fe1f != 0
	sit11           SIDE LAMP           *0x10fe20 != 0
	sit12...sit13   COLOR LAMP          *0x10fe21 & 0x0003
	sit14           FLASH LAMP          *0x10fe22 != 0
	sit15           ???                 *0x10fe29 != 0
	-->

	<element name="white">
		<rect><color red="1" green="1" blue="1" /></rect>
	</element>

	<element name="marquee">
		<rect><color red="0.5" green="0" blue="0" /></rect>
	</element>

	<element name="colorlamp">
		<rect state="0"><color red="0.4" green="0.4" blue="0.4" /></rect>
		<rect state="1"><color red="1" green="0.3" blue="0.2" /></rect>
	</element>

	<element name="timerlamp">
		<disk state="0"><color red="0.3" green="0" blue="0" /></disk>
		<disk state="1"><color red="1" green="0.3" blue="0.1" /></disk>
	</element>

	<element name="sidelamp">
		<rect state="0"><color red="0.5" green="0.5" blue="0.1" /></rect>
		<rect state="1"><color red="1" green="1" blue="0.5" /></rect>
	</element>

	<element name="flashstick" defstate="1">
		<rect state="0"><color red="1" green="1" blue="1" /></rect>
		<rect state="1"><color red="0" green="0" blue="0" /></rect>
	</element>

	<element name="flashgrille" defstate="1">
		<disk state="0"><color red="1" green="1" blue="1" /></disk>
		<disk state="1"><color red="0" green="0" blue="0" /></disk>
	</element>

	<element name="cpanel">
		<rect><color red="0.4" green="0.4" blue="0.4" /></rect>
	</element>

	<element name="trackball">
		<disk state="0"><color red="0.6" green="0" blue="0" /></disk>
		<disk state="1"><color red="0.9" green="0.5" blue="0.1" /></disk>
	</element>

	<element name="redbtn">
		<disk state="0"><color red="0.7" green="0" blue="0" /></disk>
		<disk state="1"><color red="0.35" green="0" blue="0" /></disk>
	</element>

	<element name="bluebtn">
		<disk state="0"><color red="0.2" green="0.5" blue="1" /></disk>
		<disk state="1"><color red="0.1" green="0.25" blue="0.5" /></disk>
	</element>

	<view name="Cabinet Lamps">
		<screen index="0"><bounds x="3.5" y="4.4" width="16" height="12" /></screen>

		<collection name="Marquee and Timer Lamps">
			<element ref="marquee"><bounds x="0" y="0" width="23" height="2.5" /></element>
			<element ref="colorlamp" name="sit13"><bounds x="0" y="0" width="11.5" height="1" /></element>
			<element ref="colorlamp" name="sit12"><bounds x="11.5" y="0" width="11.5" height="1" /></element>
			<element ref="timerlamp" name="sit9"><bounds x="2" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit8"><bounds x="4" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit7"><bounds x="6" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit6"><bounds x="8" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit5"><bounds x="10" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit4"><bounds x="12" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit3"><bounds x="14" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit2"><bounds x="16" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit1"><bounds x="18" y="1.25" width="1" height="1" /></element>
			<element ref="timerlamp" name="sit0"><bounds x="20" y="1.25" width="1" height="1" /></element>
		</collection>

		<element ref="flashstick" name="sit14"><bounds x="0.75" y="6.5" width="1.5" height="5.5" /></element>
		<element ref="sidelamp" name="sit11"><bounds x="0.5" y="12.5" width="2" height="4.5" /></element>
		<element ref="flashstick" name="sit14"><bounds x="20.75" y="6.5" width="1.5" height="5.5" /></element>
		<element ref="sidelamp" name="sit11"><bounds x="20.5" y="12.5" width="2" height="4.5" /></element>
		<element ref="flashgrille" name="sit14"><bounds x="7" y="17.25" width="3" height="2.5" /></element>
		<element ref="flashgrille" name="sit14"><bounds x="13" y="17.25" width="3" height="2.5" /></element>

		<collection name="Control Panel">
			<element ref="cpanel"><bounds x="4.5" y="20" width="14" height="7" /></element>
			<element ref="trackball" name="sit10"><bounds x="10" y="22" width="3" height="3" /></element>
			<element ref="bluebtn" inputtag="edge:irrmaze:START" inputmask="0x01"><bounds x="11.125" y="20.125" width="0.75" height="0.75" /></element>
			<element ref="redbtn" inputtag="edge:irrmaze:BUTTONS" inputmask="0x10"><bounds x="7" y="23" width="1" height="1" /></element>
			<element ref="bluebtn" inputtag="edge:irrmaze:BUTTONS" inputmask="0x20"><bounds x="5" y="22.5" width="1" height="1" /></element>
			<element ref="redbtn" inputtag="edge:irrmaze:BUTTONS" inputmask="0x40"><bounds x="15" y="23" width="1" height="1" /></element>
			<element ref="bluebtn" inputtag="edge:irrmaze:BUTTONS" inputmask="0x80"><bounds x="17" y="22.5" width="1" height="1" /></element>
		</collection>
	</view>

	<view name="Screen 0 Standard (320x224)">
		<screen index="0">
			<bounds left="0" top="0" right="4" bottom="3" />
		</screen>
	</view>

	<view name="Screen 0 Cropped (304x224)">
		<element ref="white">
			<bounds x="8" y="0" width="304" height="240" />
		</element>
		<screen index="0" blend="multiply">
			<bounds x="0" y="0" width="320" height="240" />
		</screen>
	</view>

	<view name="Screen 0 Stretched (304x224)">
		<bounds left="8" top="0" right="312" bottom="228" />
		<element ref="white">
			<bounds x="8" y="0" width="304" height="228" />
		</element>
		<screen index="0" blend="multiply">
			<bounds x="0" y="0" width="320" height="228" />
		</screen>
	</view>
</mamelayout>

Which is why you have the fancy lights.

This would be a LOT of tedious trial and error and probably not worth it for one game.

1 Like

The lights are actually flashing if you just enable them in the MAME tab video settings.