Hi there! This quick tutorial will show you how to modify the way Soulstorm loads so it loads much faster. It might seem like advanced, complex coding, but it's just clicking stuff.
A quite convenient procedure actually. Spend a few minutes clicking on a list, then save countless more minutes of waiting for the game to load.
The improvement in loading speed is dependent on several factors, including each user's computer hardware. Due to this, it is impossible for me to accurately tell how faster will Soulstorm load for you. It most likely will be at least twice as fast though.
Also, this does not affect framerate, the game engine will still be all laggy when many units are on screen. I don't know how to fix that.
About Soulstorm on Steam compatibility:
If something (like the tweaks in this tutorial) requires changes on the game executable (Soulstorm.exe), it cannot be applied on the Steam version. This is due to the Steam version has a different executable tied to the Steam client to prevent precisely, changes from the user. Usually this makes for a good anti-cheating/piracy/etc protection, but in this case is an unfortunate nuisance.
If you have very slow loading times and have the money to spare on an extra Soulstorm, you may want to get it on another online store too.
I've went through the effort of tracking down the likely last two online stores besides Steam that still sell Dawn of War: Soulstorm via digital download. Gametap and GamersGate.
-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 game's original with the tweaked one.
C) Run the CFF Explorer as Administrator.
-This tutorial is for the patched (1.20) version of Soulstorm (same applies for Dark Crusade tweaks) only. You can try with 1.00 but the lists won't match and stuff.
How to make Soulstorm load faster. Dark Crusade too.
To modify the Soulstorm executable you will need the CFF Explorer, part of the Explorer Suite found here NTCore.com (click the small bold'd text that says "Download the Explorer Suite". Yep, no huge "Download heer" button you hit with your fist xD)
Install it, and AFTER DOING A BACKUP COPY OF YOUR SOULSTORM.EXE... you may be asking where is the illustrated part on this tutorial, well here it is:
Right click your Soulstorm.exe and select "Open with CFF Explorer"
You will see a big window full of good ol' number crypticness. Don't panic . On it, select "Import Directory" by clicking its row.
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 a dll name and select "Move Up" or "Move Down" to re-order the list so it looks like this one.
Save changes, and... that's it! You got faster loading times!
This can be done on Dark Crusade as well!
Repeat the above procedure but using this dll order:
Yay, finally updated this!
All other tweaks posted here should apply to Dark Crusade as well
And as a bonus...
How to prevent crashes on big battles!- Well, not each and every cause for crashes, but you can prevent all crashes due to Soulstorm "running out of memory", which can happen even if you have 16GB RAM.
- Open the Soulstorm executable with the CFF explorer, and under "Nt Headers" (click the + symbol), you should see "File Header".
- Then left-click File Header and in it, there is a box which 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. Check that.
- Click OK, save the changes and... Done! Your Soulstorm.exe will no longer run out of memory!
- 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 ALSO doesn't work on the Steam version.
- If you're running a 32 bit Windows, there's yet another memory-limited file. But as this one is a vital Windows file, it can't really be modified (actually tried it myself, resulted on a guaranteed bluescreen on boot).
On an additional note, while using Windows 7 I've noticed that Aero effects and Dawn of War don't mix really well. Disabling Aero effects greatly reduced the frequency Soulstorm went "(Not Responding)" just because. Or due to intense alt+tabbing...
After some further research on the matter, I've found that it is not possible to simply slap multithreading into Soulstorm without rewriting part of Soulstorm's own source code. So... yeah.
I was doing my own custom version of a multithreading dll that actually did something, then I find out about this... :cFeel free to undo the "retribution multithreading backport" changes.
I think I should credit the page where I found out about the Explorer suite and kind of inspired me to fiddle with the .exe/.dll files. It's also the "original" tutorial on how to get Soulstorm to use more than 2 Gb of memory. PoK on ModDB.
Credit to Corncobman for pointing out a step on the multithreading tutorial I forgot.
Many credity bits and pieces to Gorb for accurate feedback with the Steam version and stuff.