#125 closed task (fixed)
Error on Win64 while getting sound driver version
Reported by: | Jan Wassenberg | Owned by: | Jan Wassenberg |
---|---|---|---|
Priority: | Should Have | Milestone: | |
Component: | Core engine | Keywords: | |
Cc: | Desmond Talkington | Patch: |
Description
Desmond reports:
I have a similar problem too. Ever since I updated the cache from a few months ago it does that for me.
Function call failed at dll_ver.cpp:45 (get_ver): return value was -1 (Unknown error (-1, 0xFFFFFFFF)) Call stack: RtlFreeUnicodeString (:0) win_get_snd_info (wsnd.cpp:178) dlls = (uninitialized/invalid set<string > >) suppress__ = 0x55 ('U') WriteSystemInfo (util.cpp:48) LINE_44 = t0 = 2.82072e-317 description = 0x00000000 N_path = "PCI\VEN_1002&DEV_4A49&SUBSYS_0D42174B&REV_00" hostname = "dvag" un = sysname = [9] { 244, 218, 246, 119 ('w'), 212, 246, 45 ('-'), 0, 0 } nodename = [16] { 1, 0, 0, 254, 58 (':'), 83 ('S'), 0, 0, 0, 0, 0, 0, 5, 0, 0, 0 } release = [9] { 0, 0, 0, 0, 240, 253, 126 ('~'), 18, 59 (';') } version = "S" machine = [9] { 0, 0, 0, 0, 0, 0, 97 ('a'), 116 ('t'), 105 ('i') } ips = 0x40297020 -> (unavailable - internal error)
Then with a supress the game stays minimized, and the first time it does a 'rebuilding archive' then then goes to menu. A few builds ago it would show two error messages, but it dosen't do that anymore.
My sound card is a Creative Soundblaster Audigy 2 ZS. I'm running Windows XP Professional x64 in English. This 64bitness requires 64bit drivers to work, so the sound driver I'm using is a 64bit one. I'll check to see if there are any sounddriver updates after this. I haven't moved anything around. My 0ad directory is located here D:\Documents and Settings\Administrator\My Documents\0 AD. I have a C drive, but it is used for Win xp home boot and storing files.
Change History (12)
comment:1 by , 18 years ago
Status: | new → assigned |
---|
comment:2 by , 18 years ago
Desmond reports:
I put that new pyrogensis.exe file in the directory. When I run it, the large error box with the supress, continue, ignore options isn't there and it goes stright to the 'encounterd and error' screen. (http://img459.imageshack.us/img459/9282/snag00160eb.jpg)
comment:3 by , 18 years ago
Cc: | added |
---|
Ah, that would be a stupid bug that I've just fixed. Grab new version at http://www.stud.uni-karlsruhe.de/~urkt/tmp/ps_test_snddetect2.zip .
If that fails in a similar fashion (would be quite surprising, I'm quite sure of the failure cause), then please tell me the value of register EAX in the original EXE's crash log (scroll down a bit from the text that's visible in your screenshot).
comment:4 by , 18 years ago
This exe works just fine. All right, here are the messages it gives:
path: D:\WINDOWS\system32\drivers\ctaud2k.sys; GLE: 00000002 Location: dll_ver.cpp:48 (get_ver) Call stack: (error while building stack trace: -100800)
With a continue it leads to:
Function call failed: return value was -100310 (File/directory not found) Location: vfs_tree.cpp:592 (tree_lookup_dir) Call stack: (error while building stack trace: -100800)
And another continue:
Function call failed: return value was -100310 (File/directory not found) Location: vfs_tree.cpp:680 (tree_dir_open) Call stack: (error while building stack trace: -100800)
Continue:
Assertion failed: "("vfs_open_dir failed") && 0" Location: file_util.cpp:209 (vfs_dir_enum) Call stack: (error while building stack trace: -100800)
Continue again:
Function call failed: return value was -100310 (File/directory not found) Location: vfs_tree.cpp:592 (tree_lookup_dir) Call stack: (error while building stack trace: -100800)
Continue:
Function call failed: return value was -100310 (File/directory not found) Location: vfs_tree.cpp:680 (tree_dir_open) Call stack: (error while building stack trace: -100800)
Last Continue:
Assertion failed: "("vfs_open_dir failed") && 0" Location: file_util.cpp:209 (vfs_dir_enum) Call stack: (error while building stack trace: -100800)
Then the game runs minimized with menu music playing. Not sure if you need all of those messages, but the more the merrier! :P
comment:5 by , 18 years ago
Aha, looks like the problem is found; thanks for that info. GLE=2 is "file not found", and since the module is ctaud2k.sys, your file is apparently not located inside $WINDIR/system32 as the code currently assumes. Where might it be found?
Aside: it is quite worrying that all the stack traces fail to function on Win64 :S Looking at the stack walk code is on TODO.
comment:6 by , 18 years ago
My ctaud2k.sys is in D:\WINDOWS\system32\drivers.
Let me know if you need me to test anything else or need more info. (I also might be able to test it out on Vista x64 Beta 2 in a week or so)
comment:7 by , 18 years ago
My ctaud2k.sys is in D:\WINDOWS\system32\drivers.
Crap, that's exactly where I'm looking for it :( (as evidenced by the error message that was inserted) That puts us back to square 1 - I'm currently at a loss.
Crazy ideas: could Win64 be hiding the driver / only making it available via WoW? Are you sure the driver is 64-bit? Do you know of anyone else on the team that has Win64 and could test?
I also might be able to test it out on Vista x64 Beta 2 in a week or so
ooh. interesting. Will probably not run without Admin access, and might have trouble with OpenGL, but it would be interesting to try.
BTW, about those dir not found messages: I would presume that's due to missing data files, but unfortunately you can't currently update from SVN now :/ Let's check that again when it's back up.
comment:8 by , 18 years ago
Yeah, I'm sure it's a 64bit driver (newest one from a few months ago). Don't think anyone else on the team uses 64bit.
Just updated the svn cache with the June 12th version.
Good and bad news: the previous error is gone now. :) but... there is a new message.
Function call failed at dll_ver.cpp:45 (get_ver): return value was -1 (Unknown error (-1, 0xFFFFFFFF)) Call stack: RtlFreeUnicodeString (:0) win_get_snd_info (wsnd.cpp:178) dlls = (uninitialized/invalid set<string > >) suppress__ = 0x55 ('U') WriteSystemInfo (util.cpp:48) LINE_44 = t0 = 2.82072e-317 description = 0x00000000 N_path = "PCI\VEN_1002&DEV_4A49&SUBSYS_0D42174B&REV_00" hostname = "dvag" un = sysname = [9] { 244, 218, 246, 119 ('w'), 212, 246, 45 ('-'), 0, 0 } nodename = [16] { 1, 0, 0, 254, 58 (':'), 83 ('S'), 0, 0, 0, 0, 0, 0, 5, 0, 0, 0 } release = [9] { 0, 0, 0, 0, 240, 253, 126 ('~'), 18, 59 (';') } version = "S" machine = [9] { 0, 0, 0, 0, 0, 0, 97 ('a'), 116 ('t'), 105 ('i') } ips = 0x3FEF020C -> (unavailable - internal error) Init (gamesetup.cpp:980) argc = 43010208 argv = 0x00000000 flags = 0x00000001 setup_vmode = true setup_gui = true argv0 = 0x00000005 quality = 0x7EFDF000 missing = 0x005272E0 -> "V¾tôZ" windowed = false main (main.cpp:370) argc = 1 argv = 0x029048A0 -> 0x029048A8 -> "D:\Documents and Settings\Administrator\My Documents\0 AD\system\pyrogenesis.exe" mainCRTStartup (crtexe.c:398) argret = 3014592 mainret = 0 envp = 0x00000000 managedapp = 3014476 argv = 0x00000000 argc = 43010208 startinfo = { newmode = 43003120 } SEH_wrapped_entry (win.cpp:336) ret = 3014552 BaseProcessInitPostImport (:0)
Continue/supress leads to the game running minimized with sound. Does that error look like it's still a sound driver thing?
comment:9 by , 18 years ago
Yeah, I'm sure it's a 64bit driver .. Don't think anyone else on the team uses 64bit.
OK, thanks. It may be some weird issue with 64-bit drivers; I'm considering posting a test executable on a forum and asking others to test it.
Just updated the svn cache with the June 12th version. Good and bad news: the previous error is gone now. :) but... there is a new message.
hehe. Actually that is the old message that I had temporarily replaced with the more descriptive error that tells us path+GLE. The SVN build did not have that. So it's still the exact same problem, unfortunately.
comment:10 by , 18 years ago
Howdy Desmond! Have you tried 0ad out on Vista yet? (gotten your hands on RC1?) It'd be good to know if there's maybe a better error message that may help find out what's going wrong. Unfortunately I can't get a hold of anyone here with Win64, so no progress here.
comment:11 by , 18 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Thanks kindly for all the detailed information! That's quite a few DLLs. Unfortunately I don't see anything wrong; all DLLs have version info embedded, and the approach we use should work on 64-bit Windows as well.
More information is needed. What I've done is compiled a test executable that shows the DLL path that failed, as well as the GetLastError value. Please run that, and once the "path=bla, GLE=xxx" message comes, feel free to exit after pasting the error message contents here.
Grab it at http://www.stud.uni-karlsruhe.de/~urkt/tmp/ps_test_snddetect.zip