This document describes AGPLapTime, a utility with which you can log your races in World Circuit/Formula One Grandprix. This utility is freeware.
If you want to complain, ask questions or exchange deeper thoughts about AGPLapTime, SplitTime or F1GP feel free to contact me:
1. DISCLAIMER 2. DISTRIBUTION 3. WHAT IS REQUIRED? 4. WHAT IS AGPLAPTIME? 4.1. Usage 4.1.1. -c option 4.1.2. -b option 4.1.3. [
<logfile>] 4.1.4. -w option 4.1.5. Examples 5. HOW DO I ANALYZE THE LOGFILE? 5.1. AGPLap 5.1.1. [
<logfile>] 5.1.2. -w option 5.1.3. -t option 5.1.4. -/+[H/C]slfpr ... options 184.108.40.206. examples 5.1.5. Example output 5.1.6. Log entries 220.127.116.11. lap time, setup and fastest lap entries 18.104.22.168. pitstop entries 22.214.171.124. retirement entry 5.1.7. Tyre grip 5.1.8. Statistics table 126.96.36.199. table contents 188.8.131.52. example 5.2. AGPLapD 5.2.1. Usage 5.2.2. The interface 184.108.40.206. the AGPLapD window 220.127.116.11. the Info window 5.3. AGPLapMix 5.3.1. Usage 5.3.2. Examples 6. THANK LIST
I hereby state that I am not responsible for any damage or loss of data, whether or not caused by using either AGPLapTime or AGPLap. If it crashes in the middle of an important race then that's not my responsibility. Please make sure it works properly on your system first. If you have any problems, try to run F1GP without AGPLapTime. If you're sure AGPLapTime causes problems for you please (e)mail me personally, and I'll try to solve them.
You may copy AGPLapTime to everyone as long as you copy the original lha file containing the following files:
(c) 1995-97 Rene Smit
(c) 1995-97 Rene Smit
(c) 1995-97 Grant Reeve
(c) 1995 Grant Reeve
(c) 1995-97 Oliver Roberts
The f1gp.library was made by Oliver Roberts. The version of the library included here is 35.2 (8.2.97).
AGPLapD and AGPLapMix were made by Grant Reeve.
WHAT IS REQUIRED?
WHAT IS AGPLAPTIME?
AGPLapTime is a utility that logs interesting information while you're playing F1GP. Here is a quick list of most of the things that are logged:
Besides the player's car, computer cars can be logged too, although they are not very interesting (unless you want to analyse their strategies while changing several settings in F1GP-Ed, for example).
If only 1 player is being logged, the logfile will grow the size of about 4Kb for a full-length race. With 25 computer cars as well, it will get about 100Kb, but usually it's smaller.
AGPLapTime should be started from cli/shell with the following synopsis:
[-w] [-c] [-b <bufsize>] [<logfile>]
The options cannot be concatenated (e.g. -wc).
By default, computer cars are not being logged. To turn this on, specify the '-c' option. Note that in multiplayer games a player's car controlled by the computer is not a computer car.
The '-b' option specifies how large the buffer for the logfile is. Because I can't write logged data to disk while you're in the cockpit I use a buffer. This buffer can be flushed to disk during F1GP menu interaction if you give it the flush command: ctrl-f. The buffer is flushed too if you quit AGPLapTime, either by giving the ctrl-c command, or by quitting F1GP. These commands can be given by pressing the corresponding key combination in the cli AGPLapTime is started from, or with a special program like 'break' in your c: directory (after finding out it's process number with 'status').
The default buffer size is about 10Kb. If the '-c' option is specified this default size is about 128Kb. People that are low on memory may have to specify a smaller buffer size with the '-b' option. The given size must be in kilobytes.
If the buffer overflows, there are no records logged anymore until the buffer is flushed. There will appear a message telling you that some records are lost if this happens, so make sure your buffer is big enough! After flushing the buffer it will always be empty again, unless an error occurred while trying to write to the file.
The default filename for the logfile is "agplap.log". You can specify a different name by just typing it on the command line (it may not start with a '-', or it will be interpreted as an option).
The '-w' option will enable automatic writing. Once you get out of the cockpit or you're in accelerated time, and this option is specified, AGPLapTime will write out (flush) the buffer to the logfile right away. For this option to work, you need at least v37 of the OS. There won't appear a message that the buffer is saved, unless there was an error. Also, an empty buffer will be saved right away when AGPLapTime is started, to be able to start AGPLap with option '-w' righ after that.
will log only players' cars, with a 10Kb buffer which will be flushed to the filephoenix.log upon exit, or upon receiving the flush command.
AGPLaptime -w -c -b100 imola_cc.log
will log all cars, with a 100Kb buffer which will be flushed to the fileimola_cc.log automatically.
HOW DO I ANALYZE THE LOGFILE?
There are two tools to analyze the logfile: AGPLap and AGPLapD.
A seperate tool called AGPLap can be used to output the logfile in ASCII format. Call it from cli/shell with the following synopsis:
[-w] [-t] [-/+[H/C]slfpr] ... [<logfile>]
 brackets is optional. All options are case insensitive. It may look a bit complex at first sight, but it isn't J
. The options consist of three optional parts:
The default name for the logfile is "agplap.log". You can specify a different name on the commandline as long as it doesn't start with a '-' or a '+'.
The '-w' option will enable logfile notification and makes AGPLap wait forever after printing all log entries until ctrl-c is pressed. Whenever there are new entries written to the file, AGPLap will print them right away. This way you don't need to print the complete logfile every time you take a look during a race. This option can best be used in conjunction with the '-w' command of AGPLapTime: if you go into accelerated time you will see computer cars being logged (if enabled) straight away. Don't ask me of how much use this is, but I use this to test stuff.
This option will suppress the output of the statistics table. This table is explained in section 5.1.8. (Statistics table).
This is the part that lets you select which entries you would like to see. Also, the '...' means you can specify it as many times as you like. It starts with either a '-' or a '+', then is optionally followed by a 'H' or a 'C', then followed by 0 or more of the characters 'slfpr'.
By default, all log entries are printed. A '-' option will then skip a certain type of entry. The options and entries are mapped as follows:
Also, an 'H' or 'C' can further specify entries. If the 'H' is specified, then the following options only affect human player cars. If the 'C is specified, then the following options only affect computer cars. If neither 'H' or 'C' is specified, then the following options will affect all cars.
If there appears a '+' option however, all entries will _not_ be printed, except all the specified ones, including the '-' options. So the '+' is dominant: once for a certain type of car (human or computer) a '+' option is specified, the '-' options will turn into '+' options for that type of car.
print human player entries only.
print all human players entries except fastest laps and setups, and also all computer pitstops and retirements.
print all laptime and pitstop entries.
print all computer fastest laps, and pitstops of all cars.
print no entries.
Track 1: Phoenix, Race Car Driver Lap CP TG LapTime BestTime SessionTime Difference ------------------------------------------------------------------------------ Setup [64/48] 14R [26,32,39,45,51,57] TC on; C-compound %39 Rene Smit 0 24 86 -:--.--- -:--.--- 0h00m09.339 + 0:07.588 Setup [64/46] 12R [27,33,39,45,51,57] TC on; C-compound *38 Grant Reeve 0 26 86 -:--.--- -:--.--- 0h00m10.343 + 0:08.592 %38 Grant Reeve 1 12 88 1:32.123 1:32.123= 0h01m42.466 + 0:12.914 *39 Rene Smit 1 21 88 1:46.394 1:46.394= 0h01m55.733 + 0:26.181 *38 Grant Reeve 2 12 90 1:32.231 1:32.123 0h03m14.697 + 0:20.418 %39 Rene Smit 2 22 90 Pits in FW 0h03m48.073 %39 Rene Smit 2 24 -- Pits out on C's 0h04m08.837 pit 20.764 %38 Grant Reeve 3 8 92 1:26.362 1:26.362= 0h04m41.059 + 0:16.884 *39 Rene Smit 3 24 88 -:--.--- 1:46.394 0h05m42.135 + 1:17.960 *39 Rene Smit 4 24 -- Retired 61; 8% 0h05m50.992 0:03, 0:30 %38 Grant Reeve 4 8 92 1:30.496 1:26.362 0h06m11.555 + 0:22.813 *38 Grant Reeve 5 8 92 1:31.839 1:26.362 0h07m43.394 + 0:27.930 *38 Grant Reeve 6 8 92 1:21.849 1:21.849! 0h09m05.243 + 0:26.661 FL 1:21.849 Grant Reeve, Ace, 716 HP, SF 16384, FR 10.0, 100% *38 Grant Reeve 7 -- -- Retired 268; 35% 0h09m40.286 0:03, 0:30
This logfile was made during a multiplayer game, and the computer cars were logged too, but have been filtered out here by using the '+C' option.
The top line tells you what each column means. This column layout refers to laptime entries but certain columns are related to some other entries too. This is what each column means:
'-:--.---'on first lap out of the pit.
5.1.6. Log entries
I will now explain each log entry type in detail with use of the example.
18.104.22.168. lap time, setup and fastest lap entries
Everytime a car crosses the start/finish line a laptime entry is logged.
If this is the first one in a session, a setup entry is logged as well.
The following is printed in this case:
Track 1: Phoenix, Race
Setup [64/48] 14R [26,32,39,45,51,57] TC on; C-compound
%39 Rene Smit 0 24 86 -:--.--- -:--.--- 0h00m09.339 + 0:07.588
It first prints the track name and session mode. The session mode is one of
- Practise Circuit
- Free Practice
- Pre-Race Practice
The string ' (wet)' is added if it's a wet session (only for pre-race practise
and race). 'Practise Circuit' stands for the 'Practise any circuit' option in
the main menu. The race is either a quick race, a non-championship race or a
It then prints the setup: front and rear wing, front or rear brake bias, gear
ratio's, traction control (TC) on or off, and finally the used tyre compound.
This tyre compound isn't always the same as selected in the garage, e.g. in
non-race sessions this compound will be the one you selected from within the
car. So, it's always the compound you're driving on at that moment.
A normal laptime entry will look like this:
%38 Grant Reeve 4 8 92 1:30.496 1:26.362 0h06m11.555 + 0:22.813
Here, a car just finishes lap 4 in position 8. The laptime is 1:30.496 and his
personal best time is 1:26.362.
In case the car sets a best session time, a fastest_lap entry is logged:
*38 Grant Reeve 6 8 92 1:21.849 1:21.849! 0h09m05.243 + 0:26.661
FL 1:21.849 Grant Reeve, Ace, 716 HP, SF 16384, FR 10.0, 100%
After the best laptime a '!' is added so fastest laps can be recognized if
printing of fastest_laps entries is skipped. This will be reset for each
session. If the laptime is an improvement of the personal best laptime,
a '=' is added.
The fastest_lap entry starts with 'FL', followed by the time, the driver name,
the opposition level, horsepower value, speed factor SF, frame rate FR, and
finally a short session name (Prac, FrPr, Qual or PRPr) for non-race sessions,
and the race distance in percentage for race sessions. If you happen to drive
a fastest lap, and drive exactly the same laptime in another lap, a
fastest_lap entry will be logged again.
The speed factor (SF) is some sort of grip value for this particular car. For
a player's car this value will almost always be equal to 16384. For computer
cars it will be that too, unless you're using F1GP-Ed and you've specified a
different speed factor, or you've installed the Local Speed Factor patch.
In that case the SF value will be near or equal to F1GP-Ed's SF value, where
slower computer cars will have a slightly lower speed factor.
22.214.171.124. pitstop entries
Pitstops consist of a pair of entries. When a car comes in for a pitstop, a
pits_in entry is logged (when the car is put onto the jacks):
%39 Rene Smit 2 22 90 Pits in FW 0h03m48.073
If the car has damage, any broken wings are logged. 'FW' means the front
wing, and 'RW' means the rear wing is broken.
When the car comes off the jacks, a pits_out entry is logged:
%39 Rene Smit 2 24 -- Pits out on C's 0h04m08.837 pit 20.764
The tyre compound is printed which was chosen from within the car during the
pitstop, C-compound in this case. In the 'Difference' column the duration of
the pitstop is printed, preceded by the word 'pit'.
126.96.36.199. retirement entry
If a car has a fatal crash, a retirement entry is logged, right at the moment
of the impact:
*38 Grant Reeve 7 -- -- Retired 268; 35% 0h09m40.286 0:03, 0:30
The number after 'Retired' is the segment number where you crashed. You can
use this number to locate the track position with the perf file viewer
GPDisplay. The percentage shows where you crashed compared to the total lap,
e.g. if you crashed halfway a lap it says 50%.
In the 'Difference' column are two times printed: the first one is the yellow
flag delay, and the second one is the car removal delay. This should be an
indication of how long it takes before the road is clear again.
Note that if the car is involved in another fatal crash right after the first
one, another entry is logged. If two cars fatally crash against each other,
their entries contain the same session time.
Normal crashes are not logged, but if there is a crash, the damage can be seen
in the pits_in entry if the car drives into the pits.
5.1.7. Tyre grip
With each laptime entry and pits_in entry the tyre grip is logged. This
value indicates the condition of your tyres, and it changes while you're
driving. The grip has an initial ('cold') value which depends on the tyre
compound, the track and the weather conditions (wet or dry).
Here is a list of all cold values for all compounds:
Dry conditions Wet conditions
Tracks A B C D Q(warm) W Slicks W
2,4,7,10,12,13,14,15 82 85 88 89 83(99) 78 01 57
3,1,6,8,9,11,16 81 84 86 88 82(98) 77 00 56
5 80 83 85 87 80(96) 75 00 55
I have added the 'warm' values for Q-compound tyres too, which gives the
highest possible grip for that track. The optimum values for the other
compounds can be extracted from the logfiles: while warming up the tyres
the value will increase until they reach optimum grip. It will stay constant
for a certain number of laps (this will influence your pit strategy) and
drops at the moment the tyres are wearing out. It will then take a certain
number of laps (depending on the track and compound) before the value drops
below the cold value.
From the example above you can see that in Phoenix the optimum grip for
C's is 92. For all other race-compounds on all tracks the warm value is about
6 higher than the cold value too.
In wet races the tyres don't warm up, so the grip value will then stay
These grip values are not the original values that the game uses. I have
scaled them to be between 0 and 99, taking slicks in the wet as a minimum
and the highest possible Q value as a maximum. I did this to keep the output
small and to make it more intuitive to read.
5.1.8. Statistics table
This table is printed at the end of each session, and shows statistics
about the session. It's most interesting for a race and if there is more
than one driver. There are statistics in several columns for each driver.
188.8.131.52. table contents
This is what each column means:
| Car number
| | Total race time
| | | Fastest lap
| | | | Lap in which fastest lap was done
| | | | | #Laps led
| | | | | | #Laps done
| | | | | | | #Pitstops
| | | | | | | | Average pitstop loss
| | | | | | | | | Average tyre grip
| | | | | | | | | | #Laps done per compound
| | | | | | | | | | | | | | | |
FP Car Race_Time Fast_Lap FL LL/TL PS Avg_Pits AG A B C D Q W
Average pitstop loss shows the relative amount of time that is wasted
with a pitstop. It's the difference between two normal laps and the two
laps involved with the pitstop, including standing still.
The cars are sorted on laps done, then on race time.
Here is an example of statistics for a race:
FP Car Race_Time Fast_Lap FL LL/TL PS Avg_Pits AG A B C D Q W
1. 6 1h42m06.850 1:13.893 65 52/78 2 0:29.308 93 57 21
2. 1 1h42m32.094 1:14.361 77 27/78 1 0:23.688 93 78
3. 9 1h43m14.608 1:14.911 57 0/78 1 0:19.058 93 45 33
4. 25 1h44m47.039 1:14.057 70 0/78 4 0:39.463 94 23 55
5. 22 1h45m22.844 1:15.889 76 0/78 1 0:18.916 93 78
6. 2 1h45m47.383 1:15.043 78 0/78 3 0:42.236 92 29 40 9
7. 38 0h42m49.197 1:19.318 24 0/27 5 0:44.181 93 6 21
Another way to analyze the logfiles is to use AGPLapD, a graphical logfile
viewer. It's not a graphical substitute for AGPLap, since it doesn't show
race times or lap times, but only time differences for each lap. This
implies that it's only interesting if you log computer cars too, but there
is another tool called AGPLapMix which can combine several logfiles into
one (see section 5.3. AGPLapMix).
AGPLapD will not work with non-race sessions, so make sure your logfile
only contains one race (AGPLapMix helps you with this).
Besides the time differences, AGPLapD also shows pitstops, retirements and
a driver list.
AGPLapD was made by Grant Reeve.
New in v0.2ß2 is that it now works properly with versions lower than V39
of the operating system.
You start AGPLapD from cli/shell with the following synopsis:
You can also load the log file from within the program.
5.2.2. The interface
After you start the program, there will appear two windows, the AGPLapD
window which contains the graph, and the Info window which contains the
list of drivers. You can activate either window from the Windows menu.
There are two other menus: File and Prefs. From the File menu you can
load a new log file, clear the current logfile, or quit.
From the Prefs menu you can change screenmode, colours and fonts, and
you can save and load the preferences in several ways.
184.108.40.206. the AGPLapD window
This window shows a grid, with the lap number on the x-axis, and the
time difference to the leader on the y-axis. So the leader's trace is
always at the bottom of the graph, right on the x-axis (except for
pitstops). Traces of the other drivers are drawn according to their
gap to the leader.
A pitstop is drawn as a bold vertical bar, as the driver stands still
in the pit. The height of that bar is exactly the amount of time the
driver was on the jacks in the pit (usually about 8 seconds for a regular
pitstop and about 0 seconds if one or two wings needed to be repaired).
A retirement is drawn as a little box at the end of the trace.
A black trace going from left to right indicates the leader, who is
then lapping other cars. If it initiates from another driver's trace,
or if it crosses one, it means that that driver is being passed by the
leader. If it's the lowest black trace, he's lapped once, the next one
means lapped twice, etc.
220.127.116.11. the Info window
All drivers have unique colours (as long as they are available), and are
sorted on their race position. They are listed in this window with the
same colour as they are drawn with in the AGPLapD window. In that window
you can see a cursor (a vertical line) that's on lap 0 after loading. In
the Info window's title bar you can see that lap number, and the number of
cars. You can move the cursor with the cursor keys; with shift there will
be 10 laps skipped at once.
With this tool you can combine upto 64 log files together into one big log
file. Thereby it can filter out any unwanted sessions. Actually, the most
interesting use of this tool is to mix several races, which you can then
view with AGPLapD or AGPLap.
You can mix log files from different tracks together. This is, of course,
AGPLapMix was made by Grant Reeve.
[inlogfile] [car#[/new#] [-aText]]....
A is: m=mix
B's are: f=strip free practice
Mixing the logfiles is the most interesting (make sure they are from
the same circuit). Appending will just concatenate the logfiles.
Behind each logfile you can specify any number of car numbers that
you want to include. Each car number can be renumbered by adding a
'/' with the number to the old number. This is necessary if the logfiles
contain double car numbers, because double numbers will mess up pitstop
times with AGPLap. AGPLapMix supports car numbers from 0 to 63.
Besides this renumbering you can additionally append some text to the
driver name with the '-a' option followed by text. The total length of
the name cannot be more than 23 characters. If the name will be too long
it will be cut off.
Finally, specify the name of the output logfile.
* You have a log file containing a qualifying session and a race at
USA, and you want to filter out everything except what you and your
teammate did in the race. You are in car 39, he is in car 38:
AGPLapMix mq usa.log 38 39 output.log
* You have two log files, of races at Imola, where you are in car 39
and you are called "Grant Reeve" :). You want to combine the two files
together so you can compare how the two different versions of you went:
AGPLapMix m imola1.log 39/1 -aA imola2.log 39/2 -aB output.log
imola1.log will become "Grant Reeve A" in car 1, and imola2.log
will become "Grant Reeve B" in car 2.
6. THANK LIST
I would like to thank Grant Reeve for encouraging me and for making
AGPLapD and AGPLapMix.
Thanks to Oliver Roberts for beta-testing, and to other people
that have reported bugs.
Thanks to Robert Schaftlein for sending me a cheque!
Finally, thanks to Trevor Kellaway, who has made GPLap for the PC, which
inspired me to make a logger for the Amiga too.