https://bugs.winehq.org/show_bug.cgi?id=46789
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Need For Speed 3 hangs |Need For Speed 3 hangs |often |often (original game engine | |does not support multi-core | |processors) CC| |focht@gmx.net
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
this page provides some info:
http://veg.by/en/projects/nfs3/
--- quote --- Need For Speed III Modern Patch v1.6.1 [2016/10/28] (HD + Widescreen + Portable) ... And now, years later, I had tried to play this game. But the game refused to run on modern hardware. So, I had tried to investigate how to fix it. I had a little carried away by this. As the result I've created an impressive patch. 25000+ lines of assembly code, 150+ days of reverse-engineering and coding, 40 sheets of A4 paper were covered with writing during development, a huge list of changes... ... Compatibility. Most problems with modern Windows were fixed. Full support of multi-core processors. Original game can work properly only on one core. This change dramatically improves performance of the nGlide and the dgVoodoo. ... --- snip ---
"Full support of multi-core processors" vs. another approach:
http://fdossena.com/?p=nfs3/index.frag
--- snip --- $ unzip -l nfs3fix.zip Archive: nfs3fix.zip Length Date Time Name --------- ---------- ----- ---- 1376256 04-16-2014 20:48 glide3x.dll 576 08-09-2015 16:38 install.win 1589248 07-22-2005 21:12 nfs3.exe 572 05-04-2011 18:42 nfs3.sdb 51 08-09-2015 16:06 Patch.bat 582 08-09-2015 16:07 registry.reg 90112 12-17-1998 18:45 voodoo2a.dll --------- ------- 3057397 7 files --- snip ---
Interestingly, the archive from the site contains an application compatibility shim: 'nfs3.sdb'. Being lazy (no sdb2xml), one can use 'strings' on the binary file for quick inspection:
--- snip --- $ strings -el nfs3.sdb 2.1.0.3 Need For Speed 3 Patch nfs3.exe nfs3 <Unknown> SingleProcAffinity --- snip ---
'SingleProcAffinity' -> that's the important setting on how to force the game to not make use of SMP on modern Windows OS.
Microsoft docs:
https://docs.microsoft.com/en-us/windows/desktop/dxtecharts/game-timing-and-...
--- quote --- ... There is no easy remedy for applications that are not aware of power management, but there is an existing shim for forcing an application to always run on a single processor in a multiprocessor system.
To create this shim, download the Microsoft Application Compatibility Toolkit from Windows Application Compatibility.
Using the Compatibility Administrator, part of the toolkit, create a database of your application and associated fixes. Create a new compatibility mode for this database and select the compatibility fix SingleProcAffinity to force all of the threads of the application to run on a single processor/core. --- snip ---
Regards