Testers wanted ...

Hi everybody!

I have done a little OpenGL app i want to check which hardware that it’ll run at. It should look something like this: Shot.jpg
This was rendered at my g400 which OpenGL drivers suck (no stencil or attenuation support) …
So if anybody want to test it you can download it at my homepage (0.5MB)
(If you get like 2fps, edit the included ini-file and disable stenciling)

Please tell me if it work on your hardware and what hardware you got. Any help is appreciated.

[This message has been edited by Humus (edited 04-09-2000).]

[This message has been edited by Humus (edited 04-09-2000).]

[This message has been edited by Humus (edited 04-09-2000).]

hi humus.

as i start the demo, it changes the resolution, shows the white screen and then crashes with the debug windows dialog box.
it leaves the desktop to the new resolution.
i’ve tried any combinations of ini params.

i have a pII 350 w/64megs, a tnt w/16megs

hope you fix it: good shots!
is the fire procedural?


Hmmm … that’s bad …
What error message did it give? And what OS are you running? From what i know it doesn’t seam to run under win2k …

And Yes, the fire is procedural, and so is the flash above it.

oh right, i forgot the OS… it’s win32.
windows '98 se.

it crashes with no particular messages, just the windows dialog box with the three pushbuttons, debug, details… you got it?

even if i didn’t see it operating, i’d like to compare your fire with mine. can you give some code?


[This message has been edited by dmy (edited 04-09-2000).]

Hi again!

About the error message, you should press ‘details’ to see if the error is like ‘page fault’, ‘illegal opcode’ or whatever … it might help me a little to track the bug.

Hmmm … while writing the above sentence i realized what i guess is the whole thing. I checked back in my code and found a FEMMS instruction in my inline assembler code which create the flashes. That is bad since it is a 3dnow only instruction and shouldn’t execute on your processor, so i guess the error was an ‘illegal opcode’. So i replaced it with the equivalent (but slower) MMX standard instruction EMMS … i guess i will work now.
I have updated the files above, and included the source code this time.
I made the water transparent in this release also …

ok, now it runs. what a hacked code!

nice look, however!


Oki … great!
And yes, the code is a liiiiiittle hard to understand some times i guess (and a liiiiittle unorganized and a tiiiiny part of bad programming style now and then …), especially the assembler parts. I can hardly understand it myself sometimes … it’s been modified, optimized and reorganized to unrecognizeablility …

Hi Humus!

Nice snapshot, but I can not get it to work on my Dual Pentium III 600Mhz 512Mb ELSA Erazor X2 (DDR 32)…

I forgot : I am running Windows NT 4.0 SP6a which is probably the problem coz’ the error message is :

The exception Privileged instruction.
(0xc0000096) occurred in the application at location 0x004014e2.

Click OK…

I have compiled your program myself and the privileged instruction is the very first one of your GetMHz() function… Sorry, I know very well Motorola Assemblers (68xxx and DSP 56xxx) but I am not as good with Intel ones !

Can you fix that ???



Yes, NT is probably the problem, since it got a lot of restricts of calling the hardware, which i do in the GetMHz function.

What about if you replace the GetMHz() function with this in your case:

int GetMHz(){
return 600;

Does it work then or is there more problems?

That is me again !

Then it seems to work but I am not sure if I can see the rock (is that a rock ? ) properly… Actually, I have the sun coming staight on my screen so the contrast is not quite good at the moment !

I’ll tell you later when the sun is gone (for once we’ve got sun in the UK and I want it to go… I am gone crazy !).



P.S. : the fire and the bolt work perfectly and that looks GREAT !

Oki … great.
I’m gonna try to fix the GetMHz() function sometime … anybody know a way to get the Mhz without the need to hassle with I/O ports, which NT doesn’t want me to do?

Ok, i have fixed a new GetMHz function that works in windows NT/2000 too …
Files are updated …

Thanks Humus !

I have tried it and it works !
Really nice job !

Just a remark : when using FullScreen on NT, the desktop is messed up when you exit the program (don’t know why but I think NT & ChangeDisplaySettings are not real friends !).

See ya !


Hmm … that’s bad …
You mean messed up like all icons shuffled together in the upperleft 640x480 part of the screen?

Ooooooooooooopppppppppppsssssssssss !

I wanted to do it again to explain you the exact symptoms but this time, it worked !

I have tested it several times and could not reproduce what happened this morning !

I strongly believe it is not your code but my system, so sorry for the mistake !

See ya !


You know … you can always blame Microsoft … :slight_smile:

It crashes on my PC:
driver for ELSA Gloria L/MX has no WGL_EXT_swap_control extension.
You must not assume, that some OpenGL extensions are always available.
Before using any, check it first.

// crashes:
if (Vsync) wglSwapControl(1); // synchrinize with retrace.

// should be:
if (Vsync && wglSwapControl) wglSwapControl(1); // synchrinize with retrace.

Oopsi … thought i had some code to set Vsync to zero if the extension wasn’t available, i’ve added that now … thank you

Hi Humus,

your Prog is working on my dual Intel Celeron 500Mhz/ 128 MB/ 32MB Riva TNT 2 on Win2k.


Oki, great!