Carpediem, dude,<br><br>I have been reading this 'ported to casio' thread, and I noticed that you get good frame rates by removing lots of stuff. HOWEVER: Please be more careful, some of your changes cause unneccessary artifacts. Example: You changed every 'float' to 'int' int 'CalcGradients', causing bad lighting of the gun models. Not a big deal, perhaps, but it just isn't neccessary. If you multiply by 1024 prior to converting to int, you get 'fixed point numbers'. In this case, 22.10, since you have 10 bits for the fractional part, and thus 22 bits for the integer part. Now, do you calculus, and once you're done, shift by 10 to the right. The result is again an integer number, but this time it's a lot more precise. This is what I am doing with the span code; it doesn't contain float math anymore, but still, it's just as accurate (apart from the intentionally removed perspective correctness).<br><br>The reason that I write about this this way is that it's going to be very hard to match your 44% speed increase without sacrificing visual quality. This means that people will expect more than can be offered; or, a constant race between the aesthetically correct version and a fast, but dirty version. This is not good.<br><br>If you really want to help to get Quake faster without sacrificing lots of quality, then please take a quick course in fixed point math. It will be very rewarding for all of us, and for you, of course.<br><br>About this TraverseWorldRecursive thing: This is the core rendering function, so it's not suprising that it takes up so much time. Optimizing it is not going to do you any good, since it calls lots of functions that use at least 29.9% of the CPU time.
<br><br>Jacco.