Jump to content
Download Section Back Up, Navigate the Right Hand Menu to find files, ignore the 0s

Sharing my MAME .162 HLSL settings


griffin518

Recommended Posts

I've tweaked Lottes_CRT (GLSL) based on a few actual NES and SNES carts I have comparing to Retroarch (same shader).  I then just ported the changed settings into the GLSL files for MAME.  This is basically what I use for all horizontal and vertical games with different ini files.

 

Would you post the file contents in here so we can all try your GLSL settings.  I think they look really good. 

 

Thanks

Link to comment
Share on other sites

  • Replies 195
  • Created
  • Last Reply

@griffin518

I get what you're saying and it's not a bad idea, but I'm not a fan of things getting rules and requirements.

That's the reason I quit sharing my themes & artwork here. The rules are just to much of a pain to bother with.

As soon as it feels like work, I'm out. Ha!

Link to comment
Share on other sites

@griffin518

I get what you're saying and it's not a bad idea, but I'm not a fan of things getting rules and requirements.

That's the reason I quit sharing my themes & artwork here. The rules are just to much of a pain to bother with.

As soon as it feels like work, I'm out. Ha!

The best part of the new website is the new attitudes!! Make your stuff, upload and share!!! Choice is good!! People get to decide what they want and it is way easier to share stuff imho!!! So I say share what ya got!! My stuff ain't the best but either but people appreciate the efforts and will use it so share away!!! My 2 cents!! :) what you got that you been holding back? I love checking new stuff out!
Link to comment
Share on other sites

@griffin518

I get what you're saying and it's not a bad idea, but I'm not a fan of things getting rules and requirements.

That's the reason I quit sharing my themes & artwork here. The rules are just to much of a pain to bother with.

As soon as it feels like work, I'm out. Ha!

 

I understand where you're coming from... no worries, keep doing what you're doing. It would be informal anyway, and self imposed. I'll start and anyone who wants can join in.

 

But what about that artwork?! Keep sharing!

Link to comment
Share on other sites

Would you post the file contents in here so we can all try your GLSL settings.  I think they look really good. 

 

Thanks

Absolutely.

 

For Lottes, there are 3 different masks that can be applied, and the one I have decommented matches my CRT display the closest. But you're welcome to play around with them as all CRTs are slightly different.

 

In Lottes_CRT.vsh, the following are set:

	saturation = 1.0;  // 1.0 is normal saturation. Increase as needed.
	tint = 0.0;  //0.0 is 0.0 degrees of Tint. Adjust as needed.

In Lottes_CRT_rgb32_dir.fsh, the following are set:

#define CURVATURE //Screen curvature effect.
#define YUV //Tint and Saturation adjustments.  You adjust the settings in Lottes_CRT.vsh now...
#define GAMMA_CONTRAST_BOOST //Expands contrast and makes image brighter but causes clipping.
#define BLOOM //enables a bloom effect
//#define MASK_APERTURE_GRILL //Only uncomment one of the MASK patterns at a time...
//#define MASK_TV
#define MASK_VGA
#define ORIGINAL_SCANLINES //Enable to use the original scanlines.
#define ORIGINAL_HARDPIX //Enable to use the original hardPix calculation.

//Normal MAME GLSL Uniforms
uniform sampler2D color_texture;
uniform vec2      color_texture_sz;			// size of color_texture
uniform vec2      color_texture_pow2_sz;	// size of color texture rounded up to power of 2
uniform vec2      screen_texture_sz;		// size of output resolution
uniform vec2      screen_texture_pow2_sz;   // size of output resolution rounded up to power of 2

//CRT Filter Variables
const float hardScan=-8.0; //-8,-12,-16, etc to make scalines more prominent.
const vec2 warp=vec2(1.0/64.0,1.0/48.0);  //adjusts the warp filter (curvature).
const float maskDark=0.6; //Sets how dark a "dark subpixel" is in the aperture pattern.
const float maskLight=1.8; //Sets how dark a "bright subpixel" is in the aperture pattern.
const float hardPix=-2.0; //-1,-2,-4, etc to make the upscaling sharper.
const float hardBloomScan=-2.5;
const float hardBloomPix=-1.75;
const float bloomAmount=2.2/12.0; //Lower this if there is too much bloom!
const float blackClip = 0.02;
const float brightMult = 1.2;
const float maskStrength = 0.8; //This sets the strength of the shadow mask effect
const vec3 gammaBoost = vec3(1.0/1.15, 1.0/1.15, 1.0/1.15);

The VERT flavor is setup identically and these settings are right after the line that defines rotation for vertical orientation.  I have both a horizont.ini and vertical.ini each calling their respective Lottes flavor.

 

I still want to play around with some of the bloom values (HardBoomPix and HardBloomScan) mainly because I don't really know what those affect.

 

I like GLSL over HLSL because to my eyes, the effects look a little less artificial, the colors look more true, and the results themselves are consistent without artifacts or uneven scanlines here and there.  This is mainly because I'm either not good at or don't have enough patience to figure out the necessary prescale values and pixel sizes to get HLSL to work right. 

Link to comment
Share on other sites

Also, just as a general note.  Both for HLSL and GLSL, you should really always have Bilinear filtering in game options turned OFF.  Both HLSL and GLSL do their own smoothing.  My pics using Lottes have bilinear tuned off, but as you can see, it's smoothed nicely due to the settings I've chosen.

Link to comment
Share on other sites

They seem to always be getting better. I don't think they will ever be perfect or exactly the same but I think they look pretty amazing. Much better than stock settings. I think they have come a long way.

Sent from my iPad using Tapatalk

Link to comment
Share on other sites

I went back and re-evaluated my settings for LottesCRT GLSL.  I played around a lot with HLSL as well, but it's just not nearly as successful as GLSL in general in fooling my eyes into thinking I'm looking at a CRT.

 

I found some hi-res pics of scanlines/slot masks on neogaf and shmups, and spent a lot of time trying to recreate the look (as close as possible).  These are all from actual CGA arcade monitors from the posts they came from.

 

Notable differences from my previous settings are higher bloom amount, overall higher sharpness, scanlines more pronounced, slot mask more pronounced.  Also, real CRTs are generally more contrast-y than LCD, so I compensated for that in the mame.ini file. 

 

mame.ini

#
# CORE SCREEN OPTIONS
#
brightness                0.9
contrast                  1.2
gamma                     0.9
pause_brightness          1.0
effect                    none
widestretch               0

200% Sample from Ghouls n Ghosts.

 

uJNgqF8.png

 

Full album here ->  http://imgur.com/a/taXjI#0

 

Included in the album are the actual CRT pics I used as references.

 

I went back to the drive-in movie theater last week and remembered to snap a close up of the Simpsons monitor I mentioned previously. Here it is:

 

http://i.imgur.com/It8AGTz.jpg

 

Thanks for taking a picture.  Included in my album above is a screen grab from the beginning of the first level in the simpsons if you want to check it out and compare with what you remember.

 

Also, attached are the GLSL files with settings modified.

glsl.7z

Link to comment
Share on other sites

I couldn't tell you as I know less than nothing about the coding of shaders in general.  The VSH files, have two settings that can be changed in them (tint and saturation).  The FSH files have the rest of the settings that can be changed.

Link to comment
Share on other sites

I've adjusted my settings as well, beyond what I or Metalzoic originally posted. This got me thinking... We've got a great group of people working on this and I'd really like to see the momentum continue, even over time and across shader changes, MAME version changes, etc.

 

If anyone's up for it I think we, as a group, should set a standard for how we post results. One piece of this would be getting consistent with how we post settings and screenshots; in what order, what to include vs leave out, screenshot resolution, etc. The other thought I had was that we should pick a couple of games (1-3?) to use for screenshot purposes. Perhaps we may even want to pick one or two screens from each game to screenshot as well. Each time we post results, we should post images from each game in the testing set.

 

Example:

  • Screenshot of Ghouls title screen
  • Screenshot of Ghouls screen right as the game starts
  • Screenshot of Ms. Pacman title screen with all ghosts lined up and Ms. Pacman coming across the middle
  • Screenshot of Ms. Pacman right at the start

 

We should have a mix of horizontal and vertical, newer and old, yet keep the list small. Other standards would include no bezels, launched directly from MAME or MAMEUIFX, etc.

 

I think if we did this it could provide a consistent record of visual results across settings and across versions of games, MAME, and type of shaders (HLSL vs GLSL vs who knows what). This allows people to compare their results to others in an apples-to-apples manner, very consistently.

 

We all have different setups, and like @parabolic, we have people using different display technologies. 

 

Always looking for some more HLSL settings to try.  Are you going to post your latest so we can see? 

Link to comment
Share on other sites

Always looking for some more HLSL settings to try.  Are you going to post your latest so we can see? 

 

Will do. Sorry, I've been really busy at work and home lately... no time for tweaking. :(

 

Edit: No time for screenshots, etc, but here are my current settings:

#
# CORE SCREEN OPTIONS
#
brightness                1.05
contrast                  1.0
gamma                     1.0
pause_brightness          0.65
effect                    none
widestretch               0

#
# DIRECT3D POST-PROCESSING OPTIONS
#
hlsl_enable               1
hlslpath                  hlsl
hlsl_prescale_x           0
hlsl_prescale_y           0
hlsl_preset               -1
hlsl_write                0
hlsl_snap_width           2048
hlsl_snap_height          1536
shadow_mask_alpha         0.4
shadow_mask_texture       ShadowMask.png
shadow_mask_x_count       6
shadow_mask_y_count       4
shadow_mask_usize         0.1875
shadow_mask_vsize         0.1875
shadow_mask_uoffset       0.0
shadow_mask_voffset       0.0
curvature                 0.15
round_corner              0.15
reflection                0.05
vignetting                0.24
scanline_alpha            0.58
scanline_size             1.05
scanline_height           0.75
scanline_bright_scale     1.30
scanline_bright_offset    0.65
scanline_jitter           0.05
defocus                   1.00,0.50
converge_x                0.4,0.0,-0.3
converge_y                0.0,0.0,0.0
radial_converge_x         0.2,0.0,-0.2
radial_converge_y         0.0,0.0,0.0
red_ratio                 1.05,0.00,0.10
grn_ratio                 -0.10,1.00,0.25
blu_ratio                 -0.25,0.25,1.25
saturation                1.25
offset                    -0.30,-0.20,-0.05
scale                     1.15,1.05,0.90
power                     0.90,0.90,1.15
floor                     0.05,0.05,0.05
phosphor_life             0.4,0.4,0.4

#
# NTSC POST-PROCESSING OPTIONS
#
yiq_enable                0
yiq_cc                    3.59754545
yiq_a                     0.5
yiq_b                     0.5
yiq_o                     1.570796325
yiq_p                     1.0
yiq_n                     1.0
yiq_y                     6.0
yiq_i                     1.2
yiq_q                     0.6
yiq_scan_time             52.6
yiq_phase_count           2

#
# VECTOR POST-PROCESSING OPTIONS
#
vector_length_scale       0.8
vector_length_ratio       500.0

#
# BLOOM POST-PROCESSING OPTIONS
#
vector_bloom_scale        0.3
raster_bloom_scale        0.225
bloom_lvl0_weight         1.0
bloom_lvl1_weight         0.21
bloom_lvl2_weight         0.19
bloom_lvl3_weight         0.17
bloom_lvl4_weight         0.15
bloom_lvl5_weight         0.14
bloom_lvl6_weight         0.13
bloom_lvl7_weight         0.12
bloom_lvl8_weight         0.11
bloom_lvl9_weight         0.10
bloom_lvl10_weight        0.09
Link to comment
Share on other sites

Those are some of the best HLSL settings I've seen yet.  But comparing them to a real DK cab, they're very de-saturated and black is too washed out (grey).  Maybe you could tweak that a little?  The shadow mask looks very good. :)

 

Edit:  Here's a pic from a DK cab for reference.

 

5gIiYCZ.jpg

Link to comment
Share on other sites

Those are some of the best HLSL settings I've seen yet.  But comparing them to a real DK cab, they're very de-saturated and black is too washed out (grey).  Maybe you could tweak that a little?  The shadow mask looks very good. :)

 

Will do...  thanks for the feedback! I'm heading out of town with the family soon for a week, will work on it when I get back.

 

The thing I like most about ShadowMask is that it allows for solid performance on older machines. I'll post exact specs for my desktop soon, but it's an older all-in-one with a mobile i7 (first gen) and a laptop-grade dedicated ATI video card. Not exactly the beefiest machine.

Link to comment
Share on other sites

Will do...  thanks for the feedback! I'm heading out of town with the family soon for a week, will work on it when I get back.

 

The thing I like most about ShadowMask is that it allows for solid performance on older machines. I'll post exact specs for my desktop soon, but it's an older all-in-one with a mobile i7 (first gen) and a laptop-grade dedicated ATI video card. Not exactly the beefiest machine.

Awesome.  I completely agree on ShadowMask.  Not having to prescale really saves on graphics overhead.  Enjoy your trip!

Link to comment
Share on other sites

Those are some of the best HLSL settings I've seen yet.  But comparing them to a real DK cab, they're very de-saturated and black is too washed out (grey).  Maybe you could tweak that a little?  The shadow mask looks very good. :)

 

So I'm back... and tweaking my settings a little. Try as I might, I just can't seem to kick the black level issue. I've tracked it down to 

bloom_lvl0_weight

The black levels are completely black with a setting of 0.2, but then the display is so incredibly dark... for which I haven't found a way to compensate. I'll keep plugging away, but I'm looking for suggestions here.

Link to comment
Share on other sites

So I'm back... and tweaking my settings a little. Try as I might, I just can't seem to kick the black level issue. I've tracked it down to 

bloom_lvl0_weight
The black levels are completely black with a setting of 0.2, but then the display is so incredibly dark... for which I haven't found a way to compensate. I'll keep plugging away, but I'm looking for suggestions here.

Black levels and overall contrast will probably have more to do with peoples individual monitors, their tech (LCD vs OLED for example), and the actual monitor color settings.

Link to comment
Share on other sites

Black levels and overall contrast will probably have more to do with peoples individual monitors, their tech (LCD vs OLED for example), and the actual monitor color settings.

 

This isn't a monitor setting... I'm tweaking the settings within HLSL. I get what you're saying, but you're one layer off.

 

finagle is right in that our settings have a bit of extra phosphor to them. I think it looks like an old CRT myself (the color TVs from my youth, at least), where black levels did indeed suffer. Arcade CRTs should be more black, however. 

 

It looks like something that's inherent to the HLSL code, so I don't think there's an effective way of reducing that effect. I'm happy with where things are at, but would like to see some deeper blacks myself... FWIW.

Link to comment
Share on other sites

Hi Guys

Hopefully you can help because I really love some of the settings you've come up with here!

I've done a fresh install of HyperSpin + RocketLauncher, using the most recent MAMEUIFX.

All games play perfectly with GLSL settings when launched with MAMEUIFX.

But when I launch through HyperSpin, it ignores the settings and I get no scanlines etc.

 

Any ideas what I should do?

 

Thanks!

 

EDIT: I also just added AAE for vector games.

Outside of Hyperspin, the games run with backgrounds, bezels etc.

When launched from inside HyperSpin, these are all gone - like HyperSpin has ignored the settings.

 

I'm guessing this is related - can anyone help?

Link to comment
Share on other sites

This isn't a monitor setting... I'm tweaking the settings within HLSL. I get what you're saying, but you're one layer off.

 

finagle is right in that our settings have a bit of extra phosphor to them. I think it looks like an old CRT myself (the color TVs from my youth, at least), where black levels did indeed suffer. Arcade CRTs should be more black, however. 

 

It looks like something that's inherent to the HLSL code, so I don't think there's an effective way of reducing that effect. I'm happy with where things are at, but would like to see some deeper blacks myself... FWIW.

 

This is very correct.  And you're definitely right about 'older' CRTs.  I do remember the crappy 13" I had for NES having greys for "blacks".  But newer ones are very black.  And Arcade monitors especially have pretty good blacks.  I'm glad you're keeping on the hunt for settings for that.  It gets pretty involved with all the different bloom values.  :\

Link to comment
Share on other sites

Maybe I'm not understanding what you guys are referring too. Mine is running next to an actual Neo Geo as well as an actual original Mario Bros and my Hyperspin monitor has just as deep blacks as those arcade CRT's. My monitor settings are set as a bit color torched and deep black.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...