by Dan East » Jan 25, 2001 @ 6:07pm
I'm half afraid to post this (for fear of getting everyone worked up), but I will go ahead, as those waiting for the source code need an update.<br>On our original site, the following was posted:<br>[hr]<br>By: Christian Amor Kvalheim<br>Hello.. <br><br>If I remember right Quake uses floating point numbers for all its calculations. Neither the ARM or MIPS processor has an inbuilt FPU core and is using software emulation. This would explain why a 486 66Mhz can play quake faster than IPAQ. The only sure way to speed up the Quake port is to recode the floating point rutines to use Fixed integer math.. I remember doing this way back when I did some demo rutines on the 486 SX and the performance boost is pretty impressive..<br>[hr]<br><br>So, I implemented fixed point routines, and did a comparison on the iPaq between the new fixed point math, and the existing floating point math. The result was that the new routines are 6.5 times faster than the ones currently used by Pocket Quake. Quake does indeed use float data types in most of its 3d code, so an improvement of some kind will certainly be achieved. The fps will of course not jump by a factor of 6.5, because the floating point math only represents a portion of the work required to render Quake. However, I am hoping that the fps will at least double. I am more than half-way done modifying Quake's code to use the new routines. <br>When this optimization is complete, and when I have cleaned things up a bit, I will release the source code to Quake so that others may contribute (sound, network, MIPS build, landscape, etc...).<br><br>Dan East<br>Last modification: Dan East - 01/25/01 at 15:07:37