https://bugs.winehq.org/show_bug.cgi?id=35860 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |obfuscation Status|UNCONFIRMED |RESOLVED CC| |focht(a)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(a)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.