Skip to main content
gamedev.net
🔒 Locked

SysID

Started by rick_appleton Aug 16, 2005 at 3:33 AM 34 replies 8.4k views
Original Post
rick_appleton
rick_appleton
I've fairly recently started work on a small library that tries detect your hardware. The main goal of this is to provide some code that can be used when debugging machines. Usually you test on friends machines, who will probably know what they have in there. But there comes a time that you need to test on a machine from someone who has fairly little idea of what a computer is :D. This is basically meant for those situations. Just run call a few function from the library, and all the data you'd ever need is handed to you on a silver platter. Write the data to a log file or something and you're done. For now I've only been working on a windows version, although I'm hoping to add other OS later as well (of course cpuid works on all systems). So far, I've been working on the CPU detection (which wasn't that hard, since there are numerous utilities out there that also do this). This basically works, but I want to add more info about the caches (already partially implemented), but more importantly, I want to add more human readable data. The sources I've found so far have very little recent data. And although I have found a large sheet of data on AMD processors, I haven't been so lucky with regards to Intel processors yet unfortunately. I also have basic videocard detection up and running. So far this seems to work well on ATI cards, but I still need to find detailed information about NVidia cards. Now my request to you is this: Please download SysID_rev22 and if any of the information is incorrect please contact me. If any information from the CPU is missing (this will be indicated by a number instead of a string in the first block of information), I'd be very greatful if you could also contact me with as detailed information about the CPU as you can. For those interested, two utilities to detect your CPU: Intel AMD Edit: updated link. [Edited by - rick_appleton on August 21, 2005 4:43:54 PM]
Jan Wassenberg
Jan Wassenberg
Looks good on Athlon XP/Radeon 9700 Pro.
How are you doing the video card detect - are you hitting the hardware, or just using DX functions, or what?
E8 17 00 42 CE DC D2 DC E4 EA C4 40 CA DA C2 D8 CC 40 CA D0 E8 40E0 CA CA 96 5B B0 16 50 D7 D4 02 B2 02 86 E2 CD 21 58 48 79 F2 C3
Grain
Grain
I get this, Every thing looks correct, although I didn’t double check each one.
Quote:

Processor:
========================================
Vendor: AuthenticAMD
VendorCPUName: Unknown CPU Typ
Family: K7
Type: Original OEM
Brand ID: 0
Model: AMD Athlon K7

Type: 0
Family: 6
Model: 10
Stepping: 0


Videocard:
========================================
Method 1
Videocard 0
Description: RADEON X800 Series (Omega 2.6.05a)
Manufacturer: ATI
Driver version: 8.09-041221m-020455C-ATI
Videocard 1
Description: RADEON X800 Series Secondary (Omega 2.6.05a)
Manufacturer: ATI
Driver version: 8.09-041221m-020455C-ATI


Method 2
Videocard 0
Hardware
Description: RADEON X800 Series (Omega 2.6.05a)
Manufacturer: ATI Technologies Inc. (Omega 2.6.05a)
Chip Type: R420 4A49
Memory Size: 256 MB
Memory Type: DDR3
Transfer Rate: AGP 8X
Driver
Version: Catalyst
Date: 11-30-2004
Provider: ATI Technologies Inc. (Omega 2.6.05a)
Press any key to continue . . .
JY
JY
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
"Absorb what is useful, reject what is useless, and add what is specifically your own." - Lee Jun Fan
Jan Wassenberg
Jan Wassenberg
> "Unknown CPU Typ"
Ah, the CPU brand string cannot be relied upon:
// fall back to manual CPU detect if the brand string is unavailable or
// useless (e.g. "Unknow(n) CPU Typ(e)"). the latter happens with older
// BIOSes that reprogram the string if they don't recognize the CPU.
E8 17 00 42 CE DC D2 DC E4 EA C4 40 CA DA C2 D8 CC 40 CA D0 E8 40E0 CA CA 96 5B B0 16 50 D7 D4 02 B2 02 86 E2 CD 21 58 48 79 F2 C3
rick_appleton
rick_appleton
Jan Wassenberg: currently only checking the registry. But I am considering other options as well.

Grain: Thanks for that. Would you mind me contacting you directly when I need some more testing? I notice you've got the omega drivers installed.

JY: Thanks for that. Would you be up to a little debugging if I give you the source (it's relatively simple)? Else I can include some extensive debugging info. I'm expecting my accessing the registry somewhere without a check.

Jan again: indeed. I've just started initial testing on this. I've got the source constructed such that I can add additional info extremely easy. That string you pointed out was just added as an afterthought. I'm not going to rely on that info in any way.

I noticed that I need to add OS detection asap here. I have no idea what windows versions you guys are using :D.

Edit: I have now added OS detection, and added a debug build (which should include asserts) to the zip.

[Edited by - rick_appleton on August 16, 2005 7:56:46 AM]
Jan Wassenberg
Jan Wassenberg
Quote:
Jan Wassenberg: currently only checking the registry. But I am considering other options as well.

Ah, ok, thanks. Would you be interested in sharing? I use DX calls and DLL version information.

Quote:
Jan again: indeed. I've just started initial testing on this. I've got the source constructed such that I can add additional info extremely easy. That string you pointed out was just added as an afterthought. I'm not going to rely on that info in any way.

Alrighty.

Quote:
I have now added OS detection [..] to the zip.

Works correctly here (WinXP SP2).
E8 17 00 42 CE DC D2 DC E4 EA C4 40 CA DA C2 D8 CC 40 CA D0 E8 40E0 CA CA 96 5B B0 16 50 D7 D4 02 B2 02 86 E2 CD 21 58 48 79 F2 C3
rick_appleton
rick_appleton
Jan, I am certainly interested in sharing. As to the adding of DX calls, I'm an OpenGL person my self, so I have no idea of the amount of information that can be found that way. Could you maybe give a small list of things you'd be able to find out through DX?

Give me this evening to add a little bit more comments, and make sure everything is checked properly so it *shouldn't* crash. Then I'll upload the code tomorrow.
Apocryphiliac
Apocryphiliac
Almost complete failure on my main system:

"Operating System:
========================================
Windows Server 2003 Service Pack 1 Build(3790)

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information."

Running dual Xeon 2.4GHz with hyperthreading on Windows 2003 SP1. GeForce 6600GT video card.
rick_appleton
rick_appleton
I've uploaded a new version. This one has simple HyperThreading detection. Also the source code is included, and a lot of logging statements.

If those of you who had problems with it could try it again, and tell me where it crashes, I'd be very grateful.

Edit: removed link.

[Edited by - rick_appleton on August 21, 2005 3:35:53 AM]
Apocryphiliac
Apocryphiliac
Quote:

Operating System:
========================================
Windows Server 2003 Service Pack 1 Build(3790)
Checking for presence of cpuid.....OK
Calling GetAllData
Reading data 0 from cpuid .....OK
Reading data 1 from cpuid .....OK
Reading data 2 from cpuid .....OK
Reading data 0x80000000 from cpuid .....OK
Reading data 0x80000001 from cpuid .....OK
Reading data 0x80000002 from cpuid .....OK
Reading data 0x80000003 from cpuid .....OK
Reading data 0x80000004 from cpuid .....OK
Calling SetVendorID
Calling SetProcType
Calling SetCapabilities
Calling SetL1CacheInformation

After that it produces the same error message as before.
IndyJones
IndyJones
Hi rick!

I was able to reproduce the crash. I uploaded you the symbols file along with a dump here!

Hope that helps!
Kippesoep
Kippesoep
This is odd:
Method 1Videocard 0	Description:          NVIDIA GeForce4 Ti 4200	Manufacturer:         NVIDIA	Driver version:       Error, <font color="red">ATI</font> card, but no 'ReleaseVersion' key
Kippesoep
rick_appleton
rick_appleton
Apocryphiliac: thanks for testing again. I've sent you a PM.

BRooksWackerman: thanks for that. I've never used .dmp files before, and I'm afraid that the project is currently developing too much to effectively use them. I'm pretty sure I don't have the version you tested anymore. However, I'll keep it in mind from now on.

Kippesoep: oops, a slight oversight when moving code around. Fixed now, but not in the currently online version yet.

[Edited by - rick_appleton on August 17, 2005 7:37:54 AM]
Ilici
Ilici
Quote:
Original post by Kippesoep
This is odd:
Method 1Videocard 0	Description:          NVIDIA GeForce4 Ti 4200	Manufacturer:         NVIDIA	Driver version:       Error, <font color="red">ATI</font> card, but no 'ReleaseVersion' key


Same problem, only different card (second video card) (NVIDIA Vanta, PCI)
rick_appleton
rick_appleton
I've updated the link in the first post. The incorrect ATI response to the videocard is now altered. CPUID has been fixed in a few places, and some cache data added.

I've also been able to find out how to detect the monitor resolution and frequencies. This should also work for multi-monitor setups.

I'd love some feedback on the changes.
Extrarius
Extrarius
Everything seems to work fine on my machine:
Operating System:========================================Windows  XP Service Pack 2 Build(2600)Memory:========================================Total Physical:           640 MBFree Physical:            332 MBTotal Pagefile:           1566 MBFree Pagefile:            1284 MBProcessor:========================================Vendor:                   AuthenticAMDVendorCPUName:            AMD Athlon(tm) XP 2400+Family:                   K7Type:                     Original OEMBrand ID:                 0Model:                    6.0L1 Cache size:            64 KBL2 Cache size:            64 KBType:                     0Family:                   6Model:                    0Revision:                 1AMD specific:Dualcore:                 NoDisplay:========================================Monitor 0Name:                     Hitachi CM811Width:                    1600Height:                   1200Bits:                     32Refresh rate:             70 HzVideocard:========================================Method 1Videocard 0        Description:          RADEON 9800 PRO        Manufacturer:         ATI        Driver version:       8.132-050503a2-022511C-ATIMethod 2Videocard 0        Hardware                Description:          RADEON 9800 PRO                Manufacturer:         ATI Technologies Inc.                Chip Type:            -                Memory Size:          128 MB                Memory Type:          DDR                Transfer Rate:        -        Driver                Version:              Catalyst 5.5                Date:                 5-3-2005                Provider:             ATI Technologies Inc.Videocard 1        Hardware                Description:          RADEON 8500 SERIES                Manufacturer:         ATI Technologies Inc.                Chip Type:            -                Memory Size:          128 MB                Memory Type:          DDR                Transfer Rate:        -        Driver                Version:              Catalyst 5.3                Date:                 2-22-2005                Provider:             ATI Technologies Inc.
Except that it is odd the 8500 is still detected - I uninstalled the drivers and everything before taking that card out and replacing it with the 9800 Pro. I'm guessing they didn't clean up the registry entries they created..? *grumble grumble* I hate programs that crap all over the system.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
stormrunner
stormrunner
Almost everything worked perfectly, except the videocard seemed to a bit of a snag. Might just be the drivers, though.

Memory:========================================Total Physical:           1024 MBFree Physical:            653 MBTotal Pagefile:           2461 MBFree Pagefile:            2101 MBAMDString: -Processor:========================================Vendor:                   AuthenticAMDVendorCPUName:            AMD Athlon(tm) 64 Processor 3400+Family:                   -Type:                     Original OEMBrand ID:                 0Model:                    15.0L1 Cache size:            64 KBL2 Cache size:            64 KBType:                     0Family:                   15Model:                    0Revision:                 8AMD specific:Dualcore:                 No... Monitor stuff removed since it detected all 7 NVIDIA "display" profiles ...Videocard:========================================Method 1Videocard 0	Description:          NVIDIA GeForce FX 5500	Manufacturer:         NVIDIA	Driver version:       Error, no 'ReleaseVersion' key, possibly ATI only?Videocard 1	Description:          NVIDIA GeForce FX 5500	Manufacturer:         NVIDIA	Driver version:       Error, no 'ReleaseVersion' key, possibly ATI only?Method 2Videocard 0	Hardware		Description:          NVIDIA GeForce FX 5500		Manufacturer:         NVIDIA		Chip Type:            -		Memory Size:          -1 MB		Memory Type:          -		Transfer Rate:        -	Driver		Version:              7.7.7.2		Date:                 6-15-2005		Provider:             NVIDIA

stormrunner
Xiachunyi
Xiachunyi
No errors from me.
Pentium M 2.0 Ghz
Geforce 6600 go

I get on the Driver Version: "Error, no 'Release Version' key, possibly ATI only?" I guess this is to be expected since I am utlizing drivers that were not officially released for the card. The video card's memory size is wrong: it lists it as 1 MB - maybe drivers?
mozie
mozie
Seems to be ok, except for the (known?) nVidia RAM detection problem.

Operating System:========================================Windows  XP Service Pack 2 Build(2600)Memory:========================================Total Physical:           1024 MBFree Physical:            395 MBTotal Pagefile:           2461 MBFree Pagefile:            1974 MBAMDString: -Processor:========================================Vendor:                   AuthenticAMDVendorCPUName:            AMD Athlon(tm) 64 Processor 3000+Family:                   -Type:                     Original OEMBrand ID:                 0Model:                    15.0L1 Cache size:            64 KBL2 Cache size:            64 KBType:                     0Family:                   15Model:                    0Revision:                 0AMD specific:Dualcore:                 NoDisplay:========================================Monitor 0Name:                     SyncMaster 997DF/927DF/997MB/927MB/927DFIWidth:                    1600Height:                   1200Bits:                     32Refresh rate:             75 HzVideocard:========================================Method 1Videocard 0        Description:          NVIDIA GeForce 6600 GT        Manufacturer:         NVIDIA        Driver version:       Error, no 'ReleaseVersion' key, possibly ATI only?Method 2Videocard 0        Hardware                Description:          NVIDIA GeForce 6600 GT                Manufacturer:         NVIDIA                Chip Type:            -                Memory Size:          -1 MB                Memory Type:          -                Transfer Rate:        -        Driver                Version:              7.7.7.2                Date:                 6-15-2005                Provider:             NVIDIA

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.