Alice: Madness Returns – Definitive Compilation of Fixes (PC Port)

Fixing random freezes and crashes, unlocking the fps, improving performance, frame pacing and graphics quality, all the good stuff.

How to Fix Some Freezes and Crashes

Introduction

The PC port of Alice: Madness Returns is quite frankly terrible. You’ll encounter most issues people usually think of when hearing the expression “bad port”: crashes, serious stuttering issues, bad frame pacing, optimization problems. Thankfully the game is running on Unreal Engine 3 and the port is lazy enough that the devs didn’t stop people from tweaking basically all the settings you can find in the .ini files. By doing this you can fix most issues (except for some gameplay related bugs) so the goal of this guide is to help you through that.

On top of that there are a few other tweaks that are necessary for ensuring good baseline performance and to fix the game from crashing frequently so I’ll cover those too. The guide will improve the game’s graphics here and there too but keep in mind that most of those settings will be fairly conservative since the emphasis is on fixing stuff. Feel free to raise values like shadow resolution further than what is shown here, just keep in mind that doing things like that might make the game less stable.

Fixing Random Freezes and Crashes

The game has a tendency to just “stop” for a second or two and then resume with that regularly ending in a crash to the desktop. This is caused by EA’s DRM (thanks, EA!) so we have to disable that. There are two steps to doing this, you have to do both:

  1. Go to SteamsteamappscommonAlice Madness ReturnsBinariesWin32Core and rename EACoreServer.exe to something else (for example EACoreServer.exe.ab). This will make the duration of the hitching a lot shorter and less visible.
  2. To fully get rid of the freezes you have to download a crack that disables the DRM altogether. I won’t link to a download but googling “alice madness returns theta” will help you out. Be sure to back up AliceMadnessReturns.exe before applying the fix!

After doing this the random freezes should stop completely along with the crashes. Be sure to write an angry letter to EA about their DRM messing with old games after you’re done!

Updating PhysX

You’ll find a bunch of dll files related to Nvidia’s PhysX in the game’s directory. This means that by default the game will use the version of PhysX that’s provided in the dll files instead of the newer one that you have installed on your machine if you’re using an Nvidia video card.

In order to force the game to use a current version of PhysX all you have to do is go to:

  • SteamsteamappscommonAlice Madness ReturnsBinariesWin32

and rename / delete the PhysXCore.dll that you can find there. Don’t remove any other PhysX related file!

This won’t result in any wild performance gains for the game’s PhysX features but it might solve some weird PhysX related compatibility / stability issues.

Additional notes about Physx

The game is always using some form of PhysX which means that no, you can’t turn it off. Even when PhysX is set to Low in the video options that’s just a low setting that forces PhysX based calculations on the CPU side (the Medium and High settings will use your GPU).

This isn’t really an issue though because contrary to popular belief the PhsyX implementation is pretty good here, it can add a lot to the feel of the combat and it’s pretty much the least broken aspect of the PC port. Use it if your GPU can handle it!

AliceEngine.ini Tweaks

AliceEngine.ini is where the bulk of the game’s performance and graphics related settings can be found. It’s located at DocumentsMy GamesAlice Madness ReturnsAliceGameConfig so go there, open it in Notepad and edit the hell out of it. I’ll just list the individual settings and their default values and suggest changes in the explanation.

bUseBackgroundLevelStreaming=True

This setting is related to the streaming system of the game and seems to control whether streaming occurs in the background or not. Changing this to False fixes a lot of the game’s stuttering issues and Alice: MR is one of the rare Unreal Engine 3 games where doing so doesn’t cause any bugs.

PhysXGpuHeapSize=64
PhysXMeshCacheSize=8

PhysXGPUHeapSize defines the memory (VRAM) that’s dedicated to PhysX. Increasing this to something sensible like 128 can give you a few extra fps in PhysX heavy scenes if Medium or High PhysX settings are used. Don’t go overboard though because increasing it too much will drop your performance. For example a GTX 970 starts dropping in PhysX performance once the heap size is more than ~512 megabytes.

PhysXMeshCacheSize defines the cache size for current PhysX effects / objects. Increasing it apparently can give you higher quality meshes but also has a chance to decrease performance because of that so my suggestion: leave this setting alone, especially if PhysX is set to High.

bSmoothFrameRate=TRUE
MinSmoothedFrameRate=22
MaxSmoothedFrameRate=31

These settings control Unreal Engine 3’s framerate smoothing feature that is supposed to ensure that there are no wild fluctutations in performance in the provided smoothed range. Changing bsmoothFrameRate to FALSE will disable the smoothing system altogether: you can do that if that’s your preference but there is no real reason to.

MaxSmoothedFrameRate serves as a maximum fps limit for the game. UE3 is not great at giving you consistent frame pacing so I recommend increasing it at least a few frames higher than your desired fps (for example 62 if you want 60 fps). Use Nvidia Profile Inspector or RivaTuner Statistics Server to lock the game to the fps you want or just turn on vsync (locking with one of the mentioned apps AND using vsync at the same time will give you the most consistent frame pacing).

UseMinimalNVIDIADriverShaderOptimization=True

I hope you’re not using an Nvidia GPU from before 2010. If not then turn this to False, you don’t need it.

[XAudio2.XAudio2Device]
MaxChannels=32

Controls the number of audio channels utilized by the game. Increasing it means better audio but a heavier load on the CPU (negligable on modern hardware). Suggested value: 64.

Sadly increasing this or CommonAudioPoolsize won’t fix the occasional sound bugs of the game.

[TextureStreaming]
PoolSize=140

Sets the size of the texture pool available for the streaming system in megabytes. Contrary to what a lot of UE3 based guides suggest this is not the holy grail of stutter removal but increasing it does help in this case since 140 is just too low. The maximum value should be around 2000 but don’t go that high, keep it around 1024 as a general maximum.

HysteresisLimit=30
DropMipLevelsLimit=20
StopIncreasingLimit=20
StopStreamingLimit=12
MinEvictSize=10

These settings control how heavily texture streaming occurs based on LOD changes. I just replaced the default values with my suggestions here, using them should give you smoother and higher quality texture streaming.

MinTimeToGuaranteeMinMipCount=2
MaxTimeToGuaranteeMinMipCount=12

These two set a minimum and maximum time to eliminate the loading buffer of textures. Setting both to 0 will show texture density at its max right away instead of loading it which helps a lot in reducing and eliminating pop-in issues.

LoadMapTimeLimit=5.0

Sets a time limit for the pre-streaming texture blocking operation, making streaming more smooth. The default setting can result in stuttering when there’s a lot to load so increase it to 10 (the maximum value is 20 in case you want to be the safest).

NumUnusedShaderCompilingThreads=1
ThreadedShaderCompileThreshold=1

Controls the number of CPU threads dedicated to multithreaded shader compilation. NumUnusedShaderCompilingThreads should be half the number of your physical CPU cores (logical threads don’t count, sorry, hyper threading users) while ThreadedShaderCompileThreshold is the actual number of your physical CPU cores. So for a 4 core CPU it’s NumUnusedShaderCompilingThreads=2 and ThreadedShaderCompileThreshold=4.

Might help with stuttering and texture pop-in.

Let’s increase the shadow quality a bit too by inputting these values as your shadow settings:

MinShadowResolution=64
MinPreShadowResolution=16
MaxShadowResolution=1024
MaxWholeSceneDominantShadowResolution=4096
ShadowFadeResolution=128
PreShadowFadeResolution=16

GIsSpecialPCEdition=FALSE

Changing this to TRUE will unlock a few extra costumes and weapon skins, you deserve that after all this tweaking.

Outro

That’s about it, there’s nothing else that’s worth messing around with in the ini files. Be sure to put AliceEngine.ini to read only after you’re done as the game has a tendency to randomly change settings sometimes otherwise.

And a few general tips to help you on your journey in this badly ported Wonderland:

  • Always pick up Hatter’s hands first in Chapter 1, going for the legs can lead to a gamebreaking bug.
  • The game can crash when loading up a save initially after changing a few settings in the ini. Always try again instead of assuming that your settings are wrong.
  • Don’t keep too many profiles as the game can get confused by them which will result in minor save bugs.
  • Using a controller is highly recommended as weird as that might sound for the sequel of a PC exclusive title.
  • Raising the fps too high will introduce some annoying bugs (like inconsistent hitboxes for the pig snouts), don’t go higher than 60.
  • ReShade works great at improving the game’s graphics a bit further, especially AMD FidelityFX sharpening can do wonders with UE3’s overblown depth of field effects.

A bit of gameplay using the settings shown in the guide (1440p, all maxed out with High PhysX, locked to 40 fps because that’s great frame pacing at 120 Hz with 1/3 refresh rate vsync forced through Nvidia Profile Inspector):

Recommended for You

    None Found