Guide:ENBSeries

From Step Mods | Change The Game
Delta c.png

ENBSeries Guide

A comprehensive ENB guide

by: The Step Team and community  | Forum Topic

Info-Logo.png

NOTE

This is the general overview of ENBSeries for all supported games. See the ENB INI Reference for descriptions of all settings by game.

What is ENBSeries?[edit]

ENBSeries (or ENB) is a post-processing suite created and maintained by Boris Voronstov. It's available for multiple games including most that Step Modifications supports. ENBSeries adds many enhancements and features to games, which aren't available from the vanilla game. This is accomplished by using a custom API in the form of a dynamic link library (DLL) to add to the game shader engine, thus, allowing additional processing that the game isn't capable of doing on its own. Features that overlap with game features are usually replaced entirely with more accurate code, thus, are always better quality versions.

In addition to advanced shader post-processing, ENBSeries also implements a memory manager for several 32-bit games, called ENBoost, that enhances the efficiency of video memory management while bypassing memory limits inherit within all 32-bit games. This results in increased performance and stabilization, in addition to the increase quality provided by the post-processing features.

The main draw to using ENBSeries is it allows vast customization that authors can take advance of to produce custom presets (commonly referred to as "ENBs" or "ENB Presets"). Presets offer a range of "look and feel", meaning each preset can create a different ambiance for the game. Ambiances such as a cooler or warmer color palette, "fantasy" or "realistic" lighting environments, more vibrant or bleak saturation...the list is very long. Given author can also include their own shaders in the mix, the combinations are nearly endless and there is likely already an ENB preset that is perfect for every users' personal tastes. However, all those added effects often come at a cost to performance. Luckily, most authors provide "performance" versions of their presets, which are lighter on system resources.

ENBoost[edit]

What is ENBoost?[edit]

ENBoost is a memory management feature added to ENBSeries to address the crashes and freezes relating to the well-known system memory (RAM) limit of 32-bit applications. It's one major part of a multi-part solution Step Modifications recommends for dealing with this limitation on 32-bit games. ENBoost is included by default in ENBSeries versions that support it, and can be implemented as a standalone memory manager without the graphical effects from ENBSeries. The effectiveness and performance of ENBoost is determined by a number of factors, such as size of system RAM / VRAM, quality of video card, version of Windows OS, CPU, and even motherboard memory channel speed. Fortunately, there are a number of ENBoost settings to help account for the variety of system configurations.

Info-Logo.png
NOTE:
Step Modifications considers ENBoost to be an essential tool recommended for ALL Skyrim LE users.


How Does ENBoost Work?[edit]

In order to understand how ENBoost works, it is important to first know how some 32-bit applications manage memory. Skyrim LE will be used for this explanation. The main Skyrim LE game executable, TESV.exe, is a 32-bit Large-Address-Aware (LAA) application. This means that although TESV.exe can only use a maximum of 2GB of system RAM on 32-bit Windows systems, it can access up to about 3.1GB of system RAM (4GB minus about 900MB of system resources) on 64-bit systems. To drive the video card in displaying the game's 3D rendered graphics, TESV.exe must store object geometry (the shapes of things in the game) and texture data in its memory space, as a cache. This cache is then copied to the video card's VRAM to display on the screen.

The memory limit is not a problem with an unmodded game because the cached data is dynamically loaded and unloaded to make room for new data as it's needed, and it almost never completely fills up all of TESV.exe's available RAM. However, when mods are added to Skyrim, the memory needed for cached data is significantly increased, and the more mods that are used, especially higher resolution texture mods, the higher the chance that TESV.exe will run out of memory. When this happens, either the program crashes or some objects do not get rendered. ENBoost overcomes this memory limitation by ...

  1. using available VRAM on your video card and then...
  2. using system RAM for dynamically allocated cached data via a helper executable.
    This is accomplished by running one or more instances of an executable named enbhost.exe, which adds up to another ~3GB of memory available per instance.

ENBoost Installation[edit]

Show installation instructions
 
  1. Download and install the DirectX 9 Runtimes.
    This step is to prevent the common issues of missing DirectX files required by ENBSeries. Be sure to install it and not just extract it!
  2. Download the latest ENBSeries version for the game it will be install on.
    1. On the game pages, their is a list of major changes and links to the available versions.
    2. Click a version link to download the version required by the chosen preset. The latest version is usually the one at the top of the list.
    3. On the version page will be listed a changelog and a download link. Click the Down1.gif button located at the bottom of the page to download the version file.
  3. Open the downloaded archive and go into the WrapperVersion folder.
  4. Extract only the d3d9*.dll files, enbhost.exe, and enblocal.ini into the game's folder where its executable is located.
  5. If the "WrapperVersion" does not function as advertised, try the "InjectorVersion".
    1. Remove any existing remnants of the Wrapper version
    2. Extract only the enbhost.exe, ENBInjector.exe, enbinjector.ini, enblocal.ini, and enbseries.dll files into the game's folder where its executable is located.
    Info-Logo.png
    NOTE:
    ENBInjector.exe must be ran before running the game for the injector version to work properly.

ENBoost Configuration[edit]

The following are important changes that are either required for ENBoost to work:

Show INI Configuration
[GLOBAL]
UsePatchSpeedhackWithoutGraphics=true
UseDefferedRendering=false

[MEMORY]
ExpandSystemMemoryX64=false
ReservedMemorySizeMb=128
;This value should be set to lowest possible value without experiencing stutter. Increase this value until stuttering is either gone or minimal. See advanced guide above for more information.

VideoMemorySizeMb=<integer in MB>
;Users should download and run Boris's VRamSizeTest tool [https://enbdev.com/download_vramsizetest.htm]. Run the '''VRamSizeDX9.exe''' for DX9 games and '''VRamSizeDX11.exe''' for others.
;Windows 7 users subtract 170 from the value provided and use that value.
;Windows 8.1 users use the value provided.
;Windows 10 users subtract 350 from the value provided and use that value.

AutodetectVideoMemorySize=false
Info-Logo.png

NOTE

If they exist in the enblocal.ini file for the ENBSeries version in use, be sure the parameters under the [THREADS] section match what is below!
These are for special case use only. Most users are 99% not likely one of those special cases! The section should remain as follows:

[THREADS]
DataSyncMode=0
PriorityMode=0


ENBSeries Presets[edit]

As described in the introduction, ENBSeries main attraction is the ability to customize its features and visuals using presets, commonly referred to as "ENB Presets" or "ENBs". These ENB Presets may encompass all of the features of ENBSeries or only a subset of them, depending on what the author intends as the final result.

ENBSeries Features[edit]

The features available will vary by game. ENBSeries is still in active development for the latest games it supports. Thus means it's constantly updated with bug fixes, enhancements to current features, as well as, new features. Below is a list of some of the features ENBSeries provides (version dependent):

  • Game bug fixes
  • Mist effect
  • Cloud shadows
  • Rain occlusion
  • Volumetric rays
  • Parallax for terrain
  • Per location weather
  • Wet surfaces during rain
  • Muddiness control of water
  • Supersampling for ambient occlusion
  • Enhanced blending of certain effects
  • Color filter parameters for direct light, fog and sky gradients
  • Detailed shadows added for light bulb types: hemisphere and spotlight
  • Optimization of ambient occlusion, plus a visualization tool for Preset authors and modders
  • many, many others...

ENB Preset Installation[edit]

This is a basic and generic set of instructions for setting up ENBSeries. These instructions may provide assistance where certain Preset documentation may be lacking; however, always defer to the Preset documentation first and use these generic instructions to fill in the blanks, if necessary.

Show Installation Instructions
 
  1. Select and download a Preset from Nexus Mods.
  2. Download the latest ENBSeries version for the game it will be install on.
    1. On the game pages, their is a list of major changes and links to the available versions.
    2. Click a version link to download the version required by the chosen preset. The latest version is usually the one at the top of the list.
    3. On the version page will be listed a changelog and a download link. Click the Down1.gif button located at the bottom of the page to download the version file.
  3. If installing for Skyrim and required for the chosen Preset, also download and install the ENB Helper (Skyrim LE) or ENB Helper SE (Skyrim SE). To install:
    1. For Skyrim LE, extract enbhelper.dll into the enbseries folder, creating it if necessary (i.e. ..\skyrim\enbseries).
    2. For Skyrim SE, install as a mod using a mod manager.
    The helper file is required by ENBSeries for multiple weather support.
  4. Extract the following files (all that are available) from the "WrapperVersion" folder inside the ENB archive into the required location for the game ENBSeries is being installed for: : d3d9.dll, decompiler_46e.dll, and enbhost.exe
    • This is typically the same location the game's executables are. For example, for Skyrim LE this would be ..\skyrim\, for Mass Effect this would be ..\Mass Effect\Binaries.
    • The remainder of the required files should be provided by the chosen Preset.
    Info-Logo.png
    NOTE:
    If the "WrapperVersion" does not function as advertised, try the "InjectorVersion", if available. Remove any remnants of the Wrapper version prior to installing. When using the injector version, ENBInjector.exe must be running in the background before starting the game, else ENBSeries will not work.
  5. Extract the contents of the ENB Preset's archive into the location it's designed for (usually the enbseries folder found within the game folder).
  6. All users, including ENBoost users, set the following in enblocal.ini:

    [GLOBAL]
    UsePatchSpeedhackWithoutGraphics=false
    UseDefferedRendering=true

  7. There may be a few values within skyrimprefs.ini to set for the graphical features of ENBSeries to work. Follow the instructions according to the game ENBSeries is being used for:
Skyrim

[Display]
iMultiSample=0
bFloatPointRenderTarget=1

Warning Regarding Enblocal.ini[edit]

Some ENB Presets will include an enblocal.ini file. This is not a recommended practice and users should not overwrite their own file with the one included in presets. The reason for this is because this enblocal file is meant to be used for each user's personal system. Best practice is for users to open their personal enblocal.ini file alongside the file included with the preset and copy over changes only from the following sections, if available:

  • [PROXY]
    • Copy all settings
  • [GLOBAL]
    • Copy all settings
  • [ENGINE]
    • ForceLodBias=
    • LodBias=
  • [FIX]
    • Copy all settings

Extra Options[edit]

The following components and tweaks are optional and NOT required for a successful ENB implementation.

SubPixel Morphological Anti-Aliasing (SMAA)[edit]

SubPixel Morphological Anti-Aliasing (SMAA) is a fantastic post-processing antialiasing method that provides similar results to MSAA, but usually at a fraction of the performance cost. As such, it provides exceptional smoothing of jagged lines on both straight and curved lines, as well as, transparent textures like foliage. Furthermore, SMAA can either replace the game's AA method entirely or stack on top of it, since it is a post-process. This makes SMAA useful and versatile for many situations, however, it only supports DX9 and DX10 games.

The reason SMAA is important, is because some versions of ENBSeries don't support hardware antialiasing, due to the implementation of some of its features. These users only have the following options available to them:

  • ENBSeries EdgeAA (when available)
  • SMAA (post-process)
  • SweetFX (post-process)

For users on low-end systems, ENBSeries EdgeAA is probably the best choice as it comes with almost no performance loss, and will be similar to 4xMSAA. For all others, SMAA is recommended for superior results. SMAA is processed after ENBSeries, thus, users can also supplement ENBSeries ENB with SMAA to gain better image quality. It's possible to use SMAA with any ENB Preset, as long as there is not an additional d3d9.dll already in use in the [PROXY] section of the enbseries.ini file. To install SMAA:

Show Installation Instructions
 
  1. Users can download SMAA from here
  2. Extract the downloaded archive
    • For DirectX 9 games, use the d3d9 folder.
    • For DirectX 10 games, use the d9d10 folder.
  3. Rename the DLL from xxxx.dll to xxxx_smaa.dll' (i.e., d3d9_smaa.dll )
  4. Copy the following files from the folder above to the location where the game's executable resides:
    • xxxx_smaa.dll
    • injector.ini
    • SMAA.h
    • SMAA.fx
  5. To enable SMAA with ENBSeries, set the following in the enblocal.ini file:
[PROXY]
EnableProxyLibrary=true
InitProxyFunctions=true
ProxyLibrary=d3d9_smaa.dll

SMAA Quality Settings[edit]

SMAA comes with several available presets to use, which changes the quality of the effect. To change the SMAA quality, open the injector.ini file and change the preset parameter:
preset = SMAA_PRESET_HIGH

The available quality presets are listed above the parameter in the file. The standard presets are:

  • Low is 60% quality
  • Medium is 80%
  • High is 95%
  • Ultra is 99% quality.

These presets are similar to 2xAA, 4xAA, etc., and each step higher comes with more of a performance loss. Additionally, a custom preset can be created in the SMAA.h file for the Uber preset. However, due to this is being an advanced process, it's not recommend for most users and will not be discussed here. For users wanting to learn more about SMAA, there is a very in-depth and technical PDF available.

Lighting & Weather Mods[edit]

Lighting and weather mods can have a dramatic impact on the overall look and feel of a game. These mods typically alter vanilla color palettes, brightness, contrast, saturation, and more. As such, it's necessary for ENB Presets to provide support for specific lighting and weather mods. What mods Preset will support. The mods supported vary from Preset to Preset and many authors choose a specific combination of mods to exclusively support. Below are some of the most popular choices for lighting and weather mods in combination with ENBSeries:

Enhanced Lighting for ENB (Skyrim LE & SE)[edit]

Enhanced Lighting for ENB (ELE) is a set of mods developed by the author JawZ. Later several of these mods were merged together to form the ELE mods we have today. ELE is aimed toward balancing the lighting of Skyrim. It adjusts every type of lighting in the game to both make Skyrim look better with ENBSeries and to make it easier for preset authors to customize and balance their Presets, without having to sacrifice one area of lighting over another.

Download for LE
Download for SE

Advanced Configuration[edit]

The ENB configuration files (enblocal.ini and enbseries.ini) contain all of the user-configurable parameters required for customizing ENBSeries.

enblocal.ini[edit]

Typically, enblocal.ini should be setup and left; not changing between Presets. Due to the detailed nature of the setup, enblocal.ini configuration settings do not appear in this guide (other than as referenced within the instructions) but are referenced in an ancillary guide:

SkyrimLE ENBLocal INI Reference
SkyrimSE ENBLocal INI Reference

enbseries.ini[edit]

Conversely, enbseries.ini can change dramatically among ENB Presets. The 'default' enbseries.ini comes packaged with ENBSeries, itself. The file contains all of the user-configurable parameters that dictate the behavior and result of the post-processing. There are many configurable parameters, and documenting (or correctly implementing) them all is challenging, to say the least. WIP, comprehensive references of all parameters by section are available in the ENBSeriesINI Guides below:

SkyrimLE ENBSeries INI Reference
SkyrimSE ENBSeries INI Reference

Multiple Weathers[edit]

Some versions of ENBSeries support a weather framework known as "Multiple Weathers". The Multiple Weathers framework grants the ability to customize multiple ENBSeries features on a per weather and/or per location basis.

Learn mores about Multiple Weathers

Shaders[edit]

Learn mores about shaders

Troubleshooting[edit]

CTD on game launch (DX9 games)[edit]

First be positive this is not a missing master issue!
Some users will experience a CTD after installing ENBSeries or an ENB Preset due to having missing components of DirectX9. The solution is to re-install DirectX 9. Users will have to update DirectX by downloading the DirectX End-User Runtimes. If that option doesn't work, try installing the DirectX SDK and running the installer within.

Disable ENB In-game[edit]

A common issue with Depth of Field is it can make it difficult to see the character during character creation. To fix this, while in-game, press Shift+F12 to disable the ENBSeries processing entirely. This can be quite useful when creating characters or modifying them later via the showracemenu console command. When finished, just press Shift+F12 again to re-enable processing.

Enable Windowed Mode[edit]

This may be a necessary performance enhancement for some users. If experiencing stuttering and the [MEMORY] section of enblocal.ini is verified to be correct, enabling or disabling these parameters within enblocal.ini could help resolve some stuttering:

[WINDOW]
ForceBorderless=true
ForceBorderlessFullscreen=true

Long Loading Times[edit]

Some users may experience long loading times while using ENBSeries. This is because ENBSeries also applies its features to the loading screen of some games (not all). An easy way to decrease the wait is by pressing Shift+F12 before or just after entering a loading screen to disable ENBSeries processing. When the game is loaded press Shift+F12, again, to re-enable processing.

Although this still works, it's for use with older versions of ENBSeries. The framerate has been clamped to 60FPS in newer version of ENBSeries to help eliminate this issue.

Performance Tips[edit]

While ENB Presets greatly enhance the visuals of a game, these additional features take a toll on performance; how much depends on individual system hardware, INIs, texture mod resolutions, display resolution, and a host of other variables. As such, it's impossible to estimate how much any ENB Preset will affect a user's personal system. That being said, there are some things users can do to improve performance.

First and foremost it's important for users to keep their systems in top gaming condition. Like anything else, "if you take care of it, then it will take care of you".
  • Defrag hard disk drives (HDDs) that games are installed on. Do not defrag solid state drives (SSDs)! However, HDDs will not only help improve performance while gaming, but can also decrease load times. Although Windows comes with a simple defragging program, Step recommends Defraggler. Users should defrag HDDs at least once a month or any time the fragmentation is 10% or over.
  • If a system CPU is being utilized 100% or system RAM is being filled, users should disable all unnecessary programs running in the background while gaming to free up more resources. This includes browsers, editors, chats apps, putting antimalware suites into low resource modes, putting Steam in offline mode, etc.
  • Game video settings play a tremendous role in determining quality and performance. Striking the right balance in these settings is essential in achieving a beautiful game with smooth, playable frame rates. Adjust and test video settings until the right balance, with smooth game-play, is achieved. Be realistic with what system hardware is capable of.
  • High resolution textures and higher polygon count meshes also affect performance. There are countless mods that add higher resolution assets to games. Careful consideration should be used when adding such assets with ENBSeries. Testing may be required to find the right balance of quality and performance that best fits the system hardware.
  • Be realistic with screen resolutions. Users are not going to be able to play Skyrim in 4K resolution with a single GTX1060. The maximum resolution of the video card is not the maximum resolution it is capable of playing a heavily modded game with an ENB Preset. Users may have to lower their screen resolution if they want the full quality that Presets provide.
  • Some of the more intensive ENBSeries features can also be disabled or lowered in quality within the enbseries.ini file to improve performance, at the cost of some quality. Changing to the performance version of some ENB Presets (when available) will essentially do the same thing; therefore, users are encouraged to explore that route before tweaking on their own.

If after following these performance tips users are still unable to achieve playable frame rates, the system hardware may not be capable of running ENBSeries or the chosen ENB Preset might be too performance intensive. At which point, users may want to consider either using different Presets that are not be as demanding on system hardware or upgrading their hardware.

Shadow Striping (SkyrimLE)[edit]

One of the great things about ENBSeries is that it usually fixes shadow striping. Some users, however, will still experience this issue if they've edited their Skyrim INIs. In the screenshots below it's hard to tell from their reduced size in the gallery, but notice the fuzziness along the edges of the shadows and the lines across some of the textures like the post and rock; this is shadow striping.

If this is preset, adjust the iBlurDeferredShadowMask parameter in the SkyrimPrefs.ini file (MO users will have to adjust it in the INI Editor in MO). It will be set to its default from when the INI files where created by the game launcher, unless users have manually adjusted it. Turning this parameter down to a lower usually results in sharper shadow detail; however, turning it down too low can result in striping. Users can adjust this setting from 0-7. If striping occurs while ENBSeries is enabled, increase this parameter's value by one, save the change, and test the new setting in-game. Continue to repeat this process until the shadow striping is gone. Usually between 3 and 5 are the best values.

If the above is not helping or making the shadows too blurry, adjusting the fShadowDistance parameter may also help. This is the distance at which shadows are drawn from the object. Decreasing this will make these shadows less elongated and help to eliminate striping at lower iBlurDeferredShadowMask values; however, adjusting this value too long can also result in unnatural looking shadows.

AMD/ATI Users (SkyrimLE)[edit]

Set the following in enbseries.ini:

[SHADOW]
UseBilateralShadowFilter=false
  • When updating drivers be sure to uninstall your current drivers before installing your new drivers. It is also not recommended to use Beta drivers. The current stable drivers can be found here.
  • If you must use anisotropic filtering (AF), then either ENB-enabled or CCC-enabled is fine, but this depends entirely on the capability of your CPU since Skyrim is more CPU-intensive than GPU. ENB-enabled is better, but up to 8x is recommended unless you have at least 2GB of VRAM (generally the 69xx, 78xx, and 79xx series).

Possible Crossfire Fix[edit]

Show Instructions
Please apply the following process to ensure Crossfire compatibility:
  1. Right-click on your desktop and open the Catalyst Control Center.
  2. Enter the 3D Applications Profiles.
  3. Choose "Use AMD Pre-defined profile" in the list at the bottom
  4. Select the "Assassin's Creed Brotherhood profile" (acp?b.exe)
  5. Go back to the top, select "New application" and press the "Save" button.
  6. Choose the "TESV.exe" application (in the root Skyrim folder) when the browser window pops up.
  7. Answer "Yes" when CCC asks if you want to override the default TESV profile.

For users using 13.x drivers

  1. Open up the AMD Vision Engine Control Center (or the Catalyst Control Center).
  2. Make sure your are in Advanced View mode by clicking Preferences.
  3. Select "Gaming" and choose "3D Applications Profiles".
  4. Select "Add" and browse to and select "TESV.exe".
  5. "TESV.exe" should now show up on that page. Select it and scroll down to "CrossfireX Mode"
  6. Select "Use AMD Pre-defined profile" and locate the "Assassin's Creed Brotherhood profile" (acp?b.exe)
  7. Overwrite the default profile when prompted.

ENB Support Forum[edit]

If the above troubleshooting did not help, please refer to our ENB Support Forum for assistance.