[Bug 46789] Need For Speed 3 hangs often ( original game engine does not support multi-core processors)
wine-bugs at winehq.org
wine-bugs at winehq.org
Mon Mar 11 17:22:29 CDT 2019
https://bugs.winehq.org/show_bug.cgi?id=46789
Anastasius Focht <focht at 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 at gmx.net
--- Comment #2 from Anastasius Focht <focht at 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-multicore-processors
--- 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
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list