ReShade the game with a healthy dose of CRT-like blur, and more.

ReShade the game with a healthy dose of CRT-like blur, and more.

Introduction


ReShade the game with a healthy dose of CRT-like blur, and more. image 1
Skip

This guide aims to tell how this game, and hopefully many other retro-styled games, may look better in this era of ultra sharp hi-res LCDs with the help of some post-processing filters. With these effects, fullscreen gaming on your favorite screens should remain a feast to the eyes even when the game just wants to be retro. No more 'Agh my eyes hurt I don't want to play this anymore' moments, hopefully.

This mod does not involve modifying the game's own files, but only adding a few files to the game directory. You can easily revert the mod by removing them. For games that don't crash after the injection, it generally works.

To get the mod up and running, to Download and Installation section, and then head directly to My Configuration section using the navigation on the right handThis guide contains some other relevant information in other sections (pretty long they are). They can be safely ped. The spoiler-covered part in download section are not necessary for modding this particular game.

[SKIPPABLE] Backgrounds

ReShade, and post-processing injectors in generalYou might have heard about the post processing suite named SweetFX. It provides an array of filters to operate on the output of the game, as contrasted to the ENB series of effect bundles that may kick in earlier and alter the game's own shading process (Adding sub-surface scattering, fog effects, etc). SweetFX is general purpose, because it cares nothing about the scene itself. It just adds filters to the output image, much like a photo editing app but on the fly with a stream of images.

ReShade is a platform originally purposed to replace the platform for SweetFX's SMAA effect. The original one is makeshift as no other filters in the suite needed depth information (which is sadly required to detect edges in a 3D scene). With the depth information available many other effects can be added as well, and ReShade is later developed to become a general purpose post-processing platform for both 2D and 3D games. SweetFX (2.0) is ported to it.

As ReShade grew into 3.0, it now has a control overlay that effects can utilize to tweak parameters on the fly. Most effects from SweetFX have been ported to use this new feature. They become part of the 'standard effects pack' for ReShade 3.0, thus you will only find SweetFX 1.x (with its own injector), SweetFX 2.0+ReShade2.x, but no SweetFX x.x + ReShade 3.x on Google.

Dither, 8-bit color, and youForm shall forever be associated with medium, as they say. Many techniques evident in these retro pieces or art worked thanks to CRT displays they are displayed on. With the advent of high resolution LCD displays, they become more of an unnecessary icon than a nice result of careful application. our displays may be too sharp to properly reproduce the art nowadays.

Dither[en.wikipedia.org] is a technique to display intermediate levels that is not in the list of possible levels. By alternating (spatially or temporally) between two possible levels, it gives the impression that an intermediate level is displayed. The technique is still in use today, but is often unnoticeable due to the high similarity of two adjacent color in 24-bit color. Well, not in 8-bit color, as any two colors from the palette (either true 8-bit or 256 color from a pool of 15-bit color) are different enough side by side.

The whole point of dithering is trading noise floor for colorfulness. Gradients, even with the dither noise they had to come with, looked better than blocks of pure colors. Making the noise less noticeable is desired, and thus is the reason the dither need to be of higher frequency. With so many gradients in the game, we aim to filter out the noise instead of letting our sharp display exaggerate it. The natural blur of a CRT screen, is such a filter.

The superiority of CRT display doesn't end there. The not-so-fine pixel grain on a low-res CRT (and low native res LCD, for that matter) operates as a high-frequency noise as well, which masks[en.wikipedia.org] the dither noise to some extent. Scanline effect provided by the game itself works towards this aim, but isn't optimal due to the (duh) serious aliasing[en.wikipedia.org] introduced by the sharp edges of the scanlines.

One thing very funny, though, that retro 8-bit audio had no anti-aliasing filter like CRT did in effect, but over time the two swapped position - audio devices have better and better aa filters while displays become sharper and sharper, creating spatial aliasing like never before. Makes you think.

Inspiration... and why we don't just use that guide.

http://steamcommunity.com/sharedfiles/filedetails/?id=437407598

This is the guide that introduced me to the idea of playing retro games in a retro form. But there's some problem that only became evident when I tried to apply it to Va-11.

For starters, the CRT effect in SweetFX 2.0 and prior has an intensity parameter - how much of the original image is mixed with the processed image to form the output. This is rather weird as CRT simulation is not an effect unit that goes in parallel (and thus the dry-wet control), but one that should be in the signal chain. So in CRT.fx for reshade 3.0 they abandoned that control (we cannot merely add scanline now, but go for full CRT simulation), and that brings about another problem overlooked in that guide:

The effect is coded to work in 4:3 aspect ratio. The resolution parameter dictates the 'physical' resolution of the simulated CRT screen, but you always get 4:3 regardless of the aspect ratio of the game. The result isn't unlike you take a 16:9 image, crush it into 4:3 (and reduce the resolution), save, stretch it back to 16:9 and original resolution. The 'pixel' of the simulated CRT will appear non-square if you use it on other aspect ratios (the reason this filter only visibly adds horizontal scanline but not vertical ones in that guide), and it would therefore be impossible to achieve pixel-accurate display with this game, or any other game that is designed to be played widescreen. Type suffers most from the crush-stretch as letters become smeared horizontally. Not really a problem in Freedom Planet, now that they have big colorful letters overall, but the bitmap font in Va-11 looks terrible with the effect.

In this guide we will tweak the effect shader so it works in 16:9.

Download And Installation

In case you haven't, download ReShade here[reshade.me] .

It's a single executable that lets you choose a .exe to inject to.

Run the executable. You will be greeted by this huge button. Click it.

Locate the game executable in your computer. Click Open.

By default game files are put under C:\Program Files(x86)\Steam\steamapps\common\Va-11 Hall-A\ , but I guess everyone at least has a custom install location for Steam or has set up another Steam Library.

If you can't find it. Right click the game in Steam -> Local Files tab -> Browse Local Files. Navigate according to the new explorer window.

Note: I'm trying to be generic here. Some other games may load DLLs from a subdirectory like bin or bin64. If so, ignore the fact for now and still choose the game executable.

It prompts you to choose a rendering API. Choose Direct3D 8/9.

Usually it will have already detected a method and you only need to click the radio button again to confirm, but not for this game.

Now it askes whether to download standard effects. Click yes for now, as we don't have them yet. We would discard much of the download though.

If you are interested in applying other effects to other random games, you can go to the source[github.com] yourself, download the whole folder and keep it somewhere.

After the download, check only CRT.fx (filter for advanced CRT effects), Bloom.fx (for bloom effects), CA.fx (for chromatic aberration), and technicolor2.fx (for Technicolor process 4 effect).

Note: Everything ReShade finds, enabled or not, will be transpliled every time the game runs. Keep that in mind if you want to reshade something else with other effects.

OPTIONAL but RECOMMENDED: go to the game's folder. move the newly created /reshade-shaders/ folder to somewhere else, and rename it to something like /fxCRT/ or so. You will want to share this set of shader files across games that use this CRT effect, now that we will modify one of the files later.

For games that store DLLs separate from the main executable, move d3d9/dxgi/opengl.dll (and if present, the ini file of the same name) in the game directory to that folder.

Open d3d9.ini in the game directory, and change the effect search paths to wherever you put the shader files just now. Leave it alone if you left the effect files alone in previous steps.

Note: if you did not let ReShade download the files, in this step you would need to create said file with the same name as the injector DLL (i.e. d3d9.ini to accompany d3d9.dll, dxgi.ini for dxgi.dll, and opengl.ini for opengl.dll). It's not compulsory as the file will be generated when the game runs, but either way the search path needs to be input manually.

locate CRT.fx in \whatevernameyougive\Shaders\. Open it with Notepad. Find the first occurrence of the word 'aspect'. It should be this bit:

#define CeeJay_aspect float2(1.0, 0.75) Replace 0.75 with 0.5625 so it becomes

#define CeeJay_aspect float2(1.0, 0.5625) Save. Now the effect is coded to work in 16:9 instead.

Done. Let's move on to the effects themselves, or just grab my preset using the navigation on the right. The same modified shaders can be used across many games, and that's why I suggest you move them to a separate folder and change the effect search path.

[SKIPPABLE] Tweaking The Effects


ReShade the game with a healthy dose of CRT-like blur, and more. image 44
ReShade the game with a healthy dose of CRT-like blur, and more. image 45
ReShade the game with a healthy dose of CRT-like blur, and more. image 46
ReShade the game with a healthy dose of CRT-like blur, and more. image 47
ReShade the game with a healthy dose of CRT-like blur, and more. image 48
ReShade the game with a healthy dose of CRT-like blur, and more. image 49

ReShade the game with a healthy dose of CRT-like blur, and more. image 50
ReShade the game with a healthy dose of CRT-like blur, and more. image 51
ReShade the game with a healthy dose of CRT-like blur, and more. image 52

Now the fun time! When you run Va-11 or whatever game you choose to use ReShade with, you will see a banner that tells you to bring up the overlay with Shift+F2.

The filters are not in effect yet, 'cause reshade wants to show you around a bit.

Do that, take the little tutorial, and it will ask you to build a new configuration file.

You may use my config directly (I'll find a way to share it later), or just create one yourself and start tweaking. Your call. Should you choose to tweak yourself, the controls are real time in this new version of ReShade. You input a value, and it comes into effect even before you hit Enter.

The rest of this section will discuss various parameters of the four (CRT, CA, technicolor2 and Bloom) effects and what they do. Most parameters have tooltips when you hover your mouse cursor over it, so I'll skip those that are enough self-explanatory.

CRT EffectThe whole effect was called 'advanced' CRT effect for a reason. It aims to recreate many aspects of an old CRT display: curvy screen, round corners, rotation of the contents, loss of content to the edges (so called overscan), all in addition to the special feel of the display itself.

Resolution Factor: it determines the resolution our CRT works at. This multiplied by 256 and then aspect ratio ((1, 0.5625) in our case) is the final resolution. Va-11 is essentially 360p scaled up (everything is made of 3x3 squares in 1080p, 2x2 in 720p and they all align to the grid), and 360p is 640x360 and 2.5*256*(1, 0.5625) = (640,360), so we enter 2.5 here, or a multiple of it.

Note: Use your discretion when applying this to other games. Some games (Freedom Planet being one of them) are effectively 240p and show uniform 3x3 blocks under 720p. To make a 240p screen, the number should be 1.6666666..., and you may want to modify the configuration file yourself as the overlay only allows 3 digits after the dot.

Scanline Intensity: I haven't understood how it exactly works yet, but any number higher than 2.0 gives the screen a green tint and lower makes it magneta. If you set it really high it will cause some really interesting effect. Leave it at 2.

Curvature, Radius and Viewer Distance: related to simulating the curveness of a CRT display. Radius for the radius of the screen (it's part of a sphere), and viewer distance for how far you sit from it. The unit might be in times the long axis of the screen.

I personally prefer it off. Widescreen format only came after flat panel displays for a good reason.

Angle: dictates how the image on the CRT should be skewered, in radians. Shame there're two more transformation controls on a real CRT screen that's missing here.

Corner size: times the long axis of the screen. Usual range is thus way below 0.1 but you can totally have fun with it. 0 if you want none.

Scanline Bloom Effect, and Oversample: former one is a bit misleading as it really toggles between two modes of bloom. Latter one makes a finer simulation but WARNING, performance hit.

Chromatic Aberration Only two controls. Applies to the whole screen. No fancy CA that gets more intense to the edges of the screen, though I doubt this may get implemented later.

Shift: the tooltip explains better. (0.5, 0.5) to further blur the edges a tiny bit. (1.5, 0.5) gives a slight aberrated look to the vertical edges, and (2.5, 0.5) to make it quite visible. You mostly focus on type in this game so the closer to 0 the better. This distance is in pixels, and you might want to change it for every different resolution.

Strength: Dry-Wet control. 0 for unaltered signal (the processing still takes time), 1 for processed signal only (usually really intense). I don't want to notice it much so I chose 0.25, though you might as well disable this effect on the effects selection above. it won't change much.

Technicolor2Develops a look of movies in the 30s.[en.wikipedia.org] The color becomes more vibrant, and saturated as a result. This fits the mood of a futuristic city. You can consider it another Curve or Vibrance control (or use these fx instead),

Why the developers chose not-so-vibrant color for the characters is beyond me. Maybe they want it to look desperate because cyberpunk. Maybe less vibrant colors see wider usage than merely coloring a particular person's hair (the whole game looks like using a limited palette).

Color strength: one of the oddities of the new interface. It is essentially 3 float ranging from 0 to 1 in the config, but is shown as some sort of RGB color here. Just remember it is merely a set of three values for the three color channels respectively, and range 0-255.

Saturation and Strength: they work a bit similarly so here's the difference. Saturation affects the curve so it's totally possible to change between making everything more saturated, some color more saturated but others less, and everything less saturated, with this. Strength is Dry-Wet control and it can only make things closer to the original.

The effect itself boosts brightness a bit no matter the saturation control, and saturation 0.7 almost makes correct saturation for brighter colors while bringing darker ones up. Mess with it at your own will.

Bloom and Lens FlaresDoesn't do much good really, considering there is a very bright phone screen somewhere in the game. You can't make the lights out in the night glow without ruining your phone experiences. Anyway, it adds a blooming (read: so bright light bleeds around) shiny ol' CRT feel to the game, so you might want to apply it to some other games.

It contains loads of control, because there are several effects built in this fx. Bloom, lens flare, god ray, etc. They share similarities as they all decide whether or not kick in by checking a pixel's value, so they are bundled together.

Most of the controls have tooltips. I'll just explain how this works.

Remember that ReShade doesn't care (or know, really) which, if any, object in the picture is a light source that should cause bloom/flare/godray. It can only imply any pixel brighter than a given value (variou Threshold parameter, all 0-1) should trigger the effects.

Brighter pixel still cause more bloom, so the amount over the threshold times the Amount parameter (or various Intensity for other effects) determines the final bloom. That's why increasing the threshold alone will also reduce bloom on brightest pixels as well.

You might find a threshold to leave out the Augmented Eye app yet still bloom the lights. Dat Life Backup though.

Note: This effect is far more demanding than the rest of the three. It takes longer than them combined on my setup (see screenshot, running on i7-6700 and GTX1070 at 1080p), and it generates several additional 'buffer' texture. I guess it will be even more of a performance hit on integrated graphics as they have slower GRAM than discrete ones.

[SKIPPABLE] Other Settings

Some other settings that make ReShade better.

You can set toggle keys for each individual effects. They are to the right of each effect names in Home tab. Click the field and press the key. You can also enable or disable a effect by clicking on the square to the left. Either way, the change will be saved in the current preset so they won't revert next time you launch the game.

It's also possible to set a master toggle to disable all reshading. That one is in Settings tab. Note that is not a toggle to invert states of all effects. Disabled effects stay disabled.

Usage Mode in Settings tab has two values: Configuration and Performance. Configuration mode leaves parameters editable and transpiles the effect shaders in full, so the initial freeze at game launch is longer.

Performance mode takes all these variables as static values, and can optimize the effects more by skipping some of the code. Some effects may run faster and the freeze at game launch is shorter, but you can't modify the effects (can still toggle on/off).

ReShade can also take screenshots. This one captures the output of the shader, before even the reshade overlay itself is added. No more steam notifications, fps counter by steam, or other OSD obscuring the beautiful view, and you can capture the game without leaving the overlay. That also means you have to rely on external tools to capture reshade's overlay.

Set Input Processing to not totally blocking all times, to pass your F12 attempts to Steam when the overlay is on screen.

It may fail to bypass some games' anti-screenshot methods though (they still seem to detect your keystroke with this overlay on screen), but I guess it's enough to take a shot without triggering 'camera mode' for some other games. Go figure.

That Preprocessor Definition part is generated by ReShade itself. I believe in the future it will be the place for our aspect ratio override. These are static even in configuration mode, and changes to them only apply after reloading Reshade, either by game resolution change, or simply clicking Reload at the bottom of Home tab.

Things that ReShade adds to the game directory: basically a .dll, a .ini, a .log file all bearing the same name (d3d9 in our case), in addition to presets that also end in .ini (you created them so you should know which ones).

TL;DRz And My Preset

TL;DR for Backgrounds section: retro games on LCD are eye-♥♥♥♥♥♥♥, no denying. They should be played with the natural blur of CRT. The guide I found wasn't optimal for this particular game.

TL;DR for Tweaking section: GLHF tweaking them yourself.

TL;DR for Other settings section: go turn on Performance Mode in Settings tab on ReShade overlay. Reduces freeze time during game startup/resolution change, but disables on-the-fly adjustments to the effects.

If you just want to grab a preset, I'll paste my .ini file here. Copy and paste them to notepad, and save as a .ini file in the same directory as d3d9.dll (in our case, %STEAMLIBRARY%/steamapps/common/Va-11 Hall-A/). In the Reshade overlay, select this .ini file when you choose the preset.

You can try disabling and enabling these effects to see if the game looks better. Only CRT.fx is required for the CRT look. The rest are icing on the cake (that may not fit your taste).

KeyAdvancedCRT=0,0,0,0 KeyBloomAndLensFlares=0,0,0,0 KeyCA=0,0,0,0 Techniques=AdvancedCRT,Technicolor2,CA,BloomAndLensFlares KeyTechnicolor2=0,0,0,0 [CRT.fx] Resolution=2.500000 Curvature=0.000000 Brightness=0.900000 Gamma=2.400000 MonitorGamma=2.200000 ScanlineIntensity=2.000000 CornerSize=0.010000 ScanlineGaussian=0.000000 CurvatureRadius=1.500000 ViewerDistance=2.000000 Angle=0.000000,0.000000 Overscan=1.000000 Oversample=1.000000 [Bloom.fx] bGodrayEnable=0.000000 iBloomMixmode=3.000000 fBloomSaturation=0.800000 fBloomThreshold=0.500000 fBloomAmount=0.800000 fBloomTint=0.700000,0.800000,1.000000 bLensdirtEnable=0.000000 bLenzEnable=0.000000 bAnamFlareEnable=0.000000 bChapFlareEnable=0.000000 [CA.fx] Shift=1.500000,-0.500000 Strength=0.250000 [Technicolor2.fx] Saturation=0.700000 ColorStrength=0.196078,0.196078,0.196078 Brightness=1.000000 Strength=1.000000

Closing Words

Thanks for reading this guide! Hope it makes this gem less annoying to the eye, and perhaps makes other pixel-art games enjoyable as well.

This is my first guide. If you find any mistakes, or just want to share your fx configurations, please let me know by leaving a comment below.

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=830816755					

More VA-11 Hall-A: Cyberpunk Bartender Action guilds