smithpd on 6/1/2008 at 21:44
Until recently, I did not think it was necessary to have T3 run on only a single processor / core. T3 worked fine for me using dual processors. Then, in search of a fix for looping startup movies (for someone else), I stumbled on this at the TTLG FAQ:
(
http://www.ttlg.com/forums/showthread.php?t=75031#loopingintro)
When trying to implement the affinity fix manually, to check it out, I discovered that exiting to the Task Manager and returning to T3 caused T3 to freeze. This could be fixed only by setting affinity of t3.exe and t3Main.exe to single CPUs. So, if you plan to exit to Task Manager or desktop by CTRL-ALT-DEL, then there
is a need to set affinity!
Then I tried to make this affinity change permanent using Salvage's guide. I found that t3Main.exe can be set using IMAGECFG with no problem, but t3.exe cannot, at least on my system. I got the following error message with t3.exe:
C:\Program Files\Thief - Deadly Shadows\System>imagecfg -a 0x1 t3.exe
IMAGECFG: unable to map and load t3.exe
I did a lot of internet searching and not could not find a valid reason for this error. I suspect that something about the copy protection is preventing t3.exe from being modified.
Further research disclosed another way. It is to invoke t3.exe using the launcher program XCPU.EXE. This is an obscure little utility found at this web page:
(
http://www.appliedvisual.com/xcpu.htm)
So I agreed to the license, downloaded xcpu.zip into a download folder,
C:\Download\XCPU
and extracted xcpu.exe from the zip.
Then I launch t3.exe using the following bat file:
t3_launch.bat
--------------
C:\Download\xCPU\xcpu.exe -a 0 -c t3.exe
I should note that one cannot use xcpu to launch t3Main.exe because t3Main.exe then invokes t3.exe (these two EXEs call one another). Then the unfixed t3.exe will give problems. The only order that works for me is to invoke t3.exe through xcpu and then have t3.exe call the fixed t3Main.exe. Then both of them are running on one CPU.
With this method, when I go back and forth from T3 to the Task Manager using CTRL-ALT-DEL, T3 no longer freezes. So, this has solved the freezing problem for me, and I hope it solves the looping problem for others.
I am not happy that it is so complicated.
Does anyone know why the IMAGECFG patch does not work with t3.exe? Or does it, and I am doing something wrong? FYI, I am doing this under Windows XP SP2, if that makes a difference.
smithpd on 6/1/2008 at 23:52
Here is another way I just found to set affinity on launch.
(
http://www.softpedia.com/progDownload/ProcessWatchV2-Download-44904.html) ProcessWatch
It works on both t3.exe and t3Main.exe at the same time. Neither one has to be modified by IMAGECFG. I think it will work with any number of EXEs that it maintains in a list, including all your Thief versions. So it looks like you need only one application, not a bunch of separate BAT files or IMAGECFG patches. Read the users manual for details, because it is not obvious.
Can anyone see any disadvantage in doing it this way?
DJ Riff on 10/1/2008 at 07:41
imagecfg -a 0x1 t3.exe
Strange, works fine for me without any error.
Could you just patch and start t3main.exe directly instead of t3.exe?
bikerdude on 10/1/2008 at 12:00
smithy
drop me a pm and Ill send you my fixed exe.
biker
smithpd on 14/1/2008 at 05:29
Quote Posted by DJ Riff
Could you just patch and start t3main.exe directly instead of t3.exe?
That doesn't work for me because no matter which one I start (t3 or t3main), it starts the other one automatically.
smithpd on 14/1/2008 at 05:32
Quote Posted by Bikerdude
drop me a pm and Ill send you my fixed exe.
Thanks. PM sent.
blackarrow9 on 18/3/2008 at 23:27
I apparently am having problems with having a dual core processor, too. I have been searching the forum and have tried the fixes and so far I have not been successful. As far as setting the affinity, I can't get T3 to start at all now although I have gotten it to work in the past (after several attempts and getting the runtime error message). Any suggestions???
smithpd on 19/3/2008 at 07:55
The affinity needs to be changed for two EXE's, t3.exe and t3main.exe. t3.exe does not respond correctly to imagecfg. I use ProcessWatch on both t3.exe and t3main.exe. That program can set affinity of one or more processes at run time, so there is no need to modify the EXE.
It is possible you have messed something up when attempting to modify the EXE's using imagecfg. There is probably a way to clear it (the imagecfg -u option?), but I am not sure. The best approach would be, before using ProcessWatch, to discard any changes you made to the EXE's and revert to your unmodified backup copies.
Acorn on 24/10/2008 at 10:07
Quote Posted by DJ Riff
imagecfg -a 0x1 t3.exe
Strange, works fine for me without any error.
My dual processor works fine now too.
I put the items from the system folder from the thief3 drome ed into the thief 3 system folder. It replaced some files, and then I wrote the processor.bat file for both thief 3 exe's off of the thief 1 "processor.bat" format using both exe names. I played a few regular missions and then used Garrett loader to start the fan mission I downloaded. Garrett loader complained about the t3.exe version, but runs games with it anyway without error.
created "processor.bat" in notepad with the below inside
imagecfg -a 0x1 t3.exe
imagecfg -a 0x1 T3Main.exe
pause