Jump to content

The SweetFX Thread


Dogway

Recommended Posts

Posted

Hello, I see information about SweetFX is missing on the forums, so I want to fill that gap with your help too.

SweetFX is an emulator/game independent post-processing shader working on the DirectX backend.

Many people use it to improve contrast or do some antialias or color grading to their PC games, but it is also useful to add some nifty scanlines to your retro games when there is no internal shader support on their emus.

Things like this or this are possible.

As you see, it's not specially geared towards scanlines, mainly because it uses a single figure (CRTResolution 1.0).

Also I tried it with some emulators and for some reason didn't want to work despite using DirectX.

Luckily after some search, I found a mod made by Boulotaur2024, which will not only work on some emus like SSF (Saturn) or Model2, but it will allow for independent resolution based scanlines (CRTResolutionX & CRTResolutionY), this in turn will give you a realistic CRT look to your retro games.

Au7jT8ls.png Ul5w4l7s.png t7HE1jBs.png

There's a second problem, this one won't work on emulators like PCSX2. For that I had to use another SweetFX mod called Sekta's SweetFX. But this one has still the single figure CRTResolution so it's a pain to configure, and more over, it shows a white spot in the center, as depicted in the last screenshot of Power Stone right above. If anyone knows how to make the Boulotaur2024 mod work on Demul or PCSX2, please let me know. You are also free to post your SweetFX settings.

My settings for SSF:

// Set to 1 for ON or 0 for OFF
#define USE_SMAA_ANTIALIASING 0 //[0 or 1] SMAA Anti-aliasing : Smoothens jagged lines using the SMAA technique.
#define USE_FXAA_ANTIALIASING 0 //[0 or 1] FXAA Anti-aliasing : Smoothens jagged lines using the FXAA technique. WIP - Currently only works in DX9 and you need to use the FXAA injector dlls.
#define USE_CARTOON       	  0 //[0 or 1] Cartoon : "Toon"s the image. (Interferes with SMAA, CRT, Bloom, HDR and Lumasharpen)
#define USE_ADVANCED_CRT      1 //[0 or 1] Advanced CRT : Simulates an old CRT TV display. (Interferes with SMAA, Cartoon, Bloom, HDR and Lumasharpen, and it has a very high performance cost) 
#define USE_BLOOM             0 //[0 or 1] Bloom : Makes bright lights bleed their light into their surroundings (relatively high performance cost)
#define USE_HDR               0 //[0 or 1] HDR : Not actual HDR - It just tries to mimic an HDR look (relatively high performance cost)
#define USE_LUMASHARPEN       0 //[0 or 1] LumaSharpen : Also sharpens the antialiased edges which makes them less smooth - I'm working on fixing that.
#define USE_GAUSSIAN          1 //[0 or 1] Gaussian Blur : can be used to... blur, but also bloom/hazy/glowy look, also unsharp masking
#define USE_TECHNICOLOR       0 //[0 or 1] TECHNICOLOR : Attempts to mimic the look of an old movie using the Technicolor three-strip color process (Techicolor Process 4)
#define USE_DPX               0 //[0 or 1] Cineon DPX : Should make the image look like it's been converted to DXP Cineon - basically it's another movie-like look similar to technicolor.
#define USE_MONOCHROME        0 //[0 or 1] Monochrome : Monochrome makes the colors disappear.
#define USE_LIFTGAMMAGAIN     1 //[0 or 1] Lift Gamma Gain : Adjust brightness and color of shadows, midtones and highlights (avoids clipping)
#define USE_TONEMAP           0 //[0 or 1] Tonemap : Adjust gamma, exposure, saturation, bleach and defog. (may cause clipping)
#define USE_VIBRANCE          1 //[0 or 1] Vibrance : Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation.
#define USE_CURVES            0 //[0 or 1] Curves : Contrast adjustments using S-curves.
#define USE_SEPIA             0 //[0 or 1] Sepia : Sepia tones the image.
#define USE_VIGNETTE          1 //[0 or 1] Vignette : Darkens the edges of the image to make it look more like it was shot with a camera lens. May cause banding artifacts.
#define USE_DITHER            0 //[0 or 1] Dither : Applies dithering to simulate more colors than your monitor can display. This lessens banding artifacts (mostly caused by Vignette)
#define USE_BORDER            0 //[0 or 1] Border : Makes the screenedge black as a workaround for the bright edge that forcing some AA modes sometimes causes.
#define USE_SPLITSCREEN       0 //[0 or 1] Splitscreen : Enables the before-and-after splitscreen comparison mode.


  /*-----------------------------------------------------------.
 /                  SMAA Anti-aliasing settings                /
 '-----------------------------------------------------------*/

#define SMAA_THRESHOLD 0.10           //[0.05 to 0.20] Edge detection threshold. If SMAA misses some edges try lowering this slightly. I prefer between 0.08 and 0.12.
#define SMAA_MAX_SEARCH_STEPS 16      //[0 to 98] Determines the radius SMAA will search for aliased edges
#define SMAA_MAX_SEARCH_STEPS_DIAG 6  //[0 to 16] Determines the radius SMAA will search for diagonal aliased edges
#define SMAA_CORNER_ROUNDING 0        //[0 to 100] Determines the percent of antialiasing to apply to corners. 0 seems to affect fine text the least so it's the default.

// -- Advanced SMAA settings --
#define COLOR_EDGE_DETECTION 1        //[0 or 1] 1 Enables color edge detection (slower but slightly more acurate) - 0 uses luma edge detection (faster)
#define SMAA_DIRECTX9_LINEAR_BLEND 0  //[0 or 1] Using DX9 HARDWARE? (software version doesn't matter) if so this needs to be 1 - If not, leave it at 0.
                                     //Enable this only if you use a Geforce 7xxx series or older card, or a Radeon X1xxx series or older card.


  /*-----------------------------------------------------------.
 /                  FXAA Anti-aliasing settings                /
 '-----------------------------------------------------------*/
#define FXAA_QUALITY__PRESET 39      //[1 to 9] Choose the quality preset. 9 is the highest quality.
#define fxaa_Subpix 0.400            //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal.
#define fxaa_EdgeThreshold 0.250     //[0.000 to 1.000] Edge detection threshold. The minimum amount of local contrast required to apply algorithm.
#define fxaa_EdgeThresholdMin 0.060  //[0.000 to 1.000] Darkness threshold. Trims the algorithm from processing darks.


  /*-----------------------------------------------------------.
 /                  Cartoon settings                           /
 '-----------------------------------------------------------*/
#define CartoonPower 1.0             //[0.1 to 10.0] Amount of effect you want.


  /*-----------------------------------------------------------.
 /                  Advanced CRT settings                     /
 '----------------------------------------------------------*/
#define CRTAmount            1.00    //[0.00 to 1.00]  Amount of CRT effect you want

#define CRTResolutionX       320     //[1 to 2048]     Original input width of the game (ie. 320)
#define CRTResolutionY       224     //[1 to 2048]     Original input height of the game (ie. 240)
#define CRTgamma             2.4     //[0.0 to 4.0]    Gamma of simulated CRT (default 2.4)
#define CRTmonitorgamma      2.2     //[0.0 to 4.0]    Gamma of display monitor (typically 2.2 is correct)
#define CRTBrightness        1.2     //[1.0 to 3.0]    Used to boost brightness a little. Default is 1.0
#define CRTScanlineIntensity 2.0     //[2.0 to 4.0]    Scanlines intensity (use integer values preferably). Default is 2.0
#define CRTScanlineGaussian  1       //[0 or 1]        Use the "new nongaussian scanlines bloom effect". Default is on

#define CRTCurvature         1       //[[0 or 1]          "Barrel effect" enabled (1) or off (0)
#define CRTCurvatureRadius   2.0     //[0.0 to 2.0]       Curvature Radius (only effective when Curvature is enabled). Default is 1.5
#define CRTCornerSize        0.0200  //[0.0000 to 0.0020] Higher values, more rounded corner. Default is 0.001
#define CRTDistance          2.00    //[0.00 to 4.00]     Simulated distance from viewer to monitor. Default is 2.00
#define CRTAngleX            0.00    //[-0.20 to 0.20]    Tilt angle in radians (X coordinates)
#define CRTAngleY            0.00    //[-0.20 to 0.20]    Tilt angle in radians (Y coordinates). (Value of -0.15 gives the 'arcade tilt' look)
#define CRTOverScan          1.01    //[1.00 to 1.10]     Overscan (e.g. 1.02 for 2% overscan). Default is 1.01
#define CRTOversample        0       //[0 or 1]           Enable 3x oversampling of the beam profile (warning : performance hit)


  /*-----------------------------------------------------------.
 /                  Bloom settings                             /
 '-----------------------------------------------------------*/
#define BloomThreshold 20.25 //[0.00 to 50.00] Threshold for what is a bright light (that causes bloom) and what isn't.
#define BloomPower 1.26     //[0.000 to 8.000] Strength of the bloom
#define BloomWidth 0.016    //[0.0000 to 1.0000] Width of the bloom


  /*-----------------------------------------------------------.
 /                  HDR settings                               /
 '-----------------------------------------------------------*/
#define HDRPower 1.30  //[0.00 to 8.00] Strangely lowering this makes the image brighter
#define radius2  0.87  //[0.00 to 8.00] Raising this seems to make the effect stronger and also brighter


  /*-----------------------------------------------------------.
 /                  LumaSharpen settings                       /
 '-----------------------------------------------------------*/
// -- Sharpening --
#define sharp_strength 0.60   //[0.10 to 3.00] Strength of the sharpening
#define sharp_clamp    0.035  //[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035

// -- Advanced sharpening settings --
#define pattern 2        //[1|2|3|4] Choose a sample pattern. 1 = Fast, 2 = Normal, 3 = Wider, 4 = Pyramid shaped.
#define offset_bias 1.0  //[0.0 to 6.0] Offset bias adjusts the radius of the sampling pattern.
                        //I designed the pattern for offset_bias 1.0, but feel free to experiment.

// -- Debug sharpening settings --
#define show_sharpen 0   //[0 or 1] Visualize the strength of the sharpen (multiplied by 4 to see it better)


  /*-----------------------------------------------------------.
 /                  Gaussian Blur settings                     /
 '-----------------------------------------------------------*/
#define GaussEffect 2       //[0|1|2|3]      0 = Blur, 1 = Unsharpmask, 2 = Bloom, 3 = Sketchy. Default is 2
#define GaussQuality 3      //[0|1|2|3]      Warning: 2 and 3 are very expensive. Default is 1
#define GaussSigma 1        //[1 to 4]       The higher the wider blur/bloom is (only effective when Bloom selected)
#define GaussStrength 0.10  //[0.00 to 1.00] Amount of effect blended into the final image
#define GaussBloomWarmth 1  //[0|1|2]        "Temperature" of the bloom - 0 = neutral, 1 = warm, 2 = hazy/foggy


  /*-----------------------------------------------------------.
 /                  TECHNICOLOR settings                       /
 '-----------------------------------------------------------*/
#define TechniAmount 0.4         //[0.00 to 1.00]
#define TechniPower  4.0         //[0.00 to 8.00]
#define redNegativeAmount   0.88 //[0.00 to 1.00]
#define greenNegativeAmount 0.88 //[0.00 to 1.00]
#define blueNegativeAmount  0.88 //[0.00 to 1.00]


  /*-----------------------------------------------------------.
 /                  Cineon DPX settings                        /
 '-----------------------------------------------------------*/
#define Red   8.0  //[1.0 to 15.0]
#define Green 8.0  //[1.0 to 15.0]
#define Blue  8.0  //[1.0 to 15.0]

#define ColorGamma    2.5  //[0.1 to 2.5] Adjusts the colorfulness of the effect in a manner similar to Vibrance. 1.0 is neutral.
#define DPXSaturation 3.0  //[0.0 to 8.0] Adjust saturation of the effect. 1.0 is neutral.

#define RedC   0.36  //[0.60 to 0.20]
#define GreenC 0.36  //[0.60 to 0.20]
#define BlueC  0.34  //[0.60 to 0.20]

#define Blend 0.2    //[0.00 to 1.00] How strong the effect should be.


  /*-----------------------------------------------------------.
 /                  Monochrome settings                        /
 '-----------------------------------------------------------*/
#define Monochrome_conversion_values float3(0.18,0.41,0.41) //[0.00 to 1.00] Percentage of RGB to include (should sum up to 1.00)


  /*-----------------------------------------------------------.
 /                  Lift Gamma Gain settings                   /
 '-----------------------------------------------------------*/
#define RGB_Lift  float3(1.050, 1.040, 1.000)  //[0.000 to 2.000] Adjust shadows for Red, Green and Blue.
#define RGB_Gamma float3(1.350, 1.350, 1.050)  //[0.000 to 2.000] Adjust midtones for Red, Green and Blue
#define RGB_Gain  float3(1.050, 1.050, 1.250)  //[0.000 to 2.000] Adjust highlights for Red, Green and Blue


  /*-----------------------------------------------------------.
 /                  Tonemap settings                           /
 '-----------------------------------------------------------*/
#define Gamma 1.0                         //[0.000 to 2.000] Adjust midtones
#define Exposure 0.00                     //[-1.000 to 1.000] Adjust exposure
#define Saturation 0.00                   //[-1.000 to 1.000] Adjust saturation
#define Bleach 0.00                       //[0.000 to 1.000] Brightens the shadows and fades the colors
#define Defog 0.000                       //[0.000 to 1.000] How much of the color tint to remove
#define FogColor float3(0.00, 0.00, 2.55) //[0.00 to 2.55, 0.00 to 2.55, 0.00 to 2.55] What color to remove - default is blue


  /*-----------------------------------------------------------.
 /                  Vibrance settings                          /
 '-----------------------------------------------------------*/
#define Vibrance 0.15 //[-1.00 to 1.00] Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation.


  /*-----------------------------------------------------------.
 /                  Curves settings                            /
 '-----------------------------------------------------------*/
#define Curves_mode 0        //[0|1|2] Choose what to apply contrast to. 0 = Luma, 1 = Chroma, 2 = both Luma and Chroma. Default is 0 (Luma)
#define Curves_contrast 0.30 //[-1.00 to 1.00] The amount of contrast you want

// -- Advanced curve settings --
#define Curves_formula 8     //[1|2|3|4|5|6|7|8|9] The contrast s-curve you want to use.
                            //1 = Sine, 2 = Abs split, 3 = Smoothstep, 4 = Exp formula, 5 = Simplified Catmull-Rom (0,0,1,1), 6 = Perlins Smootherstep
                            //7 = Abs add, 8 = Techicolor Cinestyle, 9 = Parabola.
                            //Note that Technicolor Cinestyle is practically identical to Sine, but runs slower. In fact I think the difference might only be due to rounding errors.
                            //I prefer 2 myself, but 3 is a nice alternative with a little more effect (but harsher on the highlight and shadows) and it's the fastest formula.


  /*-----------------------------------------------------------.
 /                  Sepia settings                             /
 '-----------------------------------------------------------*/
#define ColorTone float3(1.40, 1.10, 0.90) //[0.00 to 2.55, 0.00 to 2.55, 0.00 to 2.55] What color to tint the image
#define GreyPower  0.11                    //[0.00 to 1.00] How much desaturate the image before tinting it
#define SepiaPower 0.58                    //[0.00 to 1.00] How much to tint the image


  /*-----------------------------------------------------------.
 /                  Vignette settings                          /
 '-----------------------------------------------------------*/
#define VignetteRatio 1.00    //[0.15 to 6.00]  Sets a width to height ratio. 1.00 (1/1) is perfectly round, while 1.60 (16/10) is 60 % wider than it's high.
#define VignetteRadius 1.00   //[-1.00 to 3.00] lower values = stronger radial effect from center
#define VignetteAmount -1.00  //[-2.00 to 1.00] Strength of black. -2.00 = Max Black, 1.00 = Max White.
#define VignetteSlope 16       //[1 to 16] How far away from the center the change should start to really grow strong (odd numbers cause a larger fps drop than even numbers)
#define VignetteCenter float2(0.500, 0.500)  //[0.000 to 1.000, 0.000 to 1.000] Center of effect.

  /*-----------------------------------------------------------.
 /                  Dither settings                            /
 '-----------------------------------------------------------*/
#define dither_method 1  //[1 or 2] 1 = Ordering dithering (good and very fast), 2 = Random dithering (even better dithering but not as fast)

//Note that the patterns used by Dither, makes an image harder to compress.
//This can make your screenshots and video recordings take up more space.


  /*-----------------------------------------------------------.
 /                  Border settings                            /
 '-----------------------------------------------------------*/
//No settings yet, beyond switching it on or off in the top section.


  /*-----------------------------------------------------------.
 /                  Splitscreen settings                       /
 '-----------------------------------------------------------*/
#define splitscreen_mode 1  //[1|2|3|4|5]  1 = Vertical 50/50 split, 2 = Vertical 25/50/25 split, 3 = Vertical 50/50 angled split, 4 = Horizontal 50/50 split, 5 = Horizontal 25/50/25 split


  /*-----------------------------------------------------------.
 /                  Key settings                               /
 '-----------------------------------------------------------*/
// This is the section where you can define your own key mapping
// See the following URL to find out what keycode a key has:
// http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

// key_toggle_sweetfx = 145
// key_screenshot     = 44
// key_reload_sweetfx = 19


  /*-----------------------------------------------------------.
 /                  Misc settings                              /
 '-----------------------------------------------------------*/
// You can load and chain other DirectX wrappers (ENB, Helix, Windower...)
// If the external wrapper is already named d3d9.dll, rename it into
// something else like "d3d9_enb.dll"

// external_d3d9_wrapper = none
// external_dxgi_wrapper = none (I don't think there are any dxgi wrapper out there yet)

Posted

Thanks Dogway for starting this thread. I've been using the modified sweetfx for SSF for a few weeks and it does make a big difference, but I'm using these settings.

I've since used the same files and settings with WINUAE and that looks much better as well.

post-9524-142870635491_thumb.jpg

56uIzxg.png

Posted

Yes, approaches as you see are a bit different. His model2 screenshots look great, antialiased and poppy. Scanlines though are a bit non-relevant, mainly because he is using a higher resolution, I use native resolution so scanlines match game pixels. That is a very valid approach and I might actually give it a go, pitty he didn't post settings...

For the SSF I don't like them that much, it's like a fine high resolution grid of scanlines. If you see my sweetfx cfg, resolution is set to 320x224 so it is pixel perfect, but SweetFX is much more than scanlines so just play with settings.

Now I am trying to know what CRTResolution is best for demul. I have to use 2x internal resolution otherwise it looks like crap, but still want to use scanlines that matches the original resolution. You can see on the Power Stone screen how some letters are glitched, and some detail is lost/blurred. That's using a CRTResolution of 1.0 I think. other values make scanlines merge and double.

I don't have a CRT around, so I set these as I feel, maybe giving more weight to horizontal scanlines than dotmask. I have been playing today with Mame's HLSL after reading some insightful posts, and the uploaded settings looked much more like a grid than scanlines, so I tweaked weights a bit, there's nothing wrong with that.

Posted

I've been trying to get sweetfx running with PJ64 or 1964 using various DX9 plugins, but currently have had no luck. Anyone had a go at those emu's?

56uIzxg.png

Posted

Since djvj is getting so long to update the necessary Project64 module, I decided to drop it and use the mupen64 core of RetroArch, it works surprisingly good and RetroArch supports many shaders. It is also true that most of them don't for mupen64, but I use the 3dfx shader.

  • 2 months later...
Posted
Thanks Dogway for starting this thread. I've been using the modified sweetfx for SSF for a few weeks and it does make a big difference, but I'm using these settings.

I've since used the same files and settings with WINUAE and that looks much better as well.

[ATTACH=CONFIG]42140[/ATTACH]

Gigapig, do your scan lines get messed up in ssf if you switch bezel on?

Posted
Gigapig, do your scan lines get messed up in ssf if you switch bezel on?

Only with bezels on. I could never get it fixed so I don't use bezels for that system.

56uIzxg.png

Posted

@guyverjay

Thanks for prompting me to look into it again, I thought about it again and realised that the CRT Resolution set out in the Sweetfx.ini must match the internal size of the bezel.

So I knocked up a bezel with an internal size of 1280x1024, set that in the ini and bingo, no ugly scanlines. :)

  /*-----------------------------------------------------------.
 /                  Advanced CRT settings                     /
 '----------------------------------------------------------*/
#define CRTAmount            0.99    //[0.00 to 1.00]  Amount of CRT effect you want

#[b]define CRTResolutionX[/b]       [color="#FF0000"]1280[/color]     //[1 to 2048]     Original input width of the game (ie. 320)
#[b]define CRTResolutionY[/b]       [color="#FF0000"]1024 [/color]    //[1 to 2048]     Original input height of the game (ie. 240)
#define CRTgamma             2.5     //[0.0 to 4.0]    Gamma of simulated CRT (default 2.4)
#define CRTmonitorgamma      2.0     //[0.0 to 4.0]    Gamma of display monitor (typically 2.2 is correct)
#define CRTBrightness        2.0     //[1.0 to 3.0]    Used to boost brightness a little. Default is 1.0
#define CRTScanlineIntensity 2.0     //[2.0 to 4.0]    Scanlines intensity (use integer values preferably). Default is 2.0
#define CRTScanlineGaussian  1       //[0 or 1]        Use the "new nongaussian scanlines bloom effect". Default is on

#define CRTCurvature         1       //[[0 or 1]          "Barrel effect" enabled (1) or off (0)
#define CRTCurvatureRadius   1.65     //[0.0 to 2.0]       Curvature Radius (only effective when Curvature is enabled). Default is 1.5
#define CRTCornerSize        0.0050  //[0.0000 to 0.0020] Higher values, more rounded corner. Default is 0.001
#define CRTDistance          6.00    //[0.00 to 4.00]     Simulated distance from viewer to monitor. Default is 2.00
#define CRTAngleX            0.00    //[-0.20 to 0.20]    Tilt angle in radians (X coordinates)
#define CRTAngleY            0.00   //[-0.20 to 0.20]    Tilt angle in radians (Y coordinates). (Value of -0.15 gives the 'arcade tilt' look)
#define CRTOverScan          1.00    //[1.00 to 1.10]     Overscan (e.g. 1.02 for 2% overscan). Default is 1.01
#define CRTOversample        1       //[0 or 1]           Enable 3x oversampling of the beam profile (warning : performance hit)

post-9524-142870646962_thumb.jpg

56uIzxg.png

Posted
@guyverjay

Thanks for prompting me to look into it again, I thought about it again and realised that the CRT Resolution set out in the Sweetfx.ini must match the internal size of the bezel.

So I knocked up a bezel with an internal size of 1280x1024, set that in the ini and bingo, no ugly scanlines. :)

  /*-----------------------------------------------------------.
 /                  Advanced CRT settings                     /
 '----------------------------------------------------------*/
#define CRTAmount            0.99    //[0.00 to 1.00]  Amount of CRT effect you want

#[b]define CRTResolutionX[/b]       [color="#FF0000"]1280[/color]     //[1 to 2048]     Original input width of the game (ie. 320)
#[b]define CRTResolutionY[/b]       [color="#FF0000"]1024 [/color]    //[1 to 2048]     Original input height of the game (ie. 240)
#define CRTgamma             2.5     //[0.0 to 4.0]    Gamma of simulated CRT (default 2.4)
#define CRTmonitorgamma      2.0     //[0.0 to 4.0]    Gamma of display monitor (typically 2.2 is correct)
#define CRTBrightness        2.0     //[1.0 to 3.0]    Used to boost brightness a little. Default is 1.0
#define CRTScanlineIntensity 2.0     //[2.0 to 4.0]    Scanlines intensity (use integer values preferably). Default is 2.0
#define CRTScanlineGaussian  1       //[0 or 1]        Use the "new nongaussian scanlines bloom effect". Default is on

#define CRTCurvature         1       //[[0 or 1]          "Barrel effect" enabled (1) or off (0)
#define CRTCurvatureRadius   1.65     //[0.0 to 2.0]       Curvature Radius (only effective when Curvature is enabled). Default is 1.5
#define CRTCornerSize        0.0050  //[0.0000 to 0.0020] Higher values, more rounded corner. Default is 0.001
#define CRTDistance          6.00    //[0.00 to 4.00]     Simulated distance from viewer to monitor. Default is 2.00
#define CRTAngleX            0.00    //[-0.20 to 0.20]    Tilt angle in radians (X coordinates)
#define CRTAngleY            0.00   //[-0.20 to 0.20]    Tilt angle in radians (Y coordinates). (Value of -0.15 gives the 'arcade tilt' look)
#define CRTOverScan          1.00    //[1.00 to 1.10]     Overscan (e.g. 1.02 for 2% overscan). Default is 1.01
#define CRTOversample        1       //[0 or 1]           Enable 3x oversampling of the beam profile (warning : performance hit)

[ATTACH=CONFIG]45119[/ATTACH]

Haha very cool

  • 4 months later...
Posted

Gigapig, how are you getting SweetFX to work with WinUae? I have it in the WinUAE folder (like I do in the SSF folder) but it doesn't seem to do anything?

Thanks

Posted
Gigapig, how are you getting SweetFX to work with WinUae? I have it in the WinUAE folder (like I do in the SSF folder) but it doesn't seem to do anything?

Thanks

Drop these into the root of the emulator folder, I assume your familiar with the Sweetfx settings ini? This also works with Saturn and may even work on Windows 8?

Let me know how you get on, I have tweaked my ini file to get it looking half decent.

Swfx_Injector_20130519_ArcadeCRT.zip

56uIzxg.png

Posted
Drop these into the root of the emulator folder, I assume your familiar with the Sweetfx settings ini? This also works with Saturn and may even work on Windows 8?

Let me know how you get on, I have tweaked my ini file to get it looking half decent.

Nope still didn't work, not sure whats going, works for SSF and they are the same files

Posted

Not sure what to suggest. Here is what's in my WinUAE folder and also the settings file for SFX.

post-9524-142870672851_thumb.jpg

  /*-----------------------------------------------------------.   
 /                       Description                           /
 '------------------------------------------------------------/

Game: Any
SweetFX version: 1.4
Author: CeeJay.dk
Description: 

These are the default settings for SweetFX 1.4
They smoothen jagged edges with SMAA anti-aliasing, sharpen the image with LumaSharpen and make the colors slightly more vibrant with Vibrance.

Please note when tweaking settings that higher numbers does not always equal better (nor does lower).
Finding the best settings for your game and your taste is about finding just the right amount to apply.

If you made a good setttings preset please share it with your friends, on forums and websites,
and/or submit it to the SweetFX Settings Database : http://sfx.thelazy.net/games/

  /*-----------------------------------------------------------.
 /                      Choose effects                         /
 '-----------------------------------------------------------*/

// Set to 1 for ON or 0 for OFF
#define USE_SMAA_ANTIALIASING 1 //[0 or 1] SMAA Anti-aliasing : Smoothens jagged lines using the SMAA technique.
#define USE_FXAA_ANTIALIASING 0 //[0 or 1] FXAA Anti-aliasing : Smoothens jagged lines using the FXAA technique. WIP - Currently only works in DX9 and you need to use the FXAA injector dlls.
#define USE_CARTOON       	  0 //[0 or 1] Cartoon : "Toon"s the image. (Interferes with SMAA, CRT, Bloom, HDR and Lumasharpen)
#define USE_ADVANCED_CRT      1 //[0 or 1] Advanced CRT : Simulates an old CRT TV display. (Interferes with SMAA, Cartoon, Bloom, HDR and Lumasharpen, and it has a very high performance cost) 
#define USE_BLOOM             0 //[0 or 1] Bloom : Makes bright lights bleed their light into their surroundings (relatively high performance cost)
#define USE_HDR               0 //[0 or 1] HDR : Not actual HDR - It just tries to mimic an HDR look (relatively high performance cost)
#define USE_LUMASHARPEN       0 //[0 or 1] LumaSharpen : Also sharpens the antialiased edges which makes them less smooth - I'm working on fixing that.
#define USE_GAUSSIAN          0 //[0 or 1] Gaussian Blur : can be used to... blur, but also bloom/hazy/glowy look, also unsharp masking
#define USE_TECHNICOLOR       0 //[0 or 1] TECHNICOLOR : Attempts to mimic the look of an old movie using the Technicolor three-strip color process (Techicolor Process 4)
#define USE_DPX               0 //[0 or 1] Cineon DPX : Should make the image look like it's been converted to DXP Cineon - basically it's another movie-like look similar to technicolor.
#define USE_MONOCHROME        0 //[0 or 1] Monochrome : Monochrome makes the colors disappear.
#define USE_LIFTGAMMAGAIN     0 //[0 or 1] Lift Gamma Gain : Adjust brightness and color of shadows, midtones and highlights (avoids clipping)
#define USE_TONEMAP           0 //[0 or 1] Tonemap : Adjust gamma, exposure, saturation, bleach and defog. (may cause clipping)
#define USE_VIBRANCE          1 //[0 or 1] Vibrance : Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation.
#define USE_CURVES            0 //[0 or 1] Curves : Contrast adjustments using S-curves.
#define USE_SEPIA             0 //[0 or 1] Sepia : Sepia tones the image.
#define USE_VIGNETTE          0 //[0 or 1] Vignette : Darkens the edges of the image to make it look more like it was shot with a camera lens. May cause banding artifacts.
#define USE_DITHER            0 //[0 or 1] Dither : Applies dithering to simulate more colors than your monitor can display. This lessens banding artifacts (mostly caused by Vignette)
#define USE_BORDER            0 //[0 or 1] Border : Makes the screenedge black as a workaround for the bright edge that forcing some AA modes sometimes causes.
#define USE_SPLITSCREEN       0 //[0 or 1] Splitscreen : Enables the before-and-after splitscreen comparison mode.


  /*-----------------------------------------------------------.
 /                  SMAA Anti-aliasing settings                /
 '-----------------------------------------------------------*/

#define SMAA_THRESHOLD 0.10           //[0.05 to 0.20] Edge detection threshold. If SMAA misses some edges try lowering this slightly. I prefer between 0.08 and 0.12.
#define SMAA_MAX_SEARCH_STEPS 16      //[0 to 98] Determines the radius SMAA will search for aliased edges
#define SMAA_MAX_SEARCH_STEPS_DIAG 6  //[0 to 16] Determines the radius SMAA will search for diagonal aliased edges
#define SMAA_CORNER_ROUNDING 0        //[0 to 100] Determines the percent of antialiasing to apply to corners. 0 seems to affect fine text the least so it's the default.

// -- Advanced SMAA settings --
#define COLOR_EDGE_DETECTION 1        //[0 or 1] 1 Enables color edge detection (slower but slightly more acurate) - 0 uses luma edge detection (faster)
#define SMAA_DIRECTX9_LINEAR_BLEND 0  //[0 or 1] Using DX9 HARDWARE? (software version doesn't matter) if so this needs to be 1 - If not, leave it at 0.
                                     //Enable this only if you use a Geforce 7xxx series or older card, or a Radeon X1xxx series or older card.


  /*-----------------------------------------------------------.
 /                  FXAA Anti-aliasing settings                /
 '-----------------------------------------------------------*/
#define FXAA_QUALITY__PRESET 39      //[1 to 9] Choose the quality preset. 9 is the highest quality.
#define fxaa_Subpix 0.400            //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal.
#define fxaa_EdgeThreshold 0.250     //[0.000 to 1.000] Edge detection threshold. The minimum amount of local contrast required to apply algorithm.
#define fxaa_EdgeThresholdMin 0.060  //[0.000 to 1.000] Darkness threshold. Trims the algorithm from processing darks.


  /*-----------------------------------------------------------.
 /                  Cartoon settings                           /
 '-----------------------------------------------------------*/
#define CartoonPower 1.0             //[0.1 to 10.0] Amount of effect you want.


  /*-----------------------------------------------------------.
 /                  Advanced CRT settings                     /
 '----------------------------------------------------------*/
#define CRTAmount            0.99    //[0.00 to 1.00]  Amount of CRT effect you want

#define CRTResolutionX       640     //[1 to 2048]     Original input width of the game (ie. 320)
#define CRTResolutionY       256     //[1 to 2048]     Original input height of the game (ie. 240)
#define CRTgamma             2.4     //[0.0 to 4.0]    Gamma of simulated CRT (default 2.4)
#define CRTmonitorgamma      2.2     //[0.0 to 4.0]    Gamma of display monitor (typically 2.2 is correct)
#define CRTBrightness        2.0     //[1.0 to 3.0]    Used to boost brightness a little. Default is 1.0
#define CRTScanlineIntensity 2.0     //[2.0 to 4.0]    Scanlines intensity (use integer values preferably). Default is 2.0
#define CRTScanlineGaussian  1       //[0 or 1]        Use the "new nongaussian scanlines bloom effect". Default is on

#define CRTCurvature         1       //[[0 or 1]          "Barrel effect" enabled (1) or off (0)
#define CRTCurvatureRadius   3.00     //[0.0 to 2.0]       Curvature Radius (only effective when Curvature is enabled). Default is 1.5
#define CRTCornerSize        0.0100  //[0.0000 to 0.0020] Higher values, more rounded corner. Default is 0.001
#define CRTDistance          2.00    //[0.00 to 4.00]     Simulated distance from viewer to monitor. Default is 2.00
#define CRTAngleX            0.00    //[-0.20 to 0.20]    Tilt angle in radians (X coordinates)
#define CRTAngleY            0.00   //[-0.20 to 0.20]    Tilt angle in radians (Y coordinates). (Value of -0.15 gives the 'arcade tilt' look)
#define CRTOverScan          1.00    //[1.00 to 1.10]     Overscan (e.g. 1.02 for 2% overscan). Default is 1.01
#define CRTOversample        1       //[0 or 1]           Enable 3x oversampling of the beam profile (warning : performance hit)


  /*-----------------------------------------------------------.
 /                  Bloom settings                             /
 '-----------------------------------------------------------*/
#define BloomThreshold 20.25 //[0.00 to 50.00] Threshold for what is a bright light (that causes bloom) and what isn't.
#define BloomPower 1.446     //[0.000 to 8.000] Strength of the bloom
#define BloomWidth 0.0142    //[0.0000 to 1.0000] Width of the bloom


  /*-----------------------------------------------------------.
 /                  HDR settings                               /
 '-----------------------------------------------------------*/
#define HDRPower 1.30  //[0.00 to 8.00] Strangely lowering this makes the image brighter
#define radius2  0.87  //[0.00 to 8.00] Raising this seems to make the effect stronger and also brighter


  /*-----------------------------------------------------------.
 /                  LumaSharpen settings                       /
 '-----------------------------------------------------------*/
// -- Sharpening --
#define sharp_strength 0.60   //[0.10 to 3.00] Strength of the sharpening
#define sharp_clamp    0.035  //[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035

// -- Advanced sharpening settings --
#define pattern 2        //[1|2|3|4] Choose a sample pattern. 1 = Fast, 2 = Normal, 3 = Wider, 4 = Pyramid shaped.
#define offset_bias 1.0  //[0.0 to 6.0] Offset bias adjusts the radius of the sampling pattern.
                        //I designed the pattern for offset_bias 1.0, but feel free to experiment.

// -- Debug sharpening settings --
#define show_sharpen 0   //[0 or 1] Visualize the strength of the sharpen (multiplied by 4 to see it better)


  /*-----------------------------------------------------------.
 /                  Gaussian Blur settings                     /
 '-----------------------------------------------------------*/
#define GaussEffect 2       //[0|1|2|3]      0 = Blur, 1 = Unsharpmask, 2 = Bloom, 3 = Sketchy. Default is 2
#define GaussQuality 1      //[0|1|2|3]      Warning: 2 and 3 are very expensive. Default is 1
#define GaussSigma 2        //[1 to 4]       The higher the wider blur/bloom is (only effective when Bloom selected)
#define GaussStrength 0.02  //[0.00 to 1.00] Amount of effect blended into the final image
#define GaussBloomWarmth 1  //[0|1|2]        "Temperature" of the bloom - 0 = neutral, 1 = warm, 2 = hazy/foggy


  /*-----------------------------------------------------------.
 /                  TECHNICOLOR settings                       /
 '-----------------------------------------------------------*/
#define TechniAmount 0.4         //[0.00 to 1.00]
#define TechniPower  4.0         //[0.00 to 8.00]
#define redNegativeAmount   0.88 //[0.00 to 1.00]
#define greenNegativeAmount 0.88 //[0.00 to 1.00]
#define blueNegativeAmount  0.88 //[0.00 to 1.00]


  /*-----------------------------------------------------------.
 /                  Cineon DPX settings                        /
 '-----------------------------------------------------------*/
#define Red   8.0  //[1.0 to 15.0]
#define Green 8.0  //[1.0 to 15.0]
#define Blue  8.0  //[1.0 to 15.0]

#define ColorGamma    2.5  //[0.1 to 2.5] Adjusts the colorfulness of the effect in a manner similar to Vibrance. 1.0 is neutral.
#define DPXSaturation 3.0  //[0.0 to 8.0] Adjust saturation of the effect. 1.0 is neutral.

#define RedC   0.36  //[0.60 to 0.20]
#define GreenC 0.36  //[0.60 to 0.20]
#define BlueC  0.34  //[0.60 to 0.20]

#define Blend 0.2    //[0.00 to 1.00] How strong the effect should be.


  /*-----------------------------------------------------------.
 /                  Monochrome settings                        /
 '-----------------------------------------------------------*/
#define Monochrome_conversion_values float3(0.18,0.41,0.41) //[0.00 to 1.00] Percentage of RGB to include (should sum up to 1.00)


  /*-----------------------------------------------------------.
 /                  Lift Gamma Gain settings                   /
 '-----------------------------------------------------------*/
#define RGB_Lift  float3(1.000, 1.000, 1.000)  //[0.000 to 2.000] Adjust shadows for Red, Green and Blue
#define RGB_Gamma float3(1.000, 1.000, 1.000)  //[0.000 to 2.000] Adjust midtones for Red, Green and Blue
#define RGB_Gain  float3(1.000, 1.000, 1.000)  //[0.000 to 2.000] Adjust highlights for Red, Green and Blue


  /*-----------------------------------------------------------.
 /                  Tonemap settings                           /
 '-----------------------------------------------------------*/
#define Gamma 1.0                         //[0.000 to 2.000] Adjust midtones
#define Exposure 0.00                     //[-1.000 to 1.000] Adjust exposure
#define Saturation 0.00                   //[-1.000 to 1.000] Adjust saturation
#define Bleach 0.00                       //[0.000 to 1.000] Brightens the shadows and fades the colors
#define Defog 0.000                       //[0.000 to 1.000] How much of the color tint to remove
#define FogColor float3(0.00, 0.00, 2.55) //[0.00 to 2.55, 0.00 to 2.55, 0.00 to 2.55] What color to remove - default is blue


  /*-----------------------------------------------------------.
 /                  Vibrance settings                          /
 '-----------------------------------------------------------*/
#define Vibrance 0.50 //[-1.00 to 1.00] Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation.


  /*-----------------------------------------------------------.
 /                  Curves settings                            /
 '-----------------------------------------------------------*/
#define Curves_mode 0        //[0|1|2] Choose what to apply contrast to. 0 = Luma, 1 = Chroma, 2 = both Luma and Chroma. Default is 0 (Luma)
#define Curves_contrast 0.30 //[-1.00 to 1.00] The amount of contrast you want

// -- Advanced curve settings --
#define Curves_formula 8     //[1|2|3|4|5|6|7|8|9] The contrast s-curve you want to use.
                            //1 = Sine, 2 = Abs split, 3 = Smoothstep, 4 = Exp formula, 5 = Simplified Catmull-Rom (0,0,1,1), 6 = Perlins Smootherstep
                            //7 = Abs add, 8 = Techicolor Cinestyle, 9 = Parabola.
                            //Note that Technicolor Cinestyle is practically identical to Sine, but runs slower. In fact I think the difference might only be due to rounding errors.
                            //I prefer 2 myself, but 3 is a nice alternative with a little more effect (but harsher on the highlight and shadows) and it's the fastest formula.


  /*-----------------------------------------------------------.
 /                  Sepia settings                             /
 '-----------------------------------------------------------*/
#define ColorTone float3(1.40, 1.10, 0.90) //[0.00 to 2.55, 0.00 to 2.55, 0.00 to 2.55] What color to tint the image
#define GreyPower  0.11                    //[0.00 to 1.00] How much desaturate the image before tinting it
#define SepiaPower 0.58                    //[0.00 to 1.00] How much to tint the image


  /*-----------------------------------------------------------.
 /                  Vignette settings                          /
 '-----------------------------------------------------------*/
#define VignetteRatio 1.00    //[0.15 to 6.00]  Sets a width to height ratio. 1.00 (1/1) is perfectly round, while 1.60 (16/10) is 60 % wider than it's high.
#define VignetteRadius 1.00   //[-1.00 to 3.00] lower values = stronger radial effect from center
#define VignetteAmount -1.00  //[-2.00 to 1.00] Strength of black. -2.00 = Max Black, 1.00 = Max White.
#define VignetteSlope 8       //[1 to 16] How far away from the center the change should start to really grow strong (odd numbers cause a larger fps drop than even numbers)
#define VignetteCenter float2(0.500, 0.500)  //[0.000 to 1.000, 0.000 to 1.000] Center of effect.


  /*-----------------------------------------------------------.
 /                  Dither settings                            /
 '-----------------------------------------------------------*/
#define dither_method 1  //[1 or 2] 1 = Ordering dithering (good and very fast), 2 = Random dithering (even better dithering but not as fast)

//Note that the patterns used by Dither, makes an image harder to compress.
//This can make your screenshots and video recordings take up more space.


  /*-----------------------------------------------------------.
 /                  Border settings                            /
 '-----------------------------------------------------------*/
//No settings yet, beyond switching it on or off in the top section.


  /*-----------------------------------------------------------.
 /                  Splitscreen settings                       /
 '-----------------------------------------------------------*/
#define splitscreen_mode 1  //[1|2|3|4|5]  1 = Vertical 50/50 split, 2 = Vertical 25/50/25 split, 3 = Vertical 50/50 angled split, 4 = Horizontal 50/50 split, 5 = Horizontal 25/50/25 split


  /*-----------------------------------------------------------.
 /                  Key settings                               /
 '-----------------------------------------------------------*/
// This is the section where you can define your own key mapping
// See the following URL to find out what keycode a key has:
// http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

// key_toggle_sweetfx = 145
// key_screenshot     = 44
// key_reload_sweetfx = 19


  /*-----------------------------------------------------------.
 /                  Misc settings                              /
 '-----------------------------------------------------------*/
// You can load and chain other DirectX wrappers (ENB, Helix, Windower...)
// If the external wrapper is already named d3d9.dll, rename it into
// something else like "d3d9_enb.dll"

// external_d3d9_wrapper = none
// external_dxgi_wrapper = none (I don't think there are any dxgi wrapper out there yet)

56uIzxg.png

Posted

Figured it out, just copied over my files from my SSF directory instead of using the ones in the zip, seems to work for some reason lol

Thanks for your help

Posted
Drop these into the root of the emulator folder, I assume your familiar with the Sweetfx settings ini? This also works with Saturn and may even work on Windows 8?

Let me know how you get on, I have tweaked my ini file to get it looking half decent.

Thanks Gigapig. This version works perfect with SSF for the Sega Saturn. It won't work with WinUAE on mine. I do have a different version of SweetFX that does work on WinUAE and NullDC but won't work with SSF. Really weird. Either way, thanks a lot. Seems like Demul is the only one that refuses to work with SweetFX on my system because it uses DX11 instead of DX9. Too bad.

Posted

For those with Windows 8.1 and emulators that use DX11 like Demul, I found Reshade. Reshade is a new injector for SweetFX 2.0 Beta. It works perfectly without the need additional software like Radeon Pro.

The SweetFX settings are a bit different so the settings from previous versions don't work. I haven't found a good setting yet but than again I haven't played it it too much.

http://reshade.me/

Update: For some reason, Demul refuses to look good. Reshade worked but it looked terrible. No matter what settings I used, the shaders always looked ugly. So I decided to use RadeonPro with SweetFX. The result was the same. Even using the same shaders I currently use for NullDc, WinAUE and SSF, they looked terrible in Demul - blurry, big, blocky. I can't figure this one out. Changing emulator resolutions has no effect either. I'm really stumped!

  • 2 weeks later...
Posted
The texts do look very blurred at places though... can that be avoided?

Can you post your settings?

Looks pretty fuzzy wuzzy with it off as well, but we are running it at ridiculous resolutions compared to what it was.

I've attached my Sweetfx.ini, bear in mind I'm running with bezels.

Here are my video settings for Amiga.

post-9524-142870676061_thumb.png

Also make sure you have Auto scaling set under filter.

post-9524-142870676066_thumb.jpg

SweetFX_settings.zip

56uIzxg.png

Posted

I've read your posts guys and I'm very interested in this. When I was battling over which atari 2600 emulator could replace stella that would use shaders I wish I had known about this. Stella has built in support for original controllers out of the box but no shader support. Does anyone know if it works well with stella? I have never used this program - gig do you have an idiots guide?

Posted

There's nothing special or complicated, all you do is drop the Sweetfx files into the root of the emulator. You then open the Sweetfx_settings.ini file.

the top section is where you switch you effects on, changing the 0 to a 1, I usually just have advanced crt on.

You can then just run a game or scroll down the ini and tweak the settings for the effects you have selected.

The only caveat with version 1.51 is that it only supports Directx, and there are problems or it doesn't work with windows 8.1; although there are work around.

There is a 2.0 version which may work with Opengl but it's in the test stages only.

I'm not sure it works with stella, but I don't remember if I tested it, I may try over the weekend. I've had a quick look to see if it uses Directx, but couldn't find an answer.

I gave up with Stella and moved to RA because of the bezel support, did that get added recently?

56uIzxg.png

Posted
There's nothing special or complicated, all you do is drop the Sweetfx files into the root of the emulator. You then open the Sweetfx_settings.ini file.

the top section is where you switch you effects on, changing the 0 to a 1, I usually just have advanced crt on.

You can then just run a game or scroll down the ini and tweak the settings for the effects you have selected.

The only caveat with version 1.51 is that it only supports Directx, and there are problems or it doesn't work with windows 8.1; although there are work around.

There is a 2.0 version which may work with Opengl but it's in the test stages only.

I'm not sure it works with stella, but I don't remember if I tested it, I may try over the weekend. I've had a quick look to see if it uses Directx, but couldn't find an answer.

I gave up with Stella and moved to RA because of the bezel support, did that get added recently?

Thanks for the info mate. I have a module for stella with bezel support. I believe it was in my folder.

Can you achieve RA type curved screen with sweet fx?

Archived

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

×
×
  • Create New...