From: Van Smith
Sent: Wednesday, December 11, 2002 6:32 PM
To: CJ Holthaus; Terry Maginnis; Jesse Ahrens; Robbie Tomaszewski; Chris Hertel
Cc: Vijay Hariharan; Xu Gao; Gary Willingham; 'epan wu'; Jason Chen; Tony Patterson
Subject: FW: SeriousSamSE

As I mentioned in Monday’s status meeting, SeriousSam SE is adversely affected by running chgratio.exe, the program we use to change the VIA CPU clock ratio from within XP and NT. There were two primary problems, both caused by SeriousSam’s use of the ~MHz registry key value:

1. The game pace is calibrated at ~MHz, so if Windows reported 666MHz and you change the clock ratio with chgratio so that the CPU runs at 1GHz, the game will run inordinately fast because SS thinks you are running at only 666MHz. Conversely, if the chip was cut at 1.33 GHz and you changed the real clockspeed to 1GHz, the game would poke along because SS tries to pace the game for a 1.33GHz chip.
2. SS apparently uses customized timers keyed off of the CPU counter (as does COSBI), but these timers are calibrated with to ~MHz. Consequently, if ~MHz is 666 and you are actually running at 1000 from executing “chgratio 7.5”, units of time will actually decrease (because SS thinks that 666-million clock ticks = 1 second) causing your frame rates to decline.

I have written a GUI program that will call ChgRatio.exe and update the ~MHz key. This program also graphs clockspeed so you can see the impact of the ratio change.

I have also added a commandline facility so that you can set up a batchfile that can call this program at startup and adjust the clock multiplier to whatever you want.

Calling convention:

CPUSpeed_v091.exe cr nn.n l “filename”

Examples:

CPUSpeed_v091.exe cr 11.5

Will change the clock ratio to 11.5

CPUSpeed_v091.exe cr 12.0 l myfile

Will change the clock ratio to 12 and log the results to myfile.txt

CPUSpeed_v091.exe cr 10.5 l

Will change the clock ratio to 10.5 and log the results to the unique filename LOG_FILE_CpuSpeed_nnnnnn.txt where nnnnn is the datetime float value of Now.

Notes:

- The program will only attempt to change the clock ratio for VIA processors, so it is safe to use a batch file in your Startup directory even if you are changing chips out with Intel parts.
- The program must be in the same directory as ChgRatio.exe. The program will look for chgratio.exe and will disable the clock ratio controls if it can’t find it in the same directory.
- You still must install Jason’s driver since chgratio.exe needs Ring 0 access.

The program is located here: \\Superlab\software\benchmarks\essential\cosbi\CPUSpeed_v091.exe

Here is a before and after:

| C5xl-0e x0r, 7.0x, 933MHz | c5xl-0e x0r, 7.5x, 1GHz | c5xl-0e x0r, 8.0x, 1.07GHz | c5xl-0e x0r, 8.5x, 1.13GHz | c5xl-0e x0r, 9.0x, 1.2GHz
SeriousSam SE 640x480x32 | 27 | 25.7 | 24.4 | 23.9 | 22.8
SeriousSam SE, ClockSpeed_v091 | 21.1 | 22.1 | 22.8 | 23.6 | 24.2

I suggest that you use this program anytime you want to change our clock multipliers from within XP or NT.

BTW, I have not tested on NT, but the program should work.

If you have any problems, please let me know.

Van

-----Original Message-----
From: Van Smith
Sent: Saturday, December 07, 2002 1:08 PM
To: CJ Holthaus
Cc: 'epan wu'
Subject: RE: SeriousSamSE

I have been able to manipulate the problem by writing to the ~MHz registry key. If I get a chance this weekend, I’ll write a GUI tool to change the clock ratio which will also update this registry value.

v

-----Original Message-----
From: CJ Holthaus
Sent: Saturday, December 07, 2002 11:00 AM
To: Van Smith
Cc: 'epan wu'
Subject: RE: SeriousSamSE

what happens if you use clockmul.exe from dos and int19 into XP?

chgratio may be the culprit.

-----Original Message-----
From: Van Smith
Sent: Friday, December 06, 2002 7:36 PM
To: CJ Holthaus
Cc: 'epan wu'
Subject: SeriousSamSE

> CJ,

> Here is the data for SeriousSamSE

> | c5xl-0e x0r, 7.0x, 933MHz | c5xl-0e x0r, 7.5x, 1GHz | c5xl-0e x0r, 8.0x, 1.07GHz | c5xl-0e x0r, 8.5x, 1.13GHz | c5xl-0e x0r, 9.0x, 1.2GHz | Celeron-Cu, 1GHz, i815e | Piii-Cu, 1GHz, i815e | c5xl-0e x0r, 5.0x, 667MHz | c5xl-0e x0r, 7.5x, 1GHz, (cut at 5x)
> SeriousSam SE 640x480x32 | 27 | 25.7 | 24.4 | 23.9 | 22.8 | 9.4 | 12.9 | 31.9 | 13.6

> The first set of values was obtained with the chip cut at 8.5. For the very last entry, I penciled in a multiplier of 5x. As you can see, fps declines as the multiplier gets bigger, but when I changed the cut value, the score at 1GHz declined by almost 50%.

> What I think might be occurring is that the program is taking the Windows MHz number (f(win)) and using it to calculate elapsed time by the following formula:

> t = n / f(win)

> where t = time and n = number of elapsed CPU clockcycles.

> FPS would then calculated by

> FPS = Frames / t = Frames / (n / f( win ) ) = k * f( win )

> Where k = Frames / n

> For the 1GHz instance, Windows is reporting 1.13GHz, but chgratio sets the real clockspeed down to 1GHz. To correct this:

> t’ = n / f = ( n / f ) * ( f(win) / f(win) ) = ( n / f(win) ) * (f(win) / f) = t * f(win) / f

> and

> FPS’ = Frames / t’ = Frames / ( t * f(win) / f) = FPS * f / f( win )

> (Also

> FPS’ = k * f = k * f * (f(win)/f(win)) = k * f(win) ( f / f(win) ) = FPS * ( f /f (win) )

> )

> So the true FPS should be obtainable by multiplying the reported FPS by f / f( win ):

> FPS’ = FPS * ( f / f( win )) = 25.7 * 1000 / 1133 = 22.7

> We should get this same value for the second attempt at 1GHz (with 5x multiplier), but we don’t:

> FPS’ = 13.6 * 1000 / 667 = 20.4

> Looking at the game closely, the demo appears to be actually running more slowly at 7.5x when cut at 8.5x than running at 7.5x cut at 5x, so the game pace timer seems to be impacted too, perhaps accounting for the discrepancy. But it does look like the problem has something to do with the Windows reported clockspeed and the only valid numbers we are likely going to get is when the Windows clockspeed is reporting the actual clockspeed..

> BTW, the C3M266 would not POST with either a PIII or a Celeron. I did not try to reset the CMOS, though.

> Van

> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.419 / Virus Database: 235 - Release Date: 11/13/2002

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.419 / Virus Database: 235 - Release Date: 11/13/2002

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.419 / Virus Database: 235 - Release Date: 11/13/2002

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.419 / Virus Database: 235 - Release Date: 11/13/2002