Warhammer 40,000: Dawn of War - Soulstorm

Warhammer 40,000: Dawn of War - Soulstorm

Vanja Jun 19, 2014 @ 1:38pm
Any chance of multithreading?
Is there any chance the game is going to be multithreaded so that better rigs can run the game faster? It would dramatically increase the speed of games which use mods and even for some people just playing vanilla SS
< >
Showing 1-2 of 2 comments
I doubt it, as the single thread apartment libraries for older versions of DirectX are not really mappable to multi thread apartment library equivalents.
DFRNukem Jun 18, 2015 @ 8:23pm 
How to backport Retribution's multithreading: Note: I know backporting is "evil" and blah blah blah, but since this should be ok as it requires you an installed copy of Retribution and you'll be doing it on your own, for your personal use. Note 2: I could really use feedback on this (and if by any chance, you know how to improve it, don't hesitate on telling me, I won't be offended), as I'm not even sure if it even works at all. How to get Soulstorm multithreaded :3 I would like to note again that this improves cpu usage if anything. The in-game performance is almost the same, with a very slight difference noticeable with frame rate counter or master-crafted eye implants made on Mars. -First, you need Retribution. -The file path should be similar to this: [Drive letter here]:\Program Files\Steam\steamapps\common\dawn of war ii - retribution -From there copy the following .dll files somewhere (your desktop, some random folder, wherever you want): XThread.dll Debug.dll Platform.dll -This may sound strange, but is vital for this to work: Rename Debug.dll and Platform.dll to something else (since there's already Debug and Platform .dll files on the Soulstorm directory, but Xthread needs stuff from the ones in Retribution). Note that for reasons I'm not aware of, Debug.dll can't exceed 9 characters long (including the 4 from ".dll"). Windows will let you rename it longer, but it's reference in XThread.dll won't. I used DbugR.dll and PlatformR.dll as the new names. -Either moving or copy-pasting, get those three files into your SS directory. -Yet again, MAKE A BACKUP COPY OF SOULSTORM.EXE. -Open DbugR.dll (or the way you named it. It's your chance to have two funny .dll names!) and look for the Import Directory. There right-click the BugSplat.dll row and select "Delete Import Descriptor". -Open PlatformR.dll and then again, in the Import Directory, eliminate a dll from the list, this time SHELL32.dll. Also, be sure of renaming the entry referring to Debug.dll to the name you used. -Open XThread.dll, go to our by now well known Import Directory, and modify the the entries referring to Debug.dll and Platform.dll to match DbugR.dll and PlatformR.dll (or how you may named them). -Then open Soulstorm.exe (with the CFF Explorer logically) and go to "Import Adder". Hit the "Add" button and a prompt asking for a file will appear. Browse to your SS directory and there, open XThread.dll. -This may sound a bit tedious but, you want that multithreading or not?: One by one, in this order, select the following functions and import them (so they appear on the list to the right), in THIS order by NAME. It is best to use the numbers to track them easily. Again, it is mandatory for this to work properly to Import By Name. 00000006 - ?AcquireWrite@RWLock@XThread@@QAEXXZ 00000013 - ?ReleaseWrite@RWLock@XThread@@QAEXXZ 00000002 - ??0RWLock@XThread@@QAE@XZ 00000012 - ?ReleaseRead@RWLock@XThread@@QAEXXZ 00000005 - ?AcquireRead@RWLock@XThread@@QAEXXZ 0000000C - ?GetProcessorCount@Scheduler@XThread@@QBEHXZ 0000000E - ?IsCurrentThreadMainThread@Scheduler@XThread@@QBE_NXZ 00000007 - ?Fork@XThread@@YGXP6GXHPAX@Z0HHI@Z 00000003 - ??1RWLock@XThread@@QAE@XZ 00000017 - ?SetEnableFork@XThread@@YGX_N@Z 0000000D - ?Initialize@Scheduler@XThread@@SGPAV12@XZ 00000018 - ?Shutdown@Scheduler@XThread@@SGXXZ 00000009 - ?GetInstance@Scheduler@XThread@@SGPAV12@XZ 00000015 - ?ScheduleJob@Scheduler@XThread@@QAEXPAVJob@2@I@Z 00000001 - ??0Job@XThread@@QAE@P6GXPAX@Z0H@Z 0000000F - ?IsDone@Job@XThread@@QBE_NXZ -After you are done Importing, click Rebuild Import Table. A sign will appear saying "Import Table correctly rebuilt". -We're almost done! But you still need to yet again go to the Import Directory. There XThread.dll should be at last. Move it up until it's right below Filesystem.dll. -Save the file. -Enjoy multithreaded Soulstorm.

Source @Moddb (No need to doubt tabris)
< >
Showing 1-2 of 2 comments
Per page: 1530 50

Date Posted: Jun 19, 2014 @ 1:38pm
Posts: 2