Overclock.net › Forums › Video Games › PC Gaming › [Guide] Batman: Arkham Asylum Graphics Tweaking
New Posts  All Forums:Forum Nav:

[Guide] Batman: Arkham Asylum Graphics Tweaking

post #1 of 14
Thread Starter 
batbanner.jpg



Hey people,

So, I've finally gotten around to buying Arkham Asylum (Arkham City next), and as per usual with every game I play, I tweak the hell out of it, to attempt to get it running the very best I can from a visuals:performance ratio.

I don't know how many will find this useful as the game's been out since 09', but I said I would share my tweaking with you here to try enhance this already stunning game. These tweaks will also work for Arkham City, I'd imagine, as they're on the same engine, but you'll have to wait for me to get it, to see.

First thing your going to want to do, is get Notepad++

Now the main part of this tweaking will be carried out in your:
\Documents\Square Enix\Batman Arkham Asylum GOTY\BmGame\Config (Minus 'GOTY' if you don't have the game of the year edition ofc)

In that folder you should see a list of ini files, the one we're interested in is UserEngine.ini.

So, right-click that and open it in Notepad++ and you can take what you want to add from my own sample ini below.

If you're wondering where I've gotten these values from, a combination of the engine ini, and hex editing the main binary file (exe).
Code:
[Configuration]
BasedOn=..\BmGame\Config\DefaultEngine.ini

[SystemSettings]
Fullscreen=True
UseVsync=True
AllowD3D10=True
ResX=2560
ResY=1440
Trilinear=True
MaxAnisotropy=16
EffectsLevel=3
MaxMultisamples=4
DynamicLights=True
CompositeDynamicLights=False
DirectionalLightmaps=True
FloatingPointRenderTargets=True
AllowSubsurfaceScattering=True
DepthOfField=True
EnableHighPolyChars=True
GeometryPolygons=10000000
SkeletalMeshLODBias=-1
ParticleLODBias=-1
LensFlares=True
Bloom=True
bAllowLightShafts=True
DynamicShadows=True
SmokeShadows=True
LightEnvironmentShadows=True
MotionBlur=False
Distortion=True
FogVolumes=True
DisableSphericalHarmonicLights=False
bAllowWholeSceneDominantShadows=True
EnableLightEnvSHLights=True
AmbientOcclusion=True
BufferAmbientOcclusion=True
DetailMode=2
MinShadowResolution=256
MaxShadowResolution=1024
MaxTextureSize=4096
DisableHWShadowMaps=False
BIOPixelShaderVersion=ps_4_0
BIOVertexShaderVersion=vs_4_0
VShaderVersion=4.0
PShaderVersion=4.0
HighQualityShaders=1
bUseTextureStreaming=True
bUsePostProcessEffects=True
bEnableBranchingPCFShadows=True
AllowShadowVolumes=True
bEnableVSMShadows=True
bAllowBetterModulatedShadows=True
bEnableForegroundShadowsOnWorld=True
bEnableForegroundSelfShadowing=True
bAllowHardwareShadowFiltering=True
ShadowFilterQualityBias=5
TessellationAdaptivePixelsPerTriangle=512
ShadowTexelsPerPixel=4.000000
Stereo=False
VelocityShader=True
PixelShader=True
GFxPixelShader=True
GFxVertexShader=True
VertexShader=True
TextureDensityShader=True
IniVersion=5.8
HighDynamicRange=True
UserMaxTextureSize=4096
bCinematicMode=True
TerrainMaterialMaxTextureCount=64
TerrainTessellationCheckCount=24
MaxCharacterCinematicLightingPasses=9
TEXTUREGROUP_Character=(MinLODSize=512,MaxLODSize=4096,LODBias=0)
TEXTUREGROUP_CharacterNormalMap=(MinLODSize=512,MaxLODSize=4096,LODBias=0)
TEXTUREGROUP_RenderTarget=(MinLODSize=1,MaxLODSize=2048,LODBias=0)
TEXTUREGROUP_Effects_Hi=(MinLODSize=128,MaxLODSize=2048,LODBias=0)

[Engine.Engine]
bOnScreenKismetWarnings=FALSE
bSubtitlesEnabled=FALSE
bAllowMatureLanguage=TRUE
PhysXLevel=2
bPhysXuseGRB=False
bPhysXPatched=True
Language=int
MipLevelFadingInRate=0.0
MipLevelFadingOutRate=0.0
TerrainMaterialMaxTextureCount=64
TerrainTessellationCheckCount=24
bUseInvertedLeftStick=False
bUsePixelShaderComplexity=True
bUseAdditiveComplexity=True
MaxPixelShaderAdditiveComplexityCount=600.000000
MaxPixelShaderOpaqueComplexityCount=200.000000
MaxVertexShaderComplexityCount=200.000000
MaxFluidNumVerts=2097152
MaxParticleVertexMemory=263944
PhysXGpuHeapSize=256
PhysXMeshCacheSize=16
MinShadowResolution=256

[Engine.GameEngine]
bUsePostProcessEffects=True
bAllowMatureLanguage=True
MeshLODRange=1000.000000

[Engine.StaticMeshCollectionActor]
MaxStaticMeshComponents=1000

[Engine.StaticLightCollectionActor]
MaxLightComponents=200

[Engine.ISVHacks]
UseMinimalNVIDIADriverShaderOptimization=False

[TextureStreaming]
PoolSize=2048

[AnimationCompression]
DefaultCompressionAlgorithm=AnimationCompressionAlgorithm_RemoveTrivialKeys
TranslationCompressionFormat=0
RotationCompressionFormat=0

[DevOptions.Shaders]
bAllowMultiThreadedShaderCompile=True
VShaderVersion=4.0
PShaderVersion=4.0
ShaderCache=True

[MemoryPools]
FLightPrimitiveInteractionInitialBlockSize=1024
FModShadowPrimitiveInteractionInitialBlockSize=1024


Note: UseMinimalNVIDIADriverShaderOptimization=False <- is for Nvidia only. If your using an AMD card your gonna want to remove this line, and use: DisableATITextureFilterOptimizationChecks=False

When you're done, save the file.

Now, once you've got the ini tweaked to your liking.

If you want to use a higher quality SSAO than the game's default settings will permit, follow the below instructions.

Go to: Program Files (x86)\Square Enix\Batman Arkham Asylum GOTY\Engine\Shaders or where ever you've got your game located.

In the shaders folder, there are many external post processing hlsl shaders. The one you're interest in is: AmbientOcclusionShader.

Before editing, backup your shaders folder, just to have it as it's default state

Now, take AmbientOcclusionShader.usf and copy it to your desktop, then right-click it and go to properties, and untick 'Read Only' and click ok.

Open it with Notepad++.

In the first few lines of the shader, there should be conditional definitions. What they should look like is below.
Code:
#ifndef NUM_OCCLUSION_SAMPLES
#define NUM_OCCLUSION_SAMPLES 8 <- Change to 16
#endif

#ifndef NUM_FILTER_SAMPLES
#define NUM_FILTER_SAMPLES 8  <- Change to 16
#endif

So, once they've been changed they'll of course look like below:
Code:
#ifndef NUM_OCCLUSION_SAMPLES
#define NUM_OCCLUSION_SAMPLES 16
#endif

#ifndef NUM_FILTER_SAMPLES
#define NUM_FILTER_SAMPLES 16
#endif

Now, save it and go back out and right click again -> properties, and tick 'Read Only' again. Now copy it back into the shaders folder and override the old version of it.

Done thumb.gif

This effectively doubles the sample rate for the AO, I didn't see any noticeable fps hit.

Well, let me know if you found this useful. The overall fps hit should be minimal, but take my system into account also (sig) I didn't notice a drop at least.


For Nvidia Users

Firstly download Batman Arkham Asylum - Rigid Bodies Patch from GeForce.com to enhance the in-game physx, and address problems etc.

Download Nvidia Inspector and put it where you would like to store it. I keep mine inside the Nvidia folder on my main drive.

Run it, and you'll see a dropdown menu, start to type Batman, and Arkham Asylum should appear, pick the one that says 'Batman: Arkham Asylum'

The main point of this is to set the texture LODBias to minus, for much clearer, crisp textures, and visuals. Image below with my settings.



Edited by Asmodean - 8/18/12 at 9:28am
post #2 of 14
Show some screenshots.

I want to see how blurry you just made it.
post #3 of 14
Thread Starter 
Quote:
Originally Posted by Xinoxide View Post

Show some screenshots.
I want to see how blurry you just made it.

You obviously haven't a clue, if you're thinking I've made it "blurry"..

You also, obviously didn't even read the guide..

I'll post some screens later.
post #4 of 14
Thread Starter 
Here are a few random screenshots.

Noting that having to convert to JPEG, and interpolation from resizing etc, the quality has been diminished.








Edited by Asmodean - 8/17/12 at 2:51pm
post #5 of 14
Not really sure if there's a difference, but here's some shots.

First time playing the game... I bought it during the Steam summer sale and didn't even play it for more than 5 min.

Thanks though, the game looks great.



Gaming Rig
(17 items)
 
  
CPUMotherboardGraphicsGraphics
i7 3770k @ 4.8GHz w/ 1.43v ASRock z77 Extreme 6 HD7970 @ 1270/1800 HD7970 @ 1270/1800 
RAMHard DriveHard DriveHard Drive
16GB G. Skill Ripjaws Z 9-11-12-28 OCZ Vertex 3 120GB Caviar Blue 1.0TB WD10EZEX DeskStar 1.5TB HDD 
Hard DriveCoolingCoolingOS
Caviar Blue 1.0TB WD10EZEX Raystorm Chrome XSPC CPU Block Swiftech Komodo 7970 Water Blocks Windows 8 64bit Ultimate 
MonitorPowerCaseAudio
Panasonic 54in VT 25 Corsair Fatl1ty 1000 watt PSU Corsair 800D Onkyo-NR-1008 
Audio
Energy CF70 towers, Energy CLR center, and Ener... 
  hide details  
Reply
Gaming Rig
(17 items)
 
  
CPUMotherboardGraphicsGraphics
i7 3770k @ 4.8GHz w/ 1.43v ASRock z77 Extreme 6 HD7970 @ 1270/1800 HD7970 @ 1270/1800 
RAMHard DriveHard DriveHard Drive
16GB G. Skill Ripjaws Z 9-11-12-28 OCZ Vertex 3 120GB Caviar Blue 1.0TB WD10EZEX DeskStar 1.5TB HDD 
Hard DriveCoolingCoolingOS
Caviar Blue 1.0TB WD10EZEX Raystorm Chrome XSPC CPU Block Swiftech Komodo 7970 Water Blocks Windows 8 64bit Ultimate 
MonitorPowerCaseAudio
Panasonic 54in VT 25 Corsair Fatl1ty 1000 watt PSU Corsair 800D Onkyo-NR-1008 
Audio
Energy CF70 towers, Energy CLR center, and Ener... 
  hide details  
Reply
post #6 of 14
Thread Starter 
Glad you like it. These are to enhance the overall IQ, and details of the game. Along with some memory optimisations.

Such as:
  • Anisotropic Filtering (which defaults to 4x..at the highest setting)
  • More complex lighting and shadowing (much more particles, better density/shading)
  • Higher poly characters
  • Higher Textured characters (changed the in-game char texture sizes to the cinematic char texture size, which doubles the default max size from 2048->4096)
  • Better in-game PhysX
  • Overall crisper texture LOD
  • Better quality shaders
  • Game optimisations
  • etc..
post #7 of 14
Just because you can change the setting doesn't mean the game engine will take them, i learned that with Border Lands.
Core 2 Haf
(16 items)
 
  
CPUMotherboardGraphicsRAM
C2Q Q9550 ASUS P5E3 Deluxe Wifi-AP GTX 480 Kingston HyperX DDR3 KHX1600C9D3K2/8G 
RAMHard DriveCoolingOS
PNY 1333 55gb, 320Gb, 500GB, 1TB Hyper 212 EVO Win 7 Ultimate 64bit 
OSOSPowerCase
Lubuntu 13.04 x64 OS X 10.8.5 TX750 Haf 912 
  hide details  
Reply
Core 2 Haf
(16 items)
 
  
CPUMotherboardGraphicsRAM
C2Q Q9550 ASUS P5E3 Deluxe Wifi-AP GTX 480 Kingston HyperX DDR3 KHX1600C9D3K2/8G 
RAMHard DriveCoolingOS
PNY 1333 55gb, 320Gb, 500GB, 1TB Hyper 212 EVO Win 7 Ultimate 64bit 
OSOSPowerCase
Lubuntu 13.04 x64 OS X 10.8.5 TX750 Haf 912 
  hide details  
Reply
post #8 of 14
Thread Starter 
This game is very picky with tweaking, if it doesn't take then, the game crashes. I've done my fare share of tweaking/modding over the years, to know placebo, and actual tweaks. tongue.gif

For instance, AllowD3D10, doesn't actually switch to DX10, it was an early command, and they scrapped it, but I leave it enabled, as it does no harm.
Edited by Asmodean - 8/18/12 at 9:15am
post #9 of 14
This looks really good, I was worried the method for AA would make the game blorry, but it appears to have maintained some level of crispness on the edges, and in other palces, simply isnt workink.

Shadows and HDAO look much better though!
post #10 of 14
Batman looks nice and crisp but the other textures look really poor. But I suppose thats what you get for making your game for consoles.
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: PC Gaming
Overclock.net › Forums › Video Games › PC Gaming › [Guide] Batman: Arkham Asylum Graphics Tweaking