Mass Effect Tweak Guide

[Page 7] Advanced Tweaking

Mass Effect is based on the Unreal Engine 3.0, which allows users to access a range of configuration variables and console commands to use for not only altering the way the game looks and performs, but also changing various gameplay parameters. In this section we look at how you can undertake such tweaking and examine all the major variables and commands necessary to do so.

Mass Effect holds all of its main settings in a range of .ini (initialization) files found under your \Documents and Settings\User\My Documents\BioWare\Mass Effect\Config directory in Windows XP, or \Users\[User]\Documents\BioWare\Mass Effect\Config in Windows Vista. These .ini files can be viewed and edited using a text editor like Windows Notepad, but I recommend backing them up before changing any settings. If something goes wrong and you want to return these files to their defaults, simply delete them and they'll be recreated using the original templates (found under \Program Files\Mass Effect\Engine\Config) the next time you start the game. For this reason, don't ever edit or delete the Base .ini files or any other .ini files found under the game's directories; make sure to only edit those under the user directory specified further above.

The main .ini files we will be examining here are BIOEngine.ini which holds your main graphics and audio-related settings; BIOGame.ini which holds various game world parameters; and BIOInput.ini which holds your key bindings. Each config file is covered in separate sections below.

Important - Make sure you understand the following before reading this section:

Some settings appear under multiple sections - change only the setting under the relevant section shown below. For example, DepthBias appears under both the [Engine.Engine] and [Engine.GameEngine] sections of BIOEngine.in; however changing it under [Engine.Engine] has absolutely no impact on the game, the setting under [Engine.GameEngine] is the one which should be changed. Therefore pay close attention to which section of the .ini file you are changing a setting under, otherwise it won't work.

Many areas of the .ini files do not have any impact on the PC version of Mass Effect - they are unused sections of the Unreal Engine, generic sections designed as templates for other areas, or are for debugging or for the Unreal Editor and hence are excluded (e.g. the [Texture Streaming] or [Editor.EditorEngine] sections have no impact).

Commands which are unclear, appear to have no significant or useful impact, or can be adjusted fully using the in-game settings are not covered in this section. Just because a setting has a tempting name, doesn't mean it has any impact at all on the game. I've pesonally tested all the relevant major settings and hence what is included below are the main settings which appear to have some useful impact.

BIOEngine.ini

[Engine.GameEngine]

bSmoothFrameRate=True

The game engine is capped to a maximum framerate, as determined by the value of the MaxSmoothedFrameRate variable (see below), which is 62 FPS by default. This is done by the developers to prevent FPS spikes and thus provide smoother performance. However, by setting this option to =False, you can completely remove this FPS cap. Keep in mind though that if you then find your framerate varying a great deal and causing jerkiness, this option is best set back to True. Uncapping your FPS doesn't increase overall performance as such, i.e. if you got 35 FPS in certain areas with the cap, you'll still do so without the cap.

MinSmoothedFrameRate=22

MaxSmoothedFrameRate=62

These settings control the framerate range between which the game engine attempts to smooth frames. As covered under the bSmoothFrameRate setting above, if that setting is set to True, the framerate limit specified by the value of MaxSmoothedFrameRate will be enforced. Although you can disable this FPS cap, ideally if you want smooth FPS but don't want the default 62FPS cap, one thing you can do is to set the MaxSmoothedFrameRate to a higher value, e.g. =70 or =85. It's usually best to set your FPS cap to match your Refresh Rate, since even with VSync disabled, any framerate above your monitor's refresh rate will simply be partial frames anyway. There's no reason why uncapping your FPS will necessarily provide you a better gameplay advantage, and in fact it may do the opposite due to greater FPS variability, so experiment to see if simply using a higher framerate cap is actually a better compromise of smoothness and performance.

bUseTextureStreaming=True

The Unreal Engine 3 on which Mass Effect is based uses a streaming approach to loading up textures. Streaming is actually designed more for helping loading times on consoles. However if this option is set to =False, textures won't be streamed in at all, but instead most of the environment will be black due to a lack of textures. Other texture streaming-related variables in the .ini files similarly seem to have no impact on disabling texture streaming properly. It appears that unfortunately texture streaming cannot be properly disabled in UE3.0 games.

bUsePostProcessEffects=True

This setting controls a range of 'post processing' effects, namely effects which are overlaid on the main game image - these effects include Film Grain, Motion Blur, Light Bloom and the Depth of Field effects which are visible throughout the game. When this setting =False, all such effects are removed, and the result is a performance improvement, and a very clear though somewhat blander image. Since you can already enable or disable Film Grain and Motion Blur individually from within the in-game settings, and adjust Depth of Field using the DepthOfField settings further below, disabling this setting is generally not recommended unless you are really struggling for FPS and/or want to remove all blur/grain/bloom effects from the game at once. Note that light halos are not affected by this setting.

bEnableBranchingPCFShadows=True

This setting controls a form of soft shadow rendering called Branching PCF. If set to False, it results in the removal of soft filtered/smudged edges for shadows, which in turn may increase performance but can also make shadows seem more blocky.

bUseSound=True

If set to False, this disables all sound in the game. The main use for this setting would be when troubleshooting an issue such as crashes or stuttering, to see if the audio system is the culprit. If disabling sound helps your game performance or stability, see the Sound section of the in-game settings and Troubleshooting Tips section of the guide for more details of how to fix the issue properly.

bUseMusicSound=True

Similar to bUseSound above, this setting disables music in the game if set to =False. However it doesn't disable all music - the menu music and some in-game music can be heard periodically even when this setting is disabled.

bUseBackgroundLevelStreaming=True

This setting is related to the streaming textures in the game, and appears to control whether streaming occurs in the background or not. In my testing setting this to =False seemed to dramatically increase level loading time and then resulted in a crash at the end of loading, so it is not recommended.

ShadowFilterRadius=2.000000

This setting controls the shadow filtering in the engine, basically determining how sharp or dispersed the outlines of shadows appear. The higher the value, the more 'blob-like' and faint shadows become, the lower the value, the less dispersed and sharper the outlines of shadows.

DepthBias=.012000

This setting controls depth calculations for shadows, and effectively determines the way Dynamic Shadows appear. Higher values gradually reduce the number of shadows shown; a value close to 1.0 totally removes dynamic shadows on objects (but leaves static shadows as normal). Lower values increase the number of shadows, however this can also result in glitches. A current workaround to removing some of the glitchy shadows in Mass Effect is to change this setting to =0.030, however note that this removes the glitchy shadows altogether, it doesn't fix them as such.

Update: As of the 1.02 Patch, the DepthBias value may now default to =0.030, which will remove dynamic shadowing. Set it to =0.012 to return shadowing.

MinShadowResolution=32

MaxShadowResolution=512

These two settings appear to determine the minimum and maximum possible values for shadow resolution in the game. The higher the minimum value, the darker and richer shadows should appear; conversely the lower the maximum value, many shadows may appear less distinct and grey. Raising or lowering shadow resolutions may result in an impact on performance, but more importantly, it can also result in visual glitches - for example any values above 512 for MinShadowResolution result in obvious glitches, while very low values for MaxShadowResolution similarly result in glitches. In practice the difference between the default and higher values for these settings is minimal to none, but if you wish to test it for yourself, set the minimum to 512 and the maximum to 2048 or even 4096 and see how it looks for you. You may get missing shadows if the minimum is set higher than 32 however, so it may be best just to raise the maximum value.

ModShadowFadeDistanceExponent=0.200000

This setting controls the distance at which shadows fade into/out of view. The higher the value, the shorter the distance from the object at which shadows fade in/out, and also the fainter all dynamic shadows appear. For example at 0.5 most shadows will be almost invisible, while at 0.0 all shadows will be shown, even at long distances, improving image quality at the cost of some performance.

ShadowVolumeLightRadiusThreshold=1000.000000

This setting controls the way in which lights affect the generation of shadows. Lights which have a radius below this threshold value will not cast a dynamic shadow. In practice changing this value generally appears to have no real impact, except perhaps to cause some lighting glitches.

ShadowVolumePrimitiveScreenSpacePercentageThreshold=0.250000

Any 'primitive' (basic graphical component) which takes up a screen percentage lower than this threshold will not cast a dynamic shadow. In practice altering the value appears to have no visual impact.

[WinDrv.WindowsClient]

Note: Most every setting in this section can be altered using the in-game settings, however several of them are still useful to examine for troubleshooting purposes:

AudioDeviceClass=Class'ISACTAudio.ISACTAudioDevice'

This setting corresponds with Mass Effect using the default proprietary Creative ISACT OpenAL-based Audio System (as shown above), or the more generic OpenAL audio system if =Class'ALAudio.ALAudioDevice'. Unfortunately trying to force the generic OpenAL audio by changing this line to =Class'ALAudio.ALAudioDevice' will result in a crash. ISACT should work fine on all systems, however there is a quirk with the way the engine detects your audio device, and there is a workaround to try to fix this - see the Sound section of the in-game settings along with the [ISACTAudio.ISACTAudioDevice] section further below for details.

StartupResolutionX=1280

StartupResolutionY=1024

These settings control the width (ResolutionX) and Height (ResolutionY) of your game display resolution. While this can normally be adjusted using the in-game Resolution setting, you can use these values in case you can't access the in-game settings, or to try to force a custom resolution.

MinDesiredFrameRate=35.000000

This setting appears designed to attempt to maintain a minimum framerate, possibly by reducing or removing effects on the fly. However in my testing I've found that it seems to have no impact at all both on image quality or FPS, so it is essentially non-functional.

[ALAudio.ALAudioDevice]

As noted in the AudioDeviceClass setting further above, this section can theoretically be used by the game for generic OpenAL audio-related settings if AudioDeviceClass=Class'ALAudio.ALAudioDevice'. However in practice this only results in a crash, so it is essentially a non-functional section of the .ini file and changing anything under it should have no impact whatsoever.

[ISACTAudio.ISACTAudioDevice]

This section relates to the major audio settings in the game, using the Creative ISACT OpenAL-based audio system. Regardless of your sound card and whether you're running XP or Vista, the game will use this audio system - see the Sound section of the in-game settings for more details.

MaxChannels=64

This option controls the maximum number of individual audio channels used for sound in Mass Effect. Almost all modern sound cards support at least 32 channels; Audigy series cards can support up to 64; X-Fi cards support up to 128. If you're having audio problems set this value to the maximum channels supported by your audio device, or to try to improve performance or reduce audio glitches, try a slightly lower value, or just 32 if all else fails. Note though that if set too low you will get missing or glitching sounds.

NoHALSupport0=

There are several lines here which start with 'NoHALSupport'; these indicate specific audio devices for which the game does not provide proper hardware support, even if you select 'Hardware Audio' in the in-game settings. Surprisingly, even Creative's own SoundBlaster Audigy cards are listed here as unsupported, resulting in problems for Audigy and even X-Fi owners who want full working hardware surround sound. The solution to any such problems involves the following steps:

1. You can begin by deleting or renaming your BIOEngine.ini file, and the next time you start Mass Effect the game will recreate a default one, this time it should correctly identify your sound hardware and allow proper Hardware Audio.

2. If the step above doesn't work, add a double // in front of the relevant NoHALSupport line(s) which lists your specific hardware. For example, SoundBlaster Audigy 2 owners should change the following lines to look thusly:

//NoHALSupport3=Sound Blaster Audigy

//NoHALSupport4=SB Audigy

The double // in front of each line tells the game to ignore these lines, although deleting them does the same thing too.

3. If that still doesn't work, adjust the DeviceName= line to be equal to nothing (i.e. just DeviceName=), and set UseEffectsProcessing=False (both described further below).

These steps should resolve problems for most users, however ultimately a patch may be necessary to fix this issue properly for some people. BioWare have said they are aware of this issue.

Update: Aside from Step 1 above, the other steps should not be necessary as of the 1.01 Patch, since the patch removes the NoHALSupport lines, meaning all major audio devices should be capable of hardware audio if detected properly. However it seems that the game's audio hardware detection mechanism is still faulty, and as such certain lines from this section of the .ini file may not be present. In short if you can't get hardware audio (check your MassEffect.log file under your (My) Documents\BioWare\Mass Effect\Logs directory to be sure) then follow Step 1 above, restart the game and don't make any changes to the Sound settings, as otherwise the game appears to totally rewrite this section of the .ini file if you do. If that doesn't work follow Step 3, and if that still doesn't work then you may have to settle for software audio.

DeviceName=Generic Software

This setting appears to determine whether your audio device has been identified correctly, and if so whether Mass Effect uses Generic Software or Generic Hardware based audio. For most standalone sound card owners with the 'Hardware Audio' option enabled in the in-game settings, this line should read DeviceName=Generic Hardware, or the actual name of your device. If you are having audio difficulties, blanking out the contents of this setting (i.e. so it looks like this: DeviceName=) may help resolve issues along with the other steps covered above.

UseEffectsProcessing=True

This setting appears to control whether hardware-based additional audio effects processing is enabled or not. It should be set to True to begin with if you're using Hardware Audio, however if you are experiencing audio problems you can set it to =False to maintain audio quality or for troubleshooting purposes.

Update: As of the 1.01 Patch, the above option may not be available in your .ini file depending on how the engine detects your audio device.