This is in D (which you can think of as C++ with bad library support and a fragmented community) on an ATI radeon mobility 9700. I'm using the derelict libary in D for opengl etc., but otherwise the engine is written from scratch.
I'm using point sprites for various particle effects. When they work, they should look like this:

The sprites are the gunsmoke. Also, you can't really see it in this screenshot, but there are a few thousand almost transparent particles randomly scattered around to make the atmosphere look thicker. These are point sprites with a plain circle texture on them, drawn using shaders. At one stage I was using opengl points, but I switched to the sprites because they were actually faster (and I was worried the points would just show as squares on some computers).
A couple of months ago, the game stopped working unless I ran it windowed or at desktop resolution. This was annoying, as it's meant to run at 640x400. What was doubly annoying was that I had a recent backup in another directory, which still worked, but which stopped working when I renamed it to turn it into my working project. However this may simply be me being crazy; I haven't been able to reproduce this recently. Anyway, it's now time to fix this. At the moment, the game works if I do any one of the following:
It works if I run it windowed or at desktop resolution (1280x800).
It works if I disable all sound and music (I'm using OpenAL and SDLMixer, respectively, for these).
It works if I comment out the line "glEnable(GL_POINT_SPRITE_ARB);". But it runs about 5ms per frame slower and my particles turn square.
Does anyone have any suggestions about what I can do? I vaguely recall reading in a couple of other places about problems with ATI point sprites. Should I give up and use billboarded quads instead?