SeriousCallersOnly on 24/10/2010 at 09:10
While there are known workarounds for the threading bug on the DarkEngine, using imagecfg.exe they are not working on wine, in two different ways:
1) wine can't patch THIEF.EXE with imagecfg.exe.
2) (if you use a virtual machine or a windows box to patch the exe) wine doesn't react to the changed executable by changing its affinity.
wrapping the wine process or the launched thief.exe in linux tools like taskset doesn't work either. the thief exe appears to set it's own affinity before playing the 1rst mission movie.
There are two solutions i've found: one use "wine taskmgr" to set the affinity manually.
The other is more interesting, since it is scriptable:
(
http://www.activeplus.com/us/freeware/runfirst/)
just run
wine RunFirst.exe THIEF.EXE
This is my loader script:
Code:
#!/bin/bash
GAME_PATH=$(dirname "$(readlink -f "$0")")
if [ -d ~/.wine/ ]
then
no_wine_dir=false
else
no_wine_dir=true
fi
cd "$GAME_PATH/Thief Gold"
if [ $no_wine_dir = true ] || [ ! -f config_preferences_applied ]
then
#bug on wine sound
wine reg add "HKCU\\Software\\Wine\\Appdefaults\\THIEF.EXE\\DirectSound" /v "HardwareAcceleration" /t REG_SZ /d "Emulation"
touch config_preferences_applied;
fi
#only one cpu for thief (imagecfg doesn't work on wine)
wine RunFirst.exe THIEF.EXE
It works around a sound bug in wine, the mentioned affinity bug. Only thing missing is the invideo codec that still needs to be installed once, though i suppose you can reencode the videos.
Let's see if the wine dev's fix the imagecfg bug.
SeriousCallersOnly on 24/10/2010 at 10:16
BTW ddfix doesn't work, at least with thief 2, didn't even try with thief gold.
SeriousCallersOnly on 24/10/2010 at 10:42
The hell they aren't necessary. Do you have a dual core processor?
BPS on 24/10/2010 at 10:47
I'm playing thief gold on Ubuntu 10.04 + wine in this moment and I have not even single problem after installing ddfix by method described here (
http://www.ttlg.com/forums/showthread.php?t=121449#ManualInstall) http://www.ttlg.com/forums/showthread.php?t=121449#ManualInstall (same goes to Thief 2) :thumb:
Many thanks for people behind ddfix, thanks to you I have my new favorite game, even now I can tell that I will stick with it to many years :angel:
SeriousCallersOnly on 24/10/2010 at 10:48
BTW i opened the last bug, that about "taskset has no effect on thief gold".
A simple test.
1) set in winecfg sound acceleration to emulation and display to a virtual desktop (so that when it crashes you don't need to get to a framebuffer command line to kill it).
2) start imagecfg.exe fixed thief gold executable, with
wine THIEF.EXE
3) go into a mission. If it doesn't crash immediatiatly, alt+tab and open another console. In it write:
wine taskmgr
Should be familar: now check the affinity of the THIEF.EXE process. I guarantee that the imagecfg fix didn't do shit.
(BTW to fix a executable with imagecfg you need to do in a windows installation. It doesn't execute the second step on wine).
SeriousCallersOnly on 24/10/2010 at 10:49
Quote Posted by BPS
I'm playing thief gold on Ubuntu 10.04 + wine in this moment and I have not even single problem after installing ddfix by method described here (
http://www.ttlg.com/forums/showthread.php?t=121449#ManualInstall) http://www.ttlg.com/forums/showthread.php?t=121449#ManualInstall (same goes to Thief 2) :thumb:
Many thanks for people behind ddfix, thanks to you I have my new favorite game, even now I can tell that I will stick with it to many years :angel:
Do you have a dual core processor either?
SeriousCallersOnly on 24/10/2010 at 10:51
Tafferpatcher also appears to depend on imagecfg. It is possible that what it is not working is the dual core bug, and not ddfix. I'm going to test that possibility in Thief 2 now that i have a workaround.
BPS on 24/10/2010 at 10:52
Quote Posted by SeriousCallersOnly
Do you have a dual core processor either?
Yes "AMD Athlon(tm) 64 X2 Dual Core Processor 5000+"
SeriousCallersOnly on 24/10/2010 at 11:12
Quote Posted by SeriousCallersOnly
Tafferpatcher also appears to depend on imagecfg. It is possible that what it is not working is the dual core bug, and not ddfix. I'm going to test that possibility in Thief 2 now that i have a workaround.
Yes. Using the taffer patcher feature of incremental patching, i installed everything except DDFix, widescreen and the multicore fix (that i have a replacement of). Worked.
Patched over the same dir (tafferpatcher supposedly does that, but don't worry, before i tried everything in a clean installation and it still crashed), but now with ddfix too (no widescreen or multicore, or the other multicore workaround).
Last lines:
fixme:ddraw:ddraw7_FlipToGDISurface iface 0x129878 stub!
fixme:ddraw:ddraw7_FlipToGDISurface iface 0x129878 stub!
err:seh:setup_exception_record stack overflow 2312 bytes in thread 0022 eip 7bc3e7ff esp 00240a28 stack 0x240000-0x241000-0x340000
Crashed, and hard.
It so not works.
Ubuntu maverick (not that it matters), wine 1.3.5, ati card, fglrx drivers (from AMD/Ati), dual core intel something, thief 2 sold out version.