This site is no longer active and is available for archival purposes only. Registration and login is disabled.

Optimal performace.


Optimal performace.

Postby myccroft » Apr 19, 2001 @ 3:07am

1. Dan, What do you think would be the optimal framerate for PQ. do i even dare thinking 15 mabey even 20 fps. And now were talkin about the dreamworld where you always get the 2 socks you put in the landry back instead of 1 (if you optimized everything) <br>2. Have you spoken to Jimmy (jimmysoftware.com) about the code or anything, I'm not saying your bad but he (as i understand it) is a mean muther f***er when it comes to programming (and it does) BTW i'm getting a new iPaq with the PCMIA sleve for about 399$ tomorrow (very excited)<br><br>Keep tha shit rollin'<br>Later... Myccroft
Keep up all the good work.
Later... Myccroft
myccroft
pm Member
 
Posts: 25
Joined: Apr 11, 2001 @ 9:23am


Re: Optimal performace.

Postby Paul » Apr 19, 2001 @ 3:13am

I'm curious as to how you improve it anyway... After the initial optimisations, what is left to do? How do you somehow keep managing to squeeze more speed out of it?
Paul
pm Insider
 
Posts: 9835
Joined: Apr 2, 2001 @ 3:15pm
Location: California


Re: Optimal performace.

Postby myccroft » Apr 19, 2001 @ 3:51am

Asking me or are you asking Dan?
Keep up all the good work.
Later... Myccroft
myccroft
pm Member
 
Posts: 25
Joined: Apr 11, 2001 @ 9:23am


Re: Optimal performace.

Postby Paul » Apr 19, 2001 @ 3:58am

Dan. He'll be lookin at this thread when he replies to you maybe<br><br>unless you know?
Paul
pm Insider
 
Posts: 9835
Joined: Apr 2, 2001 @ 3:15pm
Location: California


Re: Optimal performace.

Postby Dan East » Apr 19, 2001 @ 9:53pm

The optimal framerate would be very hard to predict. I definitely feel 15 fps would be achievable on the iPaq (240x180 resolution). The problem is that their aren't many isolated optimizations left that can be performed. In other words, each optimization requires more work than the previous and involves modifying more routines, just to get a small improvement.<br><br>There are basically 4 ways to optimize something like Quake:<br>1: Search for, and rewrite, any poorly written, inefficient C code. This is more of a style issue.<br><br>2: Look at the algorithms used (in this case they are primarily 3D) to see if there are shortcuts that may be taken, or different mathematical formulas that may be used that will produce the same result with less effort. <br><br>3: Sacrifice quality or what is rendered so less work is done.<br><br>4: Replace mathematical operations that the target hardware performs poorly (or does not perform natively) with more efficient alternatives.<br><br>Quake was originally written when the existing PCs were very weak, so they tried to squeeze out all the performance they could. Thus items 1 or 2 would not provide much improvement. id Software has pretty efficient code - at least I've not come across any blatant, obviously terrible code. Number 3 isn't an option for several reasons. That leaves number 4. Quake extensively uses a technique of storing numerical values called Floating Point. Internally the number is represented similar to scientific notation, where you have a mantissa portion containing the actual value, and an exponential part which scales the mantissa value. Now, unless the device's hardware is specifically designed to process floating point math (specifically, contains a Math Coprocessor), then it will perform terribly at floating point operations. That is because it takes many (over a dozen) individual integer mathematical operations to multiply two floating point values. That is called Floating Point Emulation, which is when floating point math is done via the software. Some processors (MIPS) are particularly bad at floating point math. This is either because the processor lacks integer operations useful in floating point emulation (thus requiring even more steps), or because the Floating Point Emulation routines built into the compiler are inefficient or poorly written.<br><br>So, what we have is software (Quake) which relies a great deal on a type of math not supported by any of the Pocket PC hardware. So if we can replace the floating point math with an integer-based type of float math (Fixed Point math, or Fixed Point Integer math), then we will speed up those operations at least 10 fold. The problem is that floating point math has HUGE range and precision. It can store a value in the range from 3.4E38 to 3.4E-38. It's precision is similarly minute. The trick is to profile the range of a particular floating point variable in Quake to find the max, min and smallest precision it holds during gameplay. Based on that it may be able to be converted to fixed point math, which has a much more limited range and precision (in fact, the more range it has, the less precision, and vice versa. Thus the programmer must determine exactly how much of each it needs to handle the ranges it will encounter in the game). It is very tedious work converting floating point to fixed point, but that is how each version of PQ has been faster than the last. That is really the only available method of increasing the performance of PQ. If a Pocket PC were made with a floating point processor (which Intel told me will not happen in at least the next year), then it would run PQ very fast, even if the CPU speed were only 133 mhz or so. Pentium processors have onboard math coprocessors, which is one of the reasons I can run Quake II at 1024x768 on my 300 mhz laptop faster than my 200 mhz iPaq can run Quake I at a crappy 240x180.<br><br>Dan East
User avatar
Dan East
Site Admin
 
Posts: 5264
Joined: Jan 25, 2001 @ 5:19pm
Location: Virginia, USA


Re: Optimal performace.

Postby Paul » Apr 20, 2001 @ 1:24am

Very informative. Thanks.
Paul
pm Insider
 
Posts: 9835
Joined: Apr 2, 2001 @ 3:15pm
Location: California


Re: Optimal performace.

Postby Moose or Chuck » Apr 20, 2001 @ 3:32am

hmmmmmm depressing, i say we all buy math coprocessors and solder the bitches on :)
Moose or Chuck
 


Re: Optimal performace.

Postby SonicSilicon » Apr 20, 2001 @ 11:50am

A CompactFLash Math Coprocessor . . . somehow I don't think it would work.
User avatar
SonicSilicon
pm Member
 
Posts: 204
Joined: Mar 7, 2001 @ 1:36pm


Re: Optimal performace.

Postby Jaybot » Apr 20, 2001 @ 12:59pm

I like Chuck's idea :) solder the bitches on!  .. oh wait, he meant solder the math coprocessors on,,, those were seperate statements, never mind :D
-------
|\\ //|
-- ^ --
|||
User avatar
Jaybot
pm Insider
 
Posts: 3208
Joined: Mar 22, 2001 @ 10:04pm
Location: Desk.


Re: Optimal performace.

Postby Moose or Chuck » Apr 20, 2001 @ 10:41pm

haha, :) yea i don't think that would really work :/
Moose or Chuck
 


Re: Optimal performace.

Postby myccroft » Apr 23, 2001 @ 6:34pm

So 15 fps huu...<br>That will rule.
Keep up all the good work.
Later... Myccroft
myccroft
pm Member
 
Posts: 25
Joined: Apr 11, 2001 @ 9:23am


Return to Pocket Quake 1 and 2


Sort


Forum Description

Discuss Pocket Quake 1 and 2 by Dan East

Moderators:

Dan East, sponge, James S

Forum permissions

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum