C) Poor ingame performance on certain machines, when there really shouldn't be - this may be related to B) - under investigation ( UPDATE - some improvement due to B's fix as well! )
Is this about the random hesitation, where the game slips into 1 FPS for a minute?
I would like to add, it is exactly 160 frame-counts (Ticks), unless interrupted by a level-load or portal.
- The mouse and sound play normally.
- The delay is exactly 1 second between frames or more. (Mostly 1 second.)
- The pet-timer confirms that the issue is inside the game-timer, not a graphic-card issue.
- CPU use jumps to 99.5%, but hard-drive access is not present. This suggests a dead-loop game-timer delay.
Debug and check to see if the game-frame-timer is somehow being lost or accidentally reset with an integer value of 1 or 0. I suspect that when this occurs, the game is checking to see if 0.01666 seconds have passed, and is holding the frame-count in a dead-loop to limit frame rates. (If the value is 0 or 1, the frame rate would be exactly one second, depending on the time comparison. The value would not be fixed until the end of the frame, but for 160 loops when the value is lost, it shows as 1 FPS. Because the comparison happens at the opposite side of the frame processing.)
This can happen with FLOAT if the value is not large enough, or the value is an extended notation value too small but not zero. 0.1E99 might be 0 or 1 as an integer if adjusted floats are used, where floats are limited to say... four places and rounded, not clipped. Values greater than 0.1 should be forced to be 0.1, which translates into 10 FPS, values lower than 0.005 should be forced to be 0.005, which is your 200 FPS upper range.
NOTE: I have set my max FPS to 30FPS now. No sense processing 200 FPS when most monitors only display 60 FPS. (60 Hz is 60 FPS, You get more screen tearing and drive CPU use up higher when you try to process 200 frames. At 100Hz, 200FPS translates into two half-screens being drawn. Read the HZ of the monitor and set the maximum FPS to match that. Unless you are benchmarking, which destroys hardware and consumes tons of wasted power, you don't need more frames than can possibly be seen by the human eye or displayed by the monitor.)
Just my 2-cents, not a demand... LOL
P.S. Good work, and I am glad that the zip thing helped both issues a little. I can now run full resolution with all effects turned on. But the random delay still exists. Now it is random, not every nine minutes, like before.