View Full Version : Something like dx8Diagnostics for DX7?
Matthew
07-06-2004, 02:35 PM
Anyone aware of a similiar DXDIAG workaround package like dx8Diagnostics, but for DX7 (or, ideally, any DirectX version)? Instructing a user to run DXDIAG and send the output is a tad too complex for the casual market...
dx8Diagnostics is here (http://www.midwinter.com/~lch/programming/dx8diagnostics/), btw, and this (http://www.midwinter.com/~lch/programming/dx8diagnostics/sample.html) is its sample output.
Larry Hastings
07-06-2004, 07:11 PM
Nobody's sent me a port to DX7. Or much of anything, really.
If you wind up porting it yourself, I'd love to put it up on the page.
MSchmeling
07-06-2004, 10:41 PM
Is dx8diagnostics supposed to work with DirectX9, too? On my notebook with Sis M650 chip and DirectX9b it never terminates, but it shuts down ZoneAlarm every time I run it. (I did not look at the source, though, or tried to debug it.)
Larry Hastings
07-11-2004, 12:43 PM
What do you mean? If you mean, can you call dx8Diagnostics on a machine with DX9 installed?, then yes absolutely, and I've never heard about a problem. If you mean, can you call dx8Diagnostics from within a program that also calls DX9?, then I don't know, but I suggest you probably could if you were careful.
If you can't even run the test program on your laptop, then I'd be interested in you running it under the debugger and seeing where it gets stuck. It's supposed to take easily under a second on most computers. If you could find the problem and suggest a remedy, I'd appreciate it. With luck, it's something dumb where I missed an error return value and kept looping.
As for mixing dx8Diagnostics into a DX9-based program: dx8Diagnostics only uses the DX8 entry points for everything; for instance, to get the 3D device, it calls Direct3DCreate8(). This is a problem if you've already called Direct3DCreate9(), because I sincerely doubt you can use both a D3D8 and a D3D9 object simultaneously. If you changed your program so that DX8 was called only at the very beginning, and you shut it down before you called your first DX9 entrypoint, then that might fix it. (It depends on the Microsoft guys really cleaning everything up properly when the DX8 objects are destroyed.)
If that doesn't fix it, you might try simply changing dx8Diagnostics to call the DX9 entry points, and see if it "just works". Here's the list: Direct3DCreate8()
DirectSoundCreate8()
DirectInput8Create()The best way to do it would be to change dx8Dynamic into a proper dx9Dynamic, then change dx8Diagnostics to call the DX9-based entry points. That way, your code could also take advantage of dx9Dynamic.
Matthew
07-14-2004, 02:24 PM
Hi Larry,
I didn't even realize you were a regular here. Unfortunetly, it's unlikely I'll be able to do the DX7 port myself--I'm really more of a scripter than a programmer (our games are even done in a visual building block "langauge"). If I find someone local to do it, though, I'll be sure to send the work your way as well.
Larry Hastings
07-14-2004, 10:34 PM
Well, I'm more irregular than regular these days, but if I see the names of my projects go by my ears perk up. (My speedy replies here are fueled more by coincidence than anything else.)