[Bug 35860] Crysis 2 reports 'Unsupported GPU configuration' on startup (crysis engine bug)
wine-bugs at winehq.org
wine-bugs at winehq.org
Thu May 29 11:18:22 CDT 2014
https://bugs.winehq.org/show_bug.cgi?id=35860
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |obfuscation
Status|UNCONFIRMED |RESOLVED
CC| |focht at gmx.net
Resolution|--- |INVALID
Summary|Crysis 2 - Claims |Crysis 2 reports
|unsupported video card |'Unsupported GPU
| |configuration' on startup
| |(crysis engine bug)
--- Comment #5 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
I debugged that thing - it works as designed.
If you search the net you will find many complaints about this issue from
Windows users.
There is a log file 'c:\\Program Files\\Electronic Arts\\Crytek\\Crysis
2\\Game.log' which contains the following information:
--- snip ---
BackupNameAttachment=" Build(5858) 29 May 14 (14 20 00)" -- used by backup
system
Log Started at 05/29/14 14:20:00
Running 32 bit version
Executable: C:\Program Files\Electronic Arts\Crytek\Crysis 2\bin32\Crysis2.exe
FileVersion: 1.0.0.5858
ProductVersion: 1.0.0.5858
Using STLport C++ Standard Library implementation
Added MOD directory <engine> to CryPak
Executable Command Line: "C:\Program Files\Electronic Arts\Crytek\Crysis
2\bin32\Crysis2.exe"
...
<14:20:25> Renderer initialization
<14:20:29> Unsupported GPU configuration!
- NVIDIA GeForce 8800 GTX (vendor = 0x10de, device = 0x0191)
- Video memory: 0 MB
- Minimum SM 3.0 support: yes
- Rating: 2
<14:20:29> Asking user if they wish to continue...
...
--- snip ---
When the Crysis engine loads it scores the graphics card by querying different
API:
* d3d9.d3d9_GetAdapterIdentifier
* d3d9.d3d9_GetDeviceCaps (SM support/version)
* user32.EnumDisplayDevicesA
* WMI 'Win32_VideoController' class 'PNPDeviceID' and 'AdapterRAM' properties
One of the encrypted PAK files, 'Engine.pak' contains per-vendor graphics card
"database" files.
You can decrypt/unpack the .PAK file with Luigi Auriemmas 'quickbms' tool
(http://aluigi.altervista.org/quickbms.htm) and a small Crysis2 bms script
containing Crysis2 retail decryption key.
Search the net, it can be found easily.
The interesting files are:
--- snip ---
Config/gpu/amd.txt
Config/gpu/intel.txt
Config/gpu/nvidia.txt
--- snip ---
The file content looks like this:
# vendor id, device ID, score, comment
--- snip ---
0x10DE, 0x0040,-1 // GeForce 6800 Ultra, GeForce 6800 Ultra/GeForce 6800 Series
GPU
0x10DE, 0x0041,-1 // GeForce 6800
0x10DE, 0x0042,-1 // GeForce 6800 LE
0x10DE, 0x0043,-1 // GeForce 6800 XE
0x10DE, 0x0044,-1 // GeForce 6800 XT
0x10DE, 0x0045,-1 // GeForce 6800 GT
...
0x10DE, 0x053E,-1 // GeForce 7025 / nForce 630a
0x10DE, 0x05E0, 3 // GeForce GTX 295
0x10DE, 0x05E1, 2 // GeForce GTX 280
0x10DE, 0x05E2, 2 // GeForce GTX 260
0x10DE, 0x05E3, 3 // GeForce GTX 285
0x10DE, 0x05E6, 2 // GeForce GTX 275
0x10DE, 0x05EA, 2 // GeForce GTX 260
0x10DE, 0x05EB, 3 // GeForce GTX 295
0x10DE, 0x0600, 1 // GeForce 8800 GTS 512
...
0x10DE, 0x0DE1, 2 // GeForce GT 430
0x10DE, 0x0DE2, 2 // GeForce GT 420
0x10DE, 0x0E22, 3 // GeForce GTX 460
0x10DE, 0x0E23, 3 // GeForce GTX 460 SE
0x10DE, 0x0E24, 3 // GeForce GTX 460
0x10DE, 0x1080, 3 // GeForce GTX 580
0x10DE, 0x1081, 3 // GeForce GTX 570
0x10DE, 0x1086, 3 // GeForce GTX 570
0x10DE, 0x10C0,-1 // GeForce 9300 GS
0x10DE, 0x10C3,-1 // GeForce 8400GS
0x10DE, 0x1200, 3 // GeForce GTX 560 Ti
...
--- snip ---
The score is calculated by adding and deducting points.
* base score from PCI vendor database file (or 0 if not found)
* SM < v3.0 = -1 point deduction
...
Some reports from Windows users (you can find many more):
--- snip ---
Unsupported GPU configuration!
- NVIDIA GeForce GTX 580 (vendor = 0x10de, device = 0x1080)
- Video memory: 0 MB
- Minimum SM 3.0 support: yes
- Rating: 4
Asking user if they wish to continue...
--- snip ---
--- snip ---
Unsupported GPU configuration!
- NVIDIA GeForce GTX 680 (vendor = 0x10de, device = 0x1180)
- Video memory: 0 MB
- Minimum SM 3.0 support: yes
- Rating: 0
Asking user if they wish to continue...
--- snip ---
--- snip ---
Unsupported GPU configuration!
- NVIDIA GeForce 9400M (vendor = 0x10de, device = 0x0866)
- Video memory: 0 MB
- Minimum SM 3.0 support: yes
- Rating: -1
Asking user if they wish to continue...
--- snip ---
--- snip ---
Unsupported GPU configuration!
- Intel(R) G41 Express Chipset (vendor = 0x8086, device = 0x2e32)
- Video memory: 1024 MB
- Minimum SM 3.0 support: yes
- Rating: -1
--- snip ---
'Video memory' is the culprit here.
The value ought to be retrieved using WMI 'Win32_VideoController' class,
'AdapterRAM' property.
Unfortunately the engine code is bugged.
Interestingly they put some effort in disguising/obfuscating gfx/d3d engine
code.
They should have really spent their time on fixing bugs...
The code _skips_ the retrieval of video adapter RAM value if it finds a
non-zero PNPDeviceID (compares a builtin "NULL" one against WMI).
--- snip ---
0019680C UNICODE
"PCI\VEN_10DE&DEV_0191&SUBSYS_00000000&REV_00\0&DEADBEEF&0&DEAD" ; WMI
retrieved
09ECF984 UNICODE "PCI\VEN_0000&DEV_0000" ; engine builtin string literal
--- snip ---
Complain to the vendor.
@killer:
--- quote ---
i can confirm this problem, 1.7.4 did work, some later didnt (havent done a
regression test).
--- quote ---
Don't confuse different issues.
This bug is about the startup message, not some recent regression.
I checked this with Wine 1.7.4 and the message is obviously present there too
for the technical reason I explained earlier.
Create a new bug for the regression and be sure to provide the actual commit
that broke it.
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