• Register

Excogitatoris-Logica

nAmEfIeLdMaYnOtCoNtAinCoMmAsOrSpAcEs joined

China delenda est

RSS My Blogs

How to improve performance on Dawn Of War - Soulstorm

Excogitatoris-Logica Blog 23 comments

Below there's a compilation of all the knowledge I've gathered on my quest to get half decent framerates on modded Dawn of War, all nice and tidy in one place. Enjoy


1) Improving Loading Times:

We're well aware of how very slowly Soulstorm loads. Everything from starting, loading a skirmish, clicking the Campaign option in the Main Menu and it taking 2 minutes on a high end system...
This tweak addresses precisely that.
The actual improvement varies a lot from system to system, so I can't efficiently guarantee you'll get say, 3x faster loading times. Yet very large loading speed improvements are possible (I do get 3x faster loading speed for example). Also worth noting the 2nd time you launch Soulstorm it loads much faster.

If you have Soulstorm on Steam, you can skip this particular tweak. On my tests, Build 379 (updated via Steam) loads pretty fast, I couldn't find a way to make it load even faster yet.

-Windows Vista/7/8 users: If you have Soulstorm installed on the default directory (Program Files in the C drive) and UAC enabled, you won't be able to modify the game executable. To overcome this either:
A) Disable UAC.
B) Make a copy of your Soulstorm executable and place it somewhere UAC won't get in the way (a folder in your desktop for example). Make the changes on the copy and then replace the original with the tweaked one.
C) Run the CFF Explorer as Administrator.

The tweak itself:
- Download the Explorer suite from NTCore.com. Install it.
- Right click your Soulstorm.exe and select "Open with CFF Explorer"
- You will see a big window full of good ol' number-y crypticness. Don't panic :). On the left panel, left click "Import Directory".
- The section at the right of the window should change to different number-y crypticness. Fortunately all we need is on the column that says "Module Name". I advice stretching the window until you can see all entries at the same time.
- Then, right-click on .dll names and select "Move Up" or "Move Down" to re-order the list so it looks like on this picture.
- Save changes, and that's it! Faster loading times!


2) CTD (Crash To Desktop) Prevention:

This is a quick one, and spares you a lot of interrupted epic battles.
The tweak itself:
- Download the Explorer suite from NTCore.com. Install it.
- Right click your Soulstorm.exe and select "Open with CFF Explorer".
- On the left panel, select "Nt Headers" (click the + symbol), you should see "File Header".
- Then left-click File Header and in it, there is a box that says "Click Here". Let's do that.
- You will get a little window full of checkboxes. There's one that says: App can handle >2Gb Address space. Mark that one.
- Click OK, save the changes and... Done! Your Soulstorm.exe will no longer run out of memory!
To apply this on Steam installs, simply save the executable with a different name (remember to keep ".exe" at the end of the file name to save it correctly) and run the modified executable.
Steam in-game overlay and Friends In-Game status retain their functions, too.
- To be extra sure, repeat this process with rsss.dll (located in the Soulstorm directory). This one can also run out of memory and cause crashes the same way as the game executable. This dll isn't present on the Steam version as of the latest patch.


3) (slight) Performance Boost! (a little bit) better framerates!:

Important note!: This requires at least 3 cpu cores to work. It will not make any improvement on systems with dual or single core cpu's.

Make a shortcut to your game executable. Right click it and select Properties.
On the Shortcut tab, edit its Target field and add the following before the existing path between quotes and separating it with a space:

%windir%\system32\cmd.exe /c start "DoW" /high /affinity 6

While on it, also add this after the path, also separated with a space:

-nomovies -modname %Your_Favorite_Mod_Folder_Name%

So if when you first saw it it looked like this:

"C:\Program Files\THQ\Dawn Of War - Soulstorm\Soulstorm.exe"

Now it would look like this:

%windir%\system32\cmd.exe /c start "DoW" /high /affinity 6 "C:\Program Files\THQ\Dawn Of War - Soulstorm\Soulstorm.exe" -nomovies -modname %Your_Favorite_Mod_Folder_Name%

Click OK. That shortcut now launches a specific mod bypassing the intro movies, setting the Soulstorm executable on high system resource priority and set to not work on CPU core 1. As most applications load on the first core by default this core is busier and has less free cycles to run cpu intensive apps (such as DoW). By avoiding running DoW on the busier Core 1 altogether you can get a slight performance boost.
For example, if you want to make a shortcut with all that code to the vanilla game which also has a "mod name", 'DXP2':

%windir%\system32\cmd.exe /c start "DoW" /high /affinity 6 "C:\Program Files\THQ\Dawn Of War - Soulstorm\Soulstorm.exe" -nomovies -modname dxp2

4) Misc Tweaks & Fixes:

- Right click your Soulstorm executable. On the Compatibility tab, select Windows XP SP3. Click Apply. This helps with performance and stability by a tiny bit.
- If on Windows Vista/7 (8 unconfirmed), on that same Compatibility tab, check the "Disable desktop composition" checkbox. This will disable the transparency When Soulstorm is running and prevent it from freezing when alt-tabbing. Works partially on the latest Steam version update. I'm looking into it.
- Install Visual Basic Runtime. This runtime prevents a rather nasty bug that appears every now and then and makes the game unplayable (very bad performance, models render incorrectly, etc). Mediafire.com I would link you to the Microsoft download page but they keep moving it around and I can no longer find it. Plus I don't want to re-link to it every time they move it again.
If running WIndows Vista/7/8, run in compatibility mode for Windows XP SP2.


That's all folks! I will add more if I encounter more tweaks or I happen to have forgotten some.