[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